断片化されたTCPフラグメントがTCPサーバーに保持される期間


10

特定のTCPフラグメントが2つのIPデータグラムにフラグメント化され、最初のデータグラムはTCPサーバーに到着するが、2番目のデータグラムは到着しないと仮定します。

一定時間後、TCPサーバーはキープアライブを送信し、クライアントが生きていると判断します。次に、TCPサーバーはこの最初のデータグラムをどのように処理しますか?2番目のデータグラムの到着を待つのですか、それとも最初のデータグラムを破棄しますか?

回答:


8

フラグメント再構成タイムアウトの期限が切れると、フラグメントはドロップされます。もう一方の端は再送信する必要があります。

このタイムアウトは通常設定可能です。Linuxでは、デフォルトで30秒で、によって制御されます/proc/sys/net/ipv4/ipfrag_time


フラグメントの再構成は受信した最初のフラグメントに関してタイムアウトですか、それとも、新しく到着するフラグメントごとにタイマーがリセットされますか?
Randomblue 2012年

2
私はあなたが決定的にそれに答えるためにソースコードを読む必要があると思います。
マイケルハンプトン

2

この質問に対する明確な答えはありません。

アダプティブ再送信に関するこの記事を参照すると、TCPが適切な遅延を計算する際の要素としてRTTを使用していることがわかります。

これはより詳細な記事です。基本的に、断片化のためだけの特別なタイムアウト値はありません。

ただし、このシスコの記事によると、IOS XR仮想ファイアウォールには、独自の設定可能なタイマーを備えたフラグメントのデフォルトタイムアウトが10秒です。これをリンクして、OSとデバイスの動作が異なることを説明します。たとえば、このようなデバイスを介して接続を渡すと、接続に悪影響を与える可能性があります。

断片化の遅延の影響をテストする場合は、同じ構成の2つのマシンをクロスオーバーで接続し、そこからテストを開始するのが最善です。


ありがとう。シスコの記事のフラグメントタイムアウトは、最初に受信したフラグメント、または最後に受信したフラグメントに基づいて計算されていると思いますか?
Randomblue 2012年

最後に受信したフラグメントは最初のフラグメントよりも理にかなっていますが、その例ではCiscoの裁量でわかりません。
jwbensley 2012年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.