欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

linux系统网络分析

程序员文章站 2024-03-19 21:57:46
...

基本概念

带宽及吞吐量的区别

  • 带宽:对应网络类型的最大传输速率;
  • 吞吐量:当前两个网络端点之间的数据传输率。

TCP连接延时

连接延时是传输任何数据前建立网络连接所需要的时间,对于TCP连接延时就是TCP握手的时间。

首字节延时

称为第一个字节到达的时间,从连接建立到接收到第一个字节数据所需要的时间。

往返时间

是指网络包往返两个端点所需要的时间。

网络接口使用率和饱和度

网络接口使用率可以通过当前的吞吐量除以最大带宽计算。
饱和度是由于接口满负载,额外的队列、缓冲和阻塞的程度。

TCP监听积压队列使用

过多的TCP连接请求会超过进程当前的处理能力,积压队列会达到极限而丢弃客户机发出的SYN包。监听积压队列导致的丢包是一种衡量网络连接饱和度的方式。

分析方法

性能监控

吞吐量
连接数
错误,包括丢包数
TCP重传输
TCP乱序数据包

TCP分析

TCP发送/接收缓冲的使用
TCP积压队列的使用
积压队列满导致的内核丢包
阻塞窗口大小,包括零长度通知
TCP TIME-WAIT间隔中接收到的SYN

分析工具

netstat

  • 默认列出连接的套接字
  • -a列出所有套接字信息
  • -s网络栈统计信息
  • -i网络接口信息
  • -r列出路由表
# netstat -i
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
docker0   1500        0      0      0 0             0      0      0      0 BMU
eno16777  1500       76      0      0 0            56      0      0      0 BMRU
lo       65536       24      0      0 0            24      0      0      0 LRU
virbr0    1500        0      0      0 0             0      0      0      0 BMU

Iface 网络接口
RX- 接收
TX- 传输
OK传输成功的数据包
ERR错误数据包
DRP丢包
OVR超限
丢包和超限是网络饱和的指标
-c连续模式能和-i一并使用,每秒输出一些累积的计数器

netstat -s网络栈统计信息,但输出缺乏一致性且拼写有错误。

# netstat -s
Ip:
    107 total packets received
    0 forwarded
    0 incoming packets discarded
    107 incoming packets delivered
    58 requests sent out
    3006 dropped because of missing route
Icmp:
    6 ICMP messages received
    0 input ICMP message failed.
    ICMP input histogram:
        destination unreachable: 6
    6 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        destination unreachable: 6
IcmpMsg:
        InType3: 6
        OutType3: 6
Tcp:
    0 active connections openings
    0 passive connection openings
    0 failed connection attempts
    0 connection resets received
    0 connections established
    0 segments received
    0 segments send out
    0 segments retransmited
    0 bad segments received.
    0 resets sent
Udp:
    42 packets received
    6 packets to unknown port received.
    0 packet receive errors
    48 packets sent
    0 receive buffer errors
    0 send buffer errors
UdpLite:
TcpExt:
    0 packet headers predicted
IpExt:
    InMcastPkts: 42
    OutMcastPkts: 46
    InBcastPkts: 53
    InOctets: 23908
    OutOctets: 6684
    InMcastOctets: 5300
    OutMcastOctets: 5460
    InBcastOctets: 17384
    InNoECTPkts: 107

sar

系统活动报告工具sar

  • -n DEV:网络接口统计
  • -n EDEV:网络接口错误
  • -n IP :IP数据报统计
  • -n EIP :IP错误统计
  • -n TCP :TCP统计
  • -n ETCP: TCP错误统计
  • -n SOCK :套接字统计
# sar -n DEV 1
Linux 3.10.0-693.21.1.el7.x86_64 (master) 	2019年03月03日 	_x86_64_	(2 CPU)

07时36分39秒     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s
07时36分40秒 eno16777736      0.00      0.00      0.00      0.00      0.00      0.00      0.00
07时36分40秒        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00
07时36分40秒 virbr0-nic      0.00      0.00      0.00      0.00      0.00      0.00      0.00
07时36分40秒    virbr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00
07时36分40秒   docker0      0.00      0.00      0.00      0.00      0.00      0.00      0.00

统计信息名称,如rx表示接收,tx传输,i输入,seg段。

# sar -n TCP 1
Linux 3.10.0-693.21.1.el7.x86_64 (master) 	2019年03月03日 	_x86_64_	(2 CPU)

07时31分32秒  active/s passive/s    iseg/s    oseg/s
07时31分33秒      0.00      0.00      0.00      0.00
07时31分34秒      0.00      0.00      0.00      0.00
07时31分35秒      0.00      0.00      0.00      0.00
07时31分36秒      0.00      0.00      0.00      0.00
07时31分37秒      0.00      0.00      0.00      0.00
07时31分38秒      0.00      0.00      0.00      0.00
  • active/s: 新的主动的tcp连接
  • passive/s :新的被动的tcp连接
  • iseg/s:输入的段
  • oseg/s:输出的段

ipconfig

能手动设置网络接口,列出当前所有接口的配置,但centos7默认不再安装ipconfig。
可以尝试该命令安装:# yum -y install net-tools.x86_64

ip

能配置网络接口和路由,观测他们的状态和统计

# ip -s link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    RX: bytes  packets  errors  dropped overrun mcast   
    2808       24       0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 
    2808       24       0       0       0       0       
2: eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT qlen 1000
    link/ether 00:0c:29:f2:d6:b6 brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast   
    113416     434      0       0       0       0       
    TX: bytes  packets  errors  dropped carrier collsns 

ping

测试网络连通

traceroute

发出一系列数据包探测到一个主机当前的路由。

tcpdump

可以捕捉及检查网络数据包

wireshark

捕捉数据包和检查的图形化接口。可以从tcpdump等工具的转储文件导入数据包来分析。

其它工具

  • ss套接字统计信息
  • iftop按主机统计网络吞吐量
  • iperf是测试tcp和udp最大吞吐量的工具,必须同时在服务器和客户机上运行。
相关标签: linux