確認応答(カクニンオウトウ)とは | 意味や読み方など丁寧でわかりやすい用語解説

確認応答(カクニンオウトウ)の意味や読み方など、初心者にもわかりやすいように丁寧に解説しています。

作成日: 更新日:

読み方

日本語表記

確認応答 (カクニンオウトウ)

英語表記

acknowledgment (アクノリッジメント)

用語解説

確認応答(かくにんおうとう)とは、データ通信において、送信側が受信側へデータを送信した後、受信側が正常にデータを受信したことを送信側へ通知する仕組みのことである。英語ではAcknowledgementと表記され、ACKと略されることも多い。

データ通信では、様々な要因によってデータが損失したり、破損したりする可能性がある。例えば、ネットワークの混雑、伝送路のノイズ、ソフトウェアのバグなどが考えられる。確認応答は、このような問題が発生した場合に、データの再送を促し、通信の信頼性を高めるために用いられる。

確認応答の基本的な流れは以下のようになる。まず、送信側は受信側へデータを送信する。次に、受信側はデータを受信すると、受信が正常に行われたことを示す確認応答信号(ACK)を送信側へ送り返す。送信側はACKを受信することで、データが正常に受信されたことを確認できる。もし、送信側が一定時間内にACKを受信できなかった場合、データが損失したか、受信側に到達しなかったと判断し、データを再送する。この再送処理によって、データが確実に受信側に届けられる可能性が高まる。

確認応答には、大きく分けて肯定応答と否定応答の2種類がある。肯定応答は、データが正常に受信されたことを示すACK信号を送る方式である。否定応答は、データが正常に受信されなかった場合に、受信側から否定応答信号(NAKまたはNACK)を送信側に送る方式である。否定応答を受信した送信側は、直ちにデータを再送する。肯定応答のみを使用する方式では、タイムアウト後に再送が行われるのに対し、否定応答を使用する方式では、より迅速な再送が可能となる。ただし、否定応答は、全ての通信プロトコルでサポートされているわけではない。

確認応答は、様々な通信プロトコルで利用されている。例えば、TCP(Transmission Control Protocol)は、インターネット上で最も広く利用されているプロトコルの一つであり、信頼性の高いデータ伝送を実現するために確認応答を使用している。TCPでは、送信側はデータを複数のセグメントに分割し、各セグメントにシーケンス番号を付与して送信する。受信側は、受信したセグメントのシーケンス番号に基づいて、ACKを送信する。もし、セグメントが損失した場合、送信側はACKを受信できないため、タイムアウト後にセグメントを再送する。この仕組みによって、TCPはデータが順番通りに、かつ確実に受信されることを保証する。

また、無線LAN(Wi-Fi)でも、確認応答が利用されている。無線LANでは、電波状況が不安定な場合があり、データが損失しやすい。そのため、IEEE 802.11という無線LANの規格では、MAC層において確認応答の仕組みが規定されている。送信側はデータを送信した後、受信側からのACKを受信する。ACKを受信できなかった場合は、データを再送する。

確認応答のオーバーヘッドも考慮する必要がある。確認応答を行うためには、ACK信号を送信する必要があり、その分の通信量が増加する。特に、小さなデータを大量に送信する場合、ACK信号のオーバーヘッドが無視できなくなる。そのため、通信プロトコルやアプリケーションによっては、確認応答の頻度を調整したり、複数のデータをまとめてACKを送信したりするなどの工夫が行われることがある。例えば、TCPでは、遅延ACKという仕組みがあり、受信側はACKをすぐに送信せずに、一定時間待機してから送信することで、ACKのオーバーヘッドを削減することができる。

確認応答は、データ通信の信頼性を高める上で不可欠な仕組みである。システムエンジニアを目指す上で、確認応答の概念を理解し、どのように様々な通信プロトコルで利用されているかを把握しておくことは非常に重要である。