Gil*_*ili 6 error-handling ethernet ppp
查看数据链路级标准,例如PPP 通用帧格式或以太网,如果校验和无效,则不清楚会发生什么.协议如何知道下一帧开始的位置?
它只是扫描下一次出现的"旗帜"(在PPP的情况下)?如果是这样,如果数据包有效负载恰好包含"标志"本身会发生什么?我的观点是,无论是使用数据包成帧还是使用"长度"字段,都不清楚如何从无效数据包中恢复,其中"长度"字段可能已损坏,或者"成帧"字节恰好可能是其中的一部分.包有效载荷.
更新:我通过查找"基于GFP CRC的框架"找到了我正在寻找的东西(这不是我要求的严格意义).根据通信网络
GFP接收器通过三态过程同步到GFP帧边界.接收器最初处于寻线状态,它一次检查四个字节,以查看在前两个字节上计算的CRC是否等于接下来两个字节的内容.如果没有找到匹配,则GFP向前移动一个字节,因为GFP假定物理层给出八位位组同步传输.当接收器找到匹配时,它移动到预同步状态.当处于该中间状态时,接收器使用临时PLI(有效载荷长度指示符)字段来确定下一帧边界的位置.如果已经实现了成功帧检测的目标数量N,则接收器进入同步状态.同步状态是接收器检查每个PLI的正常状态,使用cHEC(核心报头错误检查)对其进行验证,提取有效负载,然后进入下一帧.
简而言之,每个数据包以"长度"和"CRC(长度)"开头.不需要转义任何字符,并且数据包长度是提前知道的.
数据包框架似乎有两种主要方法:
前者更安全,后者更有效.如果有效载荷恰好包含有效数据包并且线路损坏导致前进字节包含"帧起始"字节序列但听起来非常不可能,则两者都容易出错.很难找到GFP稳健性的硬数字,但许多现代协议似乎都在使用它,因此人们可以假设他们知道自己在做什么.
PPP和以太网都具有成帧机制 - 即,用于将比特流分解为帧的方式,使得如果接收器丢失了什么是什么,它可以在下一帧的开始处拾取.它们位于协议栈的底部; 协议的所有其他细节都建立在框架的基础上.特别地,前导码,LCP和FCS处于更高级别,并且不用于控制成帧.
通过串行链路(如拨号)的PPP使用类似HDLC的帧进行帧化.字节值0x7e称为标志序列,表示帧的开始.帧继续,直到下一个标志字节.帧的内容中出现的任何标志字节都被转义.转义是通过写入0x7d(称为控制转义字节),然后是要转义为0x20的字节来完成的.标志序列被转义为0x5e; 控制转义本身也必须转义为0x5d.如果其他值存在会扰乱调制解调器,也可以转义其他值.结果,如果接收器失去同步,它只能读取并丢弃字节,直到它看到0x7e,此时它再次知道它在帧的开始处.然后构造帧的内容,包含一些非常重要的奇数小字段,但是从早期的IBM协议中保留,以及PPP数据包(称为协议数据单元,PDU),以及帧检查序列(FCS).
以太网使用逻辑上类似的方法,具有可被识别为帧起始和结束标记而不是数据的符号,但是它使用能够表达独特的特殊控制符号的编码方案,而不是具有保留字节和转义机制.从数据字节 - 有点像使用标点符号来分解一系列字母.使用的系统的细节随速度而变化.
标准(10 Mb/s)以太网使用称为曼彻斯特编码的东西进行编码,其中每个要传输的位在线路上表示为两个连续的级别,这样每个位的级别之间总是存在转换,这有助于接收器保持同步.通过违反编码规则来指示帧边界,导致有一点没有转换(我在几年前读过这本书,但在网上找不到引文 - 我可能错了).实际上,该系统将二进制代码扩展为三个符号 - 0,1和违规.
快速(100 Mb/s)以太网使用不同的编码方案,基于5b/4b代码,其中四个数据位组(nybbles)在线上表示为五位组,并直接传输,没有曼彻斯特方案.扩展到5位允许选择使用的16种必要模式以满足频繁电平转换的要求,再次帮助接收器保持同步.然而,仍然有空间选择一些额外的符号,这些符号可以传输但不对应于数据值,实际上,将nybbles的集合扩展到24个符号 - nybbles 0到F,以及称为Q的符号,I ,J,K,T,R,S和H.以太网使用JK对标记帧开始,TR使用TR标记帧结束.
千兆以太网类似于快速以太网,但采用不同的编码方案 - 光纤版本使用8b/10b代码而不是5b/4b代码,双绞线版本使用一些非常复杂的五进制代码排列,我不喜欢真的明白了.两种方法都产生相同的结果,即传输数据字节或一小组附加特殊符号之一的能力,并且这些特殊符号用于成帧.
在这个基本的帧结构之上,有一个固定的前同步码,后面是一个帧定界符,以及一些不同的无意义控制字段(hello,LLC/SNAP!).这些字段的有效性可用于验证帧,但它们不能用于自己定义帧.
你已经非常接近正确的答案了.基本上,如果它以序言开头并以匹配为校验和的内容结束,则它是一个帧并传递给更高层.
PPP和以太网都寻找下一帧起始信号.在以太网的情况下,它是前导码,64个交替位的序列.如果以太网解码器看到它,它只是假设后面是一帧.通过捕获位然后检查校验和是否匹配,它确定它是否具有有效帧.
对于包含FLAG的有效载荷,在PPP中,它会以额外的字节进行转义,以防止出现这种误解.
| 归档时间: |
|
| 查看次数: |
3762 次 |
| 最近记录: |