stringtranslate.com

TCP полуоткрыт

Термин «полуоткрытый» относится к TCP- соединениям, состояние которых не синхронизировано между двумя взаимодействующими хостами, возможно, из-за сбоя на одной стороне. Связь, которая находится в процессе установления, также известна как эмбриональная связь . Отсутствие синхронизации может быть вызвано злым умыслом .

RFC 793

Согласно RFC 793, TCP-соединение называется полуоткрытым , когда хост на одном конце этого TCP-соединения вышел из строя или иным образом удалил сокет, не уведомив об этом другой конец. Если оставшийся конец свободен, соединение может оставаться в полуоткрытом состоянии неограниченное время.

Тайм-аут брандмауэра с отслеживанием состояния

Еще одно обстоятельство, которое может привести к полуоткрытым соединениям, — это если брандмауэр с отслеживанием состояния истечет время ожидания соединения, которое простаивает слишком долго. В этом случае брандмауэр очищает свое внутреннее состояние, и если какая-либо сторона соединения отправит пакет, брандмауэр отбросит пакет. Это часто приводит к полуоткрытому соединению, поскольку две стороны соединения могут оказаться в несогласованных состояниях соединения.

Эмбриональная связь

Термин «полуоткрытое соединение» также можно использовать для описания эмбрионального соединения , то есть TCP- соединения, которое находится в процессе установления.

TCP имеет систему с тремя состояниями для открытия соединения. Сначала исходная конечная точка (A) отправляет пакет SYN пункту назначения (B). Сейчас A находится в зачаточном состоянии (в частности, SYN_SENT) и ожидает ответа. Теперь B обновляет информацию о своем ядре, чтобы указать входящее соединение от A, и отправляет запрос на открытие обратного канала ( пакет SYN/ACK ).

На данный момент B также находится в эмбриональном состоянии (в частности, SYN_RCVD). Обратите внимание, что B был переведен в это состояние другой машиной, находящейся вне контроля B.

При нормальных обстоятельствах (см . атаку типа «отказ в обслуживании» для случаев преднамеренного сбоя) A получит SYN/ACK от B, обновит свои таблицы (в которых теперь достаточно информации для A как для отправки, так и для получения) и отправит окончательное подтверждение ACK. вернемся к Б.

Как только B получит этот окончательный ACK, у него также будет достаточно информации для двусторонней связи, и соединение будет полностью открыто. Обе конечные точки теперь находятся в установленном состоянии.

Смотрите также

Внешние ссылки