数据链路层使用的信道技术:点对点信道技术和广播信道技术。
链路:物理链路,一个结点到相邻的结点的一段物理线路
数据链路:逻辑链路,即物理链路加上相应的通信协议。
点对点数据链路的协议数据单元为帧。
数据链路层将网络层交下来的数据添加首部和尾部构成帧发送到链路上。以及从接收到的帧中取出IP数据报交给网络层 。
数据链路层的三个基本问题(封装成帧,透明传输,差错检测)
首部和尾部的重要作用就是进行帧定界。MTU (max transmission unit)最大传输单元)即所能传输的数据的最大上限。
帧定界的作用:当在传输过程中出现故障时,如果收到的帧只有帧开始符,没有帧结束符,收到的帧使不完整的应当丢弃。只既有帧开始符又有帧结束符的帧才是完整的。
所传输的任何8bit 数据不能和用作定界符的编码一样
透明传输:
当传送的数据是文本文件(即从键盘中输入的字符时,数据部分的编码不会和定界符的编码重复,因此不管什么样的比特数据都能够按照原样没有差错的通过这个数据链路)因此数据链路层对这些数据就是透明的
用字节填充的方法实现透明传输问题。
具体方法为,使数据中可能出现的EOT,SOH 定界符。在发送时发现数据中存在定义符EOT,SOH 定界符时,在前面加上转义字符。在接收端在把数据传送给网络层后将转义字符在删掉 。如果数据部分出现转义字符,在前面还要加上转义字符。
差错检测。
现实中的数据在传输过程中都有可能产生差错。bit 值1可能变成0,0也可能变成1.传输错误的bit 占整个传输bit 的个数称为误码率。
检测技术:CRC 循环冗余检测技术
CRC 运算就是在传送的M 位数据后面添加n 位数据冗余码,作为一个帧发送出去。
数据为 M 101001(k=6),P 事先定好的P(1101)P=(n+1),所以n=3, 余数R作为 冗余码称为帧检测序列FCS。所以发送的帧是
101001001.加上帧检测序列
把接收到的都除以相同的除数P。如果余数R 为0,这个帧 就没有错误,如果不等于0 这个帧就存在错误。
PS: 发送端的FCS 的生成和接收端的CRC运算都是用硬件完成的,速度比较快,不会延误数据的传输