# Transport Layer

Al livello 4 del modello ISO/OSI, detto ``Transport Layer``, troviamo diversi protocolli, tra cui `UDP`, `TCP` e `QUIC`, che rappresenta un ibrido tra i primi due.

Nel livello 4, si crea un vero e proprio ponte tra due host che desiderano comunicare. Tuttavia, il canale di comunicazione non è direttamente tra l'host A e l'host B, ma piuttosto tra un processo specifico dell'host A e un processo remoto dell'host B.

Per identificare in modo univoco un processo, si utilizza l'associazione tra indirizzi IP e porte, che vanno da 0 a 65.535 (2^16-1). In questo contesto, si parla di `socket`, che permettono l'uso dello stack protocollare e l'inizio della comunicazione. Possono essere definiti come una coppia di indirizzo IP e numero di porta.

Esistono due tipi di socket:

- **locali**: utilizzati all'interno di un singolo host
- **remoti**: utilizzati per comunicare con processi su host diversi

La IANA (Internet Assigned Numbers Authority) ha definito una suddivisione delle 65.535 porte:

- **Well-known ports** (0-1023): porte associate a servizi noti, ad esempio la porta 80 per HTTP
- **Registered ports** (1024-49151): porte associate a servizi registrati, come la porta 3389 per RDP o la porta 1194 per OpenVPN
- **Free ports** (49152-65535): porte rimanenti, non associate a servizi specifici, utilizzate per comunicazioni temporanee o dinamiche
