Il livello trasporto: introduzione Il protocollo UDP

Documenti analoghi
Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Il livello trasporto: Introduzione e protocollo UDP

Il livello trasporto: Introduzione e protocollo UDP

Reti di calcolatori TCP/IP. Slide a cura di Simon Pietro Romano

Reti di Calcolatori:

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11)

Il livello trasporto: tecniche di trasmissione affidabile dei dati

Livello di trasporto:

UDP. User Datagram Protocol. UDP Connectionless

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2011/12)

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Livello trasporto. Servizi del livello trasporto

Il livello trasporto: controllo di flusso in TCP

Introduzione alla rete Internet

Lo strato di Trasporto

Network Address Translation (NAT)

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11)

Telematica di Base. Il livello di trasporto

Reti di Calcolatori I. Prof. Roberto Canonico Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

Introduzione alla rete Internet

Protocolli ARP e DHCP

Reti di Calcolatori I. Prof. Roberto Canonico Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

Introduzione alla rete Internet

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

TCP/IP: summary. Lorenzo Cavallaro, Andrea Lanzi

Esempi di programmi client/server in Python

Terminologia e concetti fondamentali La struttura di Internet (hardware e software):

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2011/12)

Argomenti: ! Servizi dello strato di trasporto! multiplexing/demultiplexing! Servizio senza connessione: UDP

Fondamenti di Internet e Reti. Antonio Capone, Matteo Cesana, Ilario Filippini, Guido Maier

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Capitolo 3 - parte 1. Corso Reti ed Applicazioni Mauro Campanella Como 2003

MODELLI ISO/OSI e TCP/IP

Livello 4 (trasporto): cosa vedremo

11. Protocollo di trasporto a datagramma: User Datagram Protocol (UDP)

MODELLI ISO/OSI e TCP/IP

Lezione n.3 LIVELLO TRASPORTO

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Mariarosaria Napolitano. Architettura TCP/IP. Corso di: Laboratorio di tecnologie informatiche e telematiche

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Cenni sull architettura protocollare TCP/IP

Cenni sull architettura protocollare TCP/IP

Reti di Calcolatori Servizi di Rete Laboratorio di Didattica in Rete

Internet Protocol Cenni introduttivi

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Introduzione alla rete Internet

Reti di Telecomunicazione Lezione 8

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Il livello trasporto Protocolli TCP e UDP

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11)

Standard: OSi vs TCP/IP. Il livello di trasporto. TCP e UDP. TCP: Transmission Control Protocol. TCP: funzionalità

Introduzione al corso

ISO OSI. International Standard Organization Open System Interconnection

Reti di Calcolatori. Master "Bio Info" Reti e Basi di Dati Lezione 3

Trasmissione multicast in reti IP

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Introduzione alla rete Internet

TCP/IP: una breve introduzione

3: Architettura TCP/IP

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

ICMP OSI. Internet Protocol Suite. Telnet FTP SMTP SNMP TCP e UDP NFS. Application XDR. Presentation. Session RPC. Transport.

Reti di Calcolatori I. Prof. Roberto Canonico Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione

MODELLO TCP/IP LIVELLO 4 Trasporto. Il protocollo per il controllo della trasmissione. La gestione degli errori di trasmissione

IP Routing Silvano GAI Mario Baldi Pietro Nicoletti Le slide sono coperte da copyright il loro uso senza fini di lucro e' concesso dagli autori

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I

Corso di Sistemi di Misura Distribuiti. Ing. Domenico Capriglione

Reti di calcolatori. Lezione del 17 giugno 2004

Servizi del livello trasporto, protocollo UDP, intro a TCP

Introduzione alla rete Internet

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing

TCP/IP: una breve introduzione

Modelli a strati delle reti di calcolatori - Il modello ISO/OSI Il concetto di protocollo

Reti di Calcolatori in Tecnologia IP

TCP/IP: elemento unificante

Algoritmo di Dijkstra

Livello rete. Piano di controllo. Introduzione: Piano dei dati e piano di controllo Architettura di un router IP: Internet Protocol

Programmazione in Rete

TCP, UDP e Applicazioni

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2011/12)

Internet Protocol Versione 4: aspetti generali

I.I.S. G.B. PENTASUGLIA MATERA ISTITUTO TECNICO SETTORE TECNOLOGICO LICEO SCIENTIFICO SCIENZE APPLICATE. Classe: 5Ci

Interconnessione di LAN: hub e bridge

Transport Layer & TCP/UDP

Politecnico di Milano Scuola di Ingegneria Industriale e dell Informazione. Modelli Funzionali

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Le Reti Informatiche

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Il livello Trasporto si occupa di come avviene lo scambio dei dati tra mittente e destinatario, gestisce quindi l invio e la ricezione dei dati.

