一、ping命令的详细用法
在网络中 ping 是一个十分强大的 TCP/IP 工具。它的作用主要为:
1、用来检测网络的连通情况和分析网络速度
2、根据域名得到服务器 IP
3、根据 ping 返回的 TTL 值来判断对方所使用的操作系统及数据包经过路由器数量。
我们通常会用它来直接 ping ip 地址,来测试网络的连通情况。
类如这种,直接 ping ip 地址或网关,ping 通会显示出以上数据,有朋友可能会问,bytes=32;time<1ms;TTL=128 这些是什么意思。
bytes 值:数据包大小,也就是字节。
time 值:响应时间,这个时间越小,说明你连接这个地址速度越快。
TTL 值:Time To Live,表示 DNS 记录在 DNS 服务器上存在的时间,它是 IP 协议包的一个值,告诉路由器该数据包何时需要被丢弃。可以通过 Ping 返回的 TTL 值大小,粗略地判断目标系统类型是 Windows 系列还是 UNIX/Linux 系列。
一、ping -t 的用法
不间断地 Ping 指定计算机,直到管理员中断。
这就说明电脑连接路由器是通的,网络效果很好。下面按按住键盘的 Ctrl+c 终止它继续 ping 下去,就会停止了,会总结出运行的数据包有多少,通断的有多少了。
二、ping -a 的使用
ping-a 解析计算机名与 NetBios 名。就是可以通过 ping 它的 ip 地址,可以解析出主机名。
三、ping -n 的使用
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送 10 个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
从以上我就可以知道在给 47.93.187.142 发送 10 个数据包的过程当中,返回了 10 个,没有丢失,这 10 个数据包当中返回速度最快为 32ms,最慢为 55ms,平均速度为 37ms。说明我的网络良好。
如果对于一些不好的网络,比如监控系统中非常卡顿,这样测试,返回的结果可能会显示出丢失出一部分,如果丢失的比较多的话,那么就说明网络不好,可以很直观的判断出网络的情况。
四、ping -l size 的使用
-l size:发送 size 指定大小的到目标主机的数据包。
在默认的情况下 Windows 的 ping 发送的数据包大小为 32byt,最大能发送 65500byt。当一次发送的数据包大于或等于 65500byt 时,将可能导致接收方计算机宕机。所以微软限制了这一数值;这个参数配合其它参数以后危害非常强大,比如攻击者可以结合-t 参数实施 DOS 攻击。(所以它具有危险性,不要轻易向别人计算机使用)。
例如:ping -l 65500 -t 211.84.7.46
会连续对 IP 地址执行 ping 命令,直到被用户以 Ctrl+C 中断.
这样它就会不停的向 211.84.7.46 计算机发送大小为 65500byt 的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,网络严重堵塞,由此可见威力非同小可。
五、ping -r count 的使用
在“记录路由”字段中记录传出和返回数据包的路由,探测经过的
路由个数,但最多只能跟踪到 9 个路由。
ping -n 1 -r 9 202.102.224.25 (发送一个数据包,最多记录 9 个路由)
将经过 9 个路由都显示出来了,可以看上图。
ping 命令用的较多的就这 6 类的,大家有可能在项目中会用到的。
六、批量 ping 网段
对于一个网段 ip 地址众多,如果单个检测实在麻烦,那么我们可以直接批量 ping 网段检测,那个 ip 地址出了问题,一目了然。
先看代码,直接在命令行窗口输入:
for /L %D in (1,1,255) do ping 10.168.1.%D
IP 地址段修改成你要检查的 IP 地址段。
当输入批量命令后,那么它就自动把网段内所有的 ip 地址都 ping 完为止。
那么这段“for /L %D in(1,1,255) do ping 10.168.1.%D” 代码是什么意思呢?
代码中的这个(1,1,255)就是网段起与始,就是检测网段 192.168.1.1 到 192.168.1.255 之间的所有的 ip 地址,每次逐增 1,直接到 1 到 255 这 255 个 ip 检测完为止。
二、arp 命令的使用
arp 是地址解析协议,其基本功能为透过目标设备的 IP 地址,查询目标设备的 MAC 地址,以保证通信的顺利进行。它是 IPv4 中网络层必不可少的协议,不过在 IPv6 中已不再适用,并被邻居发现协议(NDP)所替代。
说白了,就是把通过 ip 地址找到设备 mac 地址。
arp 的命令一般有三个用法,就是查询显示、添加记录、与删除记录,这个在我们做网络项目时经常会用到。
1、arp -a ,当你需要显示当期 ip 地址对应的 mac 地址时使用
当你需要了解你网络中设备对应的 mac 地址时,你可以使用 arp 地址进行显示,这个有利于我们可以清楚了解到 ip 地址对应的 mac 地址是哪台设备。
在命令提示符中输入“arp -a”并回车;自动在缓存中,读取 IP 地址和 mac 地址的对应关系表;
2、arp -s ,当你需要手动添加或绑定一条 arp 记录时使用。
手工输入一条 ARP 项目,格式为“ARP+空格+-a+IP 地址+MAC 地址”;
在网络中,通常在办公网络或监控项目中,为了防止用户乱改 ip 地址或 ip 地址冲突,我们需要给 ip 地址绑定设备的 mac 地址。
如下图,先用 ARP -s 192.168.1.1 3c-22-3f-5d-f6-77 绑定一条记录,然后用 arp -a 查询了 ARP 记录添加是否成功。
其实这个命令也叫作绑定 mac 地址的命令,例如一个公司的网络,员工经常喜欢改自己电脑的 ip 地址,经常会造成 ip 地址混乱,无法管理,那么这个时候你只需要把它的 ip 地址与它电脑 mac 地址进行绑定,那么下次出现网络故障,就可以直接 mac 地址定位到那几台电脑。
3、arp -d,当你觉得某条 arp 记录有问题时,可以删除。
功能为:删除所有 ARP 记录
其实如果想彻底清空 ARP 列表,需要您禁止所有网络连接,否则网络数据交互过程中仍然会产生新的 ARP 列表。
当你网络中出了问题,可能是有某些 ip 地址发生冲突了,mac 对应的 ip 地址有误,那么你可以对它进行删除这条 arp 记录,然后重新添加新的记录,网络问题就会得到解决。
三、tracert 命令的使用
tracert 是路由跟踪命令,用于确定 IP 数据包访问目标所采取的路径。
在使用 Tracert 命令之前,我们先来简单地介绍一下它的语法。其中最简单也是最常用的命令格式为:
一、基本用法
Tracert 目标设备的 ip 地址或者网址:
例 1、检测 ip 地址经过几个跃点
这里面是经过了两个跃点。
例 2:检测网址经过几个跃点
例 3、“tracert -d baidu.com”代表不将 IP 地址解析到主机名称,如下图所示:
例 4、“tracert -h 3 baidu.com”代表本次 tracert 搜索的最大跳数,输入 3 表示搜索在路由器跳转 3 次,如下图所示:
这个就是查跟设备最近的几个连接点的问题,通常在网络问题中,先要排除前端跟设备直接连接的最近的几个设备是否有故障,如果这几个近点跟踪可以正常互通,那么问题可能就出现在后端。
例 5、“tracert -w 6 baidu.com”代表 tracert 为每次回复所指定的毫秒数,其它命令根据需求,可以根据第二步图介绍使用,如下图所示:
当网络很慢,或者很卡时,我们要检测是那个设备的反应速度比较慢,所以这里面可以设个标准值,例如上面是直接显示回复 6ms 以内的设备,超过 6ms 的设备不显示,就是反应比较慢的,这个数值可以根据情况设置。
四、route 命令使用
route 命令用于显示和操作 IP 路由表。要实现两个不同的子网之间的通信,需要一台连接两个网络的路由器,或者同时位于两个网络的网关来实现。
route 命令主要用来管理本机路由表,可以查看,添加、修改或删除路由表条目,也就是说可以让哪些 ip 地址可以访问网络,哪些 ip 段不能访问网络。
在我们做项目时,经常可能会用到外网与外网切换使用,这样就造成了插拔网线在切换内外网,极其麻烦,这个在我们弱电 vip 技术群中经常有朋友问题,能否内网和外网同时接入到笔记本,不用每次拔网线呢?
例如:
笔记本上一张机械网卡,一张无线网卡, 一般笔记本都是这样的配置,都联上了内外与外网,其中外网网关是 49.222.151.207,内网网关 10.168.1.1,如何实现双网卡同时使用有线网上内网、无线网上外网?
第一步:设置无线网卡为默认路由网关。
步骤:无线网络连接属性—Internet 协议(TCP/IP)-属性-高级,手动添加无线路由网关,添加自己的外网网关即关,跃点数为“1”,是最高优先级。到了这一步,如果有线连接,无线连接同时存在的话,所有的数据都是经由无线网卡处理的。
第二步:查看当前路由表
使用 route print 命令看一个 0.0.0.0 的网络目标分别映射你的外内网的网关。
当然,这里面你也可以对当前的路由进行删除
第三步:
通过 route 命令,将所有网段添加到外网网卡,为默认路由,即所有的 ip 都走外网。
显示查看路由表,查看是否添加成功。
第四步:
通过 route 命令将内网网段添加到内网网卡,内网使用,即 10.168.0.0 这个 ip 段走内网。
显示查看路由表(route print 命令),查看是否添加成功。
那么就设置成功了,整体的意思就是:
对于所有 IP 地址的访问,都从 49.222.151.207 网关走;
但是,对于 10.168.0.0 开头的地址的访问,从 10.168.1.1 走。
这样,再也不用插拔网线这种粗鲁的方式来切换网络了。
另附 Ping 命令完全讲解
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
-t Ping 指定的计算机直到中断。
-a 将地址解析为计算机名。
-n count 发送 count 指定的 ECHO 数据包数。默认值为 4。
-l length 发送包含由 length 指定的数据量的 ECHO 数据包。默认为 32 字节;最大值是 65,527。
-f 在数据包中发送\”不要分段\”标志。数据包就不会被路由上的网关分段。
-i ttl 将\”生存时间\”字段设置为 ttl 指定的值。
-v tos 将\”服务类型\”字段设置为 tos 指定的值。
-r count 在\”记录路由\”字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。
-s count 指定 count 指定的跃点数的时间戳。
-j computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。
-k computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为 9。
-w timeout 指定超时间隔,单位为毫秒。
destination-list 指定要 ping 的远程计算机。
Ping 的返回信息有\”Request Timed Out\”、\”Destination Net Unreachable\”和\”Bad IP address\”还有\”Source quench received\”。
\”Request Timed Out\”这个信息表示对方主机可以到达到 TIME OUT,这种情况通常是为对方拒绝接收你发给它的数据包造成数据包丢失。大多数的原因可能是对方装有防火墙或已下线。
\”Destination Net Unreachable\”这个信息表示对方主机不存在或者没有跟对方建立连接。这里要说明一下\”destination host unreachable\”和\”time out\”的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其它原因不可到达,这时候会出现\”time out\”,如果路由表中连到达目标的路由都没有,那就会出现\”destination host unreachable\”。
\”Bad IP address\” 这个信息表示你可能没有连接到 DNS 服务器所以无法解析这个 IP 地址,也可能是 IP 地址不存在。
\”Source quench received\”信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。
怎样使用 Ping 这命令来测试网络连通呢?
连通问题是由许多原因引起的,如本地配置错误、远程主机协议失效等,当然还包括设备等造成的故障。
首先我们讲一下使用 Ping 命令的步骤。
使用 Ping 检查连通性有五个步骤:
1. 使用 ipconfig /all 观察本地网络设置是否正确;
2. Ping 127.0.0.1,127.0.0.1 回送地址 Ping 回送地址是为了检查本地的 TCP/IP 协议有没有设置好;
3. Ping 本机 IP 地址,这样是为了检查本机的 IP 地址是否设置有误;
4. Ping 本网网关或本网 IP 地址,这样的是为了检查硬件设备是否有问题,也可以检查本机与本地网络连接是否正常;(在非局域网中这一步骤可以忽略)
5. Ping 远程 IP 地址,这主要是检查本网或本机与外部的连接是否正常。
在检查网络连通的过程中可能出现一些错误,这些错误总的来说分为两种最常见。
1. Request Timed Out
\”request time out\”这提示除了在《PING(一)》提到的对方可能装有防火墙或已关机以外,还有就是本机的 IP 不正确和网关设置错误。
①、IP 不正确:
IP 不正确主要是 IP 地址设置错误或 IP 地址冲突,这可以利用 ipconfig /all 这命令来检查。在 WIN2000 下 IP 冲突的情况很少发生,因为系统会自动检测在网络中是否有相同的 IP 地址并提醒你是否设置正确。在 NT 中不但会出现\”request time out\”这提示而且会出现\”Hardware error\”这提示信息比较特殊不要给它的提示所迷惑。
②、网关设置错误:这个错误可能会在第四个步骤出现。网关设置错误主要是网关地址设置不正确或网关没有帮你转发数据,还有就是可能远程网关失效。这里主要是在你 Ping 外部网络地址时出错。错误表现为无法 Ping 外部主机返回信息\”Request timeout\”。
2. Destination Host Unreachable
当你在开始 PING 网络计算机时如果网络设备出错它返回信息会提示\”destination host unreachable\”。如果局域网中使用 DHCP 分配 IP 时,而碰巧 DHCP 失效,这时使用 PING 命令就会产生此错误。因为在 DHCP 失效时客户机无法分配到 IP 系统只有自设 IP,它往往会设为不同子网的 IP。所以会出现\”Destination Host Unreachable\”。另外子网掩码设置错误也会出现这错误。
还有一个比较特殊就是路由返回错误信息,它一般都会在\”Destination Host Unreachable\”前加上 IP 地址说明哪个路由不能到达目标主机。这说明你的机器与外部网络连接没有问题,但与某台主机连接存在问题。
举个例子吧。
我管理的网络有 19 台机,由一台 100M 集线器连接服务器,使用 DHCP 动态分配 IP 地址。
有一次有位同事匆忙地告诉我\”我的 OUTLOOK 打不开了\”,我到他机器检查,首先我检查了本地网络设置,我用 ipconfig /all 看 IP 分配情况一切正常。接着我就开始 PING 网络中的其中一台机器,第一次 PING 结果很正常,但 OUTLOOK 还是无法使用其它网络软件和 Copy 网络文件都可以使用但网络速度很慢,第二次 PING 我用了一个参数-t(-t 可以不中断地 PING 对方,当时我想 PING 一次可能发现不了问题)发现有 time=30ms 和 request time out,从服务器 PING 这台机就更有趣,request time out 比正常数据还多,在局域中竟然有 time=30ms 和 request time out 太不正常了。开始我认为是网卡的问题但换网卡后故障依旧,重做网线还是不能解决问题,这故障真有趣!最后我没办法了把它插在集线器端口上的另一端的网线换到另一个端口,哈!故障解决了。原来是集线器端口坏了。
如何用 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。即 68*2.98*2(乘 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
Ping 延迟详解
网络延时是指一个数据包从源端发向目的端,然后再立即从目的端返回源端的时间。影响网络延时的主要因素是路由跳数和网络流量。
1、路由跳数
每次路由转发都需要时间,因此路由跳数越多,网络延时越大。
2、网络流量
网络流量越大,设备处理报文排队的时间就越长,网络延时也就越大。网络延时高可能有以下三个原因:
2.1、报文经过的路由跳数多
由于光/电的传输速度非常快,报文在物理介质中的传播时间几乎可以忽略不计,但是设备转发数据包的处理时间是不可忽略的。当报文经过太多路由转发处理时,网络延时就会很明显。
2.2、网络带宽不够
当报文经过的网络其带宽不够时,会产生网络拥塞报文排队等待处理,从而表现为响应延时。
2.3、处理内存不够
当设备接收到大量的报文,但是设备处理内存不足时,造成处理速度缓慢,此时也会造成响应延时。
通过 Ping 命令可以对于网络延迟进行检测,给用户提供当前网络延时的参考,不能作为当前网络延迟的绝对测量值。
Ping 延时是否正常没有一个具体的参考值,网络状况不同则要求不同,当需要精确的知道网络延迟时,需要借助于其他的测量方法,比如 NQA 等。
分析 Ping 延迟时需要注意以下两点:
当设备对报文进行硬件转发,速度非常快,所以延时也就小。例如,Ping 设备端口下挂的电脑。当报文需要 CPU 进行处理时,延迟比较大。例如,Ping 设备网关。
尽管存在 Ping 设备网关延时大的问题,但是由于业务数据报文不需要 CPU 处理,而是直接由底层芯片处理,所以不会影响到数据包的转发。
为解决 Ping 设备网关延时大的问题,可以在设备上执行命令icmp-reply fast使能设备的 Ping 快回功能,使能后设备对收到的目的地址是自己的 Echo Request 报文做快速应答,业务板的 CPU 收到 ICMP 报文时,会直接进行 ICMP 响应,增加 CPU 对 ICMP 报文的处理速度,从而降低延迟。
设备为了防止网络中常见的 Ping 攻击对设备造成影响,将 ICMP 报文的处理优先级降到最低,ICMP 报文传送和处理都排在最后,所以延时就会比较大。