组帧的方法

来聊聊这些组帧方法:
字符计数法:就像写信时在信封上写上里面有多少页纸一样,这个方法在数据包的开头告诉你这个包里有多少字。但要是这个数字写错了,收信的人就不知道信什么时候结束了,可能会把下一封信的内容也读进去。
字符填充的首尾定界符法:这个方法用一些特别的字符来告诉别人,数据包的开头和结尾在哪里。就像在信的开头和结尾用特别的标记一样。但如果信里本来就有这些特别的字符,就得在它们前面加个“转义符”,告诉别人这不是真的开头或结尾。
零比特填充的首尾标志法:这个方法用一串特定的比特(01111110)来标记数据包的开始和结束。发送的时候,如果连续五个1出现了,就在后面加个0;接收的时候,如果看到五个1后面跟着0,就把它去掉。这样做的好处是硬件实现起来简单,而且效率比前面的方法高。
违规编码法:这个方法用一些特殊的编码序列来标记数据包的开始和结束。它的好处是不需要用到任何填充技术,数据包里不管有什么内容都能顺利发送,特别适合那些已经用了特殊编码的情况。
常用的组帧方法:现在大家用得比较多的是零比特填充法和违规编码法,因为它们既简单又好用。
总之,这些方法就像是不同的信封设计,有的简单明了,有的复杂但更保险。选择哪一种,得看你要寄的信有多重要,以及你希望它多快多安全地到达。
 

知识点链接

数据通信中的组帧方法用于在数据流中识别和界定数据帧的开始和结束,以确保数据的正确传输和接收。下面是对这些组帧方法的详解:
字符计数法
实现方法:在每个帧的头部使用一个计数字段来标明帧内字符的数量。
缺点:如果计数字段出现错误,会导致收发双方失去同步,从而无法正确划分帧边界,引起数据传输错误。
字符填充的首尾定界符法
实现方法:使用特定的字符(如DLE STX)来标志帧的开始,使用另一组特定的字符(如DLE ETX)来标志帧的结束。
注意事项:在数据中,如果出现与定界符相同的特殊字符,需要在这些特殊字符前面填充一个转义字符(DLE),以防止它们被误判为帧的首尾定界符。
零比特填充的首尾标志法
实现方法:使用特定的比特序列(01111110)来标志帧的开始和结束。在发送过程中,如果遇到5个连续的1,则自动在其后添加一个0;在接收过程中,如果遇到5个连续的1,则自动删除后面的0,以防止误判。
优点:零比特填充法易于通过硬件实现,性能优于字符填充法。
违规编码法
实现方法:采用特定的违规编码序列来界定帧的开始和结束。
优点:不需要使用任何填充技术,即可实现数据的透明传输,适用于采用冗余编码的特殊编码环境。
目前较常用的组帧方法:比特填充法和违规编码法。
这些组帧方法各有优缺点,选择哪一种取决于具体的应用场景和传输环境。例如,字符计数法简单直观,但对计数字段的准确性要求较高;而零比特填充法和违规编码法则提供了更高的数据传输性能和灵活性。
 

 

相关推荐

  1. 方法

    2024-06-19 08:52:02       32 阅读
  2. 限制Unity方式

    2024-06-19 08:52:02       59 阅读
  3. Vue3 实现图片动画方案分享

    2024-06-19 08:52:02       70 阅读
  4. Vue Camera使用方法

    2024-06-19 08:52:02       60 阅读
  5. js关于数方法

    2024-06-19 08:52:02       44 阅读
  6. js 数常用方法

    2024-06-19 08:52:02       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-19 08:52:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-19 08:52:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-06-19 08:52:02       82 阅读
  4. Python语言-面向对象

    2024-06-19 08:52:02       91 阅读

热门阅读

  1. elementui写一个自定义的rangeInput的组件

    2024-06-19 08:52:02       38 阅读
  2. GitHub|GitLab它们的区别是什么?

    2024-06-19 08:52:02       35 阅读
  3. C++ day4

    C++ day4

    2024-06-19 08:52:02      31 阅读
  4. 基于单片机的直流电机调速系统设计探讨

    2024-06-19 08:52:02       30 阅读
  5. clean code-代码整洁之道 阅读笔记(第九章)

    2024-06-19 08:52:02       33 阅读
  6. 编程电脑怎么接网线:详细步骤与注意事项

    2024-06-19 08:52:02       28 阅读
  7. Linux入门学习指南(二)

    2024-06-19 08:52:02       32 阅读