2017-01-16 12 views
0

LinuxマシンのC++ツールを書いてUDP(OSC)パケットを受信し、直ちに返信します(それだけです)。しかし、それはいくつかのパケットがドロップされているようです。私のLinuxに別のマシンから100パケットを送信すると、たいていは64パケットだけが返されます。私はtcpdumpで着信パケットを見てきました。それは私に次のように伝えます:LinuxがUDPパケットを落とす

64 packets captured 
64 packets received by filter 
0 packets dropped by kernel 

だからどこですか?

+0

*すべての*ホストがUDPデータグラムを削除できます。 – EJP

+0

はい。しかし何も落とさなかった。少なくとも出力はそれを言います。 –

答えて

0

UDPは、パケットが送信先に到着することを保証するものではありません。欠落したパケットはあなたのマシンにまったく到達していない可能性があり、したがって着信パケットには現れません。 UDPは、いくつかのパケットを失うことは本当に問題ではないので、ストリームやゲームに主に使用されます。

すべてのパケットが確実に届くようにするには、TCPを使用する必要があります。

これが役立つかどうか教えてください。

+0

はい。しかし、どうしていつもちょうど64個のPaketsしか到着しないのですか?これはネットワークバッファの問題の一種と思われますか? –

+0

私は悪いですが、私はそれが常に同じ数のパケットであるとは見ませんでした。私は、送信されたパケットのタイムアウト/有効性からバッファの問題まで、いくつかのことがあると思います。 – Azeros

関連する問題