Corso di Reti di Calcolatori

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11)

Corso di. Reti di Telecomunicazioni a.a

4 - Il livello di trasporto

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Organizzazione della lezione

Capitolo 1 - parte 1. Corso Reti ed Applicazioni Mauro Campanella Como 2003

Lo strato di Trasporto

RETI DI CALCOLATORI E APPLICAZIONI TELEMATICHE

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2011/12)

Transcript:

Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori I Roberto Canonico (roberto.canonico@unina.it) Giorgio Ventre (giorgio.ventre@unina.it) Il livello trasporto: introduzione Il protocollo UDP I lucidi presentati al corso sono uno strumento didattico che NON sostituisce i testi indicati nel programma del corso

Nota di copyright per le slide COMICS Nota di Copyright Questo insieme di trasparenze è stato ideato e realizzato dai ricercatori del Gruppo di Ricerca COMICS del Dipartimento di Informatica e Sistemistica dell Università di Napoli Federico II. Esse possono essere impiegate liberamente per fini didattici esclusivamente senza fini di lucro, a meno di un esplicito consenso scritto degli Autori. Nell uso dovranno essere esplicitamente riportati la fonte e gli Autori. Gli Autori non sono responsabili per eventuali imprecisioni contenute in tali trasparenze né per eventuali problemi, danni o malfunzionamenti derivanti dal loro uso o applicazione. Autori: Simon Pietro Romano, Antonio Pescapè, Stefano Avallone, Marcello Esposito, Roberto Canonico, Giorgio Ventre

Livello Trasporto Application Presentation Session Transport Network Data Link Physical Transport Service User Transport Service Provider OSI 3

Livello Trasporto Application Presentation Session Transport I protocolli di Livello Trasporto sono presenti solo negli end-system Application Presentation Session Transport Network Network Network Network Data Link Data Link Data Link Data Link Physical Physical Physical Physical 4

Servizi e Protocolli del Livello Trasporto Offre un canale di comunicazione logica tra applicazioni attive su differenti host Differenze tra livello trasporto e livello rete: Network-layer: trasferimento dati tra end-system Transport layer: trasferimento dati tra processi. Naturalmente necessita dei servizi offerti dal livello rete. application transport network data link physical network data link physical network data link physical network data link physical network data link physical network data link physical application transport network data link physical Da trasporto da host a host a trasporto da processo a processo 5

Servizi del Livello Trasporto - 1 Transport Network Data Link Physical OSI - affidabile - inaffidabile - affidabile - inaffidabile Isolare i livelli superiori dai problemi dovuti all uso di differenti tecnologie di rete e dalle loro (eventuali) imperfezioni Il livello rete offre un servizio inaffidabile, quindi: Il livello trasporto deve rimediare: aumentare l efficienza aumentare l affidabilità In particolare: controllo degli errori sequenza ordinata controllo di flusso controllo di congestione 6

Servizi del Livello Trasporto - 2 I protocolli di Livello Trasporto sono realizzati al di sopra del Livello Rete, quindi è necessario gestire: apertura della connessione (setup) memorizzazione dei pacchetti all interno della rete un numero elevato di connessioni Multiplexing e Demultiplexing 7

Multiplexing e Demultiplexing - 1 segment dati che sono scambiati tra processi a livello trasporto TPDU: transport protocol data unit segment header segment application-layer data Ht M Hn segment P1 M application transport network P3 Demultiplexing: inoltrare i segment ricevuti al corretto processo cui i dati sono destinati receiver M M application transport network P4 M P2 application transport network 8

Multiplexing e Demultiplexing - 2 Multiplexing: Raccogliere i dati provenienti dalle applicazioni, imbustare i dati con un header approriato (per il de-multiplexing) multiplexing/demultiplexing: Realizzato attraverso la coppia <indirizzo IP, numero di porto> source, dest port # è presente in ogni segmento numeri di porto well-known per applicazioni particolari 32 bits source port # dest port # other header fields application data (message) TCP/UDP segment format 9

Multiplexing e Demultiplexing: esempi host A source port: x dest. port: 23 server B Web client host C source port:23 dest. port: x Uso del concetto di porto: una semplice app telnet Source IP: C Dest IP: B source port: y dest. port: 80 Source IP: C Dest IP: B source port: x dest. port: 80 Web client host A Source IP: A Dest IP: B source port: x dest. port: 80 Web server B Caso del Web server 10

