欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

如何使用ping和tracert命令检测丢包

shiping1 的头像

 

  我如何测试丢包?我知道ping一个网站的信息和跟踪路由的信息。但是,我曾经听一些人说他们的宽带网连接上有丢包的问题。我怀疑我也许遇到了丢包的问题,因为当我进行速度测试的时候,速度比以前慢了。我没有改变硬件或者使用任何新的应用软件。

  从家里测试宽带网连接的丢包是一项非常困难的工作。丢包可以发生在从你的计算机到你在互联网上正在连接的目的地之间的线路上的任何一个地方。引起丢包的原因包括:网络阻塞、路由器或者交换机超过工作负荷、信号往返时间缓慢以及服务提供商或者托管你访问的网站的公司使用的通信优先等级。

  没有主动测量实际重复传输的TCP流量(对于家庭宽带网连接来说,这类产品太昂贵了),很难确定是否真的发生了重复传输。你指出的机制ping和跟踪路由对于帮助家庭用户确定互联网上哪里的速度慢是最有用的工具。Ping测量你的计算机和你要连接的IP地址之间的信号往返时间。跟踪路由是测量路由器在你的计算机和你正在跟踪的路由的IP地址之间的通道的反应时间。  

  使用Ping  

  使用Ping测量丢包的最佳方法是向一个IP地址发送大量的Ping命令,然后检查没有应答的那些Ping命令。如果你快速地发出了50次Ping命令,  

  你可以检查没有没有应答的次数,并把没有应答的次数作为丢包。没有应答的次数超过5%可能就值得担心了。  

  在一台Windows计算机上,在命令提示符后面输入如下命令就可以完成这个任务:  

  Ping -n 50(IP地址或者域名,如www.website.com)这个命令中的“-n”开关告诉发送ping命令的次数,“50”是发送的次数。  

  然后,你将得到一个测试总结。这个总结将包括丢失的数量和百分比:  

  199.181.132.250地址Ping的统计结果:  

  包: 发送 = 6, 接收 = 6, 丢失 = 0 (0%)  

  大约往返时间以毫秒(ms)显示:  

  最小 = 26ms, 最大 = 29ms, 平均 = 27ms  

  如果你看到平均往返时间较高(超过100ms),这也会降低你的网络下载速度。  

  设法消除某些引起丢包的网络某些部分的故障的一种方法是在通道的各个部分进行ping测试。我首先开始进行测试的地方是本地的“缺省网关”。这是你所有的数据传输到网络上经过的第一个路由器。如果在这一部分的丢包率很高,那么问题就在你的服务提供商的网络上。  

  在Windows命令提示符后面输入“ipconfig”命令你就可以发现你的缺省路由器的IP地址。这个结果显示如下:  

  以太网接口本地区域连接:  

  具体连接的DNS后缀:domainname.com  

  IP地址. . . . . . : 192.168.2.189  

  子网掩码 . . . . . : 255.255.252.0  

  缺省网关 . . . : 10.10.0.1  

  你在这里要查看的是缺省网关的IP地址。在上述例子中就10.10.0.1。  

  使用跟踪路由  

  在Windows命令提示符后面使用跟踪路由命令就可以实施跟踪路由。在Windows XPZH中这个命令是:tracert (IP地址或者主机名)  

  虽然结果不能向你显示丢包,但是,可以向你显示在路径中路由器反应速度减慢的情况。  

  这个输出结果将显示所有的路由器的反应时间。下面是一个例子:  

  5 ms 2 ms 3 ms malibu.domain.com [10.10.0.1]  

  10 ms 6 ms 7 ms 10.60.0.6  

  9 ms 7 ms 7 ms 10.20.0.1  

  6 ms 7 ms 7 ms x130.cd9e68.sj.concentric.net [205.158.104.130]  

  7 ms 7 ms 8 ms ge9-0.dcr2.dc-fremont-ca.us.xo.net [205.158.60.169]  

  7 ms 7 ms 7 ms ge2-0.dcr1.dc-fremont-ca.us.xo.net [65.106.2.205]  

  10 ms 7 ms 8 ms p5-1-0-2.rar2.sanjose-ca.us.xo.net [65.106.2.153]  

  10 ms 9 ms 11 ms p1-0.ir1.paloalto-ca.us.xo.net [65.106.5.178] 

  9 ms 10 ms 15 ms 206.111.12.114.ptr.us.xo.net [206.111.12.114]  

  9 ms 10 ms 10 ms svl-core-03.inet.qwest.net [205.171.205.29] 

  29 ms 28 ms 29 ms stl-core-02.inet.qwest.net [205.171.5.85]  

  30 ms 29 ms 29 ms sea-edge-03.inet.qwest.net [205.171.26.42]  

  * * * Request timed out.  

  * * * Request timed out.

  28 ms 28 ms 29 ms sam.abcnews.go.com [199.181.132.250]

  如果你看到在路径中跟踪路由往返时间有超过100ms(十分之一秒)的,这就可能引起网络上传输的时间减慢。

  从上述例子中,你可以看到数据在很多不同的网络(XO, Qwest, ABC)上传输。这是互联网美妙的一部分。不利的方面是一个用户无法解决反应时间减慢的问题。最佳的出发点就是确认你和你的服务提供商之间没有出现丢包。

