跳至主要內容

ICMP

LincZero大约 2 分钟

ICMP

首先,Icmp基于Ip协议,网络层。

有 ICMPv4 和 ICPMv6

作用:参考:https://www.zhihu.com/question/31002474

IP 是尽力传输的网络协议open in new window,提供的数据传输open in new window服务是不可靠的、无连接的,不能保证数据包能成功到达目的地open in new window。那么问题来了:如何确定数据包成功到达目的地?

这需要一个网络层协议open in new window,提供错误检测功能和报告机制功能,于是出现了 ICMP互联网控制消息协议open in new window)。

ICMP 的主要功能是,确认 IP 包是否成功送达目的地址通知发送过程中 IP 包被丢弃的原因。有了这些功能,就可以检查网络是否正常、网络配置open in new window是否正确、设备是否异常等信息,方便进行网络问题诊断

ICMP 消息是通过 IP 进行传输,但它的目的并不是让 IP 成为一种可靠的协议,而是对传输中发生的问题进行反馈。ICMP 消息的传输同样得不到可靠性保证,也有可能在传输过程中丢失。因此 ICMP 不是传输层open in new window的补充,应该把它当做网络层协议

Request

  • L2, 14Byte
    • Destination, 6Byte
    • Source, 6Byte
  • L3, 20Byte
  • L4
    • Icmp头, 16Byte
      • Type, 1Byte
      • Code, 1Byte
      • Checksum, 2Byte
      • Indentifier, 2Byte
      • Sequence Number, 2Byte
      • Timestamp, 8Byte, 时间戳
    • Data

Reply