わかりました。コンピュータには、アプリケーションが外部からファイアウォールにデータを転送し、次にコンピュータにデータを転送するためのポートがあります。
では、FirefoxとInternet Explorerは、同じコンピューターの同じポートをどのように使用するのでしょうか。
そして、なぜポート80を使用して、すべての場所からコンピューターにすべてのトラフィックを渡すことができないのでしょうか。
では、なぜ特定のポートが必要なのですか?
わかりました。コンピュータには、アプリケーションが外部からファイアウォールにデータを転送し、次にコンピュータにデータを転送するためのポートがあります。
では、FirefoxとInternet Explorerは、同じコンピューターの同じポートをどのように使用するのでしょうか。
そして、なぜポート80を使用して、すべての場所からコンピューターにすべてのトラフィックを渡すことができないのでしょうか。
では、なぜ特定のポートが必要なのですか?
一般的に重要なのはローカルのポートではありません。それはリモートポートです。
したがって、ブラウザーを開いてサイトにアクセスすると、サーバー側の (やや) ランダムなポートからサーバー側のポート 80 への接続が確立されます。サーバーは同じ接続で応答します。Web サーバーは TCP/IP を使用するため、これがいわゆる接続の確立です。Web トラフィック中に接続したサーバーで netstat -an を確認すると、まさに次のように表示されます。
tcp 0 0 ::ffff:192.168.1.223:22 ::ffff:192.168.1.230:2369 ESTABLISHED
この行は、ローカル マシンがポート 22 でリモート マシンへの接続を確立したことを示しています。ローカル マシンは、この接続を確立するために 2369 のランダムな発信ポートを選択しました。この場合、これは地下にある私の Web サーバーへの ssh 接続です。
サーバーが特定のサービスに使用する必要があるポートはここにリストされていますが、接続の両端を制御する場合、必要に応じてポート 8383 で Web サーバーを実行することを妨げるものは何もありません。あなたがそれについて彼らに言わずに、他の誰かがそれに到達することを期待しないでください. (またはポートスキャンで見つかった)。
コンピューターで Web サーバーを実行している場合、ポート 80 を開いて接続をリッスンします。1 つの IP アドレスで LISTENing できるサービスは 1 つだけなので、2 つの Web サーバーを同時に実行することはできません。その後、ローカル Web サーバーに接続した場合も同じです。ランダムなローカル ポートを開き、同じ IP でローカル ポート 80 に接続します。
ランダムなローカル ポートを開くと、80 などの既知のリモート ポートへの複数のローカル接続が可能になります。
65536 個のポートが利用可能であるため、不足する可能性はほとんどありませんが、多くのポートは「よく知られた」使用法を持っているため、接続の最後には使用されません。一般的に、1023 を超えるものはすべて公平なゲームです。(あらゆる種類の特権を必要とするすべてのサービスは、1023 未満のポートで実行されます)
これは TCP/IP 接続です。TCP/IP には、信頼性の高い情報の配信を保証する内部言語があり、すべての接続を開くときにハンドシェイクを実行して、データを確実に送信できるようにします。
もう 1 つの一般的な接続タイプは UDP です。UDP は接続を確立しないため、少し高速で待ち時間が短くなりますが、UDP を使用するプログラムは情報を失っても動作できる必要があります。これは基本的に、データを送信して祈るプロトコルです。多くのオンライン ゲームはこのように動作します。
各接続には、送信元ポートと宛先ポートがあります。これにより、マシンから (たとえば) ポート 80 で実行されている Web サーバーへの複数の接続が可能になります。接続は、SourceIP:SourcePort および DestIP:DestPort によって一意に識別されます。
したがって、あなたの例では、Firefox と IE はリモート Web サーバーで同じポート (ポート 80) を使用しますが、それらを区別するためにマシンには異なるポートがあります。
netstat
コマンドプロンプトで実行して、現在の接続を確認してください。
ポートは何にでも使用できますが、特定のポートで期待されるプロトコルの規則があります。
他の機能には80を使用できますが、ファイアウォールをバイパスする簡単な方法として使用する人もいます...
ただし、ポートでリッスンできるアプリケーションは1つだけです。
いくつかのnetstat
出力は、何が起こっているかを示すことができます:
C:\Temp> netstat -an TCP 192.168.XXX.150:1493 74.125.45.100:80 確立済み TCP 192.168.XXX.150:1504 69.59.196.213:80 確立済み TCP 192.168.XXX.150:1507 74.125.91.138:80 確立済み TCP 192.168.XXX.150:1510 65.55.11.162:80 確立済み TCP 192.168.XXX.150:1518 69.59.196.211:80 確立済み TCP 192.168.XXX.150:1519 69.59.196.216:80 確立済み TCP 192.168.XXX.150:3711 64.208.186.96:80 CLOSE_WAIT
192.168.XXX.150
アドレスは、ホーム ネットワーク上のコンピュータのアドレスであることに注意してください。IP アドレスに続く 4 桁の数字は、コンピューターが80
さまざまなサーバーのポートと通信するために使用しているローカル ポートです。