【问题标题】:Does the ICMP Header Checksum include the data as well?ICMP 标头校验和是否也包含数据?
【发布时间】:2011-02-06 00:15:30
【问题描述】:

作为家庭作业的一部分,我必须在 Linux 中编写一个 C 程序,该程序使用原始套接字生成对 ICMP Echo 请求的 ICMP 回复。 ICMP 数据包中的数据是否也必须包含在校验和中?还是应该只计算标头的校验和?

【问题讨论】:

  • 删除 c 标签并添加 networking 标签,因为问题中没有 C 代码。 =)

标签: networking header checksum raw-sockets icmp


【解决方案1】:

它必须由 HEADER + DATA 计算得出。执行计算时,让校验和为零,然后替换它。

引用RFC 792 的第 14 页(Echo 或 Echo 回复消息):

校验和是一个的 16 位的补码 以 ICMP 类型开头的 ICMP 消息的补码总和。 为了计算校验和,校验和字段应该为零。 如果总长度为奇数,则接收到的数据用 1 填充 八位字节的零用于计算校验和。这个校验和可能是 日后更换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-29
    • 2013-01-25
    • 2013-12-13
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多