Wireshark における TCP 会話と TCP ストリームの関係

Wireshark における TCP 会話と TCP ストリームの関係

私は読んだ会話そしてTCP ストリームしかし、同じレイヤーにある場合、それらが互いにどのように関連しているかはまだ少しわかりません。

異なるレイヤーでは、たとえば IP 会話が複数の TCP ストリームで構成できることは明らかです。

TCP 会話は複数の TCP ストリームで構成できますか? また逆に、TCP ストリームに複数の TCP 会話を含めることができますか? なぜですか?

答え1

この場合、A会話TCP レベル (トランスポート) で発生し、2 つのポート間の TCP 接続と同義です。

ここでの「TCPストリーム」とは、会話で渡されたアプリケーションメッセージの集合体です。たとえば、リンク内のストリームは、内部ホストが実行しているTCPストリームを示しています。上場企業対応プログラムがルータにポート5000を転送するように要求し、ルータが応答します。つまり、実際にはTCPセグメントのデータフィールドです。そのため、この名前は適切ではないと思います。TCP情報はすべて削除され、両方のホストのソフトウェアが送受信するメッセージだけが残ります。ウェブGETとレスポンス、FTPPUT、メールMAIL、またはその他のアプリケーションのネイティブ コマンド言語。

個人的には、このドキュメントの Wireshark の用語が気に入るかどうかはわかりませんが、プロトコル アナライザーとしての観点では役立っています。アプリケーションは、基礎となるプロトコルに関係なく、2 つのエンドポイント間のソケット接続を IO ストリームとして認識します。

余談ですが、IP が「会話」を行うことについては同意できません。IP は仮想回線を維持するために必要なデータを伝送せず、それを上位層に任せます。TCP は厳密な回線を処理し、UDP は非常に緩い回線を処理し、順序付け、エラー修正、フロー制御をアプリケーションに任せます。

答え2

TCP会話とTCPストリームすべき同じレベルである可能性がありますが、少なくとも Wireshark の一部のバージョンでは、どのパケットが会話/ストリームの一部であるかを識別するために異なるコードが使用されるため、異なる回答が返される可能性があります。

たとえば、そのうちの 1 つは、2 つのエンドポイント (IP アドレス/ポートのペア) 間のすべてのトラフィックを、同じ会話/ストリームの一部として扱います (たとえ、2 つのエンドポイント間の 1 つの TCP 接続が閉じられ、同じキャプチャ内で同じ 2 つのエンドポイント間で別の接続が開かれた場合でも) (ポートはすぐに再利用されない傾向があるため、可能性は低いですが、不可能ではありません)。一方、もう 1 つは、接続が閉じられたことを認識し、それらを別の会話/ストリームとして表示します。

同じコードを使用していない場合、それはおそらくバグですが、まだ誰も修正していないバグである可能性があります。

明らかに、IP「会話」は2人の間で行われるIPエンドポイント (2 つの IP アドレス) は TCP 会話/ストリームとは異なります。ご指摘のとおり、2 つの IP エンドポイント間には複数の TCP 会話、UDP 会話などが存在する可能性があり、したがって同じ IP 会話内に複数の TCP/UDP などの会話が存在する可能性があります。

答え3

リンク先のページの例だけを見ると、用語が機能的に異なるようには見えません。どちらも単一のネットワーク接続の長さのようです。

会話ページには複数の接続が合計されるわけではなく、実際には各接続が時間の長さとバイト数とともに表示されます。ストリーム ウィンドウには、送信された実際のデータの詳細のみが表示されます。

関連情報