您好、欢迎来到现金彩票网!
当前位置:双彩网 > 协议鉴别符 >

除了差错检测外面向字符的数据链路层协议还必须解决哪些特殊的问

发布时间:2019-06-08 01:28 来源:未知 编辑:admin

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  帧定界就是要使接收端能够知道一帧的开始和结束是在什么地方。面向字符的数据传输就是所传输的数据全都是一个个的字符,例如ASCII字符。因此,在每一帧的开始和结束的地方,必须要有一个特殊的字符来作为标志,如下图所示。

  字符SOH代表StartOfHeader(首部开始),而EOT代表EndOfTransmission(传输结束)。请注意,SOH和EOT都是ASCII码中的控制字符。SOH的十六进制编码是01,而EOT的十六进制编码是04。不要误认为SOH是“S”“O”“H”三个字符,也不要误认为EOT是“E”“O”“T”三个字符。

  解决了帧定界后,在接收端就可以确定一个帧的开始和结束。剩下的问题就是透明传输的问题。

  透明传输实际上就是随便什么字符都可以传输。但设想我们在帧中传送的字符出现了一个控制字符“EOT”。那么接收端收到这样的数据后,就会将原来的SOH和数据中的“EOT”错误地解释为一个帧,但对后面剩下的字符根本就无法解释(见下图)。

  像这样的传输显然就不是“透明传输”,因为当遇到数据中的字符“EOT”就传不过去了,它被接收端解释为控制字符。实际上此处的字符“EOT”并非控制字符而是一般数据。

  为了解决透明传输问题,就必须设法将数据中可能出现的控制字符“SOH”和“EOT”在接收端不解释为控制字符。方法是:在数据中出现字符“SOH”或“EOT”时就将其转换为另一个字符,而这个字符是不会被错误解释的。但所有字符都有可能在数据中出现。于是就想出这样的办法:将数据中出现的字符“SOH”转换为“ESC”“x”这样两个字符,将数据中出现的字符“EOT”转换为“ESC”“y”这样两个字符。而当数据中出现了控制字符“ESC”时,就将其转换为“ESC”“z”这样两个字符。这种转换方法就能够在接收端正确地还原为原来的数据。“ESC”是转义符,它的十六进制编码是1B。

  下图表示在数据中出现了四个控制字符“ESC”“EOT”“ESC”“SOH”。按以上规则转换后的数据如下图所示。

  读者可以很容易地看出,在接收端只要按照以上转换规则进行相反的转换,就能够还原出原来的数据(例如遇到“ESC”“z”就还原为“ESC”)。

http://kharidkhan.com/xieyijianbiefu/176.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有