• 検索結果がありません。

TCP とセグメント ロス

ドキュメント内 ( ) (ページ 33-36)

Time vs. Cwnd

2.4 TCP とセグメント ロス

送信セグ メントのロスが発生した場合,TCP2.1.6 及び,2.1.7で述べたよ うに振る舞う.本節では,この振る舞いの問題点について述べる.

2.4.1 セグメント ロスの影響

TCPはセグ メントロスが発生する毎に 送信量を2分の1にする.これはネッ トワーク帯域占有率の大幅な低下を引き起こす原因となる.

Mathisら [1]の試算によれば,再送タイムアウトが発生しない場合にTCP

占有できる帯域幅の長時間平均は以下で示される.

BW = MSS

RTT 2

C

p 1

2

ただし ,BW は帯域幅,p はセグ メントロスの確率であり,ロス時には fast

retransemit 及び fastrecoveryアルゴ リズムが機能するものとする.また,受信 側 TCPは遅延応答確認を行わないとする.周期的にセグメントロスが発生する 場合,C =1:22となることがわかっている.

RTT 20ms,MTU 1500byteのネットワークにおいて,セグメントロスの確率 と上式による帯域幅 BWの関係を表 1に示す.

TCP はセグ メントのロス量に関わらず一律で送信量を2分の1にし,その後 のcwnd 増加量も一定であるので,ロス発生前後でのスループットの変動が大き く,また,ロス発生時の cwnd の値に cwndが回復するまで時間がかかるため,

ネットワークの帯域を有効に利用することができない.

複数のセグ メントがロスするなどして fast retransemit 及び fast recoveryア ルゴ リズムが機能できず再送タイムアウトが発生した場合はさらに TCPが占有 する帯域が低下する.また,再送タイムアウトは最小値が,TCP Reno の場合

1500ms であり,今日のネットワーク状況と比較すると,再送タイムアウト待ち

で送信ができない状態は,送信が中断してしまっているとみなすことができる.

また,TCP Reno においては,再送タイムアウト時間の粒度は 500ms単位であ り,粒度が粗い.

再送タイムアウトにより送信が中断し,cwndが極端に低下したTCP コネク ションは,他の TCPコネクションやストリーム等にネットワークの開いた帯域 を利用されてしまうため,利用できる帯域が減少してしまい.cwndの改善がな かなか行われなくなる.結果として,再送タイムアウトの発生によって劇的にス ループットが低下してしまう.また,送信量が少なくなったコネクションの送信 量が少ないままになるということは,ネットワーク利用についての公平性も低い.

2.4.2 本研究の着眼点

以上より,セグメントロスに対して TCP のスループットを向上するためには,

以下のことが考えられる.

1. fast retransmit の頻度を増加させ再送タイムアウト待ちの頻度を減らす

2. セグメントロス発生時にネットワークの状態を多段階に推測し,ネットワー クへの送信量の調節を従来よりきめ細やかに行う.

3. 再送タイムアウトの時間を短くする.

TCP のスループットの向上を考える際は,コネクション間の公平性や,ネッ トワークでの輻輳の発生を防止することもあわせて考慮しなくてはならない.公 平性が低く,また容易にネットワークの輻輳を招く TCPが広く氾濫してしまう と,インターネット全体でスループットが劇的に低下する可能性があるからであ る[4]

上記第3項目の再送タイムアウトの時間を短くすることについては,短くしす ぎるとセグメントロス発生時のネットワークの輻輳をさらに悪化させてしまう可

能性が高い.再送タイムアウトは TCP の輻輳制御,再送制御にとって最終的な 手段であるため,慎重にならざるを得ない.

そこで,本研究では,上記の第1,第2項目について着目した.

ドキュメント内 ( ) (ページ 33-36)