链路层的封装成帧和透明传输基本问题

举报
Regan Yue 发表于 2021/10/24 12:31:06 2021/10/24
【摘要】 链路层的封装成帧和透明传输基本问题封装成帧网络层向下传递的数据再添加上首部和尾部就成为了一个完整的帧。其中的首部和尾部是用来进行帧定界的。其中的数据部分应当尽可能大一点,但是由于差错控制等许多因素,我们应当限制数据部分的长度。实现帧定界有许多方法,其中比较容易的一种方法是以太网中使用的方法——在帧与帧之间加上时间间隔。另一种常用的方法是在各帧的起始处(终点处)加上帧开始标志(帧结束标志),这...

链路层的封装成帧和透明传输基本问题

封装成帧

网络层向下传递的数据再添加上首部和尾部就成为了一个完整的帧。其中的首部和尾部是用来进行帧定界的。其中的数据部分应当尽可能大一点,但是由于差错控制等许多因素,我们应当限制数据部分的长度。实现帧定界有许多方法,其中比较容易的一种方法是以太网中使用的方法——在帧与帧之间加上时间间隔。另一种常用的方法是在各帧的起始处(终点处)加上帧开始标志(帧结束标志),这两个标志可相同可不相同。

这样就会出现一个问题?你想一想会是什么问题呢?


是不是数据部分可能出现和帧开始标志或帧结束标志相同的数据?这样就可能会出现误判到帧开始处和帧结束处。


为了解决这个问题,我们使用字节填充(字符填充)或比特填充的方式。

透明传输

字节填充(字符填充)

就是在数据中出现的帧开始标志和帧结束标志前加上一个转义字符。这样接收端就不会把数据中的和帧开始标志或帧结束标志相同的数据识别为帧开始标志或帧结束标志。而如果数据中有转义字符的话,就在转义字符前加上转义字符。


比特填充

PPP协议采用的就是比特填充,它的开销更小。它是在数据中出现5个连续的1时就立刻填充一个0,因为它用“01111110”来表示帧定界标志,而5个1后面加0就会避免出现6个连续的1。当接收端遇到5个连续的1就将后面的0删除,来还原原来的比特流。

明天我们继续讲解数据链路层。关注博主不迷路~

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。