题37
题目
下列有关因特网检验和的叙述中,正确的是( )。
I.IPv4 数据报、UDP 用户数据报、TCP 报文段都采用因特网检验和来检测各自的首部在传输过程中是否产生了误码
II.与CRC 相比,因特网检验和的差错检测能力是较弱的
III.相较于IPv4,IPv6 不再使用因特网检验和
IV.路由器收到IPv4 数据报P 后,若通过因特网检验和检测到P 的首部产生了误码,则丢弃P ,并向发送 P 的源主机发送ICMP 差错报告报文(差错类型为参数问题)
A.仅II
B.仅II、IV
C.仅I、III
D.仅I、II、IV
分析
解
【解析】本题答案:A
I 的叙述错误。对于 IPv4 数据报,因特网检验和仅检查首部,也称为首部检验和;对于 UDP 用户数据报和 TCP 报文段,因特网检验和(简称为检验和)的检查范围包含首部和数据载荷。
II 的叙述正确。由于 IPv4 数据报每经过一个路由器,路由器都要为该数据报计算因特网检验和(首部检验和),为了减少计算首部检验和的工作量,IPv4 首部的检验和不采用复杂但检错能力强(漏检率极低)的循环冗余校验 CRC,而采用简单的、但检错能力较 CRC 弱的反码算术运算求和(最高位的进位要加到结果的最低位,我们在计算机组成原理课程中介绍反码时曾介绍过)。
III 的叙述错误。尽管在 IPv6 中为了提高路由器处理 IPv6 分组的速度而取消了首部检验和字段,但是,IPv6 中的 UDP 和 TCP 仍然使用因特网检验和。
需要说明的是,通常 IPv4 和 IPv6 是用来描述 TCP/IP 协议栈,或者协议大家族,而不仅仅单指一个 IP 协议。例如“从 IPv4 向 IPv6 过渡”这个说法,可不单单指一个 IP 协议,而是包含了 TCP/IP 整个协议栈以及相关的网络基础设施。除非从上下文环境可以明确得出它们就是单指 IP 协议,或者有特定说明它们单指 IP 协议。
IV 的叙述错误。路由器收到 IPv4 数据报后,若通过因特网检验和检测到数据报的首部产生了误码,则静默丢弃数据报,也就是仅丢弃数据报而不会给该数据报的源主机发送 ICMP 差错报告报文。参数问题是指数据报的首部中缺少某个(些)必需的字段,或者某个(些)字段的值不正确,这些问题并不一定是由于误码产生的,有可能是协议栈 bug 或恶意程序造成的,当路由器检测到数据报出现上述问题,则丢弃数据报,并且会给该数据报的源主机发送 ICMP 差错报告报文,具体类型为参数问题。
综上所述,本题的答案为选项 A。