参考视频:王道计算机考研 计算机网络
参考书:《2022年计算机网络考研复习指导》
封装成帧就是加将数据加头加尾,相当于将数据打包。
透明传输就是为了防止特殊的数据无法正常传输的的情况的发生,比如说在封装成帧的过程中出现数据中的某些标记符与开始/结束标记符恰巧重复等等情况。
在帧的首部使用一个计数字段(第一个字节,8bit)来表明帧内字符数。
缺点:如果在某一个帧内,标记位后面的某个字节的数据丢失,那么会影响后面的帧。
比如3 1 1 和 4 2 2 2,如果前面的帧丢失变成 3 1,那么后面的4就会被补到前面变成 3 1 4导致错误。
就是加头加尾分别标记开始结束,和零比特填充法(见下)对比,开始和结束的对应的字符不一样。
但有可能出现数据内某段比特流数据正好与标记字段重复,从而导致误判断的情况。
解决方法:添加转义字符。
使用高-高,低-低来定界帧的起始和终止。
因为曼彻斯特编码不使用高-高,低-低来表示,所以如果使用高-高,低-低来表示帧起始和终止就不会与数据冲突。
由于字节计数法中计数字段的脆弱性(计数字段错误将带来灾难性后果)以及字符填充法实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充法和违规编码法。
数据链路层的差错的是比特的错误。
因为错误可以尽早发现,不会让一个错误的数据包发送了很长时间到达最终目的地之后才被发现,从而导致网络资源的浪费。
缺点:只能检测出1、3、5、7、… 等等奇位数错误,检测成功率位50%。
用传输数据除以生成多项式得到冗余码。
简化的例子:
实际运算步骤:
注意:
阶数就是最高位是哪位,然后位数-1,如10011就是5-1=4,1011就是4-1=3。
异或运算就是相同得0,不同得1,比如100和101做异或,结果就是001
余数添加到要发送的数据后面,称为帧检验序列FCS
示例:
需要注意的地方:
纠错编码:发现错误、找到位置、纠正错误。
工作流程:
海明距离:
一般而言,要检测 d 位错,码距至少要 d+1 位;要纠正 d 位错,码距至少要 2d+1 位。
第一步:确认校验码位数r
设有效数据有 m 位,校验码有 r 位。
海明不等式:2r ≥ m + r + 1
第二步:确定校验码和数据的位置
规定校验码 Pi 在海明位号为 2i-1 的位置上,其余各位为信息位。
第三步:求出校验码的值
分组以形成校验关系:
校验位取值:
校验位 Pi 的值为第 i 组(由该校验位校验的数据位)所有值求异或。
第四步:检测并纠错
每个校验组分别利用校验位和参与形成该校验位的信息位进行奇偶校验检查:
纠错方法1:找到不满足奇偶校验的分组取交集,再与满足奇偶校验的分组取差集,得到的就是错误位。
例如,4号校验码和1号校验码出错,取交集得5、7位中有错误,再因为2号校验码正确,7位无错,所以错误位是5。
纠错方法2:校验位和参与形成该校验位的信息位全部异或,校验方程S3S2S1的计算结果就是错误位的位号。
数据链路层的流量控制只针对发送方,由接收方来控制(控制方法:收不下就不回复确认),只限制发送方的帧的发送速率。
流量控制是为了让传输过程中的发送速度和接受速度匹配,减少传输出错与资源浪费。
流量控制方法:
窗口大小:
注:这三个协议的窗口大小都是固定的。
可靠传输:发送端发送什么,接收端就要接收到什么。
数据链路层的可靠传输使用确认和超时重传两种机制来完成。
注:数据链路层的流量控制是点到点的,而传输层的流量控制是端到端的。
停止-等待协议的无差错情况:
停止-等待协议的有差错情况:
停止-等待协议的特点:
停止-等待协议的性能分析:
信道利用率 & 信道吞吐率 :
滑动窗口:
发送方必须响应的三件事:
累计确认:就是收到一个确认帧,那么它和它之前的所有帧都默认已收到。反之,如果某个确认帧没收到,那么它和它之后的所有帧都默认丢失(即使收到了也丢掉),进行重传。
接收方要做的事:
示例:
出现超时:发送方重传所有已发送但未被确认的帧。
滑动窗口的长度:
发送窗口不能无限大,与使用的编号的比特数有关。
很简单,就是1比特编号0和1,同理2比特编号0-3。如果用1比特编号,却要4个窗口长度,那么窗口内数据编号都编不过来,直接乱套了。
后退N帧协议(GBN)的优缺点:
例题:
为了解决GBN的缺点,我们选择只重传错误的帧,这样的话就不用浪费资源将已经收到的帧重传一次了。
和GBN相比,选择重传协议(SR)的发送方和接收方都有滑动窗口,和GBN的区别其实就是做了一个数据缓存,已经收到的帧不用扔了,等待之前因意外丢失的帧收到的时候确认即可,但是只能缓存窗口尺寸内的包含的帧。
选择重传协议(SR)的滑动窗口:
发送方必须响应的三件事:
接收方要做的事:
示例:
因为编号的问题,发送窗口不能无限大。
窗口过大会导致二义性(在极端情况下接收方不知道接收的帧是新帧还是旧帧)。
发送窗口最后和接收窗口大小相同,这样利用率比较高。
滑动窗口的长度:
设窗口有 2n 个编号(0、1、…、2n-1),需要满足条件:发送窗口 + 接收窗口 ≤ 2n,最好是发送窗口 = 接收窗口 = 2n-1。
例题:
传输数据使用的两种链路:
介质访问控制的目的:让节点之间的通信不会进行相互干扰。
信道划分介质访问控制:静态划分信道。
虽然使用一条共享信道,但是通过多路复用技术组合进行传输,提高了信道的利用率。
共享时间,不共享空间。
共享空间,不共享时间。
改进:统计时分多路复用(STDM,又称异步时分多路复用)
实质:光的频分多路复用。
采用不同的编码来区分各路原始信号。
既共享信道的频率,又共享时间。
随机访问介质访问控制协议又称为争用型协议。
核心思想:胜利者通过争用获得信道,从而获得信息的发送权。
实质:将广播信道转化为点对点信道。
纯 ALOHA 协议:
纯 ALOHA 协议太随性了,导致纯 ALOHA 网络的吞吐量很低。
改进:时隙 ALOHA 协议
名称 | 描述 | 优点 | 缺点 |
---|---|---|---|
1-坚持CSMA | 发送信息时监听信道,一空闲下来就立即传输,信道忙也一直监听,如果发送时冲突就等待随机时长之后再监听 | 立即发送,利用率高 | 如果多台设备同时监听,那么会发生冲突 |
非坚持CSMA | 发送信息时监听信道,如果空闲就立即传输,信道忙就随机等待一段时间后再监听 | 冲突发生的几率减少 | 因为需要等待,所以利用率不高 |
p-坚持CSMA | 发送信息时监听信道,空闲时以概率p进行传输,概率1-p不传输。信道忙就随机等待一段时间后再监听 | 冲突减少的同时效率也比较高 | 即使发生冲突也要坚持发送数据,资源被浪费 |