Compound TCP

久々に本業(?)な話題です.日曜位まで気づかなかったのですが,今日Windows Vistaが発売されたそうで.個人的には,1,2年位はXPのままで良いかなぁというのが本音ですが,それは置いておいて.

私の研究分野で一番気になるのが,Windows VistaからCompound TCPTCPの標準となる,と言う部分です.これまでにも,TCPはいろいろと改善されてきましたが(NewRenoの高速再送の変更,SACKオプションなど)ベースとなる動きは20年以上もの間,TCP Renoのままでした.しかしながら,Linuxの方も少し前からBIC TCP(CUBIC TCP)と呼ばれるTCPが標準となっているため,Windows Vistaが普及すると遂にインターネットからTCP Renoが(ほぼ)消滅することになります.

それで,気になるというのはTCP Friendlinessという言葉.この分野で何かをする時に,“既存のTCP(≒TCP Reno)と公平(にデータ転送速度を分け合える)か”ということは大きな関心事のひとつでした.新たにTCPを提案する場合はもちろん,UDPに関する研究においてもTFRC(TCP Friendly Rate Control)などのように“TCP (Reno)と公平か”という事についてはいろいろと議論されてきました.

TCP Friendlinessに関して議論されるときは大別して2通りあります.

  • TCP Renoと競合した場合に負ける(データ転送速度がTCP Renoよりも低い)
  • TCP Renoと競合した場合に勝ちすぎる(TCP Renoのデータ転送速度を不当に押し下げる)

前者に対しては特に異論はありません.実際,TCP VegasFAST TCPなどの“賢い”手法がデファクトスタンダードにならないのは,TCP Renoに負けるからという理由がかなり大きなウェイトを占めています.ですが,後者に関しては少し疑問を持っていました.個人的には,同じTCPを使っているフロー同士で公平性(Fairness)を保つことができるならば,別にTCP Renoに勝ってしまっても良いのではないのかと思っています.TCP Renoのデータ転送速度が低くなるのならば,そのうちTCP Renoは淘汰されて新しいTCPで埋まるから問題ないのでは,と思うからです.

そういう意味で,これから数年間はなかなか興味深い期間かなと思います.Windows Vistaが発売してから世間に浸透し,TCP Renoが淘汰されるまでの間にどのような問題が発生してくるのか,あるいは何も問題が発生しないのかを観察することで,上記の2番目の議論は必要だったのかどうかの一つの答えが得られるのでは,と思います.