線形ネットワークエンコーディングを使用したTCPテスト(TCP / NC)





MurielMédardの指揮の下、マサチューセッツ工科大学のエンジニアは長年TCPのTCP / NC拡張を開発してきました。これにより、パケット損失ネットワークの最大データ転送速度を維持できます。 まず、ワイヤレスWiFiネットワークでTCP / NCを使用することを計画しています。通常、パケット損失は2〜5%、場合によっては最大10%です。 最後に、実際の実験に至りました。



MTIのローカルWiFiネットワークでのTCP / NC最初のフィールドテスト中(パケット損失2%)、WiFi経由の平均データ転送速度は1 Mbpsから16 Mbpsに増加しました。 高速列車でのテスト(パケット損失5%)では、WiFi速度が0.5 Mbpsから13.5 Mbpsに増加することが示されました。 これは理論計算と完全に一致します。



これらのパケットを再送信することなく、受信側でのランダムなパケット損失の効果的な回復により、速度の向上が可能です。 パケットの回復は、代数の各コースで知られている通常の数学的操作、つまり線形方程式のセクションから実行されます。 線形ネットワークコーディングアルゴリズム自体は興味深いですが、それについては以下で説明します。 まず、ネットワークデータの転送速度が比較的小さい(2〜10%)パケット損失で急激に低下する理由を理解する必要があります。



この図は、失われたパケットの数に応じて、TCPネットワークのデータ転送速度が低下することを示しています。







TCPの問題は、このプロトコルがパケットの損失をネットワークの輻輳の兆候として「愚かに」認識することです。 TCPの作成時点では、まだWiFiと3Gはありませんでした。そのため、開発者がネットワークエンコーディングを適用して失われたパケットを回復しなかった理由は理解できます。



したがって、TCPには、輻輳に対する1つの「解決策」があります。ウィンドウを縮小することです。 ウィンドウを短縮するためのトリガーは、タイムアウト(TO)とトリプル複製(TD、パケット複製)です。 実際には、ウィンドウを短くすると、データ転送速度が数十倍人為的に過小評価されることになります。



ネットワークエンコーディングを使用すると、失われたパケットの最大可能数(理想的にはすべて)を回復することで問題を解決します。そのため、送信者は損失(ACK)に関する情報を受信せず、TDおよびTOを登録せず、ウィンドウを縮小しません-データ転送速度は同じままです。必要に応じて。



以下のグラフは、さまざまなパケット損失率に対するTCPおよびTCP / NCデータレートの理論計算を示しています。 ご覧のとおり、TCPの場合、速度は急激に低下しますが、TCP / NCの場合はほぼ同じレベルのままで、ネットワークエンコーディングのオーバーヘッド分ほど減​​少します(ところで、TCP / NCのオーバーヘッドは非常に小さいです)。 TCPのパケット損失が大きいほど、ネットワークコーディングの影響が大きくなります。







2009年のグラフは、さまざまなパケット損失レベルでのTCPおよびTCP / NCデータレートの比較を示しています。



TCP / NCの主な利点は、図に示すように、TCP自体を変更せずにTCP / IPスタックの中間層として接続できることです。







つまり、クライアントおよびサーバー側に適切なアプリケーションをインストールすることで、ソフトウェアレベルでもTCP / TSを実装できますが、開発者は、ルーターや他のデバイスにTCP / NCサポートを実装することをお勧めします。



線形ネットワークコーディングアルゴリズム



ネットワークコーディングでは、通信チャネルの容量を増やすために、中間ノードでデータパケットを変更します。 通常、示されている動作原理は、ノードの1つがパケットAおよびBにネットワークコーディングを適用し、XOR操作を使用してパケットA + Bを受信する、バタフライネットワークの古典的な例によって示されています。 これにより、左下隅にある欠落パッケージBと右下隅にある欠落パッケージAを復元できます。 その結果、このようなネットワークトポロジでネットワークコーディングを行わないと、1つのサイクルで両方の受信者にパケットAとBを同時に送信することができなくなるため、ネットワーク帯域幅が増加します。







TCP / NCプロトコルは、線形方程式ネットワークコーディングも使用します。 TCPストリーム内の各バイトと各パケットには、ガロア体F 256の係数が乗算され、線形方程式に適合します。 ネットワーク上でパケットは送信されませんが、自由度があります。 したがって、1つのパケットが失われた場合、既知の値、つまり近隣のパケットからパケットを復元できます。 TCPに適用される場合、この原則はよく示されています。







ネットワークコーディングは情報理論のかなり古いセクションであり、失われたパケット(ビット)を回復するためのさまざまなアルゴリズムが既にあります。 問題は、これまでのところ、強力なハードウェアのアップグレードやコンピューティングリソースの厳格な要件なしに、TCPネットワークにネットワークコーディングを適用する方法を誰も見つけていないことです。 TCP / NCプロトコルへのアドオンがこれを許可しているようです。 発明者はすでにCode On Network Coding、LLCを登録しておりライセンスを販売しています。 おそらく近い将来、多くのモバイルオペレーターがこのテクノロジーを導入することになるため、新しいバージョンのAndroidをインストールした後、インターネットが突然10倍速く動作し始めても驚かないでください。



TCP / NCを説明する科学論文

「ネットワークコーディングへの代数的アプローチ」(2003) 線形ネットワークコーディングの数学モデル。

「ネットワークコーディングはTCPに適合」(2009) 。 基本原則。

「ネットワークコーディングとTCPのインターフェイス:実装」(2009) 特定の実装のスキーム。

「ネットワークコーディングされたTCPスループットのモデリング:単純なモデルとその検証」(2010) 室内実験の結果。



All Articles