zoukankan      html  css  js  c++  java
  • ping命令基于ICMP协议的返回信息分析

    Ping是潜水艇人员的专用术语,表示回应的声纳脉冲,在网络中 Ping 是一个十分好用的 TCP/IP 工具。它主要的功能是用来检测网络的连通情况和分析网络速度。可以利用 PING 命令检查网络连通状态,ping命令是基于ICMP。

    这里先介绍ICMPICMP是网络层协议,一个新搭建好的网络,往往需要先进行一个简单的测试,来验证网络是否畅通;但是IP协议并不提供可靠传输。如果丢包了,IP协议并不能通知传输层是否丢包以及丢包的原因。所以我们就需要一种协议来完成这样的功能–ICMP协议

    1.ICMP协议的功能主要有:

     确认IP包是否成功到达目标地址

     通知在发送过程中IP包被丢弃的原因

    2.常见的ICMP报文

    相应请求

    目标不可达,源抑制和超时报文

    时间戳请求

    3.ICMP大概分为两类报文:

    一类是通知出错原因 ;一类是用于诊断查询

    类型及含义如下:

    类型(十进制) 内容

    0 回送应答

    3 目标不可达

    4 原点抑制

    5 重定向或改变路由

    8 回送请求

    9 路由器公告

    10 路由器请求

    11 超时

    17 地址子网请求

    18 地址子网应答

    而相应请求用的ping操作中就包括了相应请求(类型字段值为8)和应答(类型字段值为0ICMP报文。过程:一台主机向一个节点发送一个类型字段值为8ICMP报文,如果途中没有异常(如果没有被路由丢弃,目标不回应ICMP或者传输失败),则目标返回类型字段值为0ICMP报文,说明这台主机存在

    这里主要介绍ping之后返回信息的分析

    1Request 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通这台机器了。

    2Destination host Unreachable

    1. 对方与自己不在同一网段内,而自己又未设置默认的路由,比如上例中 A 机中不设定默认的路由,运行 Ping 192.168.0.1.4 就会出现“ Destination host Unreachable

    2)网线出了故障 这里要说明一下“ destination host unreachable ”“time out ”的区别,如果所经过的路由器的路由表中具有到达目标的路由, 而目标因为其他原因不可到达,这时候会出现“ time out ”,如果路由表中连到达目标的路由都没有,那就会出现“destination host unreachable ”

    3Bad IP address 这个信息表示您可能没有连接到 DNS服务器,所以无法解析这个IP 地址,也可能是 IP 地址不存在。

    3Source quench received

    这个信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。

    4Unknown host——不知名主机

    这种出错信息的意思是,该远程主机的名字不能被域名服务器( DNS)转换成 IP 地址。故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。

    5No answer——无响应, 这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信息。故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不正确;本地或中心的路由器没有工作;通信线路有故障;中心主机存在路由选择问题。

    6Ping 127.0.0.1 127.0.0.1 是本地循环地址 如果本地址无法 Ping 通,则表明本地机 TCP/IP 协议不能正常工作。

    7no rout to host : 网卡工作不正常。

    8transmit failederror code10043 网卡驱动不正常。

    9unknown host nameDNS 配置不正确。

     

  • 相关阅读:
    内存堆与栈的区别
    深度理解相对路径和绝对路径
    INFO:InstallAnywhere的Enterprise版本和Standard版本的主要区别
    HOWTO:InstallShield中如何调用批处理文件
    HOWTO:InstallScript工程中如何在用户协议界面中默认为接受协议
    HOWTO:InstallShield中如何通过脚本获取“My Documents”路径
    INFO:InstallShield工程中关于.NET依赖项的编译扫描警告
    InstallShield Kevin Wan博客文章索引列表(001~100)
    HOWTO:在InstallShield脚本中打开一个URL链接
    INFO:在InstallShield中修改安装包压缩.cab包的大小
  • 原文地址:https://www.cnblogs.com/buzhidao1/p/11937020.html
Copyright © 2011-2022 走看看