文章目录

  • 一、 封装数据帧
  • 二、 "数据帧" 附加信息
  • 三、 "数据帧" 帧同步
  • 四、 "数据帧" 长度
  • 五、 "数据帧" 组装方法
  • 六、 透明传输
  • 七、 字符计数法
  • 八、 字符填充法 ( 加转义字符 )
  • 九、 零比特填充法 ( 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 , 在码元 中肯定会跳变一次 , 要么是 高-低 跳变 , 要么是 低-高 跳变 ;

违规编码 : 使用 “高-高” , “低-低” 码元 来作为 数据帧 的 起始 和 终止 边界 ;

十一、 透明传输常用方法


字符计数法 中如果出现差错 , 导致后果太严重 , 一般情况下不使用该方法 ;

字符填充法 实现复杂 , 兼容性差 , 一般情况下也不使用 ;

常用的透明传输实现方法是 零比特填充法 和 违规编码法 ;

【计算机网络】数据链路层 : 封装数据帧 ( 附加信息 | 帧长度 | 透明传输 | 字符计数法 | 字符填充法 | 零比特填充法 | 违规编码法 )相关推荐

  1. 计算机网络——数据链路层之封装成帧和透明传输

    参考链接 CSKAOYAN.COM 封装成帧 封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧.接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开 ...

  2. 3.2.1 封装成帧、帧定界、帧同步、透明传输(字符计数法、字符串的首尾填充法、零比特填充的首尾标志法、违规编码法)(转载)

    原文链接:https://blog.csdn.net/weixin_43914604/article/details/104779973 本博客为个人学习.研究或者欣赏用,如有侵权,请与我联系删除,谢 ...

  3. 计算机网络(4.1)——数据链路层的功能概述、封装成帧和透明传输

    基本概念 结点:主机.路由器 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线.光纤和微波.分为有线链路.无线链路. 数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输协议的硬件 ...

  4. 【计算机网络复习 数据链路层】3.2 封装成帧和透明传输

    封装成帧和透明传输 一.封装成帧 二.透明传输 一.封装成帧 封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧.接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比 ...

  5. 计算机网络之数据链路层功能概述、封装成帧、透明传输以及差错控制(检验编码)【408_1】

    一.数据链路层功能概述 (一)数据链路层基本概念 结点:主机.路由器 链路:网络中两个结点之间的物理通道,链路的传输介质主要有双绞线.光纤和微波.分为有线链路.无线链路. 数据链路:网络中两个结点之间 ...

  6. 数据链路层——封装成帧、透明传输、差错检测、最大传输单元MTU、以太网协议

    OSI模型中的数据链路层与物理层,在TCP/IP协议中同属于网络接口层. 数据链路层为物理连接之间提供了可靠的数据传输.数据链路层主要解决3个问题:封装成帧.透明传输.差错检测. 封装成帧 " ...

  7. 数据链路层三个基本问题(封装成帧 、透明传输和差错检测 )

    文章目录 使用点对点信道的数据链路层 1.1 数据链路和帧 1.2 三个基本问题 1. 封装成帧 2. 透明传输 3. 差错检测 循环冗余检验CRC 帧检验序列 FCS 接收端对收到的每一帧进行 CR ...

  8. 数据链路层:封装成帧、透明传输、差错检测

    从整个互联网来看,局域网仍属于数据链路层的范围. 链路 VS 数据链路 链路:从一个结点到相邻结点的一段物理链路. 数据链路:物理线路+实现通信协议的硬件和软件.(早期通信协议也称通信规程) 另一种分 ...

  9. 数据链路层 功能 封装成帧 透明传输 字符计数法 字符填充法 零比特填充法 违规编码法 传输中的差错 差错控制 冗余编码 奇偶校验码 CRC循环冗余码 检错过程 细解 图解 通俗易懂

    粉丝不过W 数据链路层: 结点:主机.路由器 链路:网络中两个结点之间的物理通道,链路的传输介质:双绞线.光纤和微波,分为有线链路.无线链路 数据链路:网络中两个结点之间的逻辑通道,把实现控制数据传输 ...

最新文章

  1. jakarta-taglibs-standard-1.1.0查找下载
  2. 用人脑生成等概率随机数,困扰人类30万年的问题解决了 | 附“源代码”
  3. linux中注册系统服务—service命令的原理通俗
  4. java实现Kafka生产者示例
  5. php中的list()用法中要注意的地方
  6. Google 被祭天了!
  7. 资源 | 忘了Python关键语句?这份备忘录拯救你的记忆
  8. 1年内从2000涨到13000的成长经验分享
  9. python的while嵌套循环_Python中嵌套的WHILE循环
  10. Map与JSON数据之间的互相转化
  11. java session超时判断_详解SpringBoot中Session超时原理说明
  12. 小白帽从病毒视角聊企业安全建设
  13. 洛谷试炼场---提高历练地2
  14. 三角波的傅里叶变换公式_南瓜老师的数学思维训练营 第14期 —— 三角恒等变换公式...
  15. 【Go】Go 语言运算符及其优先级
  16. Discuz!论坛教程之去掉帖子列表页的附件图标的方法
  17. 如何制作3D动画人物
  18. 8421码到5421码的转换_余三码8421bcd码转换电路设计的接线方法
  19. 如何用数据找到下一家独角兽?
  20. 【PyTorch】torch.nn.Transformer解读与应用

热门文章

  1. 哈佛大学凌晨四点情形
  2. python创建数据集_利用 python 在本地数据集创建训练集和测试集
  3. 慌乱之中get到一个小技能----如何将CAJ转换成PDF
  4. 游戏广告主投放十万被骗,推广作弊竟全是虚拟用户
  5. 转码/解锁工具-CleverPDF
  6. 【蓝桥杯】 数独游戏 (经典深搜题型)
  7. Docker 之 自定义镜像上传阿里云
  8. 基于微信小程序的校园体育设施管理系统的设计与实现计算机毕业设计源码70715
  9. 1.11 Xcode右侧界面介绍 [原创iOS开发-Xcode教程]
  10. 【Vue】你了解高阶组件吗