La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Programmazione su Reti Il livello trasporto di TCP/IP: TCP e UDP Giuseppe Persiano Dipartimento di Informatica ed Applicazioni Università degli Studi di.

Presentazioni simili


Presentazione sul tema: "Programmazione su Reti Il livello trasporto di TCP/IP: TCP e UDP Giuseppe Persiano Dipartimento di Informatica ed Applicazioni Università degli Studi di."— Transcript della presentazione:

1 Programmazione su Reti Il livello trasporto di TCP/IP: TCP e UDP Giuseppe Persiano Dipartimento di Informatica ed Applicazioni Università degli Studi di Salerno

2 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- I protocolli TCP e UDP OSI Application Presentation Session Transport Network Data Link Physical Non Specificati IP TCP e UDP RPC XDR NFS Internet Protocol Suite Arp e Rarp ICMP Protocolli di routing Telnet FTP SMTP SNMP

3 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- Transport Layer in TCP/IP l Fornisce un flusso di dati tra due host da passare allo strato Application l TCP/IP prevede due protocolli di trasporto »TCP (Transmission Control Protocol) garantisce un flusso affidabile di dati tra due host spezzetta i dati in segmenti della taglia appropriata gestisce acknowledgement dei segmenti controllo del flusso »UDP (User Datagram Protocol) spedisce datagram tra i due host

4 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- TCP e UDP: Porte l Diverse applicazioni possono usare lo stesso trasporto allo stesso istante sullo stesso host. l TCP e UDP identificano le applicazioni mediante numeri di porta a 16 bit. l Sistemi UNIX hanno il concetto di porta riservata »porte con numero da 1 a 1023 possono essere usate solo da processi con privilegi di superuser

5 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- TCP e UDP: demultiplexing Appl. 3 porta Trasporto Network Appl. 2 porta Appl. 1 porta 24561

6 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- TCP e UDP: Porte l L'assegnazione della porta di protocollo ad un processo da parte del sistema operativo avviene sotto richiesta del processo stesso. l Come si assegna una porta di protocollo ad un processo? Esistono due metodologie fondamentali: »Assegnazione statica; »Assegnazione dinamica (portmapper).

7 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- Modello Client Server (informale) l Due attori: client e server l Server: fornisce un servizio »Web server rende disponibile pagine html ed altri servizi. »Applicazione server si lega ad una porta locale ed attende richieste di servizio dal client. l Client: richiede un servizio dal server »Web browser richiede una pagina html al web server. »Applicazione client si lega ad una porta locale ed invia una richiesta al server.

8 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- Dove è il server? l Il client deve conoscere lindirizzo applicativo del server per potersi connettere: »Indirizzo IP dellhost su cui gira lapplicazione server. »Porta a cui è legata lapplicazione server. l Il server non ha bisogno di conoscere lindirizzo del client: »Quando questi si connetterà, il server conoscerà lindirizzo del client.

9 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- Localizzazione del server l La parte server di applicazioni C/S di larga diffusione si legano sempre alla stessa porta chiamata la well-known port dellapplicazione. l Ad esempio: »server web (Apache, MSIS) si legano alla porta 80 di TCP (protocollo HTTP) »server telnet (telnetd) è associato alla porta 23 di TCP (protocollo telnet) »Server per gestione posta (sendmail) utilizza la porta 25 di TCP (protocollo SMTP)

10 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- UDP: User Datagram Protocol (RFC 768) l Protocollo di trasporto di tipo non connesso l Aggiunge due funzionalità a quelle di IP: »multiplexing delle informazioni tra le varie applicazioni tramite il concetto di porta »checksum (opzionale) per verificare lintegrità dei dati l Ogni operazione di output di unapplicazione che utilizza UDP come trasport produce esattamente un datagram UDP

11 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- UDP: Header UDP Source PortUDP Destination Port UDP Checksum DATA UDP Message Length

