使用ICMP原因:为更有效地转发IP数据报和提高交付成功的机会

ICMP报文格式:

ICMP报文种类

  • ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
  • ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。

ICMP 差错报告报文共有 4 种

  • 终点不可达 :当主机或路由器不能交付数据报时就向源点发送终点不可到达报文
  • 时间超过 :当路由器收到生存时间为0的数据报时,除了丢弃该数据报外,还要向源点发送时间超过报文。
  • 参数问题 :当路由器或目的主机收到的数据报首部中有的字段的值不正确时,就丢弃该数据报外,并向源点发送参数问题报文。
  • 改变路由(重定向)(Redirect):路由器把改变路由报文发送给主机,也让主机知道下次应将数据报发送给另外的路由器。

ICMP 差错报告报文的数据字段的内容

不应发送 ICMP 差错报告报文的几种情况

  • 对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
  • 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
  • 对具有多播地址的数据报都不发送 ICMP 差错报告报文。
  • 对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。

ICMP 询问报文有两种

  • 回送请求和回答报文:ICMP回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。
  • 时间戳请求和回答报文:ICMP时间戳请求报文是请某台主机或路由器当前的日期和时间。
  • 下面的几种 ICMP 报文不再使用  
    • 信息请求与回答报文
    • 掩码地址请求和回答报文
    • 路由器询问和通告报文
    • 源点抑制报文

ICMP 的应用举例

**PING (Packet InterNet Groper) **

  • PING 用来测试两个主机之间的连通性。
  • PING 使用了 ICMP 回送请求与回送回答报文。
  • PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。

用PING测试主机的连通性

Traceroute 的应用举例

  • 在 Windows 操作系统中这个命令是 tracert。
  • 用来跟踪一个分组从源点到终点的路径。
  • 它利用 IP 数据报中的 TTL 字段和 ICMP 时间超过差错报告报文实现对从源点到终点的路径的跟踪。

ICMP差错报告报文的数据字段的内容

©著作权归作者所有:来自51CTO博客作者wx5c3c493d65a93的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. HTTP报文头Accept和Content-Type总结
  2. TCP/IP 三次握手 四次握手
  3. eNSP:RIP基本配置
  4. LVS负载均衡之DR模式部署
  5. WireShark 自带工具 editcap 和 text2pcap 配合完成改包操作
  6. Token Bucket在QoS中入门级介绍python示例
  7. OSPF学习笔记整理(上)
  8. 【原创】关于交换机端口链路类型Access、trunk、hybrid的理解(下)
  9. 【原创】关于交换机端口链路类型Access、trunk、hybrid的理解(上)

随机推荐

  1. Android(安卓)开源项目分类汇总
  2. Android WebView example
  3. android AutoCompleteTextView
  4. android常见问题汇总大全
  5. Android2.2 自带主题themes.xml的源代码
  6. Android 开发笔记 - Android Studio 代码
  7. Android之开启内置闹钟与已安装的应用程
  8. Android 文件浏览器源码
  9. Android命令行启动程序正确使用技巧解析
  10. Android:简单联网获取网页代码