Подтверждение (сети передачи данных) - Acknowledgement (data networks)

В сети передачи данных , телекоммуникаций и компьютерных автобусов , подтверждение ( ACK ) является сигналом , который передается между передачи процессов , компьютеры или устройства для обозначения подтверждения, или получение сообщения, как часть протокола связи . Отрицательное квитирование ( NAK или NACK ) представляет собой сигнал , который посылается , чтобы отклонить ранее принятое сообщение или указать какое - то ошибка. Подтверждения и отрицательные подтверждения информируют отправителя о состоянии получателя, чтобы он мог соответствующим образом настроить свое собственное состояние.

Многие протоколы содержат контрольные суммы для проверки целостности полезной нагрузки и заголовка . Контрольные суммы используются для обнаружения повреждения данных. Если сообщение получено с недопустимой контрольной суммой (то есть полученные данные будут иметь контрольную сумму, отличную от контрольной суммы сообщения), получатель может узнать, что некоторая информация была повреждена. Чаще всего, когда используются контрольные суммы, полученное поврежденное сообщение либо не будет обслуживаться сигналом ACK, либо будет обслуживаться сигналом NAK.

Знаки подтверждения

Код ASCII включает в себя символ ACK (0000110 2 или 6 16 ), который может быть передан, чтобы указать успешное получение, и символ NAK (0010101 2 или 15 16 ), который может быть передан для указания невозможности или отказа при приеме. Unicode предоставляет видимые символы для этих символов: U + 2406 (␆) и U + 2415 (␕).

Использование протокола

Многие протоколы основаны на подтверждении, что означает, что они положительно подтверждают получение сообщений. Интернета протокол управления передачей (TCP) является примером протокола квитирования на основе. Когда компьютеры обмениваются данными через TCP, полученные пакеты подтверждаются отправкой пакета с установленным битом ACK. Протокол TCP позволяет включать эти подтверждения в данные, отправляемые в обратном направлении.

Некоторые протоколы отправляют одно подтверждение на каждый пакет информации. Другие протоколы, такие как TCP и ZMODEM, позволяют передавать множество пакетов до получения подтверждения для любого из них, процедура, необходимая для заполнения ссылок продукта с высокой пропускной способностью с задержкой большого количества передаваемых байтов.

Другие протоколы основаны на NAK, что означает, что они отвечают на сообщения только в случае возникновения проблемы. Примеры включают наиболее надежные протоколы многоадресной передачи, которые отправляют NAK, когда получатель обнаруживает отсутствующие пакеты. В других протоколах используются как NAK, так и ACK. Двоичные синхронные коммуникации (Bisync) и Adaptive Link Rate (для энергоэффективного Ethernet ) являются примерами.

Другие протоколы, такие как RC-5 , протокол пользовательских дейтаграмм (UDP) и X10 , выполняют слепую передачу без подтверждения, часто передавая одно и то же сообщение несколько раз в надежде, что пройдет хотя бы одна копия сообщения.

Функция подтверждения используется в функции автоматического запроса на повторение (ARQ). Кадры подтверждения нумеруются в соответствии с кадрами, которые были получены и затем отправлены на передатчик. Это позволяет передатчику избегать переполнения или недогрузки на приемнике и узнавать о любых пропущенных кадрах.

В двоичной синхронной связи NAK используется, чтобы указать, что ошибка передачи была обнаружена в ранее принятом блоке и что приемник готов принять повторную передачу этого блока. Bisync не использует один символ ACK, но имеет две управляющие последовательности для альтернативного подтверждения четного / нечетного блока.

Подтверждение оборудования

Некоторые компьютерные шины имеют выделенный провод подтверждения на шине управления, используемый для подтверждения операций шины: DACK используется для ISA DMA ; DATACK, используемый в STEbus , штырь подтверждения передачи данных Motorola 68000, который вдохновил название DTACK Gounded , и т. Д. Некоторые компьютерные шины не всегда подтверждают каждую запись; некоторые или все записи используют опубликованную запись .

Последовательная шина I²C имеет временной интервал для бита подтверждения после каждого байта.

Смотрите также

использованная литература

внешние ссылки