12 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- UDP: PDU l Porta di provenienza UDP: »è un campo di 16 bit che contiene il numero di porta di protocollo del processo mittente, è facoltativa. Viene usata per comunicare al processo destinazione il numero di porta a cui dovrebbe spedire eventuali risposte. l Porta di destinazione UDP: »è un campo il cui contenuto è analogo al precedente, ma riferito alla destinazione. Infatti contiene il numero di porta di protocollo del processo destinazione.

13 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- UDP: PDU l Lunghezza del messaggio: »Contiene il numero totale di ottetti (parole di 8 bit) del datagramma UDP. In esso saranno contenuti dei valori positivi superiori o uguali ad 8, che rappresenta il valore minimo ammissibile (datagramma formato dalla sola intestazione). l Checksum: »Campo facoltativo di 16 bit »E calcolato come funzione dellheader UDP, dati UDP e pseudo-header UDP (parte dellheader TCP)

14 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- UDP: PDU Per calcolare il valore da inserire nel campo Checksum, il software crea una pseudo-intestazione composta dai seguenti campi:

15 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- UDP: PDU

16 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- UDP: Caratteristiche l User Datagram Protocol (UDP) fornisce un servizio di recapito dei datagrammi connectionless ed inaffidabile, usando l'IP per trasportare messaggi da una macchina ad un'altra; l E' simile all'IP, ma il messaggio UDP contiene sia il numero di porta di destinazione che quello di origine, rendendo possibile al software UDP di destinazione di recapitare il messaggio al corretto ricevente (programma od utente), ed a quest'ultimo di inviare una replica.

17 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- UDP: Caratteristiche l L'inaffidabilità è quella propria dell'IP, in quanto l'UDP non prevede nessun protocollo per il controllo dell'errore: non usa acknowledgement per assicurare al mittente che i messaggi siano arrivati, l Non dispone le sequenze di datagrammi in ordine e non fornisce una retroazione per il controllo del rate del flusso di informazioni tra macchine. I messaggi UDP possono essere persi, duplicati oppure arrivare fuori ordine; inoltre i datagrammi possono arrivare più velocemente di quanto il ricevente sia in grado di processarli.

18 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- UDP: applicabilità l Utile quando: »si opera su rete locale »lapplicazione mette tutti i dati in un singolo pacchetto »non è importante che tutti i pacchetti arrivino a destinazione »lapplicazione gestisce meccanismi di ritrasmissione

19 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- UDP: applicazioni l Le applicazioni principali che utilizzano UDP sono: »NFS (Network File System) »Talk »Applicazioni Runix rwho ruptime...

20 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- Frammentazione IP Maximum Transferable Unit l Ogni interfaccia ha un MTU (Maximum Transferable Unit) associata che definisce la grandezza massima di un frame. »Esempio: frame ethernet <= 1500byte di dati 20 byte header IP 8 byte header UDP l 1472 byte di dati l Datagrammi IP che eccedono la MTU devono essere frammentati.

21 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- Frammentazione IP l Identification viene copiato in ciascun frammento l flag more fragment=1 per tutti i frammenti tranne lultimo dont fragment=1 il datagramma non deve essere frammentato l fragment offset contiene offset del frammento relativamente allinizio del datagramma originario l total length modificato per riflettere la nuova lunghezza

22 G. Persiano -- Dipartimento di Informatica ed Appl. Università di Salerno -- ICMP Unreachable Error (Fragmentation Required ) l Se per un datagram con flag DF settato è necessaria la frammentazione »viene generato un errore unreachable l type 3 code 4 l contiene MTU della rete del next hop traceroute l Path MTU può essere scoperta anche con traceroute


Scaricare ppt "Programmazione su Reti Il livello trasporto di TCP/IP: TCP e UDP Giuseppe Persiano Dipartimento di Informatica ed Applicazioni Università degli Studi di."

Presentazioni simili


Annunci Google