失踪人口回归,接下来会陆续更新与考研相关内容,进入阶段总结部分。这部分内容主要是结合湖南科大教书匠的计算机网络和王道的计算机网络进行的一个总结。主要目的就是针对考研。
okey,废话不多说,直接发车了。。。老规矩,内容很长。然后这里主要是针对计网,为啥是计网呢,因为,计网的话确实有点抽象,东西有点杂,所以优先针对这个家伙。查看本博文时,建议在PC端查看,并且打开目录进行按点查看。
当然秉承作者一贯在作风:
文章内容还是比较多的,当然,没有超过咱们先前算法入门7W字那么多,那个重在理解和练习,这个重在概念理解背诵,然后就是刷题速度。
说到这个,这里插个眼,明天这个时候更新操作系统,如果没有更新那就是是我刷了一套数二的卷子。(PS:不考深圳大学了,初试难搞也就算了,复试还难搞)。数学的话,有时间也出一个真题分析博文。哎,现在数学部分的问题,就是算的不够快,不够准,还得加强练啊(苦逼)
第一章的考点集中在 OSI和TCP/IP的各层功能,上下层关联关部分。
计算机网络是:是一个将分散的,具有独立功能的计算机系统,通过通信设备和线路连接起来,由功能完善的软件实现资源共享和信息传递的系统。简单点说,计算机网络是互联的,自治的计算机集合。
网络:由若干结点和连接这些结点的链路构成
互联网internet(小写,通用名词):多个网络还可以通过路由器互连在一起,这样构成了一个覆盖范围更大的网络
因特网Internet(大写,专用名词):指目前全球最大的、开放的、由众多网络互连而成的特定计算机网络,采用TCP/IP协议簇作为通信规则
边缘部分:
边缘部分:由所有连接在因特网上的主机组成(路由器是专用计算机,但不称为主机)。这部分是用户直接使用的,用来进行通信(传送数据、音频或视频)和资源共享
核心部分:由大量网络和连接这些网络的路由器组成。这部分是为边缘部分提供服务(提供连通性和交换)
组成部分:
硬件、软件、协议
功能组成:
通信子网:由各种传输介质、通信设备和相应的网络协议组成,使网络具有数据传输、交换、控制和存储能力,实现联网计算机之间的数据通信
资源子网:
实现资源共享功能的设备以及软件的集合,向网络用户提供共享其他计算机硬件、软件和数据的服务
广域网(WAN,Wide Area Network)
采用交换技术 区分广域网局域网,取决于采用的协议
局域网(LAN,Local Area Network)
采用广播技术 局域网通过路由器接入广域网
城域网(MAN,MetroPolitan Area Network)
个人区域网(PAN,Personal Area Network)
这里就是比较凸(艹皿艹 )的部分,明明是适合第二章的内容,但是在第一章就出现了(以前学的时候)
电路交换 :
数据传输前,先建立起一条专用的物理通信路径,这一路径在整个数据传输期间一直被独占,知道通信结束才释放(连接建立、数据传输、连接释放)
报文交换:
产生原因:电路交换可以实现计算机间的数据交换,但线路传输效率很低,计算机数据是突发式的出现在传输线路上的
数据交换的单位是报文,报文携带有目的地址、源地址等信息。报文交换在交换结点的时候采用的是存储转发方式
公用网(public network)
专用网(private network)
广播式网络
点对点网络
有线网络:双绞线网络,同轴电缆网络
无线网络:蓝牙,微波,无线电
注意:物理上使用集线器的局域网是一个星型网,使用集线器的以太网在逻辑上仍是一个总线网。
速率
比特(常用数据量单位):8bit = 1Byte,KB = 2^10B,MB = 2^20B,GM = 2^30B,TB = 2^40B
速率(常用数据率单位):bit/s (bps),kb/s=103b/s,Mb/s=106b/s,Gb/s=109b/s,Tb/s=1012b/s
带宽
带宽在模拟信号系统中的意义 信号所包括的各种不同频率成分所占据的频率范围(Hz,kHz,MHz,GHz)
带宽在计算机网络中的意义 通信线路所能传送数据的能力,单位时间从网络一点到另一点所能通过的“最高数据率”(b/s,kb/s…)
吞吐量
单位时间内通过某个网络(信道、接口)的数据量,经常被用于对网络的测量,受网络的带宽和额定速率的限制
时延
时延带宽积
发送端连续发送数据且发送的第一个数据即将到达终点时,发送端已发出的比特数
时延带宽积 = 传播时延 × 带宽
往返时间 RTT
发送数据到接受到接收端的确认,经历的时延
分组丢失率,一定时间内,传输过程中丢失分组占比(用户透明)
分组传输过程中出现误码
分组到达一台队列已满的分组交换机时被丢弃,通信量较大时可能造成网络拥塞
常见的计算机网络体系结构:
OSI体系结构:
理论研究产物,研究出来时候TCP/IP体系结构已经抢占大部分市场,专家缺乏实际经验,无商业驱动力,实现复杂,运行效率低,制定周期太长,按OSI标准生产的设备无法及时进入市场,层次划分不合理
TCP/IP体系结构:
实际使用的体系结构
原理体系结构:
有利于对计算机网络原理的学习,所以有了我们课本上的五层模型
各层协议
「应用层协议」 :
HTTP 协议(超文本传输协议,网页浏览常用的协议)
DHCP 协议(动态主机配置)
DNS 系统原理(域名系统)
FTP 协议(文件传输协议)
Telnet协议(远程登陆协议)
电子邮件协议等(SMTP、POP3、IMAP)
…
「传输层协议」 :
TCP 协议
报文段结构
可靠数据传输
流量控制
拥塞控制
UDP 协议
报文段结构
RDT(可靠数据传输协议)
「网络层协议」 :
IP 协议(TCP/IP 协议的基础,分为 IPv4 和 IPv6)
ARP 协议(地址解析协议,用于解析 IP 地址和 MAC 地址之间的映射)
ICMP 协议(控制报文协议,用于发送控制消息)
NAT 协议(网络地址转换协议)
RIP 协议、OSPF 协议、BGP 协议(路由选择协议)
…
「网络接口层」 :
差错检测技术
多路访问协议(信道复用技术)
CSMA/CD 协议
MAC 协议
以太网技术
最后,在接收方:
从物理层开始依次去掉首部,并交付给上层,最后将HTTP请求报文交付给应用层,应用层对HTTP报文解析,然后发回HTTP响应报文。
高频考点:
这里是:湖南科大教书匠的:(主要看到,分组交换的分组时延计算)
也可以参考王道的解法,王道的解法是这样的(原理也是通过时序图推导的,而且我认为可能更加通用),这里也是只计算分组时延和传播时延,其他的时间消耗不算。
那么这里总时延=传播时延+1个分组经过n个路由转发分组的时间+剩下的分组从倒数第二个路由分组转发到目的地的分组时延!
物理层要解决的问题:
物理层考虑的是怎样才能在连接各种计算机的传输媒体上传输数据比特流
物理层为数据链路层屏蔽了各种传输媒体的差异,使数据链路层只需要考虑如何完成本层的协议和服务,而不必考虑网络具体的传输媒体是什么
物理层协议的主要任务:
机器特性 :指明借口所用的接线器的形状和尺寸、引脚数目和排序、固定和锁定装置
电气特性 :指明在接口电缆的各条线上出现的电压的范围
功能特性:指明某条线上出现的某一电平的电压表示何种意义
过程特性 :指明对于不同功能的各种可能事件的出现顺序
物理地址=MAC地址,属于数据链路层范畴
同轴电缆
分类
基带同轴电缆(50 Ω) 数字传输,过去用于局域网
宽带同轴电缆(75 Ω) 模拟传输,目前用于有线电视
价格贵且布线不灵活,由双绞线代替
双绞线
串行传输和并行传输
串行传输 一个个比特按时间顺序传输 远距离传输 并行传输 多个比特通过多条通信信道同时传输
速度快、成本高、近距离传输(计算机内部)
同步传输和异步传输
同步传输 通过时钟信号控制不同机器同步通信 :
- 外同步:在收发双方之间添加一条单独的时钟信号线
- 内同步:发送端将时钟同步信号编码到发送数据中一起传输(曼彻斯特编码)
异步传输
字节之间异步(字节之间的时间间隔不固定) 字节中的每个比特仍然要同步(各比特的持续时间是相同的)
通过每个字节加起始位和结束位实现字节内的同步
通信交互方式
单工传输:一个方向通信 半双工传输:通信双方都能发送或接收信息,但不能同时
全双工传输:通信双方可以同时发送和接收信息,需要两条信道
如图:
数据:
模拟数据(模拟信号):连续变化的数据或信号
数字数据(数字信号):取值仅允许为有限的几个离散数值的数据成为数字信号或者数字数据
信源: 产生和发送数据的源头
基带信号: 数字信道上,来自信源的信号,直接表达要传输的信息
码元 :一个固定时长的信号波形(数字脉冲)表示一个K进制数字,代表不同离散数值的基本波形(16进制码元->16种形态->4bit数据)
这里经常考的就是这个码元,波特率,发送率速率的题型。
例题:
【2011】若某通信链路的数据传输速率为2400bps, 采用四相位调制, 则该链路的波特率是()
A. 600 波特
B. 1200 波特
C. 4800 波特
D. 9600 波特
数据传输速率为2400bps,即链路中单位时间传输 2400 个二进制数
波特率:单位时间内传输的码元数。已知采用四相位调制,换言之要表示出四相位需要怎么组合, 00 01 10 11,当然你能记住公式更好,
log24 = 2。所以波特率=2400 / 2 =1200Bd
码元传输速率=码元速率=波形速率=符号速率=调制速率(单元时间数字通信系统所传输的码元个数)
信息传输速率=信息速率=比特率(b/s)
波特率:每秒可能发生的信号变化次数
关系
波特率 = 比特率/每码元所含比特数 = 信息传输速率/每码元所含比特数
这一章内容不少,接下来两章是大头。
数据链路层的基本概念:
数据链路层负责通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报
结点:主机、路由器。
链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。
数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件和软件加到链路上就构成数据链路。
帧:链路层的协议数据单元,封装网络层数据报。
点对点信道的数据链路层(三个问题)
封装成帧 数据链路层给网络层协议数据单元添加一个帧头(数据链路层协议首部)和帧尾的操作,称为封装成帧
差错检测 使发送方确定接收方是否正确收到由其发送的数据的方法:
位错:数据中的某些位出现错误
帧错:帧的丢失、重复或失序等错误
可靠传输 尽管误码是不能完全避免的,但若能实现发送方发送什么,接收方就能收到什么,就称为可靠传输
交换式局域网(使用点对点链路和链路层交换机)
**无线局域网 **
CSMA/CA协议,这里面还有隐蔽站的问题,解决方案是通过CTS,RTS进行信道预约
封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流 后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
首部和尾部包含许多的控制信息,其中帧定界符的作用就是确定帧的界限。
考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限,即最大传送单元MTU
帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
注意:当题目中没有说明时,以太网帧的默认大小为64B
差错检错分为检测编码和纠错编码。差错基本上都是由于噪声引起,注意两个Tips:
检错码是能检测而不能直接定位错误,因此无法纠错
纠错码虽然可以完成前向纠错,但是开销很大,在网络中也比较少使用
噪声的种类
【全局性】
由于线路本身电气特性所产生的随机噪声(热噪声),是信道固有的,随机存在的
解决方法:提高信噪比
【局部性】
外界特定的短暂原因所造成的冲击噪声,是产生差错的主要原因
解决办法:通常利用编码技术来解决
差错的种类
位错:0变1、1变0
帧错
丢失:【1】【3】
重复:【1】【2】【2】【3】
失序:【1】【3】【2】
链路层提供的服务种类
对于通信质量好的网络,采用无确认无连接服务
对于通信质量差的网络,采用有确认无连接服务
对于无线传输链路,采用有确认有连接服务
主要,有连接就一定有确认,不存在,无确认有连接服务
奇偶校验码
在待发送的数据后面增加一位校验码,使得整个数据中的“1”个的个数为奇数 or 偶数。
缺点:只能检查出奇数个的错误,检错能力为50%
循环冗余码 CRC
这里的步骤确实繁琐(建议查看视频)
.
原理 在有效信息位中加入几个校验位形成海明码,并把海明码的每个二进制位分配到几个奇偶校验组中,当某一位出错后,就会引起有关几个校验位的值发生变化,可以发现并确定错位的位置
海明距离 两个合法编码的对应比特取值不同的比特数称为码距,又称海明距离
一个有效编码集中,任意两个合法编码的海明距离的最小值,称为该编码集的海明距离
设m为有效信息的位数,r为校验位的位数
校验码一共有2^r种取值,有海明不等式: 2^r >= m+r+1(若要检测两位错,则需再增加1位校验位,即r+1)
确定校验位的分布 规定校验位在海明位号为2^(k-1)上,其余为信息位
分组形成校验关系 被校验数据位的海明位号等于校验该数位的各校验位海明位号之和
数据链路层
流量控制是点对点的
方法:接收端收不下就不发送确认
传输层
流量控制是端到端的
方法:接收端给发送端一个窗口公告
可靠传输与流量控制
可靠传输:发送端发送什么,接收端就接收什么
流量控制:控制发送速率,使接收方有足够的缓冲空间来接收每一个帧
滑动窗口机制
解决可靠传输:发送方自动重传
解决流量控制:在没有收到窗口确认的情况下不发送下一个
从滑动窗口机制的角度看,停止-等待协议相当于发送窗口和接收窗口大小均为1的滑动窗口协议
超时重传
接收端检测到数据分组有误码时,将其丢弃并等待发送方的超时重传,重传时间一般略大于平均往返时间(平均 RTT)。分组编号 为了让接收方(发送方)能够判断收到的数据分组是否重复,需要给数据(ACK)分组编号。由于停-等协议特性,只需一个比特编号即可(0、1)
如图所示:
信道利用率
这是个重点:信道利用率U = TD / (TD + RTT + TA)
发送方连续发送帧,当接收方检测出失序的信息帧后,要求发送方重发最后一个正确接收的信息帧后的所有未被确认帧n比特编号.
发送窗口大小:1 <= WT <= 2^n - 1
接收窗口大小:1
累计确认
连续收到好几个按序到达且无误码的数据分组后,针对最后一个数据分组发送确认分组
捎带确认 或者在自己有数据分组要发送时才按累计确认规则进行捎带确认
缺点
若信道的传输质量很差导致误码率较大时,不一定优
于停止-等待协议
为啥,发送窗口尺寸是2^n -1。主要是存在这样的情况,原因如下:
概述 设法只重传出现差错的数据帧和计时器超时的数据帧
每个发送缓冲区对应一个计时器,当计时器超时时,缓冲区的帧就会重传
一旦接收方怀疑帧出错,就会发一个否定帧NAK给发送方,要求发送方对NAK中指定的帧进行传
接收端要设置具有相当容量的缓冲区来暂存那些未按序正确收到的帧
缺点 需要开辟缓存空间用来存储数据
n比特编号,窗口大小:WR <= 2^(n-1)
共享信道要着重考虑的一个问题就是如何协调多个发送和接收站点对一个共享传输媒体的占用,即媒体接入控制MAC
信道复用
复用是通信技术中的一个重要概念,复用就是通过一条物理线路同时传输多路用户的信号
当网络中传输媒体的传输容量大于多条单一信道传输的总通信量时,可利用复用技术在一条物理线路上建立多条通信信道来充分利用传输媒体的带宽
频分多路复用 FDM
各个用户分配不同的频带,之后始终使用相同的频带进行通信。
不同的用户在同样的时间占用不同的带宽(模拟信号角度的带宽)
系统效率较高
实现简单
时分多路复用(TDM)
将时间划分为等长的时分复用帧,每一帧划分为若干时隙。
每一个用户在一个TDM帧中占用固定序号的时隙。
改进:统计时分复用(STDM)
使用集中器收集各个用户的数据,并按照先后顺序存入自己的缓存,之后按照先后顺序填充STDM帧,
帧满即发送出去。
STDM帧大小小于连接在集中器上的用户数。
波分多路复用(WDM)
介质为光纤,原理类似于光的频分多路复用。
码分多址(CDMA):
说白了就是数据压缩表示。
将一个比特位用一组特定的码片发送,每一个用户拥有唯一的码片。
码片直接发送代表1,反码发送代表0。对于各个用户的码片,要求其规格化内积等于0,且其自身的内积为1,即:
m为码片的位数
S和T分别为两个用户的码片
两个数据的分离
将合并的数据与码片取规格化内积:
得到的结果即为S对应用户发送的比特位。
例:站点A、B、C通过CDMA共享链路,其码片序列分别为(1,1,1,1)、(1,-1,1,-1)、(1,1,-1,-1),若C从链路上接收到的序列为(2,0,2,0,0,-2,0,-2,0,2,0,2),则C收到A发送的数据是
将序列划分为与码片等长的片段:(2,0,2,0)、(0,-2,0,-2)、(0,2,0,2)
分别与A的码片做内积,再除以码片的长度:1、-1,1 注意(-1表示0):101
所有的用户可以随机的发送信息,发送信息时占用全部带宽。不采用集中控制方法解决发送信息的次序问题,所有用户能根据自己的意愿随机地发送信息,占用信道全部速率
主要有:
ALOHA协议(不听就说)
纯ALOHA协议
当网络中的任何一个站点需要发送数据时,可以不进行任何检测就发送数据
在一段时间内未收到确认,那么该站点就认为传输过程中发生了冲突
发送站点需要等待一段时间后再发送数据,直至发送成功
它的信道利用率是18.4%,ALOHA协议,先前王道后面的练习题有这样的计算题
时隙ALOHA协议
所有站在时间上同步起来,将时间划分为一段段等长的时隙,规定只能在每个时隙开始时才能发送一个帧
CSMA/CD协议(先听再说,边听边说)
载波监听多点接入/碰撞检测CSMA/CD(carrier sense multiple access with collision detection)
CS:载波侦听/监听
MA:多点接入
CD:碰撞检测(冲突检测),“边发送边监听”,适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站是否也在发送数据
属于半双工网络
发送前先侦听,每个站在发送数据前先要检验下总线上是否有其他站点正在发送数据
若有则暂时不发送数据,等到信道变空闲再发送
发送时,边发送变侦听,以便判断自己再发送数据时其他站点是否也在发送数据
争用期(碰撞窗口/以太网的端到端往返传播时延/2τ) 主机最多经过2τ(即δ->0)的时长就可检测到本次发送是否遭受了碰撞
然后最短帧长=RTT*发送速率。
此外注意,如果是A,B两个主机同时发送数据,此时最短帧长=0.5RTT发送速率。
为什么的话,可以自己推导一下!
载波监听多点接入/碰撞避免CSMA/CA(carrier sense multiple access with collision avoidance)使用CSMA/CA协议的原因:
无线局域网中CSMA/CD的检测实现较为困难
屏蔽站:当A和C都检测不到信号,认为信道空闲时,同时向终端B发送数据帧,就会导致冲突
工作原理
发送端:信道空闲,发送RTS:包含发射端地址、接收端地址、数据发送持续时间等。信道忙等待
接收端:收到RTS后,发出CTS响应请求
发送端:收到CTS后,开始发送数据帧,并预约信道
接收端:收到数据后进行CRC校验,正确则响应ACK
发送端:收到ACK,继续发送下一帧,循环直到结束
未收到ACK使用二进制指数退避算法确定推迟重发的时间
预约信道:告诉其他站点自己要传多久数据
RTS/CTS帧:站点没有收到响应自己的CTS之前无法发送数据,解决了隐蔽站问题
注意这里还有帧间间隔IFS
所有的站点必须在持续检测到信道空闲一段指定时间后才能发送帧,该时间称为帧间间隔IFS
帧间间隔的长短取决于该站点要发送的帧的类型 高优先级帧需要等待的时间短,可获得优先发送权
短帧间间隔 SIFS 最短的帧间间隔,用来分隔开属于一次对话的各帧。一个站点应当能够在这段时间内从发送方式切换到接收方式 ACK帧、CTS帧、由过长的MAC帧分片后的数据帧、以及所有回答AP探询的帧和在PCF方式中接入点AP发送的任何帧
DCF帧间间隔DIFS 在DCF方式中用来发送数据帧和管理帧(用于异步竞争访问的时延)
反正记住DIFS最长,每次发一个等待一个SIFS
退避算法
信道由忙转为空闲且经过DIFS时间后,还需要退避一段随机时间才能使用信道
【令牌传递协议】
令牌在网络上循环传递有主机需要发送信息时截获令牌修改标志位,将令牌占用
将数据附加在令牌后,形成数据帧再将令牌发送出去
【令牌继续循环】
目标主机将数据部分复制副本非目标主机直接传走令牌再次回到发送主机进行校验,若数据出错则再次发送将数据移除,标志位复位,继续传送令牌
令牌持有时间:每一个主机能占用令牌的时间是有限的,没有传递完则需要等待下一轮循环到自己再继续发送
【缺点:】
令牌开销
等待延迟
单点故障(一个节点故障则循环不能继续)
适用于负载较重、通信量较大的网络中,应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。
概述
无连接,不可靠(无编号、不确认) 尽最大努力交付,差错纠正由高层完成
拓扑结构 逻辑拓扑是总线形结构,物理拓扑是星形或拓展星形结构
使用CSMA/CD方式对总线进行访问控制
以太网的传输介质与网卡
介质访问控制(MAC)地址
MAC地址是对网络上各接口的唯一标识,而不是对网络上各设备的唯一标识
MAC地址的第一个字节的最后一位:0表示单播,1表示多播
网卡在出厂时都有一个唯一的代码,用于控制主机在网络上的数据通信
网卡
1. 局域网中连接计算机和传输介质的接口
2. 功能
1. 实现与局域网传输介质之间的物理连接和电信号匹配(MAC地址)
2. 实现帧的发送与接收、帧的封装与拆封、介质访问控制、数据的编码与解码及数据缓存功能
以太网的MAC帧
1、传统局域网的缺陷
缺乏流量隔离:广播流量会跨越整个机构网络(ARP、RIP、DHCP协议)
一个单位的不同部门共享一个局域网,对安全不利
2、VLAN
将局域网内的设备划分成与物理位置无关的逻辑组的技术VLAN是通过软件的方式实现的,因此节点的位置不受物理位置的限制,每个VLAN是一个单独的广播域/不同的子网实现
VLAN之间的通信:将帧上附加相应的VLAN标签
优点:
有效的共享资源优化管理提高了安全性。
小结
概念 通常是覆盖范围很广的长距离网络。广域网的通信子网主要使用分组交换技术,由结点交换机以及连接这些交换机的链路组成
使用串行线路通信的面向字节的协议,该协议应用在直接连接两个结点的链路上用来通过拨号或专线方式建立点对点连接发送数据。这玩意主要就是为了和ISP进行连接用的。
特点
PPP提供差错检测但不提供纠错功能,只保证无差错接收(CRC校验),它是不可靠的传输协议,因此不使用序号和确认机制
透明传输(面向字节)
异步线路:字节填充
同步线路:比特填充(硬件)
PPP两端可以运行不同的网络层协议(仅支持全双工链路,仅支持点对点链路,不支持多点线路)
封装成帧:帧定界符 MTU:不超过1500字节
高级数据链路控制(High-Level Data Link Control或简称HDLC),采用全双工通信,所有帧采用CRC检验,对信息帧进行顺序编号HDLC的站主站发送命令(包括数据信息)帧接收响应帧负责对整个链路的控制系统的初启、流程的控制、差错检测或恢复等从站是接收由主站发来的命令帧向主站发送响应帧配合主站参与差错恢复等链路控制复合站:既能发送,又能接收命令帧和响应帧HDLC的数据操作方式正常响应方式异步平衡方式异步响应方式HDLC的帧格式
两种协议的比较
网桥的作用
网桥:根据MAC帧的目的地址对帧进行转发和过滤。当网桥收到一个帧时,并不向所有接口转发此帧,而是 先检查此帧的目的MAC地址,然后再确定将该帧转发到哪一个接口,或者是把它丢弃(即过滤)。网桥一般来说只有两个接口(可能有更多)。通过网桥将多个冲突域连接起来形成一个广播域,则每一个原来的冲突域就是一个网段。
广播域:网络中能接收任一设备发出的广播帧的所有设备的集合
网段:一般指一个计算机网络中使用同一物理层设备(传输介质,中继器,集线器等)能够直接通讯的那一部分
网桥的优点
过滤通信量,增大吞吐量扩大了物理范围提高了可靠性可互连不同物理层、不同MAC子层和不同速率的以太网
2、透明网桥
“透明”指以太网上的站点并不知道所发送的帧将经过哪几个网桥。每个网桥包含一张转发表,记录了地址和对应接口A主机发送出一条数据到B主机该数据经由网段传到网桥1号接口网桥在转发表内查找A地址A地址不存在,则记录下A地址和对应的信息来源接口1A地址存在,则略过
网桥在转发表内查找B地址B地址存在,则将数据由B地址对应的端口发送出去B地址不存在,则将数据通过除了1接口之外的所有接口转发出去其他网桥同理
3、源路由网桥
在发送帧时,把详细的最佳路由信息(路由最少/时间最短)放在帧的首部中。实现方法源站以广播的形式发送一个发现帧发现帧通过不同的路由方式到达目的站,之后原路返回源站根据返回情况选择最合适的路由链路之后所有发向该目的站的信息都走这条路由
实现方法
使用交换机作为互联设备的以太网,称为交换式以太网。交换机可以根据MAC地址过滤帧,即隔离碰撞域
交换机的每个接口是一个独立的碰撞域
交换机隔离碰撞域但不隔离广播域(VLAN除外)【没说就是没有这个功能】
okey,接下来是第二个大头。
概述
IPv4地址就是给因特网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32比特的标识符32比特的IPv4地址不方便阅读、记录以及输入等,因此IPv4地址采用点分十进制表示方法以方便用户使用
为了缓解IPv4地址不够用,于是在基础上,发展出了子网划分技术。子网划分为子网掩码划分和(CIDR)无分类编址(注意,子网划分是机构内部的操作,划分,外界是无感知的)
引入 划分子网在一定程度上缓解了因特网在发展中遇到的困难,但是数量巨大的C类网因为其地址空间太小并没有得到充分使用,而因特网的IP地址仍在加速消耗 所以提出无分类编址的方法
无分类域间路由选择CIDR
路由聚合 这是一个考点
默认的子网掩码是指在未划分子网的情况下使用的子网掩码 A类:255.0.0.0 B类:255.255.0.0 C类:255.255.255.0
这里的计算比较简单,只是比较繁琐。
(算的时候,先算主机最多的)
概述 通过将专用网络地址转换为公用地址,从而对外隐藏内部管理的IP地址,目的同样也是延缓IPv4地址用尽
注意,做题的时候,私有地址不能出现在公网的目的主机上。在公网传输时,目的地址不能时这私有地址。
态路由配置及其可能产生的路由环路问题
这里有三个错误:
路由表条目类型
特殊的静态路由条目
IP数据报分片
最大传送单元MTU:链路层数据帧可封装数据的上限。以太网的MTU是1500字节(B)。
因此,网络层的首部+数据部分的最大长度就为1500B。
分片时,分组从0开始,通过将每一个分组的起始分组号/8得到片偏移量。
每一个分片的长度一定是8B的整数倍。
例:已知数据报首部为20B,数据部分为3800B,将其分为长度不超过1420B的数据报片 每一片的数据部分长度=1420 - 20 =
1400=1420−20=1400 分为三片:1400+1400+1000 = 38001400+1400+1000=3800 分别的偏移量
静态路由算法
动态路由算法
层次路由
那么,接下来是具体的网络协议内容,主要考的就是RIP,然后是OSPF的概念。
概述
距离等于16时不可达
,因此RIP只适用于小型互联网使用UDP
要点
和谁交换信息 仅和相邻路由器交换信息
交换什么信息 自己的路由表
何时交换信息 周期性交换(例如每30秒)
概述
基本过程
特点如图:
分组类型
问候分组:用来发现和维持邻站的可达性
数据库描述分组:向邻站给出自己的链路状态数据库中的所有链路状态项目的摘要信息
链路状态请求分组:向对方请求发送某些链路状态项目的详细信息
链路状态更新分组:用洪泛法对全网更新链路状态
链路状态确认分组:对链路更新分组的确认
为了使OSPF能够用于规模很大的网络,OSPF把一个自治系统再划分为若干个更小的范围,叫做区域
边界网关协议BGP
概述
过程
基于TCP
报文类型
此外,由图中概括起来是:
(1)发送数据的过程
应用层:产生报文
传输层:根据大小将报文分为报文段
网络层:将报文段加上IP地址(源主机和目的主机),形成(IP数据报)分组
数据链路层:将分组加上MAC地址(源主机和目的主机)和FCS
物理层:通过数字或模拟方式传输
(2)网络层数据传输的具体过程
解决下一跳走哪的问题:
1. ARP高速缓存:每台主机中都有的,IP地址与MAC地址的映射
在链路层传输数据报分组时,必须以MAC地址的形式传递,因此需要使用ARP协议来获得目的主机的
2. MAC地址,过程如下:
1)查找ARP高速缓存
首先查找本机的ARP缓存中有没有目的IP对应的MAC地址,如果有则直接填入
2)当目的主机在局域网内时
发送的请求分组中目的MAC地址为全1,表示广播分组
返回的响应分组中包括了目的MAC地址,直接填入即可
3)当目标主机不在本网络时
通过本机的子网掩码和目标地址做与运算,发现目标IP不在一个网段内
目的MAC地址设为默认网关(本网络出口路由器)的MAC地址
获取默认网关的MAC地址的方法仍然为通过ARP协议
之后的传输交由路由器处理
4)由路由器传到下一个路由器
源IP和目的IP不变
MAC地址改为相应的路由器MAC地址
5)由路由器到本网络内主机
源路由器通过ARP协议获得目的主机的MAC地址
IP地址仍然为最初的地址
MAC地址为路由器地址和获得的目的主机MAC地址
功能:完成主机或路由器IP地址到MAC地址的映射
过程
功能:用于主机动态地分配IP地址,提供了即插即用的联网机制(地址可复用)
若DHCP在另外的网段,可使用DHCP中继代理
DHCP服务器分配给DHCP客户的IP地址是临时的,因此DHCP客户只能在一段有限的时间内使用这个分配到的IP地址
DHCP的客户端、服务器用广播方式交互 基于UDP的应用层协议
在网络层,使用网际控制报文协议(ICMP)来让主机和路由器报告差错和异常情况。
ICMP报文在首部的类型字段中表明此条报文的种类。
(1)ICMP差错报文
1. 差错报文的类型
终点不可达:无法交付
源点抑制(已取消):拥塞丢数据
2. 时间超过:报文生存时间TTL=0,丢弃部分已收到的数据报片
参数问题:首部字段有问题
3. 改变路由(重定向):有更好的路由
4. 差错报文的组成
ICMP差错报文本身是一个IP数据报
5. 不发送差错报文的情况
对ICMP差错报告报文不再发送ICMP差错报告报文
对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
对具有组播地址的数据报都不发送ICMP差错报告报文
对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文
(2)ICMP询问报文
回送请求和回答报文:能否PING通
公众号 蓝研知己
时间戳请求和回答报文:获得时间戳
掩码地址请求和回答报文
路由器询问和通告报文
(3)ICMP应用
PING:测试两个主机之间的连通性,使用了ICMP回送请求和回答报文
traceroute:跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文
发送一连串的报文,TTL依次设置为1、2、3……
每到一个新的路由,就有一个数据报生命周期结束
不断接受差错报告报文
IPV6数据报结构
首部(固定40B)
版本:协议版本,IPV6
优先级:数据报的优先级
流标签:从特定源点到特定终点的一系列数据报称为一个“流”,属于同一个流的数据报拥有相
同的流标签(类似IPV4的分组标签)
有效载荷长度:有效载荷部分的大小(扩展首部+数据部分)
下一个首部:标识下一个首部(扩展首部)
每一个扩展首部中也有此字段
跳数限制:类似IPV4的TTL
源地址、目的地址:共计128位
有效载荷(最大64KB,即64 * 2^10 B=65535 B)
包括原IPV4首部中的扩展首部部分
IPV4与IPV6
1、区别
地址:将地址长度从32位(4B)扩展到128位(16B)
IPV6移除了校验和字段,减少每跳的处理时间
IPv6将IPv4的可选字段移出首部,提高了路由器的处理效率
IPv6支持即插即用(即自动配置),不需要DHCP协议
IPv6首部长度必须是8B的整数倍,IPv4首部是4B的整数倍
IPv6只能在主机处分片,IPv4可以在路由器和主机处分片
通过ICMPv6差错报告报文报告数据报过大,主机重新分片
IPv6取消了协议字段,改成下一个首部字段
IPv6取消了总长度字段,改用有效载荷长度字段
IPv6取消了服务类型字段
IPv6支持资源的预分配
2、IPV4向IPV6过渡
双栈协议:设备同时启用IPV4和IPV6协议栈
隧道技术:设备使用隧道协议,隧道协议能够将其他协议的数据包重新封装并通过隧道发送
IPV6地址
1、IPV6地址的表示
一般形式:4BF5:0000:0000:0000:BA5F:039A:000A:2176
压缩形式:4BF5:0:0:0:BA5F:39A:A:2176(舍弃前面的0,每一位至少保留一位数字)
零压缩:4BF5::BA5F:039A:000A:2176(将连续的0用::表示)
零压缩在一个地址中只能使用一次。
2、IPV6基本地址类型
单播
一对一通信
可做源地址+目的地址
多播
一对多通信
可做目的地址
任播
一对多中的一个通信
可做目的地址
组播的概念
组播机制是让源计算机仅发送一次数据,被传递的数据到达尽可能近的结点才开始复制和分发,是种一对多的传输方式
IP组播地址
属于多组播的设备将被分配一个组播组IP地址, 我们先前的D类地址就是组播地址。
IGMP与组播路由算法
见导图:
移动IP的概念
移动IP技术是移动结点(计算机/服务器等)以固定的网络IP地址,实现跨越不同网段的漫游功能,并保
证了基于网络IP的网络权限在漫游过程中不发生任何改变。
移动结点:
具有永久IP地址的移动设备
归属代理(本地代理)
一个移动结点的永久“居所”称为归属网络
在归属网络中代表移动节点执行移动管理功能的实体叫做归属代理
永久地址(归属地址/主地址):
移动站点在归属网络中的原始地址
外部代理(外地代理):
在外部网络中帮助移动节点完成移动管理功能的实体称为外部代理
转交地址(辅地址):
可以是外部代理的地址或动态配置的一个地址
移动IP通信过程
移动结点刚进入外部网络
动结点移动到了下一个网络
移动结点回到了归属网络
这一章内容绝对是最多的,成功更新到10版本。
冲突域与广播域
路由器的基本结构与功能
路由表与路由转发
运输层的话,其实核心点不多,也就是UDP的格式,TCP的格式,然后就是TCP的可靠传输,拥塞控制,还有这个三次握手,四次挥手。其实非常简单。
运输层概述
之前介绍的物理层、数据链路层和网络层共同解决了将主机通过异构网络互联起来所面临的问题,实现了主机到主机的通信实际上,计算机网络中进行通信的真正实体是位于通信两端主机中的进程。如何为运行在不同主机上的应用进程提供直接的通信服务是运输层的任务(运输层协议又称为端到端协议)
运输层“直接”为应用进程间的逻辑通信提供服务
运输层向高层用户屏蔽了下面网络核心的细节(如网络拓扑、所采用的路由选择协议等),它使应用进
程看见的就好像是在两个运输层实体之间有一条端到端的逻辑通信信道
根据应用需求的不同,因特网的运输层为应用层提供了两种不同的运输协议,即面向
连接的TCP和无连接的UDP。
具备功能
传输层提供进程和进程之间的逻辑通信
这里注意下,网络层是为主机提供逻辑通信,而传输层为主机上的进程提供端到端的逻辑通信
复用和分用
复用:A B 两个不同应用进程可以使用同一个传输层协议传输数据
分用:传输层从网络层收到数据后交付指明的应用进程
传输层对收到的报文进行差错检测(同样需要注意:网络层,只校验首部是否差错,而传输层需要对
报文进行差错检测)
传输层的两种协议
TCP
可靠
面向连接
时延大
适用 于大文件
UDP
不可靠
无连接
时延小
适用 于小文件
端口(逻辑端口/软件端口):是传输层的SAP,唯一标识主机中的应用进程
端口号只有本地意义,只是为了标志本计算机应用层中各个进程在和传输层交互时的层间接口
端口号长度为16bit,能表示65536个不同的端口号
服务端使用的端口号
熟知端口号(0~1023):给TCP/IP最重要的一些应用 程序,所有用户都知道
登记端口号(1024~49151):为没有熟知端口号的应用程序使用的,使用时登记
客户端使用的端口号(49152~65535):仅在客户进程运行时才动态选择
常见端口号
套接字:主机号+端口号
在网络中采用发送方和接收方的套接字组合来识别端点,套接字唯一标识了网络中的一个主机(主机
号)和它上面的一个进程(端口号)。
UDP概述
UDP只在IP数据报服务之上增加了很少功能,即复用分用和差错检测功能。
UDP的主要特点
UDP是无连接的
UDP采用尽最大努力交付,不保证可靠交付
UDP是面向报文的,适合一次性传输少量数据的网络应用
UDP无拥塞控制,有利于实时应用(视频,语音)
UDP首部开销小
面向报文:应用层给UDP多长的报文,UDP就照样发送,即一次发一个完整报文,不做处理
如果应用层传送下来的报文太长,UDP会将报文交给IP层,从而导致分片
如果应用层传送下来的报文太短,那么IP数据报的首部相对长度太长
UDP首部格式
长度;UDP数据报的长度(首部+数据),其最小值是8(仅首部,8B)
校验和:检测UDP数据报在传输中是否有错,有错就丢弃。该字段是可选的,当主机不想计算则为0
注意:UDP检验和提供了差错检测功能,会在UDP用户数据报之前增加12字节的伪首部,这伪首部既不向 下传送也不提供给上层,仅仅为了计算校验和,这个12B就是凑数用的,没啥用!
发送方
接收方
1. 加上伪首部
2. 将伪首部+首部+数据字段进行二进制反码求和
结果全为1,则无差错
否则视情况丢弃数据,或交给应用层并附上差错警告
TCP是面向连接(虚连接)的传输层协议
每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的
无法用于广播等
TCP连接 = {socket1,socket2} = {(IP1 : prot1),(IP2 : prot2)}
TCP提供可靠交付的服务,无差错、不丢失、不重复、按序到达
TCP提供全双工通信
发送缓存
准备发送的数据
已发送但尚未收到确认的数据
接收缓存
按序到达但尚未被接受应用程序读取的数据
不按序到达的数据
TCP面向字节流
TCP把应用程序交下来的数据看成仅仅是一连串的无结构的字节流
TCP将要传输的数据分成多个字节,以字节为单位传送
源端口和目的端口:
标识该TCP报文段的应用进程
序号:
指出本TCP报文段数据载荷的第一个字节的序号
确认号:
期望收到对方下一个数据报的数据载荷的第一个字节的序号,也是对收到所有数据的确认 若确认号=n,n-1数据已经正确接收
数据偏移:
指出TCP报文段的数据起始处距离TCP报文段的起始处有多远(指出首部长度) 单位为4字节
保留:
今后使用
URG:
紧急指针字段有效
ACK:
取值为1时确认号字段才有效
PSH:
报文段尽快上交应用进程,不必等到接收缓存都填满后再向上交付
RST:
用来复位TCP连接,为1时,表明TCP连接出现了异常,必须释放连接再重新建立连接;还用来拒绝一个非法的报文段或拒绝打开一个TCP连接
SYN:
在TCP连接建立时用来同步序号
FIN:
用来释放TCP连接
窗口:
指出发送本报文段一方的接收窗口
校验和:
检查包括TCP报文段首部和数据载荷两部分(校验时需加上前面12字节伪首部)
紧急指针:
指出在本报文段中紧急数据共有多少字节(当发送方有紧急数据时,可将紧急数据插队到发送缓存的最前面)
选项
最大报文段长度MSS选项:TCP报文段数据载荷部分的最大长度
窗口扩大选项:为了扩大窗口(提高吞吐率)
时间戳选项:用来计算往返时间RTT;用于处理序号超范围情况
选择确认选项
填充:使整个首部长度是4B的整数倍
TCP连接的建立采用客户服务器方式
主动发起连接建立的应用进程叫做客户,而被动等待连接建立的应用进程叫服务器
注意,在这里我们认为,一个TCP连接需要的是一个RTT,因为第三次握手的时候,已经在传数据了!
客户端发送连接请求报文段,无应用层数据
SYN=1
seq=x(随机产生)
ACK=0
ack无效
服务器端为该TCP连接分配缓存和变量,并向客户端返回确认报文段,允许连接,无应用层数据
SYN=1
seq=y(随机)
ACK=1
ack=x+1
客户端为该TCP连接分配缓存和变量,并向服务器端返回确认的确认,可以携带数据
SYN=0
seq=x+1
ACK=1
ack=y+1
SYN洪泛攻击:一直发送第一次握手的SYN数据包,并不进行确认,导致服务器有大量挂起等待确认的TCP连接,消耗CPU和内存,进而导致死机
解决方法:SYN cookie
2、TCP连接释放
参与一条TCP连接的两个进程中的任何一个都能终止该连接
此外:
连接已建立后
TCP服务器进程没收到一次TCP客户进程的数据,就重新设置并启动保活计时器(2H)
若保活计时器到时后,TCP服务器进程就向TCP客户进程发送一个探测报文段(每75s一次,十次后仍无响应,则关闭连接)
可靠:保证接收方进程从缓存区读出的字节流与发送方发出的字节流是完全一样的
1、校验
与UDP类似,通过伪首部进行检验和校验
2、序号
为传输流中的每一个字节进行编号,将缓冲区中的字节组成若干个TCP段(数据报),通过确认号和序
号的机制进行发送
3、确认
接收方收到报文段后,返回确认字段,确认字段中的确认号为下一个期望收到的起始字节编号。
捎带确认:接收方将确认字段捎带在自己要发送的数据中(ACK=1,使用相应的确认号即可)
累计确认:只确认到第一个丢失为止的字节
超时重传(知道就行):
TCP的发送方在规定的时间(重传时间RTTs)内没有收到确认就要重传已发送的报文段,
RTTs本质是加权平均往返时间
重传时间过短:太长的数据报来不及发送完毕
重传时间过长:增加网络空闲时间,降低传输效率
TCP采用自适应算法,动态改变重传时间RTTs
冗余ACK(冗余确认)
每当比期望序号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号
例:发送方已发送1,2,3,4,5报文段
接收方收到1,返回给1的确认(ACK=2)
接收方收到3,返回给1的确认(ACK=2,冗余ACK)
接收方收到4,返回给1的确认(ACK=2,冗余ACK)
接收方收到5,返回给1的确认(ACK=2,冗余ACK)
发送方收到3个对于报文段1的冗余ACK
发送方认定2丢失,重传2
一般来说我们总希望数据传输快一些但如果数据发送过快,接收方可能来不及接收,造成
数据丢失
流量控制:让发送方的发送速率不要太快,让接收方来得及接收。
这里的话,和链路层的可靠传输SW协议有点类似,区别在于,服务端会指定发送方的窗口大小。(发送方的当前窗口大小,在流量控制方面),同样也是控制发送方不要太残暴了。
okey,这一章快结束了,我们来看到TCP的拥塞控制,这里的话,要注意两个点 ,一个是老的机制,一个是新的机制,如果题目当中有说到三次确认,那么就是新的机制,也就是快开始。
拥塞 对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏
拥塞控制 防止过多数据注入网络,保证网络中的路由器或链路不致过载
若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降
四种拥塞控制算法的条件
快重传+快恢复(新的,有出现这个三次累计确认的话,就是用这个)
这里面的话主要分为两个部分吧,一个就是最简单的记忆部分,当然也有细节点的,比如这个:
当然遇到了也没事,画个图先。
应用层对应用程序的通信提供服务
应用层协议定义了什么
应用进程交换的报文类型
请求还是响应
各种报文类型的语法
报文中的各个字段及其详细描述。
字段的语义
包含在字段中的信息的含义
进程何时、如何发送报文,以及对报文进行响应的规则
服务器:提供计算服务的设备
永久提供服务
永久性访问地址/域名
客户机:请求计算服务的主机
与服务器通信,使用服务器提供的服务
间歇性接入网络
可能使用动态IP地址
不与其他客户机直接通信
应用情景
Web
文件传输FTP
远程登录
电子邮件
不存在永远在线的服务器
每个主机既可以提供服务,也可以请求服务
任意端系统/节点之间可以直接通讯
节点间歇性接入网络
节点可能改变IP地址
可扩展性好
网络健壮性强
域名系统(DNS)是因特网使用的命名系统,用来把便于人们记忆的具有特殊含义的域名
(如www.baidu.com)转变为便于机器处理的IP地址
DNS系统采用C/S模型,运行在UDP上, 端口 53
顶级域名服务器:管理该顶级域名注册的所有二级域名
权限域名服务器:负责一个区的域名服务器,将域名转换为所管辖主机的IP地址
本地域名服务器:当一个主机发出DNS查询请求时,这个查询请求报文就发给本地域名服务器,本
地域名服务器将请求转交至根域名服务器
最好的情况就是这个,在本地的域名服务器里面有了缓存。
例题:
首部
From(系统自动生成):xxxx@gmail.com
To(必须填入):xxxx@qq.com
Subject(可选):电子邮件格式
主体
正文内容
电子邮件组成结构
用户代理
为用户提供的图形界面
例如outlook等
将邮件发送到自身的邮件服务器
邮件服务器
将邮件发送到接收方的邮件服务器
向发件人报告邮件传输结果
可以同时充当服务器和客户
基于C/S模式
使用TCP连接实现可靠传输(!!!)
1、简单邮件传送协议SMTP
SMTP客户:负责发送邮件的SMTP进程
SMTP服务器:负责接收邮件的进程
TCP连接,端口号:25
传输过程
建立连接
邮件发送
连接释放
SMTP协议的缺点
SMTP不能传送可执行文件或者其他二进制对象
SMTP仅限于传送7位ASCII码,不能传送其他非英语国家的文字
SMTP服务器会拒绝超过一定长度的邮件
通用因特网邮件扩充MINE
可以将原本SMTP不支持传输的格式、语言等转化为7位ASCII码,经由SMTP传输后再恢复为原文件类
型。
2、邮局协议POP3
端口为110
在传输层明文传输
将邮件下载至客户端,并视情况
继续保留在服务器中
删除服务器中的邮件
3、网际报文存取协议IMAP
当用户Pc上的IMAP客户程序打开IMAP服务器的邮箱时,用户可以看到邮箱的首部
若用户需要打开某个邮件,该邮件才上传到用户的计算机上
IMAP可以让用户在不同的地方使用不同的计算机随时上网阅读处理邮件
IMAP允许只读取邮件中的某一个部分
4、基于万维网的电子邮件
使用浏览器登录电子邮箱来收发电子邮件
用户代理
浏览器
通过HTTP协议与邮件服务器连接
邮件服务器
使用供应商的邮件服务器而不是自己的
邮件服务器之间的通信协议仍然为SMTP
万维网概述
HTTP定义了:
浏览器(万维网客户进程)怎样向万维网服务器请求万维网文档
服务器怎样把文档传送给浏览器
1、HTTP连接过程
2、HTTP协议的特点
3、HTTP协议的连接方式
4、网站访问实例
HTTP/1.0采用非持续连接方式 每个页面元素对象的传输都需要单独建立一个TCP连接
1.1 的话是长连接,比如我们的netty默认支持的就是1.1,当然一般情况下,我们还是直接使用websocket协议进行开发。
6、Cookie
还有session,token呢。考研知道cookie就得了。但是作为开发者,我们要知道的可不仅仅只是这些,我们还有OAuth2.0,扯远了,扯远了,用的话也不是多高级的东西。