封装成帧
封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
首部和尾部包含许多控制信息,它们的一个重要作用:帧定界(确定帧的界限)。
帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
组帧的四种方法:字符计数法;字符填充法;零比特填充法;违规编码法。
透明传输
透明传输是指不管什么所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
当所传数据中的比特组合恰好与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
字符计数法
帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。
字符填充法
使用一些特定的字符来定界一个帧的开始和结束。
Start of header 数据部分 End of transmision
为了将信息位出现的特殊字符不被误判为帧的首位定界符,可以在特殊字符前面填充一个转义字符加以区别。帧的数据段中出现转义字符,发送方在每个转义字符前再加一个转义字符。
零比特填充法
用01111110来标志一个帧的开始和结束。
为了不使信息位中出现的比特流01111110被误判为帧的开始和结束。
发送方在数据链路层的信息位中遇到5个连续的1时,将自动在其后插入一个0;接收方每收到5个连续的1,自动删除后面紧跟的0,以恢复原信息。
违规编码法
例如曼彻斯特编码将1编码为“高-低”电平对,将0编码为“低-高”电平对,而“高-高”电平对和“低-低”电平对在数据比特中是违规(即没有采用)。可以借用这些违规编码序列来定界帧的起始和终止。局域网IEEE802就采用了这种方法。
1)第一个字节为所传输的字符计数5,转换为二进制为00000101,后面依次为A、B、ESC、FLAG的二进制编码:
00000101 01000111 11100011 11100000 01111110
2)首位标志位FLAG(01111110),在传输的数据中若出现控制字符,则在该字符前插入转义字符ESC(11100000)
01111110 01000111 11100011 11100000 11100000 11100000 01111110 01111110
(3)首位标志位FLAG(01111110),在所传输的数据中,若连续出现5个1则在其后插入0
01111110 01000111 110100011 111000000 011111010 01111110