トランスファーアクセラレーション

Background

現在のインターネットでは、主に2つのプロトコルが使用されています。TCPとUDPです。

TCPは、インターネットの主力となるプロトコルです。このプロトコルには信頼性メカニズムが組み込まれており、TCPパッケージが途中で失われた場合、送信者は自動的に受信者に再送信します。受信者がTCPパッケージを受信すると、ACK(Acknowledge)メッセージが送信者に送信され、送信者はこのパッケージが正しく配信されたことを知ることができます。この比較的単純なメカニズムにより、TCPプロトコルは非常に信頼性が高く、開発者にとって使いやすいものとなっています。このACKメッセージを送信者に送ることは、パフォーマンスを著しく制限する可能性があります(送信者はパッケージ1のACKを待ってからパッケージ2を送信しなければならないため)ûそのため、このプロトコルには長年にわたって多くの改良が加えられてきました。現代のTCP実装の最も重要な特徴のいくつかを紹介します。

  • Scalable Window Size**により、送信者は一度に複数のパッケージを送信し、同時に複数のACKを待つことができます。送信者は、受信者が受信できる速度よりも速くデータを送信しないという意味で、飛行中のデータ量に制限があります。

  • 帯域幅の調整 基本的には、10mbitのクライアントが1000mbitのサーバーと通信しても、サーバーからのトラフィックに完全に圧倒されることはありません。TCPでは、常に一定数のデータのみが飛行しているべきだという考えに基づいています。

  • 選択的ACK は、受信者が任意の順序でパッケージを受信し、ACKすることを可能にします。パッケージ1が紛失しても、パッケージ2を送信してACKしてからパッケージ1を再送信することに支障はありません。

ファイアウォール、ルーター、スイッチは、TCPトラフィックに大きく最適化されており、今日のインターネット上で行われるほとんどの作業に自然に選択されています。ウェブブラウザ、電子メールクライアント、Facebook、Instagram、Snapchat、株価指数、Spotify、Slack、FTPクライアントなどは、通常TCPを使用するアプリケーションです。

しかし、難点もあります。TCPトラフィックを地理的に大きな距離で送信すると、パフォーマンスが著しく低下します。その理由は、トラフィック(およびACK)が受信者に届くまでに、より多くのルーターやネットワークインフラを通過しなければならず、それに時間がかかるからです。

この時間を「レイテンシー」と呼びます。同じ国で運営されているWebサイトを閲覧している場合、遅延は10ミリ秒程度の場合もあります。他の大陸でホストされているウェブサイトを閲覧していると、レイテンシーの増加により、ページの読み込みに時間がかかることがすぐにわかります。

TCPのレイテンシーの問題は、大陸を越えてファイルを転送するときに顕著に現れます。送信者も受信者も、1000/1000メガビットの驚異的な接続をしているかもしれませんが、TCPを使用した場合、レイテンシーのために効率的な通信ができず、ファイルを転送する際の有効なネットワーク帯域幅は10メガビットしかありません。

UDPはTCPの兄弟分です。主な違いは、UDPパッケージが決してACKÆedされないことです。送信者は、UDPパッケージが受信者に届いたかどうかを知ることはできません。つまり、信頼性の高いプロトコルではありません。しかし、ACKÆingがないので、非常に高速です。UDPは、ビデオ通話やオンラインゲームに最適です。これらのケースでは、UDPパッケージがいくつかドロップされても問題ありません。UDPパッケージは継続的に送信されるので、ビデオストリームの中では気になりません。オンラインゲームの場合も同様で、数ミリ秒のうちに最新のアップデートが施された新しいUDPパッケージが送られてきます。たまに数個のUDPパッケージが失われても、問題にはなりません。それよりも、できるだけ低いレイテンシーで素早くデータを転送することが重要です。

