7.Ping程序

介绍

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

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

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

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

ICMP回显请求与应答

报文格式:

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中指定了主机,但这些主机的时间戳可能并不准确

转载于:https://my.oschina.net/u/1378920/blog/1842470

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值