Руководство по NACK/NAK (отрицательное подтверждение или отсутствие подтверждения)

Отрицательное подтверждение (NACK или NAK) — это передаваемый сигнал между компьютерами и другими устройствами. Целью NACK является выражение того, что данные по сетевому коммуникационному протоколу были упущены, повреждены или получены с ошибками. В этой статье я расскажу больше о NACK и помогу вам лучше понять, как он работает. Я также расскажу вам о различных реализациях сообщений отрицательного подтверждения и о том, как они используются в разных протоколах для разных сетевых уровней модели OSI. Наконец, я расскажу, как подтверждение пакета данных работает в TCP, и сравним его с NACK.
Во-первых, давайте более подробно рассмотрим, что такое NACK.
Что такое NACK/NAK?
NACK или NAK, сокращенная форма отрицательного подтверждения или неподтвержденного, представляет собой короткое сообщение или информацию. Приемник отправляет его передатчику в сети, настроенной для указания правильного или неправильного приема отправленного пакета данных. Сообщение или переданная информация также могут указывать, был ли переданный пакет данных поврежден/нечитаем или получен с ошибками.
Любой сетевой протокол, использующий NACK, часто имеет возможность добавлять журналы или причину потери, нечитаемости или повреждения пакета данных при отправке обратно от приемника к передатчику. Благодаря этому сетевые протоколы, реализующие NACK, получают дополнительное преимущество эффективного подтверждения.
Теперь, когда вы понимаете, что такое NACK, я покажу вам, как это работает дальше.
Как работают NACK/NAK?
Прежде чем я углублюсь в то, как NACK работают в разных протоколах, важно отметить, что NACK иногда смешивают с REJ (отклоненными) сообщениями. REJ — это сообщение, используемое в различных сетевых протоколах. Получатель отправляет его отправителю, когда отправленный пакет данных не доставлен должным образом. Это может быть вызвано различными причинами, такими как неполные или поврежденные данные, сбой контрольной суммы, неверные заголовки или неправильный формат данных. В некоторых настройках сетевого протокола отклоненное сообщение (REJ) имеет те же функции, что и NACK.
Как упоминалось ранее, как REJ, так и NACK/NAK являются короткими протокольными сообщениями, которые получатель пакета данных отправляет обратно отправителю. Их целью является указание на любые несоответствия в отправленных данных. Эти сообщения также содержат информацию о том, должен ли отправитель повторно отправлять данные и какая часть пакетов данных должна быть повторно отправлена. Благодаря своей природе и работе вы можете реализовать NACK в любом протоколе на основе модели OSI. Хотя функциональность остается прежней, реализация и работа NACK в каждом из этих протоколов могут немного различаться.
Далее я объясню, чем отличается реализация NACK на некоторых уровнях OSI.

