我为我的linux机器编写了一个C ++工具,它接收UDP(OSC)数据包并立即将它们发回(这是它唯一能做的事情)。但似乎有一些丢弃的数据包。当我向我的linux(从另一台机器)发送100个数据包时,大多数只返回64个数据包。我用tcpdump查看了传入的数据包。它告诉我以下内容:
64 packets captured
64 packets received by filter
0 packets dropped by kernel
那么他们在哪里?
答案 0 :(得分:0)
根据设计,UDP不保证数据包到达目的地。丢失的数据包可能根本没有到达您的计算机,因此不会出现在传入的数据包中。 UDP主要用于流和游戏,因为丢失一些数据包并不重要。
如果要确保所有数据包都到达,则应使用TCP。
如果有帮助,请告诉我。