第 4 章 ネットワークとエンドホストの連携による遅延の増大への対応 47
4.2 FR-TCP の提案
4.2.3 FR を意識した TCP 輻輳制御機構
ER ER ER ER Destination Source
ネットワークA ネットワークB
契約レート:10Mbit/s 集約内フロー数:10
FR:1 Mbit/s
契約レート:10Mbit/s 集約内フロー数:5
FR:2 Mbit/s
④FR=1Mbit/s
が通知される ①FR=1Mbit/s
を記述 ②FRの変更を
行わず ③通知された
FRをコピー
図 4.4: FRの通知機構
するので,トランスポート層の情報として送信側ホストへ通知される必要がある.しかし ネットワークノードであるルータが参照できるのは基本的にネットワーク層までであり,
トランスポート層の情報は参照しない.そのため,TCP, IPどちらか一方のみにしかFR オプションを定義しない場合,FRを伝達するためにはルータ,もしくは送信側ホストの どちらかにおいてレイヤ・バイオレーションを引き起こしてしまう.
そこで提案方式では,TCPのECN機構[12]において送信側ホストへ輻輳発生信号(ECN) を通知する際の手順を参考に,TCP, IP両方にFRオプションを定義する.ネットワーク 中のルータではFRをIP FRフィールドに記述し,受信側ホストにおいて到着パケットか らFRの値を取り出してACKパケットのTCP FRフィールドへコピーすることで,レイ ヤ・バイオレーションを起こすことなくFRをトランスポート層の情報として送信側ホス トへ伝達する.
ただし,ECNとFRの通知機構を比較した場合,前者はビットをセットするのに対し 後者はフィールドに値を記入するものであるため,FR通知機構の方がその処理により大 きなコストがかかると考えられる.
4.2.3.1 FRに合わせた送信帯域の調節
提案輻輳制御固有の機能の1つとして,通知されるFRに合わせて送信帯域を調節する 輻輳ウィンドウ制御を提案する.これは,輻輳ウィンドウ制御のパラメータの1つである
ssthreshを常にFRに対応する値に設定することによって実現される.
ssthreshはスロースタートフェーズと輻輳回避フェーズの境界値として用いられてい
る.またTCP Renoでは,ssthreshは再送処理後の輻輳ウィンドウの値と同じ値に設定
される.このことから,ssthreshは安定状態においてTCPコネクションが見積もるネッ トワーク中の利用可能帯域量の最低値といえる.そこで各コネクションがssthreshをFR に合わせた値にすることで,平均して常にFR以上の速度でデータ送信を行うことが可能 になると考えられる.
ACKパケットによりFRが通知される度に,送信側ホストはFR (bit/s)とTCPが見積 るRTT (sec),送信セグメントサイズSizesegを用いてssthreshF Rを次のように計算し,
ssthreshに設定する.
ssthreshF R = RT T ×F R
Sizeseg (Segments) (4.1)
式(4.1)の導出については後述する.
更にFR-TCPでは,再送処理後の輻輳ウィンドウとしてssthreshF Rの値を設定する.
FR-TCPのウィンドウ制御は,各コネクションがFRに対応する大きさにウィンドウを固
定した上で,残された使用可能な帯域量を見積りつつ送信を行うような制御となってい る.これはFRまではより積極的にデータを送信することを意味しており,積極的なデー タ送信によってネットワークへ過度の負荷を掛けることも懸念される.しかし,提案ウィ ンドウ制御では相対的にRTTの大きなコネクションがより積極的にデータを送信すると 共に,相対的にRTTの小さなコネクションがより控え目にデータを送信するような状態 へ導くため,集約コネクション全体のデータ送信を考えた場合,ネットワークへの影響は 既存のTCPと変わらないと考えられる.
なお,再送信タイマのタイムアウトによってパケットの廃棄を検出した場合には,転送 路の故障や資源供給の失敗による重度の輻輳の発生によってネットワークが帯域保証サー ビスを実行できない状態に陥っていると考えられる.そのため,通常どおり輻輳ウィンド
ウを1 (または2)にセットしてスロースタートアルゴリズムを実行する.
式(4.1)は以下のように導いた.
輻輳ウィンドウW は,そのコネクションが送信したデータの内,ACKを受け取って いないデータ量,すなわちネットワーク中に存在しているデータ量を表している.通常,
TCPは輻輳ウィンドウ分のデータをバースト的に送信し,RTT時間分待った後にそれら のデータに対するACKを受け取ることから,TCPの平均送信帯域は次のように近似さ れる‡.
‡RTTの見積り誤差およびネットワーク中のパケット廃棄による再送処理により値には誤差が生じる.
SendRate= W
RT T (4.2)
ここで上で説明した理由から,安定状態における平均送信帯域の最低値はssthreshを 用いて次のように表される.
SendRatemin = ssthresh
RT T (4.3)
これより式(4.3)中のSendRateを目標値であるFRに置き換えることで,FRに合わせ たssthreshF Rを計算する式(4.1)が導かれる.
4.2.3.2 ECN 機構[12]の利用
前節で説明したウィンドウ制御に加え,FR-TCPではTCP ECN機構を利用した制御 を行うことを提案する.具体的にはECNによって輻輳が通知された際に,輻輳ウィンド ウをssthreshF Rに設定する.
ECNを採用する理由として,ECNによって再送処理に伴う送信帯域の低下を極力抑え ることが可能になる点が挙げられる.TCP輻輳制御では,重複ACKの受信や再送信タ イマのタイムアウトによってパケットの廃棄を検出した場合,通常のデータ転送に優先 して廃棄されたパケットの再送処理を行う.この場合,再送処理中は新しいパケットを送 信できないため,その期間中の送信帯域は目標値であるFRを下回ってしまう.また,再 送処理にかかる時間はRTTに比例すると考えられるため,再送処理を行うことによって RTTの異なるコネクション間のデータ送信の不公平性の増大が懸念される.FR-TCPの 再送制御はTCP Renoと同じ制御を行う.そのため前節で説明したFRに合わせたウィン ドウ制御を用いただけでは集約内の全てのコネクションがFR以上での送信を実現できな いと考えられる.
図4.5に,提案ウィンドウ制御のみを用いた場合の送信側ホスト (FRを1.5 Mbit/sと する) におけるスループットの時間変化を示す.2.4.2で行ったシミュレーションと同じ条 件で行い,フロー#1のスループットの時間変化を計測した.
図のように,送信中には廃棄されたパケットの再送処理に伴い,送信帯域が著しく低下 する期間があることが分かる.この事実から,集約内の全てのコネクションが平均して FR以上の速度でデータを送信するためには,セグメント廃棄によって発生する送信帯域 の低下を生じさせないような仕組みが必要である.
以上の理由から,FR-TCPでは安定してFR以上の速度でデータ送信を行うために,ECN を利用した制御を行う.ECNを用いることで,FR-TCPはECNが正常に動作する限り はパケット廃棄による重複ACKの受信よりも速やかに,かつネットワーク内でパケット が廃棄されること無く輻輳発生を検知することが可能となる.そこでFR-TCPではECN によって輻輳発生を検知した際に,セグメント再送処理後の場合と同様に輻輳ウィンドウ
をssthreshF Rに設定することで,送信帯域が安定してFR以上となるようなデータ送信
を実現する.
0 0.5 1 1.5 2 2.5
0 20 40 60 80 100 120 140 160 180 200
Throughput [Mbit/s]
Time [sec]
図 4.5: 送信側スループットの時間変化(提案ウィンドウ制御のみを利用)