ICMP协议

详细参考:

  1. https://www.cnblogs.com/linfangnan/p/15729663.html
  2. https://cloud.tencent.com/developer/article/1593056

通过 类型 + 代码 两个字段,可以决定ICMP报文的功能,比如

  • 8,0表示ping request
  • 0,0表示ping reply
  • 13,0表示timestamp request
  • 14,0表示timestamp reply

用法类似:

ctl.sock_raw = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);

linux中也提供ICMP报文的结构体:

struct icmphdr

在哪里见到:

  1. ping命令,通过wireshark抓包
  2. clockdiff源码(和ping都属于iputils)