ISPまたはファイアウォールがすべての着信接続をブロックしている場合、どのようにしてWebサーバーからデータをブラウザーに送信できますか?リクエストを送信し(送信)、サーバーがデータを送信します(受信)。すべての着信をブロックすると、Webサーバーはどのように応答できますか?
UDPを使用するビデオストリーミングやマルチプレイヤーゲームはどうですか? UDPはコネクションレスであるため、確立される接続はありません。ファイアウォールまたはISPはそれをどのように処理しますか?
「着信ブロック」とは、着信新しい接続はブロックされるが、確立トラフィックは許可されることを意味します。したがって、発信新しい接続が許可されている場合、その会話の着信の半分は問題ありません。
ファイアウォールは、接続状態を追跡することによってこれを管理します(このようなファイアウォールは、しばしば「ステートフルファイアウォール」と呼ばれます)。発信TCP= SYNを確認して許可します。着信SYN/ACKを確認し、確認した発信SYNと一致していることを確認し、それを通過させます。スリーウェイハンドシェイクを許可します(たとえば、ファイアウォールルールに従って許可されます)。その会話を許可します。また、その会話の終了(FINまたはRST)を検出すると、許可するパケットのリストからその接続を削除します。
UDPも同様に行われますが、UDPが接続またはセッションを持っている(UDPにはない)ふりをするのに十分なファイアウォールの記憶が含まれます。
@gowenfawrは高レベルの画像を下に持っています。ただし、初心者には魔法のように聞こえる可能性があるため、接続追跡の「マッチング」がどのように実行されるかについて、いくつかの詳細を追加すると思いました。
すべてのTCP接続には、それぞれの側のポート番号があります。ほとんどの技術者が知っているように、HTTPサーバーはポート80で実行されます。ブラウザーがWebサーバーに接続すると、オペレーティングシステムに「ローカル」ポート番号を生成するように要求します。そのコンピューターからのTCP接続(およびOSはすべてのアクティブなTCP接続を認識しているため、これを行うことができます)。次に、最初のTCPセットアップパケットがマシンのIP(IP_YOURS)とポート番号29672からWebサーバーのIP(IP_WEBSERVER)とポート番号80に送信されます。この時点で、ステートフルファイアウォールは「aha 、IP_WEBSERVERポート80からIP_YOURSポート29672に向かう将来のパケットは新しい接続ではなく、既存の接続への応答であり、許可されます。ステートフルファイアウォールはテーブルを維持し、パケットがいずれの方向にも長時間見られない場合、このテーブル全体が最終的に期限切れになります。