ping命令基于ICMP协议的返回信息分析
Ping是潜水艇人员的专用术语,表示回应的声纳脉冲,在网络中 Ping 是一个十分好用的 TCP/IP 工具。它主要的功能是用来检测网络的连通情况和分析网络速度。可以利用 PING 命令检查网络连通状态,ping命令是基于ICMP。
这里先介绍ICMP。ICMP是网络层协议,一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输。如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。所以我们就需要一种协议来完成这样的功能–ICMP协议
1.ICMP协议的功能主要有:
确认IP包是否成功到达目标地址
通知在发送过程中IP包被丢弃的原因
2.常见的ICMP报文:
相应请求
目标不可达,源抑制和超时报文
时间戳请求
3.ICMP大概分为两类报文:
一类是通知出错原因 ;一类是用于诊断查询
类型及含义如下:
类型(十进制) 内容
0 回送应答
3 目标不可达
4 原点抑制
5 重定向或改变路由
8 回送请求
9 路由器公告
10 路由器请求
11 超时
17 地址子网请求
18 地址子网应答
而相应请求用的ping操作中就包括了相应请求(类型字段值为8)和应答(类型字段值为0)ICMP报文。过程:一台主机向一个节点发送一个类型字段值为8的ICMP报文,如果途中没有异常(如果没有被路由丢弃,目标不回应ICMP或者传输失败),则目标返回类型字段值为0的ICMP报文,说明这台主机存在
这里主要介绍ping之后返回信息的分析
1、Request timed out
这是大家经常碰到的提示信息,至少有下几种情况 。
a)对方已关机,或者网络上根本没有这个地址:比如在主机 A 中 PING 192.168.0.7 , 或者主机 B 关机了, 在主机 A 中 PING 192.168.0.5 都会得到超时的信息。
b) 对方与自己不在同一网段内,通过路由也无法找到对方,但有对方确实是存在的,当然不存在也是返回超时的信息。
C) 对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)。 怎样知道对方是存在,还是不存在呢, 可以用带参数 -a 的 Ping 命令探测对方,如果能得到对方的 NETBIOS名称,则说明对方是存在的,是有防火墙设置,如果得不到,多半是对方不存在或关机,或不在同一网段内。
d)错误设置 IP 地址 正常情况下,一台主机应该有一个网卡,一个 IP 地址,或多个网卡,多个 IP 地址(这些地址一定要处于不同的 IP 子网)。但如果一台电脑的“拨号网络适配器” (相当于一块软网卡) 的 TCP/IP 设置中, 设置了一个与网卡 IP 地址处于同一子网的 IP 地址,这样,在 IP 层协议看来,这台主机就有两个不同的接口处于同一网段内。
当从这台主机Ping其他的机器时,会存在这样的问题:
A、主机不知道将数据包发到哪个网络接口,因为有两个网络接口都连接在同一网段。
B、主机不知道用哪个地址作为数据包的源地址。因此,从这台主机去 Ping 其他机器, IP层协议会无法处理,超时后, Ping 就会给出一个“超时无应答”的错误信息提示。但从其他主机 Ping 这台主机时,请求包从特定的网卡来,ICMP只须简单地将目的、源地址互换,并更改一些标志即可,ICMP 应答包能顺利发出,其他主机也就能成功 Ping通这台机器了。
2、Destination host Unreachable
(1). 对方与自己不在同一网段内,而自己又未设置默认的路由,比如上例中 A 机中不设定默认的路由,运行 Ping 192.168.0.1.4 就会出现“ Destination host Unreachable
(2)网线出了故障 这里要说明一下“ destination host unreachable ”和 “time out ”的区别,如果所经过的路由器的路由表中具有到达目标的路由, 而目标因为其他原因不可到达,这时候会出现“ time out ”,如果路由表中连到达目标的路由都没有,那就会出现“destination host unreachable ”。
(3)Bad IP address 这个信息表示您可能没有连接到 DNS服务器,所以无法解析这个IP 地址,也可能是 IP 地址不存在。
3、Source quench received
这个信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。
4、Unknown host——不知名主机
这种出错信息的意思是,该远程主机的名字不能被域名服务器( DNS)转换成 IP 地址。故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。
5、No answer——无响应, 这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信息。故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不正确;本地或中心的路由器没有工作;通信线路有故障;中心主机存在路由选择问题。
6、Ping 127.0.0.1 :127.0.0.1 是本地循环地址 如果本地址无法 Ping 通,则表明本地机 TCP/IP 协议不能正常工作。
7、no rout to host : 网卡工作不正常。
8、transmit failed,error code:10043 网卡驱动不正常。
9、unknown host name:DNS 配置不正确。
ping命令基于ICMP协议的返回信息分析的更多相关文章
- Ping命令与ICMP协议
ICMP协议 ICMP是"Internet Control Message Ptotocol"(Internet控制消息协议)的缩写.它是TCP/IP协议族的一个子协议,用于在IP ...
- 计网-ping服务命令与ICMP协议
目录 一.IP协议的助手 —— ICMP 协议(网络层协议) 二.ping —— 查询报文类型的使用 三.traceroute —— 差错报文类型的使用 参考:从Wireshark抓包软件角度理解PI ...
- 实战录 | 基于openflow协议的抓包分析
<实战录>导语 云端卫士<实战录>栏目定期会向粉丝朋友们分享一些在开发运维中的经验和技巧,希望对于关注我们的朋友有所裨益.本期分享人为云端卫士安全SDN工程师宋飞虎,将带来基于 ...
- ping 原理与ICMP协议[转]
原文:http://blog.csdn.net/inject2006/article/details/2139149 ping 的原理 ping 程序是用来探测主机到主机之间是否可通信,如果不 ...
- ping 原理与ICMP协议
ping 的原理 ping 程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接.ping 使用的是ICMP协议,它发送icmp回送请求消息给目的主机 ...
- 错误的另一个常见原因是默认的安全组规则。default security group默认情况下不允许ICMP(ping命令使用的协议)
可以在openstack horizon界面中添加ICMP和ssh(TCP)规则,也可以通过命令行.命令行方式给默认安全组添加规则的方法如下: $ nova secgroup-add-rule def ...
- 通过wireshark学习Traceroute命令(UDP,ICMP协议)
traceroute: 通过TTL限定的ICMP/UDP/TCP侦测包来发现从本地主机到远端目标主机之间的第三层转发路径.用来调试网络连接性和路由问题. mtr: traceroute的一个变种,能根 ...
- ping 原理及ICMP协议简介
//Ping IP/域名 public static String pingIPCennect(String ipStr) { String result = ""; if ( ...
- ICMP协议和ping命令
当网络不通的情况下,通常会想到ping命令,ping一下,但是ping命令内部如何执行的,可能并不清楚,其实ping是基于ICMP协议进行工作的. 一.ICMP协议的格式 ICMP是在RFC 792 ...
随机推荐
- 题解【洛谷P5658】[CSP-S 2019]括号树
题面 一道简单的栈与\(\text{DP}\)的结合. 首先介绍一下序列上的括号匹配问题,也就是此题在序列上的做法: 设 \(dp_i\) 表示以 \(i\) 结尾的合法的括号序列个数, \(ss_i ...
- Ansible:playbook-nagios
一.创建目录结构 cd /etc/ansible/roles/ mkdir nagios/{files,templates,vars,handlers,meta,default,tasks} -pv ...
- laravel中如何区分get数据和post数据
可能有时候会碰到这样的场景: 有一个post提交请求,请求地址为:xxx?id=10,提交的post数据为:id=20而在控制器中,我要同时得到get和post中数据get中的id为10,而post中 ...
- echart如何去掉X 、Y轴的网格线
1.如何去掉X.Y轴的网格线,关键是splitLine{show:false} xAxis:[{ type:'value', splitNumber:2, scale:true, splitLine: ...
- JS高级---bind方法
bind方法 复制了一份的时候, 把参数传入到了f1函数中, x===>10, y===>20, null就是this, 默认就是window bind方法是复制的意思, 参数可以在复制的 ...
- Java.util.Calendar类
Java.util.Calendar类 package myProject; import java.text.SimpleDateFormat; import java.util.Calendar; ...
- CentOS之service iptables stop 显示not loaded
停止firewalld服务停止防火墙,并禁用这个服务 sudo systemctl stop firewalld.servicesudo systemctl disable firewalld.ser ...
- python下matplotlib、numpy、pandas联合作图逐步深入分析
1.代码1: from pandas import Series,DataFrame from numpy.random import randn import numpy as np import ...
- 每天进步一点点------Nios II 的Run as hardware 中报错:Downloading ELF Process failed
今天继续调试,又出现了新问题.在执行NIOS程序代码时,不能下载了:Pausing target processor: not responding. Resetting and trying aga ...
- hdu 1045 Fire Net(二分图)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=1045 题目大意为给定一个最大为4*4的棋盘,棋盘可以放置堡垒,处在同一行或者同一列的堡垒可以相互攻击, ...