パケット損失とパケット重複の問題の違いを調べようとしています。「パケットの複製」とは何か知っている人はいますか?TCPで損失が検出されたときにパケットを再送信するのと同じですか?
2 に答える
いいえ。TCP
「パケット」の配信は信頼できます(この場合、ストリーム指向のプロトコルであるため、データという用語の方が適していると思います)。
パケット損失と重複は、のように方向付けられた信頼性の低いプロトコルデータグラムに関連する問題ですUDP
。UDPでは、データグラムを送信すると、これが重複して到着したり、順序が狂ったり、まったく到着しなかったりする可能性があります。
TCPで損失が検出されたときにパケットを再送信するのと同じですか?
はいといいえ。TCPが内部でackメカニズムを使用して欠落データを検出し、それらを自動的に再送信するとします。したがって、欠落しているデータはユーザーに透過的であり、プロトコル自体によって処理されます。
「パケットの複製」とは何か知っている人はいますか?
特定の状況ではIP
、宛先へのパスに沿ってパケットが重複する場合があります。たとえば、ルーターは2つの異なるネットワークインターフェイスを介して着信トラフィックを転送することを決定できます。この場合、両方のIPパケットが宛先に到達する可能性があります。
TCP
重複IP
パケットの問題を処理するので、それらを気にする必要はありません。
UDP
それらを処理しません。データグラムを受け取ったときに、以前に同じデータグラムを受け取ったことがないという保証はありません。あなたはそれをチェックする必要があります。
パケットの重複とは、ペイロード(送信されるデータ)の重複、またはペイロードとヘッダーの正確な重複の2つです。TCPは、ACK(パケットが正常に到着したことを受信者から確認)を受信していないデータの再送信を試みます。ただし、これは有名な「二人の将軍」問題につながり、データが実際に到着したことを確認できない場合や、ACKパケットが失われたためにACKを取得できなかった場合に発生します。受信者はパケットを取得し、ACKで応答した可能性がありますが、ACKは失われました。この場合、送信者はパケットが受信されなかったと想定し、同じペイロードが複製された別のパケットを送信します。この場合、TCPなどのプロトコルは、データを複数回送信する処理を処理する必要があります。この場合、答えは「はい」です。同じものです。
2つ目の重複パケットは、実際の100%重複パケット(ペイロードとヘッダー)を意味する可能性があります。これは、ソフトウェア、ハードウェア、またはルーティングの問題や設定ミスが原因で発生する可能性があります。この場合、いいえ、パケット損失の検出からペイロードが重複している新しいパケットをTCPが意図的に送信するのとは多少異なる問題です。この場合、送信者は1つのパケットのみを送信しましたが、途中でルーターまたはハードウェアインターフェイスによって複製されました。