ping是大家所熟悉的网络延迟监测工具。ping基于ICMP协议,这是一个基于IP的三层协议。在Windows Azure上,所有服务的对外接口都仅支持TCPUDP协议,因此,我们无法使用ping从外部监测Azure上的虚拟机,也无法从Azure虚拟机监测外部延迟。为了能够实现对网络延迟的监测,我们可以使用TCP协议进行ping,其原理是,先在客户端和服务端建立一个tcp连接,然后发出一个检测包,测量响应时间。它和ping的普通区别,是在测量前要建立一个tcp连接。因此,测试的对象必须开放一个tcp端口。另外,tcp ping工具没有在os里面提供,必须自己开发或者下载工具。

 

     windows 上,微软提供了一个工具叫psping。可以从这里下载:http://technet.microsoft.com/en-us/sysinternals/jj729731

    下载后,进行安装。然后在命令行就可以执行ping命令,比如 psping www.sina.com:80. 。它与ping的区别,是需要在测试目标后面增加一个端口号,否则,psping会使用ping进行检测

 

   下面是一个进行psping和普通ping的对比。我们发现二者的输出基本一致,psping并没有因为tcp协议增加网络延迟。同时,我们发现psping的精度更高一些,支持0.01毫秒精度。

如何在Azure虚拟机进行Ping操作_第1张图片

Linux上,也有类似工具。下面,我们看下CentOS/Redhat上如何进行Tcp ping

1.      首先下载tcptraceroute http://pkgs.repoforge.org/tcptraceroute/tcptraceroute-1.5-0.beta7.el6.rf.x86_64.rpm 其他版本的rpm可以在http://pkgs.repoforge.org/tcptraceroute/下载

2.      安装下载的rpm

3.      下载tcpping工具 http://www.vdberg.org/~richard/tcpping

4.      修改该文件权限:chmod 755 tcpping

5.      执行tcpping命令:tcppingnews.sina.com


如何在Azure虚拟机进行Ping操作_第2张图片