web-dev-qa-db-ja.com

サーバーは、同じIPアドレスとポートからの複数の要求をどのように区別しますか?

複数のリクエストがサーバーに同じpoft80などに送信され、同じIPアドレスから、たとえば、背後のコンピューターからNATまたは同じコンピューターから)しかし、異なるブラウザまたは同じコンピュータ上の異なるアプリケーションによって、サーバーはどのようにそれらを区別し、応答することができますか?

5
Kurama

クライアントは、TCPセッション(要求)ごとに異なる送信元ポートを使用するため、各接続に関連付けられた4つのパラメーターがあります。

  • ソースIP
  • ソースポート
  • 宛先IP
  • 宛先ポート

Netstatの出力でわかるように、たとえば、私のWebブラウザーには、さまざまな送信元ポート(40092、40094、40096)でStackExchangeネットワークへの接続がいくつかあります。

tcp        0      0 192.168.x.42:40092     151.101.129.69:80       TIME_WAIT  
tcp        0      0 192.168.x.42:40096     151.101.129.69:80       TIME_WAIT  
tcp        0      0 192.168.x.42:40094     151.101.129.69:80       TIME_WAIT  

サーバーは、クライアントが使用する送信元ポートに基づいて接続を区別できるようになります。

4
mtak