図 ACKを使わずにウインドウ・サイズを決めることで遅延によるスループット低下を回避したUDT
図 ACKを使わずにウインドウ・サイズを決めることで遅延によるスループット低下を回避したUDT
[画像のクリックで拡大表示]

 ネットワークの高速化が進んでいる今,実は,IPとアプリケーションの間で動作するTCP(transmission control protocol)が大きなボトルネックとなっている。従来のTCPは,通信距離が長くなると,伝送路の帯域をいくら太くしてもスループットがほとんど上がらないのだ。この問題を解決すべく,各国のさまざまな研究グループが新しいプロトコルの開発を進めている。その中で,米イリノイ大学シカゴ校などの共同グループが開発したUDP(user datagram protocol)ベースのプロトコルがUDTだ。

 TCPを使うと長距離通信でスループットが出ない原因の一つは,連続して送信するパケット数(ウインドウ・サイズ)を適切な値に調整するまでに時間がかかるからである。

 TCPでは,まず小さなウインドウ・サイズで送信を開始する。受信側に余裕があるなら,受信側はもっと大きいウインドウ・サイズが使えることをACK(確認応答)で送信側にフィードバックする。この繰り返しによってウインドウ・サイズを調整するが,長距離通信ではACKの遅延が大きくなるので,調整に時間がかかってしまう(図)。

 そこでUDTでは,定期的に受信側が利用できる帯域幅を測り,それに基づいたウインドウ・サイズを送信側に伝えるようにした。送信側は,そのウインドウ・サイズの分だけパケットを送信する。実際のパケットの転送には,処理が軽いUDPを利用する。このしくみによって,常に限界近くのスループットまで伝送できるようになる。

 その半面,伝送路を従来のTCPとUDTで共有すると,UDTがほとんどの帯域を奪ってしまうという問題がある。高速プロトコルと従来のTCPを共存させるしくみの開発が今後の重要な課題になる。