Sockets 如何接收每个状态的数据包丢失通知

Sockets 如何接收每个状态的数据包丢失通知,sockets,ubuntu,notifications,udp,wifi,Sockets,Ubuntu,Notifications,Udp,Wifi,我现在正在写一个程序,应该能够动态选择和切换802.11频道。多个线程可以使用共享的802.11无线电。目标是让线程在切换信道之前锁定无线电,然后发送一个数据包,最后,在数据包成功从802.11 NIC传输或永久丢弃后解锁无线电 但是我找不到一种方法来知道数据包是否已经从网卡传输出去,或者它仍然在主机的某个地方。我正在Ubuntu上用C语言编程。我使用UDP套接字发送数据包。从“sendto”成功返回并不表示数据包已成功从硬件传输出去 有人能指出一种从802.11接收数据包交付状态通知的方法吗?

我现在正在写一个程序,应该能够动态选择和切换802.11频道。多个线程可以使用共享的802.11无线电。目标是让线程在切换信道之前锁定无线电,然后发送一个数据包,最后,在数据包成功从802.11 NIC传输或永久丢弃后解锁无线电

但是我找不到一种方法来知道数据包是否已经从网卡传输出去,或者它仍然在主机的某个地方。我正在Ubuntu上用C语言编程。我使用UDP套接字发送数据包。从“sendto”成功返回并不表示数据包已成功从硬件传输出去

有人能指出一种从802.11接收数据包交付状态通知的方法吗?总而言之,我希望在数据包已从NIC传输出去用于广播模式时,以及在数据包已被另一端成功接收或已被永久丢弃用于单播模式时接收通知


任何答复都将不胜感激

我根本不确定这两种通知是否可行。NIC L1对UDP数据报一无所知。它只是从缓冲区中挤出字节。L1处的缓冲区可能与L2/3处的UDP数据报具有1:1的对应关系,也可能不具有1:1的对应关系。“当另一端成功接收到数据包时”也存在类似的问题,这样的通知必须由对等L2/3(UDP数据报不这样做)或对等应用程序发回。嗨,Martin,谢谢你的评论。我知道,如果启用802.11 ARQ,发送的每个帧都将得到确认。但我不知道上层协议是否可以访问链路层ACK?或者802.11 MAC是否可以通知上层特定数据包的交付状态?再次感谢你的帮助。