1. Трёхстороннее рукопожатие TCP
Отправитель отправляет получателю пакет с флагами SYN=1 и ACK=0, запрашивая соединение — это первое рукопожатие. Если получатель получает запрос и разрешает соединение, он отправляет отправителю пакет с флагами SYN=1 и ACK=1, сообщая ему, что может общаться, и прося отправить подтверждающий пакет, который является вторым рукопожатием. Наконец, отправитель отправляет получателю пакет с SYN=0 и ACK=1, сообщая, что соединение подтверждено — это уже третье рукопожатие. После этого устанавливается TCP-соединение и начинается связь.
2. Информация о флагах в пакете TCP
*SYN: Флаг синхронизации
Поле Synchronize Sequence Numbers допустимо. Этот флаг действует только при установлении TCP-соединения во время тройного рукопожатия. Он предлагает серверу TCP-соединения проверить серийный номер, который является начальным последовательном номером начального TCP-соединения (обычно клиента). Здесь последовательное число TCP можно рассматривать как 32-битный счётчик от 0 до 4 294 967 295. Каждый байт данных, обмениваемый по TCP-соединению, секвенируется. Столбец с номером последовательности в заголовке TCP содержит последовательный номер первого байта сегмента TCP.
*ACK: Флаг подтверждения
Поле подтверждения номера допустимо. Чаще всего флаг-бит ставится. Номер подтверждения (w+1, рисунок 1), содержащийся в столбце номера подтверждения в заголовке TCP, является следующим ожидаемым последовательном номером, и обозначается удалённый конецСистемаВсе данные были успешно получены.
*RST: Флаг сброса
Знак сброса действителен. Используется для сброса соответствующего TCP-соединения.
*URG: Аварийный сигнал
Знак срочного указателя действителен. Установка аварийного знака,
*ПШ: Push logo
Когда флаг устанавливается, получатель не ставит данные в очередь, а передаёт данные приложению как можно быстрее. Флаг всегда устанавливается при работе с соединениями в режимах взаимодействия, таких как telnet или rlogin.
*FIN: Знак окончания
Пакет с этим флагом используется для завершения TCP-обратного вызова, но порт всё ещё открыт для получения последующих данных.
3. Роль нескольких состояний TCP в нашем анализе
На уровне TCP есть поле FLAGS, которое имеет следующие идентификаторы: SYN, FIN, ACK, PSH, RST, URG. Среди них первые пять полей полезны для нашего ежедневного анализа. Они означают следующее: SYN — установление соединения, FIN — закрытие соединения, ACK — ответ, PSH — передача ДАННЫХ, RST — сброс соединения. Среди них ACK может использоваться одновременно с SYN, FIN и т.д., например, SYN и ACK могут быть 1 одновременно, что обозначает ответ после установления соединения; если это только один SYN, то только установление соединения. Несколько рукопожатий TCP проявляются через такие ACK. Однако SYN и FIN не будут одновременно 1, поскольку первый означает установление соединения, а второе — для разрыва. RST обычно появляется после FIN до 1, что означает сброс соединения. Обычно, когда появляется пакет FIN или пакет RST, мы предполагаем, что клиент отключён от сервера. Когда появляются пакеты SYN и SYN+ACK, мы считаем, что клиент установил соединение с сервером. PSH 1 обычно появляется только в пакетах с не-0 содержимым DATA, что означает, что PSH 1 означает, что передаётся реальный TCP-пакет. Установление и закрытие соединения TCP-соединения осуществляются через шаблон запрос-ответ
|