Telemat Lab's home page


Copyright © 1996, 1997 Università di Firenze. All rights reserved.

license available.

 

CORSO DI TELEMATICA

Domain Name System - Protocolli UDP e TCP

di: Emiliano Nundini e Francesco Scapecchi



HYPER HOME Indice gen. Indice prec. Indice locale Indice succ.

User Datagram Protocol

 

 

  Slide 1






Molti sistemi operativi permettono la gestione della multiprogrammazione, cioè la possibilità di avere più Task in esecuzione contemporaneamente. Un Task identifica un processo a livello utente (programma applicativo) attualmente in esecuzione. Ogni Task potrebbe essere pensato come destinazione o sorgente di un messaggio, ma questo porterebbe a notevoli complicazioni. La instabilitità di un Task, dato che esso può essere distrutto o generato molte volte dal S.O. (riavvio della macchina), porterebbe alla necessità di dover complicare notevolmente il software che gestisce la trasmissione e la ricezione dei messaggi; inoltre risulta più logico associare come destinazione ad un messaggio la funzione che un Task deve svolgere, piuttosto che il Task capace di svolgere tale funzione (basti pensare al FTP), dato che possono esistere più Task capaci di svolgere la stessa funzione. Per questi motivi ogni macchina è fornita di un insieme di punti astratti di destinazione, le così dette Porte di Protocollo, identificate da un numero positivo. Il S.O. provvederà poi ad associare una porta di protocollo ad un processo attivo che intende comunicare. Un trasmettitore, quindi, per spedire un messaggio dovrà conoscere l'indirizzo IP dell'Host destinazione e il numero di porta del protocollo del processo destinazione.




 

 

 

 

 

 

 

 

  Slide 2






Nell'insieme dei protocolli TCP/IP, lo User Datagram Protocol, fornisce il meccanismo primario utilizzato dai programmi applicativi per inviare messaggi ad altri programmi applicativi. L' U.D.P. utilizza come informazioni di destinazione il numero di Porta del Protocollo del processo di destinazione; inoltre invia anche la Porta del Protocollo del processo mittente per permettere la ricezione di una eventuale risposta. L' U.D.P. è ad un livello superiore al protocollo IP, infatti, per spedire i messaggi, utilizza il sottostante Internet Protocol, ereditandone tutte le caratteristiche; prima fra tutte l'inaffidabilità del servizio di consegna dei datagrammi. L' U.D.P. non aggiunge nulla alle caratteristiche del' IP (non usa riscontri per verificare la corretta ricezione dei messaggi, non effettua ordinamento ecc. ecc.). I messaggi U.D.P. possono, quindi, essere persi, venire duplicati da qualche nodo intermedio di rete o arrivare fuori ordine. Un programma applicativo che intenda utilizzare l' U.D.P. per comunicare sulla rete, deve assumersi l'onere di gestire tutte le problematiche connesse sopra mensionate.




 

 

 

 

 

 

 

 

 

  Slide 3






Nella Slide è evidenziato il formato dei campi che compongono un datagramma U.D.P.. Esso è composto da due parti logiche :

L' intestazione e composta da :

