博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TCP/IP协议 卷一 PING
阅读量:4126 次
发布时间:2019-05-25

本文共 985 字,大约阅读时间需要 3 分钟。

Ping

就是我们平时使用的额那个ping命令

是为了测试以另一台主机是否可达
发送ICMP回显请求(类型8代码0)报文给另一台主机,等待返回ICMP回显应答(类型0代码0)报文
一般可以用该程序测试是否能联通指定目标主机。但是如果对方的防火墙或者路由器能够拦截此ICMP的话则不能作为是否联通的判断依据

ICMP回显请求应答报文格式

在这里插入图片描述

unix系统将标识符设置成发送进程的ID号。这样各进程的ping程序都能识别到自己的应答
序列号从0开始没发送一次请求+1

IP记录路由选项

ping程序提供了查看IP记录路由(RR)选项的机会

每个处理过该数据的路由器都会将它的IP地址放入地址清单中。当达到目的端的时候IP地址清单被复制到回显应答中。 这样ping程序收到回显应答时,他就打印出这份IP地址清单
但是他是放在IP首部

那么,有个问题。IP首部的长度字段只有4bit

所以最长的长度是1111也就是15
那也就是说 最长只能存储15个IP(4字节),也就是60字节
但是!但是!
IP首部要占用20字节,RR选项字段要占用3字节。扣除一下就剩下37字节了37/4就剩下9个还多1个字节,这个字节目前未知是干嘛的,先放着,等到第二卷讲实现的时候应该就会说到。
在这里插入图片描述

数据报字段讲解

code ip选项类型 RR选项的值为7

len RR选项的总长度。值为39(字节)
ptr 指针字段 基于1的指针 指向存放下一个ip地址位置 最小值为4.随着IP的增加以4字节为单位移动。当9个IP 全部加入进去ptr的值为40.表示清单已满

路由器存放的是出口IP地址规定

IP时间戳选项

与RR选项类似

在这里插入图片描述
code: 时间戳的0x44
len与ptr与RR选项的数据报的一致
OF: 4bit 溢出字段 作用:如果路由器发现IP数据报的长度无法容纳时间错的数据,则会增加溢出字段的值,以此来增加数据报的长度
FL: 4bit 标志位
在这里插入图片描述
时间戳取值为UTC午夜开始计算的毫秒数。不过这不是强制性的。路由器可以使用任意格式。但是要打开时间戳中的高位以标明非标准值

这里有一个问题 只记录时间戳不记录IP是没意义的

如果标志位选择1 也就是IP和时间戳都记录 那只能记录4对
如果选择3 指定IP写入时间戳。
还有一个问题 谁能保证路由器上面的时间是正确的呢?

所以这个IP时间戳报文有毛用啊?

转载地址:http://gzepi.baihongyu.com/

你可能感兴趣的文章
C语言8
查看>>
Qt实现简单延时
查看>>
qml有关矩形说明
查看>>
在qt中使用QSplitter设置初始比例setStretchFactor失效的解决方法
查看>>
repeater的使用
查看>>
qt msvc编译中文乱码解决
查看>>
qt中TextField输入框无法输入中文解决办法
查看>>
qt实现点击出现窗口,点击其他任何地方窗口消失
查看>>
QML DropArea拖拉文件事件
查看>>
CORBA links
查看>>
读后感:>
查看>>
ideas about sharing software
查看>>
different aspects for software
查看>>
To do list
查看>>
Study of Source code
查看>>
如何使用BBC英语学习频道
查看>>
spring事务探索
查看>>
浅谈Spring声明式事务管理ThreadLocal和JDKProxy
查看>>
初识xsd
查看>>
java 设计模式-职责型模式
查看>>