<p><style_prompt></style_prompt></p>
<p>本記事は<strong>Geminiの出力をプロンプト工学で整理した業務ドラフト(未検証)</strong>です。</p>
<h1 class="wp-block-heading">令和5年度 ネットワークスペシャリスト 午前II 問2 TCPスライディングウィンドウ</h1>
<p>TCPのウィンドウ制御によるスループットの制限を計算する問題です。RTTとウィンドウサイズから転送効率を導き出すのが解法の核です。</p>
<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p>1Gビット/秒のLANを使用し,1,000kバイトのデータを,TCPを用いて転送する。RTT(Round Trip Time)が10ミリ秒,TCPのウィンドウサイズが64kバイトであるとき,転送時間は約何ミリ秒か。ここで,1kバイト=1,000バイトとし,TCPのオーバーヘッドやスライディングウィンドウ以外の影響は無視するものとする。</p>
<p>ア 1
イ 10
ウ 157
エ 1,000</p>
</blockquote>
<h3 class="wp-block-heading">【解説】</h3>
<p>TCPのスライディングウィンドウ方式では、応答確認(ACK)を待たずに送信できるデータの最大量が「ウィンドウサイズ」によって決まります。このため、通信路の帯域がいくら広くても、ウィンドウサイズとRTT(往復遅延時間)の関係によって実効スループットが制限されます。</p>
<p><strong>1. 1回のRTTで送信可能なデータ量の確認</strong>
問題文より、1回のRTT(10ミリ秒)ごとに最大でウィンドウサイズ分のデータ(64kバイト)を送信できます。</p>
<p><strong>2. データの転送に必要なサイクル数の計算</strong>
全データ量を1回に送信できる量で割ることで、必要なRTTの回数を求めます。
$$1,000\text{kバイト} \div 64\text{kバイト} = 15.625$$</p>
<p><strong>3. 合計転送時間の計算</strong>
必要なサイクル数にRTTを掛け合わせます。
$$15.625 \times 10\text{ミリ秒} = 156.25\text{ミリ秒}$$</p>
<p>最も近い値を選択すると、約157ミリ秒となります。</p>
<div class="wp-block-merpress-mermaidjs diagram-source-mermaid"><pre class="mermaid">
sequenceDiagram
participant S as 送信側
participant R as 受信側
Note over S,R: 1サイクル目 (64KB送信)
S ->> R: ウィンドウ分データを連続送信
R -->> S: ACK返信 (RTT: 10ms)
Note over S,R: 2サイクル目 (64KB送信)
S ->> R: 次のウィンドウ分を送信
Note over S,R: これを15.625回繰り返す
</pre></div>
<h3 class="wp-block-heading">【選択肢の吟味】</h3>
<figure class="wp-block-table"><table>
<thead>
<tr>
<th style="text-align:left;">選択肢</th>
<th style="text-align:left;">判定</th>
<th style="text-align:left;">解説</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align:left;">ア</td>
<td style="text-align:left;">誤り</td>
<td style="text-align:left;">1msは1Gbpsの帯域をフルに活用できた場合の理論値(8ms)よりも短く、不適です。</td>
</tr>
<tr>
<td style="text-align:left;">イ</td>
<td style="text-align:left;">誤り</td>
<td style="text-align:left;">10msはRTTそのものの値であり、全データを転送する時間ではありません。</td>
</tr>
<tr>
<td style="text-align:left;"><strong>ウ</strong></td>
<td style="text-align:left;"><strong>正解</strong></td>
<td style="text-align:left;">上記計算の通り、ウィンドウサイズによる制限を考慮した妥当な値です。</td>
</tr>
<tr>
<td style="text-align:left;">エ</td>
<td style="text-align:left;">誤り</td>
<td style="text-align:left;">1,000msは計算ミス、あるいは単位の取り違えによる数値と考えられます。</td>
</tr>
</tbody>
</table></figure>
<h3 class="wp-block-heading">【ポイント】</h3>
<ul class="wp-block-list">
<li><p><strong>帯域遅延積</strong>: ウィンドウサイズが「帯域(bps) × RTT(s)」より小さい場合、ウィンドウサイズがボトルネックとなりスループットが低下する。</p></li>
<li><p><strong>TCPの限界</strong>: 高速回線でも、遅延(RTT)が大きくウィンドウサイズが小さいと、転送速度は上がらない。</p></li>
<li><p><strong>単位計算</strong>: 試験では 1k=1,000 か 1,024 かの指定に注意すること(本問は1,000指定)。</p></li>
</ul>
本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証) です。
令和5年度 ネットワークスペシャリスト 午前II 問2 TCPスライディングウィンドウ
TCPのウィンドウ制御によるスループットの制限を計算する問題です。RTTとウィンドウサイズから転送効率を導き出すのが解法の核です。
1Gビット/秒のLANを使用し,1,000kバイトのデータを,TCPを用いて転送する。RTT(Round Trip Time)が10ミリ秒,TCPのウィンドウサイズが64kバイトであるとき,転送時間は約何ミリ秒か。ここで,1kバイト=1,000バイトとし,TCPのオーバーヘッドやスライディングウィンドウ以外の影響は無視するものとする。
ア 1
イ 10
ウ 157
エ 1,000
【解説】
TCPのスライディングウィンドウ方式では、応答確認(ACK)を待たずに送信できるデータの最大量が「ウィンドウサイズ」によって決まります。このため、通信路の帯域がいくら広くても、ウィンドウサイズとRTT(往復遅延時間)の関係によって実効スループットが制限されます。
1. 1回のRTTで送信可能なデータ量の確認
問題文より、1回のRTT(10ミリ秒)ごとに最大でウィンドウサイズ分のデータ(64kバイト)を送信できます。
2. データの転送に必要なサイクル数の計算
全データ量を1回に送信できる量で割ることで、必要なRTTの回数を求めます。
$$1,000\text{kバイト} \div 64\text{kバイト} = 15.625$$
3. 合計転送時間の計算
必要なサイクル数にRTTを掛け合わせます。
$$15.625 \times 10\text{ミリ秒} = 156.25\text{ミリ秒}$$
最も近い値を選択すると、約157ミリ秒となります。
sequenceDiagram
participant S as 送信側
participant R as 受信側
Note over S,R: 1サイクル目 (64KB送信)
S ->> R: ウィンドウ分データを連続送信
R -->> S: ACK返信 (RTT: 10ms)
Note over S,R: 2サイクル目 (64KB送信)
S ->> R: 次のウィンドウ分を送信
Note over S,R: これを15.625回繰り返す
【選択肢の吟味】
選択肢
判定
解説
ア
誤り
1msは1Gbpsの帯域をフルに活用できた場合の理論値(8ms)よりも短く、不適です。
イ
誤り
10msはRTTそのものの値であり、全データを転送する時間ではありません。
ウ
正解
上記計算の通り、ウィンドウサイズによる制限を考慮した妥当な値です。
エ
誤り
1,000msは計算ミス、あるいは単位の取り違えによる数値と考えられます。
【ポイント】
帯域遅延積 : ウィンドウサイズが「帯域(bps) × RTT(s)」より小さい場合、ウィンドウサイズがボトルネックとなりスループットが低下する。
TCPの限界 : 高速回線でも、遅延(RTT)が大きくウィンドウサイズが小さいと、転送速度は上がらない。
単位計算 : 試験では 1k=1,000 か 1,024 かの指定に注意すること(本問は1,000指定)。
ライセンス :本記事のテキスト/コードは特記なき限り
CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。
コメント