Что происходит с пакетами tcp, когда они не могут завершить трехстороннее рукопожатие?
Брандмауэр для виртуального выделенного сервера.
Я изучал, как предотвратить сканирование FIN, и это заставило меня задуматься о последствиях.
Многие люди используют это правило:
-p tcp --tcp-flags FIN, SYN, RST, PSH, ACK, URG FIN -j DROP
Поэтому, когда кто-то отправляет мне пакет с FIN = 1, я не могу отправить FIN/ACK обратно.
Это кажется маловероятным, но означает ли это, что мое установленное соединение не будет прервано?
Как это работает? Моя связь остается в живых и если да, то как долго?
Как это работает, когда кто-то закрывает свой браузер? Он отправляет FIN на мой сервер, мой сервер отвечает FIN/ACK ... но браузер не может получить это, верно? Кто получает пакет, куда он идет?
А что если... удаленная машина отправит моему серверу SYN, мой ответ - SYN/ACK, и скажем, что я не получаю ACK, сколько времени мой сервер ждет его?
Есть ли название для незаконченных трехсторонних рукопожатий? Спасибо.
1 ответ
Есть ли название для незаконченных трехсторонних рукопожатий?
Это называется полуоткрытым соединением.
Поэтому, когда кто-то отправляет мне пакет с FIN = 1, я не могу отправить FIN/ACK обратно. Это кажется маловероятным, но означает ли это, что мое установленное соединение не будет прервано? Как это работает? Моя связь остается в живых и если да, то как долго?
Это в конечном итоге тайм-аут. Смотрите также состояние TIME_WAIT.