分段UDP丢包?

时间:2018-01-13 20:05:16

标签: udp tcpdump packet-loss ip-fragmentation

我们有一个应用程序正在进行udp广播。 数据包大小通常高于mtu,因此它们将被分段。

tcpdump表示所有数据包都已收到,但应用程序并未全部收到这些数据包。

如果mtu设置得更大,那么整个事情根本就不会发生,所以没有碎片。 (这是我们现在的解决方法 - 但德国人不喜欢解决方法)

所以看起来碎片就是问题。

但我无法理解数据包丢失的原因和位置。

应用程序开发人员说,他们可以看到数据包丢失,正好在他们正在接收它们的套接字上。因此他们的应用程序不会丢失数据包。

我的问题是:

linux上的tcpdump监控设备在哪里?

那里的数据包是否已经重新组装,或者是否稍后完成?

如何进一步调试此问题?

1 个答案:

答案 0 :(得分:0)

tcpdump使用libpcap,它很早就在Linux网络堆栈中获取数据包的副本。 Linux网络堆栈中的IP片段重组将在libpcap之后发生(因此在tcpdump之后)。使用Wireshark保存pcap和视图;它将具有更好的分析功能,并将帮助您找到任何缺失的IP片段(如果有的话)。