UDPは当初、ファイル転送には適していないと思われた。信頼性が全くないため、UDPパッケージのドロップにより、破損したファイルがあちこちに散見されます。また、帯域幅の調整機能がないため、クライアントにトラフィックが殺到し、実質的にオフラインになってしまうこともあります。UDPがファイルの転送に役立つためには、TCPと同じように信頼性を高める必要があります。まず、ドロップされたパッケージを再送し、帯域幅を調整できるようにする必要があります。また、セキュリティにも対応する必要があります。

ファイルメール UDPアクセラレーションプロトコル(UAP)について

Filemail UDP Acceleration Protocol (UAP)は、UDP上に構築されたカスタムメイドのファイル転送プロトコルで、高遅延の環境下でも非常に速い転送速度を実現します。UAPは、HTTPやFTPなどのTCPベースのプロトコルを容易に凌駕します。特に、50ms以上の遅延が発生するような地理的に大きな距離でファイルを送信する場合に有効です。

**ベンチマーク※2

ベンチマークによると、Filemail UDPはFTPやHTTPなどのTCPベースの転送方法に比べて、最大で200倍の速度を出すことができます。

ヨーロッパからオーストラリアへ、21回のネットワークホップを経てファイルを転送する際の効率的な転送帯域。両端を1000/1000mbitで接続。

Filemail UAPは、ファイルをAからBへ、最も安全で信頼性の高い方法で、非常に高速に転送することを目的として、ボトムアップで作られています。この革命的なプロトコルの特徴は以下の通りです。

IBM Aspera社やSigniant社のUDPベースの転送ソリューションとの非公式な比較では、ほとんどすべてのケースでFilemailの方が高速です。この性能差は、Filemailがハードウェア・アクセラレーション(特にAES-NI命令セットを使用)を利用していることによるものかもしれません。また、IBM AsperaとSigniantのプロトコルでは、帯域幅の調整やACKなどを行うために別のTCPチャンネル(SSH)を使用しています。Filemail UAPは、遅いTCPプロトコルに頼らず、UDPを使ってデータの転送、ACKの送信、帯域幅の調整、暗号化を行います。

セキュリティについて

すべてのUDPデータトラフィックは、AES Galois/Counter Mode (AES-GCM)暗号化によって保護されています。これは、今日の暗号化のゴールドスタンダードであり、転送されるデータが第三者によって傍受されないことを保証します。各転送セッションには個別の鍵があり、その鍵はクライアントとサーバー間でRSA(Rivest-Shamir-Adleman)暗号を用いて交換されます。

ハードウェアアクセラレーションによる暗号化

Filemail UAPは、AMDとIntelが数年前に導入したAES-NI命令セットを利用しています。この命令セットにより、ファイルメールUAPはデータの暗号化と復号化に専用のハードウェア・コンポーネントを使用することができます。これにより、転送速度が格段に向上します。AES-NIは、Microsoft Windows、macOS、Linux、iOS、AndroidなどのOSでサポートされています。また、Intel、AMD、ARM、VIA、Atmel、Samsung、Qualcomm、NXP、Broadcomなどのハードウェアメーカーも同様にサポートしています。

ソフトウェアとハードウェアの要件

Filemail UAPは低レベルのC++で書かれており、ほぼすべてのデバイスとオペレーティングシステム上で動作します。現在、Windows、macOS、Linux用のバイナリリリースがあります。Filemail Desktopは、UAPを利用した当社の主要な転送ツールです。コンソールアプリケーションも用意されています。Filemail UAPは大幅に最適化されており、帯域幅のスループットを最大化しながらも、メモリ使用量はわずか数メガバイトと非常に少なくなっています。また、最大速度でファイルを送信する際のCPU使用率は通常5%以下です。

双方向の転送加速

Filemail UAPは、Filemail Desktopでのファイルのアップロードとダウンロードの両方で使用されます。つまり、あなただけでなく、あなたの顧客やビジネスパートナーもこの技術を利用することができるのです。

Filemail UAPを始めよう

Filemail UAPは、Filemail Desktopに組み込まれており、ファイルの送信やダウンロードの際に自動的に有効になります。Filemail Desktopは無料で使用でき、ログインも必要ありません。加速を伝えよう。