Dunque le porte sono delle "gestioni virtuali" del protocollo TCP/IP; esse servono per indirizzare i vari pacchetti provenienti dalla scheda di rete in modo più ordinato.
Per essere chiaro pensa se non esistessero le porte tutte le applicazioni in "ascolto" (spiego dopo) come ad esempio un browser beccherebbero indiscriminatamente tutto il traffico TCP a lui non indirizzato (messaggi di MSN e così via...).
Le porte a livello fisico non esistono ma sono una specifica del protocollo TCP/IP.
I socket (letteralmente "zoccolo") sono invece la base.
Se nella scheda madre il processore comunica con i vari bus tramite il socket, una generica applicazione comunica con la scheda di rete tramite i socket.
Se non esistessero per scrivere uno stupidissimo programmino di chat bisognerebbe programmare in linguaggio macchina la scheda di rete VVoVe: !!!
Essi sono una specie di interfaccia virtuale che espone al programmatore i metodi e le chiamate alla scheda (opcodes) sotto forma di comandi semplici come appunto LISTEN, SEND...
Spero di averti chiarito le idee.

fammi sapere per dubbi o chiarimenti!

Ciauz,

TOXiC.