前言
前面学习
ICMP
协议知识点,接着学习一个应用非常广泛的Ping
命令,其以ICMP
协议为基础。
Ping
ping
目的是测试另一台主机是否可达,其发送一份ICMP
回醒请求(类型为0,代码为0)报文给主机,然后等待返回ICMP
回显应答。
Ping程序
ICMP
回醒请求和回显应答报文如下图所示
被ping
主机必须响应标识符和序列号字段,序列号从0
开始,每发送一次新的回显请求就加1
。
当在命令行中键入ping www.qq.com
时,结果如下。
当返回ICMP
回显应答时,需要显示序列号
、TTL
(经过了202 = 255-53个路由)以及往返时间
。
IP时间戳选项
IP
时间戳选项格式如下
code
为0x44
。len
为0x27
。ptr
指针字段,指向存放下一个IP
地址的位置,最小值为4
,最大值为40
表示满。OF
表示溢出字段,4 bit
。FL
表示标志字段,4 bit
。时间戳
根据标志字段确定,可取0、1、3
。
总结
Ping
直接依赖于ICMP
报文,其利用ICMP
回显请求报文和回显应答报文,而不用经过传输层(TCP/UDP
),一般在内核中实现。