Состояние сокета TCP становится постоянным после изменения IP-адреса, даже если предварительно настроено сохранение активности - PullRequest
0 голосов
/ 07 августа 2020

Я столкнулся с проблемой поддержки активности сокета TCP.

Поддержка активности TCP включена и настроена после подключения к сокету, и система имеет свою собственную конфигурацию проверки активности TCP.

'ss -to 'может отображать информацию о поддержании активности соединения.

Сетевой интерфейс является устройством PPPOE, если мы запустим интерфейс, он получит новый IP-адрес. И старое TCP-соединение будет sh устанавливаться до тайм-аута keep-alive.

Но иногда 'ss -to' показывает, что tcp-соединение становится 'постоянным', что занимает много времени (около 15 минут) для закрытия.

Ниже приведен результат 'ss -to':

ESTAB   0        591           172.0.0.60:46402        10.184.20.2:4335     timer:(persist,1min26sec,14)

Исходный адрес - '172.0.0.60', но фактический адрес сетевого интерфейса был обновлен до ' 172.0.0.62 '.

Это правильный результат' ss -to ':

ESTAB  0        0             172.0.0.62:46120       10.184.20.2:4335    timer:(keepalive,4.480ms,0)

Я не знаю, почему "таймер" изменен на' persist ', что отключает поддержку активности.

1 Ответ

1 голос
/ 07 августа 2020

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

Более подробные сведения см. В Блог Cloudflare: Когда сокеты TCP отказываются от d ie.

...