Сегодняшняя сессия вопросов и ответов приходит к нам благодаря SuperUser - подразделению Stack Exchange, основанной на сообществах сайтам Q & A.
Скриншот предоставлен скриншотами Linux (Flickr).
Вопрос
Читатель SuperUser Кунал Чопра хочет знать, как его компьютер может получать данные, если все входящие соединения заблокированы:
If your ISP or firewall is blocking all incoming connections, how can web servers still send data to your browser? You send the request (outgoing) and the server sends data (incoming). If you block all incoming connections, how can the web server respond?
What about video streaming and multi-player games where UDP comes into use? UDP is connectionless, so there is no connection to be established, so how does the firewall or ISP handle that?
Как данные все еще могут попасть на компьютер Kunal, если все входящие соединения заблокированы?
Ответ
У участника SuperUser gowenfawr есть ответ для нас:
“Incoming block” means that incoming new connections are blocked, but established traffic is allowed. So if outbound new connections are allowed, then the incoming half of that exchange is okay.
The firewall manages this by tracking the state of connections (such a firewall is often called a Stateful Firewall). It sees the outgoing TCP/SYN and allows it. It sees an incoming SYN/ACK, verifies that it matches the outbound SYN it saw, lets that through, and so on. If it permits a three-way handshake (i.e. it is allowed by the firewall rules), it will allow that exchange. And when it sees the end of that exchange (FINs or RST), it will take that connection off the list of allowed packets.
UDP is done similarly, although it involves the firewall remembering enough to pretend that UDP has a connection or session (which UDP does not).
Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других пользователей Windows? Посмотрите здесь полную дискуссионную тему.