计算机网络学习8:封装成帧、差错检测

封装成帧

在这里插入图片描述
接收方的数据层如何从物理层交付的比特流中提取出一个个的帧呢?

在这里插入图片描述
帧头和帧尾的作用之一就是 帧定界。

在这里插入图片描述
例如PPP帧的帧头帧尾中就含有标志了。这样就可以一个个提取了。

但是并不是每一种数据链路层协议的帧都包含有帧定界的标志。

在这里插入图片描述
如MAC帧就没有这个格式。

接收方是怎么接受的呢?

物理层会在MAC帧前加上一个前导码。

在这里插入图片描述
同时mac帧还规定了 帧间间隔,所以不需要 帧尾的定界符。

在这里插入图片描述

透明传输

如果在上层交付的协议数据单元中,恰好也包含了这个flag帧头帧尾的特定数值,那么接收方还能正确接受吗?答案是否定的。

在这里插入图片描述
接受方在接收到第一个flag帧定界标志时,认为是帧的开始。

当再次接收到时候,会误认帧结束接收了。如果数据链路层不采取措施来避免接收方对 帧 是否结束的 误判,就不能称为 透明传输。 也就是 数据链路层对上层交付的数据单元有 限制。其内容不能包含定界符。那么这样的数据链路层没有任何意义了。

解决方案:
在发送前,对数据进行扫描,如果有flag定界符,那么就会在前面插入一个esc转义字符。
在这里插入图片描述

这样就可以避免问题了,遇到esc之后,就会知道后面是数据而不是定界符了。剔除转义字符后,就可以自动处理了。

那么如果上层交付给数据单元的过程中,本身就含有esc这个数据那么又该怎么办呢。
在这里插入图片描述
方法仍然是进行扫描数据,然后加上一个esc。

esc长度为一个字节,而不是esc这三个字符。10进制值为27。

在这里插入图片描述

例如该方法是连续的五个1的比特后面加一个0即可,接收验证的时候直接剔除就可以了,

在这里插入图片描述
在这里插入图片描述

差错检测

传输过程可能会出现错误,一段时间内,传输错误的比特占传输比特总数的比率称为误码率BER(bit error rate)。

在这里插入图片描述

使用差错检测码,可以检测是否出现了差错。

在这里插入图片描述

循环冗余检验 CRC

在这里插入图片描述
在这里插入图片描述
需要注意的是:算法要求生成多项式必须包含最低次项,也就是每一项的最后都是1。

在这里插入图片描述
在这里插入图片描述
检错码只能检测出错,但是不能定位错误,不可以纠正错误。

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员洲洲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值