ファイルメールUDP転送アクセラレーション
今日のインターネットでは、主に2つのプロトコルが使われている:TCPとUDPである。TCPはインターネットの主力だ。UDPはスピード重視のサラブレッド。
TCPとは?
このプロトコルには信頼性メカニズムが組み込まれており、TCPパッケージが途中で紛失した場合、送信者は自動的に受信者に再送信する。
TCP:インターネットのバックボーン
ファイアウォール、ルーター、スイッチはTCPトラフィックに最適化されているため、今日インターネット上で行われるほとんどのタスクでTCPが使用されている。ウェブブラウザ、電子メールクライアント、Facebook、Instagram、Snapchat、株価ティッカー、Spotify、Slack、FTPクライアントなどは、通常TCPを使用するアプリケーションの一部です。ブラウザ経由でファイル転送ソリューションを使用している場合、TCPを使用している可能性が高い。
信頼性の確保:TCPにおけるAckメッセージの役割
受信者がTCPパッケージを受信すると、ACK(Acknowledge)メッセージが送り返され、パッケージが正しく受信されたことを送信者に確認します。この比較的単純なメカニズムにより、TCPプロトコルは非常に信頼性が高く、開発者にとって使いやすいものになっています。
送信者にACKメッセージを送信すると、パフォーマンスが著しく制限されることがあります(送信者は、パッケージ-2を送信する前に、パッケージ-1のACKを待たなければならないため)。TCPを悩ませる問題のいくつかを軽減するために、長年にわたってプロトコルに多くの改良が加えられてきました。
スケーラブルなウィンドウサイズ
送信者が複数のパッケージを送信し、同時に複数のACKを待つことを可能にする。送信されたがまだACKされていないデータは、しばしばData In Flightと呼ばれる。つまり、送信者は受信者の処理能力を超える速度のデータを受信者に送信しない。
帯域幅スロットリング
これは基本的に、10Mbitのクライアントが1000Mbitのサーバと通信する際に、サーバからのトラフィックに圧倒されることなく通信できるようにするものです。TCPでは、常に一定数のデータしか転送されないという考え方に基づいています。
選択的ACK
受信者が任意の順番でACKパッケージを受信できるようにする。パッケージ-1が紛失した場合、パッケージ-1を再送する前にパッケージ-2を送信し、ACKしても支障はない。
TCPの欠点
TCPトラフィックを地理的に大きな距離にわたって送信する場合、パフォーマンスは著しく低下する。トラフィック(およびACK)が受信者に届くまでに、より多くのルーターやネットワークインフラを経由しなければならないため、より多くの時間がかかります。
この時間は遅延と呼ばれます。同じ国でホストされているウェブサイトを閲覧している場合、待ち時間は10ミリ秒程度になることもあります。別の大陸でホスティングされているウェブサイトを閲覧すると、レイテンシが増加するため、ページの読み込みに時間がかかることがすぐにわかります。
TCPの待ち時間の問題は、大陸を越えてファイルを転送するときに非常に顕著になります。送信側と受信側の両方が1000/1000メガビットという驚異的な接続を使用しているにもかかわらず、TCPを使用した場合、遅延のために効果的な通信ができないため、ファイルを転送する際の有効なネットワーク帯域幅は10メガビットしか得られません。
UDPとは?
UDPはTCPの兄弟です。主な違いは、UDPパッケージは決してACKされないということです。送信者はUDPパッケージが受信者に届いたかどうか分からないので、信頼できるプロトコルではありません。しかし、ACKがないため、非常に高速です。
UDP:信頼性よりもスピードを優先
UDPはビデオ通話やオンラインゲームに最適です。このような場合、UDPパッケージがいくつかドロップしても問題にはなりません。UDPパッケージは継続的に送信されるため、ビデオストリームでそれに気づくことはありません。オンラインゲームの場合も同様で、数ミリ秒以内に最新のアップデートを含む新しいUDPパッケージが送信されます。UDPパッケージが時々失われることは問題ではありません。それよりも、可能な限り低遅延で素早くデータを転送することが重要なのだ。
ファイル転送におけるUDPの信頼性向上
UDPは当初、ファイル転送には向かないように思われるかもしれない。信頼性がまったくないため、UDPパッケージがドロップされ、あちこちでファイルが破損することになる。帯域幅を調整する機能がないため、クライアントはトラフィックであふれ、実質的にオフラインになる。UDPがファイル転送に有用であるためには、TCPと同じように信頼できる必要がある。手始めに、ドロップされたパッケージは再送される必要があり、帯域幅の調整が可能でなければならない。セキュリティにも対処する必要がある。
ファイルメール UDP 転送高速化プロトコル
Filemail UDP Acceleration Protocol (UAP) は、UDP の上に構築されたカスタムメイドのファイル転送プロトコルです。HTTP や FTP などのすべての TCP ベースのプロトコルを容易に凌駕し、特に遅延が 50 ms を超えるような地理的に大きな距離を越えてファイルを送信する場合に威力を発揮します。
最大200倍高速化
ベンチマークによると、Filemail の UDP 転送アクセラレーションは、FTP、HTTP、その他の TCP ベースの転送方法よりも最大 200 倍速いことがあります。
Filemail UAP は、A から B へ、最も安全で信頼性の高い方法で、極めて高速にファイルを転送するという 1 つの目標を念頭に置いて、ボトムアップから構築されています。以下は、この革命的なプロトコルの特徴の一部です。
ヨーロッパからオーストラリアへ21ホップのネットワークを経由してファイルを転送する際の実効転送帯域幅。両端は1000/1000Mビット接続。
IBM Aspera、GlobalScape、SigniantによるUDPベースの転送ソリューションとの非公式な比較によると、ほとんどすべてのケースでFilemailの方が高速です。性能の違いの一部は、Filemail がハードウェア・アクセラレーションも利用しているためかもしれません(特に AES-NI 命令セットを使用しているため)。また、IBM AsperaとSigniantのプロトコルは、帯域幅の調整、ACKなどを行うために別のTCPチャネル(SSH)を使用しています。Filemail UAPは、より低速なTCPプロトコルに依存しません。データ転送、ACK、帯域幅調整、暗号化にはUDPを使用します。
セキュリティ
すべてのUDPデータ・トラフィックは、AESガロア/カウンタ・モード(AES-GCM)暗号化によって保護されています。これは今日の暗号化におけるゴールド・スタンダードであり、転送されるデータが第三者によって傍受されないことを保証します。各転送セッションには個別の鍵があり、鍵はRSA(Rivest-Shamir-Adleman)暗号を使用してクライアントとサーバー間で交換されます。
ハードウェア高速暗号化
Filemail UAPは、AMDとIntelが数年前に導入したAES-NI命令セットを利用しています。この命令セットにより、Filemail UAPはデータの暗号化と復号化に専用のハードウェア・コンポーネントを使用することができます。これにより、転送速度に大きな違いが生まれます。AES-NIは、Microsoft Windows、macOS、Linux、iOS、Androidなどのオペレーティング・システムでサポートされています。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 でファイルをアップロードするときにもダウンロードするときにも使用されます。つまり、あなただけでなく、あなたの顧客やビジネスパートナーもこのテクノロジーを活用できるのです。