首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

简述 ping 程序中的 -R 选项

简述 ping 程序中的 -R 选项

IPv4 header 中的第二个字段是4 bit 的header length
所以最大可以表示1111, 也就是15个32 bit ,即60字节
因为IPv4有20 字节的固定长, 所心说IP option中最长就可以为40字节
IPv4 的option字段有10种, 其中一种就是Record route
就是每个中间路由把自己的IP地址写入包中
其中一例就是ping 程序的-R 选项, $ ping -R 192.168.1.1
看一下record route 是怎样消耗掉这40字节的,
首先RR 选项要3个字节的overhead, 分别是code, length, ptr
RR 选项的code 为 7, length 为 39,
39 是因为40 -3 = 37, 37 可以容纳9个地址, 9个地址为 9*4 = 36 字节
所以是36+3 = 39。
$ ping -R 192.168.1.1
PING 192.168.1.1 (192.168.1.1) 56(124) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.472 ms
RR:     192.168.1.105
        192.168.1.1
        192.168.1.1
        192.168.1.105
基本上就是这样的格式,不同平台可以格式不同
继承事业,薪火相传
返回列表