文字概念
概论
网络为什么要分层?多层通信的实质是什么?
- 解决网络的异构性和复杂性问题
- 使得用不同媒介连接起来的不同设备和网络系统在不同的应用环境下实现互操作性,并满足各种业务的需求。
- 通过分层的方法,把复杂的网络互联问题划分为若干个较小的、单一的问题,在不同层上予以解决,可以解决异质性问题
- 可以解决分层与功能、服务与接口、协议等问题
- 多层通信的实质是实现了对等层实体之间的虚拟通信、下层向上层提供服务、实际通信在最底层完成
- 网络分层以后,各层之间是独立的,灵活性好。结构上可分割开。易于实现和维护。能促进标准化工作。
计算机网络体系结构
层 | 作用 |
---|---|
应用层 | 通过应用进程间的交互来完成特定网络应用 |
*表示层 | 在不同的数据格式之间进行转换操作,以实现不同计算机系统间的信息交换 |
*会话层 | 利用运输层提供的服务,使应用建立和维持会话,并能使会话获得同步 |
运输层 | 负责向两台主机中进程之间的通信提供通用的数据传输服务 |
网络层 | 负责为分组交换网上的不同主机提供通信服务 |
数据链路层 | 在链路上无差错的传送帧,解决分组在一个网络(或一段链路)上传输的问题 |
物理层 | 怎样才能在连接各种计算机的传输媒体上透明地传输数据比特流 |
在各层传输的数据单位:(协议数据单元PDU:对等层次之间传送的数据单位)
- 物理层:比特(无结构的比特流)
- 数据链路层:数据帧
- 网络层:分组、数据报
- 传输层:TCP(报文段)、UDP(用户数据报)
五种不同的中间设备:
- 物理层:转发器、集线器
- 数据链路层:网桥或桥接器、交换机、接入点AP(无线接入点WAP)
- 网络层:路由器、三层交换机
- 网络层以上:网关(用网关连接两个不兼容的系统需要在高层进行协议的转换)
当中间设备是转发器或网桥时,这仅仅是把一个网络扩大了,而从网络层的角度看,这仍然是一个网络,一般并不称之为互联网络。
物理层
奈式准则
奈式准则描述的是无噪声影响下,码元的传输速率,描述的是每秒可以传输多少个码元
奈式准则体现了信道的频谱宽度决定通信速率,体现了信道的频谱宽度对信道的约束
奈式准则的意义:激励工程人员不断探索更加先进的编码技术,使每一个码元携带更多比特的信息量
调制速率就是码元传输速率
单位:波特率Bd(每秒钟传送的码元符号的个数)
bps(bit per second)
香农公式
数据的传输还受到信号噪声比的影响
体现了信噪比对通信的约束
信噪比:信号的平均功率和噪声的平均功率之比,常记为 S / N S/N S/N
使用分贝(dB)作为度量单位。即:
信 噪 比 ( d B ) = 10 log 10 S / N ( d B ) 信噪比(dB)=10\log_{10}^{S/N}(dB) 信噪比(dB)=10log10S/N(dB)
香农公式:指出在带宽受限且有高斯白噪声干扰的信道的极限信息传输速率
C = W log 2 1 + S / N C=W\log_{2}^{1+S/N} C=Wlog21+S/N(bit/s)
W为信道带宽;S为信道内所传信号的平均功率;N为信道内部的⾼斯噪声功率,
S
/
N
S/N
S/N为信噪比。
⾹农公式表明,信道的带宽或信道中的信噪比越大,信息的极限传输速率就越高。
香农公式指出了信息传输速率的上限。
香农公式的意义在于:只要信息传输速率低于信道的极限信息传输速率,就⼀定存在某种办法来实现无差错的传输。
告诫工程人员:在有噪声的实际信道上,不论采用多么复杂的编码技术,都不可能突破香农公式给出的信息传输速率的绝对极限。
数据在信道中的传输速率受到哪些因素的限制?
- 为了避免“码间串扰”现象的发生,码元的传输速率就受到了限制。
- 所有电子设备和通信信道中都存在噪声。对于一定的信噪比,码元的传输速率越大就越容易出现接收时的判决错误。因而数据在信道中的传输速率是受限的。
“比特/秒”和“码元/秒”有何区别?
这两者是不完全一样的,因为比特和码元所代表的意思并不相同。在使用二进制编码时,一个码元对应一个比特,在这种情况下,“比特/秒”和“码元/秒”在数值上是一样的。但一个码元不一定总是对应于一个比特。根据编码的不同,一个码元可以对应于几个比特,但也可以是几个码元对应于一个比特。
物理层传输的介质
导引型
(电磁波被导引沿着固体媒体(铜线或光纤)传播)
- 双绞线:传输距离远、传输质量高
模拟传输和数字传输都可以使⽤双绞线,其通信距离⼀般为几到十几公⾥。
- 屏蔽双绞线STP
- ⽆屏蔽双绞线UTP
- 同轴电缆:抗干扰能力好,传输数据稳定,价格便宜
- 光缆
通信容量大;传输损耗小,适用于长距离传输;抗电磁干扰能力强;
保密性好;体积小,重量轻;传输可靠性高;
- 多模光纤
- 单模光纤
非导引型
(电磁波通常以无线传播)
- 短波通信
- ⽆线电微波通信
- 卫星通信
- 红外线
物理层的主要任务
- 机械特性:指明接口所用接线器的形状和尺寸、引脚数目等
- 电气特性:指明在接口电缆的各条线上出现的电压的范围
- 功能特性:指明某条线上出现的某⼀电平的电压的意义
- 过程特性:指明对于不同功能的各种可能事件的出现顺序
数据链路层
以太网
以太网从之前的总线结构逐渐过渡到星形拓扑结构,在星形的中⼼增加了⼀种可靠性⾮常⾼的设备——集线器(使用双绞线)。
IEEE制定星形以太网 10BASE-T的标准802.3i。“10”代表10Mbit/s数据率,BASE表示连接线上的信号是基带信号,T代表双绞线。
BASE:连接线上的信号是基带信号
T:双绞线
前面的数字:
- 10:代表 10 M b i t / s 10Mbit/s 10Mbit/s数据率
- 100:代表 100 M b i t / s 100Mbit/s 100Mbit/s数据率
从表面上看,使用集线器的局域网在物理上是一个星形网,但使⽤集线器的以太网在逻辑上仍是⼀个总线网,各站共享逻辑上的总线,使用的还是CSMA/CD协议(各站中的适配器执行CSMA/CD协议)。
以太⽹交换机不使用共享总线,没有碰撞问题,因此不使⽤CSMA/CD协议,以全双共方式工作,但仍然采用以太网的帧结构。
高速以太网
速率达到或超过
100
M
b
i
t
/
s
100Mbit/s
100Mbit/s的以太⽹称为⾼速以太⽹。
最短帧长还是64字节,512比特!
争用期还是512比特时间,但是数据率扩大了十倍,因而实际争用期是10Mbit/s以太网的十分之一。帧间最小间隔也是十分之一。
记住:10Mbit/s的以太网,100Mbit/s的以太网的争用期都是相对于自身发送速率而言的512比特时间。
在以太网中,到万兆网开始彻底不用CSMA/CD
吉比特以太网
- 允许在 1 G b i t / s 1Gbit/s 1Gbit/s下以全双⼯和半双⼯两种⽅式⼯作
- 在半双⼯⽅式下使⽤ C S M A / C D CSMA/CD CSMA/CD 协议,全双⼯⽅式不使⽤ C S M A / C D CSMA/CD CSMA/CD 协议。
- 为保持64字节最小帧长度,以及100⽶的⽹段的最大长度,吉⽐特以太⽹增加了两个功能:
- 载波延伸
使最短帧长仍为64字节,同时将争用时间增⼤为512字节。
凡发送的MAC帧长不⾜512字节时,就⽤⼀些特殊字符填充在帧的后⾯,使MAC帧的发送长度增⼤到512字节。接收端在收到以太⽹的 MAC 帧后,要将所填充的特殊字符删除后才向⾼层交付。 - 分组突发
当很多短帧要发送时,第⼀个短帧采⽤载波延伸⽅法进⾏填充,随后的⼀些短帧可⼀个接⼀个地发送,只需留有必要的帧间最⼩间隔即可。这样就形成可⼀串分组的突发。
- 当吉⽐特以太⽹⼯作在全双工方式时,不使用载波延伸和分组突发
争用期、最短帧长归纳:
- 10 M b i t / s 10Mbit/s 10Mbit/s 512 比特时间
- 100 M b i t / s 100Mbit/s 100Mbit/s 512比特时间
- 吉比特以太网 最短帧长64字节,512比特,同时将争用时间增⼤为512字节
CSMA/CD协议的要点归纳/工作流程
(1)准备发送:适配器从网络层获得⼀个分组,加上以太网的首部和尾部,组成以太网帧,放⼊适配器的缓存中,但在发送之前,必须先检测信道
(2)检测信道:若检测到信道忙,则应不停地检测,⼀直等待信道转为空闲。若检测到信道空闲,并在96比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。
(3)发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这⾥存在两种可能性:
- 发送成功:争⽤期内⼀直未检测到碰撞。这个帧肯定能够发送成功。发送完后什么也不做。回到准备发送阶段
- 发送失败:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。然后执行截断二进制指数退避算法,等待r倍512比特时间后,返回到检测信道阶段;若重传达16次仍不能成功,则停止重传而向上报错。
CSMA/CD 与 CSMA/CA 的对比、区别,为什么会不一样?
CSMA/CD和CSMA/CA的主要差别对比如下:
CSMA/CD:带有冲突检测的载波侦听多路访问,可以检测冲突,但无法“避免”
CSMA/CA:带有冲突避免的载波侦听多路访问,发送包的同时不能检测到信道上有无冲突,只能尽量“避免”
CSMA/CA 要配合停止等待协议使用,且拥有对信道的预约机制。
- 两者的传输介质不同,CSMA/CD用于总线式以太网,而CSMA/CA则用于无线局域网802.11a/b/g/n等等;
- 检测方式不同,CSMA/CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着发生变化;而CSMA/CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式;
为什么会不一样?
- 无线局域网的适配器无法实现碰撞检测
- 检测到信道空闲,其实信道可能并不空闲
- 即使我们能够在硬件上实现无线局域网的碰撞检测功能,也无法检测出隐蔽站的问题
网络层
IP地址的划分
两级的IP地址结构是⽹络号(标记主机所连接到的⽹络)+主机号(标记该主机)
A:
B:
C:
-
主机号全零:本主机所连接到的网络的地址
-
主机号全一:该网络上的所有主机,常用作广播
-
网络号全零:本网络
-
网络号全一:保留用作本地环回测试
注意,A类地址开头为0,网络号八位全0分配不出去,是本网络,网络号一个0后面跟7个1也分配不出去,是本地环回测试地址。
- A: < 127 <127 <127
- B: 128 , 191 128,191 128,191
- C: 192 , 223 192,223 192,223
如何解决IP地址耗尽的危机?
- 初期:IP分类编址A,B,C
- 无分类域间路由选择,将编制的形式更加灵活,地址空间的利用率得到提高
- 利用虚拟专用网VPN,使用仅在本机构内有效的IP地址,而不需要向互联网的管理机构申请全球唯一的IP地址,大大节约宝贵的全球IP地址资源。
利用NAT、NAPT机制,进行网络地址转换,NAPT利用不同端口号复用NAT路由器的全球IP地址,使得虚拟专用网的实现更加高效。 - IPv6,几乎用不完了
路由协议:域内、域间
AS:自治系统
自治系统AS是在单一技术管理下的许多网络、IP地址以及路由器,而这些路由器使用一种自治系统内部的路由选择协议和共同的度量。每一个AS对其他的AS表现出的是一个单一的和一致的路由选择策略。
互联网有两大类路由选择协议:
(1)内部网关协议IGP,包括了RIP和OSPF协议(⾃治系统AS内部)
(2)外部网关协议EGP,包括了BGP(⼀个⾃治系统AS1到另⼀个⾃治系统AS2)
AS之间的路由选择称为域间路由选择,AS内部的路由选择称为域内路由选择
每个自治系统都有一个或多个路由器(边界路由器),除运行本系统的内部路由选择协议外,还要运行自治系统间的路由选择协议。
RIP与OSPF的对比
RIP | OSPF | |
---|---|---|
最主要特点 | 简单 | 灵活 |
名称 | 路由信息协议 | 开放最短路径优先协议 |
内涵 | 距离向量协议 | 链路状态协议 |
发送信息对象 | 仅仅向自己相邻的几个路由器发送信息 | 通过输出端口向所有相邻的路由器发送信息(洪泛法) |
发送的信息 | 到所有网络的距离和下一跳地址 | 本路由器相邻的所有路由器的链路状态 |
结果 | 每一个路由器知道到所有网络的距离以及下一跳路由器,但不知道全网的拓扑结构 | 每个路由器都知道全网共有多少个路由器,以及哪些路由器是相连的,其代价是多少,每个路由器使用链路状态数据库中的数据,来构造出自己的路由表 |
特点 | 只能找出到某个网络的一条路径 | 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫作多路径间的负载均衡 |
路由的距离由固定的“跳数”来衡量 | OSPF允许管理员给每条路由指派不同的代价。OSPF对于不同类型的业务可计算出不同的路由 | |
更新时间 | 按固定的时间间隔交换路由信息 | 在网络运行的过程中,只要有一个路由器的链路发生变化,该路由器就要使用链路状态更新分组,用洪泛法向全网更新链路状态。 |
每隔一段时间,如30s,要刷新一次数据库中的链路状态 |
OSPF的重要优点就是更新过程收敛得快。OSPF使⽤层次结构的区域划分,区域与区域之间通过区域边界路由器相连,使得每一个区域内部交换路由信息的通信量大大减小。
- 区域边界路由器
- 主干路由器
- 自治系统边界路由器
主干区域的标识符为0.0.0.0
BGP的基本工作原理
边界网关协议BGP只是寻找⼀条能够到达目的网络前缀且⽐较好的路由(不能兜圈子),而并非要计算出⼀条最佳路由。
采用路径向量路由选择协议
下面这两个连接都是TCP连接,半永久性连接(双方交换完了信息后仍然保持着连接状态)
- eBGP:两个AS的边界路由器之间的连接
- iBGP:在AS内部,内部一般路由器与边界路由器之间的连接
eBGP、iBGP是同一个协议,eBGP是在不同AS的两个对等端的BGP连接,iBGP是同一AS的两个对等端之间的BGP连接,遵循同样的BGP协议。
由此可见,协议BGP并非仅仅运行在AS之间,而且也要运行在AS的内部。
协议BGP规定,在一个AS内部所有的iBGP必须是全连通的,即使两个路由器之间没有物理连接,但它们之间仍然有iBGP连接。
三种不同自治系统AS:
- 末梢AS:只能对直接连接的AS发送、接收分组,不能转发分组,不允许分组穿越自己的自治系统
- 穿越AS:为其他AS有偿转发分组
- 对等AS:经过事先协商的两个AS,彼此之间的发送或接收分组都不收费,这样大家转发分组都比较方便。
BGP的路由选择:
(按先后顺序执行选择)
- 本地偏好值最高的路由要首先选择
- 选择具有AS跳数最少的路由
- 使用热土豆路由选择算法(本着要使分组尽快离开本自治系统,寻找边界路由器,出去)
- 选择路由器BGP标识符的数值最小的路由
BGP报文是作为TCP报文的数据部分进行传送的。
RIP、OSPF、BGP报文格式总结
RIP | OSPF | BGP |
---|---|---|
用户数据报UDP的数据部分 | IP数据报的数据部分 | TCP报文的数据部分 |
虚拟专用网VPN和网络地址转换NAT
虚拟局域网VPN
专用地址:只能用作本地地址而不能用作全球地址。
在互联网中的所有路由器,对目的地址是专用地址的数据报一律不进行转发。
采用这样的专用IP地址的互联网络称为专用互联网或本地互联网,或更简单些,就叫作专用网。
专用IP地址也叫做可重用地址。
一个机构想构建自己的VPN就必须为它的每一个场所购买专门的硬件和软件,并进行配置,使每一个场所的VPN系统都知道其他场所的地址。
网络地址转换NAT
在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和互联网上的主机通信(并不需要加密),那么应该采取什么措施呢?
最简单的就是设法再申请一些全球IP地址。但是这是不容易做到的没目前使用的最多的是采用网络地址转换。
需要在专用网连接到互联网的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有⼀个有效的外部全球IP地址。
当专用网内的主机与互联网上的主机进行通信时,通过NAT路由器作IP数据报的源地址、目的地址的转变。
普通路由器在转发IP数据报时,对于源IP地址和目的IP地址都是不改变的。但NAT路由器在转发IP数据报时,一定要更换其IP地址(转换源IP地址或者目的IP地址)
当NAT路由器具有n个全球IP地址时,专用网内最多可以同时有n台主机接入到互联网。这样就可以使专用网内较多数量的主机,轮流使用NAT路由器有限数量的全球IP地址。
通过NAT路由器的通信必须由专用网内的主机发起。
专用网内的主机不能直接充当服务器用。
网络地址与端口号转换NAPT
为了更有效地利⽤NAT路由器上的全球IP地址,常⽤的NAT转换表把运输层的端口号也利⽤上。这样拥有多个本地地址的主机就能共用⼀个NAT路由器上的全球IP地址了。
普通路由器在转发分组时是工作在网络层的,但NAPT路由器还要查看和转换运输层的端口号。
多协议标签交换MPLS
与传统的IP分组转发有什么不一样
MPLS利用面向连接技术,使每个分组携带一个叫做标签的小整数。当分组到达交换机(即标签交换路由器)时,交换机读取分组的标签,并用标签值来检索分组转发表。这样就比查找路由表来转发分组快得多。
与传统IP路由方式相比,它在数据转发时,只在网络边缘分析IP报文头,而不用在每一跳都分析IP报文头,节约了处理时间。
为什么会有他?体现的优势是什么?
华为解释:
90年代中期,IP技术凭借技术简单和成本低廉实现快速发展,Internet数据海量增长。但由于硬件技术存在限制,基于最长匹配算法的IP技术必须使用软件查找路由,转发性能低下,因此IP技术的转发性能成为当时限制网络发展的瓶颈。
为了适应网络的发展,ATM(Asynchronous Transfer Mode)技术应运而生。ATM采用定长标签(即信元),并且只需要维护比路由表规模小得多的标签表,能够提供比IP路由方式高得多的转发性能。然而,ATM协议相对复杂,且ATM网络部署成本高,这使ATM技术很难普及。
如何结合IP与ATM的优点成为热门话题。多协议标签交换技术MPLS(Multiprotocol Label Switching)就是在这种背景下产生的。
传统的IP网络中,当网络很大时,查找含有大量项目的转发表需要花费很多的时间,在出现突发性的通信量时,往往还会使缓存溢出,这就会引起分组丢失、传输时延增大和服务质量下降。
优势:对打上标签的IP数据报用硬件进行转发,加快了IP数据报转发的过程
什么时候加标签,什么时候剥去标签?
当一个IP数据报进入到MPLS域时,MPLS入口节点就给它打上标签
当IP数据报离开MPLS域时,MPLS出口节点就把MPLS的标签去除
标签交换和IP交换的区别
标签交换 | IP交换 |
---|---|
面向连接 | 不面向连接,独立路由 |
ppt上那几道题
如果有相同的,那选的时候,就没法唯一的选出一个了
传输层
UDP在IP协议的基础上多了哪些功能
分用、复用(端口号)+差错控制(检验和不光检验首部,还检验数据字段)
用了UDP,不一定就是一定不可靠,也可以在各层实现可靠传输,TCP协议提供的是端到端的可靠传输
TCP的运输连接管理
TCP连接共有三个阶段:
- 连接建⽴
- 数据传送
- 连接释放
TCP的连接建立
采⽤C-S(Client-Server)模式,主动发起连接建⽴的进程称为Client,被动等待连接建⽴的进程称为Server
三次握手过程:
TCP通信双方同时发起⼀个连接,不会建立两个连接。
TCP的连接释放
TCP 连接释放过程是四报文握手。
四次挥手过程:
Client在发送完最后⼀个ACK报⽂后必须等待2MSL时间,为了保证A发送的最后⼀个ACK报⽂段能够到达B。
运输层使用了哪些方面的手段实现了传输的可靠性
理想的传输条件应具备的两个特点:
- 传输信道不产生差错
- 不管发送方以多快的速度发送数据,接收方总是来得及处理收到的数据
停止等待协议(连续ARQ协议)、滑动窗口协议
真正发送时的发送窗口取拥塞窗口和接收方接受窗口的最小值
杂
广播域&冲突域
----HUB 所有端口都在同一个广播域,冲突域内。
----Swith所有端口都在同一个广播域内,而每一个端口就是一个冲突域。
----Router的每个端口属于不同的广播域、冲突域。
结构概念
以太网V2的MAC帧格式
前⼗⼆字节分别为目的地址和源地址(开头是目的,然后是源),然后是两个字节的类型字段(⽤来标记上⼀层使⽤的是什么协议),第四个字段是数据字段,其长度范围在46字节到1500字节之间(46是为了保证整个MAC帧的最小长度为64字节),最后⼀个字段是4字节的帧检验序列FCS(使⽤CRC检验,不检验前同步码和帧开始定界符)。
在传输媒体上实际传送的要⽐MAC帧还多8个字节。这是因为当⼀个站在刚开始接收MAC帧时,由于适配器的时钟尚未与到达的比特流达成同步,因此MAC帧的最前⾯的若干位就⽆法接收,结果使整个MAC成为⽆⽤的帧。所以为了快速实现位同步,从MAC子层向下传到物理层时还需要在帧的前⾯插⼊8字节(由硬件生成),它由两个字段构成:第⼀个字段是7个字节的前同步码,作⽤是使接收端的适配器在接收MAC帧时能够迅速调整其时钟频率,使它和发送端的时钟同步(“实现位同步”)。第⼆个字段是帧开始定界符10101011。
注意:在使⽤SONET/SDH进⾏同步传输时不需要⽤前同步码,因为在同步传输时收发双⽅的位同步总是⼀直保持着的。
什么情况下MAC帧是无效帧?
- 帧的长度不是整数个字节
- ⽤收到的帧检验序列FCS查出有差错
- 收到的帧的MAC客户数据字段的长度不在46~1500字节之间(即MAC帧长度不在64~1518字节之间,加上了目的、源MAC地址12字节,类型2字节,FCS检验序列4字节,共18字节)
MAC地址的发送顺序:
IP数据报的格式
⼀个IP数据报由首部和数据两部分组成。⾸部的前⼀部分是固定20字节长度,是所有IP数据报必须具有的。⾸部的后⼀部分是⼀些可选字段,其长度可变。
固定部分各字段含义:
- 版本(4字节):IPv4,IPv6
- ⾸部长度(4位):单位是4字节,即4位如果是0101表示首部长度为45=20字节,恰好是固定长度,最长为1111,154=60字节
- 区分服务(8位):只有在使⽤区分服务时,这个字段才起作⽤
- 总长度(2字节):指⾸部和数据之和的长度,单位是1字节。由于总长度16位,因此数据报最⼤长度为
2
16
−
1
=
65535
2^{16}-1=65535
216−1=65535字节。通常传送这样长的数据报的情况是遇不到的,因为IP层下⾯的每⼀种数据链路层协议都规定了数据帧中数据字段的最⼤长度,即最⼤传送单元MTU。当⼀个IP数据报封装成链路层的帧时,数据报的总长度(首部+数据部分)⼀定不能超过数据链路层规定的MTU。最常用的以太网就规定了MTU=1500字节。若数据报长度超过MTU,则必须进行分片处理。
协议IP规定,在互联网中所有的主机和路由器都必须能够接受长度不超过576(512上层交付+60首部+4富余)字节的数据报。 - 标识(2字节):IP软件在存储器中维持⼀个计数器,每产⽣⼀个数据报计数器就加1,将此值赋给标识字段。具有相同的标识字段的值使分片后的各数据报最后才能正确地重装成原来的数据报。
- 标志(3位):⽬前只有两位有意义。
最低位标记为MF(More Fragment)。MF=1表示后⾯“还有分片”的数据报,MF=0表示这是若干数据报片中的最后一个。
标志字段中间的⼀位记为DF(Don’t Fragment),即“不能分片”。只有当DF=0时才允许分片。 - 位偏移(13位):单位是8字节。较长的分组在分片后,某片在原分组中的相对位置。即相对于用户数据字段的起点,该片从何处开始。除最后一个数据报片外,每个分片的长度⼀定是8字节(64位)的整数倍。
- ⽣存时间(8位):即TTL,指⽰数据报在网络中可通过的路由器数的最大值, 2 8 − 1 = 255 2^{8}-1=255 28−1=255,最大经过255个路由器
- 协议(8位):指出数据报携带的数据使⽤的协议(TCP、UDP、ICMP…)
- 首部检验和(2字节):只检验数据报的首部,而不包括数据部分。这⾥不采⽤CRC检验码,⽽是采取16位⼆进制反码求和算法(在正常有进位的加法下,如果最高位相加产生了进位,则最后计算的结果要加1),将所有16位字相加后(此时检验和部分16位全0)的和的反码写⼊检验和字段。接收⽅收到数据报后,将首部的所有16位字再使⽤反码运算相加⼀次,将得到的和取反码,若⾸部未发⽣任何变化,则结果应当为0,就保留数据报,否则认为出现了差错,丢弃此数据报。
- 源地址(4字节)
- ⽬的地址(4字节)
UDP数据报的格式
⾸部有8个字节,由4个字段组成,每个字段都是2字节,从前往后分别是源端口、目的端口、长度、检验和。
伪首部(12字节):源IP地址(4字节)、⽬的IP地址(4字节)、0(1字节)、17(1字节)、UDP长度(2字节)
计算检验和时,临时把12字节的“伪⾸部”和UDP⽤户数据报连接在⼀起。伪首部仅仅是为了计算检验和。(实际不存在)
IP数据报的检验和只检验IP数据报的首部,但UDP的检验和是把首部和数据部分一起都检验。
计算校验和过程:
- 把全0填入检验和
- 把伪首部以及UDP数据报看成是由许多16位的字串接起来的
- 如果UDP数据报的数据部分不是偶数个字节,则要填入一个全零字节(但此字节不发送)
- 按二进制反码计算出这些16位字的和
- 将此和的反码写入检验和字段,发送UDP数据报
接收端检验过程:
把收到的UDP数据报连同伪首部(以及可能的填充全0字节)一起,按二进制反码求这些16位字的和。当无差错时其结果应该为全1。
TCP报文段的首部格式
TCP传送的数据单元是报文段,TCP报文首部的前20个字节是固定的,后⾯有4n字节是根据需要而增加的选项(n为整数)。所以TCP首部最小长度为20字节。
⾸部固定部分各字段的意义:
必知计算
电路交换、分组交换、报文交换涉及的计算
奈式准则、香农公式
CDM码分复用
PPP协议字节填充、零比特填充(正向、逆向都要会)
总结:
- 碰到0x7D或者0x7E,前面插入0x7D,再把自身减去0x20
- 碰到小于0x20的,前面要插入0x7D,再把自身加上0x20
逆向:
- 碰到0x7D,删掉它,并把后面紧跟着的加上0x20
- 如果后面紧跟的小于0x40,则要减去0x20,而不是加上
CSMA/CD的工作方式相关
争用期/碰撞窗口
局域⽹的⼀端A需要单程传播时延的2倍的时间,才能检测到与另⼀端B的发送产⽣了冲突。将这边的端到端往返时延称为争用期,或碰撞窗口。经过争⽤期这段时间还没有检测到碰撞,才能肯定这次发送不会发⽣碰撞。
具体的争用期时间是 51.2 μ s 51.2\mu s 51.2μs,对于 10 M b i t / s 10Mbit/s 10Mbit/s以太网,在争用期内可发送512比特,即64字节。也可以说争用期是512比特时间。
因此在使⽤CSMA/CD协议时⼀个站不可能同时进⾏发送和接收,所以使⽤CSMA/CD的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。
截断二进制指数退避算法
最短帧长
由于存在⼀种可能:即发送端的帧非常短,在
2
τ
2\tau
2τ争⽤期内就已经把帧全部发送出去(并且在这期间没有检测到冲突),那么就不会收到帧发⽣碰撞的情况,也就不会进行重传了,这显然不是我们所希望的。
解决这⼀问题的办法:考虑到对于
10
M
b
i
t
/
s
10 Mbit/s
10Mbit/s的以太⽹,在
2
τ
2\tau
2τ也就是
51.2
μ
s
51.2\mu s
51.2μs时间内能够发送
512
b
i
t
512bit
512bit,即
64
64
64字节,因此规定最短帧长不得小于64字节,如果发送的数据非常少,则需要加⼊⼀些填充字节补齐⾄64字节。(凡收到长度小于64字节的帧都是由于冲突⽽异常中止的⽆效帧,应当立即丢弃)。
以太网的帧间最小间隔
9.6
μ
s
9.6\mu s
9.6μs,相当于96bit时间
使刚刚收到数据帧的站接收缓存来得及清理,做好接收下一帧的准备。