Подтверждение связи - Handshaking

В телекоммуникации, а рукопожатие представляет собой автоматизированный процесс переговоров между двумя участниками (пример "Алиса и Боб ") посредством обмена информацией, которая устанавливает протоколы канала связи в начале связи, до того, как начнется полная связь.[1] Процесс установления связи обычно происходит для того, чтобы установить правила связи, когда компьютер пытается связаться с другим устройством. Для установления канала связи обычно происходит обмен сигналами между двумя устройствами. Например, когда компьютер связывается с другим устройством, таким как модем, два устройства будут сигнализировать друг другу, что они включены и готовы к работе, а также соглашаться с тем, какие протоколы используются.[2]

Подтверждение связи может согласовывать параметры, которые приемлемы для оборудования и систем на обоих концах канала связи, включая скорость передачи информации, кодирование алфавит, паритет, прерывать процедура и другие протокол или аппаратные особенности. Рукопожатие - это техника связи между двумя объектами. Однако в RFC TCP / IP термин «рукопожатие» чаще всего используется для обозначения трехстороннего подтверждения TCP. Например, термин «рукопожатие» отсутствует в RFC, касающихся FTP или SMTP. Единственным исключением является безопасность транспортного уровня, TLS, настройка, FTP. RFC 4217. Вместо термина "рукопожатие" FTP RFC 3659 заменяет передачу команд термином «разговор».[3][4][5]

Простой протокол установления связи может включать только отправку получателем сообщения, означающего «Я получил ваше последнее сообщение и готов отправить мне другое». Более сложный протокол установления связи может позволить отправителю спросить получателя, готов ли он принять, или чтобы получатель ответил отрицательным подтверждением, означающим «Я неправильно получил ваше последнее сообщение, пожалуйста, отправьте его повторно» (например, если данные был поврежден в пути).[6]

Подтверждение связи упрощает подключение относительно разнородных систем или оборудования по каналу связи без необходимости вмешательства человека для установки параметров.

Пример

Трехстороннее рукопожатие TCP

Пример трехстороннего рукопожатия

Установление нормального TCP подключение требует трех отдельных шагов:

  1. Первый хост (Алиса) отправляет второму хосту (Бобу) сообщение «синхронизировать» (SYN) со своим собственным порядковым номером. , который получает Боб.
  2. Боб отвечает подтверждением синхронизации (SYN-ACK ) сообщение с собственным порядковым номером и номер подтверждения , который получает Алиса.
  3. Алиса отвечает сообщением подтверждения (ACK) с номером подтверждения , который получает Боб и на который ему не нужно отвечать.
В этой настройке сообщения синхронизации действуют как служебные запросы от одного сервера к другому, а сообщения подтверждения возвращаются запрашивающему серверу, чтобы сообщить ему, что сообщение было получено.

Причина того, что клиент и сервер не используют порядковый номер по умолчанию, такой как 0, для установления соединения, заключается в защите от двух воплощений одного и того же соединения, повторно использующих один и тот же порядковый номер слишком рано, что означает, что сегмент из более раннего воплощения соединения может мешают более позднему воплощению связи.

SMTP

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

Рукопожатие TLS

Когда Безопасность транспортного уровня (SSL или TLS) соединение запускается, запись инкапсулирует «контрольный» протокол - протокол обмена сообщениями рукопожатия (тип содержимого 22). Этот протокол используется для обмена всей информацией, необходимой обеим сторонам для обмена фактическими данными приложения по TLS. Он определяет форматирование сообщений или содержащих эту информацию и порядок их обмена. Они могут различаться в зависимости от требований клиента и сервера, т. Е. Существует несколько возможных процедур для установки соединения. Этот первоначальный обмен приводит к успешному соединению TLS (обе стороны готовы передавать данные приложения с помощью TLS) или предупреждающему сообщению (как указано ниже).

Протокол используется для согласования атрибутов безопасности сеанса. (RFC 5246, п. 37)[7]

WPA2 беспроводной

В Стандарт WPA2 для беспроводной связи использует четырехстороннее рукопожатие, определенное в IEEE 802.11i-2004.

Модемы коммутируемого доступа

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

Последовательный "Аппаратное подтверждение связи"

Этот часто используемый термин описывает использование сигналов RTS и CTS в последовательном соединении. Однако это не совсем правильно; это не настоящая форма рукопожатия, и ее лучше описать как управление потоком. Этот механизм управления потоком описан в статье на RS-232.

Рекомендации

  1. ^ «Что такое рукопожатие? - Определение с сайта WhatIs.com». SearchNetworking. Получено 2018-02-19.
  2. ^ Посуда, Питер; Чиверс, Билл; Челески, Пол (2001). Информационные процессы и технологии Jacaranda: курс HSC. Австралия: John Wiley & Sons Australia. С. 92–93. ISBN  978-0701634728.
  3. ^ TCPRFC 793, 2581
  4. ^ SMTP RFC 821,5321, 2821, 1869,6531, 2822
  5. ^ FTP 959, 3659 (разговор), 2228,4217 (рукопожатие TLS), 5797
  6. ^ "подтверждение связи". Энциклопедия TheFreeDictionary.
  7. ^ Протокол безопасности транспортного уровня (TLS), версия 1.2. IETF. Август 2008 г. Дои:10.17487 / RFC5246. RFC 5246.