輻輳制御とは

ふくそうせいぎょ

ネットワークが混みすぎてパケットが失われる状態(輻輳)を避けるため、送信側が送る量を調整するしくみ。TCPは輻輳ウィンドウをもち、スロースタートで急に増やした後は少しずつ増やし、パケットの損失を検出したら大きく減らす(AIMD)。損失や遅延の増え方、測った帯域などを手がかりにするCUBIC、BBRなどの方式がある。受信側の処理に合わせるフロー制御とは目的が違う。

「輻輳制御」は、2分野の3問の練習問題に出てきます(ネットワークの基礎, Web技術の基礎など)。

この用語の分野: ネットワークの基礎

輻輳制御の練習問題に挑戦

TCPの輻輳制御の基本的な考え方として正しいものはどれか。

  1. A受信側のバッファの空きを送信側に知らせ、バッファがあふれないようにする
  2. Bパケットの損失などを混雑のしるしとみなして、送信側が輻輳ウィンドウを小さくして送る量を減らし、混雑がなければ少しずつ増やす
  3. C混雑したルータが各送信元に送ってよい速さを数値で指示し、送信側はそれに従う
答えと解説を見る

正解:B. パケットの損失などを混雑のしるしとみなして、送信側が輻輳ウィンドウを小さくして送る量を減らし、混雑がなければ少しずつ増やす

ネットワークの途中のルータが混雑すると、待ち行列が伸びて遅延が増え、あふれたパケットは捨てられます。TCPの送信側は、ACKが返ってこないことや重複したACKから損失を推定し、自分で送る量(輻輳ウィンドウ)を減らします。接続の開始時は、スロースタートで1往復ごとにほぼ2倍に増やして空いている帯域を素早く探り、その後は少しずつ増やし、損失が起きると大きく減らします(加算的増加・乗算的減少)。実際に送れる量は、輻輳ウィンドウと受信ウィンドウの小さい方で決まります。増やし方や混雑の判断のしかたが異なるCUBICやBBRなどの方式が使われています。

1.5 MBのテキストのデータを、gzipで3分の1の大きさに圧縮して送る。帯域が10 Mbps、RTTが100 msで、データを送り始める前に、TCPの接続、TLSのハンドシェイク、HTTPのリクエストで合わせて3往復かかるとする。1 MB = 10^6 バイトとし、圧縮と展開の時間、ヘッダ、TCPの輻輳制御による待ちは無視する。データを受け取り終えるまでの時間に最も近いものはどれか。

  1. A約0.4 s
  2. B約0.7 s
  3. C約1.5 s
答えと解説を見る

正解:B. 約0.7 s

圧縮した後の大きさは 1.5 ÷ 3 = 0.5 MB で、ビットに直すと 0.5 × 8 = 4 Mビットです。これを10 Mbpsで送る時間は 4 ÷ 10 = 0.4 s で、送り始める前の3往復の 3 × 0.1 = 0.3 s を足すと、合わせて約0.7 sです。圧縮しなければ、1.5 MB = 12 Mビットの転送に 12 ÷ 10 = 1.2 s かかり、合計は約1.5 sになります。

解説の中の「輻輳制御」

「輻輳制御」が出てくる問題(3問)

  1. TCPの輻輳制御の基本的な考え方として正しいものはどれか。
  2. 1.5 MBのテキストのデータを、gzipで3分の1の大きさに圧縮して送る。帯域が10 Mbps、RTTが100 msで、データを送り始める前に、TCPの接続、TLSのハンドシェイク、HTTPのリクエストで合わせて3往復かかるとする。1 MB = 10^6 バイトとし、圧縮と展開の時間、ヘッダ、TCPの輻輳制御による待ちは無視する。データを受け取り終えるまでの時間に最も近いものはどれか。
  3. TCPのフロー制御で、受信側がウィンドウサイズ(受信ウィンドウ)を送信側に通知する目的として正しいものはどれか。

ネットワークの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

この用語が出てくる比較

関連する用語

TCP ルータ パケット RTT(往復遅延時間) TLS HTTP フロー制御 ICMP IP(インターネットプロトコル) IPアドレス

用語集の一覧へ