令和4年度 ネットワークスペシャリスト 午前Ⅱ 問1 TCPウィンドウサイズ
本問は、ネットワークの帯域幅と往復遅延時間(RTT)から、TCP転送効率を最大化するために必要なウィンドウサイズを計算する能力を問うものです。
送信側と受信側の間の通信経路の帯域幅が 1G ビット/秒、往復遅延時間(RTT)が 10 ミリ秒であるとき、TCP のスライディングウィンドウ方式を用いて転送効率を 1.0 にするために必要な最小のウィンドウサイズは何バイトか。ここで、1G ビット/秒は $10^9$ ビット/秒とする。
ア 12,500 イ 125,000 ウ 1,250,000 エ 12,500,000
【解説】
TCPのスライディングウィンドウ方式において、転送効率を1.0(100%)にするためには、送信側がACK(確認応答)を受け取る前に、ネットワークの「パイプ」をデータで満たし続ける必要があります。このとき必要なウィンドウサイズは「帯域遅延積(BDP: Bandwidth-Delay Product)」と呼ばれます。
1. 必要な計算要素の単位変換
帯域幅 ($B$): $1\text{Gbps} = 10^9 \text{ bits/second}$
往復遅延時間 ($RTT$): $10\text{ms} = 0.01 \text{ seconds}$
2. ウィンドウサイズの計算(ビット単位) 転送効率を1.0にするためのビット数は、1秒間に送れるビット数にRTTを掛けたものになります。 $$10^9 \text{ bits/s} \times 0.01 \text{ s} = 10,000,000 \text{ bits}$$
3. バイト単位への変換 問題は「何バイトか」を問うているため、8ビット = 1バイトで割ります。 $$10,000,000 \text{ bits} \div 8 = 1,250,000 \text{ Bytes}$$
したがって、最小のウィンドウサイズは 1,250,000 バイト となります。
Mermaid図解:BDPの概念
sequenceDiagram
participant S as 送信側
participant N as ネットワーク(パイプ)
participant R as 受信側
Note over S,R: ウィンドウサイズ = 帯域幅 × RTT
S ->> N: データ送信開始
N ->> R: パイプをデータで満たす
R ->> N: 最初のACKを返送
N ->> S: RTT(10ms)後にACK到達
Note over S: この間、送信が途切れない
サイズが必要
【選択肢の吟味】
| 選択肢 | 判定 | 解説 |
|---|---|---|
| ア | 誤り | 12,500。計算過程でRTTの単位(0.01)やビット換算を誤ると導かれる数値です。 |
| イ | 誤り | 125,000。帯域幅を100Mbpsと誤認した場合や、桁数ミスによる誤りです。 |
| ウ | 正解 | 上記計算の通り、帯域幅とRTTの積をバイト換算した値に一致します。 |
| エ | 誤り | 12,500,000。RTTを100msとした場合や、10倍の誤計算をした際の値です。 |
【ポイント】
BDP(帯域遅延積): 転送効率を最大化するための理論上のウィンドウサイズ。
単位変換の徹底: G(ギガ)は$10^9$、m(ミリ)は$10^{-3}$、Byteへの変換は$\div 8$を確実に行う。
TCPウィンドウ制御: ウィンドウサイズがBDPより小さいと、ACK待ちが発生し帯域を使い切れない。

