8三个基本问题:封装成帧,透明传输,差错检验重要概念:链路:链路就是从一个节点到相邻节点的一段物理线路;数据链路:若将实现一些协议的硬件和软件加到链路上,就构成了数据链路;§封装成帧封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,然后就构成了一个帧
首部和尾部的一个重要作用就是进行帧定界
此外,首部和尾部还包含了许多必要的控制信息;MTU:最大传送单元SOH:(StartofHeader)标识着帧的开始;EOT:(EndofTransmission)标识着帧结束;§透明传输出现问题:具体的解决方法:发送端的数据流量层在数据中出现控制符“SOH”或“EOT”的前面插入一个转义字符“ESC”
而在接收端的数据链路层在将数据送往网络层之前删除这个插入的转义字符
如果转义字符也出现数据当中,那么应在转义字符前面插入一个转义字符
当接收端收到连续的两个转义字符时,就删除其中前面的一个
这种方法称为:字节填充或字符填充;即:§差错检测(重点)目前在数据链路层广泛使用的了循环冗余检测CRC(CyclicRedundancyCheck)的检错技术;检错原理:1
在发送端,先把数据划分为组
假定每组k个比特
假设待传送的一组数据M=101001(现在k=6)
我们在M的后面再添加供差错检测用的n位冗余码一起发送
也就是说一共发送了k+n位数据;而对于冗余码的计算可以由一下方法得出:1)用二进制的模2运算进行2n乘M的运算,这相当于在M后面添加n个0
2)得到的(k+n)位的数除以事先选定好的长度为(n+1)位的除数P(事先商定好的),得出商是Q而余数是R,余数R比除数P少1位,即R是n位
例如:现在k=6,M=101001,设n=3,除数P=1101,被除数是2nM=101001000
模2运算的结果是:商Q=110101,余数R=001
把余数R作为冗余码(