首页 > 代码库 > 为什么我们已经讨论的所有 I n t e r n e t协议(I P, ICMP, IGMP, UDP, TCP)收到有检验和错 的分组都仅作丢弃处理?
为什么我们已经讨论的所有 I n t e r n e t协议(I P, ICMP, IGMP, UDP, TCP)收到有检验和错 的分组都仅作丢弃处理?
当分组的checksum与接收方的计算结果不一致的时候,有三种处理方案:一是立即通知发送方重传;二是直接丢弃分组,等待发送方定时器超时后重传;三是尝试纠错,比如数据链路层中的CRC。但是,因为不一致的一般是有两种情况导致的:1)checksum部分出错,2)分组中其他字段出错。所以,接收方是无法是哪里出错,尤其是如果分组中出错的字段就是发送方的地址(比如IP分组中源地址字段错了),那么根本无法将重传请求回馈给发送方。所以处理方法就是直接丢弃分组等待超时重传。
还有,为什么CRC只用在数据链路层呢?因为CRC需要的额外比特位还是比较多的,加上因为数据链路层已经有了检测能力高的CRC,传输的准确率已经得到保证,所以上层协议就没有必要再使用CRC了。
还有,为什么CRC只用在数据链路层呢?因为CRC需要的额外比特位还是比较多的,加上因为数据链路层已经有了检测能力高的CRC,传输的准确率已经得到保证,所以上层协议就没有必要再使用CRC了。
链接:https://www.zhihu.com/question/26997887/answer/34880234
来源:知乎
为什么我们已经讨论的所有 I n t e r n e t协议(I P, ICMP, IGMP, UDP, TCP)收到有检验和错 的分组都仅作丢弃处理?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。