二、Netstat 命令的使用技巧
  Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
  如果我们的计算机有时候接受到的数据报会导致出错数据删除或故障,我们不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么我们就应该使用Netstat查一查为什么会出现这些情况了。
  1、netstat 的一些常用选项
  ·netstat –s
  本选项能够按照各个协议分别显示其统计数据。如果我们的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么我们就可以用本选项来查看一下所显示的信息。我们需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。
  ·netstat –e
  本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量)。
  ·netstat –r
  本选项可以显示关于路由表的信息,类似于后面所讲使用route print命令时看到的 信息。除了显示有效路由外,还显示当前有效的连接。
  ·netstat –a
  本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接。
  ·netstat –n
  显示所有已建立的有效连接。
  下面是 netstat 的输出示例:
  C:>netstat -e
  Interface Statistics
  ReceivedSent
  Bytes399583794047224622
  Unicast packets120099131015
  Non-unicast packets7579544 3823
  Discards 0 0
   Errors 0 0
  Unknown protocols363054211
  C:>netstat -a
  Active Connections
  Proto Local AddressForeign Address State
  TCPCORP1:1572 172.16.48.10:nbsession ESTABLISHED
  TCPCORP1:1589 172.16.48.10:nbsession ESTABLISHED
  TCPCORP1:1606 172.16.105.245:nbsession ESTABLISHED
  TCPCORP1:1632 172.16.48.213:nbsessionESTABLISHED
  TCPCORP1:1659 172.16.48.169:nbsessionESTABLISHED
  TCPCORP1:1714 172.16.48.203:nbsessionESTABLISHED
  TCPCORP1:1719 172.16.48.36:nbsession ESTABLISHED
  TCPCORP1:1241 172.16.48.101:nbsessionESTABLISHED
  UDPCORP1:1025 *:*
  UDPCORP1:snmp *:*
  UDPCORP1:nbname *:*
  UDPCORP1:nbdatagram *:*
  UDPCORP1:nbname *:*
  UDPCORP1:nbdatagram *:*
  C:>netstat -s
  IP Statistics
  Packets Received = 5378528
  Received Header Errors = 738854
  Received Address Errors= 23150
   Datagrams Forwarded= 0
  Unknown Protocols Received = 0
  Received Packets Discarded = 0
  Received Packets Delivered = 4616524
  Output Requests= 132702
  Routing Discards = 157
  Discarded Output Packets = 0
  Output Packet No Route = 0
  Reassembly Required= 0
  Reassembly Successful = 0
  Reassembly Failures =
  Datagrams Successfully Fragmented = 0
  Datagrams Failing Fragmentation = 0
  Fragments Created = 0
  ICMP Statistics
  ReceivedSent
  Messages 693 4
  Errors 0 0
  Destination Unreachable685 0
  Time Exceeded0 0
  Parameter Problems 0 0
  Source Quenches0 0
   Redirects0 0
  Echoes 4 0
  Echo Replies 0 4
  Timestamps 0 0
  Timestamp Replies0 0
  Address Masks0 0
  Address Mask Replies 0 0
  TCP Statistics
  Active Opens = 597
  Passive Opens= 135
  Failed Connection Attempts = 107
  Reset Connections= 91
  Current Connections= 8
  Segments Received= 106770
  Segments Sent= 118431
  Segments Retransmitted = 461
  UDP Statistics
  Datagrams Received = 4157136
  No Ports = 351928
  ReceiveErrors = 2
  Datagrams Sent = 13809
  2、Netstat的妙用
  经常上网的人一般都使用ICQ的,不知道我们有没有被一些讨厌的人骚扰,想投诉却又不知从和下手?其实,我们只要知道对方的IP,就可以向他所属的ISP投诉了。但怎样才能通过ICQ知道对方的IP呢?如果对方在设置ICQ时选择了不显示IP地址,那我们是无法在信息栏中看到的。其实,我们只需要通过Netstat就可以很方便的做到这一点:当他通过ICQ或其他的工具与我们相连时(例如我们给他发一条ICQ信息或他给我们发一条信息),我们立刻在DOS 命令提示符下输入netstat -n或netstat -a就可以看到对方上网时所用的IP或ISP域名了,甚至连所用Port都完全暴露了。

