3.1.2 封装成帧和透明传输
1.封装成帧
1.概念
就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。
接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,
从收到的比特流中识别帧的开始和结束。
2.帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
3.组帧的四种方法
1.字符计数法
2.字符(节)填充法
3.零比特填充法
4.违规编码法
4.示意图
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/e884687ea735e462cb770a25be4abd92.png#pic_center)
2.透明传输
指:不管所传数据是什么样的比特组合,都应当能够在链路上传送。
因此,链路层就“看不见”有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,必须采取适当的措施,
使接收方不会将这样的数据错误认为是某种控制信息,这样才能保证数据链路层的传输是透明的。
3.字符计数法
帧首部使用一个计数字段(第一个字节,8位)来表明帧内字符数(字节数)。
痛点:鸡蛋装在一个篮子里
如果第一个字节(计数字段)是错误的,则后面的帧全部发生错误。这样接收方没有办法正确接收每一个帧
不常用
4.字符填充法
当传送的帧是由文本文件组成时(文本文件的字符都是从键盘输入的,都是ASCII码),
不管从键盘上输入什么字符都可以放在帧里面传过去,即透明传输。
当传送的帧是由非ASCII码的文本文件组成时(二进制代码的程序或图像等)。
就采用字符填充方法实现透明传输
示意图:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/84276c494055640b79b28ffb11179c5e.png#pic_center)
5.零比特填充法
操作
1.在发送端,扫描整个信息字段(原始数据),只要连续5个1,就立即填入1个0
即:5“1“,1”0“
2.在信息字段前后都加上0111110,作为帧的边界
3.在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。
发现连续5个1时,就把后面的0删除。
保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。
6.违规编码法
对于曼彻斯特编码,可以使用高-高,低-低来定帧的起始和终止。
由于字节计数法中Count字段(第一个字节)的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现
上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。