数据链路层-第二节:封装成帧
Posted 快乐江湖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据链路层-第二节:封装成帧相关的知识,希望对你有一定的参考价值。
文章目录
本节对应视频
一:封装成帧概述
封装成帧:是指数据链路层给上层(网络层)交付的协议数据单元添加帧头和帧尾的过程,使之成为帧。帧头和帧尾包含有重要的控制信息,例如下图以太网V2的MAC帧格式和PPP帧格式
二:封装成帧作用
封装成帧作用:主要有两个作用
- 帧定界
- 透明传输
(1)帧定界
A:概述
帧定界:发送方的数据链路层将上层的协议数据单元封装成帧后还要通过物理层将构成各帧的各比特转化为电信号发送到传输媒体
那么接收方的数据链路层如何从物理层交付的比特流中提取出一个个帧呢?
实际上添加帧头和帧尾的目的之一就是帧定界,例如下图是PPP帧格式,在其帧头和帧尾中各包含有一个长度为1字节的标志字段,在传输时,数据链路层便可以通过这个标志来确定一个帧的开始和结束
B:注意
注意:需要说明的是,并不是每一种数据链路层协议的帧都包含有帧定界标志。实际上,以太网的数据链路层在封装好MAC帧并将其交付给物理层后,物理层会在MAC帧前面添加8字节前导码,然后再将比特流转换为电信号发送。前导码分为两部分
- 前同步码(前7字节):用于接收方时钟同步
- 帧开始定界符:表明其后面紧跟着的就是MAC帧
同时,以太网还规定了帧间间隔时间为96比特的发送时间,因此MAC帧不需要帧结束定界符
(2)透明传输
透明传输:是指数据链路层对上层交付的传输数据没有任何限制,就好像数据链路层不存在一样。换句话说如果数据链路层对上层交付的协议数据单元有限制,限制了它不能交付内容,那么这样的数据链路层就无法实现透明传输,也没有存在的意义
- 帧定界符本质就是一个特殊数值,如下图,如果上层交付的协议数据单元中恰好也包含了这个特殊数值,那么接收方就无法接受这个帧,因为在接收方接收时会误判帧的结束
帧定界符存在于数据中这是一个无法避免的情况,但如果数据链路层不采取任何措施避免接收方对帧是否结束的误判,就不能称之为透明传输。因此数据链路层为了实现透明传输,会采取以下措施
- 字符填充(或字节填充):面向字节的物理链路
- 比特填充:面向比特的物理链路
A:字符填充
字符填充:在发送帧之前,对帧的数据部分进行扫描,每出现一个帧定界符,就在其前面插入一个转义字符
接收方数据链路层在物理层交付的比特流中提取帧,当遇到转移字符时就知道其后面的1字节内容虽然与帧定界符相同,但它是数据而不是定界符,剔除转义字符后继续提取即可,直到提取到真的帧定界符
B:比特填充
比特填充:在发送帧之前,对帧的数据部分进行扫描,每出现5个连续的比特1时就插入1个比特0,这样就确保了帧定界01111110
在整个帧中的唯一性
接收方数据链路层在提取帧时,每提取到5个连续的比特1时就删除其后面紧跟的比特0。比特法可以保证透明传输,且在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误
三:注意
注意1:为了提高帧的传输效率,应该使帧的数据部分长度尽可能大一些
注意2:考虑到差错控制等诸多因素,每一种数据链路层协议都规定了帧的数据部分长度上限,也即最大传送单元MTU(Maximun Trnasfer Unit)
以上是关于数据链路层-第二节:封装成帧的主要内容,如果未能解决你的问题,请参考以下文章
计算机网络湖科大微课堂笔记 p21-23 数据链路层概述封装成帧差错检测
计算机网络 王道考研2021 第三章:数据链路层 -- 数据链路层功能概述封装成帧和透明传输差错控制(检错编码/纠错编码)
计算机网络(谢希仁 第七版) 第三章(数据链路层)-- 3.1 使用点对点信道的数据链路层(数据链路层概述 & 数据链路和帧 & 三个基本问题(封装成帧透明传输差错控制))