logo

Protocollo UDP

Nelle reti di computer, UDP sta per User Datagram Protocol. David P. Reed ha sviluppato il protocollo UDP nel 1980. È definito nella RFC 768 e fa parte del protocollo TCP/IP, quindi è un protocollo standard su Internet. Il protocollo UDP consente alle applicazioni informatiche di inviare messaggi sotto forma di datagrammi da una macchina a un'altra sulla rete IP (protocollo Internet). L'UDP è un protocollo di comunicazione alternativo al protocollo TCP (protocollo di controllo della trasmissione). Come TCP, UDP fornisce una serie di regole che regolano il modo in cui i dati devono essere scambiati su Internet. L'UDP funziona incapsulando i dati nel pacchetto e fornendo le proprie informazioni di intestazione al pacchetto. Quindi, questo pacchetto UDP viene incapsulato nel pacchetto IP e inviato alla sua destinazione. Entrambi i TCP e UDP I protocolli inviano i dati sulla rete del protocollo Internet, quindi è anche noto come TCP/IP e UDP/IP. Ci sono molte differenze tra questi due protocolli. UDP consente al processo di elaborare la comunicazione, mentre il TCP fornisce la comunicazione da host a host. Poiché UDP invia i messaggi sotto forma di datagrammi, è considerata la modalità di comunicazione più efficace. TCP invia i singoli pacchetti, quindi è un mezzo di trasporto affidabile. Un'altra differenza è che il TCP è un protocollo orientato alla connessione mentre l'UDP è un protocollo senza connessione poiché non richiede alcun circuito virtuale per trasferire i dati.

UDP fornisce inoltre un numero di porta diverso per distinguere le diverse richieste degli utenti e fornisce anche la capacità di checksum per verificare se i dati completi sono arrivati ​​o meno; il livello IP non fornisce questi due servizi.

Caratteristiche del protocollo UDP

Di seguito sono riportate le caratteristiche del protocollo UDP:

    Protocollo del livello di trasporto

UDP è il protocollo di comunicazione del livello di trasporto più semplice. Contiene una quantità minima di meccanismi di comunicazione. È considerato un protocollo inaffidabile e si basa su servizi di consegna best-effort. UDP non fornisce alcun meccanismo di riconoscimento, il che significa che il destinatario non invia il riconoscimento per il pacchetto ricevuto e anche il mittente non attende il riconoscimento per il pacchetto che ha inviato.

    Senza connessione

L'UDP è un protocollo senza connessione in quanto non crea un percorso virtuale per trasferire i dati. Non utilizza il percorso virtuale, quindi i pacchetti vengono inviati in percorsi diversi tra il mittente e il destinatario, il che porta alla perdita di pacchetti o alla ricezione fuori ordine.

La consegna ordinata dei dati non è garantita.

Nel caso di UDP, i datagrammi vengono inviati in un certo ordine, la ricezione nello stesso ordine non è garantita poiché i datagrammi non sono numerati.

    Porti

Il protocollo UDP utilizza diversi numeri di porta in modo che i dati possano essere inviati alla destinazione corretta. I numeri di porta sono definiti tra 0 e 1023.

mappa iterativa Java
    Trasmissione più veloce

UDP consente una trasmissione più rapida poiché è un protocollo senza connessione, ovvero non è richiesto alcun percorso virtuale per trasferire i dati. Esiste però la possibilità che il singolo pacchetto vada perso, il che influisce sulla qualità della trasmissione. D'altra parte, se il pacchetto viene perso nella connessione TCP, quel pacchetto verrà inviato nuovamente, garantendo così la consegna dei pacchetti di dati.

    Meccanismo di riconoscimento

L'UDP non dispone di alcun meccanismo di riconoscimento, ovvero non esiste alcun handshaking tra il mittente UDP e il destinatario UDP. Se il messaggio viene inviato in TCP, il destinatario riconosce che sono pronto, quindi il mittente invia i dati. Nel caso del TCP, l'handshaking avviene tra il mittente e il destinatario, mentre in UDP non esiste alcun handshake tra il mittente e il destinatario.

    I segmenti vengono gestiti in modo indipendente.

Ogni segmento UDP viene gestito individualmente rispetto agli altri poiché ogni segmento segue un percorso diverso per raggiungere la destinazione. I segmenti UDP possono andare persi o essere consegnati fuori ordine per raggiungere la destinazione poiché non è stata impostata la connessione tra il mittente e il destinatario.

    Apolide

È un protocollo senza stato, il che significa che il mittente non riceve la conferma del pacchetto inviato.

