想跟朋友公司的一台机点对点做测试
普通的PING更不能在公司内部两台机之间, 或是欧洲那边的分公司以VPN联系的网络做测试
如果你直接打psping 会告诉你它有4大功能, 分别是ICMP Ping, TCP Ping, 延迟与带宽测试
如果你用 –? 来查询每个功能的用法, 会给予你更详细的参数资料及说明
但普通使用者可能会看到头昏, 所以我会提供每个功能的范例使用方式
Ping这个指令是远古已有, 它简单到我想很多家庭主妇也曾经听过, 也大概想象到它的功能
平常如果我们想知道一个远程机器有没有开机, 也会很随意的Ping一下,看看有没有回应
这篇我主要用我们一台Web Server来做测试对象, 如果你用windows原生的ping指令可以看到
它会看看对方会不会支持IPv6, 当然你的机器也要懂IPv6
如果你想要强逼它进行IPv4的连接, 可以打ping –4 servername
有关其他参数使用方式请打ping –?查看
ping 原生设定发放4个ICMP PING要求, 你可以用-n 参数更改这个数字
这两个测试报告我们可以看出, Srvweb01这台机有开机, 而且能响应ping, 响应速度介乎3-10ms (毫秒), 是很快的速度
要注意Windows的ping命令用的是ICMP Protocol, 这不同于TCP或UDP,
我这里就不讨论这3种通讯协议的分别了, 因为这个令这篇文章增加20页篇幅.
PsPing 也有这个传统的功能, 但显示的方式有点不同, 而且命令也有多些变化
例如如果我打ping –n 8 –w b –h 5 srvweb01 , 会有这个报告出来
-w 参数是warm up的意思, 说的是进行正式测试前先进行多少次(例子是3次) 热身运动,
这个热身运动有助取得更准确的数据, 大家可以看到热身的延迟数据往往比较慢, 理由就不详述了…(会再加10页篇幅…)
-n 是指运行正式测试的次数, 例子是8次, 就是绿色圈圈的部份, 最后的报告会以这些资料做统计
-h 是指最后输出的一个统计数据的笔数, 例子是 5, 所以蓝色框框有5笔数据
顺带一提, 如果你要强制使用IPv4作联机, 可以用 –4 这个参数, 例如
psping –4 –n 8 –w b –h 5 srvweb01
这个报告告诉我甚么呢? 基本上是跟Ping说的不相上下, 统计数据也是说延迟值由3~10ms不等
而总合报告指出有4笔数据显示延迟在6.9ms 附近, 相比Ping的报告, 这个psping就是把数据摆好看一点.
Psping强大于它还可以让你以TCP端口的方法来测试响应
以往如果你要测试埠的连接, 你可能会用telnet这个命令, 但它只能告诉你连的上还是连不上…
而且最大的问题是这个telnet命令从windows vista开始并不是预载的指令, 要后期补装
使用的方法跟上面ICMP Ping的使用非常相同, 只要在测试目标后补上端口数字就可, 例如
psping -n 8 -w 3 -h 5 srvweb01:80
因为我要进行的目标是一台Web server, 所以我向它测试80埠,
事前你需要确认防火墙不会把你对端口的封包档下来, 不然会出现以下讯息…
其他参数的用意是没有分别的, 但为了方便阅读我还是把上面的文字重抄一遍…
-w 参数是warm up的意思, 说的是进行正式测试前先进行多少次(例子是3次) 热身运动,
-n 是指运行正式测试的次数, 例子是8次, 就是绿色圈圈的部份, 最后的报告会以这些资料做统计
-h 是指最后输出的一个统计数据的笔数, 例子是 5, 所以蓝色框框有5笔数据
顺带一提, 如果你要强制使用IPv4作联机, 你也是可以用 –4 这个参数, 例如
我们来用Psping做封包延迟的测试, 先看看范例指令
psping -l 1500 -n 300 -h 10 srvweb01:80
这个测试一定要使用TCP端口才能完成, 所以我继续使用80埠作测试
图中看出我们要给予一些特别参数, 分别是:
-l 参数是设定封包大少, TCP联机在Layer 2 Ethernet中的MTU (Maximum Transmission Unit)通常以1500 Bytes为一个单位,
或许你有听过Jumbo Frame这个名词, 你可以根据你的网络环境作出修改, 如果你不清楚这两行在说甚么…请用1500做单位
-n 是测试次数, 例子是300, 就是说这个测试会尝试发送300个封包到对方主机
-h 是最后的统计数据笔数, 例子是10, 所以你回见到黄色框框有10笔资料
这里我们要怎样理解呢?
Psping告诉我, 它发送了305个封包, 头5个是热身用的, 后面300个每个1500 Bytes
封包发送到对方的80埠成功联机, 而且对方全部都有响应.
总合送出的封包大小是300 x 1500 = 450000 Bytes
很多封包在1ms以内得到响应, 浮游值在0.86 ~ 11.35 ms,
注意它说的是Roundtrip Latency, 就是说封包是发出去再收到响应这一整段的延迟时间
没有比较可能会差一点点感觉, 我再以www.dotblogs.com.tw来做测试
由于怕它以为我在攻击它, 所以我做50次封包测试就好
看到了吗? 这个报告说明我的计算机跟Dotblogs之间普遍有29毫秒的延迟
是很好的速度, 其实封包到200ms延迟 也不会令人感觉很烦厌
超出这个数字就会感觉网络好像响应越来越慢…
这关乎每个网络节点的处理速度, 还有各地区的连接方式
如果在内部网络都会有高延迟, 可能就跟不正常的网络装置有关了, 更甚这可能会出现掉封包的状况
最后看看如何测试两点间的带宽
先说明一些关系, 带宽你可以想象是一条水管的大小
水管越大, 理论上放水到另一端的理论速度也越快
但这也要看放水的一方给不给力.
对比在计算机世界, 带宽是由你的计算机, 到另一计算机中间的总合串连关系
并不是单单由一方决定的, 比如说你的计算机LAN阜可以跑到1Gbps,
但如果对方的计算机只能跑到100 Mbps, 那么最终你们最快也只能用100 Mbps来传资料
如果放大到互联网世界, 还要看中间的路由器, 交换机的速度.
至于它们之间怎样协议传输速度, 多出来又怎办, 我希望往后有机会可以用10页篇幅来说明
作为我这重职业的人, 很常听到客户说, 我的网络明明达到光速了, 怎么看网页(或其他东西) 会这么慢,
如果你也听到相同的说话…可以把这篇文章推荐给你的朋友看看
回到主题. Psping 测试带宽的指令范例如下
psping -b -l 1500 -n 15000 srvweb01:80
-b 参数决定这是要进行带宽测试
-l 是封包大小, 我沿用基本的1500 Bytes
-n 是设定几个封包, 这里建议设大一点, 因为网络设备不是一开始就能用全速运作, 放多一点封包会准确一点
同样你要设定端口数字, 我继续用80来连接
这个报告可以看出, 我的计算机跟Web Server之间能用10 MB/s的速度来传送数据 (注意Psping所用单位是 MB/s)
如果我把封包大小设成9000, 就是说每个封包有9000 Bytes, 还是能送到对方那边
但由于封包会被中间的网络设备剪裁成基本1500 Bytes封包的大小, 所以会有一些效能折减
图中看出过程曾出现过5.87 MB/s 的低落传输速度, 令整体(Average)速度稍为下降.
网络联机其实很艰深, 如果这篇有任何出错或理论错误出告知
希望大家能简单认识Psping为我们带来的用处!