NAK

読み:ナック
外語:NAK: Negative AcKnowledge
品詞:名詞

情報通信における制御コードの一つで、否定的な返答や通信に対する応答を意味する。一般には、通信内容やコマンド等々にエラーがあり、要求が受け付けられなかったことを示すメッセージである。

ASCIIでは1/6(0x16)を、EBCDICでは3/13(0x3d)を使うのが一般的である。

また派生して、何らかのプロトコルにおいて否定的な返答についてNAKと呼ぶこともあり、そういった物も含めてNAKの返信が戻ることを「NAKが返る」のように表現する。

重要性

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

このため多くのプロトコルではACKやNAK返信の機能を持っている。

レガシーな通信媒体

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

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

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

インターネット

最近のインターネット用プロトコルの流行としては、昔よりは気の利いた方法がよく使われている。

「NAK」だけではエラーであることしか分からないが、最近のプロトコルは、正常か不正か、不正ならどのような不正なのかを番号によって管理し、返信してくるものが多い。

Webを見るために頻用されるHTTPでも、正常なら200、サーバ故障なら500などが返る。この場合、正常でない返信がNAKであると考えることができる。

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