入門と銘打っているが、半分ぐらい輻輳制御アルゴリズムの解説をしているなかなかクレイジーな本。でも解説の仕方がいいのか、不思議とわかりやすい。
輻輳制御アルゴリズムとは、TCP通信で輻輳(通信量過多)が発生しないよう、データ送信量を決める重要なパラメータの1つ輻輳ウィンドウサイズ(cwnd)の算出方法を指す。
輻輳制御アルゴリズムは多数提案・実装されており、輻輳を避けつつネットワークのパフォーマンスを向上するという目的を達成するため、「スロースタート」「輻輳回避」「高速リカバリー」などの機能を持つ。
これらを実現するためには輻輳の検出が必要となるが、その検出方法としておおまかに下記の3つのタイプに分類することができる。
・パケットロスを輻輳と判断するLoss-based
・RTTの増加を輻輳と判断するDelay-based
・パケットロスとRTTを複合的に見て輻輳と判断するHybrid
本書では、詳しさにばらつきはあるが、なんと計15個の輻輳制御アルゴリズムが紹介されている。
また単に数式を並べるだけでなく、それぞれのアルゴリズムが提案された背景と、利点欠点をあげ、さらにネットワークシミュレータns-3とプロトコルアナライザWiresharkを使って輻輳ウィンドウがどのように遷移するかを実験しているため、とてもおもしろい。
ネットワークの特性上必要となる、古いアルゴリズムと共存するための工夫なども紹介されていて大変興味深い。
本書で紹介されている中で最も新しいBBRという輻輳制御アルゴリズムはGoogleが2016年9月に提案したということで、まだ発展中の分野であることがよくわかる。
最終章では、ネットワーク技術の最近の動向にも言及している。
・5Gに絡めたマルチパスTCPの紹介
・IoT関連でTFO(TCP Fast Open)
・データセンタ向けのDCTCP
・自動運転関連でMEC(Multi-access Edge Computing)