Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

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

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

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

Код ASCII включает в себя символ ACK (0000110 2 или 6 16 ), который может быть передан для обозначения успешного приема, и символ NAK (0010101 2 или 15 16 ), который может быть передан для указания невозможности или отказа при приеме. [2] 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 имеет временной интервал для бита подтверждения после каждого байта. [3] [4]

См. Также [ править ]

  • Коды управления C0 и C1
  • Управление потоком (данные)

Ссылки [ править ]

  1. ^ Строительные блоки надежной многоадресной рассылки (NORM), ориентированной на отрицательное подтверждение (NACK) . Ноябрь 2004 г. doi : 10.17487 / RFC3941 . RFC 3941 .
  2. ^ «Управляющие символы в ASCII и Unicode» . Проверено 4 марта 2020 .
  3. ^ «Спецификация шины I2C» .
  4. ^ "Понимание шины I2C" (PDF) . Рисунок 8.
  •  Эта статья включает  материалы, являющиеся общественным достоянием, из документа Управления общих служб : «Федеральный стандарт 1037C» .(в поддержку MIL-STD-188 )

Внешние ссылки [ править ]

  • Петр Рукавина. «АКК против НАК» . Проверено 4 марта 2020 .