数据链路层
大约 1 分钟
数据链路层
封装成帧
进行帧定界
每一种链路层协议都规定了所能传送的帧的数据部分长度的上限——最大传送单元MTU(Maximum Transfer Unit)
帧定界符 控制字符 SOH (Start Of Header)0x01 (二进制是00000001)帧开始符 控制字符 EOT (End Of Transmission)0x04(二进制是00000100)帧结束符
差错控制
比特在传输过程中可能会产生差错:1可能会变成0,而0变成1,这就叫比特差错。
循环冗余检验CRC(Cyclic Redundancy Check)是一种检测方法
帧检验序列FCS(Frame Check Sequence)是添加在数据后面的冗余码
只能做到对帧的无差错接受,不能做到传输差错,现在已改由上层协议(例如运输层的TCP协议)来完成
传输错误:帧丢失,帧重复,帧失序
透明传输
在发送端的数据链路层在数据中出现控制字符“SOH”或者“EOT”的前面插入一个转义字符“ESC”(0x1B,二进制是00011011)。接收端的数据链路层在数据送往网络层之前删除这个插入的转义字符。这种方法称为字节填充(byte stuffing)或字符填充(character stuffing)。
如果转义字符也出现在数据中,解决方法仍然是在转义字符的前面插入一个转义字符,接收端收到连续两个转义字符时,就删除其中前面一个