1. Протоколы канального уровня
Канальный уровень отвечает за передачу кадров данных от одного узла к другому. Этот уровень устанавливает уникальный идентификационный номер для каждого устройства в сети. Различные реализации протокола канального уровня реализуют NACK по-разному. Например, High-Level Data Link Control (HDLC), бит-ориентированный кодо-прозрачный протокол синхронного уровня канала передачи данных, использует сообщения REJ для NACK. В то время как IBM Binary Synchronous Communication (BSC) использует сообщения NACK для отрицательных подтверждений, протокол Point-to-Point использует формы для сообщений NACK и REJ для отрицательных подтверждений.
2. Протоколы прикладного уровня
Прикладной уровень — это самый верхний уровень модели OSI. Он действует как окно для доступа пользователя к нескольким функциям. Это может быть распределение ресурсов, передача файлов и управление ими, службы каталогов и многое другое. Общество всемирных межбанковских финансовых телекоммуникаций (SWIFT), всемирно признанное сообщество, которое поддерживает финансовые транзакции и платежи по всему миру, реализует как ACK, так и NACK для подтверждения и отрицательного подтверждения пакетов данных. С другой стороны, протокол динамической конфигурации хоста (DHCP), другой протокол прикладного уровня, использует NACK для определения просроченных адресов интернет-протокола или неправильной подсети сети.
3. Протоколы физического уровня
Протоколы физического уровня обычно состоят из технологий передачи электронных схем на основе устройств/компонентов. Эти протоколы используют сообщения отрицательного подтверждения по разным причинам. Например, некоторые из протоколов физического уровня, такие как Bluetooth, коммуникационные шины интегральных схем (IC) и инфракрасная ассоциация данных, используют сообщения NACK, чтобы гарантировать, что данные не будут потеряны или повреждены при передаче.
Другие протоколы, основанные на других уровнях модели OSI, также полагаются на сообщения отрицательного подтверждения (NACK) для обеспечения успешной передачи данных. Содержание сообщения NACK различается в каждой из упомянутых выше спецификаций протокола. Всякий раз, когда отправитель получает NACK или REJ, он либо повторно передает данные, либо блок данных, пока отправитель не получит сообщение подтверждения (ACK) от получателя.
Благодарности в TCP
TCP (протокол управления передачей) — один из основных и наиболее широко используемых интернет-протоколов, ориентированных на соединение. Он имеет возможность проверки ошибок, упорядочивания данных и повторной передачи потерянных пакетов данных. Тем не менее, TCP не использует NACK по умолчанию и полагается на свои механизмы проверки ошибок и управления перегрузкой. В TCP отправитель может отслеживать отправленный фрейм данных, и ему не нужно полагаться на то, что получатель отправит подтверждение приема фрейма данных. NACK был определен для TCP, хотя и для специализированных целей, таких как установление связи со спутниками, что связано с высокой задержкой и низкой пропускной способностью.

Нижняя линия
NACK/NAK — один из наиболее широко используемых методов. Его цель — гарантировать, что получатель получит все отправленные данные по сети без каких-либо потерь, искажений или ошибок. В NACK получатель данных отправляет сообщение отправителю в любом из упомянутых выше случаев. Это делается для того, чтобы отправитель повторно отправил необходимые данные. Вы можете реализовать NACK в различных интернет-протоколах. В зависимости от реализации, NACK часто может служить той же цели, что и другие решения для сетевого подтверждения, такие как REJ или ACK.
Есть еще вопросы? Ознакомьтесь с разделами часто задаваемых вопросов и ресурсов ниже.
Получите последние технические новости здесь
Часто задаваемые вопросы
Что такое модель OSI?
Модель OSI представляет собой 7-уровневую концептуальную сетевую структуру. Модель позволяет устройствам взаимодействовать друг с другом по сети. Реализация отрицательного подтверждения (NACK) отличается на разных уровнях модели OSI.
Что такое TCP?
Протокол управления передачей (TCP) — один из основных интернет-протоколов, который полностью контролирует передачу кадров данных по сети. Он позволяет устройствам обмениваться информацией или сообщениями по сети. TCP имеет собственный способ реализации подтверждений. TCP также гарантирует, что получатель успешно получит все отправленные данные от отправителя.
Каковы преимущества TCP?
Некоторые из основных преимуществ TCP включают совместимость, открытый протокол и масштабируемость. Он также имеет другие аспекты, такие как возможность проверки ошибок, включение последовательности данных и многое другое.
Что такое DHCP?
Протокол динамического управления хостом (DHCP) — это протокол управления сетью. Вы можете использовать его для динамического выделения и назначения IP-адресов и других важных сетевых параметров устройствам, подключенным к сети с поддержкой DHCP.
Ресурсы
Веб-сайт TechGenix
Будьте в курсе последних технических новостей из раздела технических новостей TechGenix здесь.
Передача данных и сеть TechGenix
Получите дополнительную информацию о передаче данных и работе в сети здесь.
Сетевой раздел TechGenix
Доступ к дополнительной информации о сети здесь.
Информационный бюллетень TechGenix
Подпишитесь на информационный бюллетень TechGenix и получайте последние новости о технологиях и кибербезопасности прямо здесь.
Статья TechGenix о модели OSI
Ознакомьтесь с нашей подробной статьей о модели OSI, ее истории и каждом уровне модели здесь.
Отрицательное подтверждение: подробный отчет
Перейдите к этому подробному отчету, чтобы узнать больше об отрицательном подтверждении (NACK), деталях его реализации и ссылках на несколько других протоколов.