计算机网络学习8:封装成帧、差错检测

简介: 接收方的数据层如何从物理层交付的比特流中提取出一个个的帧呢?帧头和帧尾的作用之一就是 帧定界。

封装成帧


0f7acbc5a3714ffa62a5837433834f86_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rSy55qE5a2m5Lmg56yU6K6w,size_20,color_FFFFFF,t_70,g_se,x_16.png

接收方的数据层如何从物理层交付的比特流中提取出一个个的帧呢?

7251d827bec2ebdfb0becdf9419c2d55_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rSy55qE5a2m5Lmg56yU6K6w,size_20,color_FFFFFF,t_70,g_se,x_16.png

帧头和帧尾的作用之一就是 帧定界。

87fcea9db42f963f2d4a528cfa3f0487_38a3868da9064d1b9c84a6432e3a25dd.png

例如PPP帧的帧头帧尾中就含有标志了。这样就可以一个个提取了。


但是并不是每一种数据链路层协议的帧都包含有帧定界的标志。

4c63a736f131d871a6c74fa3d527160c_3cf7ea2d80db41fea3a3749f0bb13d98.png

如MAC帧就没有这个格式。


接收方是怎么接受的呢?


物理层会在MAC帧前加上一个前导码。

34da36ba6cc0c2b5ed96ed737c09be31_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rSy55qE5a2m5Lmg56yU6K6w,size_20,color_FFFFFF,t_70,g_se,x_16.png


同时mac帧还规定了 帧间间隔,所以不需要 帧尾的定界符。

e41961737657156dba5249c3c29412fd_4c4c6f5adf10499094619a75066d73b7.png



透明传输


如果在上层交付的协议数据单元中,恰好也包含了这个flag帧头帧尾的特定数值,那么接收方还能正确接受吗?答案是否定的。

642507561a710e8290f7e43ebbd30348_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rSy55qE5a2m5Lmg56yU6K6w,size_14,color_FFFFFF,t_70,g_se,x_16.png

接受方在接收到第一个flag帧定界标志时,认为是帧的开始。


当再次接收到时候,会误认帧结束接收了。如果数据链路层不采取措施来避免接收方对 帧 是否结束的 误判,就不能称为 透明传输。 也就是 数据链路层对上层交付的数据单元有 限制。其内容不能包含定界符。那么这样的数据链路层没有任何意义了。


解决方案:

在发送前,对数据进行扫描,如果有flag定界符,那么就会在前面插入一个esc转义字符。

e769717af4e2c37f4fce5c7c4c4191ed_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rSy55qE5a2m5Lmg56yU6K6w,size_13,color_FFFFFF,t_70,g_se,x_16.png

这样就可以避免问题了,遇到esc之后,就会知道后面是数据而不是定界符了。剔除转义字符后,就可以自动处理了。


那么如果上层交付给数据单元的过程中,本身就含有esc这个数据那么又该怎么办呢。

07adf604d934e6f92c40f1e2366436bb_0d5e657c3dc54aee9d98fb5114b1d029.png

方法仍然是进行扫描数据,然后加上一个esc。


esc长度为一个字节,而不是esc这三个字符。10进制值为27。

4f4bf308487ad57b75be4f0da0f34fed_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rSy55qE5a2m5Lmg56yU6K6w,size_20,color_FFFFFF,t_70,g_se,x_16.png

例如该方法是连续的五个1的比特后面加一个0即可,接收验证的时候直接剔除就可以了,

8876453414ef11263b55143a3db30272_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rSy55qE5a2m5Lmg56yU6K6w,size_20,color_FFFFFF,t_70,g_se,x_16.png

14eb1f95ea1e67047ff0a5a063153691_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rSy55qE5a2m5Lmg56yU6K6w,size_20,color_FFFFFF,t_70,g_se,x_16.png


差错检测


传输过程可能会出现错误,一段时间内,传输错误的比特占传输比特总数的比率称为误码率BER(bit error rate)。

8b9a790ccf1f6e7870b2cbed303f91d5_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rSy55qE5a2m5Lmg56yU6K6w,size_20,color_FFFFFF,t_70,g_se,x_16.png

使用差错检测码,可以检测是否出现了差错。

be83ac1cea0e10711c909a1115258e9c_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rSy55qE5a2m5Lmg56yU6K6w,size_20,color_FFFFFF,t_70,g_se,x_16.png

循环冗余检验 CRC


527cfa1df49829068c8f057289a99d0b_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rSy55qE5a2m5Lmg56yU6K6w,size_20,color_FFFFFF,t_70,g_se,x_16.png

