2011-04-12 4 views
0

ポートとは何ですか?メッセージがマシンに到着するたびに、指定されたポートにマップされているメモリ領域にコピーされ、関連するアプリケーションまたはサービスにメッセージが到着したことが通知されます。なぜ2つのHTTPとTCPアドレスが同じポートを使用でき、2つのIPCアドレスが同じ名前付きパイプを使用できないのですか?

これが当てはまる場合、2つの異なるサービスが同じポートで待機する2つのメッセージが到着するとどうなりますか? (httpまたはtcp)

なぜ、2つの名前付きパイプアドレスで同じ名前付きパイプを使用できないのですか?

+0

"名前付きパイプアドレス"とはどういう意味ですか? –

+0

一般に、分析は誤解を招きます。アプリケーションプロトコルが何であれ、一度に1つのサービスだけが特定のポートでtcp/ip接続をリスンすることができます。 –

+0

名前付きパイプアドレスはIPCアドレスを意味します。 – teenup

答えて

1

TCPは{ローカルIP、ローカルポート、リモートIP、リモートポート}のタプルを介して "接続"を識別します。したがって、着信接続ごとに異なるリモートIP /ポートのペアが存在するため、ローカルマシンはそれらを区別できます。

HTTPは、トランスポートにTCPを使用します。したがって、HTTPポートは、TCPポートであるです。

接続が開いているときに新しいIPアドレスを取得したことがある場合は、リモートホストが(新しい)アドレスを認識しないためにデータを送信したときに初めて切断されることに注意してくださいRST応答を送信する。

パイプにはそれを区別するための名前しかありませんので、パイプにはライターの数にかかわらず「接続」が1つしかありません。

+0

マイナー修正:接続は5タプルで識別されます。私は「プロトコル」を省いた(すなわち、tcp/udpは別々です)。 –

+0

'何台のライターに関係なく、1つの '接続'しかありません。 - Windows OSでは、これはまったく間違っています*。 1つの名前、潜在的に多くのパイプインスタンス(つまり、クライアント - サーバ接続)があります。 TCPのように。 –

+0

私はUN * Xの人です...私はWindowsがパイプに名前を付けたことさえ知りませんでした。 :-) –

1

説明は、受信メッセージを処理する方法の1つです。同じポートでリスニング2つのWebサイトの場合は

、その後に要求を転送するための正しいウェブサイトを見つけるためにHTTPホストヘッダーを見て、そのポートでリッスン1つの Webサーバーは、そこにあります。

名前付きパイプでも同じことが言えます。RPCリスナーはTCPポートで待機し、名前付きパイプメッセージであることを確認して、その名前付きパイプにメッセージを転送します。

+0

名前付きパイプでもメッセージを受信するためのポートを使用していることを意味しますか? – teenup

+0

はい、名前付きパイプはRPC呼び出しを使用して実装された高レベルのプロトコルです.TCPまたはNetBEUI上で実行できるNetBIOS上で、TCP上に直接実装されています。 –

関連する問題