2016-05-13 8 views
2

現在、ネットワークトラフィックを調査中です。ここでは、どのクライアントがどのサーバに話しているかを知りたい。もちろん、私は、最初のパケットを見ていると見ることができます:エフェメラルポートの会話パートナーの解像度

PartyA:38531 ===request===> PartyB:80 
PartyB:80 ===response==> PartyA:38531 
PartyA:38531 ===request===> PartyB:80 
PartyB:80 ===response==> PartyA:38531 
PartyA:38531 ===request===> PartyB:80 
PartyB:80 ===response==> PartyA:38531 

のでPartyAは、ウェブサーバ(PartyB)から何かを要求します。 PartyAのポートはランダムに選択されます(https://en.wikipedia.org/wiki/Ephemeral_port)。 しかし、パケットキャプチャで最初のパケットがキャプチャされなかった場合はどうなりますか?したがって、最初のパケットは次のようになります。

PartyB:80 ===response==> PartyA:38531 
        .... 

どのようにしてサーバーが誰で、クライアントは誰ですか?たとえば以下のようなルールがありますか? 「一時的なポートは静的なポートよりも高くなければなりませんか?しかし、61000以上のポートではどうなりますか?

特定のサーバーに送信され、特定のホストから送信されたトラフィックを分析したいと考えています。しかし、新しいコネクションに新たな一時ポートが登場すればどうなるでしょうか?サーバーが誰で、クライアントが誰であるかを調べる方法はありますか?

私の質問が明確であることを願っています:)事前に おかげ

答えて

-1

それはすべてのエフェメラルポートがそれらを割り当てられたマシン上の短命され、依存、彼らは他のシステム上、または他の上の短命プールの外にすることができカーネルでは、あまり期待してはいけません。

あなたが範囲49151–65535 (2^15+2^14-1 to 2^16−1)内のポートは短命ですが、彼らがサーバーによって使用に制限されていないことを、99%確認することができる唯一のこと(さらに、彼らはが私的使用のために提案されています)。

スタティックポートの方が良い。異なるアドレスから同じポートへのアクティブな接続がほとんどない場合、それはサーバー上の静的ポートでも、異なるアドレス上の異なるポートでもかまいません - クライアント上の一時的なポートですか?

クライアントとサーバーの間にセッションが1つしかない場合は、サーバーが誰で、クライアントが誰であるかは関係ありません。使用するプロトコルからのみ取得できます。

+0

"クライアントとサーバーの間にセッションが1つしかない場合は、サーバーが誰で、クライアントが誰であるかは関係ありません。 TCPにはクライアント/サーバの概念さえありません。これはピア間の接続です。クライアント/サーバーは、アプリケーション層の概念です。 –

+0

私は大きなトラフィックファイルを持っているので、私は0x2のTCPフラグ(SYN)を探し、接続の確立に使用されたすべてのポートを記録できることを知りました。その後、私は "サービス"ポートのリストを持っています。さらに、http://stackoverflow.com/questions/37271660/big-graph-in-memory/37272260では、最も一般的なポートのリストを生成し、一時的なポートを削除することができます。 – mutilis

関連する問題