1、封装成帧
封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流之后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)。
帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
组帧的四种方法:(1) 字符计数法,(2) 字符填充法,(3) 零比特填充法,(4) 违规编码法。
2、透明传输
透明传输:指不管所传输的数据是怎样的的比特组合,都应当能够在链路上进行传送。因此,链路层就“看不见”有什么妨碍传输的东西。当传输数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使得接收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。
下面介绍四种不同的组帧方法:
2.1 字符计数法
帧首部使用一个计数字段(第一个字节,8位)来标明帧内的字符数。
痛点:鸡蛋都装在一个篮子里面了,若某一个字符出错,则后续所有字符都将出错。
2.2 字符填充法
在发送端时候填充转义字符,在接收端将所有的转义字符全都删除掉,最终在接收端剩余的就是原始数据。
2.3 零比特填充法
在发送端填充0,在接收端删除0。具体操作为:在发送端,扫描整个信息字段,只要出现5个连续的1,就立即填入1个0;在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。
在这里插入图片描述 \qquad 零比特填充法保证了透明传输,在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。
2.4 违规编码法
可以用曼彻斯特编码中不会出现的高-高 和低-低 来界定帧的起始和终止。
目前较普遍使用的帧同步方法是:比特填充法 和违规编码法。