我有一个需要大量无线漫游的用例,而且我遇到了一个问题,在漫游大约1秒后会出现延迟发送数据包的问题,但是我几乎可以立即接收数据包(<100 is )。
查看netlink流量,我可以看到请求者正在将接口设置为IF_OPER_UP,并且它正在按预期返回IF_UP。查看一个tcpdump,我可以看到在漫游后的发送流量存在空白,并且发送流量在ARP请求/响应之后恢复。我对linux网络不太熟悉,所以我有点不知道是什么原因造成了这种情况。我认为ARP缓存正在被清除,但我不知道这是否是一个原因或症状,甚至是在漫游中会发生什么。
我尝试过多个不同的内核版本,包括iwd和wpa_supplicant,以及ubuntu和kali,结果都是一样的。
最后,这似乎是从运行4.15内核的ubuntu16.04升级之后才刚刚开始的。
有谁知道我可以在什么地方看,缩小范围,发生了什么?还有其他人看到这个吗?
发布于 2022-01-11 11:32:19
为了解决这个问题,问题是在内核4.20中引入了一个更改,它总是清除漫游上的ARP缓存,从而导致~1秒发送延迟。
iwd请求者在这里添加了一个补丁来使用这个新选项,这是修复程序的另一半:https://git.kernel.org/pub/scm/network/wireless/iwd.git/commit/?id=873924a027ad2166436b8117a6bb84ce980ad7f3。
commit 873924a027ad2166436b8117a6bb84ce980ad7f3
Author: James Prestwood <prestwoj@gmail.com>
Date: Wed Nov 3 15:15:01 2021 -0700
station: set evict_nocarrier sysfs option during roaming
If the kernel supports evict_nocarrier set this during the roam
to prevent packet delays post roam.https://unix.stackexchange.com/questions/666620
复制相似问题