目录
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)
欢迎一起学习呀~