Ping

前言

前面学习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时间戳选项格式如下

  • code0x44
  • len0x27
  • ptr指针字段,指向存放下一个IP地址的位置,最小值为4,最大值为40表示满。
  • OF表示溢出字段,4 bit
  • FL表示标志字段,4 bit
  • 时间戳根据标志字段确定,可取0、1、3

总结

Ping直接依赖于ICMP报文,其利用ICMP回显请求报文和回显应答报文,而不用经过传输层(TCP/UDP),一般在内核中实现。