Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Error handling PPP或以太网如何从错误中恢复?_Error Handling_Ethernet_Ppp - Fatal编程技术网

Error handling PPP或以太网如何从错误中恢复?

Error handling PPP或以太网如何从错误中恢复?,error-handling,ethernet,ppp,Error Handling,Ethernet,Ppp,查看数据链路级别的标准,例如PPP或,不清楚如果校验和无效会发生什么协议如何知道下一帧从何处开始? 它是否只是扫描下一次出现的“标志”(在PPP的情况下)?如果是这样,如果数据包负载恰好包含“标志”本身,会发生什么?我的观点是,无论使用数据包帧还是“长度”字段,都不清楚如何从无效数据包中恢复,因为“长度”字段可能已损坏,或者“帧”字节恰好是数据包负载的一部分 更新:我通过查找“基于GFP CRC的帧”找到了我想要的内容(严格来说,这不是我所问的)。据 GFP接收器通过三态过程与GFP帧边界同步。

查看数据链路级别的标准,例如PPP或,不清楚如果校验和无效会发生什么协议如何知道下一帧从何处开始?

它是否只是扫描下一次出现的“标志”(在PPP的情况下)?如果是这样,如果数据包负载恰好包含“标志”本身,会发生什么?我的观点是,无论使用数据包帧还是“长度”字段,都不清楚如何从无效数据包中恢复,因为“长度”字段可能已损坏,或者“帧”字节恰好是数据包负载的一部分

更新:我通过查找“基于GFP CRC的帧”找到了我想要的内容(严格来说,这不是我所问的)。据

GFP接收器通过三态过程与GFP帧边界同步。接收器最初处于寻道状态,每次检查四个字节,查看前两个字节上计算的CRC是否等于后两个字节的内容。如果未找到匹配项,GFP将向前移动一个字节,因为GFP假定物理层提供八位同步传输。当接收器找到匹配项时,它将移动到预同步状态。在这种中间状态下,接收机使用暂定PLI(有效载荷长度指示器)字段来确定下一帧边界的位置。如果已达到成功帧检测的目标数目N,则接收器进入同步状态。同步状态是接收机检查每个PLI、使用cHEC(核心报头错误检查)验证、提取有效负载并进入下一帧的正常状态

简而言之,每个数据包都以“长度”和“CRC(长度)”开头。不需要转义任何字符,并且提前知道数据包长度

似乎有两种主要的分组帧方法:

  • 编码方案(位/字节填充、曼彻斯特编码、4b5b、8b10b等)
  • 未修改数据+校验和(GFP)
前者更安全,后者更有效。如果负载恰好包含一个有效的数据包,并且行损坏会导致正在进行的字节包含“帧开始”字节序列,则两者都容易出错,但这听起来极不可能。很难找到GFP健壮性的确切数字,但许多现代协议似乎都使用它,因此人们可以假设他们知道自己在做什么。

本节介绍RFC1661的基础知识。 帧检查序列用于检测帧中的传输错误(在前面的封装部分中描述)

维基百科页面上RFC1661的图表描述了网络协议阶段如何在出现错误时通过建立链接重新启动


另外,Suvesh引用的Cisco页面的注释

PPP链路控制协议

PPP LCP提供了一种建立、配置、维护和终止点对点连接的方法。LCP经历了四个不同的阶段

首先,发生链路建立和配置协商。在交换任何网络层数据报(例如IP)之前,LCP必须首先打开连接并协商配置参数。当发送和接收配置确认帧时,此阶段完成

然后是链路质量确定。LCP允许在链路建立和配置协商阶段之后的可选链路质量确定阶段。在此阶段,测试链路以确定链路质量是否足以启动网络层协议。此阶段是可选的。LCP可以延迟网络层协议信息的传输,直到该阶段完成

此时,发生网络层协议配置协商。LCP完成链路质量确定阶段后,网络层协议可由相应的NCP单独配置,并可随时启动和关闭。如果LCP关闭链路,它会通知网络层协议,以便它们可以采取适当的措施

最后,链路终止发生。LCP可以随时终止链路。这通常是在用户请求时完成的,但也可能由于物理事件(如载波丢失或空闲时间计时器过期)而发生

存在三类LCP帧。链路建立帧用于建立和配置链路。链路终止帧用于终止链路,链路维护帧用于管理和调试链路

这些框架用于完成每个LCP阶段的工作


据我所知,PPP只支持错误检测,不支持任何形式的错误纠正或恢复


由Cisco在此提供支持:

您已经非常接近正确答案了。基本上,如果它以一个前导码开始,以一个匹配的校验和结束,它就是一个帧,并传递到更高的层

PPP和以太网都寻找下一帧开始信号。在以太网的情况下,它是前导码,一个64位交替的序列。如果ethernet解码器看到了这一点,它只会假设下面是一个帧。通过捕获位,然后检查校验和是否匹配,它决定是否具有有效帧


至于包含该标志的有效载荷,在PPP中,它会用额外的字节转义,以防止这种误解。

PPP和以太网都有成帧机制——也就是说,将比特流分解为帧,这样,如果接收器失去对是什么的跟踪,它可以在下一帧开始时接收。它们位于协议栈的底部;协议的所有其他细节都基于帧的思想。特别是,前导码、LCP和FCS处于更高级别,不用于控制帧。