web-dev-qa-db-ja.com

すべての着信接続をブロックする場合、どうすればインターネットを引き続き使用できますか?

ISPまたはファイアウォールがすべての着信接続をブロックしている場合、どのようにしてWebサーバーからデータをブラウザーに送信できますか?リクエストを送信し(送信)、サーバーがデータを送信します(受信)。すべての着信をブロックすると、Webサーバーはどのように応答できますか?

UDPを使用するビデオストリーミングやマルチプレイヤーゲームはどうですか? UDPはコネクションレスであるため、確立される接続はありません。ファイアウォールまたはISPはそれをどのように処理しますか?

22
Kunal Chopra

「着信ブロック」とは、着信新しい接続はブロックされるが、確立トラフィックは許可されることを意味します。したがって、発信新しい接続が許可されている場合、その会話の着信の半分は問題ありません。

ファイアウォールは、接続状態を追跡することによってこれを管理します(このようなファイアウォールは、しばしば「ステートフルファイアウォール」と呼ばれます)。発信TCP= SYNを確認して許可します。着信SYN/ACKを確認し、確認した発信SYNと一致していることを確認し、それを通過させます。スリーウェイハンドシェイクを許可します(たとえば、ファイアウォールルールに従って許可されます)。その会話を許可します。また、その会話の終了(FINまたはRST)を検出すると、許可するパケットのリストからその接続を削除します。

UDPも同様に行われますが、UDPが接続またはセッションを持っている(UDPにはない)ふりをするのに十分なファイアウォールの記憶が含まれます。

43
gowenfawr

@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に向かう将来のパケットは新しい接続ではなく、既存の接続への応答であり、許可されます。ステートフルファイアウォールはテーブルを維持し、パケットがいずれの方向にも長時間見られない場合、このテーブル全体が最終的に期限切れになります。

17
Atsby