3.1 封装成帧
作者:互联网
1.封装成帧的概念
封装成帧指数据链路层给上层交付的协议数据单元添加帧头和帧尾,使之成为帧。
- 帧头和帧尾中包含有重要的控制信息。
- 帧头和帧尾的作用之一就是帧定界。(并不是每一种数据链路层协议的帧都包含帧定界标志。)
有帧头和帧尾:发送方的数据链路层将上层交付下来的协议数据单元封装成帧后,还要通过物理层,将构成帧的各比特转换成电信号发送到传输媒体。那么,接收方的数据链路层如何从物理层交付的比特流中提取出一个个的帧呢?==》添加帧头和帧尾。
无帧头和帧尾:接收方如何从物理层交付的比特流中提取出一个个帧呢?==》从数据链路层封装到物理层的帧,物理层会在帧前面添加八字节的前导码,然后再将比特流转换成电信号发送。(前导码中的前7个字节为前同步码,作用是使接收方的时钟同步。之后的一字节为帧开始定界符,表明其后紧跟着的就是帧了。以太网还规定了帧间间隔时间为96比特,因此MAC帧并不需要帧结束定界符)
2.透明传输
透明传输是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。
面向字节的物理链路:使用字节填充(或称字符填充)的方法实现透明传输。
(but数据链路层对上层交付的协议数据单元有限制,其内容不能包含帧定界符。==》实际上,各种数据链路层协议一定会想办法来解决这个问题。e.g.在发送帧之前对帧的数据部分进行扫描,没出现一个帧定界符,就在其前面插入一个转义字符。接收方数据链路层在物理层交付的比特流中提取帧,遇到第1个帧定界符时,认为这是帧的开始,当遇到转义字符时就知道其后面的一字节内容虽然与帧定界符相同,但它是数据而不是定界符,剔除转移字符后,将其后面的内容作为数据继续提取。当再次提取到定界符时,表明这是帧的结束。)《==遇到转义字符/定界符时在其前面添加转义字符
面向比特的物理链路:使用比特填充的方法实现透明传输。
e.g.为了简单起见,在帧首部和尾部中仅给出了帧定界标志,而未给出其他控制字段。而帧的数据部分出现了两个帧定界标志,但它们实际上是数据,而不是帧定界。==》在发送前,可以采用零比特填充法,对数据部分进行扫描,每5个连续的比特1后面就插入一个比特0。这样就确保了帧定界在整个帧中的唯一性,也就可以实现透明传输。接收方的数据链路层,从物理层交付的比特流中提取帧时,将帧的数据部分中的每5个连续的比特1后面的那个比特0踢除即可。
【 注】:为了提高帧的传输效率,应当使帧的数据部分的长度尽可能大一些。(考虑到差错控制等多种因素,每一种数据链路层协议都规定了帧的数据部分的长度上限。)
标签:定界,定界符,封装,比特,成帧,物理层,3.1,数据,链路层 来源: https://blog.csdn.net/Do_________/article/details/113859231