三、IPConfig命令的使用技巧
  IPConfig实用程序和它的等价图形用户界面----Windows 95/98中的WinIPCfg可用于显示当前的TCP/IP配置的设置值。这些信息一般用来检验人工配置的TCP/IP设置是否正确。但是,如果我们的计算机和所在的局域网使用了动态主机配置协议(DHCP),这个程序所显示的信息也许更加实用。这时,IPConfig可以让我们了解自己的计算机是否成功的租用到一个IP地址,如果租用到则可以了解它目前分配到的是什么地址。了解计算机当前的IP地址、子网掩码和缺省网关实际上是进行测试和故障分析的必要项目。
  1、IPConfig最常用的选项
 ·ipconfig
  当使用IPConfig时不带任何参数选项,那么它为每个已经配置了的接口显示IP地址、子网掩码和缺省网关值。
  ·ipconfig /all
  当使用all选项时,IPConfig能为DNS和WINS服务器显示它已配置且所要使用的附加信息(如IP地址等),并且显示内置于本地网卡中的物理地址(MAC)。如果IP地址是从DHCP服务器租用的,IPConfig将显示DHCP服务器的IP地址和租用地址预计失效的日期。
  ·ipconfig /release和ipconfig /renew
  这是两个附加选项,只能在向DHCP服务器租用其IP地址的计算机上起作用。如果我们输入ipconfig /release,那么所有接口的租用IP地址便重新交付给DHCP服务器(归还IP地址)。如果我们输入ipconfig /renew,那么本地计算机便设法与DHCP服务器取得联系,并租用一个IP地址。请注意,大多数情况下网卡将被重新赋予和以前所赋予的相同的IP地址。
  下面的范例是 ipconfig /all 命令输出,该计算机配置成使用 DHCP 服务器动态配置 TCP/IP,并使用 WINS 和 DNS 服务器解析名称。
 Windows 2000 IP Configuration
  Node Type.. . . . . . . . : Hybrid
  IP Routing Enabled.. . . . : No
  WINS Proxy Enabled.. . . . : No
  Ethernet adapter Local Area Connection:
  Host Name.. . . . . . . . : corp1.microsoft.com
  DNS Servers . . . . . . . : 10.1.0.200
  Description. . . . . . . : 3Com 3C90x Ethernet Adapter
  Physical Address. . . . . : 00-60-08-3E-46-07
  DHCP Enabled.. . . . . . . : Yes
  Autoconfiguration Enabled.: Yes
  IP Address. . . . . . . . . : 192.168.0.112
  Subnet Mask. . . . . . . . : 255.255.0.0
  Default Gateway. . . . . . : 192.168.0.1
  DHCP Server. . . . . . . . : 10.1.0.50
  Primary WINS Server. . . . : 10.1.0.101
  Secondary WINS Server. . . : 10.1.0.102
    如果我们使用的是Windows 95/98,那么我们应该更习惯使用winipcfg而不是ipconfig,因为它是一个图形用户界面,而且所显示的信息与ipconfig相同,并且也提供发布和更新动态IP地址的选项。

