3.2封装成帧和透明传输
封装成帧:
就是在一段数据前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。
首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)
帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和中止。
组帧的四种方法:1.字符计数法 2.字符/字节填充法 3.零比特填充法 4.违规编码法。
###透明传输:
是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。
当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的数据误认为使某种控制信息。这样才能保证数据链路层的传输是透明的。
组帧方法–1.字符计数法
帧的首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。
痛点:一个错,全部错。
组帧方法–2.字符填充法
组帧方法–3.零比特填充法
操作:(5“1” 1“0”)
1.在发送端,扫描整个信息字段,只要连续5个1,就立即填入1个0。
2.在接收端收到1个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。
如下。起始和终止都为:0+6*1+0。
保证了透明传输:在传送的比特流中可以传送任意的比特组合,而不会引起对帧边界的判断错误。
组帧方法–4.违规编码法
用编码中不会用到的编码来规定帧的起始和终止。
如:
总结:
由于字节计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是:比特填充和违规编码法。