Linux操作系统:UDP数据包被保存在缓冲区或当网络不可达下降了吗? 我怎么能证明呢?(Lin

2019-10-17 00:35发布

我有一位客户,不断发送UDP数据包通过路由器Wifi连接到主机。 我想知道发生什么事到的数据包,如果我突然关闭路由器。 将UDP数据包被丢弃或保持在一定的缓冲作用?

另外,我想知道发生什么事到的数据包,如果我打开后面的WiFi一会儿我把它关掉了。

我需要证明什么工具在linux下的Android包是否被丢弃(并在该层),或保持在一定的缓冲(访问缓冲区,以验证它是我发送的数据包)?

Answer 1:

据UDP的性质,数据包将开始下降(丢失)如果网络不可达。

而一旦网络重新建立,数据包将开始抵达目的地的最佳努力(而不是失去的)。

为了测试这种行为,你可以简单地创建一个客户-服务器模式的应用程序(无论是在Android中,.NET或任何语言你喜欢的),其中客户端发送一个UDP数据包(包括序列号和日期戳)发送到服务器和服务器审核到达的/丢失的数据包。 在传输过程中,你可以将网络下来,以观察行为和测试所需的案例(S)。

一旦网络出现故障,您的客户端应用程序将继续发送数据包,而不知道网络的可用性,同时所有的刷新数据包就会丢失。 一旦网络恢复,传输将恢复过。



文章来源: Linux : Udp packet is kept in buffer or dropped when network is unreachable? how can i prove it?