否定応答

曖昧さ回避 NAK」はこの項目へ転送されています。中山の補題については「中山の補題」を、他のNAKについては「ナック」をご覧ください。

否定応答(ひていおうとう、: negative-acknowledgement, NAK, NACK)は制御文字の一つである。

BSC手順(英語版)において、以下の場合に使用される。

  • 送信側から問い合わせを受信したとき、受信側がデータ受信ができる状態でないことを送信側に通知する。
  • 受信側において、データリンク層がその前に受信したブロック(英語版)で伝送エラーを検出し、受信側がそのブロックの再送を受信する準備ができたことを送信側に通知する。

否定応答文字は、ASCIIUnicodeでは十進数で21、十六進数で0x15に割り当てられている[1]EBCDICでは0x3Dに割り当てられている。キャレット記法では ^U と表され、Unicodeでは制御文字の図形表現として ␕ (U+2415)が定義されている。

他の通信プロトコルにおける NAK

多くの通信プロトコルは肯定応答(ACK)ベースである。これは、受信のたびに、正しく受信できたことを明確に受信側から送信側へ伝えるものである。例えばTransmission Control Protocol (TCP)はACKベースのプロトコルである。

ACKベースに対するNAKベースのプロトコルでは、受信側で何か問題があったときだけ送信側にメッセージを送る。例えば高信頼マルチキャスト(英語版)プロトコルはNAKベースであり、受信側はパケットの欠損を検出したときにNAKを送信側へ送る。

関連項目

出典

  1. ^ “The Linux Programmer's Manual”. 2016年3月22日閲覧。