RFC793を調べているうちに、セグメントの重複を防ぐように初期シーケンス番号を選択する必要があることがわかりました。
オーバーラップが発生した場合、重複したセグメントが TCP にどのように影響したかを誰か説明できますか?
オペレーティングシステムが異なれば、動作も異なります。http://insecure.org/stf/secnet_ids/secnet_ids.htmlのセクション4.3.2を参照してください
そのテーブルをここにコピーしました:
Operating System Overlap Behavior
Windows NT 4.0 Always Favors Old Data
4.4BSD Favors New Data for Forward Overlap
Linux Favors New Data for Forward Overlap
Solaris 2.6 Always Favors Old Data
HP-UX 9.01 Favors New Data for Forward Overlap
Irix 5.3 Favors New Data for Forward Overlap
発生しません。シーケンス番号はa way that segment-overlapping is prevented
アップデート
初期シーケンス番号は乱数であることが好ましい。この後、各セグメントには、データ ストリームの先頭からのオフセットと最初のシーケンス番号の合計に等しいシーケンス番号が割り当てられます。したがって、一部の実装がセグメントを再送信したり、複数のセグメントに分割したりしても、危険なことは何も起こりません。ストリームをメモリ空間と見なす場合、セグメントにはストリーム内の「アドレス」があります。
アップデート
あなたの質問の編集を考慮してください。セグメントの重複は実際に発生します。これは、たとえば、受信機が一部のセグメントを見逃したことを検出した場合に発生します。次に、拒否を送信して、そのセグメントを再送信するように送信者に要求します。しかし、最初に送信された欠落しているセグメントが到着します。この後、再送された 2 番目のセグメントが到着します。その後、レシーバーは、既に受信したセグメントをドロップするか、バッファー内のデータを最新バージョンで上書きします。いずれにせよ、スタックは、このデータの前にセグメントが欠落している場合、データが到着したことを上位層に通知しません。