When an application puts a socket into LISTEN state using the listen syscall, it needs to specify a backlog for that socket. The backlog is usually described as the limit for the queue of incoming connections. Because of the 3-way handshake used by TCP, an incoming connection goes through an intermediate state SYN RECEIVED before it reaches the ESTABLISHED state and can be returned by the accept s
![How TCP backlog works in Linux](https://cdn-ak-scissors.b.st-hatena.com/image/square/fd5518ed52e58ea42dc62aa920f1bb6021d9e089/height=288;version=1;width=512/https%3A%2F%2Fveithen.io%2F2014%2F01%2F01%2Ftcp-state-diagram.png)