Dropping of connections with tcp_tw_recycle

краткое описание проблемы

у нас есть установка, где много (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?

26
задан user1153755 17 January 2012 в 11:31
поделиться