CRC由ICMP完成?

网络工程 ip icmp
2022-02-09 03:00:13

循环冗余校验 (CRC) 是否由 Internet 控制消息协议 (ICMP) 完成?

生存时间 (TTL) 对此有何帮助?

2个回答

不。

ICMP 用于在主机之间发送 IP 层通知。IPv4 标头具有标头校验和,许多传输层协议标头也是如此。

TTL 是一种在路由循环的情况下防止数据包无限循环的方法。每一跳都会递减 TTL 值,直到到达目的地或 TTL 过期。在后一种情况下,最后一跳丢弃数据包并应该向源返回 ICMP“超时”消息(但并非几乎所有消息都这样做),除了 ICMP 消息本身。

除了Zac67 对 ICMP 和 TTL 的良好说明之外,循环冗余校验 (CRC) 是一种错误检测技术,通常用于适配器的链路层。

在谈论 CRC 之前,您应该知道在传输层协议(标头和日期)和网络层协议 IPv4(仅标头)中使用的校验和方法来检测数据包中的错误。在此方法中,将被视为 16 位整数的数据字节相加。然后这个和的 1s 补码形成校验和。

现在,对于 CRC,它在链路层协议的适配器中的专用硬件中实现,可以快速执行更复杂的 CRC 操作。它可以检测“突发”错误(聚集在一起的位错误)。基本思想是使用一个生成器,表示为 G。考虑一个 d 位的发送数据,D。发送方将选择 r 个附加位 R,并将它们附加到 D 中,这样得到的 d+r 位模式为使用模 2 算术完全可被 G 整除。接收器将接收到的 d+r 位模式除以 G。如果余数不为零,则接收器知道发生了错误。