迅维网

查看: 4172|回复: 8
打印 上一主题 下一主题

【网络基础知识】Ping 工作原理

  [复制链接]
跳转到指定楼层
1#
发表于 2016-9-13 15:13:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式 来自: 重庆 来自 重庆

马上注册,获取阅读精华内容及下载权限

您需要 登录 才可以下载或查看,没有帐号?注册

x
【网络基础知识】ping 工作原理

  关于Ping的使用网络上有不少文章介绍,本文就不重复了,这篇文章主要从Ping命令的工作流程和其协议层探讨其工作原理。

一、Ping命令的工作流程

  假定主机A的IP地址是192.168.1.1,主机B的IP地址是192.168.1.2,都在同一子网内,则当你在主机A上运行“Ping 192.168.1.2”后,都发生了些什么呢?
  首先,Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同地址“192.168.1.2”一起交给IP层协议(和ICMP一样,实际上是一组后台运行的进程),IP层协议将以地址“192.168.1.2”作为目的地址,本机IP地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并在一个映射表中查找出IP地址192.168.1.2所对应的物理地址(也叫MAC地址,熟悉网卡配置的朋友不会陌生,这是数据链路层协议构建数据链路层的传输单元——帧所必需的),一并交给数据链路层。后者构建一个数据帧,目的地址是IP层传过来的物理地址,源地址则是本机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。
  主机B收到这个数据帧后,先检查它的目的地址,并和本机的物理地址对比,如符合,则接收;否则丢弃。接收后检查该数据帧,将IP数据包从帧中提取出来,交给本机的IP层协议。同样,IP层检查后,将有用的信息提取后交给ICMP协议,后者处理后,马上构建一个ICMP应答包,发送给主机A,其过程和主机A发送ICMP请求包到主机B一模一样。  
  Ping命令执行后显示出被测试系统主机名和相应IP地址、返回给当前主机的ICMP报文顺序号、ttl生存时间和往返时间rtt(单位是毫秒,即千分之一秒)。

图一 具体实例

  从Ping的工作过程,我们可以知道,主机A收到了主机B的一个应答包,说明两台主机之间的去、回通路均正常。

二、Ping命令的ICMP协议包

  ICMP协议是IP层的一个子协议,是为网关和目标主机而提供的一种差错控制机制,使它们在遇到差错时能把错误报告给报文源发方。ICMP是非端对端的协议,它提供无连接的数据报服务,没有端口的概念,指填写目的IP地址即可。ICMP数据报的数据发送前需要两级封装:首先添加ICMP报头形成ICMP报文,再添加IP报头形成IP数据报。其报文格式如下图:

图二  ICMP报文格式

  IP报头长度IHL(Internet Header Length)――以4字节为一个单位来记录IP报头的长度。
  生存时间TTL(Time To Live)――以秒为单位,指出IP数据报能在网络上停留的最长时间,其值由发送方设定,并在经过路由的每一个节点时减一,当该值为0时,数据报将被丢弃。
  ICMP报头格式 ICMP报文分为两种,一是错误报告报文,二是查询报文。每个ICMP报头均包含类型、编码和校验和这三项内容,长度为8位,8位和16位,其余选项则随ICMP的功能不同而不同。 Ping命令只使用众多ICMP报文中的两种:"请求回送'(ICMP_ECHO)和"请求回应'(ICMP_ECHOREPLY)。
  在发送和接收报文时分别生成两个time时间,两者之差即为往返时间,即ICMP报文发送与接收的时间差。当ping命令接收完所有ICMP报文后,会对所有发送和接收的ICMP报文进行统计,计算出ICMP报文丢失的比率。
  目前,IPv4的报头结构为常用的ICMP报文结构,包括ECHO-REQUEST(响应请求消息)、ECHO-REPLY(响应应答消息)、Destination Unreachable(目标不可到达消息)、Time Exceeded(超时消息)、Parameter problems(参数错误消息)、Source Quenchs(源抑制消息)、redirects(重定向消息)、Timestamps(时间戳消息)、Timestamp Replies(时间戳响应消息)、Address Masks(地址掩码请求消息)、Address Mask Replies(地址掩码响应消息)等。

  总结:Ping命令是检查Internet网络是否畅通的十分重要的工具,是网络管理员最常用的工具,根据其返回的信息我们可以知道网络是否出现了故障,并初步判断故障的类型。




2#
发表于 2016-9-14 14:42:35 | 只看该作者 来自: 河南许昌 来自 河南许昌
学习了,天天玩的命令原理这么复杂

点评

哈哈 ,现在很少用到dos命令了,我只会一些简单的  详情 回复 发表于 2016-9-18 06:52
回复 支持 反对

使用道具 举报

3#
发表于 2016-9-18 06:52:12 | 只看该作者 来自: 中国 来自 中国
computer321 发表于 2016-9-14 14:42
学习了,天天玩的命令原理这么复杂

哈哈 ,现在很少用到dos命令了,我只会一些简单的

回复 支持 反对

使用道具 举报

4#
发表于 2016-9-21 20:39:13 | 只看该作者 来自: 中国 来自 中国
没勇气看完 呵呵

回复 支持 反对

使用道具 举报

5#
发表于 2016-10-8 09:04:15 | 只看该作者 来自: 四川成都 来自 四川成都
感觉好复杂学习了估计整不精通啊

回复 支持 反对

使用道具 举报

6#
发表于 2016-11-14 11:58:05 | 只看该作者 来自: 山东 来自 山东
好复杂         

点评

ping问题还好啦是最基本的网络问题,也是最基础的东西  详情 回复 发表于 2016-11-16 05:54
回复 支持 反对

使用道具 举报

7#
发表于 2016-11-16 05:54:21 | 只看该作者 来自: 山东青岛 来自 山东青岛

ping问题还好啦是最基本的网络问题,也是最基础的东西

回复 支持 反对

使用道具 举报

8#
发表于 2017-3-17 22:13:19 | 只看该作者 来自: 浙江台州 来自 浙江台州
  大师傅   这个 真的  学习了     网络 深不可测  希望 以后多发精贴  

回复 支持 反对

使用道具 举报

9#
发表于 2017-4-8 17:51:46 | 只看该作者 来自: 广东惠州 来自 广东惠州
想学啊..............

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长提醒 上一条 /1 下一条

快速回复 返回顶部 返回列表
附近
店铺
微信扫码查看附近店铺
维修
报价
扫码查看手机版报价
信号元
件查询
点位图


芯片搜索

快速回复