计算机网络(12)—— 封装成帧和透明传输

封装成帧

封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。

帧同步:接收方应当能从接收到的二进制比特流中区分出帧的起始和终止。

20200301110517331

MTU:最大传送单元,帧的数据部分的极限大小(具体大小和协议有关)。

数据链路层的帧长:从帧首部到帧尾部之间的长度。

20200301110851775

封装成帧有四种方法:1.字符计数法 2.字符填充法 3.零比特填充法 4.违规编码法

而这四种方法首先要遵守的原则,就是透明传输。

透明传输

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

解释略有点抽象,举个栗子:

在这里插入图片描述
如图所示,SOU为开头,EOT为结尾,透明传输就是要保证SOH到EOT之间的所有数据都能正确发送,要能保证在帧数据部分中遇到了EOT之类的控制字段而不为所动。

值得一提的是:当传送的帧都是文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCII码,不管从键盘上输入什么字符都可以放在帧里传过去,即实现了透明传输

下面介绍一下四种封装成帧的方法:

1.字符计数法

很简单的一种封装方法,它通过在帧首部使用一个计数字段(第一个字节,八位)来表明帧内字符数。

在这里插入图片描述
如图所示,每个帧首部都加了个数字,表明自己要发几个字符。这种方法就叫做字符计数法。
缺点也很显然,如果帧首部的数字突变了,就会造成毁灭性的连锁反应。

2.字符填充法

字符填充法是一种常用的方法,通过在关键字段前增加一个转义字符,使得在数据传输过程中忽略掉数据部分中的控制字。
这种方法的原理近似于c语言中的’‘字符。比如,要输出’]'字符,就要printf("]")一样。

在这里插入图片描述
接收端接收到这样加过转义字符的帧后,会自动脱去转移字符。

3.零比特填充法

零比特填充法的开始和结束标志都是一样的,都是01111110。它实现的方法是:在发送端,扫描整个信息字段,只要有5个1,就立即填入1个0,而在接收端,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。

在这里插入图片描述

4.违规编码法

这种方法蛮特别,如图所示,曼彻斯特编码只有 “高-低” "低-高"两种,所以可以用“高-高”,“低-低”来定界帧的起始和众之。

在这里插入图片描述

一般而言,由于字节计数法中 Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前较普遍使用的帧同步法是比特填充和违规编码法。

笔记总结于王道网课,图片截取自视频,希望对大家有所帮助!

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值