у нас есть установка, где много (800 до 2400 в секунду) входящих подключений к linux box и у нас есть устройство NAT между клиентом и сервером. Поэтому в системе остается очень много сокетов TIME_WAIT. Чтобы решить эту проблему, мы установили tcp_tw_recycle в 1, но это привело к падению количества входящих соединений. Порывшись в сети, мы нашли ссылки на то, почему происходит падение кадров при использовании tcp_tw_recycle и NAT устройства.
затем мы попробовали, установив tcp_tw_reuse в 1, он работал нормально без каких-либо проблем с той же установкой и конфигурацией.
Но в документации сказано, что tcp_tw_recycle и tcp_tw_reuse не должны использоваться, когда соединения, проходящие через узлы, знающие состояние TCP, такие как брандмауэры, устройства NAT или балансировщики нагрузки, могут видеть потерянные кадры. Чем больше соединений, тем больше вероятность возникновения этой проблемы.
1) можно ли использовать tcp_tw_reuse в сценариях такого типа? 2) если нет, то какая часть кода linux препятствует использованию tcp_tw_reuse для такого сценария? 3) в чем вообще разница между tcp_tw_recycle и tcp_tw_reuse?