メディア

日米間でファイル転送世界記録を樹立した「MMCFTP」とは?5分で分かる最新キーワード解説(4/5 ページ)

» 2017年02月08日 10時00分 公開
[土肥正弘ドキュメント工房]

「MMCFTP」による課題解決

 MMCFTPは、こうしたTCP高速化の課題を解決するために開発された。その特徴は次の通りだ。

帯域探索はせず、ユーザーが速度を指定するマルチコネクション方式

 複数コネクション間での帯域競合が起きないよう、TCPが輻輳制御のために行う帯域探索をしないようにした。輻輳制御は2つの方法で行われる。1つはユーザー側が、自分で目標速度を指定することだ。ネットワーク遅延が大きくなった場合には、その指定速度を達成できるようにコネクションの数を自動的に増やす。もう1つは輻輳の回避のため、回線の帯域が不足した場合には速度を落とし、指定速度以上の帯域利用はしないようにすることである。

ペイロードは最大4GBまで拡張可能、ウィンドウサイズ上限は16EB

 データはTCPコネクション上で「チャンク」と呼ばれる論理パケットフォーマットで送る。チャンクは最大4GBまで拡張できる一定サイズで、そのフォーマットは、パケット順を示すシーケンシャルナンバーとコンテンツサイズ、コンテンツ(ペイロード/データの本体)で構成される。ウィンドウサイズの上限は16EBまでとのこと。ヘッダオーバーヘッドが少なく、ハードウェアでのネットワーク処理が効果的に機能すること、送信データ量当たりのシステムコール数が減るという効果があり、CPU負荷が軽減する。

異なるネットワークを経由しても1つの通信にまとまる

 論理パケットは経由するネットワークで分散して送信されても、受信側では1つの通信として受信できる。図1に見たように、SC16ではシアトル経由とロサンゼルス経由の2系統のネットワークで1つのファイルが転送された。これは新しくMMCFTPに追加された複数ネットワークを同時に使える「マルチホーム機能」のおかげだ。受信側でデータの順序制御が効き、問題が生じない。

 図3に、MCCFTPによるファイル転送の手順を示す。

MMCFTPによるファイル転送の手順 図3 MMCFTPによるファイル転送の手順(出典:NII)

 目標速度は、ユーザーが送信周期と周期ごとに送るチャンク数で指定する。例えば送信周期20ミリ秒ごとに10チャンクを送るとすれば、約1Gbpsの速度となる。送信側では送信周期のタイマーをセットし、タイマー発報ごとに指定チャンク数を送信する(送信はノンブロッキングIOを使用)。フロー制御により、一定速度を保ったデータ転送が行える。TCPコネクションは十分に用意しておき、必要な時に追加できるようにする。例えばLinuxの場合なら上限2万ほどのTCPコネクションが利用可能だ。

Copyright © ITmedia, Inc. All Rights Reserved.

会員登録(無料)

製品カタログや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます。