我有一个客户端通过路由器通过 Wifi 连接不断向主机发送 UDP 数据包。如果我突然关闭路由器,我想知道数据包会发生什么。udp 数据包会被丢弃还是保存在某个缓冲区中?
另外,我想知道如果我在关闭 wifi 后立即重新打开 wifi,数据包会发生什么情况。
我需要android linux中的哪些工具来证明数据包是否被丢弃(以及在哪一层)或保存在某个缓冲区(访问缓冲区以验证它是我发送的数据包)?
根据 UDP 的性质,如果网络不可达,数据包将开始丢弃(丢失)。
一旦网络重新建立,数据包将开始尽最大努力到达目的地(但不是丢失的数据包)。
要测试这种行为,您可以简单地创建一个客户端-服务器模型应用程序(在 Android、.NET 或任何您喜欢的语言中),其中客户端开始向服务器发送 UDP 数据包(包括序列号和日期戳)并且服务器审核到达/丢失的数据包。在传输过程中,您可以关闭网络以观察行为并测试您需要的情况。
一旦网络关闭,您的客户端应用程序将继续发送数据包而不知道网络不可用,同时所有刷新的数据包都将丢失。一旦网络恢复,传输也将恢复。