网卡丢包原因

linux系统pakcet接收的过程过程简单概括为

  1. 网卡收到包以后通过DMA传至ring buffer 

  2. 网卡触发硬件中断,中断处理函数调用包接受软中断(softirq) 

  3. Softirq检测各cpu的网卡poll list,并轮询相应网卡的ring buffer 

  4. 包从相应packet desciptor 中移到更上一层处理,并把该packet descriptor重置

  5. 真实的丢包就是说这三个阶段的任一阶段收到了包,但因为某些原因把它丢弃了

发生真实丢包的原因

当ring buffer满了并且kernel softirq并不能及时处理后续的进来的包,那就会导致丢包。可以通过ethtool -G eth1 rx number增大receive buffer的值可以缓解丢包,同理也可以设置transfer buffer。

当socket backlog满了导致丢包,可以设置/proc/sys/net/ipv4/tcp_max_syn_backlog来增加tcp syn队列的长度。

真实丢包判断

可以通过ethtool、ifconfig、netstat命令查看丢包统计,也可以直接查看/proc/net/dev、/sys/class/net/dev_name查看,如ifconfig eth0

第三行,第四行表示收包和发包的情况,errors,dropped,overruns,frame不为0即表示发生了真正的丢包。

RX errors: 表示总的收包的错误数量,这包括 too-long-frames 错误,Ring Buffer 溢出错误,crc 校验错误,帧同步错误,fifo overruns 以及 missed pkg 等等。

RX dropped: 表示数据包已经进入了 Ring Buffer,但是由于内存不够等系统原因,导致在拷贝到内存的过程中被丢弃。

RX overruns: 表示了 fifo 的 overruns,这是由于 Ring Buffer(aka Driver Queue) 传输的 IO 大于 kernel 能够处理的 IO 导致的,而 Ring Buffer 则是指在发起 IRQ 请求之前的那块 buffer。很明显,overruns 的增大意味着数据包没到 Ring Buffer 就被网卡物理层给丢弃了,而 CPU 无法即使的处理中断是造成 Ring Buffer 满的原因之一,上面那台有问题的机器就是因为 interruprs 分布的不均匀(都压在 core0),没有做 affinity 而造成的丢包

RX frame: 表示 misaligned 的 frames。

对于 TX 的来说,出现上述 counter 增大的原因主要包括 aborted transmission, errors due to carrirer, fifo error, heartbeat erros 以及 windown error,而 collisions 则表示由于 CSMA/CD 造成的传输中断。

逻辑意义上的丢包

相信大家多少都了解tcp协议栈,tcp协议栈中有超时重传算法,此处的逻辑丢包指的是接收方没有在发出ack后收到正确序号范围的packet

逻辑意义上的丢包原因及判断方法

原因很可能是发生了网络问题,具体包括如网络拥塞、网线松动、网络不稳定及其他线路故障,也有可能是网络流量突增,但是我们做监控的不能去实时的拿着线路检测仪去检查线路,当前拟定使用如下指标,来源/proc/net/netstat:

TcpExt.TCPLoss,tcp协议栈丢失数据包而进行恢复的次数,此时falcon-agent所在主机为接收方

TcpExt.TCPTimeouts tcp数据在指定时间内没有受到应答ack而超时的次数,此时falcon-agent所在主机为发送方

TcpExt.TCPLossFailures,tcp协议栈丢失数据包进行恢复失败的次数

TcpExt.TcpFastRetrans,tcp快速重传的次数

### AX201网卡丢包解决方案 对于AX201网卡遇到的丢包问题,可以从多个角度进行排查和优化。以下是详细的分析与建议: #### 一、驱动程序更新 确保使用的操作系统已经安装了最新版本的Intel Wi-Fi适配器驱动程序。旧版驱动可能存在兼容性和性能上的缺陷,导致数据传输不稳定。 ```bash sudo apt update && sudo apt install linux-firmware intel-wifi-connection-driver ``` 上述命令适用于Ubuntu Linux系统,用于获取最新的固件和支持文件[^3]。 #### 二、调整无线设置参数 有时默认的Wi-Fi连接参数并不适合所有环境条件。可以通过修改某些高级选项来改善稳定性。例如降低发送功率以减少干扰;关闭省电模式让设备始终处于最佳工作状态。 #### 三、检查物理层因素 排除周围环境中可能存在的信号源冲突情况,比如微波炉、蓝牙设备或者其他无线电发射装置的影响。另外也要注意天线摆放位置是否合理,保持良好的视线距离有助于增强接收质量。 #### 四、BIOS/UEFI配置审查 部分主板制造商会在其产品手册中提到有关于如何针对特定硬件组件(如内置无线网卡)做出最优设定指导说明。查阅相关文档并按照推荐的方式操作可能会有所帮助。 #### 五、考虑更换更稳定的频段或信道 如果当前所在的2.4GHz频段较为拥挤,则尝试切换到较少占用率的5GHz频段,并选取一个干净无干扰的工作频道来进行测试对比效果变化。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值