4 - Il livello di trasporto



Documenti analoghi
Transmission Control Protocol

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+...


Reti di Telecomunicazione Lezione 8

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

Il livello trasporto Protocolli TCP e UDP

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

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

Università degli Studi di Bergamo

Università degli Studi di Bergamo

Prova in itinere - Rete Internet (ing. Giovanni Neglia) Mercoledì 23 Maggio 2007, ore 15.00

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00

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

Livello Trasporto. Liv. Applic. Liv. Transport. Transport Entity. Liv. Network. Trasporto

Introduzione (parte III)

I protocolli UDP e TCP

Dal protocollo IP ai livelli superiori

DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO

Reti di Calcolatori in Tecnologia IP

Reti di Calcolatori. Il software

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

Standard di comunicazione

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

Cenni di programmazione distribuita in C++ Mauro Piccolo

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete

MODELLI ISO/OSI e TCP/IP

Livello Trasporto Protocolli TCP e UDP

Reti diverse: la soluzione nativa

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca. Parte II Lezione 5

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet

4 - Il livello di trasporto

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

Introduzione alle applicazioni di rete

IL LIVELLO TRASPORTO Protocolli TCP e UDP

12.5 UDP (User Datagram Protocol)

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30

Page 1. Elementi Base del Modello OSI. Il modello di riferimento ISO/OSI OSI: Open Systems Interconnection. Struttura a Livelli.

Gestione della Connessione in TCP

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena

CORSO DI RETI SSIS. Lezione n.3 9 novembre 2005 Laura Ricci

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Inizializzazione degli Host. BOOTP e DHCP

Livello di Trasporto

Elementi di Informatica e Programmazione

Gestione degli indirizzi

I canali di comunicazione

Programmazione dei socket con TCP #2

Protocolli di Comunicazione

Il livello di trasporto

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella

Internet e protocollo TCP/IP

Livelli di un protocollo

Informatica per la comunicazione" - lezione 8 -

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

Telematica II 12. Esercitazione/Laboratorio 4

Elementi sull uso dei firewall

Il Mondo delle Intranet

Indice. Prefazione XIII

Elementi di Informatica e Programmazione

TCP/IP. Principali caratteristiche

Standard per Reti a Commutazione di Pacchetto Prof. Vincenzo Auletta Università degli studi di Salerno Laurea in Informatica

Il livello di trasporto

Reti. Reti e interconnessione di reti - Internetwork WAN 1 WAN 1. Router multiprotocollo (gateway) Terminologia

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori a.a. 2009/10

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

LIVELLO DATA LINK (DI LINEA)

Introduzione. Livello applicativo Principi delle applicazioni di rete. Stack protocollare Gerarchia di protocolli Servizi e primitive di servizio 2-1

Reti e Sistemi per l Automazione MODBUS. Stefano Panzieri Modbus - 1

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00

Sicurezza delle reti. Monga. Il livello di trasporto. Problemi di sicurezza intrinseci. Riassunto. Porte. Sicurezza delle reti.

Reti standard. Si trattano i modelli di rete su cui è basata Internet

Laboratorio di Programmazione in rete

Topologia delle reti. Rete Multipoint: ogni nodo è connesso agli altri tramite nodi intermedi (rete gerarchica).

Lo strato di Trasporto

Lo scenario: la definizione di Internet

Approfondimento di Marco Mulas

Protocollo TCP/IP & Indirizzamento IP

Gestione degli indirizzi

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento

Il livello Network del TCP/IP. Il protocollo IP (versione 4)

Internetworking TCP/IP: esercizi

Dipartimento di Ingegneria dell Informazione e Metodi Matematici Laboratorio di Reti Prof. Fabio Martignon

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Venerdì 18 Febbraio 2005, ore 9.30

Il firewall Packet filtering statico in architetture avanzate

Firewall e Abilitazioni porte (Port Forwarding)

Identità sulla rete protocolli di trasmissione (TCP-IP) L architettura del sistema. Dal livello A al livello B

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Parte II: Reti di calcolatori Lezione 13

Reti diverse: la soluzione nativa

Uso di UDP per client-server UDP. Porte e multiplexing. TCP e UDP. Connessione TCP (o messaggio UDP) Caratteristiche delle porte TCP e UDP

Introduzione al TCP/IP Indirizzi IP Subnet Mask Frame IP Meccanismi di comunicazione tra reti diverse Classi di indirizzi IP Indirizzi IP privati e

Il protocollo IP (Internet Protocol)

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

Internet. Internet. Internet Servizi e Protocolli applicativi. Internet. Organizzazione distribuita

Corso di Sistemi di Elaborazione delle informazioni

Transcript:

Università di Bergamo Dipartimento di Ingegneria Gestionale e dell Informazione 4 - Il livello di trasporto Architetture e Protocolli per Internet

