开启对应的抓包,来看看icmp的报文的内容
使用PC1去ping一下PC2。
通过过滤只看ICMP的包,发现总共有10个,5个Request ,5个Replay,先来关键字段的内容。
- Type(类型):Request为8,replay为0,经常有面试问到,ICMP的 ECHO Request与ECHO Replay的Type是多少。
- Code(代码):固定为0
- Identifier(标识符):不同的操作系统标识不太一样,作用就是用于区分是哪个进程发送的,比如我同时开了2个窗口Ping不同的地址,那就需要进行区分,否则混乱了,导致结果不一样。(上面查看的是1与2的包,会发现,标识符是一样的,因为去的时候是这个标识符,回来的也是这个,发送方就知道这个是哪个进程发送出去的了,在把结果回显到对应的程序窗口里面)
- Sequence(序号):序号默认从0或者1开始(不同操作系统不太一样),它的作用是每发送一次新的请求就加1,回应这个请求的序列为相同,这样可以用来确认数据包是否有丢失的情况,比如发送的请求了2个请求,序号为1跟2,但是回应只收到了2,那么对应的1就表示丢失了(这个丢弃会在对应的程序窗口中显示代码原因,原因有多种,这个在后续会慢慢遇到)
- DATA(数据):默认发送32个字节,里面为ICMP实际的内容,一串数据,但是里面包含了一个重要的信息,往返的时间,这个就非常重要,为什么说Ping能够帮助我们测试网络是否稳定,就是因为这个往返时间,这个时间能够表示当前网络环境是否稳定,良好。(比如Ping网关往返时间1分钟,那显然就不正常了,说明这个网络存在问题)