NACK
読み:ナック
外語:NACK: Negative ACKnowledge
情報通信における信号の一つで、否定応答。NAK、NOACKなど表記ゆれあり。
目次
概要
特徴
重要性
複数機能を兼ねるもの
手法
レガシーな通信媒体
インターネット
他の世界
概要
通信における否定的な応答で、一般には、通信内容やコマンド等々にエラーがあり要求が受け付けられなかったことを示す信号である。
通知方法も様々あるが、
物理層
に近い層では
信号線
のHI/LOWで表現することが多く、上位層に近い層では専用に用意された
制御コード
や通信手段によって実現する。
例えば、制御コードを用いる方法では、
ASCII
では1/5(0x15)を、
EBCDIC
では3/13(0x3d)を使うのが一般的である。
また専用に用意された通信手段による例としては、
TCPヘッダー
の
ACKフラグ
などがある。このように何らかのプロトコルにおいて否定的な返答を単にNACKと呼ぶことがあり、そういった物も含めてNACKの返信が戻ることを「NACKが返る」のように表現する。
特徴
重要性
通信プロトコル
において、NACKの送受信は重要なものである。要求が正常に受け付けられたかどうかを判断せねば、安定した動作は期待できないからである。
このため多くのプロトコルではACKやNACK返信の機能を持っている。
複数機能を兼ねるもの
I〓C
などは、ACKを複数の目的に用いているものの一つといえる。
送信の際にACKが返るが、シンプルな実装では無視されることが多い残念な信号である。
受信(スレーブ→マスター)の場合は、マスター側がACKかNACKを送信するが、これは正常な受信の通知というだけでなく、続けてデータを要求するか否かという機能も兼ねている。
手法
レガシーな通信媒体
レガシー
な通信媒体ではNACK文字を返信することでNACKとする実装が多い。RS-232Cや類する媒体を用い、ほぼ
物理層
の規定のみで使われるような世界では、この方式が採用される。
また、仮にプロトコルを用いていても、インターネット用プロトコルのような複雑なものは当時殆どなかった。このため、次のプロトコルはNACK文字をNACKに採用している。
XMODEM
YMODEM
また、
パラレルインターフェイス
(プリンターポートや
IEEE 1284
など)では、ACK信号を送るための線を1本以上用意し、その信号レベルによってこれを実現することもある。
インターネット
最近のインターネット用プロトコルの流行としては、昔よりは気の利いた方法がよく使われている。
「NACK」だけではエラーであることしか分からないが、最近のプロトコルは、正常か不正か、不正ならどのような不正なのかを番号によって管理し、返信してくるものが多い。
Webを見るために頻用される
HTTP
でも、正常なら200、サーバー故障なら
500
などが返る。この場合、正常でない返信がNACKであると考えることができる。
他の世界
通信以外の世界でも、NACKは様々な表現として使われている。
ふるふる
(首を横に振る擬態語)
ぽんぽこタヌキさん
(
Kanon
)
再検索