Tuesday, November 25, 2008

[Linux]几个常用的网络相关的工具

  • ttcp
    测量两台主机之间的tcp/udp throughput
    实例:
    第一步1: 在receiver 主机上打开ttcp, 进入接收模式
    [receiver:~]$ttcp -r -v -s
    ttcp-r: buflen=8192, nbuf=2048, align=16384/0, port=5001  tcp
    ttcp-r: socket
    第二步2: 在sender端向receiver发送文件测试传输速度
    [sender:~]$ttcp -t receiver < testfile
    ttcp-t: buflen=8192, nbuf=2048, align=16384/0, port=5001 tcp -> receiver
    ttcp-t: socket
    ttcp-t: connect
    ttcp-t: 20197 bytes in 0.03 real seconds = 740.32 KB/sec +++
    ttcp-t: 3 I/O calls, msec/call = 9.09, calls/sec = 112.60
    ttcp-t: 0.0user 0.0sys 0:00real 0% 0i+0d 0maxrss 0+2pf 4+1csw
  • iperf
    iperf也是测量网络throughput的常用工具之一. 用法和ttcp类似.
  • iptables
    iptables是Linux下的软件firewall
    https://help.ubuntu.com/community/IptablesHowTo
    查看当前iptables的设置
    $sudo iptables -L
  • ipfw
    ipfw其实是FreeBSD底下的软件firewall。可以非常方便的用来traffic shaping.
    实例:
    • 如下命令添加一个virtual pipe用于所有inbound的ip traffic。并且设定这个pipe bandwidth为50Kbit/s buffer size为50
      $sudo ipfw add pipe 1 ip from any to any in
      $sudo ipfw pipe 1 config bw 50Kbit/s queue 50
      
    • 如下的命令模拟ADSL:
      sudo ipfw add pipe 3 ip from any to any out
      sudo ipfw add pipe 4 ip from any to any in
      sudo ipfw pipe 3 config bw 128Kbit/s queue 10 delay 1000ms
      sudo ipfw pipe 4 config bw 640Kbit/s queue 30 delay 1000ms
      
    • ipfw除了使用pipe来模拟link,还可以使用queue来模拟队列。等我知道怎么用了再来写。
  • systat
    Freebsd下监视系统的命令,可以显示CPU、I/O、内存、虚拟内存、mbufs、磁盘IO、网络状态等信息等。
    用法:
    systat [-display] [refresh-interval]
    • display 为我们所要显示的信息项目,我们也可以在进入 systat 后通过输入“:display”变更显示项目。可选项:
      pigs 显示目前系统中使用 CPU 最多的行程名称。如果所有行程的 CPU 使用量未满 100%,则多出来的部份显示为 IDLE。icmp 统计目前 ICMP 封包的进出情形。icmp6 显示 IPv6 的 ICMP 封包进出情形。ip 显示 IP 层的封包统计及 UDP 封包信息。ip6 和 IP 一样,但只显示 IPv6 的封包。tcp 显示 TCP 的封包统计。iostat 显示 I/O 状况统计,并分类为各种模式显示。swap 显示目前各个储存空间上的虚拟内存的使用情形。mbufs 显示 mbufs 被使用的状态。vmstat 这是我们最常用的显示模式,它显示了最多的信息,包含 I/O、虚拟内存、mbufs、网络等信息。netstat 显示网络的使用情形。ifstat 显示各个网络适配卡的使用情形。
    • refresh-interval 参数是需要多长时间采样一次系统数据输出到屏幕,单位是秒。
    实例:
    systat -v 1
    我们打开v选项(vmstat的缩写),每隔1s更新一次。
  • netstat 可以用来查看当前网络所有链接, 也可以用来查看路由信息,比如
    $ netstat -nr
    Routing tables
    
    Internet:
    Destination        Gateway            Flags        Refs      Use   Netif Expire
    default            10.1.10.1          UGSc           23       36     en0
    10.1.10/24         link#4             UCS             6        0     en0
    10.1.10.1          0:22:2d:7b:12:fa   UHLWIir        24       22     en0    134
    10.1.10.10         80:ea:96:e4:f6:93  UHLWI           0        7     en0   1190
    10.1.10.11         d8:d1:cb:91:6d:aa  UHLWI           0        0     en0    691
    10.1.10.15         8c:2d:aa:5a:a7:1f  UHLWI           0       58     en0    733

1 comment:

Anonymous said...

Certainly. It was and with me. Let's discuss this question. Here or in PM.