循环冗余校验 (CRC) 是否由 Internet 控制消息协议 (ICMP) 完成?
生存时间 (TTL) 对此有何帮助?
循环冗余校验 (CRC) 是否由 Internet 控制消息协议 (ICMP) 完成?
生存时间 (TTL) 对此有何帮助?
不。
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。如果余数不为零,则接收器知道发生了错误。