3. 通信速度の向上

    3.jpgPacketiX VPN Server と VPN Client / Bridge 間の通信プロトコルに WAN 高速化機能を搭載。利用可能な場合は自動的に UDP 通信を行います。広帯域にもかかわらず遅延が大きい遠距離間での VPN の速度が大幅向上。実測例として、東京・大阪間での Windows ファイル共有のスループットが従来の 45Mbps から 2 倍の 96Mbps に高速化されました。

     

    WAN 高速化機能 (UDP アクセラレーション機能)

    PacketiX VPN 3.0 までは、VPN 通信はすべて HTTPS (HTTP over SSL) トンネルにカプセル化されていました。VPN 内で TCP 通信を行おうとすると、いわゆる TCP over TCP の再送タイマの問題が発生し、遅延やパケットロスが少なからず発生しているネットワークでは通信速度が低下しました。PacketiX VPN 2.0 / 3.0 ではこの問題を複数 TCP コネクションの多重化により解決していました。しかし、必ずしも物理的なインターネット回線が有するキャパシティの限界まで回線帯域を占有する程度の速度を実現することはできない環境もありました。

    そこで、PacketiX VPN 4.0 では新たに WAN 高速化機能 (UDP アクセラレーション機能) を搭載しました。VPN Server と VPN Client / Bridge との間では、最初に HTTPS ベースで VPN 接続が確立されます。VPN 接続が一端確立されると、両者は互いに UDP パケットを物理的に送り合い、UDP による疎通が可能であるかどうかを検証します。

    もし UDP による疎通が可能であることが検出された場合は、それ以降は、HTTPS トンネルはキープアライブの目的でのみ使用され、VPN 通信のペイロードは UDP 経由で送受信されるようになります。

    traffic.jpg

    UDP 通信を確立しようとする場合において、両方のエンドポイントがファイアウォールや NAT の内側にある可能性もあります。このような場合は、通常の方法では UDP 通信を両者間で確立することはできません。そこで、いわゆる UDP Hole Punching 手法 (Skype などで用いられている P2P 手法) を用いて、NAT の背後にあるエンドポイント同士で UDP のチャネルを確立する試みが自動的に実施されます。これにより、ほとんどの種類の NAT やファイアウォールを経由して UDP チャネルを確立できます。

    UDP 通信を行っていた場合であっても、突然、途中の NAT 上の UDP コネクションテーブルが消滅するなどの原因により UDP チャネルが疎通不能となる場合もあります。このような場合に備えて、UDP チャネルでは約 1 秒間に 1 個のキープアライブパケットを送受信します。もし 2 秒間に 1 回もキープアライブパケットを往復させることができなかった場合は、UDP チャネルは一時的に使用されないようにして、代わりに HTTPS トンネルを使います。これらの工夫により、UDP チャネルが消滅した場合でも論理的な VPN セッションが切れてしまう可能性はありません。

    UDP アクセラレーションはデフォルトで有効になっています。PacketiX VPN Server と VPN Client / Bridge がバージョン 4.0 以降の場合は標準で利用されます。しかし、接続設定で UDP アクセラレーション機能をオフにすることもできます。

    UDP アクセラレーション機能において使用される送信元または宛先 UDP ポート番号はダイナミックに決定されます。固定値ではありません。

     

    WAN 高速化機能による VPN 通信の速度向上の実測例 (東京 - 大阪間)

    WAN 高速化機能を有効にした場合は、従来の場合と比較して、特に「帯域が広いにもかかわらず、遅延が大きい」ような WAN 環境において速度向上の威力を発揮します。

    たとえば、日本国内では東京 - 大阪間のインターネットで 20 ミリ秒程度の遅延があります。このような環境で、NTT 東日本・西日本のフレッツ・サービス (NGN) を両方の拠点で契約し、インターネットを経由して通信を行った場合の高速化の割合を示した実測値は以下のとおりです。

    graph1.jpg

    graph2.jpg

     

    起動速度の向上

    VPN 通信に関して本質的な事項ではありませんが、すべての PacketiX VPN プログラムの内部の C 言語で書かれた構造を見直し、起動速度を大幅に向上しました。約 3 倍程度、高速に起動するようになりました。(正確な高速化の割合は環境に依存します。)

    たとえば、これまで起動に 0.3 ミリ秒程度がかかっていた環境であれば、0.05 ~ 0.1 秒程度で起動するようになりました。