数据链路层(只管比特传输是否出错)
一.使用的信道
1. 点对点信道
2.广播信道 :通过向所有站点发送分组的方式传输信息 <类比与数据结构的树>
二.数据链路层的简单模型
1.
从数据链路层来看
2.数据链路和帧
(1)链路:是一条无源的点到点的物理线路段,中间没有任何其他的交换结点
一条链路只是一条通路的一个组成部分
(2)数据链路:除了物理线路外,还必须有通信协议来控制这些数据的传输。若把实现这些协议的硬件和软件加到链路上,就构成了数据链路。可以加点适配器(网卡)来实现协议的硬件和软件。
(3)数据链路层传送的是帧
<1>封装成帧:网络层IP数据传到链路层在这里头尾穿上衣服包装一下就变成了帧。
SOH:十六进制编码 01(00000001)EOT: 十六进制04(00000100)
传输过程
<2>透明传输
但是可能出现编码重复的情况,数据并未能真正到达结束符(EOT),可能出现二进制代码恰好和SOH或者EOT这种控制字符一样,就会出现错误
解决方法 : 使用字节填充方法 (在传输过程中的数据添加ESC)
<3>差错检测 :在传输过程中可能会产生比特差错 1可能变成0而0也可能变成1
解决方法 :对数据进行循环冗余检验
例子:现在发送1101011011,并采用多项式P(x)= x^4 + x +1 发送
1> M=1101011011
2> P=10011
3> n=p的位数 - 1 = 4
4>X= 11010110110000 (在M后面填4个0)
模2 ,求余数Y。
按如下公式进行模2运算
结果:
5>然后将Y补在M的后面作为被除数,继续除P,若除下的余数为0,则说明传输过程中没有出错。