2014-11-06 6 views
1

Я знаю, что на SO_REUSEADDR уже много вопросов. Тем не менее я не мог получить свои недостатки и не имел никаких вопросов.- это хорошая идея для повторного использования порта с использованием опции SO_REUSEADDR, которая уже находится в состоянии TIME_WAIT?

1] Какова опасность, связанная с SO_REUSEADDR, когда мы не используем опцию linger.

2] Будет ли сценарий потери пакетов?

3] Что произойдет, если я получу что-то в порту, который вовремя ждет состояния?

4] Что произойдет с этим пакетом, который был получен в TIME_WAIT?

и последний, но очень важный

5] Есть ли влияние на производительность имея много много портов в TIME_WAIT состоянии в любой момент времени?

ответ

0

Недостаток заключается в том, что вы можете получать данные, которые были предназначены для более раннего подключения и не связаны с новым соединением, что искажает этот сеанс связи. Весь смысл TIME_WAIT - позволить ОС вымывать затяжные данные. Если пакет принимается для IP/порта в состоянии TIME_WAIT, пакет отбрасывается. Используя SO_REUSEADDR, вы обойдете этот предохранитель.

Если у вас много портов в состоянии TIME_WAIT, вы можете вызвать усталость порта, что предотвращает создание новых соединений до тех пор, пока не исчезнут порты в TIME_WAIT.

+0

port истощение очень редкий сценарий в моем случае я могу max иметь 1000 или сказать 2000 соединение. но скажите, если у меня 100-200 порт в состоянии ожидания. повлияет ли он на производительность. так как в этом случае я буду блоком управления TCP для каждого порта, который находится в состоянии ожидания времени. моя забота о том, будет ли этот эффект значительным? –