SPONSORED

SACK(さっく)

最終更新:2026/4/28

SACKは、TCP通信において、受信側が送信側に未受信のパケットを通知するために使用するTCPオプションである。

別名・同義語 選択的肯定応答

ポイント

SACKオプションは、輻輳制御の効率を向上させ、再送パケット数を削減する効果がある。特に、高速再送/高速リカバリアルゴリズムと組み合わせて使用される。

SACKの概要

SACK (Selective Acknowledgement) は、TCP (Transmission Control Protocol) のオプションの一つであり、受信側が送信側に対して、受信済みのパケットを個別に通知するための仕組みです。従来のTCPでは、受信側は受信したパケットのうち、最も高いシーケンス番号を持つパケットまでの受信を肯定応答 (ACK) として送信していました。この場合、途中のパケットが失われたとしても、受信側は失われたパケットを特定できず、送信側は失われたパケットから再送する必要がありました。

SACKオプションを使用することで、受信側は受信済みのパケットの範囲を具体的に示すことができます。これにより、送信側は失われたパケットのみを再送することが可能になり、ネットワーク効率を向上させることができます。

SACKの動作原理

SACKオプションは、TCPヘッダのオプションフィールドに格納されます。受信側は、受信したパケットのシーケンス番号とパケット長に基づいて、受信済みのパケットの範囲を記録します。そして、ACKパケットを送信する際に、SACKオプションに受信済みのパケットの範囲を記述します。

送信側は、SACKオプションを受け取ると、受信側がどのパケットを受信済みであるかを把握し、失われたパケットのみを再送します。これにより、不要な再送を避けることができ、ネットワークの帯域幅を有効活用することができます。

SACKと高速再送/高速リカバリ

SACKオプションは、TCPの高速再送/高速リカバリアルゴリズムと組み合わせて使用されることが一般的です。高速再送/高速リカバリアルゴリズムは、パケットロスを検出し、迅速に再送を行うための仕組みです。SACKオプションを使用することで、高速再送/高速リカバリアルゴリズムは、より正確にパケットロスを検出し、効率的に再送を行うことができます。

SACKの利点

  • ネットワーク効率の向上
  • 再送パケット数の削減
  • 高速再送/高速リカバリアルゴリズムとの相乗効果

SACKの注意

  • SACKオプションは、TCPのオプションであるため、両端のホストがSACKオプションをサポートしている必要があります。
  • SACKオプションは、ネットワークの輻輳を緩和するものではなく、あくまで再送効率を向上させるためのものです。

SPONSORED