2.封装成帧和透明传输 - wolai 笔记

1.封装成帧

在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)
帧同步接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。
组帧的四种方法
  1. 字符计数法
  2. 字符(节)填充法
  3. 零比特填充法
  4. 违规编码法

2.组帧的四种方法

2.1 字符计数法

帧首部使用一个计数字段(第一个字节,8位)来标明帧内字符数
痛点:鸡蛋装在一个篮子里。

1.2 字符填充法

当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCII码)。不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输
当传送的帧是由非ASCI《码的文本文件组成时(二进制代码的程序或图像等)。就要采用字符填充方法实现透明传输
发送方在封装帧时,进行扫描,扫描到SOH、EOT、ESC(转义字符)时在其前面添加转义字符,以区分,告诉接受方这个和特殊字符相同的字符是数据,当然这些约定由双方之间的协议完成

1.3 零比特填充法

  1. 在发送端,扫描整个信息字段,只要连续51,就立即填入10;
  2. 在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续51时,就把后面的0删除。
保证了透明传输;在传送的比特流中可以传送任意比特组合,而不会引起对帧边界额判断错误。

1.4 违规编码法

可以用“高-高”,“低-低”来定界帧的起始和终止。
由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法

2.透明传输

透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西巧
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

Comment