TCP/IP详解卷1:第七章(ping程序)

1. ping基础知识

ping程序的目的是为了测试另一台主机是否可达。该程序发送一份ICMP回显请求报文给主机,并等待返回ICMP回显应答。而ICMP回显请求和回显应答报文如下:

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

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


2. ping的实际应用

我们直接ping一个外网:

leichaojian@ThinkPad-T430i:~$ ping www.google.com.hk
PING www.google.com.hk (173.194.72.199) 56(84) bytes of data.
64 bytes from tf-in-f199.1e100.net (173.194.72.199): icmp_seq=2
ttl=45 time=54.7 ms
64 bytes from tf-in-f199.1e100.net (173.194.72.199): icmp_seq=3
ttl=45 time=54.6 ms
64 bytes from tf-in-f199.1e100.net (173.194.72.199): icmp_seq=5
ttl=45 time=53.9 ms
64 bytes from tf-in-f199.1e100.net (173.194.72.199): icmp_seq=6
ttl=45 time=53.4 ms
64 bytes from tf-in-f199.1e100.net (173.194.72.199): icmp_seq=8
ttl=45 time=54.8 ms
^C
--- www.google.com.hk ping statistics ---
8 packets transmitted, 5 received, 37% packet loss, time 7011ms
rtt min/avg/max/mdev = 53.408/54.306/54.814/0.591 ms


使用tcpdump,然后把request和reply提取出来如下:

22:39:42.828136 IP 192.168.0.5 > tf-in-f199.1e100.net: ICMP echo
request, id 4661, seq 1, length 64
22:39:43.827243 IP 192.168.0.5 > tf-in-f199.1e100.net: ICMP echo
request, id 4661, seq 2, length 64
22:39:43.881927 IP tf-in-f199.1e100.net > 192.168.0.5: ICMP echo
reply, id 4661, seq 2, length 64
22:39:44.828459 IP 192.168.0.5 > tf-in-f199.1e100.net: ICMP echo
request, id 4661, seq 3, length 64
22:39:44.883092 IP tf-in-f199.1e100.net > 192.168.0.5: ICMP echo
reply, id 4661, seq 3, length 64
22:39:45.830343 IP 192.168.0.5 > tf-in-f199.1e100.net: ICMP echo
request, id 4661, seq 4, length 64
22:39:46.837388 IP 192.168.0.5 > tf-in-f199.1e100.net: ICMP echo
request, id 4661, seq 5, length 64
22:39:46.891258 IP tf-in-f199.1e100.net > 192.168.0.5: ICMP echo
reply, id 4661, seq 5, length 64
22:39:47.838521 IP 192.168.0.5 > tf-in-f199.1e100.net: ICMP echo
request, id 4661, seq 6, length 64
22:39:47.891887 IP tf-in-f199.1e100.net > 192.168.0.5: ICMP echo
reply, id 4661, seq 6, length 64
22:39:48.840148 IP 192.168.0.5 > tf-in-f199.1e100.net: ICMP echo
request, id 4661, seq 7, length 64
22:39:49.839248 IP 192.168.0.5 > tf-in-f199.1e100.net: ICMP echo
request, id 4661, seq 8, length 64
22:39:49.894020 IP tf-in-f199.1e100.net > 192.168.0.5: ICMP echo
reply, id 4661, seq 8, length 64

分析得到:

1) 存在丢包现象:只有序列号2,3,5,6,8没有丢包

2) 回显请求通常每秒钟发送一次

3) 标识符为进程id:4661

4) 返回的ICMP数据报长度为64(不知道具体包含什么数据)


3. IP记录路由选项

备注:由于没有环境,所以以下的实例均摘自书本,没进行验证

-R选项:提供记录路由的功能。

一个IP首部最大为60字节,减去20字节的固定IP首部,3字节的RR选项,还剩余37字节。所以最大可存储9个IP地址:

1) 通常的例子

分组所经过的四站如下:

出口的IP地址加入清单中。通过tcpdump来查看结果如下:

输出中optlen=40表示在IP首部中有40个字节的选项空间。RR{39}的意思是记录路由选项已被设置,它的长度字段是39.然后是9个地址,符号#用来标记RR选项中的ptr字段所指向的IP地址。而EOL表示IP选项"end of list"的值。

转载于:https://my.oschina.net/voler/blog/337348

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值