前言

因为要整理网络这一块,所以打算先把概念写下。这节介绍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。。。

ping 介绍的更多相关文章

  1. A主机ping B主机发生了什么?

    计算机网络面试题:A主机ping B主机发生了什么? 众所周知,ping命令使用的是ICMP协议包,那么A主机ping B主机到底发生了什么呢? 1 ping介绍 ping(Packet Intern ...

  2. 学习linux命令,看这篇2w多字的linux命令详解

    用心分享,共同成长 没有什么比每天进步一点点更重要了 本文已收录到我的github:https://github.com/midou-tech/articles/tree/master/docs/li ...

  3. 介绍ping中的TTL是什么意思

    ping是icmp报文的一种应用.用来测试网络中各设备的连通性.在这几天的实验课上,我又用到了这个非常常用的命令,但是这次我发现了一些以前没有太注意的地方,那就是我在Ping不同的地址时所返回的TTL ...

  4. Ping命令简单报错介绍

    了解ABC类IP地址:网络.主机.子网.广播. ---------------------------- 学会ping: ping www.baidu.com 网络检测:ping某一主机可以正常启动! ...

  5. ping命令介绍

    1.ping是TCP/IP协议的一部分,所以只要安装了TCP/IP协议就(无论windows或linux)都可以使用ping命令. 2.ping命令的原理:本机创建一个数据包发送给(ping对象)目标 ...

  6. ICMP、ARP协议介绍和ping命令

    交换机工作原理和常用的简单命令    一.ICMP协议      1)ICMP协议的封装    二.ARP协议      1)什么是ARP协议      2)ARP相关命令    三.Ping命令的使 ...

  7. Linux基础介绍【第二篇】

    远程连接Linux的原理 SHH远程连接介绍 当前,在几乎所有的互联网企业环境中,最常用的Linux提供远程连接服务的工具就是SSH软件,SSH分为SSH客户端和SSH服务端两部分.其中,SSH服务端 ...

  8. Linux基础介绍【第一篇】

    Linux简介 什么是操作系统? 操作系统,英文名称Operating System,简称OS,是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心 ...

  9. Linux的简单介绍和常用命令的介绍

    Linux的简单介绍和常用命令的介绍 本说明以Ubuntu系统为例 Ubuntu系统的安装自行百度,或者参考http://www.cnblogs.com/CoderJYF/p/6091068.html ...

  10. [翻译]Telnet简单介绍及在windows 7中开启Telnet客户端

    文章翻译自 http://social.technet.microsoft.com/wiki/contents/articles/910.windows-7-enabling-telnet-clien ...

随机推荐

  1. Java 属性赋值的先后顺序

    1 package com.bytezero.circle; 2 /** 3 * 4 * @Description 5 * @author Bytezero·zhenglei! Email:42049 ...

  2. C++ //提高编程 模板(泛型编程 STL) //模板不可以直接使用 它只是一个框架 //模板的通用并不是万能的 //语法 //template<typename T> //函数模板两种方式 //1.自动类型推导 必须推导出一致的数据类型T,才可以使用 //2.显示指定类型 模板必须确定出T的数据类型,才可以使用

    1 //C++提高编程 模板(泛型编程 STL) 2 //模板不可以直接使用 它只是一个框架 3 //模板的通用并不是万能的 4 //语法 5 //template<typename T> ...

  3. postgreSql最佳配置详解(connection 申请、回收策略)

    一.引子 合理配置一个应用的数据库参数,使其运行良好,这很重要.本文以某务中台的生产环境为例,从Apollo上拔下来一套配置,分析是否合理. 二.MybatisPlus配置 由于我们使用Apollo配 ...

  4. 基于泰凌微TLSR8258芯片的智能安全头盔解决方案开发之自制IOT微型OS操作系统

    一 前记 泰凌微的芯片在国内应用非常广泛,825x作为一个出货的主力芯片,该芯片有着性价比高,功耗低,功能强大等特色. 非常适合做一些比较小的穿戴式设备,比如,手环,智能安全帽等.笔者对这颗芯片用了长 ...

  5. PyQt5 Ubuntu 16.04/14.04 环境配置

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文作为本人csdn blog的主站的备份.(Bl ...

  6. 调试3D渲染和3D可视化的五个好处

    建筑和建筑环境是我们日常生活中不可避免的一部分,直接影响我们和我们的福祉.它可以是我们的家.办公室.附近的教堂或城市的商业综合体;所有这一切的设计和规划都是建筑.然而,具有讽刺意味的是,建筑的交流往往 ...

  7. apache的安装和修改端口号

    实验介绍: apache(阿帕奇)是最流行的web服务器端软件 一:下载apache服务器 1进入官网https://httpd.apache.org/download.cgi 选择最新版本 2选择w ...

  8. 浅析三维模型OBJ格式轻量化压缩文件大小的技术方法

    浅析三维模型OBJ格式轻量化压缩文件大小的技术方法 在减小三维模型OBJ格式轻量化文件大小方面,有许多技术和方法可以使用.下面我将介绍一些常用的方法来减小OBJ文件的大小. 1.优化顶点数量:减少OB ...

  9. 记录--Vue中使用websocket的正确姿势

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 1:首先谈谈websocket是什么? WebSocket是一种在单个TCP连接上进行全双工通信的协议.WebSocket通信协议于201 ...

  10. js判断对象数组等是否为空

    //是否为空 /** * null undefined NaN false " " {} [] 为空 * 为空 true 不为空 false * @param {*} value ...