最后我没办法了把它插在集线器端口上的另一端的网线换到另一个端口,哈
故障解决了原来是集线器端口坏了 如何用Ping命令来判断一条链路的速度? Ping这个命令除了可以检查网络的连通和检测故障以外,还有一个比较有趣的用途,那就是可以利用它的一些返回数据,来估算你跟某台主机之间的速度是多少字节每秒 我们先来看看它有那些返回数据 Pinging 202.105.136.105 with 32 bytes of data: Reply from 202.105.136.105: bytes=32 time=590ms TTL=114 Reply from 202.105.136.105: bytes=32 time=590ms TTL=114 Reply from 202.105.136.105: bytes=32 time=590ms TTL=114 Reply from 202.105.136.105: bytes=32 time=601ms TTL=114 Ping statistics for 202.105.136.105: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 590ms, Maximum = 601ms, Average = 593ms 在例子中\"bytes=32\"表示ICMP报文中有32个字节的测试数据(这是估算速度的关键数据),\"time=590ms\"是往返时间 怎样估算链路的速度呢?举个例子吧我们把A和B之间设置为PPP链路 从上面的PING例子可以注意到,默认情况下发送的ICMP报文有32个字节除了这32个字节外再加上20个字节的IP首部和8个字节的ICMP首部,整个IP数据报文的总长度就是60个字节(因为IP和ICMP是Ping命令的主要使用协议,所以整个数据报文要加上它们)另外在使用Ping命令时还使用了另一个协议进行传输,那就是PPP协议(点对点协议),所以在数据的开始和结尾再加上8个字节在传输过程中,由于每个字节含有8bit数据、1bit起始位和1bit结束位,因此传输速率是每个字节2.98ms由此我们可以估计需要405ms即682.982(乘2是因为我们还要计算它的往返时间) 我们来测试一下33600 b/s的链路: Pinging 202.105.36.125 with 32 bytes of data: Reply from 202.105.36.125: bytes=32 time=415ms TTL=114 Reply from 202.105.36.125: bytes=32 time=415ms TTL=114 Reply from 202.105.36.125: bytes=32 time=415ms TTL=114 Reply from 202.105.36.125: bytes=32 time=421ms TTL=114 Ping statistics for 202.105.36.125: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 415ms, Maximum = 421ms, Average = 417ms 这里大家可能要注意到,这估算值跟实际值是有误差的,为什么呢?因为我们现在估算的是一个理论值,还有一些东西我们没有考虑比如在网络中的其它干扰,这些干扰主要来之别的计算机因为在你测试时不可能全部计算机停止使用网络给你做测试,这是不实际的另外就是传输设备,因为有某些设备如MODEM它在传输时会把数据压缩后再发送,这大大减少了传输时间这些东西产生的误差我们是不能避免的,但其数值大约在5%以内我们都可以接受(利用MODEM传输例外),但是可以减少误差的产生比如把MODEM的压缩功能关闭和在网络没有那么繁忙时进行测试有时候误差是无须消除的因为我们需要这些误差跟所求得的理论值进行比较分析,从而找出网络的缺陷而进行优化这时测试网络的所有数据包括误差都会成为我们优化的依据 还要注意,这种算法在局域网并不适用,因为在局域网中速度非常的快几乎少于1ms,而Ping的最小时间分辨率是1ms,所以根本无法用Ping命令来检测速度如果想测试速度那就要用专门仪器来检测总的来说,Ping命令是一个在故障检查方面很有用而且很便利的工具,你不应该忽视它的存在. 对于ping指令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下 现在我就参照ping指令的辅助说明来给大家讲我使用ping时会用到的技巧,ping只有在安装了TCP/IP通讯协议以后才可以使用: ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list Options: -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C. 不停的ping地方主机,直到你按下Control-C 此功能有什么特别的技巧,不过可以配合其它参数使用,将在下面提到 -a Resolve addresses to hostnames. 解析计算机NetBios名 例:C:\>ping -a 192.168.1.21 Pinging iceblood.yofor.com [192.168.1.21] with 32 bytes of data: Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 Ping statistics for 192.168.1.21: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-secods: Minimum = 0ms, Maximum = 0ms, Average = 0ms 从上面就可以知道IP为192.168.1.21的计算机NetBios名为iceblood.yofor.com -n count Number of echo requests to send. 发送count指定的Echo数据包数 在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下知: C:\>ping -n 50 202.103.96.68 Pinging 202.103.96.68 with 32 bytes of data: Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 Request timed out. ……………… Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 Ping statistics for 202.103.96.68: Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip times in milli-seconds: Minimum = 40ms, Maximum = 51ms, Average = 46ms 从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms -l size Send buffer size. 定义echo数据包大小 在默认的情?下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其它系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小虽然微软公司已经做了此限制,但这个参数配合其它参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的指令:(以下介绍带有危险性,只用于试验,请勿轻易施于别人计算机上,否?后果自负) C:\>ping -l 65500 -t 192.168.1.21 Pinging 192.168.1.21 with 65500 bytes of data: Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 Reply from 192.168.1.21: bytes=65500 time<10ms TTL=254 ……………… 这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许?有什么效果,但如果有很多台计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可 -f Set Don't Fragment flag in packet. 在数据包中发送“不要分段”标志 在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理 -i TTL Time To Live. 指定TTL值在对方的系统里停留的时间 此参数同样是帮助你检查网络运转情况的 v TOS Type Of Service. 将“服务类型”字段设置为tos指定的值 -r count Record route for count hops. 在“记录路由”字段中记录伝出和返回数据包的路由 在一般情况下你发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定你想探测经过的路由的个数,不过限制在了9个,也就是说你只能跟踪到9个路由,如果想探测更多,可以通过其它命令实现,我将在以后的文章中给大家讲解以下为筥例: C:\>ping -n 1 -r 9 202.96.105.101(发送一个数据包,最多记录9个路由) Pinging 202.96.105.101 with 32 bytes of data: Reply from 202.96.105.101: bytes=32 time=10ms TTL=249 Route: 202.107.208.187 -> 202.107.210.214 -> 61.153.112.70 -> 61.153.112.89 -> 202.96.105.149 -> 202.96.105.97 -> 202.96.105.101 -> 202.96.105.150 -> 61.153.112.90 Ping statistics for 202.96.105.101: Packets: Sent = 1, Received = 1, Lost = 0 (0% loss), round trip times in milli-seconds: Minimum = 10ms, Maximum = 10ms, Average = 10ms 从上面我就可以知道从我的计算机到202.96.105.101一共通过了202.107.208.187,202.107.210.214 , 61.153.112.70 , 61.153.112.89 , 202.96.105.149 , 202.96.105.97这几个路由 -s count Timestamp for count hops. 指定count指定的?点数的时间戳 此参数和-r差不多,只是这个参数不记录数据包返回所经过的路由,最多也只记录4个 -j host-list Loose source route along host-list. 利用computer-list指定的计算机列表路由数据包连续计算机可以被中间关网?分隔(路由稀疏源)IP允许的最大?量为9 -k host-list Strict source route along host-list. 利用computer-list指定的计算机列表路由数据包连续计算机不能被中间网?分隔(路由?格源)IP允许的最大数量为9 -w timeout Timeout in milliseconds to wait for each reply. 指定超时间隔,单位为毫秒 此参数?有什么其它技巧 ping指令的其它技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系?返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的,Windows系列的系?可以通过修改注?表以下键值实现: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] \"DefaultTTL\"=dword:000000ff 255---FF 128---80 64----40 32----20 好了,ping命令也基本上完全讲解完了,其中还有-j,-k参数我还没有详细说明 C:\>ping /? Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] destination-list Options: -t Ping the specified host until stopped. To see statistics and continue - type Control-Break; To stop - type Control-C. -a Resolve addresses to hostnames. -n count Number of echo requests to send. -l size Send buffer size. -f Set Don't Fragment flag in packet. -i TTL Time To Live. -v TOS Type Of Service. -r count Record route for count hops. -s count Timestamp for count hops. -j host-list Loose source route along host-list. -k host-list Strict source route along host-list. -w timeout Timeout in milliseconds to wait for each reply 补充: traceroute 用它来检测网路可知道是那一处网络环节出了问题,有利于网络人员检查,修复. 具体用法:用man看一下
(图片来源网络,侵删)
0 评论