zoukankan      html  css  js  c++  java
  • ping

    一、ping简介

      PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。

      PingWindowsUnixLinux系统下的一个命令。ping也属于一个通信协议,是TCP/IP协议的一部分。利用“ping”命令可以检查网络是否连通,可以很好地帮助我们分析和判定网络故障。

    命令格式:Ping IP地址/域名。

     

    二、ping原理

    1. Ping的基本原理

      利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。

    2. Ping具体工作过程

      在一个主机上ping一个IP地址的时候,ping命令会构建一个固定格式的ICMP请求包,然后由ICMP协议将这个数据包连同目的IP地址一起交给IP协议层。IP协议层会去创建一个IP数据包,IP协议通过目的IP地址和自己的子网掩码来判断目的IP地址是否与本地主机在同一网段,若在同一网段,想办法得到目的IPMAC地址,否则想办法得到路由器的MAC地址。首先到本地ARP缓存中查找是否有目的主机IP地址和MAC地址的映射关系记录,如果没有就发送一个ARP请求广播。得到目的主机的MAC地址后,和数据包一起交给数据链路层,数据链路层会构建一个数据帧,然后将数据发送出去。

      目的主机收到数据帧后,先检查它的目的地址,并和本机的物理地址比对,如果符合就接受,否则丢弃。接收后检查该数据帧,将IP数据包从帧中提取出来,交给本机的IP层协议。同样,IP层检查后,将有用的信息提取后交给ICMP协议,ICMP协议处理后,马上构建一个ICMP应答包,发送给主机A,其过程和主机A发送ICMP请求包到主机B一模一样。

     

    三、ping参数使用

    1. Ping -t 目的IP:不停的ping对方主机,直到你按下Control-C

    2. Ping -a 目的IP:解析计算机NetBios名。

    3. Ping -n count 目的IP:发送count指定的Echo数据包数。

    (在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数。)

    4. Ping -l size 目的IP:定义echo数据包大小。

    (在默认的情况下windowsping发送的数据包大小为32byte,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byte,可以通过配合-t参数来实现一个有攻击性的命令:ping -l 65500 -t 目的IP

    5. Ping -r count 目的IP:通过count设定你想探测经过的路由的个数,不过限制在了9个。

    6. Ping -f 目的IP:在数据包中发送“不要分段”标志。

    (在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会 再分段处理。)

    7. Ping -i TTL 目的IP:指定TTL值在对方的系统里停留的时间。

    8. Ping -v TOS 目的IP:将“服务类型”字段设置为 tos 指定的值。

    9. Ping -w timeout 目的IP:指定超时间隔,单位为毫秒。

    10. Ping -4 目的IP:强行使用IPv4.

    11. Ping -6 目的IP:强行使用IPv6.

     

    四、ping返回信息

    1. "Request Timed Out":这个信息表示对方主机可以到达但超时了,这种情况通常是因为对方拒绝接收你发给它的数据包造成数据包丢失。大多数的原因可能是对方装有防火墙或已下线。

    2. "Destination Host Unreachable":这个信息表示对方主机不存在或者没有跟对方建立连接。

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

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

     

    注:"destination host unreachable""time out"的区别在于,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其它原因不可到达,这时候会出现"time out",如果路由表中连到达目标的路由都没有,那就会出现"destination host unreachable"

     

    五、ping使用步骤

    使用Ping检查连通性有六个步骤:

    1.使用ipconfig /all观察本地网络设置是否正确。

    2Ping127.0.0.1127.0.0.1回送地址Ping回送地址是为了检查本地的TCP/IP协议有没有设置好。

    3Ping本机IP地址,这样是为了检查本机的IP地址是否设置有误。

    4Ping本网网关或本网IP地址,这样的是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常;(在非局域网中这一步骤可以忽略)

    5Ping本地DNS地址,这样做是为了检查本地DNS服务器是否工作正常。

    6Ping远程IP地址,这主要是检查本网或本机与外部的连接是否正常。

     

    六、linuxwindows的一些区别:

    1. LinuxPing数据包是64bytes的 而Windows的是32byte

    2. Windows下默认发送四次数据包,完了之后自己结束,Linux下的ping程序默认不停发送数据包,直到你手动停止。

    3. 返回数据格式不同。

    4. Windowsipconfig/all命令在Linux中对应的是ifconfig命令。

     

  • 相关阅读:
    环形二维数组
    梦断代码(三)
    梦断代码(二)
    梦断代码(一)
    CNblogs用户体验
    《软件工程》--读书笔记三
    《软件工程》--读书笔记二
    《软件工程》--读书笔记一
    找出水王
    典型用户
  • 原文地址:https://www.cnblogs.com/wujuntian/p/4804154.html
Copyright © 2011-2022 走看看