zoukankan      html  css  js  c++  java
  • 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。。。

  • 相关阅读:
    Lua多条件排序
    python_request 使用jsonpath取值结果,进行接口关联
    python_xlutils : python利用xlutils修改表格内容
    python_reques接口测试框架,Excel作为案例数据源
    正则表达式re模块的基础及简单应用
    linux下Rtree的安装
    du和df不一致的解决方法
    windows 版Tomcat 7.0的配置
    linux下搭建svn服务器
    【leetcode】1. Two Sums
  • 原文地址:https://www.cnblogs.com/aoximin/p/13381649.html
Copyright © 2011-2022 走看看