パケットロスと再送制御がスループット

パケットロス

パケットロスと再送制御がスループットに与える影響|TCP性能低下のメカニズム

ネットワークが「遅い」と感じる原因は帯域不足だけではありません。 実務では、パケットロス(Packet Loss)とそれに伴う再送制御が、 スループット低下の大きな要因になるケースが非常に多くあります。

特にTCP通信では、わずかなパケットロスでも輻輳制御が働き、 通信速度が大きく低下することがあります。

本記事では、パケットロスの発生原因、再送制御の仕組み、 それがスループットに与える影響について、エンジニア向けに詳しく解説します。

パケットロスとは

パケットロスとは、送信されたパケットがネットワーク途中で失われ、 受信側に届かない現象です。

通常、ネットワークは完全な伝送路ではないため、 一定の確率でパケットロスが発生します。

主な原因

  • ネットワークの輻輳(混雑)
  • ルータ・スイッチのバッファ不足
  • 無線通信の干渉
  • ケーブル品質や物理層エラー
  • 過負荷による機器の処理落ち

パケットロスは、単なる「データ欠損」ではなく、 TCPの動作に大きな影響を与えます。

TCPと再送制御

TCPは信頼性を確保するため、 受信側からACK(確認応答)を受け取る仕組みを持っています。


送信 → ACK受信 → 次送信

パケットロスが発生すると、ACKが返ってこないため、 TCPは再送を行います。

再送の種類

  • タイムアウト再送(RTO)
  • Fast Retransmit(重複ACKによる再送)

パケットロスがスループットに与える影響

TCPでは、パケットロスは「ネットワークが混雑している」というシグナルとして扱われます。

その結果、送信速度が意図的に低下します。

輻輳ウィンドウの減少


ロス発生
→ cwnd = cwnd / 2

この動作により、スループットが半分以下に低下する可能性があります。

タイムアウト時の影響


タイムアウト発生
→ cwnd = 1(初期化)
→ スロースタートから再開

この場合、通信速度は大幅に低下します。

スループット低下の数式モデル

TCPスループットは、パケットロス率に大きく依存します。


スループット ≒ 1 / √(ロス率)

例えば:

  • ロス率 0.01% → 高速通信維持
  • ロス率 1% → 大幅な速度低下

わずかなロスでも性能に大きな影響を与えることが分かります。

RTTとの相互作用

パケットロスの影響はRTT(往復遅延時間)とも強く関係します。


スループット ≒ 1 / (RTT × √ロス率)

RTTが大きい(遠距離通信)ほど、 ロスの影響はさらに大きくなります。

小パケットとPPSの影響

小さいパケットが多い場合、 ロスの影響はさらに顕著になります。

  • PPS増加
  • 再送頻度増加
  • CPU負荷増加

このため、VoIPやゲーム通信ではUDPが使われることが多いです。

無線ネットワークでの影響

Wi-Fiなどの無線通信では、 電波干渉や距離によってパケットロスが発生しやすくなります。

TCPはロスを輻輳と誤認するため、 本来必要ない速度制御が行われることがあります。

バッファブロートとの関係

バッファが大きすぎる場合、 パケットロスは減るものの、 遅延が増加する「バッファブロート」が発生します。


バッファ過剰
→ ロス減少
→ 遅延増加
→ TCP制御悪化

適切なバッファ設計が重要です。

実務での影響例

ケース1:WAN回線でのロス

数%のロスでも、スループットが1/10以下になることがある。

ケース2:VPN通信

暗号化オーバーヘッド+ロスで性能低下。

ケース3:Wi-Fi環境

ロスによる再送で体感速度が低下。

改善・最適化ポイント

  • パケットロスの原因特定(traceroute / ping)
  • QoSによる優先制御
  • 回線品質の改善
  • バッファサイズの調整
  • TCPアルゴリズム(CUBIC / BBR)の最適化
  • MTU調整によるフラグメンテーション回避

TCPとUDPの違い

項目TCPUDP
再送制御ありなし
ロス時の挙動速度低下継続送信
用途信頼性重視リアルタイム

よくある誤解

少しのロスなら問題ない

→ TCPでは致命的な影響が出る場合があります。

帯域が広ければ速い

→ ロスがあると速度は出ません。

再送すれば問題ない

→ 再送自体が性能低下の原因になります。

まとめ

パケットロスは、TCP通信においてスループット低下の主要因です。

TCPはロスを輻輳と判断し、 輻輳ウィンドウを縮小することで通信速度を制御します。

わずかなロスでも、特に高遅延環境では大きな性能低下を引き起こします。

ネットワークの性能改善には、 帯域だけでなく「ロス率」と「再送制御」の理解が不可欠です。

パケットロスを最小化することが、 高速で安定した通信を実現する最も重要なポイントの一つです。