Servizio di trasporto il livello di trasporto ha il compito di instaurare un collegamento logico tra le applicazioni residenti su host remoti Nella suite /IP, i protocolli applicativi si appoggiano direttamente sul livello di trasporto Processi software Applicativo (7) Trasporto (4) Rete (3) HTTP FTP SMTP IP UDP Livelli inferiori

Servizio di trasporto il livello di trasporto è presente solo negli end system (host) esso consente il collegamento logico tra processi applicativi IP DL DL prot. appl. Ph Ph prot. appl. o UDP IP Data Link connessione logica tra end-system o UDP IP Data Link Phisical IP IP Phisical DL DL DL DL DL DL Ph Ph Ph Ph Ph Ph

Servizio di trasporto Da applicazione ad applicazione: i messaggi di un applicazione vengono segmentati e trasformati in PDU (Packet Data Unit) di livello 4 (trasporto) il livello di trasporto passa le 4-PDU al livello di rete che le incapsula in PDU di livello 3 e le inoltra in rete a destinazione i messaggi passano dal livello 3 al 4 e i messaggi dell applicazione vengono ricostruiti il livello di trasporto rende trasparente il trasporto fisico dei messaggi alle applicazioni

Servizio di trasporto Più applicazioni possono essere attive su un end system il livello di trasporto svolge funzioni di multiplexing/demultiplexing ciascun collegamento logico tra applicazioni è indirizzato dal livello di trasporto protocolli applicativi http ftp smtp indirizzo di liv. http ftp smtp entità di trasporto trasporto (SAP di livello 4) protocollo di trasporto entità di trasporto livello rete livello rete

Le porte In Internet le funzioni di multiplexing/demultiplexing vengono gestite mediante indirizzi contenuti nelle PDU di livello di trasporto tali indirizzi sono lunghi 16 bit e prendono il nome di porte i numeri di porta possono assumere valori compresi tra 0 e 65535 i numeri noti sono assegnati ad applicativi importanti dal lato del server (HTTP, FTP, SMTP, DNS, ecc.) http://www.iana.org/assignments/port-numbers i numeri dinamici sono assegnati dinamicamente ai processi applicativi lato client Well-Known Ports 0 1023 Registered Ports 1024 49151 Dynamic and/or Private Ports 49152 65535

Socket Il numero di porta e l indirizzo IP identifica in modo univoco un processo applicativo (client o server) in esecuzione su un host la coppia di indirizzi prende il nome di indirizzo di socket i socket dei due processi in colloquio sono sempre contenuti negli header di livello IP e trasporto appl. appl. trasporto trasporto livello rete livello rete

Servizio di trasporto Il servizio di trasporto fornito può essere di vari tipi trasporto affidabile (garanzia di consegna dei messaggi nel corretto ordine) trasporto non affidabile (solo funzionalità di indirizzamento) ma ovviamente il servizio realmente fornito all applicazione dipende dal livello rete sottostante Nella suite IP sono definiti due tipi di trasporto (Transmission Control Protocol), orientato alla connessione e affidabile UDP (User Datagram Protocol), senza connessione e non affidabile

Servizio di trasporto I protocolli di trasporto sono implementati nei più diffusi sistemi operativi i sistemi operativi forniscono ai programmatori le funzioni di base per poter usare i protocolli di trasporto e far comunicare processi remoti quando un processo viene associato ad una porta (lato client o lato server) viene associato dal sistema operativo a due code, una d ingresso e una d uscita processo applicativo client processo applicativo server porta 52300 livello di trasporto porta 80

Applicazioni e trasporto In base al tipo di applicazione viene scelto il tipo di protocollo di trasporto più adatto Applicazione Protocollo applicativo Protocollo di trasporto electronic mail SMTP remote terminal access Telnet Web HTTP file transfer FTP remote file server NFS typically UDP streaming multimedia proprietary typically UDP Internet telephony proprietary typically UDP Network Management SNMP typically UDP Routing Protocol RIP typically UDP Name Translation DNS typically UDP

User Datagram Protocol (UDP) E il modo più semplice di usare le funzionalità di IP Non aggiunge nulla a IP se non: indirizzamento delle applicazioni blando controllo d errore sull header e quindi è un protocollo datagram non garantisce la consegna non esercita nessun controllo (né di flusso, né di errore) 1 32 bit source port length destination port checksum 8 BYTE

UDP: checksum Il checksum si calcola in modo analogo a quello del checksum IP ma non viene calcolato solo considerando l header UDP, ma anche uno pseudo-header IP 1 32 source IP address destination IP address tutti 0 protocol UDP length N. porta sorgente Lungh. trama N. porta destinazione Checksum bit pseudo-header UDP-header

