この記事では,マルチメディア通信に関わる知識を簡単にまとめていきたいと思います。ただし,全ての知識が詳しく網羅されている訳ではありません。また,分かりやすいように多少意訳した部分もあります。ですので,参考程度におさめていただければ幸いです。
間違えている箇所がございましたらご指摘ください。随時更新予定です。他のマルチメディア通信に関する記事はコチラのページをご覧ください。
ウィンドウサイズとスループット
ウィンドウサイズとは,一度に送ることができるデータ量のことを指します。スループットとは,単位時間あたりの処理能力のことを表します。例えば,1Mbpsというのは,1メガ・ビット・パー・セカンドですので,1秒あたりに1メガバイトの処理能力を示します。ここでは,ウィンドウサイズとスループットの関係をみていきます。
スループットを求めるためには,データが送信者から受信者に送られて,再び送り返されるまでの時間「Round Trip Time(RTT)」が必要になります。RTTが既知のとき,以下のようにしてスループット$T_{max}$を求めることができます。ただし,$\rm{win}$はウィンドウサイズを表します。
\begin{align}
T_{max} &= \frac{\rm{win}}{\rm{RTT}}
\end{align}
例えば,光ファイバーの場合を考えてみます。送受信者間の距離は1000kmとします。また,ウィンドウサイズは64kB(byte)とします。
●光速は約18万km/s
●1000kmを往復10ms
\begin{align}
T_{max} &= \frac{64}{0.01} \\
&= 6400\;\rm{kBps}\\
&= 51.2\;\rm{Mbps}
\end{align}
ウィンドウサイズの拡張
技術の進歩に伴い,ウィンドウサイズが64kBでは足りなくなってしまいました。そこで,TCPのコネクション接続時に,オプションとして$a$の値を指定して,ウィンドウサイズを$2^{a}$倍するという拡張がなされました。もともと,$2^{16}$bitのウィンドウサイズで,オプション$a$として指定できる最大値は$14$であるため,理論上は最大で,
\begin{align}
2^{(16+14)}\;\rm{bit}
&=2^{30}\;\rm{bit}\\
&=2^{3}\;\rm{Gbit}\\
&=1\;\rm{GB}
\end{align}
のウィンドウサイズを指定できることになります。ただし,送信ホスト・受信ホストのデバイス共にウィンドウスケーリングオプションに対応している必要があります。