ping命令研究报告——网络程序设计课第一次作业

  ping命令是一个用于查询某个主机是否已经加电并能够响应的网络诊断命令工具,处于网络协议栈的应用层。它使用icmp协议。而icmp——网际报文控制协议是一种将差错与控制集于一体的协议,用于传输差错报文和

消息控制报文。而ping命令就属于使用消息控制报文。

1.ping命令的原理

 ping命令工具将报文通过网络传递给指定的主机,然后再要求对方返回一个同样大小的数据包,以此来确定两台网络机器是否连接相通,时延是多少。其实ping命令是分组网间探测,即Packet InterNet Groper,用来测试

两个主机之间的连通性。ping使用了ICMP(Internet Control Message Protocol,网际控制协议)中的回送请求和回送回答报文。ping是应用层直接使用网络层ICMP的一个例子。它没有通过运输层的TCP和UDP。

 

2.ping命令的使用场景

  在不同的场景下使用ping命令,或是用ping命令ping不同类型的网络地址能够帮助我们分析和定位网络问题的原因所在

  2.1 ping本地环回地址,如127.0.0.1

  

  本地环回地址不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口。通常在安装网卡前就可以ping通这个本地回环地址。可以用来检查本地网络协议、基本数据接口

   等是否正常。ping本地环回地址成功,说明本机的tcp/ip协议安装正确

 

  2.2 ping 172.16.2.34(本机ipv4地址)

  

  首先需要使用ipconfig命令来查询本机的ipv4地址,我这里的ipv4地址为172.16.2.34。

  ping本机ip地址成功,说明本机的网卡运转正常

 

 2.3 ping 172.16.2.1(默认网关ip)

   

  默认网关的意思是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关,由这个网关来处理数据包。现在主机使用的网关,一般指的是默认网关。一台电脑的默认网关是不可以随随便便指定的,

  必须正确地指定,否则一台电脑就会将数据包发给不是网关的电脑,从而无法与其他网络的电脑通信。这里我们同样需要先通过ipconfig命令来查找本机默认网关的地址——这里是172.16.2.1。

  ping网关成功,说明从主机到网关这段链路是连通的。

 

 2.4 ping 39.156.69.79 (外网ip)

   

   这里我们选择ping百度的ip。ping外网ip成功,说明能成功连接到外网。

 

   通过以上几个应用案例,能够有效帮助我们进行网络诊断。假设计算机不能进行正常的网络访问,我们可以通过ping命令按照以上的几个应用场景来逐步排查,以确认问题是出现在tcp/ip协议的安装、网卡问题

  还是路由器问题等等。

 

3.ping命令可使用的参数

 3.1 -t参数

    如:Ping -t 172.16.2.1 。-t参数-t 参数可以一直发送 ping 的数据包,直到人为地停止,它的一个应用场景为,可
以通过这种方式来感受到目的主机之间网络状况的变化 。结果如下图所示:

 

 3.2 -n参数

 如:ping –n 1 172.16.2.1 。-n 参数可以指定发送数据包的数量,这里只发送一个 ping 的数据包

    

 3.3 -l参数

  如:ping –l 64 172.16.2.1 。-l参数可以指定发送的数据包的长度。这里的使用的 64 个字节是指 icmp 的携带数据部分 

     

 3.4 ping命令还有其他参数,如:

  -r count 在"记录路由"字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。

  -s count 指定 count 指定的跃点数的时间戳。

  -j computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。

 

4.使用wireshark工具对ping命令抓包 

  为了对ping命令有更深的认识和了解,使用wireshark抓包工具来抓取并分析ping命令的具体报文。

    这里,我们ping 百度的地址,由下图可以知道,ping指令共发送4个请求数据包,收到baidu.com的4个应答数据包

 

   由于ping指令使用的是ICPMP协议,因此我们在wireshark的显示过滤器中设置只显示icmp协议(wireshark的显示过滤器能显示指定的协议),结果如下:

 

 我们总共抓取到了8icmp报文,这些都是由ping命令产生的。下面我们依次来看请求包和应答包的信息:

 四个请求包的信息:

ip172.16.2.34(本机ip

目的ip39.156.69.79

ip标识分别为:0x5d360x5d370x5d380x5d39

总长度:均为60

生存时间:均为128

 

    四个应答包的信息:

ip39.156.69.79

目的ip172.16.2.34(本机ip

ip标识分别为:0x5d360x5d370x5d380x5d39

总长度:均为60

生存时间:均为46

ip数据包的长度为60ip头部的长度为20 icmp的头部固定部分为8icmp的数据部分为32

 

通过wireshark对ping命令的抓包,我们可以看到,ping命令是连续发送几个ip标识相连的数据包。ping命令的数据包为icmp数据,它包含在ip数据包中,而ip数据包又经过链路层帧的封装,最终传递给终点。

分析知道,由于wireshark捕获的数据包是通过本机的网卡来抓取的,因此本机发送出去的数据包尚未经过任何一个路由器,故TTL128。而应答报文已经经过了若干个路由器,因此这里应答报文的TTL值为46。

通过抓包,我们更深入第了解到,基于icmp的ping指令每次发送的icmp消息控制报文给目的主机,并要求目的主机返回一个同样大小的数据包,并且通过四次的发送,得到四次的返回报文,以此来判定两台主机间的

连通状态和网络状况。

 

 

posted on 2019-11-27 20:39  dextttter  阅读(1117)  评论(0编辑  收藏  举报

导航