Linux:当网络无法访问时,Udp数据包是保留在缓冲区还是丢弃?我怎么能证明这一点?

时间:2012-07-16 08:16:07

标签: android linux udp

我有一个客户端通过路由器通过Wifi连接不断向主机发送UDP数据包。如果我突然关闭路由器,我想知道数据包会发生什么。 udp数据包是丢弃还是保存在某个缓冲区中?

另外,我想知道如果我在关闭后关闭wifi片段会对数据包发生什么。

我需要android linux中的哪些工具来证明数据包是丢弃的(以及在哪一层)或保存在某个缓冲区中(访问缓冲区以验证它是我发送的数据包)?

1 个答案:

答案 0 :(得分:1)

根据UDP的性质,如果网络无法访问,数据包将开始丢弃(丢失)。

一旦重新建立网络,数据包将尽最大努力(但不会丢失)到达目的地。

要测试此行为,您可以创建一个客户端 - 服务器模型应用程序(在Android,.NET或您喜欢的任何语言中),其中客户端开始发送UDP数据包(包括序列号和日期戳)到服务器和服务器审核到达/丢失的数据包。在传输过程中,您可以放下网络以观察行为并测试您所需的案例。

网络关闭后,您的客户端应用程序将继续发送数据包而不知道网络不可用,同时所有刷新的数据包都将丢失。一旦网络恢复,传输也将恢复。