Предотвращение одновременного открытия и самоподключения TCP

Стандарт TCP имеет функцию «одновременного открытия».

Значение функция, клиент пытается подключиться к локальному порту, когда порт находится из эфемерного диапазона , может иногда подключаться к самому себе (см. здесь ).

Таким образом, клиент думает, что он подключен к сервер, в то время как он фактически соединен с самим собой. С другой стороны, сервер не может открыть свой порт сервера, поскольку он занят / украден клиентом.

I ' В конце концов клиент соединяется сам с собой.

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

  1. Не используйте временные порты для портов сервера. Согласуйте временной диапазон портов и настройте его на своих машинах (см. эфемерный диапазон )
  2. Проверьте connect () , поскольку кто-то предлагает здесь .

Что делать ты думаешь? Как вы справляетесь с проблемой?

PS 1

Кроме решения, которое я, очевидно, искал, Я бы хотел, чтобы вы поделились своим реальным жизненным опытом, связанным с проблемой.

Когда я обнаружил причину проблемы, я был «удивлен» тем, что на моем рабочем месте люди не знакомы с ней. Опрос сервера путем его периодического подключения - ИМХО обычная практика, так почему проблема не всем известна.

12
задан Community 23 May 2017 в 12:34
поделиться