本文主要是介绍ICMP——网际控制报文协议,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
1.1 网际控制报文协议 ICMP
1.2 ICMP 报文的格式
1.2.1 ICMP 报文的种类
ICMP 差错报告报文
ICMP 询问报文
1.3 ICMP 的应用
1.4 ICMP抓包
1.4.1 ICMP请求包(request)
1.4.2 ICMP应答包(reply)
1.1 网际控制报文协议 ICMP
·ICMP (Internet Control Message Protocol) 允许主机或路由器报告差错情况和提供有关异常情况的报告。
·ICMP 是互联网的标准协议。
·但 ICMP 不是高层协议,而是 IP 层的协议。
1.2 ICMP 报文的格式
1.2.1 ICMP 报文的种类
·2 种:差错报告报文,询问报文。
几种常用的 ICMP 报文类型
ICMP 报文种类 | 类型的值 | ICMP报文的类型 |
差错报告报文 | 3 | 终点不可达 |
11 | 时间超过 | |
12 | 参数问题 | |
5 | 改变路由 (Redirect) | |
询问报文 | 8 或 0 | 回送 (Echo) 请求或回答 |
13 或 14 | 时间戳 (Timestamp) 请求或回答 |
ICMP 差错报告报文
数据字段的内容:
不应发送 ICMP 差错报告报文的几种情况:
·对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。
·对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
·对具有多播地址的数据报都不发送 ICMP 差错报告报文。
·对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。
ICMP 询问报文
(1) 回送请求和回答
·由主机或路由器向一个特定的目的主机发出的询问。
·收到此报文的主机必须给源主机或路由器发送 ICMP 回送回答报文。
·这种询问报文用来测试目的站是否可达,以及了解其有关状态。
(2) 时间戳请求和回答
·请某台主机或路由器回答当前的日期和时间。
·时间戳回答报文中有一个 32 位的字段,其中写入的整数代表从1900 年 1 月 1 日起到当前时刻一共有多少秒。
·时间戳请求与回答可用于时钟同步和时间测量。
1.3 ICMP 的应用
(1)PING (Packet InterNet Groper)
·用来测试两个主机之间的连通性。
·使用了 ICMP 回送请求与回送回答报文。
·是应用层直接使用网络层 ICMP 的例子,没有通过运输层的 TCP 或 UDP。
用 PING 测试邮件服务器 mail.sina.com.cn 的连通性
(2)Traceroute
·这是UNIX操作系统中名字。在 Windows 操作系统中这个命令是 tracert。
·用来跟踪一个分组从源点到终点的路径。
·它利用 IP 数据报中的 TTL 字段、ICMP 时间超过差错报告报文和ICMP 终点不可达差错报告报文实现对从源点到终点的路径的跟踪。
用 tracert 命令获得到新浪网的邮件服务器 mail.sina.com.cn 的路由信息
1.4 ICMP抓包
1.4.1 ICMP请求包(request)
1.4.2 ICMP应答包(reply)
欢迎一起学习呀~
这篇关于ICMP——网际控制报文协议的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!