数据链路层的三个基本问题是封装成帧,透明传输和差错检测
1.封装成帧
(1)通过首部和尾部进行帧定界
(2)数据部分必须小于最大传送单元MTU
(3)借助首部和尾部判定帧的完整性
2.透明传输
(1)帧定界控制字符可以处理ASKII码的传输问题
(2)对于非ASKII码,可采用添加转义字符的方法区分(字节填充与字符填充)
3.差错检测
普遍采用循环冗余校验CRC
具体过程:
(1)数据M后加n个0/(n+1)位除数P = n位余数
(2)数据M将后面加的n个0替换为n位余数,发送
(3)对方接收,若无差错,可以整除P
注意:CRC能够实现无比特差错的传输,但不能实现无差错传输,也就是不能排除帧丢失,重复,失序的情况,也不能对差错进行纠正,这些工作都必须交由上层来完成。
4.一般地,在通信质量良好的有线链路不采用确认和重传机制,在通信质量不良的无线链路,采用确认和重传机制
3.4.2 CSMA/CD协议
所有节点都共享网络传输信道,节点在发送数据之前,首先检测信道是否空闲,如果信道空闲则发送,否则就等待;在发送出信息后,再对冲突进行检测,当发现冲突时,则取消发送。