Лекция
Концепция квитирования (от лат. "quittare" — освобождать, очищать) — это процесс подтверждения получения сигнала, сообщения или события, который указывает, что данный сигнал был принят и обработан. квитирование часто используется в системах автоматизации, мониторинга и управления для контроля за критическими событиями или ошибками.
Суть квитирования: Квитирование — это подтверждение того, что оператор или система получили и обработали информацию о событии. Это необходимо для того, чтобы предотвратить повторную реакцию на то же событие и обеспечить уверенность в том, что инцидент был замечен и/или принят меры.
Применение в различных системах:
Процесс квитирования:
Типы квитирования:
Значимость квитирования:
В сетях передачи данных , телекоммуникациях и компьютерных шинах подтверждение ( ACK ) — это сигнал , который передается между взаимодействующими процессами , компьютерами или устройствами для обозначения подтверждения или получения сообщения в рамках протокола связи . Соответственно, отрицательное подтверждение ( NAK или NACK ) — это сигнал, который отправляется для отклонения ранее полученного сообщения или для указания на какую-либо ошибку. Подтверждения и отрицательные подтверждения информируют отправителя о состоянии получателя, чтобы он мог соответствующим образом скорректировать свое собственное состояние.
Кодовая точка ASCII для ACK — 0x06 (двоичный 0000 0110). По соглашению принимающее устройство отправляет ACK, чтобы указать, что оно успешно получило сообщение. ASCII также предоставляет кодовую точку NAK (0x15, двоичный 0001 0101), которая может использоваться для указания того, что принимающее устройство не может или не будет выполнять сообщение. Unicode предоставляет видимые символы для этих символов ASCII, U+2406 (␆) и U+2415 (␕).
Символы ACK и NAK могут также иметь форму отдельных битов или битовых полей в зависимости от определения уровня канала передачи данных протокола или даже в виде выделенного провода на физическом уровне .
Многие протоколы основаны на подтверждении, что означает, что они положительно подтверждают получение сообщений. Протокол управления передачей (TCP) в Интернете является примером протокола, основанного на подтверждении. Когда компьютеры взаимодействуют через TCP, полученные пакеты подтверждаются отправкой ответного пакета с установленным битом ACK.
В то время как некоторые протоколы отправляют подтверждение на каждый полученный пакет , другие протоколы, такие как TCP и ZMODEM, позволяют передавать множество пакетов, прежде чем отправлять подтверждение для всего их набора, что является процедурой, необходимой для заполнения каналов с высокой пропускной способностью и задержкой передачи большого количества байтов.
Некоторые протоколы основаны на NAK, что означает, что они реагируют на сообщения только в случае возникновения проблем. Примерами служат многие надежные многоадресные протоколы, которые отправляют NAK, когда получатель обнаруживает отсутствующие пакеты, или протоколы, которые используют контрольные суммы для проверки целостности полезной нагрузки и заголовка .
Другие протоколы используют как NAK, так и ACK. Примерами являются Binary Synchronous Communications (Bisync) и Adaptive Link Rate (для Energy-Efficient Ethernet ).
Функция подтверждения используется в функции автоматического запроса на повтор (ARQ). Кадры подтверждения нумеруются в соответствии с кадрами, которые были получены и затем отправлены передатчику. Это позволяет передатчику избегать переполнения или недогрузки на приемнике и узнавать о любых пропущенных кадрах .
В IBM Binary Synchronous Communications NAK используется для указания того, что в ранее полученном блоке была обнаружена ошибка передачи и что приемник готов принять повторную передачу этого блока. Bisync не использует один символ ACK, а имеет две управляющие последовательности для альтернативного подтверждения четного/нечетного блока.
Методологии на основе ACK и NAK — не единственные парадигмы проектирования протоколов. Некоторые протоколы, такие как RC-5 , протокол пользовательских датаграмм (UDP) и протоколы X10 , выполняют слепую передачу без подтверждения, часто передавая одно и то же сообщение несколько раз в надежде, что хотя бы одна копия сообщения будет доставлена.
рис. Подавление подтверждений, выполняемое LLE-TCP.
На рис. представлены модификации, выполненные LLE-TCP по сравнению со стандартной функциональностью TCP в трех основных фазах соединения TCP: установление соединения, передача данных и завершение соединения. Фаза установления соединения, также называемая «трехсторонним рукопожатием», выполняет важные задачи, такие как синхронизация порядковых номеров и согласование размера окна конкуренции. По этой причине агент ARQ выполняет подавление ACK только для третьего рукопожатия в установлении соединения и полное подавление ACK для фаз обмена данными и завершения соединения. В случае двунаправленного обмена данными TCP инкапсулирует ACK в исходящие пакеты данных. Узел-получатель не подавляет ACK из пакетов такого типа. Однако подавление выполняется на стороне отправителя агентом ARQ, который отслеживает номер последнего подтвержденного сегмента TCP. В случае, если входящий пакет подтверждает сегмент с номером ниже или равным уже подтвержденному, флаг ACK очищается.
Чтобы обеспечить надлежащую функциональность быстрой повторной передачи [23] , введенной в TCP Reno, дублирующие ACK никогда не подавляются ни агентом ARQ на узле-получателе, ни на узле-отправителе.
Из пакетов строятся транзакции. Транзакция - это логическая единица обмена данными. Транзакции, как и пакеты, имеют структуру и находятся на более высокой степени абстракции. Транзакции совершаются в рамках временных окон, о которых уже говорилось. Каждая транзакция должна начинаться и завершаться в рамках единственного окна и недопустимо, чтобы транзакция началась в одном временном окне и закончилась в другом. Напомним, что начало временного окна отмечается пакетом SOF и завершается особым состоянием шины EOF.
Существует 4 типа транзакций: прерывания, массовой передачи, изохронных передач, и управления. Сообщалось о каналах, связывающих конечную точку с хостом. Поток транзакций и составляет канал. Транзакции для различных типов передач имеют протокольные различия, обусловленные гарантированием или не гарантированием пропускной способности, времени отклика, надежности доставки и синхронизации ввода и вывода. К примеру, транзакции изохронных передач, гарантируют скорость обмена, но не обеспечивают надежности доставки. При приеме поврежденных пакетов, повторная передача поврежденного пакета не осуществляется, в то время как транзакции прерываний, обеспечивают гарантированное время реакции USB устройства на запрос хоста, но не предназначены для передачи больших объемов данных.
Рассмотрим транзакцию прерывания чтения. Любая транзакция инициируется хостом, посредством передачи пакета маркера IN, который ранее описывался. Пакет маркера описывает тип транзакции, адрес USB устройства, номер конечной точки. Адрес распознается USB устройством, и оно возвращает пакет данных. Затем хост отвечает квитированием. В транзакции прерывания может быть только один пакет данных. Для передачи нескольких пакетов используются дополнительные транзакции. Пакет маркера защищен от искажений, и если USB устройство будет принят искаженный пакет маркера, USB устройство выдерживает тайм-аут, сигнализируя хосту о необходимости повторной передачи маркерного пакета. В случае не готовности данных для передачи, посылается пакет NAK. Типичное USB устройство распознав принятый от хоста пакет IN, заполняет буфер конечной точки данными и изменив значение некоторого флага, запускает отправку содержимого буфера хосту. Но до тех пор пока данные не отправлены, SIE автоматически посылает пакеты NAK хосту. Если USB устройству требуется значительное время на ожидание готовности данных, то пропускная способность шины будет расходоваться впустую, на прием потока пакетов квитирования. В этом случае микропрограммное обеспечение USB устройства переводит конечную точку в блокированное состояние. В блокированном состоянии конечная точка на пакет IN от хоста, отвечает пакетом квитирования STALL. Приняв этот пакет, хост узнает, что конечная точка находится в блокированном состоянии. Этим пакетом сообщается хосту о необходимости длительного ожидания. Если пакет данных, переданный USB устройством, принят хостом с искажениями, то хост выдерживает тайм-аут, сигнализируя USB устройству о необходимости повторной передачи. Рисунок поясняет сказанное.
В транзакции прерывания записи, хост посылает пакет маркера OUT транзакции записи и пакет данных. В случае искажения маркерного пакета или пакета данных, переданных хостом, USB устройство выдерживает тайм аут, свидетельствуя об ошибке. При успешном принятии данных, USB устройство возвращает пакет положительного квитирования ACK. Если буфер еще не пуст, возвращается NAK.
Логика транзакций массовой передачи данных (bulk) аналогична рассмотренной выше транзакции прерывания. Понятно, что для транзакций массовой передачи используется свой маркерный пакет. Отличия в основном касаются планирования транзакций массовой передачи хостом. Проще говоря, транзакции массовой передачи посылаются в последнюю очередь.
Транзакции изохронной передачи устроены совсем просто, хост посылает маркерный пакет, затем принимает или посылает пакет данных. Пакеты квитирования не используются, искаженные пакеты просто отбрасываются.
Некоторые компьютерные шины имеют выделенный провод подтверждения в шине управления, используемый для подтверждения операций шины: DACK используется для ISA DMA ; DATACK используется в STEbus , контакт подтверждения передачи данных Motorola 68000 , который вдохновил на название DTACK Grounded и т. д. Некоторые компьютерные шины не ждут подтверждения каждой передачи, .
Последовательная шина I²C имеет временной интервал для бита подтверждения после каждого байта.
Концепция квитирования важна для надежного управления и мониторинга в любой системе, где критические события могут влиять на безопасность, производительность или стабильность работы.
рис. формат адресного пакета I2C
рис .Данные передаются по I2C шине со служебной информацией. Все вместе это называется пакетом. Существуют адресные пакеты и пакеты данных. Адресные пакеты состоят из 7-и разрядного адреса, управляющего бита R/W и бита квитирования (весь пакет - 9 бит). Адресный пакет нужен, чтобы обратиться к конкретному устройству.
Комментарии
Оставить комментарий
Компьютерные сети
Термины: Компьютерные сети