When I create a simple http server (a socket listening to a port) I don't see the actual TCP handshake taking place. Why is that? Why is it hidden from me?
For example if I start a server on port 9822 like this:
nc -l 9822
And then I open my web browser and go to that address, I only see the HTTP request but not the TCP handshake with ACK, SYN
liga@linux:~$ nc -l 9822
GET / HTTP/1.1
Host: 192.168.1.10:9822
Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.9,lv;q=0.8,tr;q=0.7
But wait, where is the TCP handshake?