Transmission Control Protocol () Il e un protocollo di trasporto che: assicura il trasporto affidabile in corretta sequenza senza errori dei dati Mediante è possibile costruire applicazioni che si basano sul trasferimento di file senza errori tra host remoti (web, posta elettronica, ecc.) E alla base della filosofia originaria di Internet: servizio di rete semplice e non affidabile, servizio di trasporto affidabile Il effettua anche un controllo di congestione end-toend che limita il traffico in rete e consente agli utenti di condividere in modo equo le risorse

: connection oriented Il è orientato alla connessione (connection oriented): prima del trasferimento di un flusso dati occorre instaurare una connessione mediante opportuna segnalazione le connessioni si appoggiano su una rete connectionless (datagram) le connessioni possono essere solo di tipo full-duplex (esiste sempre un flusso di dati in un verso e nel verso opposto, anche se questi possono essere quantitativamente diversi) per questo motivo, e adottato in combinazione con protocolli a livello rete di tipo datagram, come per esempio IP setup fase dati tear down

: controllo di flusso Il usa un controllo di flusso: il flusso dei dati in ingresso in rete è regolato sulla base della capacità del ricevitore di riceverli il controllo è basato su una sliding window sorgente destinazione utente

: controllo di congestione Il ha dei meccanismi di controllo della congestione il flusso dei dati in ingresso in rete è anche regolato dalla situazione di traffico in rete se il traffico in rete porta a situazioni di congestione il riduce velocemente il traffico in ingresso in rete non vi è nessun meccanismo per notificare esplicitamente le situazioni di congestione il cerca di scoprire i problemi di congestione sulla base degli eventi di perdita dei pacchetti

: controllo di congestione il meccanismo si basa ancora sulla sliding window la cui larghezza viene dinamicamente regolata in base alle condizioni in rete in linea di principio scopo del controllo è far si che il flusso emesso da ciascuna sorgente venga regolato in modo tale che il flusso complessivo offerto a ciascun canale non superi la sua capacità tutti i flussi possono essere ridotti in modo tale che la capacità della rete venga condivisa da tutti in misura se possibile uguale

: flusso dati Il è orientato alla trasmissione di flussi continui di dati (stream di byte) il converte il flusso di dati in segmenti che possono essere trasmessi in IP le dimensioni dei segmenti sono variabili l applicazione trasmittente passa i dati a e accumula i dati in un buffer. periodicamente, o quando avvengono particolari condizioni, il prende una parte dei dati nel buffer e forma un segmento la dimensione del segmento è critica per le prestazioni, per cui il cerca di attendere fino a che un ammontare ragionevole di dati è presente nel buffer di trasmissione

: controllo d errored Per assicurare il trasferimento affidabile del flusso dati su una rete che non garantisce affidabilità il adotta un meccanismo per il controllo delle perdite di pacchetti di tipo go-back-n sistema di numerazione e di riscontro dei dati inviati numera ogni byte trasmesso, per cui ogni byte ha un numero di sequenza nell header del segmento è trasportato il numero di sequenza del primo byte nel segmento stesso il ricevitore deve riscontrare i dati ricevuti inviando il numero di sequenza dell ultimo byte ricevuto correttamente ed in sequenza se un riscontro non arriva entro un dato timeout, i dati sono ritrasmessi

Segmento Source Port 16 bit Destination Port 16 bit Sequence Number 32 bit Acknowledgment Number 32 bit HLEN 4 bit Reserved 6 bit U R G A C K P S H R S T S Y N F I N Window 16 bit Checksum 16 bit Urgent Pointer 16 bit Options e Padding lunghezza variabile Dati lunghezza variabile

Header Source port, Destination port: indirizzi di porta sorgente e porta destinazione di 16 bit Sequence Number: il numero di sequenza del primo byte nel payload Acknowledge Number: numero di sequenza del prossimo byte che si intende ricevere (numero valido solo se ACK valido) HLEN: contiene la lunghezza complessiva dell header, che DEVE essere un multiplo intero di 32 bit Window: contiene il valore della finestra di ricezione come comunicato dal ricevitore al trasmettitore Checksum: CRC calcolato su un header virtuale ottenuto aggiungendo gli indirizzi IP di sorgente e di destinazione

Flag: Header URG: vale uno se vi sono dati ugenti; in questo caso urgent pointer punta al primo byte dei dati urgenti all interno dei dati ACK: vale uno se il pacchetto è un ACK valido; in questo caso l acknowledge number contiene un numero valido PSH: vale uno quando il trasmettitore intende usare il comando di PUSH; il ricevitore può anche ignorare il comando (dipende dalle implementazioni) RST: reset; resetta la connessione senza un tear down esplicito SYN: synchronize; usato durante il setup per comunicare i numeri di sequenza iniziale FIN: usato per la chiusura esplicita di una connessione Options and Padding: riempimento (fino a multipli di 32 bit) e campi optionali come ad esempio durante il setup per comunicare il MSS (il valore di default è 536 byte)