四、ARP(地址转换协议)的使用技巧
  ARP是一个重要的TCP/IP协议,并且用于确定对应IP地址的网卡物理地址。实用arp命令,我们能够查看本地计算机或另一台计算机的ARP高速缓存中的当前内容。此外,使用arp命令,也可以用人工方式输入静态的网卡物理/IP地址对,我们可能会使用这种方式为缺省网关和本地服务器等常用主机进行这项作,有助于减少网络上的信息量。
  按照缺省设置,ARP高速缓存中的项目是动态的,每当发送一个指定地点的数据报且高速缓存中不存在当前项目时,ARP便会自动添加该项目。一旦高速缓存的项目被输入,它们就已经开始走向失效状态。例如,在Windows NT/2000网络中,如果输入项目后不进一步使用,物理/IP地址对就会在2至10分钟内失效。因此,如果ARP高速缓存中项目很少或根本没有时,请不要奇怪,通过另一台计算机或路由器的ping命令即可添加。所以,需要通过arp命令查看高速缓存中的内容时,请最好先ping 此台计算机(不能是本机发送ping命令)。
  ARP常用命令选项:
  ·arp -a或arp –g
  用于查看高速缓存中的所有项目。-a和-g参数的结果是一样的,多年来-g一直是UNIX平台上用来显示ARP高速缓存中所有项目的选项,而Windows用的是arp -a(-a可被视为all,即全部的意思),但它也可以接受比较传统的-g选项。
  ·arp -a IP
  如果我们有多个网卡,那么使用arp -a加上接口的IP地址,就可以只显示与该接口相关的ARP缓存项目。
  ·arp -s IP 物理地址
  我们可以向ARP高速缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或者在出现错误时,人工配置的物理地址将自动更新该项目。
  ·arp -d IP
  使用本命令能够人工删除一个静态项目。
  例如我们在命令提示符下,键入 Arp –a;如果我们使用过 Ping 命令测试并验证从这台计算机到 IP 地址为 10.0.0.99 的主机的连通性,则 ARP 缓存显示以下项: 
  Interface:10.0.0.1 on interface 0x1
  Internet AddressPhysical AddressType
  10.0.0.99 00-e0-98-00-7c-dc dynamic
  在此例中,缓存项指出位于 10.0.0.99 的远程主机解析成 00-e0-98-00-7c-dc 的媒体访问控制地址,它是在远程计算机的网卡硬件中分配的。媒体访问控制地址是计算机用于与网络上远程 TCP/IP 主机物理通讯的地址。
  至此我们可以用ipconfig和ping命令来查看自己的网络配置并判断是否正确、可以用netstat查看别人与我们所建立的连接并找出ICQ使用者所隐藏的IP信息、可以用arp查看网卡的MAC地址。

五、Tracert、Route 与 NBTStat的使用技巧
  1、Tracert的使用技巧
  如果有网络连通性问题,可以使用 tracert 命令来检查到达的目标 IP 地址的路径并记录结果。tracert 命令显示用于将数据包从计算机传递到目标位置的一组 IP 路由器,以及每个跃点所需的时间。如果数据包不能传递到目标,tracert 命令将显示成功转发数据包的最后一个路由器。当数据报从我们的计算机经过多个网关传送到目的地时,Tracert命令可以用来跟踪数据报使用的路由(路径)。该实用程序跟踪的路径是源计算机到目的地的一条路径,不能保证或认为数据报总遵循这个路径。如果我们的配置使用DNS,那么我们常常会从所产生的应答中得到城市、地址和常见通信公司的名字。Tracert是一个运行得比较慢的命令(如果我们指定的目标地址比较远),每个路由器我们大约需要给它15秒钟。
  Tracert的使用很简单,只需要在tracert后面跟一个IP地址或URL,Tracert会进行相应的域名转换的。
  tracert 最常见的用法:
  tracert IP address [-d] 该命令返回到达 IP 地址所经过的路由器列表。通过使用 -d 选项,将更快地显示路由器路径,因为 tracert 不会尝试解析路径中路由器的名称。
  Tracert一般用来检测故障的位置,我们可以用tracert IP在哪个环节上出了问题,虽然还是没有确定是什么问题,但它已经告诉了我们问题所在的地方,我们也就可以很有把握的告诉别人----某某地方出了问题。
  2、Route 的使用技巧
  大多数主机一般都是驻留在只连接一台路由器的网段上。由于只有一台路由器,因此不存在使用哪一台路由器将数据报发表到远程计算机上去的问题,该路由器的IP地址可作为该网段上所有计算机的缺省网关来输入。
  但是,当网络上拥有两个或多个路由器时,我们就不一定想只依赖缺省网关了。实际上我们可能想让我们的某些远程IP地址通过某个特定的路由器来传递,而其他的远程IP则通过另一个路由器来传递。
  在这种情况下,我们需要相应的路由信息,这些信息储存在路由表中,每个主机和每个路由器都配有自己独一无二的路由表。大多数路由器使用专门的路由协议来交换和动态更新路由器之间的路由表。但在有些情况下,必须人工将项目添加到路由器和主机上的路由表中。Route就是用来显示、人工添加和修改路由表项目的。
  一般使用选项:
  ·route print
  本命令用于显示路由表中的当前项目,在单路由器网段上的输出;由于用IP地址配置了网卡,因此所有的这些项目都是自动添加的。
  ·route add
  使用本命令,可以将信路由项目添加给路由表。例如,如果要设定一个到目的网络209.98.32.33的路由,其间要经过5个路由器网段,首先要经过本地网络上的一个路由器,器IP为202.96.123.5,子网掩码为255.255.255.224,那么我们应该输入以下命令:
  route add 209.98.32.33 mask 255.255.255.224 202.96.123.5 metric 5
  ·route change
  我们可以使用本命令来修改数据的传输路由,不过,我们不能使用本命令来改变数据的目的地。下面这个例子可以将数据的路由改到另一个路由器,它采用一条包含3个网段的更直的路径:
  route add 209.98.32.33 mask 255.255.255.224 202.96.123.250 metric 3
  ·route delete
  使用本命令可以从路由表中删除路由。例如:route delete 209.98.32.33
  3、NBTStat的使用技巧
  使用 nbtstat 命令释放和刷新 NetBIOS 名称。NBTStat(TCP/IP上的NetBIOS统计数据)实用程序用于提供关于关于NetBIOS的统计数据。运用NetBIOS,我们可以查看本地计算机或远程计算机上的NetBIOS名字表格。
  常用选项:
  ·nbtstat –n
  显示寄存在本地的名字和服务程序。
  ·nbtstat –c
  本命令用于显示NetBIOS名字高速缓存的内容。NetBIOS名字高速缓存用于寸放与本计算机最近进行通信的其他计算机的NetBIOS名字和IP地址对。
  ·nbtstat –r
  本命令用于清除和重新加载NetBIOS名字高速缓存。
  ·nbtstat -a IP
  通过IP显示另一台计算机的物理地址和名字列表,我们所显示的内容就像对方计算机自己运行nbtstat -n一样。
  ·nbtstat -s IP
  显示实用其IP地址的另一台计算机的NetBIOS连接表。
  例如我们在命令提示符下,键入:nbtstat –RR 释放和刷新过程的进度以命令行输出的形式显示。该信息表明当前注册在该计算机的 WINS 中的所有本地 NetBIOS 名称是否已经使用 WINS 服务器释放和续订了注册

来自 http://wenku.baidu.com/view/be2f4747336c1eb91a375d67.html

普通分类: