IPv6って速いの?

   このエントリをはてなブックマークに登録    2017/12/28-1

最近、たまに「IPv6って速いんですか?」という質問をされることがあります。 それに対して意図的に非常に雑な回答をする場合には、「はい。IPv6を使うと速くなる場合があります。」と答えるようにしています。

今回は、「IPv6の方が速い」となる可能性がありそうな場合をいくつか紹介します。

IPv4 PPPoEを避ける場合

「IPv6を導入するとインターネットが速くなる」と日本国内で言われている状況があります。

NTTフレッツ系のIPv4 PPPoE利用時に、NGNでの網終端での輻輳が発生している場合があり、IPv6 IPoE(参考:IPv6 IPoEの仕組み)を利用することでIPv4 PPPoEを利用せずにインターネットとの通信が可能になるために、「IPv6の方が速い」という状況が発生するというものです(IPv4 PPPoEとIPv6 PPPoEは別なので、IPv6 PPPoEを使うことでも回避できる場合もありそうです)。

IPv4 PPPoEを避けつつIPv4を利用するために、DS-LiteやMAP-Eなどを活用するといった話も一部界隈では盛り上がっています。

ただし、IPv4 PPPoEが遅いという状況は、今後改善される可能性もあるので、数年後も「IPv6にすると速くなる」という話が今と同じように語れるのかどうかは不明です。 今年10月に、IPv4 PPPoEの網終端装置を自由に増設できる接続メニューの提供をNTT東西が開始すると発表されたため、IPv4 PPPoEに関連する輻輳が改善する場合もありそうです。

余談ですが、IPv6を使わずにIPv4 PPPoEによる輻輳を回避できることもある裏技もあります。 IPv4 PPPoEのセッションを一度切断し、少し待ってから再度IPv4 PPPoEセッションを確立します。 すると、新しいセッションでは前回と違う網終端装置とつながることがあるのです。 混雑している網終端装置を避けることができれば、劇的に通信品質が改善することもあります。 俗に言う「NTEガチャ」と言われている手法です。 たとえば、以前、スピード測定サイトでTCPのスループットが1Mbpsと判定された直後に「NTEガチャ」を行い、4回目ぐらいで80Mbpsぐらいまで出るPPPoEセッションを掴むことに成功したこともあります。

どうしてそのような状況が発生するのかは個別の原因があるのでしょうが、たとえば、大規模なマンションが1本のIPv4 PPPoEセッションで運営されており、そこで発生するトラフィックをさばいている網終端装置と同じところをつかんでしまうと通信性能が落ちるといった状況もありそうです。

IPv6を優先するためにIPv4が遅くなっている場合

IPv6を優先するためにIPv4での通信性能が意図的に落とされるということは、今後は色々と増える可能性がありそうです。

2015年の中旬に話題になったのが、Appleが実装した手法です。 OS XのEl Captainでは、IPv4とIPv6の両方に対する名前解決を行いつつ、最初に届いた結果がIPv4であれば、25ms待ってからTCP接続確立を試みるなど、IPv6を優先的に使うよう な工夫が行われています。 https://www.ietf.org/mail-archive/web/v6ops/current/msg22455.html

先週発行されたRFC 8305(Happy Eyeballs Version 2)では、名前解決用の非同期APIでIPv6用のAAAAレコードよりも先にIPv4用のAレコードの結果が返ると、AAAAレコードが返るまで少し待ちます。 RFC 8305では、50ミリ秒を推奨しています。

さらに、名前解決の結果得られたIPアドレスがIPv4とIPv6の両方であった場合、IPv6アドレスを使ったTCP接続確立を優先して試行します(ただし、必ずしもIPv6が優先されるわけでもありません。)。

CGNなどによってネットワーク構成が複雑になっている場合

IPv4アドレス在庫枯渇後に、徐々にCGNの活用が増えています。

家庭用ルータでのIPv4 NATと、ISPでのCGN(Carrier Grade NAT)の2段NATを経由してIPv4インターネットと通信する場合、NATでの変換オーバーヘッドが付加されます。

それと比べると、ネイティブなIPv6での通信の方が「速い」ということも考えられます。 ただ、その「速い」が体感できるほどの違いになるかどうかは不明です。

最後に

環境によってはIPv6の方が速くなることが増えつつあるのです。 ただし、それはIPv6という技術がIPv4よりも速いのではなく、ビジネス上の事情であったり、IPv6を普及させたいという意志によって意図的にIPv6を優先するような設計になっているためです。 「IPv6が速い」というよりも「IPv4が遅くなっていく」場合もありそうです。

IPv4とIPv6の仕様の違いによって多少の違いがあるかも知れませんが、それによって速度が大きく変わるようにも思えません。 IPv6ヘッダにチェックサムが存在しないことや、IPv6ヘッダが固定長であることから、IPv4ヘッダと比べて処理が少ない部分はあります。 その一方で、オプションが付属されないIPv4ヘッダはIPv6ヘッダよりも短いので、IPv4パケットの方がより大きなペイロードを運ぶことが可能になる場合もあります。 ルーティングやフォワーディングでマッチするときのビット数もIPv6の方が多いという要素もありそうです。

現時点では、「IPv6が劇的に速い」というのは、IPv6という技術そのものが要因ではない場合が大半になりそうです。 なので、「IPv6が速い」というよりも「IPv6を使えば速い」なのかも知れません。 とはいえ、ユーザにとっては速くなれば何でも良いと思うので、理由はどうでも良いと思うので、「IPv6にすると速い」というのは、それはそれで間違った表現ではないような気もしつつあります。

   このエントリをはてなブックマークに登録