一,数据链路层基本概念
1. 为什么要设置数据链路层
物理层的线路有传输介质与通信设备组成,比特流在传输介质上传输时一定会存在误差,而设置数据链路层目的就是为了在存在差错的物理层的基础上,采用差错检测,差错控制和流量控制等方法,将有差错的物理线路改进为无差错的数据链路,向网络层提供高质量的数据传输服务。
对于网络层,由于数据链路层的存在,网络层不需要知道物理层具体采用了哪种传输介质与通信设备的,是采用模拟通信方法,还是采用数字通信方法。只要接口关系与功能不变,物理层所采用的传输介质与通信设备的变化对网络层不会产生影响。
2. 数据链路的主要功能
1)链路管理
通信开始前,要建立数据链路连接;数据传输过程中,维护数据链路连接;通信结束后,释放数据链路连接。
2)帧同步
数据链路层的传输数据单位是帧,物理层的比特流封装在帧中进行传输,帧同步指的是:接收端能从收到的比特流中正确的判断一帧的开始为和结束位
3)流量控制
发送端发送数据超过物理线路的传输能力或者超出接收端的帧接受能力时,就会发生链路阻塞。流量控制就是为了防止出现链路阻塞
4)差错控制
将有差错的物理线路改进为无差错的数据链路,向网络层提供高质量的数据传输服务
5)透明传输
不管传输数据的比特是什么样的组合,都应当能在链路上传送
6)寻址
多点连接时,为了保证每一帧都能传送到正确的接收端,因此数据链路层必须有寻址的能力
3. 链路层的三个基本问题
1)封装成帧
封装成帧(framing)就是在一段数据的前后分别添加首部和尾部,这样就构成了一个帧。 接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从比特流中识别帧的开始和结束。
控制字符SOH(start of header)放在一帧的最前面,表示帧的首部开始。
EOT(end of transmission)表示帧的结束。
当传输中出现差错,帧定界符的作用更加明显。假设未发送完一个帧而发生故障,接收端就知道收到的数据是不完整的帧(只有首部),必须丢弃
2)透明传输
当传送的帧是用文本文件组成的帧时(文本文件中的字都是从键盘上输入的),其数据部分显然不会出现像SOH或EOT这样的帧定界控制字符。可见不管从键盘上输入什么字符都可以放在这样的帧中传输过去,因此这样的传输就是透明传输。
为了解决透明传输问题,字节填充法或字符填充:在控制字符SOH、EOT的前面插入一个转义字符ESC(其十六进制编码是1B,二进制是00011011)。而接收端的数据链路层在把数据送往网络层之前删除这个插入的转义字符。
3)差错控制
传输过程中,1可能变成0, 0 可能变成1 。这就叫比特差错。——误码率。
因此,在计算机网络传输数据时,必须采用各种差错控制技术。目前在数据链路层广泛使用了循环冗余检验(CRC) 的检错技术。
-
为什