TCP/IP 第7章 Ping程序

本文详细解析了TCP/IP协议中Ping程序的工作原理及其 icmp 消息格式,介绍了标识符和序列号的作用,并深入探讨了Ping程序提供的路由选项(RR)及其实现细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TCP/IP 第7章 Ping程序



ping程序是icmp消息中的一种,其格式如上图所示。
标识符:置成发送进程的ID号。这样即使在同一台主机上同时运行了多个ping程序实例,ping程序也可以识别出返回的信息。
序列号:从0开始,每发送一次新的回显请求就加1。ping程序打印出返回的每个分组的序列号,允许我们查看是否有分组丢失、失序或重复。

当然ping程序同时提供了-R和-T,分别提供路由选项和时间戳选项,不过实用性不大,由于ip头首部长度为4个bit,因此整个IP首部最长只能包括15个32 bit长的字,即60个字节,去掉头部20字节,RR选项用去3个字节(下面我们再讨论),这样只剩下37个字节(60-20-3)来存放IP地址清单,也就是说只能存放9个I P地址。


code:一个字节,指明I P选项的类型。对于RR选项来说,它的值为7。
len:是RR选项总字节长度,在这种情况下为3 9(尽管可以为RR选项设置比最大长度小的长度,但是p i n g程序
总是提供3 9字节的选项字段,最多可以记录9个I P地址。由于I P首部中留给选项的空间有限,它一般情况都设置成最大长度)。
p t r称作指针字段。它是一个基于1的指针,指向存放下一个I P地址的位置。它的最小值为4,指向存放第一个IP地址的位置。随着每个IP地址存入清单,ptr的值分别为8,12,16,最大到3 6。当记录下9个I P地址后,p t r的值为4 0,表示清单已满。
当路由器设置ip地址时,是入口地址还是出口地址?为此,RFC 791 [Postel 1981a]指定路由器记录出口IP地址。我们
在后面将看到,当原始主机(运行ping程序的主机)收到带有RR选项的ICMP回显应答时,它也要把它的入口I P地址放入清单中。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值