Полуоткрытые соединения и другие аномалии
Созданное соединение называют "полуоткрытым", если один из TCP закрыл или прервал соединение на своем конце в одностороннем порядке, или если два конца соединения стали десинхронизированными в связи с аварийным отключением, которое привело к потере памяти. Такие соединения будут автоматически восстанавливаться при пытке послать данные в любом направлении. Однако полуоткрытые соединения считаются аномальными, и постепенно включается процедура восстановления. Если соединение узла А больше не существует, то попытка пользователя узла В послать ему какие-либо данные приведет к тому, что TCP узла В получит управляющее сообщение сброса в исходное состояние (reset). Такое сообщение указывает TCP узла В на ошибку, и ожидается прерывание соединения.
Предположим, что два пользовательских процесса А и В общаются друг с другом, когда происходит авария, вызывая потерю памяти TCP процесса А. В зависимости от операционной системы, поддерживающей TCP процесса А, скорее всего, существует некоторый механизм восстановления ошибок. Когда TCP снова включен, А начнет соединение заново или с точки восстановления. В результате А будет пытаться снова открыть (OPEN) соединение или послать (SEND) в соединение, которое он считает открытым. В последнем случае он получает от локального (A) TCP сообщение "соединение не открыто". При попытке создать соединение TCP процесса А пошлет сегмент, содержащий SYN.
