主要就是记一些做题的细节,捋一捋思路
网络协议三要素
(1)语法:即数据与控制信息的结构或格式。
(2)语义:即需要发出何种控制信息,完成何种动作以及做出何种响应。
(3) 同步:即事件实现顺序的详细说明。
子网划分相关问题
详细内容看这篇
对于原先网络前缀m,划分完n个子网后,子网的前缀就是 m + m a x ( l o g 2 n ) m+max(log_2n) m+max(log2n)
IP数据报分段
一个数据报长度为4000字节(固定首部长度,长度为20字节).现在经过一个网络传送,网络能传送的最大数据长度为1500字节.试问应当划分成几个短些的数据报片?各数据报片的数据字段长度,片偏移字段和MF标志应为何值?
标准IP头部20字节,MTU=1500,数据长度最多1480字节
第一个包:IP头部20字节,数据长度1480,偏移量=0/8=0,MF=1
第二个包:IP头部20字节,数据长度1480,偏移量=1480/8=185,MF=1
第三个包:IP头部20字节,数据长度=4000-21480=1040 ,偏移量=21480/8=370,MF=0
不分片DF(Do not Fragment)标志如果被置1,则数据报在传输过程中不能被分片
片未完MF(More Fragment)标志如果被置1,说明该数据报不是分片后的最后一个数据报,最后一个数据报的该位被置0。
片偏移是以8个字为单位计算的,也就是片数据信息首距离整体要传输的数据信息首部的距离除8。
最短帧长问题
最小帧长的存在是因为要确保两个站点都能及时正确接受到冲突发生的信号。
如果不满足最小帧长,如上图,可能存在一种情况,使得发送方A的信息在到达B时发生碰撞,此时碰撞又经过相同的路程返回A,A才知道发生了碰撞,可是这时候A如果不满足最小帧长的话,就已经发完了,不能及时对碰撞进行处理。
因此:传输一帧的时间大于2倍的信道传输时延
该类题目要注意好单位换算问题。
假定 1km 长的 CSMA/CD 网络的数据率为 1Gb/s。设信号在网络上的传播速率为200000km/s。求能够使用此协议的最短帧长。
数据传输速率分为两种:
- 传码速率(波特率)
- 传信速率(比特率,单位诸如bit/s(即bps)、kb/s或Mb/s)
显然题中数据量是比特率,即每秒钟传输二进制码元的个数。
先求单程时延:两站点间的最大距离/传播速度。也就是 1 / 2 ∗ 1 0 5 = 5 ∗ 1 0 − 6 1/ 2*10^5=5*10^{-6} 1/2∗105=5∗10−6,单位由 k m / ( k m / s ) = s km/(km/s)=s km/(km/s)=s得出是秒。
往返时延=2*单程时延: 1 ∗ 1 0 − 5 s 1*10^{-5}s 1∗10−5s
最短帧长>=往返时延*比特率: 1 ∗ 1 0 − 5 s ∗ 1 G b / s = 1 ∗ 1 0 − 5 s ∗ 1 ∗ 1 0 9 b / s = 10000 b 1*10^{-5}s * 1Gb/s=1*10^{-5}s * 1*10^{9}b/s=10000b 1∗10−5s∗1Gb/s=1∗10−5s∗1∗109b/s=10000b
CRC
要领就是做同假异真的异或XOR操作
对于一个生成多项式,例如 x 4 + x + 1 x^4+x+1 x4+x+1,其实最后的1可以写为 x 0 x^0 x0。由此可推知两个东西
- 在数据后面加4个0进行模二除法,这是由于多项式最高幂次是4
- 模二除法的除数是10011,这是幂次从高到低各系数的排列,式子中没有出现的 x 3 、 x 2 x^3、x^2 x3、x2系数自然是0。
细节也可以看这篇文章CRC详解
曼彻斯特编码
曼彻斯特编码:每个码元中间发生跳变。高跳低为0,低跳高为1
查分曼彻斯特:码元为1则其前一半与前面那个后一半相同,反之亦然