25d4c8f296952ab67edf9c183ffc1683_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rSy55qE5a2m5Lmg56yU6K6w,size_20,color_FFFFFF,t_70,g_se,x_16.png

需要注意的是:算法要求生成多项式必须包含最低次项,也就是每一项的最后都是1。

c227329a691be69872b3c684fe4b25fd_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rSy55qE5a2m5Lmg56yU6K6w,size_20,color_FFFFFF,t_70,g_se,x_16.png

05567f78184ddbbbc70a6a2c1df4dae3_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rSy55qE5a2m5Lmg56yU6K6w,size_20,color_FFFFFF,t_70,g_se,x_16.png


检错码只能检测出错,但是不能定位错误,不可以纠正错误。

dee58a605bf94cbf7a3e7d7c62ad22df_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5rSy55qE5a2m5Lmg56yU6K6w,size_20,color_FFFFFF,t_70,g_se,x_16.png


相关文章
|
3天前
|
运维 监控 安全
公司监控软件:SAS 数据分析引擎驱动网络异常精准检测
在数字化商业环境中,企业网络系统面临复杂威胁。SAS 数据分析引擎凭借高效处理能力,成为网络异常检测的关键技术。通过统计分析、时间序列分析等方法,SAS 帮助企业及时发现并处理异常流量,确保网络安全和业务连续性。
23 11
|
1月前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目DWRSeg是一种高效的实时语义分割网络,通过将多尺度特征提取分为区域残差化和语义残差化两步,提高了特征提取效率。它引入了Dilation-wise Residual (DWR) 和 Simple Inverted Residual (SIR) 模块,优化了不同网络阶段的感受野。在Cityscapes和CamVid数据集上的实验表明,DWRSeg在准确性和推理速度之间取得了最佳平衡,达到了72.7%的mIoU,每秒319.5帧。代码和模型已公开。
【YOLO11改进 - C3k2融合】C3k2DWRSeg二次创新C3k2_DWR:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
|
1月前
|
安全 Linux 网络安全
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息
nmap 是一款强大的开源网络扫描工具,能检测目标的开放端口、服务类型和操作系统等信息。本文分三部分介绍 nmap:基本原理、使用方法及技巧、实际应用及案例分析。通过学习 nmap,您可以更好地了解网络拓扑和安全状况,提升网络安全管理和渗透测试能力。
121 5
|
1月前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
1月前
|
存储 缓存 Dart
Flutter&鸿蒙next 封装 Dio 网络请求详解:登录身份验证与免登录缓存
本文详细介绍了如何在 Flutter 中使用 Dio 封装网络请求,实现用户登录身份验证及免登录缓存功能。首先在 `pubspec.yaml` 中添加 Dio 和 `shared_preferences` 依赖,然后创建 `NetworkService` 类封装 Dio 的功能,包括请求拦截、响应拦截、Token 存储和登录请求。最后,通过一个登录界面示例展示了如何在实际应用中使用 `NetworkService` 进行身份验证。希望本文能帮助你在 Flutter 中更好地处理网络请求和用户认证。
167 1
|
1月前
|
安全 网络协议 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-1):主动信息收集之ping、Nmap 就怕你学成黑客啦!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-1):主动信息收集之ping、Nmap 就怕你学成黑客啦!
|
1月前
|
网络协议 安全 NoSQL
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(8-2):scapy 定制 ARP 协议 、使用 nmap 进行僵尸扫描-实战演练、就怕你学成黑客啦!
|
1月前
|
机器学习/深度学习 计算机视觉 网络架构
【YOLO11改进 - C3k2融合】C3k2融合DWRSeg二次创新C3k2_DWRSeg:扩张式残差分割网络,提高特征提取效率和多尺度信息获取能力,助力小目标检测
【YOLO11改进 - C3k2融合】C3k2融合DWRSDWRSeg是一种高效的实时语义分割网络,通过将多尺度特征提取方法分解为区域残差化和语义残差化两步,提高了多尺度信息获取的效率。网络设计了Dilation-wise Residual (DWR) 和 Simple Inverted Residual (SIR) 模块,分别用于高阶段和低阶段,以充分利用不同感受野的特征图。实验结果表明,DWRSeg在Cityscapes和CamVid数据集上表现出色,以每秒319.5帧的速度在NVIDIA GeForce GTX 1080 Ti上达到72.7%的mIoU,超越了现有方法。代码和模型已公开。
|
1月前
|
人工智能 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS
网络空间安全之一个WH的超前沿全栈技术深入学习之路(4-2):渗透测试行业术语扫盲完结:就怕你学成黑客啦!)作者——LJS