网络丢包的含义
网络丢包,是指在网络数据的收发过程中,由于种种原因,数据包还没传输到应用程序中,就被丢弃了。
衡量网络丢包情况的重要指标之一就是网络丢包率。
可能造成网络丢包的原因
根据ISO网络7层协议来进行网络丢包分析,每一层的错误都可能产生网络丢包,拿具体的示例来说明,整个丢包可能产生的原因如下图总结:
上图展示了2个进程之间通讯时的整个数据流程,和在各个协议栈可能发生错误的原因。
协议栈 | 使用工具 | 观察点 |
---|---|---|
数据链路层 | ethtool/netstat/tc | RX-OK、RX-ERR、RX-DRP、RX-OVR、tc规则 |
网络层和传输层 | netstat -s | 错误数、丢包数以及重传数 incoming packets discarded input ICMP message failed ICMP messages failed failed connection attempts segments retransmitted bad segments received resets received for embryonic SYN_RECV sockets TCPTimeouts TCPSynRetrans |
iptables | 直接查询 DROP 和 REJECT 等规则的统计信息,看看是否为 0。如果统计值不是 0 ,再把相关的规则拎出来进行分析 | |
tcpdump | 查看抓包过程 |