第三章·数据链路层
一.本章概述图:
1:数据链路层重要性:
- 数据链路层使用物理层提供的“比特传输”服务
- 数据链路层为网络层提供服务,将网络层的IP数据报(分组)封装成帧,传输给下一个相邻结点
- 物理链路层:传输介质(0层)+物理层(1层)实现了相邻结点之间的“物理链路”;
- 逻辑链路:数据链路层需要基于“物理链路”,实现相邻结点之间逻辑上无差错的“数据链路(逻辑链路)”
二.组帧:
<1>主要问题
(1)帧定界
1.概念:
如何让接收方能够确定帧的界限
2.解释:
数据发送方会把网络层数据进行一系列处理,比如:增加首部、增加尾部、同时还有可能对IP数据报内部进行一系列处理,因此接收数据结点的链路层除了区分帧与帧的边界外,还需要从帧的内部还原出IP数据报的原始信息,并且递交给网络层处理,意味着网络层与网络层实体之间感知不到数据链路层对IP数据报做的一些处理和逆处理,也就是说组帧的这个过程对于网络层而言是透明的(看不见的)。
(2)透明传输
1.概念:
接收方要能够去除“帧定界”的附加信息,把帧的数据部分(IP数据报)“恢复原貌”
<2>四种组帧方法
(1)字符计数法
1.原理:
在每个帧开头,用一个定长计数字段表示帧长。
2.最大缺点:
任何一个计数字段出错,将会导致后续所有帧无法定界(健壮性不好)。
- 分析:假如淡红色区域‘111’【7:范围是0~255】,跳变成‘011’【3:范围是0~8】,从左往右只能选取3个区域块(包括淡红色的);从而接受方会认为从第4个区域块‘11011’【27】开始往后的27B是属于第二个帧。
(2)字节填充法:
1.原理:
如果帧的数据部分包括“特殊字符”,则发送方需要在这些“特殊字符”前填充“转义字符ESC”(接收方要做逆处理)
2.逆处理:
发现SOH就是帧的开始,继续往后检索,发现转义字符时(删掉),后面的是普通的数据(不属于控制字符)正常接收,继续往后检索同样如此。
(3)零比特填充法(常用)
1.原理:
- 发送方:需要对帧的数据进行部分处理,每当遇到连续的5个1,就填充一个0
- 接收方:需要对帧的数据部分进行逆处理,每当遇到5个连续的1,就删除后面的0
【注意】数据链路层里的HDLC与PPP协议使用的就是“零比特填充法”进行组帧;
(4)违规编码法(常用 )
采用“违规编码”标记开始与结束,采用“曼彻斯特编码”来标记数据部分。
<3>总结:
三.差错控制:
<1>奇偶校验:
(1)概念:
- 信息位(有效数据):指帧的“数据部分”;
- 校验位(冗余位):即为了给帧“数据部分”检错/纠错而附加的冗余比特
(2)原理:
- 在信息位的首部或尾部添加一个校验位
- 奇校验码:整个校验码(有效信息位和校验位)中“1”的个数为奇数;
- 偶校验码:整个校验码(有效信息位和校验位)中“1”的个数为偶数;
【注意】奇偶校验码仅能检测出奇数位错误,无纠错能力