0
私はICMP/UDP
パケットを聞いているソケットを得ました。ソケットがパケットを受信し、このパケットの処理に時間がかかりすぎる場合は(socket.receive()
のコード)、現在はsocket.receive()
の部分ではないので、次のパケットが欠落する可能性がありますか?ソケットが現在受信していないときにパケットを見逃すことはできますか?
私はICMP/UDP
パケットを聞いているソケットを得ました。ソケットがパケットを受信し、このパケットの処理に時間がかかりすぎる場合は(socket.receive()
のコード)、現在はsocket.receive()
の部分ではないので、次のパケットが欠落する可能性がありますか?ソケットが現在受信していないときにパケットを見逃すことはできますか?
厳密はい、話します。この実装は、自由に任意の場所でパケットを破棄することができます。しかし、バッファリングの合理的な量を提供していない場合は、実装がかなり不十分であり、Linuxはそうではありません。
はい。トリビュアは、UDPバッファがいっぱいになり、スタックがパケットを廃棄するときです。損失の量は、バッファサイズと必要な深さ(パケットを失わないため)によって決まります。 WindowsおよびLinuxでは、この設定を構成できます。 – user2864740