Perché abbiamo bisogno del protocollo UDP?

Come sappiamo, l'UDP è un protocollo inaffidabile, ma in alcuni casi abbiamo comunque bisogno di un protocollo UDP. L'UDP viene utilizzato laddove i pacchetti richiedono una grande quantità di larghezza di banda insieme ai dati effettivi. Ad esempio, nello streaming video, riconoscere migliaia di pacchetti è problematico e spreca molta larghezza di banda. Nel caso dello streaming video, la perdita di alcuni pacchetti non può creare problemi e può anche essere ignorata.

Formato dell'intestazione UDP

Protocollo UDP

In UDP, la dimensione dell'intestazione è di 8 byte e la dimensione del pacchetto arriva fino a 65.535 byte. Ma questa dimensione del pacchetto non è possibile poiché i dati devono essere incapsulati nel datagramma IP e in un pacchetto IP la dimensione dell'intestazione può essere di 20 byte; pertanto, il massimo di UDP sarebbe 65.535 meno 20. La dimensione dei dati che il pacchetto UDP può trasportare sarebbe 65.535 meno 28 come 8 byte per l'intestazione del pacchetto UDP e 20 byte per l'intestazione IP.

L'intestazione UDP contiene quattro campi:

    Numero di porta di origine:Si tratta di informazioni a 16 bit che identificano quale porta invierà il pacchetto.Numero della porta di destinazione:Identifica quale porta accetterà le informazioni. Si tratta di informazioni a 16 bit utilizzate per identificare il servizio a livello di applicazione sul computer di destinazione.Lunghezza:È un campo a 16 bit che specifica l'intera lunghezza del pacchetto UDP che include anche l'intestazione. Il valore minimo sarebbe 8 byte poiché la dimensione dell'intestazione è 8 byte.Somma di controllo:È un campo a 16 bit ed è un campo facoltativo. Questo campo checksum controlla se le informazioni sono accurate o meno poiché esiste la possibilità che le informazioni possano essere danneggiate durante la trasmissione. È un campo facoltativo, il che significa che dipende dall'applicazione se vuole scrivere o meno il checksum. Se non vuole scrivere il checksum, allora tutti i 16 bit sono zero; in caso contrario, scrive il checksum. In UDP, il campo checksum viene applicato all'intero pacchetto, ovvero all'intestazione e alla parte dati, mentre in IP il campo checksum viene applicato solo al campo dell'intestazione.

Concetto di coda nel protocollo UDP

Protocollo UDP

Nel protocollo UDP, i numeri vengono utilizzati per distinguere i diversi processi su un server e su un client. Sappiamo che UDP fornisce un processo per elaborare la comunicazione. Il client genera i processi che necessitano di servizi mentre il server genera i processi che forniscono servizi. Le code sono disponibili per entrambi i processi, ovvero due code per ciascun processo. La prima coda è la coda in entrata che riceve i messaggi e la seconda è la coda in uscita che invia i messaggi. La coda funziona quando il processo è in esecuzione. Se il processo viene terminato, anche la coda verrà distrutta.

UDP gestisce l'invio e la ricezione dei pacchetti UDP con l'aiuto dei seguenti componenti:

fare e il ciclo while in Java
    Coda di input:I pacchetti UDP utilizzano una serie di code per ciascun processo.Modulo di ingresso:Questo modulo prende il datagramma dell'utente dall'IP e quindi trova le informazioni dalla tabella dei blocchi di controllo della stessa porta. Se trova la voce nella tabella del blocco di controllo con la stessa porta del datagramma utente, accoda i dati.Modulo blocco di controllo:Gestisce la tabella dei blocchi di controllo.Tabella dei blocchi di controllo:La tabella dei blocchi di controllo contiene la voce delle porte aperte.Modulo di uscita:Il modulo di output crea e invia il datagramma utente.

Diversi processi desiderano utilizzare i servizi di UDP. L'UDP multiplex e demultiplex i processi in modo che più processi possano essere eseguiti su un singolo host.

Limitazioni

  • Fornisce un servizio di consegna della connessione inaffidabile. Non fornisce alcun servizio di IP tranne che fornisce la comunicazione da processo a processo.
  • Il messaggio UDP può andare perso, ritardato, duplicato o essere fuori servizio.
  • Non fornisce un servizio di consegna del trasporto affidabile. Non fornisce alcun meccanismo di riconoscimento o di controllo del flusso. Tuttavia, fornisce in una certa misura il controllo degli errori.

Vantaggi

  • Produce un numero minimo di spese generali.