【计算机网络】数据链路层 : 封装数据帧 ( 附加信息 | 帧长度 | 透明传输 | 字符计数法 | 字符填充法 | 零比特填充法 | 违规编码法 )
文章目录
- 一、 封装数据帧
- 二、 "数据帧" 附加信息
- 三、 "数据帧" 帧同步
- 四、 "数据帧" 长度
- 五、 "数据帧" 组装方法
- 六、 透明传输
- 七、 字符计数法
- 八、 字符填充法 ( 加转义字符 )
- 九、 零比特填充法 ( 5 "1" 1 "0" )
- 十、 违规编码法
- 十一、 透明传输常用方法
一、 封装数据帧
封装数据帧 :
① 发送端封装数据帧 : 在 网络层 下发的 IP 数据报 信息基础上 , IP 数据报 的 前面 加上 帧首部 , IP 数据报 的后面 加上 帧尾部 ;
② 接收端识别数据帧 : 接收端 收到 物理层 上交的 比特流 之后 , 根据 数据帧 的首部 , 尾部 标记 , 从连续的比特流中 , 识别出 数据帧的 开始 和 结束位置 ;
二、 “数据帧” 附加信息
"数据帧" 附加信息 :
① 帧界定符 : 首部 和 尾部 包含 很多控制信息 , 其中的一种控制信息 帧定界符 , 用于确定 数据帧的界限 ;
② 其它信息 : 除了 帧定界符 之外 , 还包括 差错控制信息 , 流量控制信息 , 物理地址信息 ;
三、 “数据帧” 帧同步
"数据帧" 帧同步 :
① 帧界定符 : 在 首部 和 尾部 添加的 字段 中有 帧定界符 , 根据 帧定界符 可以确定数据帧的开始 , 结束位置 ;
② 帧同步 : 接收方 从 接收到的 二进制 比特流中 , 识别出 数据帧的 其实位置 和 终止位置 ;
③ 数据帧 发送 与 接收 : 发送方 从 帧首部 开始发送 , 到 帧尾部 发送完毕 , 接收方 首先从 帧首部 判断数据帧的开始 , 直到 接收到帧尾部 帧定界符 , 确定收到了一个完整的数据帧 ;
四、 “数据帧” 长度
数据链路层 帧长 :
① 数据帧组成部分 : 帧首部 , 帧数据部分 , 帧尾部 ;
② 数据帧帧长 : 帧首部长度 + 帧数据长度 + 帧尾部长度 之和 , 就是数据帧 帧长 ;
③ 帧的数据部分长度 限制 : 帧数据部分的 数据长度要 小于等于 最大传送单元 MTU ;
五、 “数据帧” 组装方法
数据帧 组装方法 :
- 字符计数法
- 字符填充法
- 零比特填充法
- 违规编码法
六、 透明传输
"透明传输" 概念 : 不管传输什么样的比特组合 , 都能够在链路上传输 ;
数据信息 与 控制信息 区分问题 : 数据中的比特组合 恰好 与 某个控制信息 完全一样 , 此时就需要采取一些措施 , 能够使接收方认为这是数据信息 , 不是控制信息 , 这样才能保证 数据链路层 传输的透明性 ;
七、 字符计数法
字符计数法 : 数据帧 首部 的 计数字段 , 表明 数据帧 字符数 ;
- 计数字段 : 1 Byte ( 字节 ) , 8 bit ( 位 ) ;
缺点 : 所有的数据帧都连续存放 , 如果其中有一个数据帧出错了 , 那么后续所有的数据帧都会出错 ;
八、 字符填充法 ( 加转义字符 )
数据帧透明传输需求 :
① 数据帧封装 : 数据帧 添加 帧首部 , 和 帧尾部 ; 帧首部 和 帧尾部 之间的部分就是实际的数据 ;
② 传输 文本文件 : 数据帧 的数据 是 文本文件组成时 , 数据都是 ASCII 码 , 键盘上传输的任何字符 , 都 可以透明传输 ;
③ 传输 非文本文件 : 如果传输的文件是 非 文本文件 , 如 图像 , 音频 , 视频 等 , 此时 文件中的数据可能是任意值 , 就有可能与 帧尾部 或 帧首部 相同 , 此时就需要 采用 字符填充法实现 透明传输 ;
字符填充法 :
① 数据的随机性 : 原始数据中 , 存在 与 帧首部 , 帧尾部 相同的数据 ;
② 发送端填充转义字符 : 在这些 数据中的 帧首部 / 帧尾部 相同的数据前 , 填充一个转义字符 , 告诉接收端 , 转义字符后的后续数据作为帧数据 , 不当做 帧首部 / 帧尾部 使用 ;
③ 接收端接收数据 : 接收端 接收到的数据中有 转义字符 + 帧首部 / 尾部 样式的信息时 , 将转义字符后的数据当做帧数据 ; 当接收到 单独的 帧首部 / 尾部 时 ( 没有转义字符 ) , 才将其当做数据帧的首部 / 尾部 ;
九、 零比特填充法 ( 5 “1” 1 “0” )
零比特填充法 :
① “数据帧” 首部尾部设定 : 数据帧首部尾部 都设定成 011111100111111001111110 , 解决 数据中出现 011111100111111001111110 数据的情况 , 实现透明传输 ;
② 发送端 : 扫描发送数据 , 发现有连续的 555 个 111 , 就在后面加上一个 000 ; 这样 帧数据 永远不会出现 666 个 111 的数据 ;
③ 接收端 : 扫描接收数据 , 发现有连续的 555 个 111 , 就将后面的 000 删除 ; 对应 发送端的操作 ;
这样在比特流中可以传输任意比特组合 , 不会引起 数据帧 边界判定错误的问题 , 实现了透明传输 ;
十、 违规编码法
正常编码 : 曼彻斯特编码 / 差分曼彻斯特编码 中 , 不管是 000 , 还是 111 , 在码元 中肯定会跳变一次 , 要么是 高-低 跳变 , 要么是 低-高 跳变 ;
违规编码 : 使用 “高-高” , “低-低” 码元 来作为 数据帧 的 起始 和 终止 边界 ;
十一、 透明传输常用方法
字符计数法 中如果出现差错 , 导致后果太严重 , 一般情况下不使用该方法 ;
字符填充法 实现复杂 , 兼容性差 , 一般情况下也不使用 ;
常用的透明传输实现方法是 零比特填充法 和 违规编码法 ;
【计算机网络】数据链路层 : 封装数据帧 ( 附加信息 | 帧长度 | 透明传输 | 字符计数法 | 字符填充法 | 零比特填充法 | 违规编码法 )相关推荐
- 计算机网络——数据链路层之封装成帧和透明传输
参考链接 CSKAOYAN.COM 封装成帧 封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧.接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开 ...
- 3.2.1 封装成帧、帧定界、帧同步、透明传输(字符计数法、字符串的首尾填充法、零比特填充的首尾标志法、违规编码法)(转载)
原文链接:https://blog.csdn.net/weixin_43914604/article/details/104779973 本博客为个人学习.研究或者欣赏用,如有侵权,请与我联系删除,谢 ...
- 计算机网络(4.1)——数据链路层的功能概述、封装成帧和透明传输
基本概念 结点:主机.路由器 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线.光纤和微波.分为有线链路.无线链路. 数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件 ...
- 【计算机网络复习 数据链路层】3.2 封装成帧和透明传输
封装成帧和透明传输 一.封装成帧 二.透明传输 一.封装成帧 封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧.接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比 ...
- 计算机网络之数据链路层功能概述、封装成帧、透明传输以及差错控制(检验编码)【408_1】
一.数据链路层功能概述 (一)数据链路层基本概念 结点:主机.路由器 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线.光纤和微波.分为有线链路.无线链路. 数据链路:网络中两个结点之间 ...
- 数据链路层——封装成帧、透明传输、差错检测、最大传输单元MTU、以太网协议
OSI模型中的数据链路层与物理层,在TCP/IP协议中同属于网络接口层. 数据链路层为物理连接之间提供了可靠的数据传输.数据链路层主要解决3个问题:封装成帧.透明传输.差错检测. 封装成帧 " ...
- 数据链路层三个基本问题(封装成帧 、透明传输和差错检测 )
文章目录 使用点对点信道的数据链路层 1.1 数据链路和帧 1.2 三个基本问题 1. 封装成帧 2. 透明传输 3. 差错检测 循环冗余检验CRC 帧检验序列 FCS 接收端对收到的每一帧进行 CR ...
- 数据链路层:封装成帧、透明传输、差错检测
从整个互联网来看,局域网仍属于数据链路层的范围. 链路 VS 数据链路 链路:从一个结点到相邻结点的一段物理链路. 数据链路:物理线路+实现通信协议的硬件和软件.(早期通信协议也称通信规程) 另一种分 ...
- 数据链路层 功能 封装成帧 透明传输 字符计数法 字符填充法 零比特填充法 违规编码法 传输中的差错 差错控制 冗余编码 奇偶校验码 CRC循环冗余码 检错过程 细解 图解 通俗易懂
粉丝不过W 数据链路层: 结点:主机.路由器 链路:网络中两个结点之间的物理通道,链路的传输介质:双绞线.光纤和微波,分为有线链路.无线链路 数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输 ...
最新文章
- jakarta-taglibs-standard-1.1.0查找下载
- 用人脑生成等概率随机数,困扰人类30万年的问题解决了 | 附“源代码”
- linux中注册系统服务—service命令的原理通俗
- java实现Kafka生产者示例
- php中的list()用法中要注意的地方
- Google 被祭天了!
- 资源 | 忘了Python关键语句?这份备忘录拯救你的记忆
- 1年内从2000涨到13000的成长经验分享
- python的while嵌套循环_Python中嵌套的WHILE循环
- Map与JSON数据之间的互相转化
- java session超时判断_详解SpringBoot中Session超时原理说明
- 小白帽从病毒视角聊企业安全建设
- 洛谷试炼场---提高历练地2
- 三角波的傅里叶变换公式_南瓜老师的数学思维训练营 第14期 —— 三角恒等变换公式...
- 【Go】Go 语言运算符及其优先级
- Discuz!论坛教程之去掉帖子列表页的附件图标的方法
- 如何制作3D动画人物
- 8421码到5421码的转换_余三码8421bcd码转换电路设计的接线方法
- 如何用数据找到下一家独角兽?
- 【PyTorch】torch.nn.Transformer解读与应用