0

计算机网络:组帧_wx62e40d60030b6的技术博客_51CTO博客

 1 year ago
source link: https://blog.51cto.com/u_15736437/5818532
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

计算机网络:组帧

精选 原创

数据链路层之所以要把比特组合成帧为单位传输,是为了在出错时只重发出错的帧,而不必重发全部数据,从而提高效率。为了使接收方能正确地接收并检查所传输的帧,发送方必须依据一定的规则把网络层递交的分组封装成帧(称为组帧)。组帧主要解决帧定界、帧同步、透明传输等问题。

通常有4种方法实现组帧。

比较组帧与分组

组帧时要加首、尾部。原因是在网络中信息是以帧为最小单位进行传输的,所以接收端要正确地接收帧,必须要清楚该帧在一串比特流中从哪里开始到哪里结束(因为接收端收到的是一串比特流,没有首部和尾部是不能正确区分帧的)。而分组(即IP数据报)仅是包含在帧中的数据部分,所以不需要加尾部来定界。

1.字符计数法(不常用)

字符计数法是指在帧头部使用一个计数字段来标明帧内字符数(计数字段提供的字节数包含自身所占用的一个字节)。

计算机网络:组帧_控制字符

缺点:如果计数字段出错,即失去了帧边界划分的依据,那么接收方就无法判断所传输帧的结束位和下一帧的开始位,收发双方将失去同步,从而造成灾难性后果。

2.字符填充的首尾定界符法(不常用)

字符填充法使用特定字符来定界一帧的开始与结束。

  • 控制字符SOH(Start of Heading)表示帧的首部开始
  • 控制字符EOT(End Of Transmission)表示帧的结束。
  • 为了使信息位中出现的特殊字符不被误判为帧的首尾定界符,可在特殊字符前面填充一个转义字符(ESC,Escape character)来加以区分(注意,转义字符是ASCII码中的控制字符,是一个字符,而非“E”“S”"C”三个字符的组合),以实现数据的透明传输。
计算机网络:组帧_组帧_02

接收方收到数据后会自己删除这个插入的ESC字符, 得到原来的数据。但是实现复杂,不兼容,不常用。

3.零比特填充的首尾标志法(常用)

零比特填充法允许数据帧包含任意个数的比特,也允许每个字符的编码包含任意个数的比特。它使用一个特定的比特模式,即01111110来标志一帧的开始和结束。为了不使信息位中出现的比特流01111110被误判为帧的首尾标志,发送方的数据链路层在信息位中遇到5个连续的“1”时,将自动在其后插入一个“0”;而接收方做该过程的逆操作,即每收到5个连续的“1”时,自动删除后面紧跟的“0”,以恢复原信息。硬件实现容易,性能优于字符填充。

计算机网络:组帧_控制字符_03

4.违规编码法(常用)

在物理层进行比特编码时,通常采用违规编码法。

例如,曼彻斯特编码方法将数据比特“1”编码成“高-低”电平对,将数据比特“0”编码成“低-高”电平对,而“高-高”电平对和“低-低”电平对在数据比特中是违规的(即没有采用)。可以借用这些违规编码序列来定界帧的起始和终止。局域网IEEE 802标准就采用了这种方法。

违规编码法不需要采用任何填充技术,便能实现数据传输的透明性,但它只适用于采用冗余编码的特殊编码环境。

参考资料:

谢希仁.计算机网络(第8版)[M].北京:电子工业出版社,2021.

James F.Kurose,Keith W.Ross.计算机网络:自顶向下方法[M].北京:机械工业出版社,2019.

2023年王道计算机复习指导[M].北京:电子工业出版社,2021.

  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK