学习啦 > 学习电脑 > 网络知识 > 局域网知识 >

Linux系统下使用工具调试网络性能的方法有哪些

时间: 加城1195 分享

  Linux系统网络性能可以用工具来测试,需要用到一些辅助命令,方法也有几种,可能很多用户不太清楚具体过程。本文就来分别介绍一下Linux系统下使用这三种工具调试网络性能的方法。

  Linux系统下使用工具调试网络性能的方法

  一:route

  在配置网络时,要为机器指定接收数据包时该包要经过的路径。在Linux系统中,提供一个命令route,这个命令可以为ifconfig命令配置的网卡设置静态路由。这种设置工作通常在/etc/rc.d/rc.inet1中引入,在系统引导时进行。

  我们通过几个例子来说明如何使用route命令:

  route add -net 127.0.0.0

  这个命令将向路由表中添加一个指定地址或者网络的路由。注意此时网络为A类地址,掩码被设置为255.0.0.0,这个新添加的条目被连接到lo设备上。

  route add -net xxx.xxx.xxx.xxx netmask 255.255.255.0 dev eth0

  这个命令为IP地址为xxx.xxx.xxx.xxx的主机增加一个路由,它的网络掩码被设置为255.255.255.0。

  route del -net xxx.xxx.xxx.xxx

  此命令将删除xxx.xxx.xxx.xxx这个网络的路由。

  使用route命令还可以很方便地对整个网络的路由信息进行管理,其输出结果是网络的路由表。如下所示:

  -----------------------------------------------------------------

  [root@lee /root]#route

  Kernel IP routing table

  Destination Gateway Genmask Flags Metric Ref Use Iface

  10.10.8.224 * 255.255.255.255 UH 0 0 0 eth0

  10.10.8.0 * 255.255.255.0 U 0 0 0 eth0

  127.0.0.0 * 255.0.0.0 U 0 0 0 lo

  default dgc8.njupt.edu 0.0.0.0 UG 0 0 0 eth0

  default dgc8.njupt.edu 0.0.0.0 UG 1 0 0 eth0

  [root@lee /root]#

  -----------------------------------------------------------------

  输出结果中各个字段的含义是:

  · Destination表示路由的目标IP地址。

  · Gateway表示网关使用的主机名或者是IP地址。上面输出的“*”表示没有网关。

  · Genmask表示路由的网络掩码。在把它与路由的目标地址进行比较之前,内核通过Genmask和数据包的IP地址进行按位“与”操作来设置路由。

  · Flags是表示路由的标志。可用的标志及其意义是:U表示路由在启动,H表示target是一台主机,G表示使用网关,R表示对动态路由进行复位设置;D表示动态安装路由,M表示修改路由,!表示拒绝路由。

  · Metric表示路由的单位开销量。

  · Ref表示依赖本路由现状的其它路由数目。

  · Use表示路由表条目被使用的数目。

  · Iface表示路由所发送的包的目的网络。

  通过查看这些输出信息,我们就可以方便地管理网络的路由表了。

  二:netstat

  netstat命令是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。在计算机上执行netstat后,其输出结果如下所示:

  -----------------------------------------------------------------

  [root@lee /root]#netstat

  Active Internet connections (w/o servers)

  Proto Recv-Q Send-Q Local Address Foreign Address State

  Active UNIX domain sockets (w/o servers)

  Proto RefCnt Flags Types State I-Node Path

  Unix 5 [ ] DGRAM 460 /dev/log

  Unix 0 [ ] STREAM CONNECTED 173 @00000014

  Unix 0 [ ] DGRAM 662

  Unix 0 [ ] DGRAM 631

  Unix 0 [ ] DGRAM 544

  Unix 0 [ ] DGRAM 484

  Unix 0 [ ] DGRAM 470

  [root@lee /root]#

  -----------------------------------------------------------------

  从整体上看,netstat的输出结果可以分为两个部分:第一部分:是Active Internet connections,称为有源TCP连接,在上面的输出结果中,这一部分没有内容,表示暂时还没有TCP连接。第二部分:是Active UNIX domain sockets,称为有源Unix域套接口。输出结果显示的是Unix域套接口的连接情况:

  · Proto显示连接使用的协议。

  · RefCnt表示连接到本套接口上的进程号。

  · Types显示套接口的类型。

  · State显示套接口当前的状态。

  · Path表示连接到套接口的其它进程使用的路径名。

  可以用netstat -a来查看所有套接字的状态,这在您调试网络程序的时候是非常有用的。netstat -r将显示路由表的内容,一般还要同时指定“-n”选项,这样可以得到数字格式的地址,也可显示默认路由器的IP地址。使用netstat -i则将显示所有的网络接口信息。使用netstat还可以获得当前的网络状态以及网络的拓扑结构,这在实际中是非常有用的。

  三:tcpdump

  tcpdump命令用于监视TCP/IP连接并直接读取数据链路层的数据包头。您可以指定哪些数据包被监视、哪些控制要显示格式。例如我们要监视所有Ethernet上来往的通信,执行下述命令:

  tcpdump -i eth0

  即使是在一个相对平静的网络上,也有很多的通信,所以我们可能只需要得到我们感兴趣的那些数据包的信息。在一般情况下,TCP/IP栈只为本地主机接收入站的数据包绑定同时忽略网络上的其它计算机编址(除非您使用的是一台路由器)。当运行tcpdump命令时,它会将TCP/IP栈设置为 promiscuous模式。该模式可接收所有的数据包并使其有效显示。如果我们关心的只是我们本地主机的通信情况,一种方法是使用“-p”参数禁止 promiscuous模式,还有一种方法就是指定主机名:

  tcpdump -i eth0 host hostname

  此时,系统将只对名为hostname的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。下面的命令可以读取主机hostname发送的所有数据:

  tcpdump -i eth0 src host hostname

  下面的命令可以监视所有送到主机hostname的数据包:

  tcpdump -i eth0 dst host hostname

  我们还可以监视通过指定网关的数据包:

  tcpdump -i eth0 gateway Gatewayname

  如果你还想监视编址到指定端口的TCP或UDP数据包,那么执行以下命令:

  tcpdump -i eth0 host hostname and port 80

  该命令将显示从每个数据包传出的头和来自主机hostname对端口80的编址。端口80是系统默认的HTTP服务端口号。如果我们只需要列出送到80端口的数据包,用dst port;如果我们只希望看到返回80端口的数据包,用src port。

  补充:常见网络故障解决方法

  ip地址冲突:ip地址冲突是局域网中经常出现的问题,有的用户可能重做系统或其他原因丢失自己的IP地址,在重新写IP的时候和其他人的IP地址一样导致ip地址出错,此时电脑右下角就会有个提示框提示你IP地址已经有人用。部门网管应该统计好部门人员的IP地址,当出现问题时可有资料可循,避免IP地址冲突。

  计算机网卡故障,一般的主机网卡都带有网卡指示灯,网卡灯有两种类型,一种是只有单灯,一种是双灯。一般来说,单灯是绿色,而双灯一个是绿色,一个是橙色(1000M网络,如黄色则是100MM网络)。单灯显示的意思是,绿色灯亮表示网线物理连接正常。是常亮状态,在有数据交换时单灯情况下绿色灯会明暗闪烁。双灯情况下,绿色灯亮同样表示网线物理连接正常,是常亮状态,在有数据交换时橙色或黄色灯闪烁,而绿灯不变。查看网卡灯显示是否正常,可以判断网卡的好坏。拔掉网线网卡灯还显示正常,网卡出故障需要更换。

  网线有问题,如果网线在几台计算机上连接无反映,换根网线后正常,即可判断网线出了问题。网线一半问题有水晶头生锈造成短路,网线中间出现断路,水晶头没压好出现问题等。这时需要测线仪来检查网线。

  测线仪使用方法,将一根网线两头分别差入测线仪的网线接口,查看对应各灯依次从1至8或8至1闪亮,再闪亮一次或两次某一灯(即为该网线所在主机的路数),循环不止。

  如果遇到整个网络出现问题,需要检查交换机是否出现问题,到交换机所在机房检查交换机是否有电,如果有电则检查连接交换机的trunk口灯是否正常,如果不正常找到上联交换机检查是否正常。有的交换机trunk口连接收发器,检查收发器是否正常。

  相关阅读:计算机网络分层及其功能

  物理层:利用传输介质为数链路层提供物理连接,实现比特流的透明传输。实现相邻计算机节点的比特流的透明传送,尽可能屏蔽掉传输介质和网路设备的差异。

  数据链路层:在物理层提供的比特流的基础上,通过差错控制、流量控制方法,将有差错的物理链路变为无差错的数据链路。

  网络层:数据链路层的数据在这一层被转化为数据报,经过路径选择、分组组合、顺序、进/出路由等控制,将数据从一个网络设备转发到另一个网络设备。

  传输层:向用户提供可靠的端到端的差错和流量控制,保证报文的正确传输。向高层屏蔽下层数据信息的传输,向用户透明的传送报文。

  会话层:组织和协调两个会话进程的通信,并对数据通信进行管理。

  表示层:处理用户信息的表示问题,如编码,数据格式转换,加密解密等

  应用层:完成网络中应用程序和操作系统之间的联系,建立和结束使用者之间的联系。

4009377