• 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。。。

  • 相关阅读:
    ES的基本用法
    Elasticsearch安装部署
    jquery-layer弹框在火狐浏览器中弹框不显示的问题
    MySQL中横表和竖表相互转换
    echarts--迁徙图特性简介
    Lucene入门案例一
    Lucene入门简介
    SpringMVC中的拦截器
    SpringMVC中Json数据格式转换
    SpringMVC中的文件上传
  • 原文地址:https://www.cnblogs.com/aoximin/p/13381649.html
Copyright © 2020-2023  润新知