ICMP协议详解

ICMP报文格式

Alt text

  • ICMP报头从IP报头的第160位开始(IP首部20字节)(除非使用了IP报头的可选部分)。
ICMP报头
type 8位
  • 询问报文:
    • 8 和 0 ping 请求 响应
    • 13和 14 ping时间戳,请求和回答
  • 差错报告:终点不可达,超时,路由改变等
code 8位

进一步划分错误类型

校验和 16位

ICMP头部和数据

ID 16位
  • 这个字段包含了ID值,在Echo Reply类型的消息中要返回这个字段。
Sequence 16位
  • 这个字段包含一个序号,同样要在Echo Reply类型的消息中要返回这个字段。

ID和Sequence 位不定。

ICMP数据

假设IP数据报A发送错误,需要进行差错报告。
ICMP的数据包括以下内容:
- A的IP数据报首部(20字节+可选)
- A携带的数据的前8字节,即TCP或UDP首部的前8字节;TCP的话,前8字节包括:源端口、目的端口、seq(序列号)。UDP的前8字节包含了:源端口、目的端口、UDP长度和校验和。

封装进IP数据报,准备发送给报告目标

应用

ping

Ping利用的就是ICMP ECHO和ICMP ECHO REPLY包来探测主机是否存在,这两个分别使用:ICMP ECHO(Type 8) 和ECHO Reply (Type 0)。发送的是udp。

traceroute

封装的是无法交付的udp,TTL设置为1 2 3 4 ...,然后接受超时的ICMP。最后达到目标主机,收到终点不可达的差错报文结束。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值