ping 介绍

前言

因为要整理网络这一块,所以打算先把概念写下。这节介绍ping的实现原理。

正文

先看一下图:

又没有发现和我们的icmp很像?对头。在icmp中,我写道:icmp有两种报文,一种是差错报文,一种是查询报文。

看看ping不ping的通,使用的就是icmp的查询报文。

前面的类型和代码还有校验和我就不解释了,请查询icmp那一章。

什么是标识符呢?

不同系统的操作是不一样的。

在unix系统中实现ping程序是把icmp报文中的标识字段置成发送进程的id号。因为这样回来的时候就知道到底返回给哪个进程。

然后在unix中,每ping一个,同一进程那么序号增加1,这样就知道了是哪个ping出去的。

在unix系统中,选项数据会包含我们发包的时间,那么回来的时候通过到达的时间-发送的时间得到了时间差。

在windows中:

不管开多少个窗口ping的identifier都是相同的,而且每增加一个ping包序号增加256。

那么他如何知道发送给哪个窗口?

他是这样子的,所以窗口都处在一个发包顺序中。

这个是什么意思呢?就是他们的序号是统一管理的,那么就知道窗口是哪个了。

同样他们计算时间也不一样,windows全部由自己的操作系统维护,比如说发出去哪个包,就会在操作系统中记录下来,然后回来的包的时间相减就得到了ping的时间。

然后ping包不是有一个数据选项吗?这个数据选项里面windows都是固定且没有任何意义的,一般来说都是adcdefg。。。

posted @ 2020-07-29 09:38  敖毛毛  阅读(380)  评论(0编辑  收藏  举报