热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

计算机网络学习笔记3.2封装成帧和透明传输

前言参考王道书。后续会进一步整理,包括添加笔记内容,标明参考资料。更新中。。。跳过目录目录一、封装成帧(组帧)二、透明传输三、组帧的四种方法1、字符计数法2、字符(节)填充法3、零

前言

参考王道书。
后续会进一步整理,包括添加笔记内容,标明参考资料。

更新中。。。

跳过目录

目录

  • 一、封装成帧(组帧)
  • 二、透明传输
  • 三、组帧的四种方法
    • 1、字符计数法
    • 2、字符(节)填充法
    • 3、零比特填充的首尾标志法(零比特填充法)
    • 4、违规编码法
一、封装成帧(组帧)

封装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧。

接收端在收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。

首部和尾部包含许多的控制信息,他们的一个重要作用:帧定界(确定帧的界限)

帧同步:接收方应当能从接收到的二进制比特流中区分出赖的起始和终止。

《计算机网络学习笔记 3.2 封装成帧和透明传输》
《计算机网络学习笔记 3.2 封装成帧和透明传输》

二、透明传输

透明传输是指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就“看不见”有什么妨碍数据传输的东西。

当所传数据中的比特组合恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使收方不会将这样的数据误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

三、组帧的四种方法
  1. 字符计数法
  2. 字符(节)填充法
  3. 零比特填充的首尾标志法(零比特填充法)
  4. 违规编码法

注:
  由于字符计数法中Count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性, 目前较普遍使用的帧同步法是零比特填充法违规编码法

1、字符计数法

帧首部使用一个计数字段(第一个字节,八位)来标明帧内字符数。

《计算机网络学习笔记 3.2 封装成帧和透明传输》
痛点:鸡蛋装在一个篮子里了。

容易出错,不常用

2、字符(节)填充法

  • 情况1:当传送的帧是由文本文件组成时(文本文件的字符都是从键盘上输入的,都是ASCI码)不管从键盘上输入什么字符都可以放在帧里传过去,即透明传输。
    《计算机网络学习笔记 3.2 封装成帧和透明传输》
  • 情况2:当传送的帧是由非ASCI码的文本文件组成时(二进制代码的程序或图像等)就要采用字符填充方法实现透明传输
    《计算机网络学习笔记 3.2 封装成帧和透明传输》

字符填充
《计算机网络学习笔记 3.2 封装成帧和透明传输》

  • 使用特定的字符(首尾定界符)来定界一帧的开始(SOH)与结束(EOT)。
    《计算机网络学习笔记 3.2 封装成帧和透明传输》

  • 为了使信息位中出现的特殊字符不被误判为帧的首尾定界符,可以在特殊字符前面填充一个转义字符(ESC)来加以区分,以实现数据的透明传输。
    《计算机网络学习笔记 3.2 封装成帧和透明传输》

  • 接收方收到数据后,会自己删除插入的转义字符,结果仍得到原来的数据
    《计算机网络学习笔记 3.2 封装成帧和透明传输》《计算机网络学习笔记 3.2 封装成帧和透明传输》

3、零比特填充的首尾标志法(零比特填充法)

零比特填充法允许数据帧包含任意个数的比特,也允许每个字符的编码包含任意个数的比特。

  • 使用01111110来标志一帧的开始和结束。

《计算机网络学习笔记 3.2 封装成帧和透明传输》

  • 为了不使信息位中出现的比特流01111110被误判为帧的首尾标志,发送方的数据链路层在信息位中遇到5个连续的”1″时,将自动在其后插入一个”0″;

  • 而接收方做该过程的逆操作,即每收到5个连续的”1″时,自动删除后面紧跟的”0″,以恢复原信息。

  • 口诀:5“1”1“0”

操作:

  • 发送端
    扫描整个信息字段,只要连续5个1,就立即填入1个0

    原始数据:0110111111110111110010
    填充后:011011111011101111100010

  • 接收端
    在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。

    收到数据:011011111011101111100010
    删除后(原数据):0110111111110111110010

4、违规编码法

注意到曼彻斯特编码只存在“高-低”和“低-高”两种编码:
《计算机网络学习笔记 3.2 封装成帧和透明传输》
可以用“高-高” , “低-低”来定界帧的起始和终止。


推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • 帝国CMS多图上传插件详解及使用指南
    本文介绍了一款用于帝国CMS的多图上传插件,该插件通过Flash技术实现批量图片上传功能,显著提升了多图上传效率。文章详细说明了插件的安装、配置和使用方法。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文介绍了如何使用PHP代码实现微信平台的媒体素材上传功能,详细解释了API接口的使用方法和注意事项,确保文件路径正确以避免常见的错误。 ... [详细]
  • 网络运维工程师负责确保企业IT基础设施的稳定运行,保障业务连续性和数据安全。他们需要具备多种技能,包括搭建和维护网络环境、监控系统性能、处理突发事件等。本文将探讨网络运维工程师的职业前景及其平均薪酬水平。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
author-avatar
mobiledu2502921963
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有