《TCP/IP详解卷一》学习笔记(7)Ping程序

引言

  • “ping”这个名字源于声纳定位操作。
  • Ping程序的目的是为了测试另一台主机是否可达。
  • 该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。
  • Ping程序能测出到某台主机的往返时间,以表明该主机离我们由多远。

Ping程序

我们称发送回显请求的ping程序为客户,被ping的主机为服务器。大多数的TCP/IP实现都在内核中直接支持Ping服务器。

ICMP回显请求和回显应答报文:

âICMPåæ¾è¯·æ±æ¥æâçå¾çæç´¢ç»æ

Unix系统实现ping程序时,是把ICMP报文中标识符字段设置称发送进程的ID号。这样在同一台主机上同时运行了多个ping程序实例,ping程序也可以识别出返回的信息。

序列号从0开始,每发送一次新的回显请求就加1。ping程序打印出返回的每个分组的序列号,允许我们查看是否有分组丢失、失序或重复。

在局域网上运行ping程序的结果:

当返回回显应答时,要打印出序列号和TTL,并计算往返时间。

在广域网上的运行ping程序的结果:

IP记录路由选项

ping程序为我们提供了查看IP记录路由(RR)的机会。

ping程序在发送出去的IP数据报中设置RR选项,每个处理该数据报的路由器都把它的IP地址放入选项字段中。当数据报到达目的端时,IP地址清单复制到ICMP回显应答中,返回途中经过的路由器地址也被加入清单中。当ping程序收到应答时,就打印出这份IP地址清单。

源端主机生成RR选项,中间路由器对RR选项的处理,以及把ICMP回显请求中的RR清单复制到ICMP回显应答中,这些都是选项功能。

âipè®°å½è·¯ç±é项âçå¾çæç´¢ç»æ

IP首部只有有限的空间来存放IP地址,IP首部中的首部长度字段只有4bit,整个IP首部醉成只能由15个32bit的字,即60字节。

由于IP首部固定长度为20个字节,RR选项用去3个字节,只剩下37(60-20-3)个字节来存放IP地址,也就是说只能存放9个IP地址。

code是一个字节,只能IP选项的类型,对于RR选项来说,它的值是7。

len是RR选项的总字节长度,这种情况下为39。

ptr是指针字段,它是基于1的指针,指向存放下一个IP地址的位置。它的最小值为4。

IP时间戳选项

âipè®°å½è·¯ç±é项âçå¾çæç´¢ç»æ

时间戳选项的代码为0x44,len和ptr字段与路由选项字段相同。

OF和FL分别占4bit,OF表示溢出字段,FL表示标志字段。时间戳选项根据标志字段进行。

小结

ping程序是对两个TCP/IP系统连通性进行测试的基本工具。它只利用ICMP回显请求和回显应答报文,而不用经过传输层(TCP/UDP)。Ping服务一般在内核中实现ICMP的功能。

发布了23 篇原创文章 · 获赞 0 · 访问量 983

猜你喜欢

转载自blog.csdn.net/u014635079/article/details/88863382