【TCP/IP】Ping、IP选项

Ping

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

可以用ping程序来确定问题出在哪里,测出到这台主机的往返时间

一台主机的可达性可能不止取决与IP层是否可达,还取决于使用何种协议以及端口号。Ping程序的运行结果可能显示某台主机不可达,但telnet却可以。

对于某些ICMP查询报文,服务器必须响应标识符和序列号,发的是多少,回显就填充多少。Unix系统在实现ping程序时是把ICMP报文中的标识符字段置成发送进程的ID号,这样即使有多个ping程序在运行,也能识别他们。序列号会增加(随着PING包的增加而增加)。

 

PAT上的ICMP,因为ICMP没有端口号,不能像TCP/UDP那样直接进行端口转发,因此,在cisco中ISO版本12.3以前,路由器将ICMP的序号当成端口来转发,会出现大量端口使用(因为序号会随着包的增加而增加),到12.3以后,cisco就将ICMP的标识符来当成端口号来转发,节约了端口使用。

 

Ping程序如何计算往返时间:

主机在发送的时候会记录当前主机时间在ICMP的数据中,回来的时候主机查看ICMP数据中的时间,用主机当前的时间去减ICMP数据中的时间,得出往返时间。

 

IP记录路由选项:

源端主机生成RR选项,中间路由器对RR选项的处理,记录的是出接口的ip地址(也记录目标主机的入接口),以及把ICMP回显请求中的RR清单复制到ICMP回显应答中,所有这些都是选项功能

选项位最大为40字节,RR选项用去3个字节,还剩37字节来存放IP地址清单,每个IP地址占4个字节,所以最多存放9个IP地址

IP记录路由选项结构:

Code是一个字节,指明IP选项的类型。对于RR选项来说,它的值为7.len是RR选项总字节长度,在这种情况下为39(尽管可以为RR选项设置比最大长度下的长度,但是ping程序总是提供39字节的选项字段,最多可以记录9个ip地址。由于IP首部中留给选项的空间有限,它一般情况都设置成最大长度)

Prt称作指针字段。它是一个基于1的指针,指向存放下一个IP地址的位置。它的最小值为4,指向存放第一个IP地址的位置。随着每个IP地址存入清单,prt的值分别为8,12,16,最大到36.当记录下9个IP地址后,prt的值为40,表示清单已满

IP时间戳选项

时间戳选项的代码为0x44.其他两个字段len和ptr与记录路由选项相同:选项的总长度(一般为36或40)和指向下一个可用空间的指针(5,9,13等)

接下来的两个字段是4bit的值:OF表示溢出字段,FL表示标志字段。时间戳选项的操作

时间戳的取值一般为自UTC午夜开始计的毫秒数


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值