全ての通信はNAPT対応ルータを介しているか
- MoNoQLoREATOR
- 記事: 284
- 登録日時: 13年前
- 住所: 東京
全ての通信はNAPT対応ルータを介しているか
最近ネットワークの仕組みについて学習しております。
そこでふと、全ての通信はNAPT対応ルータを介しているのではないか?という仮説が浮かんできました。
そうでなければ、絶対的にグローバルIPアドレスの数が足りません。
しかし仮にそうであるならば、ネットゲームをするにはポートフォワーディングを行う必要があります。
それにも関わらず私は生まれてこのかたそんなことをしたことがありません。
どうもその仮説が間違っているような気がします。
どうなのでしょうか?
もし仮説が間違っているのなら、世界中のインターネット同時接続人数がグローバルIPアドレスの限界を超えていないだけだということでしょうか?
また、NAPTのシステム自体にも疑問を感じます。
もし同じNAPT対応ルータを利用する複数のパーソナルコンピュータが同じポート番号を使用して通信を始めたら破たんするのではないでしょうか?
それとも、誰かの通信が完了するまで他の人は待たされることになるのでしょうか?
よろしくお願いします。
そこでふと、全ての通信はNAPT対応ルータを介しているのではないか?という仮説が浮かんできました。
そうでなければ、絶対的にグローバルIPアドレスの数が足りません。
しかし仮にそうであるならば、ネットゲームをするにはポートフォワーディングを行う必要があります。
それにも関わらず私は生まれてこのかたそんなことをしたことがありません。
どうもその仮説が間違っているような気がします。
どうなのでしょうか?
もし仮説が間違っているのなら、世界中のインターネット同時接続人数がグローバルIPアドレスの限界を超えていないだけだということでしょうか?
また、NAPTのシステム自体にも疑問を感じます。
もし同じNAPT対応ルータを利用する複数のパーソナルコンピュータが同じポート番号を使用して通信を始めたら破たんするのではないでしょうか?
それとも、誰かの通信が完了するまで他の人は待たされることになるのでしょうか?
よろしくお願いします。
Re: 全ての通信はNAPT対応ルータを介しているか
IPv4だと、グローパルIPアドレスの数は少ないから通信は全てNAPTで変換されながら行われているのはないか?、みたいな話でしょうか?MoNoQLoREATOR さんが書きました: 最近ネットワークの仕組みについて学習しております。
そこでふと、全ての通信はNAPT対応ルータを介しているのではないか?という仮説が浮かんできました。
そうでなければ、絶対的にグローバルIPアドレスの数が足りません。
しかし仮にそうであるならば、ネットゲームをするにはポートフォワーディングを行う必要があります。
それにも関わらず私は生まれてこのかたそんなことをしたことがありません。
どうもその仮説が間違っているような気がします。
どうなのでしょうか?
もし仮説が間違っているのなら、世界中のインターネット同時接続人数がグローバルIPアドレスの限界を超えていないだけだということでしょうか?
逆に考えると分かりますが、公開できるサービスは使用可能なグローバルIPアドレス × トランスポートプロトコル × ポート番号の数を超えることはできません。
なので、超えるということはないです。
また、一般家庭のクライアントからの接続数も使用可能なグローバルIPアドレス × トランスポートプロトコル × ポート番号の数を超えることはできません。
なので、こちらも超えるということはないです。
グローバルIPアドレスはインターネットで使用されています。
企業内および家庭内ではプライベートIPアドレスが使用されており、インターネットとの間の変換にNAPTやポートフォワードが使用されています。
言えることは、数の限界を超えた接続は試みることもできないし、行えないということです。
現状、全て許容範囲内で運用されています。逆に言えば、数を超えた運用はやろうとしてもすることができないとも言えます。
あと、NAPTとポートフォワードを同一と思われているようなので、使用目的の観点からポートフォワードについて説明しておきます。
クライアントとサーバでは状況が異なります。
インターネットというのは、接続する側が接続される側のアプリケーションを指定できれば良く、データを送りたいアプリケーションを指定するためにポート番号が使用されています。
また、接続する側は最初に、データを送ってきて欲しいポート番号を接続開始のタイミングで接続される側に教えてあげます。
こうすることで、接続される側から接続する側のアプリケーションにデータを送信することができるようになります。
この際、接続する側のポート番号はそのタイミングで使用されていない番号であれば何でも構いません。
特定の(決められた)ポート番号が必要になるのは、接続される側です。
何故なら、接続する側は接続しに行くときに自分から使って欲しいポート番号を自己申告で相手に教えることができますが、逆に接続される側は接続しに行かないので相手に教えるタイミングがありません。
そのため、接続される側は固定である必要がある訳です。
(※以下、IPアドレス、トランスポートプロトコルも含めた説明は割愛します)
端的な話をすると、NAPTはデフォルトでは特定の(静的な)ポート番号への変換を提供しません。
サーバを公開する方は、ルータの(パケットフィルタリングにより受信パケットをルータが捨てないように)ポート解放を行いますが、そのときに設定しているのはポートフォワードの設定に他なりません。
ルータにアクセスしてきた特定の接続を特定のアプリケーションで待ち受けるために
ルータで受信したパケットの送信先グローバルIP&ポート番号を特定のローカルIP&特定のポート番号へ変換されるように、変換先のローカルIP&ポート番号を(静的に)固定で指定している訳です。
NAPTは基本動的で、接続する側専門です。
ポートフォワードは基本静的で、接続される側専門です。常に固定で変換先を指定します。
ルータに特定のポートフォワード先を登録することで受信時の固定の変換先を指定することができます。
簡単な話をすると、通信開始の段階でルータの動作は通常、接続する側は動的変換(NAPT)、接続される側は固定変換(ポートフォワード)ということです。
ポートフォワード先が設定されていないルータは、基本外部から接続しにきた全てのバケットを受け渡し先が見つからないとしてパケットフィルタリングにより棄てます。
つまり、ルータはポートフォワードをパケットフィルタリングの抜け道として使用していることになります。
とりあえず、使用目的の時点で NAPT = ポートフォワード ではない、ということです。
また、ネットゲームにおいてもマッチングサーバが用意されていないP2Pオンリーの場合はホストとなるPCを用意する必要があるのでポートフォワードを必要とします。
NAPTとポートフォワードの使用目的が理解できれば、この疑問自体が乖離的で破たんしていることが分かると思います。MoNoQLoREATOR さんが書きました: また、NAPTのシステム自体にも疑問を感じます。
もし同じNAPT対応ルータを利用する複数のパーソナルコンピュータが同じポート番号を使用して通信を始めたら破たんするのではないでしょうか?
それとも、誰かの通信が完了するまで他の人は待たされることになるのでしょうか?
また、socketプログラミングをすれば分かりますが、TCPサーバの場合バックログというものが存在します。
サーバで待ち受けている同じグローバルIP&ポート番号でTCPの接続自体はaccept前に複数同時に受け付けることが可能で、acceptを呼び出す時には同時に複数接続が接続確立済みの状態で順番待ちをしている状態です。
acceptを連続で呼び出して同時に複数接続に対しアプリケーションで通信処理ができるかどうかは、同期処理、非同期処理のどちらで実装しているかで変わります。
このへんは質問する前にsocketプログラミングで経験を積んで自分で勉強すれば分かることなので、がんばってください。
Re: 全ての通信はNAPT対応ルータを介しているか
NAPT : IT用語辞典 e-Words
NAPT(IPマスカレード)
RFC2663 (NATについて書かれている)
ポートフォワーディング : IT用語辞典 e-Words
オンラインゲーム : IT用語辞典 e-Words
また、ゲームにもよるでしょうが、例えばHTTPでも同じようにポートフォワーディングが必要だとお考えでしょうか?
インターネットに限定しても、一部のパソコンはルーターを介さずに接続している(その結果ウイルスに感染するリスクが高い)気がするので、そのようなパソコン同士で通信すればNAPT対応ルーターを介せずに通信するかもしれないし、通信経路の途中にNAPT対応ルーターが隠れているかもしれないですね。
また、世界中のインターネット同時接続人数がグローバルIPアドレスの限界を超えかけているため、IPv6が登場したはずです。
NAPT(IPマスカレード)
RFC2663 (NATについて書かれている)
ポートフォワーディング : IT用語辞典 e-Words
オンラインゲーム : IT用語辞典 e-Words
まず「全ての通信」と言ってしまうと、赤外線リモコンの通信やRS232Cなどのシリアル通信を考えれば間違いだと言えます。MoNoQLoREATOR さんが書きました:全ての通信はNAPT対応ルータを介しているのではないか?という仮説が浮かんできました。
前提として、あなたはネットゲームをしたことがありますか?MoNoQLoREATOR さんが書きました:しかし仮にそうであるならば、ネットゲームをするにはポートフォワーディングを行う必要があります。
それにも関わらず私は生まれてこのかたそんなことをしたことがありません。
また、ゲームにもよるでしょうが、例えばHTTPでも同じようにポートフォワーディングが必要だとお考えでしょうか?
前述の通り、「全ての通信が~」というのは間違いでしょう。MoNoQLoREATOR さんが書きました:どうもその仮説が間違っているような気がします。
どうなのでしょうか?
もし仮説が間違っているのなら、世界中のインターネット同時接続人数がグローバルIPアドレスの限界を超えていないだけだということでしょうか?
インターネットに限定しても、一部のパソコンはルーターを介さずに接続している(その結果ウイルスに感染するリスクが高い)気がするので、そのようなパソコン同士で通信すればNAPT対応ルーターを介せずに通信するかもしれないし、通信経路の途中にNAPT対応ルーターが隠れているかもしれないですね。
また、世界中のインターネット同時接続人数がグローバルIPアドレスの限界を超えかけているため、IPv6が登場したはずです。
詳しく調べてはいませんが、多分ルーターが勝手に送信元のポート番号を書き換えて識別子のようにしているのではないでしょうか?MoNoQLoREATOR さんが書きました:また、NAPTのシステム自体にも疑問を感じます。
もし同じNAPT対応ルータを利用する複数のパーソナルコンピュータが同じポート番号を使用して通信を始めたら破たんするのではないでしょうか?
それとも、誰かの通信が完了するまで他の人は待たされることになるのでしょうか?
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)
Re: 全ての通信はNAPT対応ルータを介しているか
補足です。
アプリケーションが裏でポートフォワーディングを行っている場合もあります。
219.94.244.34:1234 -> ルーター -> 192.168.150.5:5000 (ローカルマシンA)
219.94.244.34:5678 -> ルーター -> 192.168.150.6:5000 (ローカルマシンB)
UPnPやUDPホールパンチングなど、自動的にポートフォワーディングを行う方法があるので、MoNoQLoREATOR さんが書きました: しかし仮にそうであるならば、ネットゲームをするにはポートフォワーディングを行う必要があります。
それにも関わらず私は生まれてこのかたそんなことをしたことがありません。
アプリケーションが裏でポートフォワーディングを行っている場合もあります。
外部ポートと、内部ポートの番号が一致している必要はないので問題にはなりません。MoNoQLoREATOR さんが書きました: もし同じNAPT対応ルータを利用する複数のパーソナルコンピュータが同じポート番号を使用して通信を始めたら破たんするのではないでしょうか?
219.94.244.34:1234 -> ルーター -> 192.168.150.5:5000 (ローカルマシンA)
219.94.244.34:5678 -> ルーター -> 192.168.150.6:5000 (ローカルマシンB)
- MoNoQLoREATOR
- 記事: 284
- 登録日時: 13年前
- 住所: 東京
Re: 全ての通信はNAPT対応ルータを介しているか
sleepさん返信ありがとうございます。
ということは、私の仮説は間違っていないということですか?
P2Pオンリーの場合はホストとなるPCを用意する必要があるのでポートフォワードを必要としますから、「今までポートフォワーディングを行ったことが一度もないのに、何の不都合もなくネットゲームをすることができていたのはどうしてだろう?」と疑問に思ったわけです。
が、ゆっくり考えてみると、マッチングサーバーさえ用意すれば対戦のエントリー時にマッチングサーバーにグローバルIPアドレスとポート番号を保存しておけば、それを別の誰かが取得してそこに向かって接続要求を出すことで、間にNAPTが入って変換されていようがいまいが関係無く、接続・通信が可能になるということに気づきました。
WinsockAPIなら使ったことがあるのですが、socketそのものについては確かに知識がありませんでした。おそらくそのうち学習することになると思います。頑張ります。
その通りです。sleep さんが書きました:IPv4だと、グローパルIPアドレスの数は少ないから通信は全てNAPTで変換されながら行われているのはないか?、みたいな話でしょうか?
つまり、グローバルIPアドレス × トランスポートプロトコル × ポート番号によって通信相手を確定しているのだからNAPT又はそれに準ずる機器を通して変換が行われているのは当たり前だという意味でしょうか?sleep さんが書きました:逆に考えると分かりますが、公開できるサービスは使用可能なグローバルIPアドレス × トランスポートプロトコル × ポート番号の数を超えることはできません。
なので、超えるということはないです。
また、一般家庭のクライアントからの接続数も使用可能なグローバルIPアドレス × トランスポートプロトコル × ポート番号の数を超えることはできません。
なので、こちらも超えるということはないです。
グローバルIPアドレスはインターネットで使用されています。
企業内および家庭内ではプライベートIPアドレスが使用されており、インターネットとの間の変換にNAPTやポートフォワードが使用されています。
言えることは、数の限界を超えた接続は試みることもできないし、行えないということです。
現状、全て許容範囲内で運用されています。逆に言えば、数を超えた運用はやろうとしてもすることができないとも言えます。
ということは、私の仮説は間違っていないということですか?
全て理解しております。sleep さんが書きました:あと、NAPTとポートフォワードを同一と思われているようなので、使用目的の観点からポートフォワードについて説明しておきます。
クライアントとサーバでは状況が異なります。
インターネットというのは、接続する側が接続される側のアプリケーションを指定できれば良く、データを送りたいアプリケーションを指定するためにポート番号が使用されています。
また、接続する側は最初に、データを送ってきて欲しいポート番号を接続開始のタイミングで接続される側に教えてあげます。
こうすることで、接続される側から接続する側のアプリケーションにデータを送信することができるようになります。
この際、接続する側のポート番号はそのタイミングで使用されていない番号であれば何でも構いません。
特定の(決められた)ポート番号が必要になるのは、接続される側です。
何故なら、接続する側は接続しに行くときに自分から使って欲しいポート番号を自己申告で相手に教えることができますが、逆に接続される側は接続しに行かないので相手に教えるタイミングがありません。
そのため、接続される側は固定である必要がある訳です。
(※以下、IPアドレス、トランスポートプロトコルも含めた説明は割愛します)
端的な話をすると、NAPTはデフォルトでは特定の(静的な)ポート番号への変換を提供しません。
サーバを公開する方は、ルータの(パケットフィルタリングにより受信パケットをルータが捨てないように)ポート解放を行いますが、そのときに設定しているのはポートフォワードの設定に他なりません。
ルータにアクセスしてきた特定の接続を特定のアプリケーションで待ち受けるために
ルータで受信したパケットの送信先グローバルIP&ポート番号を特定のローカルIP&特定のポート番号へ変換されるように、変換先のローカルIP&ポート番号を(静的に)固定で指定している訳です。
NAPTは基本動的で、接続する側専門です。
ポートフォワードは基本静的で、接続される側専門です。常に固定で変換先を指定します。
ルータに特定のポートフォワード先を登録することで受信時の固定の変換先を指定することができます。
簡単な話をすると、通信開始の段階でルータの動作は通常、接続する側は動的変換(NAPT)、接続される側は固定変換(ポートフォワード)ということです。
ポートフォワード先が設定されていないルータは、基本外部から接続しにきた全てのバケットを受け渡し先が見つからないとしてパケットフィルタリングにより棄てます。
つまり、ルータはポートフォワードをパケットフィルタリングの抜け道として使用していることになります。
とりあえず、使用目的の時点で NAPT = ポートフォワード ではない、ということです。
また、ネットゲームにおいてもマッチングサーバが用意されていないP2Pオンリーの場合はホストとなるPCを用意する必要があるのでポートフォワードを必要とします。
P2Pオンリーの場合はホストとなるPCを用意する必要があるのでポートフォワードを必要としますから、「今までポートフォワーディングを行ったことが一度もないのに、何の不都合もなくネットゲームをすることができていたのはどうしてだろう?」と疑問に思ったわけです。
が、ゆっくり考えてみると、マッチングサーバーさえ用意すれば対戦のエントリー時にマッチングサーバーにグローバルIPアドレスとポート番号を保存しておけば、それを別の誰かが取得してそこに向かって接続要求を出すことで、間にNAPTが入って変換されていようがいまいが関係無く、接続・通信が可能になるということに気づきました。
これについては、h2so5さんの説明を読んで一瞬で納得しました。sleep さんが書きました:NAPTとポートフォワードの使用目的が理解できれば、この疑問自体が乖離的で破たんしていることが分かると思います。
また、socketプログラミングをすれば分かりますが、TCPサーバの場合バックログというものが存在します。
サーバで待ち受けている同じグローバルIP&ポート番号でTCPの接続自体はaccept前に複数同時に受け付けることが可能で、acceptを呼び出す時には同時に複数接続が接続確立済みの状態で順番待ちをしている状態です。
acceptを連続で呼び出して同時に複数接続に対しアプリケーションで通信処理ができるかどうかは、同期処理、非同期処理のどちらで実装しているかで変わります。
WinsockAPIなら使ったことがあるのですが、socketそのものについては確かに知識がありませんでした。おそらくそのうち学習することになると思います。頑張ります。
Re: 全ての通信はNAPT対応ルータを介しているか
グローバルIPアドレスとポート番号がわかっているだけではファイアーウォール内のマシンには接続できません。MoNoQLoREATOR さんが書きました: 全て理解しております。
P2Pオンリーの場合はホストとなるPCを用意する必要があるのでポートフォワードを必要としますから、「今までポートフォワーディングを行ったことが一度もないのに、何の不都合もなくネットゲームをすることができていたのはどうしてだろう?」と疑問に思ったわけです。
が、ゆっくり考えてみると、マッチングサーバーさえ用意すれば対戦のエントリー時にマッチングサーバーにグローバルIPアドレスとポート番号を保存しておけば、それを別の誰かが取得してそこに向かって接続要求を出すことで、間にNAPTが入って変換されていようがいまいが関係無く、接続・通信が可能になるということに気づきました。
ルーターの変換テーブルにローカルアドレスとポートが登録されている必要があり、そのためにはポートフォワーディングが必要です。
ポートフォワーディングを行う必要がなかった理由は次のうちどれかです:
・P2P型のゲームではない
・アプリケーションが裏でポートフォワーディングを行っている
・対戦相手がポートフォワーディングを行っている
・プロキシサーバーを介して通信している
Re: 全ての通信はNAPT対応ルータを介しているか
MoNoQLoREATOR さんが書きました: そこでふと、全ての通信はNAPT対応ルータを介しているのではないか?という仮説が浮かんできました。
そうでなければ、絶対的にグローバルIPアドレスの数が足りません。
私が「WAN」と言わずに、態々「インターネット」と言ったのは、ルータはWANとLANの境界に設置するものだからですね。MoNoQLoREATOR さんが書きました: つまり、グローバルIPアドレス × トランスポートプロトコル × ポート番号によって通信相手を確定しているのだからNAPT又はそれに準ずる機器を通して変換が行われているのは当たり前だという意味でしょうか?
ということは、私の仮説は間違っていないということですか?
現状でもプロバイダのPOP、NOCなどで使用されているエッジルータやコアルータでは様々なプロトコルに対応しています。
最近では特に家庭用ルータなどはIP専用がほとんどになってきてはいますが、元々ルータは様々なプロトコルに対応するためにソフトウェアで制御されていました。
WANには様々なプロトコルによる通信が行われていて、その中にIPがあるに過ぎません。
なので、「全ての通信」というとまず語弊があります。
IPは「Internet Protocol」の略で、インターネット限定です。
それと、
NAT(NAPT)ルータを介しても介さなくても、グローバルIPアドレスの数に変わりはありません。
それにプライベートネットワークは対策であり、必要にかられて使用されている技術であるため、何のために活用されているのか知っているのであれば、そもそも疑問など出ません。
また、ルータを使用せず、直接通信事業者が提供しているモデムにPCを接続することもできるので必ずルータを介している必要はありません。
例えば、SkypeはこのようなNAT(NAPT)ルータを使用していない環境も通信対象として通信手段を提供しています。
Skypeは様々なNAT(NAPT)ルータ超えの方法を用意している訳ですが
NAT(NAPT)ルータを挟んでいる場合と挟んでいない場合でP2Pの通信確立方法に違いが出るというのは、理解されているのであれば分かりますよね?
Skypeが態々NAT(NAPT)ルータを挟んでいない場合を想定し用意しているということは、NAPTを使用していない状況があるということです。
なので、
MoNoQLoREATORさんの仮説が正しいかと言われても、曖昧で漠然としているので
現状の状況を自分なりに理解および認識していただいた方が良いと判断します。
- MoNoQLoREATOR
- 記事: 284
- 登録日時: 13年前
- 住所: 東京
Re: 全ての通信はNAPT対応ルータを介しているか
みけCATさん返信ありがとうございます。
この「通信」という言葉は「IP通信」という意味で使いました。
プロトコルは関係なく、マシンAが一度NAPTルータを通してどこかへデータを送り、その返事を待っている状態のときにしか他からのパケットはマシンAに到達しないが例外的にポートフォワーディングを行えば特定のポート番号に対して送られたパケットのみ到達できるというように理解しております。
語弊がありましたね。みけCAT さんが書きました:まず「全ての通信」と言ってしまうと、赤外線リモコンの通信やRS232Cなどのシリアル通信を考えれば間違いだと言えます。
この「通信」という言葉は「IP通信」という意味で使いました。
もちろんですみけCAT さんが書きました:前提として、あなたはネットゲームをしたことがありますか?
質問の意味がわかりません。みけCAT さんが書きました:また、ゲームにもよるでしょうが、例えばHTTPでも同じようにポートフォワーディングが必要だとお考えでしょうか?
プロトコルは関係なく、マシンAが一度NAPTルータを通してどこかへデータを送り、その返事を待っている状態のときにしか他からのパケットはマシンAに到達しないが例外的にポートフォワーディングを行えば特定のポート番号に対して送られたパケットのみ到達できるというように理解しております。
たしかに、IPv6の存在を忘れていました。みけCAT さんが書きました:また、世界中のインターネット同時接続人数がグローバルIPアドレスの限界を超えかけているため、IPv6が登場したはずです。
みけCATさんの説明ではちょっと疑問が払拭しきれませんでしたがh2so5さんの補足を読んでとてもよくわかりました。みけCAT さんが書きました:詳しく調べてはいませんが、多分ルーターが勝手に送信元のポート番号を書き換えて識別子のようにしているのではないでしょうか?
- MoNoQLoREATOR
- 記事: 284
- 登録日時: 13年前
- 住所: 東京
Re: 全ての通信はNAPT対応ルータを介しているか
h2so5さん返信ありがとうございます。
なるほど!アプリケーション側で自動的にポートフォワーディングを行う方法があったとは知りませんでした。h2so5 さんが書きました:UPnPやUDPホールパンチングなど、自動的にポートフォワーディングを行う方法があるので、
アプリケーションが裏でポートフォワーディングを行っている場合もあります。
非常に簡潔な説明で、とてもよくわかり納得できました。h2so5 さんが書きました:外部ポートと、内部ポートの番号が一致している必要はないので問題にはなりません。
219.94.244.34:1234 -> ルーター -> 192.168.150.5:5000 (ローカルマシンA)
219.94.244.34:5678 -> ルーター -> 192.168.150.6:5000 (ローカルマシンB)
- MoNoQLoREATOR
- 記事: 284
- 登録日時: 13年前
- 住所: 東京
Re: 全ての通信はNAPT対応ルータを介しているか
たしかに!ファイアウォールの存在を忘れていました。h2so5 さんが書きました:グローバルIPアドレスとポート番号がわかっているだけではファイアーウォール内のマシンには接続できません。
ルーターの変換テーブルにローカルアドレスとポートが登録されている必要があり、そのためにはポートフォワーディングが必要です。
ポートフォワーディングを行う必要がなかった理由は次のうちどれかです:
・P2P型のゲームではない
・アプリケーションが裏でポートフォワーディングを行っている
・対戦相手がポートフォワーディングを行っている
・プロキシサーバーを介して通信している
ネットゲームを作るにはアプリケーションからのポートフォワーディングを避けられないようですね。
たしかに言葉が足りませんでした。sleep さんが書きました:私が「WAN」と言わずに、態々「インターネット」と言ったのは、ルータはWANとLANの境界に設置するものだからですね。
現状でもプロバイダのPOP、NOCなどで使用されているエッジルータやコアルータでは様々なプロトコルに対応しています。
最近では特に家庭用ルータなどはIP専用がほとんどになってきてはいますが、元々ルータは様々なプロトコルに対応するためにソフトウェアで制御されていました。
WANには様々なプロトコルによる通信が行われていて、その中にIPがあるに過ぎません。
なので、「全ての通信」というとまず語弊があります。
IPは「Internet Protocol」の略で、インターネット限定です。
それと、
NAT(NAPT)ルータを介しても介さなくても、グローバルIPアドレスの数に変わりはありません。
それにプライベートネットワークは対策であり、必要にかられて使用されている技術であるため、何のために活用されているのか知っているのであれば、そもそも疑問など出ません。
また、ルータを使用せず、直接通信事業者が提供しているモデムにPCを接続することもできるので必ずルータを介している必要はありません。
例えば、SkypeはこのようなNAT(NAPT)ルータを使用していない環境も通信対象として通信手段を提供しています。
Skypeは様々なNAT(NAPT)ルータ超えの方法を用意している訳ですが
NAT(NAPT)ルータを挟んでいる場合と挟んでいない場合でP2Pの通信確立方法に違いが出るというのは、理解されているのであれば分かりますよね?
Skypeが態々NAT(NAPT)ルータを挟んでいない場合を想定し用意しているということは、NAPTを使用していない状況があるということです。
なので、
MoNoQLoREATORさんの仮説が正しいかと言われても、曖昧で漠然としているので
現状の状況を自分なりに理解および認識していただいた方が良いと判断します。
「一般人がパーソナルコンピュータを使って行う全ての”IP"通信は」と言いたかったのです。
なんと説明すればよいのかわかりませんが、「グローバルIPアドレスをパーソナルコンピュータに割り当てると損だから、NAPT対応ルータやプロキシサーバなど、パーソナルコンピュータからの通信を束ねる機能を持った機器にグローバルIPアドレスが割り当てられているのではないか」と考えています。
もちろん、例外はあると思います。
ただ、NAPT対応ルータやプロキシサーバを介していることの方が圧倒的に多いのではないか?という気がするのです。
もし他の形態の方が主流なのだとすれば、それがどんな形態なのか知りたいのです。
Re: 全ての通信はNAPT対応ルータを介しているか
日本国内の一般家庭ならインターネットに接続するときは
ほとんどの家庭でNAPT対応の家庭用ブロードバンドルータを使っているんじゃないでしょうかね。
通信販売や量販店で販売されているのはこのタイプですしね。
大体、一家に1契約で割り当てられるグローバルIPアドレスは1つのタイプのプランで十分だと思うので
少なくとも2台以上繋いでる家庭はこれに該当していると思って良いんじゃないでしょうか。
1台の場合も例外を除けばほぼ該当すると考えて良いんじゃないでしょうか。
ほとんどの家庭でNAPT対応の家庭用ブロードバンドルータを使っているんじゃないでしょうかね。
通信販売や量販店で販売されているのはこのタイプですしね。
大体、一家に1契約で割り当てられるグローバルIPアドレスは1つのタイプのプランで十分だと思うので
少なくとも2台以上繋いでる家庭はこれに該当していると思って良いんじゃないでしょうか。
1台の場合も例外を除けばほぼ該当すると考えて良いんじゃないでしょうか。
- MoNoQLoREATOR
- 記事: 284
- 登録日時: 13年前
- 住所: 東京
Re: 全ての通信はNAPT対応ルータを介しているか
ということは相手が十中八九NAPTを介していると考えてP2P通信プログラムを書けばよさそうですね。
インターネット全体のイメージもかなり具体的になってきました。
ご回答くださった皆様ありがとうございました。
インターネット全体のイメージもかなり具体的になってきました。
ご回答くださった皆様ありがとうございました。
Re: 全ての通信はNAPT対応ルータを介しているか
METAL GEAR ONLINEでの統計によると、日本では7割がNAPT越しでの接続のようです。
METAL GEAR SOLID PORTABLE OPSではWifiでの接続のみということが関係しているのかほとんどNAPT越しになっています。
参考URL: http://homepage3.nifty.com/toremoro/stu ... versal.pdf
METAL GEAR SOLID PORTABLE OPSではWifiでの接続のみということが関係しているのかほとんどNAPT越しになっています。
参考URL: http://homepage3.nifty.com/toremoro/stu ... versal.pdf