wifi漫游后发送延迟

wifi漫游后发送延迟

我有一个需要大量无线漫游的用例,并且遇到了一个问题,即漫游大约 1 秒后发送数据包有延迟,但我几乎可以立即接收数据包(<100 毫秒)。

查看 netlink 流量,我可以看到请求者正在将接口设置为 IF_OPER_UP,并且它按预期返回 IF_UP。查看 tcpdump,我可以看到漫游后发送流量存在间隙,并且发送流量在 ARP 请求/响应后恢复。我对 Linux 网络不太熟悉,所以我有点迷失可能导致这种情况的原因。我认为 ARP 缓存正在被清除,但我不知道这是原因还是症状,甚至不知道漫游中会发生什么。

我尝试了多个不同的内核版本,iwd 和 wpa_supplicant,以及 ubuntu 和 kali,都得到了相同的结果。

最后,这似乎是从运行 4.15 内核的 ubuntu 16.04 升级后才开始的。

有谁知道我接下来可以在哪里查看以缩小正在发生的事情的范围?还有其他人看到这个吗?

答案1

为了解决这个问题,问题是在内核 4.20 中引入了一项更改,该更改始终会清除漫游时的 ARP 缓存,从而导致大约 1 秒的发送延迟。

除了这个答案中的详细信息 https://serverfault.com/questions/1083698/linux-what-c​​auses-static-arp-entries-to-flush-on-link-down/1083762#1083762

iwd 请求者在此处添加了一个补丁来使用这个新选项,这是修复的另一半: https://git.kernel.org/pub/scm/network/wireless/iwd.git/commit/?id=873924a027ad2166436b8117a6bb84ce980ad7f3

commit 873924a027ad2166436b8117a6bb84ce980ad7f3
Author: James Prestwood <[email protected]>
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.

相关内容