Questi due campi vengono utilizzati per demultiplexare i datagrammi nella macchina Host, tra i vari processi attivi, connessi con delle porte di protocollo.

  • Area dati
  • Contiene le informazioni da trasmettere. Nella Slide si è evidenziato la variabilità della sua lunghezza, in dipendenza dalla quantità di dati da trasmettere.




      Slide 4






    Il datagramma UDP, per essere formato completamente ha bisogno di molte più informazioni. Per calcolare il valore da inserire nel campo Checksum, il software crea una pseudo-intestazione composta dai seguenti campi:

    Questa pseudo-intestazione viene calcolata e posizionata in testa al datagramma UDP. Viene inserito un ulteriore byte di zeri per raggiungere un multiplo di 16. Successivamente viene calcolata la Checksum su tutto il messaggio creato, viene scartata la pseudo-intestazione e spedito il datagramma. In fase di ricezione, il livello UDP, ricrea la pseudo-intestazione interagendo con il livello IP, calcola nuovamente la checksum e verifica la correttezza del messaggio ricevuto. In caso di errore viene generato un messaggio di ritrasmissione del datagramma.




      Slide 5






    Nello schema viene evidenziato come i programmi applicativi accedono all'UDP, attravesro l'incapsulamento delle informazioni. Un messaggio UDP, completo della propria intestazione, viene posizionato nell'area dati del datagramma IP del livello inferiore ( Incapsulamento ); a sua volta il livello IP aggiunge la sua intestazione, tra cui l'indirizzo IP della macchina destinazione, e passa tutto al livello inferiore. Il datagramma IP viene nuovamente posizionato nell'area dati, ma questa volta del frame trasmissivo, che poi verra fisicamente spedito in rete. In fase di ricezione la pila viene percorsa in senso inverso, cioè dal basso verso l'alto. Il frame trasmisivo raggiunge il livello di interfaccia di rete, il quale interpreta l'intestazione, la elimina ed estrae il datagramma IP, che passa al livello superiore. Il livello IP esegue gli stessi passi, cioè interpreta l'intestazione, la elimina e passa il datagramma UDP al livello superiore. Il livello UDP riceve un datagramma identico a quello che il pari livello mittente ha creato (escludendo eventuali errori di trasmissione). In caso di ricezione errata, il livello UDP genera un messaggio di errore e comunica al mittente di ritrasmettere il messaggio completo.




      Slide 6






    Abbiamo descritto il funzionamento del protocollo UDP, evidenziando la sua possibilità di identificare come destinazione un processo attivo in una macchina host. Questo meccanismo prende il nome di Multiplexing (Demultiplexing in ricezione ) dei datagrammi. In fase di ricezione, la macchina host, preleva dalla rete il messaggio e dopo alcune elaborazioni questo ragguinge il livello UDP privo delle intestazioni dei livelli sottostanti. Il livello UDP interpreta l'intestazione del datagramma ed effettua un demultiplexing basato sul numero di porta del protocollo di destinazione.
    L'assegnazione della porta di protocollo ad processo da parte del sistema operativo avviene sotto richiesta del processo stesso; una volta assegnata tale processo farà riferimento ad essa per trasmettere informazioni sulla rete. Analogamente tale porta verrà utilizzata dagli altri processi su macchine host per comunicare con quel processo attivo. Se nella fase di demultiplexing, il datagramma fa riferimento ad una porta di protocollo non attualmente allocata, esso viene scartato e l'UDP genera un messaggio di errore (ICMP) di Porta irraggiungibile.



      Slide 7






    Due processi situati su macchine diverse, per potersi scambiare informazioni, hanno necessità di connettersi ad una porta di protocollo assegnata dal sistema operativo. Le porte di protocollo sono quindi essenziali per le comunicazioni tra processi. Come si assegna una porta di protocollo ad un processo?
    Esistono due metologie fondamentali :


    I progettisti del TCP/IP hanno poi utilizzato una tecnica che può essere considerata un ibrido tra le due sopra descritte. Infatti esistono dei numeri di porta di protocollo assegnati su base universale ai servizi più comuni ed utilizzati come ad esempio il File Trasfert. Questi valori sono globalmente noti. La maggior parte delle porte di protocollo sono, però, lasciate a disposizione dei processi applicativi locali e verranno assegnate solo su richiesta del processo stesso, senza nessuna logica apparente, una assegnazione dinamica. Di seguito è riportata una tabella campione illustativa di porta UDP assegnate attualmente.

    Decimale Parola-chiave Parola-chiave Unix Descrizione
    0 - - Riservata
    7 ECHO echo Eco
    9 DISCARD discard Scarto
    11 USERS systat Utenti attivi
    13 DAYTIME daytime Ora del giorno
    15 - netstat Chi è collegato o NETSTAT
    17 QUOTE qotd Citazione del giorno
    19 CHARGEN chargen Generatore di caratteri
    37 TIME time Tempo
    42 NAMESERVER name Server di nomi dell'Host
    43 NICNAME whois Chi è
    53 DOMAIN nameserver Server di nomi del dominio
    67 BOOTPS bootps Server del protocollo di bootstap
    68 BOOTPC bootpc Client del protocollo di bootstrap
    69 TFTP tftp Trivial File Transfer
    111 SUNRPC sunrpc RPC di Sun Microsystem
    123 NTP ntp Protocollo dell'ora di rete
    161 - snmp Monitor di rete SNMP
    162 - snmp-trap Trappole SNMP
    512 - biff Comsat di Unix
    513 - who Demone rwho di Unix
    514 - syslog Log di sistema
    525 - timed Demone di tempo

    Sono mostrate le parole-chiave standard e le loro equivalenti in Unix




    Telemat Lab's home page

    HYPER HOME Indice gen. Indice prec. Indice locale Indice succ.