Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What exactly is Port Listening

Does "Listening" a port means a continuous polling to that port or a discrete polling or an interrupt driven process. What exactly is going on in "Listening to a Port"?

like image 751
Dinushan Avatar asked Sep 19 '11 11:09

Dinushan


1 Answers

A port is nothing more than a concept, it's not like if you could check some memory bits, waiting for some information.

So, listening to a port will teach the kernel what to do upon receiving packets with this specific port number: transmit it to the process which asked to listen on that port, instead of replying [or not] that the port in not open.

NB: that's just speculations, I didn't investigate any kernel implementation.

EDIT: On the process side,

  • listen will tell the kernel that you're interested in a particular rendez-vous port
  • (I'm not sure what happens between listen and accept, either the kernel buffers the new connections or rejects them until accept has been called, please refer to the relevant manual)
  • accept will bind the connection to a communication port, and start buffering the incoming packets
  • recv (or poll or select certainly) will pickup data from the reception buffer
like image 71
Kevin Avatar answered Oct 18 '22 06:10

Kevin