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

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

文章目录

一、 封装数据帧

二、 "数据帧" 附加信息

三、 "数据帧" 帧同步

四、 "数据帧" 长度

五、 "数据帧" 组装方法

六、 透明传输

七、 字符计数法

八、 字符填充法 ( 加转义字符 )

九、 零比特填充法 ( 5 "1" 1 "0" )

十、 违规编码法

十一、 透明传输常用方法





一、 封装数据帧


封装数据帧 :


① 发送端封装数据帧 : 在 网络层 下发的 IP 数据报 信息基础上 , IP 数据报 的 前面 加上 帧首部 , IP 数据报 的后面 加上 帧尾部 ;


② 接收端识别数据帧 : 接收端 收到 物理层 上交的 比特流 之后 , 根据 数据帧 的首部 , 尾部 标记 , 从连续的比特流中 , 识别出 数据帧的 开始 和 结束位置 ;






二、 “数据帧” 附加信息


"数据帧" 附加信息 :


① 帧界定符 : 首部 和 尾部 包含 很多控制信息 , 其中的一种控制信息 帧定界符 , 用于确定 数据帧的界限 ;


② 其它信息 : 除了 帧定界符 之外 , 还包括 差错控制信息 , 流量控制信息 , 物理地址信息 ;






三、 “数据帧” 帧同步


"数据帧" 帧同步 :


① 帧界定符 : 在 首部 和 尾部 添加的 字段 中有 帧定界符 , 根据 帧定界符 可以确定数据帧的开始 , 结束位置 ;


② 帧同步 : 接收方 从 接收到的 二进制 比特流中 , 识别出 数据帧的 其实位置 和 终止位置 ;


③ 数据帧 发送 与 接收 : 发送方 从 帧首部 开始发送 , 到 帧尾部 发送完毕 , 接收方 首先从 帧首部 判断数据帧的开始 , 直到 接收到帧尾部 帧定界符 , 确定收到了一个完整的数据帧 ;






四、 “数据帧” 长度


数据链路层 帧长 :


① 数据帧组成部分 : 帧首部 , 帧数据部分 , 帧尾部 ;


② 数据帧帧长 : 帧首部长度 + 帧数据长度 + 帧尾部长度 之和 , 就是数据帧 帧长 ;


③ 帧的数据部分长度 限制 : 帧数据部分的 数据长度要 小于等于 最大传送单元 MTU ;


image.png






五、 “数据帧” 组装方法


数据帧 组装方法 :


字符计数法

字符填充法

零比特填充法

违规编码法





六、 透明传输


"透明传输" 概念 : 不管传输什么样的比特组合 , 都能够在链路上传输 ;


数据信息 与 控制信息 区分问题 : 数据中的比特组合 恰好 与 某个控制信息 完全一样 , 此时就需要采取一些措施 , 能够使接收方认为这是数据信息 , 不是控制信息 , 这样才能保证 数据链路层 传输的透明性 ;






七、 字符计数法


字符计数法 : 数据帧 首部 的 计数字段 , 表明 数据帧 字符数 ;


计数字段 : 1 Byte ( 字节 ) , 8 bit ( 位 ) ;

image.png


缺点 : 所有的数据帧都连续存放 , 如果其中有一个数据帧出错了 , 那么后续所有的数据帧都会出错 ;






八、 字符填充法 ( 加转义字符 )


数据帧透明传输需求 :


① 数据帧封装 : 数据帧 添加 帧首部 , 和 帧尾部 ; 帧首部 和 帧尾部 之间的部分就是实际的数据 ;


② 传输 文本文件 : 数据帧 的数据 是 文本文件组成时 , 数据都是 ASCII 码 , 键盘上传输的任何字符 , 都 可以透明传输 ;


③ 传输 非文本文件 : 如果传输的文件是 非 文本文件 , 如 图像 , 音频 , 视频 等 , 此时 文件中的数据可能是任意值 , 就有可能与 帧尾部 或 帧首部 相同 , 此时就需要 采用 字符填充法实现 透明传输 ;




字符填充法 :


