From 5c06075bcc51cdfcce8c0103e76a464eb8d0aef5 Mon Sep 17 00:00:00 2001 From: dado Date: Thu, 22 May 2025 22:20:46 +0200 Subject: [PATCH] rinominato i file e inserito appunti dhcp e udp --- networking/017-dhcp.md | 18 ++++++++++++++++++ ...ansport-layer.md => 018-transport-layer.md} | 0 networking/019-udp.md | 16 ++++++++++++++++ networking/README.md | 2 +- 4 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 networking/017-dhcp.md rename networking/{017-transport-layer.md => 018-transport-layer.md} (100%) create mode 100644 networking/019-udp.md diff --git a/networking/017-dhcp.md b/networking/017-dhcp.md new file mode 100644 index 0000000..a9941f7 --- /dev/null +++ b/networking/017-dhcp.md @@ -0,0 +1,18 @@ +# DHCP (Dynamic Host Configuration Protocol) + +Il `DHCP` (*Dynamic Host Configuration Protocol*) è un protocollo utilizzato per la configurazione automatica dei parametri di rete di un host, sia per IPv4 che per IPv6. Le informazioni fornite includono l'indirizzo IP, la netmask, il default gateway e i server DNS. + +Il protocollo DHCP è basato su UDP (User Datagram Protocol) e utilizza le porte 67 (per i server DHCP) e 68 (per i client). + +## Funzionamento del DHCP + +Il DHCP opera in un modello client-server, dove uno o più client richiedono le configurazioni di rete a uno o più server DHCP: + +1. **DHCP Discovery**: il client invia un pacchetto DHCP Discovery in broadcast sulla rete locale. Questo pacchetto è destinato a tutti i server DHCP presenti nella rete, che possono così ricevere la richiesta e formulare un'offerta di configurazione. Il `Transaction ID` viene utilizzato per identificare in modo univoco una transazione DHCP tra un client e un server, consentendo al client di abbinare le risposte dei server DHCP alle proprie richieste + +2. **DHCP Offer**: ogni server DHCP che riceve il pacchetto Discovery elabora un'offerta di configurazione di rete e la invia al client. Il client potrebbe ricevere più offerte, a seconda del numero di server DHCP presenti nella rete, e dovrà scegliere quella più adatta alle sue esigenze. L'offerta viene sempre mandata in broadcast + +3. **DHCP Request**: una volta scelta l'offerta, il client invia un pacchetto DHCP Request al server DHCP selezionato, informandolo dell'accettazione della sua offerta e richiedendo la conferma della disponibilità della configurazione + +4. **DHCP Acknowledgment (ACK)**: il server DHCP risponde con un pacchetto DHCP Acknowledgment (ACK), confermando la disponibilità della configurazione e fornendo al client i parametri di rete necessari. Se la configurazione non fosse più disponibile, il server invia un pacchetto DHCP Negative Acknowledgment (NACK), e il processo ricomincia + diff --git a/networking/017-transport-layer.md b/networking/018-transport-layer.md similarity index 100% rename from networking/017-transport-layer.md rename to networking/018-transport-layer.md diff --git a/networking/019-udp.md b/networking/019-udp.md new file mode 100644 index 0000000..04c88ed --- /dev/null +++ b/networking/019-udp.md @@ -0,0 +1,16 @@ +# UDP + +`UDP` (*User Datagram Protocol*) è un protocollo di livello 4 del modello ISO/OSI, appartenente al Transport Layer, insieme a `TCP` (*Transmission Control Protocol*). UDP è noto per la sua semplicità e per essere *connectionless*, ovvero non orientato alla connessione. + +UDP non stabilisce una connessione prima di inviare i dati. Questo rende UDP meno complesso e più leggero rispetto a TCP. + +É utilizzato in applicazioni dove la velocità e l'efficienza sono più importanti della affidabilità e dell'integrità dei dati. Esempi comuni includono lo streaming video e audio, dove la perdita occasionale di pacchetti è accettabile, oppure per la risoluzione dei nomi di dominio. + +## Struttura del Datagramma UDP + +Un datagramma UDP ha un payload che può variare da 8 byte fino a 65.535 byte. Il datagramma è incapsulato con un header UDP di 8 byte, che contiene le seguenti informazioni: + +- **Porta Sorgente** (16 bit) +- **Porta Destinazione** (16 bit) +- **Lunghezza** (16 bit): la lunghezza totale del datagramma UDP, inclusi header e payload +- **Checksum** (16 bit): un campo opzionale utilizzato per il controllo degli errori. Il checksum aiuta a verificare l'integrità del datagramma UDP diff --git a/networking/README.md b/networking/README.md index 3e9aa1f..ed28f08 100644 --- a/networking/README.md +++ b/networking/README.md @@ -1,3 +1,3 @@ # networking -Appunti di networking \ No newline at end of file +Appunti di networking