3.2 封装成帧
封装成帧是指数据链路成把上层丢下来的加帧头和帧尾。
帧头和帧尾含有重要的信息。作用之一就是帧定界
实际上,帧头和帧尾带有醒目的标志,各占一个字节。我们看下面点对点的传输
需要说明的是,并不是每一种帧都包含标志。
比如以太网V2的MAC帧格式
那么接收方在这种网络下又是如何提取出帧的呢?
实际上我们在概述的时候讲过,物理层看网络是什么,如果是以太网,就加上8字节的前导码。前导码中的前7个字节为前同步码,作用是使接收方的时钟同步。之后的一字节为帧开始定界符。表明其后面紧跟着的就是MAC帧。
另外啊:以太网还规定了帧间间隔时间为96比特的发送时间。因此MAC帧并不需要帧结束定界符。
透明传输是指数据链路层对上层交付的数据没有任何限制,就好像数据链路层不存在一样。
我们的帧标志是一个数值,如果我们网络层传到数据链路层刚好含有相同的数值,那接收方还能收到正确的帧吗?
-
不能
那么数据链路层是如何解决这个问题的呢?网络层传来的时候,他加了帧头帧尾扫描一遍标志,如何出现相同的那就加上一个ESC标志转义字符(1个字节,10进制值为27),告诉我们的接收方跳过扫描这玩意。这是数据不是定界符。
那再来思考这样一种情况,上层传下来的即包含转移字符,又包含和定界符相同的数字。这个又该怎么处理呢?
-
也是相同的处理方法,还是加转义字符。
上面我们将的都是面向字节的物理链路使用字节填充(或称字符填充)的方法实现透明传输。
面向比特的物理链路使用比特填充的方法实现透明传输。
为了简单起见,在帧首部和尾部中,仅给出了帧定界标志。而未给出其他控制字段。
现在帧的数据部分出现两个和标志一样的,那我们该怎么处理呢?
在发送前可以采用0比特填充法对数据部分进行扫描,每5个连续的比特1后面就插入一个比特0。这样就确保了帧定界的唯一性。
最后还要提醒大家。为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大些。
但是考虑到差错控制等因素,数据链路层的协议也规定了帧的数据部分的长度上限。最大传送单元MTU
posted on 2021-10-12 21:37 Love&Share 阅读(596) 评论(0) 编辑 收藏 举报