① 数据的随机性 : 原始数据中 , 存在 与 帧首部 , 帧尾部 相同的数据 ;


② 发送端填充转义字符 : 在这些 数据中的 帧首部 / 帧尾部 相同的数据前 , 填充一个转义字符 , 告诉接收端 , 转义字符后的后续数据作为帧数据 , 不当做 帧首部 / 帧尾部 使用 ;


③ 接收端接收数据 : 接收端 接收到的数据中有 转义字符 + 帧首部 / 尾部 样式的信息时 , 将转义字符后的数据当做帧数据 ; 当接收到 单独的 帧首部 / 尾部 时 ( 没有转义字符 ) , 才将其当做数据帧的首部 / 尾部 ;






九、 零比特填充法 ( 5 “1” 1 “0” )


零比特填充法 :


① “数据帧” 首部尾部设定 : 数据帧首部尾部 都设定成 01111110 0111111001111110 , 解决 数据中出现 01111110 0111111001111110 数据的情况 , 实现透明传输 ;


② 发送端 : 扫描发送数据 , 发现有连续的 5 55 个 1 11 , 就在后面加上一个 0 00 ; 这样 帧数据 永远不会出现 6 66 个 1 11 的数据 ;


③ 接收端 : 扫描接收数据 , 发现有连续的 5 55 个 1 11 , 就将后面的 0 00 删除 ; 对应 发送端的操作 ;



这样在比特流中可以传输任意比特组合 , 不会引起 数据帧 边界判定错误的问题 , 实现了透明传输 ;






十、 违规编码法


正常编码 : 曼彻斯特编码 / 差分曼彻斯特编码 中 , 不管是 0 00 , 还是 1 11 , 在码元 中肯定会跳变一次 , 要么是 高-低 跳变 , 要么是 低-高 跳变 ;


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






十一、 透明传输常用方法


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


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



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


目录
相关文章
|
20天前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
45 11
|
15天前
|
机器学习/深度学习 Serverless 索引
分类网络中one-hot编码的作用
在分类任务中,使用神经网络时,通常需要将类别标签转换为一种合适的输入格式。这时候,one-hot编码(one-hot encoding)是一种常见且有效的方法。one-hot编码将类别标签表示为向量形式,其中只有一个元素为1,其他元素为0。
20 2
|
1月前
|
网络协议 网络安全 数据中心
|
29天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
69 3
|
1月前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
1月前
|
存储 缓存 Dart
Flutter&鸿蒙next 封装 Dio 网络请求详解:登录身份验证与免登录缓存
本文详细介绍了如何在 Flutter 中使用 Dio 封装网络请求,实现用户登录身份验证及免登录缓存功能。首先在 `pubspec.yaml` 中添加 Dio 和 `shared_preferences` 依赖,然后创建 `NetworkService` 类封装 Dio 的功能,包括请求拦截、响应拦截、Token 存储和登录请求。最后,通过一个登录界面示例展示了如何在实际应用中使用 `NetworkService` 进行身份验证。希望本文能帮助你在 Flutter 中更好地处理网络请求和用户认证。
159 1
|
2月前
|
网络协议 Java 程序员
【网络】局域网LAN、广域网WAN、TCP/IP协议、封装和分用
【网络】局域网LAN、广域网WAN、TCP/IP协议、封装和分用
37 2
|
2月前
|
网络协议 网络架构
【网络】TCP/IP 五层网络模型:数据链路层
【网络】TCP/IP 五层网络模型:数据链路层
51 1
|
3月前
|
缓存 算法 网络协议
一文详细理解计算机网络 - 数据链路层(考试和面试必备)
这篇文章详细介绍了计算机网络中数据链路层的概念、基本问题、点对点信道和广播信道的数据链路协议(如PPP和CSMA/CD),以及局域网和以太网的相关知识。
238 0
一文详细理解计算机网络 - 数据链路层(考试和面试必备)
|
2月前
|
网络协议 网络架构
【第三期】计算机网络常识/网络分层模型与数据包封装传输过程
【第三期】计算机网络常识/网络分层模型与数据包封装传输过程
52 0