すべての着信接続をブロックした場合、どのようにしてインターネットを使用できるようになりますか?

すべての着信接続をブロックした場合、どのようにしてインターネットを使用できるようになりますか?

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

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

答え1

「着信ブロック」とは、着信新しいつながりブロックされていますが、設立トラフィックは許可されます。したがって、送信側新しいつながり許可されている場合、その会話の受信側は問題ありません。

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

UDP も同様に実行されますが、UDP には接続またはセッションがあるかのように見せかけるためにファイアウォールが十分な記憶を保持することが必要になります (UDP には接続またはセッションはありません)。

答え2

@gowenfawr は概要を説明しています。ただし、初心者にとっては魔法のように聞こえるかもしれないので、接続追跡の「マッチング」がどのように実行されるかについて、詳細を追加しようと思いました。

すべての TCP 接続には、それぞれの側にポート番号があります。ほとんどの技術者が知っているように、HTTP サーバーはポート 80 で実行されます。ブラウザーが Web サーバーに接続すると、オペレーティング システムに「ローカル」ポート番号を生成するように要求します。この番号は、そのコンピューターの他の TCP 接続で使用されていない 29672 などのランダムな番号になります (OS はアクティブな TCP 接続をすべて把握しているため、これを実行できます)。次に、初期 TCP セットアップ パケットが、マシンの IP (IP_YOURS) とポート番号 29672 から、Web サーバーの IP (IP_WEBSERVER) とポート番号 80 に送信されます。この時点で、ステートフル ファイアウォールは、「IP_WEBSERVER ポート 80 から IP_YOURS ポート 29672 に送信される今後のパケットは新しい接続ではなく、既存の接続への応答であるため、許可されます」と通知します。ステートフル ファイアウォールはテーブルを保持しており、長時間にわたってどちらの方向にもパケットが送信されない場合、このテーブルのエントリは最終的に期限切れになります。

答え3

ファイアウォールは、不正な受信接続をブロックするためだけのものだと思います。DNS にリクエストを送信すると、DNS は応答し、これは不正な受信接続ではありません。

答え4

私はサーバーを運営しているのではなく、特定のサーバーにアクセスしています。接続をより安全にしたいのです。私の考えでは、常に指定された1つのポートを介してサーバーに電話をかけます。サーバーからの電話を決して許可しないでください。

関連情報