If all incoming connections to your computer are being blocked, then how can you still receive data and/or have an active connection? Today’s SuperUser Q&A post has the answer to a confused reader’s question.
Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.
Screenshot courtesy of Linux Screenshots (Flickr).
SuperUser reader Kunal Chopra wants to know how his computer can still receive data if all incoming connections have been blocked:
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?
How is data still able to reach Kunal’s computer if all incoming connections have been blocked?
SuperUser contributor gowenfawr has the answer for us:
“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).
Have something to add to the explanation? Sound off in the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.