组帧,封装成帧是什么?什么是透明传输?组帧的四种方法(字符计数法,字符填充法,零比特填充法,违规编码法)

本文阅读 6 分钟
首页 安全分享,WEB安全 正文

<font color="orange">「作者主页」:</font>士别三日wyx
<font color="orange">「作者简介」:</font>CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
<font color="orange">「专栏简介」:</font>此文章已录入专栏《计算机网络零基础快速入门》

  1. 了解什么是透明传输?
  2. 了解组帧的概念,了解封装成帧的四种方法?

透明传输是一种传输方式,一种 「下层相对于上层透明」 的传输方式。

透明传输不关心传输的内容是什么,设备只是起一个「通道」的作用,只传输数据。

就像寄快递一样,你只需要告诉驿站地址,而不用担心快递的过程,这个快递传输的过程对你来说就是透明的。

这里可能有人不理解,我详细解释一下:透明是下层对于上层的透明,就像你寄快递,驿站送快递的过程对于你是透明的,但这个过程对于驿站本身不能透明,驿站得处理快递,把快递给你送过去呀,总不能给你送个空盒子吧;

链路层的透明传输也是一样,传输的过程在上层看来是透明的,但链路层还是得处理这些数据,只是这些处理过程,上层并不关心。

链路层处理数据的第一步,就是封装成帧。

物理层只是单纯的「传输」比特流,没有对传输的数据作任何「处理」,这样容易出现一些问题,比如,本来传输5个单位的数据,传输过程中丢了3个,这就会导致数据的传输出现「差错」,为了避免这些差错,数据链路层将数据分隔成多组小数据(帧),当数据传输出现差错时,只重发出错的帧,而不是重发所有的数据。

封装成帧就是在一段数据的前后添加「首部」和「尾部」,首部+数据+尾部 共同组成一个帧。

img 组帧的目的在于,确定数据的开始和结束; 在此基础上,帧首部和帧尾部可以包含很多控制信息,比如:传输顺序编号,保证数据的有序和准确。

常用的组帧方式有四种:

1)字符计数法

帧首部使用一个字节(8位)来标明帧的「字符数」。

img 比如,帧的第一个字节是5,就表示这个帧有5个字符; 帧的第一个字节是8,就表示这个帧就8个字符。

这种方法有一个很大的问题,当第一个字节(计数字节)发生错误时,后续所有的帧都会发生错误,因此,这种方法并不常用。

2)字符填充法

指定两个特殊字节,作为帧的开始字节(SOH)和结束字节(EOT)。

比如,我们用00000001代表开始字节,00000100代表结束字节,接收方识别到这两种字节时,就能知道帧从哪里开始,从哪里结束。

img 发送方在「发送前」,先检查帧的数据部分,有没有和特殊字节「重复」的内容(数据部分与特殊字节重复时,会使接收方错误的识别帧的开始和结束)。 如果有重复的部分,就会「填充」另外一种特殊字节(ESC),告诉接收方,这个字节(8位)的数据不是帧界定符,你不要识别。 发送方在接收帧以后,再将这个填充的特殊字节「删除」掉。

img

3)零比特填充法

指定一个特殊字节(01111110)作为帧界定符,用来标识帧的开始和结束。

img 发送方在「发送前」,先检查帧的数据部分,只要有「5个连续的1」,就在后面「填充1个0」。

接收方在收到帧以后,先找到帧的界定符,再扫描帧的数据部分,只要有5个连续的1,就「删除」后面的0。

4)违规编码法

计算机传输数据时,用「电流」的高低来标识数据,「一高一低」的电流表示1,「一低一高」的电流表示0。

违规编码法利用违规的电流来表示帧界定符,比如,用两个连续的高电流表示帧的开始,两个连续的底电流表示帧的结束。

img 由于字符计数法容错率太低,字节填充法实现起来台复杂,因此,使用较多的是零比特填充法和违规编码法。

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/wangyuxiang946/article/details/124445613
-- 展开阅读全文 --
BUUCTF Web [极客大挑战 2019]Knife
« 上一篇 06-24
安全面试之XSS(跨站脚本攻击)
下一篇 » 07-24

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复