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


22

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

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


2
すべての着信通話をブロックする/すべての着信通話をボイスメールに転送しますか?あなたが誰かに声をかけるのを止めません。
WernerCD

回答:


43

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

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

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


1
UDPの場合、実際の接続がないため、ファイアウォールは通常、発信UDPパケットの宛先IPとポートを追跡し、発信元と同じIPとポートを持つ着信パケットがある場合、それは応答であると見なしてそれを許可しますインチ
WhiteWinterWolf

17

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

すべてのTCP接続には、各側のポート番号があります。ほとんどの技術者が知っているように、HTTPサーバーはポート80で実行されます。ブラウザがWebサーバーに接続すると、オペレーティングシステムに「ローカル」ポート番号を生成するよう要求します。そのコンピューターからのTCP接続(そして、OSはすべてのアクティブなTCP接続を知っているため、これを行うことができます)。次に、最初のTCPセットアップパケットがマシンのIP(IP_YOURS)とポート番号29672からWebサーバーのIP(IP_WEBSERVER)とポート番号80に送信されます。その時点で、ステートフルファイアウォールは「あぁ、IP_WEBSERVERポートからの将来のパケットIP_YOURSポート29672への80は新しい接続ではなく、既存の接続への応答であり、許可されます。ステートフルファイアウォールはテーブルを維持し、


3
これはほとんど正しいですが、2、3のマイナーポイントとして、ポート番号は65535(16ビットの符号なし番号)で停止し、タイムアウトに加えて、FINまたはRSTフラグが設定されたパケットはTCP接続が閉じられました。
-reirab

@reirabおっと、ポート番号に失敗しました。もちろん、TCPフラグを検査することは可能ですが、可能性のあるパケット損失と近いシーケンスの再送信を考慮しなければならないので、ほとんどのファイアウォールは保持するのではなく、最も最近使用されていないテーブルエントリを再利用するだけです正確に追跡します。

@atsby投稿をいつでも編集して、ポート番号をより適切なものに置き換えることができますか?

これらはすべて素晴らしい情報です。上記のコメントで説明したポートに1つだけ追加したかったのです。それらは「一時ポート」と呼ばれ、その範囲は各OSに固有のカーネルによって定義されます。Linuxではデフォルトの範囲は、 "61000から32768"である--- "猫は、/ proc / sys / net / IPv4の/ ip_local_port_range"によって、それらのを取得することができます
Arul Selvan
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.