70 likes | 229 Views
Differenze tra UDP e TCP (1). La scelta di UDP rispetto a TCP si basa su: funzionalità; prestazioni. Prestazioni a confronto: lo schema di controllo del flusso di TCP basato sulle finestre porta a bulk transfer a ondate; l’algoritmo “slow start” può ridurre il throughput;
E N D
Differenze tra UDP e TCP (1) • La scelta di UDP rispetto a TCP si basa su: • funzionalità; • prestazioni. • Prestazioni a confronto: • lo schema di controllo del flusso di TCP basato sulle finestre porta a bulk transfer a ondate; • l’algoritmo “slow start” può ridurre il throughput; • TCP ha un elevato overhead per segmento (header grande); • d’altro canto, UDP può inviare datagram piccoli e non efficaci.
Differenze tra UDP e TCP (2) • Affidabilità • TCP fornisce trasferimenti affidabili e ordinati. • UDP fornisce un servizio inaffidabile, l’applicazione deve accettare o considerare: • perdite di pacchetti dovute a overflow ed errori; • datagram non in ordine. • Multicast e broadcast • Supportati solo da UDP. • Lo schema di controllo degli errori di TCP non si presta al multicast affidabile. • Dimensione dei dati • Datagram UDP limitati a MTU IP (64 KB).
Differenze tra UDP e TCP (3) • Complessità delle applicazioni • Il framing a livello applicativo può essere reso difficile da TCP a causa dell’algoritmo di Nagle. L’algoritmo di Nagle controlla quando i segmenti TCP vengono inviati per usare i datagram IP in modo efficace. • I dati, però, possono essere ricevuti e letti da applicazioni in unità diverse rispetto a come sono stati inviati.
Differenze tra UDP e TCP (4) • Quale dei due protocolli è usato per: • HyperText Transfer Protocol (HTTP)? • File Transfer Protocol (FTP)? • Telnet? • Post Office Protocol (POP)? • Remote WHO (rwho)? • Audio/video MBONE? • Real Player? • Network File System (NFS)?
UDP e “middleware” UDP si usa soprattutto quando parte dei compiti di gestione delle connessioni sono delegati al livello applicativo, attraverso uno strato di middleware.
FINE Modello “middleware” • Servizi di livello più alto possono essere forniti per lo sviluppo di applicazioni tramite il cosiddetto “middleware”. • Possono essere incorporati nel sistema operativo (e girare su vari sistemi operativi). • Possono far parte del sistema operativo. • Funzioni possibili: trasmissione dei messaggi, gestione distribuita degli oggetti, servizi di directory, tipi di dati definiti dall’utente, RPC (Remote Procedure Calls), astrazioni di comunicazione alternative.