Если ваш интернет-провайдер или брандмауэр блокирует все входящие соединения, как веб-серверы могут отправлять вам данные в ваш браузер? Вы отправляете запрос (исходящий), а сервер отправляет данные (входящий). Если вы заблокируете все входящие, как веб-сервер может ответить?
Как насчет потокового видео и многопользовательских игр, где используется UDP? UDP не имеет соединения, поэтому соединение не устанавливается, так как брандмауэр или интернет-провайдер справятся с этим?
Ответы:
«Входящий блок» означает, что входящие новые соединения блокируются, но установленный трафик разрешен. Так что если разрешены новые исходящие соединения , то входящая половина этого разговора в порядке.
Брандмауэр управляет этим путем отслеживания состояния соединений (такой брандмауэр часто называют «брандмауэром с отслеживанием состояния»). Он видит исходящий TCP SYN и разрешает его. Он видит входящий SYN / ACK и может проверить, соответствует ли он исходящему SYN, который он видел, и пропускает его, и так далее. Если это разрешает трехстороннее рукопожатие (например, это разрешено согласно правилам брандмауэра), это разрешит этот разговор. И когда он видит конец этого диалога (FIN или RST), он удаляет это соединение из списка разрешенных пакетов.
UDP выполняется аналогично, хотя он включает в себя брандмауэр, запоминающий достаточно, чтобы притвориться, что UDP имеет соединение или сеанс (а UDP не имеет).
источник
У @gowenfawr низкоуровневая картинка. Тем не менее, я решил добавить некоторые подробности о том, как выполняется «сопоставление» для отслеживания соединения, поскольку это может показаться магическим для непосвященных.
Каждое TCP-соединение имеет номер порта каждой стороны. Как известно большинству специалистов, HTTP-серверы работают на порту 80. Когда ваш браузер подключается к веб-серверу, он попросит операционную систему сгенерировать «локальный» номер порта, который будет случайным, например, 29672, который не используется другими TCP-соединение с этого компьютера (и ОС может сделать это, потому что оно знает обо всех активных TCP-соединениях). Затем начальный пакет установки TCP будет отправлен с IP-адреса вашей машины (IP_YOURS) и номера порта 29672 на IP-адрес веб-сервера (IP_WEBSERVER) и номер порта 80. В этот момент межсетевой экран с сохранением состояния скажет «ага, будущие пакеты с порта IP_WEBSERVER». 80, идущий к IP_YOURS порту 29672, не являются новыми соединениями, они являются ответами на существующее соединение и должны быть разрешены ". Брандмауэры с состоянием поддерживают таблицу,
источник