7.Ping程序

介绍

ping是用来测试目的主机是否可达的一个程序测试

原理:向目的主机发送ICMP回显请求报文,并等待返回ICMP回显应答ui

  • ping客户端:发送回显请求的主机
  • ping服务端:被ping的主机

大部分TCP/IP实现都在内核中实现ping服务端code

ICMP回显请求与应答

报文格式:blog

image_1chthn8f0jl2fnfuij16b8v2n9.png-59.6kB

  • 标识符:Unix采用进程id做为标识符。用来匹配ICMP回显请求与应答
  • 序号:从0开始,每次回显请求都会+1。用来确认是否有分组丢失、重复、乱序

局域网内ping:进程

image_1chti1vqv17kn1dss1vom635nsj13.png-107.4kB

广域网内ping:路由

image_1chti2ukv5qsdhv1lfc1i6112hm1g.png-155.6kB

观察到出现高延迟和大量分组丢失状况原理

IP记录路由选项

做为IP首部中的选项字段,最长40字节。用来记录IP报文通过了哪些主机路由器

经过ping -R,程序就会记录并使用IP记录路由选项请求

当通过一个路由器,它记录出口IP地址,当带该选项的回显应答回到源主机(发ping请求的主机),也会记录该主机的入口地址。经过该功能,能够发现实际路由过程当中会频繁使用默认路由程序

IP记录路由选项的报文:

image_1chtj1b0k1h3m1tfq12f6q4037g1t.png-57.6kB

  • code:IP选项类型。值7表明IP记录路由选项
  • len:选项总字节长度。值为39
  • ptr:存放下一个IP地址的位置。初始化值为4,每当加入一个IP,值+4,当值为40时表明已经记录9个IP,空间已满

经过这种方式记录路由过程的问题:

  1. 不是全部主机都支持该选项。如今大部分系统都支持
  2. 记录的IP有限。因为只有40字节来记录,除开记录元信息的,最多只能记录9个IP

IP记录时间戳选项

做为IP首部中的选项字段,最长40字节。

IP记录时间戳选项的报文:

image_1chtjp8veson23q80m1ju8hph2a.png-53.3kB

  • code:IP选项类型:值0x44表明IP记录时间戳选项
  • len:选项总字节长度。值为36或40
  • ptr:存放下一个时间戳的位置
  • OF:4位溢出字段。当路由器没有空间追加时间戳时,就增长溢出字段的值
  • FL:4位标志字段。不一样标志描述了时间戳部分该记录哪些东西

可用FL:

image_1chtk38d823v15qv1p8b6l10rt2n.png-128.4kB

该方案的问题是:

  1. 一般标志3才有意义。标志0功能太弱,标志1会致使只能放4条记录,而且可能都不是本身关心的
  2. 标志3中指定了主机,但这些主机的时间戳可能并不许确
相关文章
相关标签/搜索