Connectionless demux Su P3 c è un processo in ascolto sul porto UDP 6428. P2 P3 P1 SP: 6428 DP: 9157 SP: 6428 DP: 5775 client IP: A SP: 9157 DP: 6428 server IP: C SP: 5775 DP: 6428 Client IP:B Il SP fornisce il return address

Connection-oriented oriented demux 1/2 P1 P4 P5 P6 P2 P1 P3 SP: 5775 DP: 80 S-IP: B D-IP:C client IP: A SP: 9157 DP: 80 S-IP: A D-IP:C server IP: C SP: 9157 DP: 80 S-IP: B D-IP:C Client IP:B Osservazione su HTTP persistente e non persistente

Connection-oriented oriented demux: Threaded Web Server P1 P4 P2 P1 P3 SP: 5775 DP: 80 S-IP: B D-IP:C client IP: A SP: 9157 DP: 80 S-IP: A D-IP:C server IP: C SP: 9157 DP: 80 S-IP: B D-IP:C Client IP:B

I protocolli TCP e UDP Transport Service User Application Presentation Session Transport Telnet FTP SMTP SNMP TCP e UDP NFS XDR RPC Transport Service Provider Network Data Link Physical OSI ARP e RARP ICMP IP Non Specificati Protocolli di routing Internet Protocol Suite 14

UDP: User Datagram Protocol [RFC 768] Aggiunge poco ad IP: servizio best effort : i pacchetti UDP possono: subire perdite giungere a destinazione in ritardo, o non arrivare affatto giungere a destinazione non ordinati servizio connectionless: non è prevista una fase di inizializzazione ogni segmento UDP è inviato indipendentemente dagli altri Domanda: C è qualcuno in ascolto? 15

UDP: User Datagram Protocol - 2 Perché è stato introdotto UDP? non è necessaria la fase di inizializzazione (setup) che introduce delay Es: DNS è basato su UDP semplice: sender e receiver non devono conservare informazioni di stato intestazione di dimensioni contenute: basso overhead controllo della congestione assente: le applicazioni possono inviare alla velocità desiderata utile per alcune applicazioni rischioso per la rete 16

UDP: User Datagram Protocol - 3 Ampiamente usato per applicazioni multimediali: tolleranti alle perdite di pacchetti sensibili ai ritardi Lunghezza in bytes del DNS segmento UDP, NFS (Network File System) header incluso Altre applicazioni: SNMP (Simple Network Management Protocol) Domanda: si può rendere UDP affidabile? Gestione degli errori Conferma di avvenuta ricezione 32 bits source port # dest port # length Application data (message) checksum Formato di un segmento UDP 17

Checksum UDP Obiettivo: rilevare errori (bit alterati) nel segmento trasmesso Mittente: Tratta il contenuto del segmento come una sequenza di interi espressi su 16 bit checksum: complemento ad 1 della somma (in complemento ad 1) dei numeri da 16 bit che costituiscono il segmento UDP Incluso uno pseudoheader che include gli indirizzi IP sorgente e destinazione Il mittente pone il valore della checksum nel campo checksum del segmento UDP Ricevente: calcola la somma in complemento ad 1 dei campi del segmento ricevuto compresa la checksum Risultato composto da tutti 1? NO: errore! SI: nessun errore rilevato il che non vuol dire che non vi siano stati errori

UDP checksum: pseudo-header La checksum viene calcolata anteponendo al datagramma UDP uno pseudo-header che contiene gli indirizzi IP sorgente e destinazione e la lunghezza del datagramma Lo pseudo-header (come dice il nome) viene aggiunto ai soli fini del calcolo della checksum, non viene trasmesso 19

UDP checksum: calcolo in C (1/2) unsigned short int udp_checksum(const void *buf, int len, in_addr_t src_addr, in_addr_t dest_addr) { const unsigned short int *buf=buff; unsigned short int *ip_src=(void *)&src_addr, *ip_dst=(void *)&dest_addr; unsigned short int sum; size_t length=len; // Calculate the sum sum = 0; while (len > 1) { sum += *buf++; if (sum & 0x80000000) sum = (sum & 0xFFFF) + (sum >> 16); len -= 2; } // Add the padding if the packet lenght is odd if ( len & 1 ) sum += *((unsigned char *)buf); // Add the pseudo-header... 20

UDP checksum: calcolo in C (2/2)... // Add the pseudo-header sum += *(ip_src++); sum += *ip_src; sum += *(ip_dst++); sum += *ip_dst; sum += htons(ipproto_udp); sum += htons(length); // Add the carries while (sum >> 16) sum = (sum & 0xFFFF) + (sum >> 16); } // Return the one's complement of sum return ( (unsigned short int)(~sum) ); 21