自学内容网 自学内容网

【计算机网络】第三章——封装成帧

个人主页:兜里有颗棉花糖
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创
收录于专栏【计算机网络
本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流讨论💌

一、什么是封装成帧

在这里插入图片描述

发送方的数据链路层将上层交付下来的网络层协议数据单元封装成帧后,还要通过物理层将构成帧的各比特转换成电信号发送到传输媒体。
在这里插入图片描述
在这里插入图片描述

帧定界

帧头和帧尾的作用之一就是帧定界

我们以PPP帧格式来进行举例如下图:在PPP帧格式的帧头和帧尾中,各包含有一个长度为1字节的标志字段,作用就是帧定界
在这里插入图片描述

现在我们假设发送方发送的是PPP帧,比特流中红色部分是帧定界标志,那么接收方的数据链路层就可以依据帧定界标志从物理层交付给比特流中提取出一个个的帧。但是我们要注意,并不是每一种数据链路层协议的帧都包括帧定界标志。
在这里插入图片描述

现在我们来看以太网版本2的MAC帧格式,在其帧头和帧尾中,并没有包含帧定界标志,那么接收方是如何从物理层交付的比特流中提取出一个个的以太网帧呢?
在这里插入图片描述
实际上,以太网的数据链路层封装好MAC帧格式后,将其交付给物理层。物理层会在其前面加上8字节的前导码,然后再将比特流转换成电信号并发送出去,前导码中的前7个字节为前同步码(作用是使接收方的时钟同步),之后的1字节为帧开始定界符(表明后面紧跟着的就是MAC帧),如下图:
在这里插入图片描述
以太网还规定了帧间间隔为96比特的发送时间。因此MAC帧并不需要帧结束定界符。如下图:
在这里插入图片描述

二、透明传输

在这里插入图片描述

我们来对透明传输进行举例说明:

字节填充

下面是发送方数据链路层收到其上层交付的协议数单元。给其添加帧头和帧尾使之成为帧,简单起见,该图只画出了帧头和帧尾中的帧定界标志(帧定界标志就是一个特殊的数值)。思考一下,如果在上层交付的协议数据单元中恰好也包含了这个特定数值,那么接收方就不能正确接收该帧了。

如下图所示,接收方在收到第一个帧定界标志时认为这是帧的开始,这里并没有出现什么错误。
在这里插入图片描述
如下图所示,当接收方再次接收到帧定界标志时会误认为帧结束了。如果数据链路层不采取其它措施来避免接收方对帧是否结束的误判,就不能称为时透明传输。
在这里插入图片描述

也就是说,数据链路层对上层交付的协议数据单元有限制,其内容不能包含帧定界符,但是,这样的数据链路层没有什么使用价值。然而实际上各种数据链路层一定会想办法来解决这个问题。

比如数据链路层发送帧之前会对帧的数据部分进行扫描。每出现一个帧定界符就在其前面插入一个转义字符。
在这里插入图片描述
然后接收方的数据链路层在物理层交付的比特流中提取帧。遇到第一个帧定界符时,认为这是帧的开始,当遇到转义字符时就会知道其后面的1字节内容虽然与帧定界符相同,但它是数据而不是定界符。剔除转义字符后将其后面的内容作为数据继续提取,如果遇到转义字符的话也是相同的处理,当再次提取到帧定界符时就会认为这是帧结束的标志
在这里插入图片描述
在这里插入图片描述

现在再来思考一种情况,在上层交付给数据链路层的协议数据单元中,既包含了帧定界符,又包含了转义字符,此时应该怎么处理呢?
在这里插入图片描述
解决方式:对帧的数据部分进行扫描,每出现一个帧定界符或者转义字符,就在其前面添加一个转义字符。这里说明一下转义字符,转义字符是一种特殊的控制字符,其长度为1个字节,十进制值为27,并不是E、S、C这三个字符。如下图:
在这里插入图片描述

上面介绍的时面向字节的物理链路(使用字节填充或称字符填充的方法来实现透明传输)。而对于面向比特的物理链路应该使用比特填充的方法实现透明传输。

比特填充

下图是一个点对点协议的帧:

在这里插入图片描述
为了简单起见,在帧首部和尾部种仅给出了帧定界标志而未给出其它控制字段,而帧的数据部分出现了两个帧定界标志,但是实际上它们是数据而不是帧定界。

在这里插入图片描述

在发送前可以采用0比特填充法,对数据部分进行扫描,每5个连续的比特1后面就插入1个比特0,这样就确保了帧定界在整个帧中的唯一性,也就可以实现透明传输。接收方的数据链路层从物理层交付的比特流中提取帧时将帧的数据部分中的每5个连续的比特1后面的那个比特1后面的那个比特0剔除即可。

在这里插入图片描述

小练习

在这里插入图片描述

三、总结

封装成帧:

  • 为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大写,考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上线,即最大传送单元MTU(帧的数据部分的长度应该远大于帧头和帧尾的长度;帧的数据部分才是我们真正要传送的数据,而帧头和帧尾是为了实现数据链路层功能而额外添加的)。

  • 考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上线,即最大传送单元MTU

本位总结如下:

在这里插入图片描述

本文到这里就结束了,希望友友们可以支持一下一键三连哈。嗯,就到这里吧,再见啦!!!

在这里插入图片描述


原文地址:https://blog.csdn.net/m0_74352571/article/details/139079321

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!