gpt4 book ai didi

linux - 通过 802.11n 的 UDP 单播 - L2 积极 ACK 对 Linux 套接字发送缓冲区的影响

转载 作者:太空宇宙 更新时间:2023-11-04 13:00:57 28 4
gpt4 key购买 nike

谁能解释当应用程序通过 802.11 WiFi 网络发送 UDP 单播数据报时它是如何工作的?假设非阻塞 UDP 套接字。具体而言,假设 802.11n 或 802.11ac 以及相当新的 Linux 内核(Android Lollipop 或 Debian 稳定版)。具体来说,如果发送方网卡没有收到任何发送 MPDU 的肯定 ACK,send() 调用返回 -1 并且内核中的套接字发送队列是否会在 netstat 中显示为非空? NIC会反复重发相同的MPDU吗?

如果这里不适合提问,请指出一个好的引用资料或其他 StackExchange 站点。

最佳答案

据我了解。 Wifi(第 2 层)不会关心 UDP/TCP 协议(protocol),对于 wifi 硬件,它只是一个框架,

剧组会这样......

帧发送 -> 无确认 -> 重试 -> 无确认 -> 重试 -> 无确认 -> 重试 ...

重试几次后,wifi 硬件将丢弃此帧并发送 NIC 缓冲区中的下一帧。 wifi 驱动程序不应始终保留此帧,因为丢帧或丢失在 wifi 中经常发生。

那么我们现在来谈谈UDP网络协议(protocol),因为它是一个非阻塞的UDP套接字,UDP不会关心任何错误,它只是继续发送发送发送....

Android手机有一个功能——“miracast”,它也使用UDP作为视频流协议(protocol),使用wifi传输数据。也许你可以检查一下这个函数是如何工作的。

关于linux - 通过 802.11n 的 UDP 单播 - L2 积极 ACK 对 Linux 套接字发送缓冲区的影响,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33896969/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com