In una connessione TCP, oltre all'indirizzo IP dell'host a cui devono giungere le informazioni, bisogna conoscere anche a quale applicazione che gira sull''host queste devono essere passate. A tale scopo, si usano le porte. Le porte sono una specie di allocazione della memoria del computer che esiste quando due computer sono in comunicazione via TCP/IP e forniscono un punto terminale per l'applicazione un un host. Le porte vengono sempre identificate con un numero compreso tra 0e 65.535. Le porte identificate da un numero compreso tra 0 è 1.023 sono porte ben note, i cui valori sono stati assegnati per opera della Internet Assigned Number Authority (IANA) ad applicazioni associate. Nella tabella che segue vengono riportati i valori delle porte riservate e le relative applicazioni.
| Porta
|
Nome del servizio
|
Descrizione
|
|
0 |
|
Riservato. |
|
1 |
TCPMUX |
Multiplexer della porta servizio TCP. |
|
5 |
RJE |
Remote job entry. |
|
7 |
ECHO |
Servizio Echo. |
|
9 |
DISCARD |
Servizio Discard. |
|
11 |
SYSTAT |
Utenti attivi. |
|
13 |
DAYTIME |
Restituisce data e ora. |
|
17 |
QOTD |
Citazione del giorno. |
|
19 |
CHARGEN |
Generatore di caratteri. |
|
20 |
FTP-DATA |
File Transfer Protocol - dati. |
|
21 |
FTP |
File Transfer Protocol - controllo. |
|
23 |
TELNET |
Telnet. |
|
25 |
SMTP |
Simple Mail Transfer Protocol. |
|
37 |
TIME |
Ora. |
|
42 |
NAME |
Server dei nomi host. |
|
43 |
WHOIS |
Chi è in servizio (Nicname). |
|
53 |
DOMAIN |
Server dei nomi dominio. |
|
67 |
BOOTPS |
Boostrap Protocol server. |
|
68 |
BOOTPC |
Boostrap Protocol clint. |
|
77 |
RJE |
Qualunque servizio RJE privato. |
|
79 |
FINGER |
Finger. |
|
80 |
HTTP |
WWW. |
|
101 |
HOSTNAME |
Server dei nomi host NIC. |
|
102 |
ISO - TSAP |
ISO TSAP. |
|
103 |
X400 |
X.400. |
|
104 |
X400 - SND |
X.400 SND. |
|
105 |
CSNET - NS |
Server dei nomi mailbox CSNET. |
|
110 |
POP3 |
Post Office Protocol 3. |
|
111 |
SUNRPC |
Sun RPC Portmap. |
|
113 |
AUTH |
Servizio di autenticazione. |
|
117 |
UUCP - PATH |
Servizio Percorso UUCP. |
|
119 |
NNTP |
Network News Transfer Protocol. |
|
139 |
NBSESSION |
NetBIOS Session Service. |
|
143 |
IMAP |
Internet Mail Access Protocol. |
|
389 |
LDAP |
Lightweight Directory Access Protocol. |
|
540 |
UUCP |
Daemon uucp. |
|
543 |
KLOGIN |
Rlogin Kerberos Autentication. |
|
544 |
KSHELL |
Shell Remota Kerberos. |
|
666 |
DOOM |
Doom della Id Software. |
|
749 |
KERBEROS - ADM |
Amministrazione Kerberos. |
|
750 |
KERBEROS |
Amministrazione Kerberos - TCP. |
|
751 |
KERBEROS - MASTER |
Autenticazione Kerberos |
|
754 |
KRB - PROB |
Propagazione Kerberos |
|
1723 |
PPTP |
Point - to - Point Tunneling Protocol. |
I numeri delle porte dal lato client sono generati dinamicamente dal sistema operativo (OS), quando un utente tenta di connettersi con un host remoto. Quando un host origine vuole comunicare con un applicazione basata su Winsock che gira su un altro host, si connette con il numero della porta dell'applicazione sul server. L'effettivo indirizzo a cui si connette è l'indirizzo IP del server e il numero della porta. La combinazione tra indirizzo IP, protocollo per il trasporto e numero della porta prende il nome di indirizzo socket. Quando si stabilisce una sessione TCP, gli host che vi partecipano, danno origine alle due funzioni: L' host che funge da server esegue un' apertura passiva, che indica al sistema operativo su quale porta l'applicazione è intenzionata ad accettare la connessione. In questa situazione la porta si dice in stato di ascolto. L'host che funge da client contatta il sistema operativo per stabilire una porta che servirà per contattare l'applicazione che gira sul host server. In questa situazione la sessione tra i due host è stabilita.
Si può presentare la situazione che su una singola porta, vi siano più di una sessione connessa, come nell'esempio in figura.

Il server per distinguere da quale client giunge il flusso di dati usa le informazioni Full-Socket basate sugli indirizzi socket dei client connessi e del server. Un Client utilizza per definire la sessione di comunicazione, l'indirizzo socket 192.168.0.3:1031 da un lato e 175.130.0.1:25 dall'altro. Mentre l'altro Client ha come indirizzi socket 195.0.0.1:1031 e 175.130.0.1:25. Le sessioni di comunicazioni da punto a punto vengono anche chiamati circuiti virtuali. Anche se dal lato server gli indirizzi socket sono uguali, sono invece differenti sui client in modo da creare due distinti circuiti virtuali che non consentono il mescolarsi delle informazioni. |