计算机网络——封装成帧和透明传输
封装成帧
封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束
首部和尾部包含许多控制信息,他们的一个重要的作用:帧定界(确定帧的界限)
帧同步:接收方应当能从接收的二进制比特流中区分出帧的起始和终止。
帧的四种方法:
1.字符计数法
2.字符(节)填充法
3.零比特填充法
4.违规编码法
透明传输
透明传输是指不管所传数据是什么样的比特组合,都应当能在链路上传送。因此,链路层就"看不见"有什么妨碍数据传输的东西
当所传数据中的比特组合恰巧与某一控制信息完全一样时,就必须采取适当的措施,使收方不会这样的数据误认为是某种控制信息,这样才能保证数据链路层的传输是透明的。
字符计数法
帧首部使用一个计数字段(第一个字节,8 位)来标明帧内字符数
缺点:比较容易出错 不常用!~
字符填充法
1.当传送的帧是由文本文件组成时,(文本文件的字符都是从键盘上输入的,都是 ASCLL 码)
不管从键盘上输入字符都可以放在帧里传过去,即透明传输。
2.当传送的帧是由非 ASCLL 码的文本组成时,(二进制代码的程序或图像等)
就要采用字符填充方法来实现透明传输
零比特填充法
操作:1.在发送端,扫描整个信息字段,只要连续 5 个 1,就立刻填入 1 个 0
2.在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描
发现连续 5 个 1 时就把后面的 0 删除掉。
保证了透明传输:在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。
违规编码法
可以用“高-高","低-低"来定界帧的起始和终止
由于字节技术法中 count 字段的脆弱性(其值若有差错将导致灾难性后果) 及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步是比特填充和违规编码法。
版权声明: 本文为 InfoQ 作者【StackOverflow】的原创文章。
原文链接:【http://xie.infoq.cn/article/7617b76a34f2810a383da1e35】。文章转载请联系作者。
评论