Opzioni Le opzioni sono opzionalmente aggiunte all header Opzioni di 1 byte: no operation: 00000001 (serve come riempimento per avere un header multiplo di 32 bit) end of option: 00000000 (byte di riempimento finale)à Opzioni lunghe: maximum segment size fattore di scala della finestra timestamp

Opzioni: Maximum Segment Size (MSS) Definisce la dimensione massima del segmento che verrà usata nella connessione La dimensione è decisa dal mittente durante la fase di setup valore di default è 256 byte, il valore massimo 65535 byte Code (00000010) Length (00000100) MSS 16 bit

Opzioni: Fattore di scala della finestra Definisce l unità di misura della finestra (campo window dell header IP) Il valore di default è 1 byte con l opzione il valore viene modificato di un fattore pari a 2 elevato al valore contenuto nel campo fattore di scala Code (00000010) Length (00000011) Fattore di scala 8 bit

Servizi e porte La divisione tra porte note, assegnate e dinamiche è la stessa che per UDP Alcuni delle applicazioni più diffuse: 21 22 23 25 53 80 FTP signalling FTP data telnet SMTP DNS HTTP

Socket e connessioni Un client si connette alla porta di un server SMTP remoto (servizio di posta elettronica) CLIENT Net. Add. 128.36.1.24 Port: 50358 SERVER Net. Add. 130.42.88.22 Port: 25 Due client accedono alla stessa porta di un server HTTP; non c è comunque ambiguità, perché la coppia di socket è diversa CLIENT Net. Add. 130.6.22.15 CLIENT Net. Add. 128.36.1.24 Port 53358 SERVER Net. Add. 130.42.88.22 Port 80 Port 59562

Setup (apertura) delle connessioni client 2. Active Open server 1. Passive Open Prima del call setup le applicazioni dal lato client e dal lato server devono comunicare con il software 1. Il server fa una Passive Open, che comunica al locale che e pronto per accettare nuove connessioni 2. Il client che desidera comunicare fa una Active Open, che comunica al locale che l applicativo intende effettuare una connessione verso un dato socket

client Setup delle connessioni server 3. SYN, SN=67803 3. Il client estrae a caso un numero di sequenza iniziale (67803) e manda un messaggio di SYNchronize (flag SYN=1) contenente questo numero di sequenza L estrazione del numero iniziale serve a evitare problemi nel caso in cui il setup non va a buon fine a causa della perdita di pacchetti e un nuovo setup viene iniziato subito dopo

Setup delle connessioni client 4. SYN / ACK, SN=5608, AN=67804 server 4. Quando riceve il SYN, il server estrae a caso un numero di sequenza iniziale (5608) e manda un segmento SYN/ACK (flag SYN=1, flag ACK=1) contenente anche un acknowledgment number uguale a 67804, per riscontrare il numero di sequenza iniziale precedentemente inviato dal client.

Setup delle connessioni client server 5. ACK, SN=67804, AN=5609 5. Il client riceve il messaggio SYN/ACK del server, e invia un ACK per il 5609. Nel payload inserisce i primi dati della connessione con numero di sequenza del primo byte pari a 67804.

client Setup delle connessioni 6. Connection Open server 7. Connection Open 6. Il client notifica all applicazione che la connessione e aperta 7. Quando il server riceve l ACK del client, notifica al suo TLP che la connessione e aperta

client Setup delle connessioni 2. Active Open 6. Connection Open 1. Passive Open server 7. Connection Open 3. SYN, SN=67803 4. SYN / ACK, SN=5608, AN=67804 5. ACK, SN=67804, AN=5609

Tear down (chiusura) delle connessioni client server 1. FIN, SN=127504 2. ACK, AN=127505 1. Il che chiude la connsessione invia un messaggio di FIN (flag FIN=1) con gli ultimi dati 2. Il dall altra parte invia un ACK per confermare

Tear down (chiusura) delle connessioni client server SN=8763 SN=9001 La connessione rimane comunque aperta nell altra direzione e quindi il dall altra parte può continuare ad inviare dati

Tear down (chiusura) delle connessioni client server 3. FIN, SN=9024 4. ACK, AN=9025 1. Infine, il dall altra parte chiude la connessione invia un messaggio di FIN (flag FIN=1) 2. Il che aveva già chiuso la connessione in direzione opposta invia un ACK finale per confermare

Tear down delle connessioni client server 1. FIN, SN=120893 2. ACK, SN=8763, AN=120894 3. FIN, SN=9025 4. ACK, AN=9026

Reset della connessione La connessione può anche essere chiusa senza scambio di messaggi nei due versi E possibile infatti settare il flag di RESET nel segmento e interrompere la connessione in entrambe le direzioni Il che riceve un RESET chiude la connessione interrompendo ogni invio di dati