ACK (一般)

読み:アック
外語:ACK: ACKnowledge , kvitanc/a sign/o エスペラント
発音:'#ék
品詞:名詞

情報通信における制御コードの一つで、肯定的な返答や通信に対する応答を意味する。一般には、通信がエラーなく到達したことを示すメッセージのこと。

ASCIIでは0/6(0x06)を、EBCDICでは2/14(0x2e)を使うのが一般的である。

また派生して、TCPACKフラグが立ったパケットや、あるいは何らかのプロトコルにおいて肯定的な返答について、それをACKと呼ぶこともあり、そういった物も含めてACKの返信が戻ることを「ACKが返る」のように表現する。

重要性

通信プロトコルにおいて、ACKの送受信は重要なものである。要求が正常に受け付けられたかどうかを判断せねば、安定した動作は期待できないからである。

このため多くのプロトコルではACK返信の機能を持っている。単にACKの意味だけをもったパケットを返信する場合と、要求に対応応答をACKとするものとがある。

レガシーな通信媒体

レガシーな通信媒体ではACK文字を返信することでACKとする実装が多い。RS-232Cや類する媒体を用い、ほぼ物理層の規定のみで使われるような世界では、この方式が採用される。

また、仮にプロトコルを用いていても、インターネット用プロトコルのような複雑なものは当時殆どなかった。このため、次のプロトコルはACK文字をACKに採用している。

また、パラレルインターフェイス(プリンタポートやIEEE 1284など)では、ACK信号を送るための線を1本以上用意することで、これを実現することもある。

インターネット

インターネットの世界では、TCPがヘッダ内にACKフラグを持ち、同時にデータを返信することができる。このことから、ここで使われる多くのプロトコルも同様に設計されることが多い。

次のプロトコルは、ACKとして情報が返信される代表的な例である。

DHCPDNSNTPなど、要求に応じて返信されるプロトコルは、その返信が一般にACKとして扱われる。

通信以外の世界でも、ACKは様々な表現として使われている。