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



Documenti analoghi
OSI vs. TCP/IP. TCP e UDP: il livello trasporto dell'architettura TCP/IP. Transport layer. Transport layer. Cosa misuriamo?

Transmission Control Protocol

TCP e UDP: il livello trasporto dell'architettura TCP/IP

TCP e UDP: il livello trasporto dell'architettura TCP/IP. OSI vs. TCP/IP. Transport layer. A.Lioy - Politecnico di Torino ( ) A-1

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

OSI vs. TCP/IP. TCP e UDP: il livello trasporto dell'architettura TCP/IP. Transport layer. Transport layer. Cosa misuriamo?


Il livello trasporto Protocolli TCP e UDP

TCP e UDP: il livello trasporto dell'architettura TCP/IP. OSI vs. TCP/IP. Transport layer. A.Lioy - Politecnico di Torino ( ) 1

4 - Il livello di trasporto

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

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

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 )

Introduzione (parte III)

Livello di Trasporto

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

Livello trasporto: TCP / UDP. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 14 TCP/UDP - 1/35.

I protocolli UDP e TCP

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

Reti di Calcolatori in Tecnologia IP

IL LIVELLO TRASPORTO Protocolli TCP e UDP

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

Progettazione di servizi web e reti di calcolatori. appunti trascritti dagli studenti dell AA (ed integrati dal docente) Antonio Lioy

IL LIVELLO TRASPORTO Protocolli TCP e UDP

Reti di Calcolatori. Il software

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

Reti di Telecomunicazione Lezione 6

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

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

MODELLI ISO/OSI e TCP/IP

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

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

Gestione della Connessione in TCP

Livello trasporto in Internet

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

L architettura di TCP/IP

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

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

Reti di Telecomunicazione Lezione 8

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

IP Internet Protocol

Dal protocollo IP ai livelli superiori

Introduzione alle applicazioni di rete

Livello Trasporto Protocolli TCP e UDP

Progettazione di servizi web e reti di calcolatori appunti trascritti dagli studenti (ed integrati dal docente)

ARCHITETTURA DI RETE FOLEGNANI ANDREA

Standard di comunicazione

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

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

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

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

Reti diverse: la soluzione nativa

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

Il client deve stampare tutti gli eventuali errori che si possono verificare durante l esecuzione.

Livello trasporto in Internet

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

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

Parte II: Reti di calcolatori Lezione 24

Informatica per la comunicazione" - lezione 8 -

I canali di comunicazione

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

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

Capitolo 3 Livello di trasporto

Protocolli di Comunicazione

Sicurezza delle reti 1. Lezione IV: Port scanning. Stato di una porta. Port scanning. Mattia Monga. a.a. 2010/11

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

TECN.PROG.SIST.INF. TCP/IP Livello TRASPORTO Roberta Gerboni

Introduzione alla rete Internet

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

Il livello di Trasporto del TCP/IP

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

Laboratorio di Programmazione in rete

Modulo 11 Livelli Transport e Application del modello TCP/IP

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

Strato trasporto. Per capir meglio la cosa analizziamo il seguente esempio:

Cos è. Protocollo TCP/IP e indirizzi IP. Cos è. Cos è

Didattica dell informatica 1

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

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

LIVELLO DATA LINK (DI LINEA)

DA SA Type Data (IP, ARP, etc.) Padding FCS

Principi fondamentali

Transmission Control Protocol (TCP) Andrea Detti

Livello di trasporto: meccanismi trasferimento dati affidabile

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 14 Settembre 2005, ore 9.00

10. Stratificazione dei protocolli

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

Transport Layer & TCP/UDP

Corso di Sistemi di Elaborazione delle informazioni

Laurea in INFORMATICA

Introduzione alla rete Internet

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

Inizializzazione degli Host. BOOTP e DHCP

Il firewall Packet filtering statico in architetture avanzate

Approfondimento di Marco Mulas

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

Modulo 11. Il livello trasporto ed il protocollo TCP Indice

ICMP. Internet Control Message Protocol. Silvano GAI. sgai[at]cisco.com. Mario BALDI. mario.baldi[at]polito.it

Servizi orientati alla connessione

Transcript:

CP e UDP: il livello trasporto dell'architettura CP/IP Antonio Lioy < lioy@polito.it > 7 6 5 4 3 network OSI vs. CP/IP packet process (DNS, HP, SMP, ) (CP, UDP) network (IP) Politecnico di orino Dip. Automatica e Informatica 2 1 data link physical frame V, I, γ unspecified ransport layer CP canale logico end-to-end utile per gli sviluppatori applicativi, che altrimenti dovrebbero risolversi da soli i problemi di IP dimensione limitata pacchetti persi, duplicati, fuori sequenza API standard (socket) due protocolli più usati: CP privilegia l'affidabilità UDP privilegia la latenza ransmission Control Protocol canale logico end-to-end API come file sequenziale forward-only (read, write) stream bi-direzionale simultaneo di byte tra due componenti distribuite protocollo affidabile ma lento buffering sia in trasmissione sia in ricezione disaccoppia la velocità computazionale il più usato dalle applicazioni Internet web, posta elettronica, trasferimento file,... Uso di CP per client- CP buffering client sender (es. web) receiver (es. browser) network CP channel input stream (request) buffer (trasmissione) buffer (ricezione) output stream (response) Youube smartphone A.Lioy - Politecnico di orino (2013-14) A-1

UDP Uso di UDP per client- User Datagram Protocol permette alle componenti di scambiarsi messaggi (datagrammi) contenenti un insieme di byte API a messaggi (sendto, recvfrom) la componente destinataria è identificata internamente al messaggio protocollo inaffidabile ma veloce limitata lunghezza del messaggio (max 64 kb) accodamento al destinatario client request datagrams rischio di "over-run" o "out-of-space" usato per applicazioni in cui la ritrasmissione o perdita non è un problema (es. DNS, NP) response datagrams CP e UDP Porte e multiplexing due protocolli di trasporto alternativi realizzano funzionalità comuni a tutti gli applicativi usabili simultaneamente da applicativi diversi per distinguere i dati generati da / destinati ad una specifica applicazione su un determinato nodo si usa il concetto di porta (multiplexing) ad esempio un browser che voglia connettersi ad un web deve indicare: l indirizzo IP del web process network mail SMP 1... 25... 80...... 1... 23... 1030 CP web HP indirizzo IP name DNS UDP name client DNS... il protocollo di trasporto (CP) il numero della porta associata al servizio web (80) Caratteristiche delle porte CP e UDP identificate da un numero intero su 16 bit 0... 1023 = porte privilegiate usabili solo da processi di sistema 1024... 65535 = porte utente usabili da qualunque processo porte statiche quelle dove un è in ascolto porte dinamiche quelle usate per completare una richiesta di connessione e svolgere un lavoro Connessione CP (o messaggio UDP) rappresentate da una quintupla: protocollo (CP o UDP) indirizzo IP (32 bit) e porta (16 bit) del client indirizzo IP (32 bit) e porta (16 bit) del ad esempio, per un collegamento HP: (CP, 14.2.20.3, 1040, 130.192.3.27, 80) client 14.2.20.3 130.192.3.27 1040 CP 80 A.Lioy - Politecnico di orino (2013-14) A-2

UDP: User Datagram Protocol un protocollo di trasporto: orientato ai messaggi non connesso stato del destinatario ignoto nessun accordo preliminare non affidabile datagrammi persi, duplicati, fuori sequenza aggiunge due funzionalità a quelle di IP: multiplexing delle informazioni tra le varie applicazioni tramite il concetto di porta checksum (opzionale) per verificare l integrità dei dati (utile contro errori di trasmissione, non attacchi) UDP: PDU (datagram) 0 15 16 31 source port destination port message length checksum data Campi dell'header UDP source port (16 bit) destination port (16 bit) message length (16 bit) lunghezza totale della PDU (header + payload) payload massimo teorico = 64 kb (massima lunghezza PDU IP)... 8 B (header UDP)... 20 B (minimo header IP) = 65,507 B checksum (16 bit, tutti zero se non usata) protegge header e payload (da errori, non attacchi!) utile quando: UDP: applicabilità si opera su rete affidabile (es. LAN o punto-punto) singola PDU può contenere tutti i dati applicativi non importa che tutti i dati arrivino a destinazione l applicazione gestisce meccanismi di ritrasmissione maggior problema di UDP = il controllo di congestione mittente mantiene il proprio tasso di trasmissione (elevato) anche se la rete è intasata, contribuendo ad intasarla maggiormente proposto DCCP (Datagram Congestion Control Protocol) UDP: applicazioni Le principali applicazioni che usano UDP sono: DNS (Domain Name System) trduzioni nomi indirizzi IP NFS (Network File System) dischi di rete (in ambiente Unix) SNMP (Simple Network Management Protocol) gestione apparecchiature di rete (router, switch, ) molte applicazioni di streaming audio e video è importante la bassa latenza è accettabile la perdita di alcuni dati CP: ransmission Control Protocol un protocollo di trasporto: byte-stream-oriented connesso affidabile usato da applicativi che richiedono la trasmissione affidabile dell informazione: telnet = terminale virtuale FP (File ransfer Protocol) = trasferimento file SMP (Simple Mail ransfer Protocol) = trasmissione e-mail HP (Hyper-ext ransfer Protocol) = scambio dati tra browser e web A.Lioy - Politecnico di orino (2013-14) A-3

funzionalità CP: CP: funzionalità supporto della connessione tramite circuiti virtuali controllo di errore controllo di flusso multiplazione e demultiplazione controllo di stato e di sincronizzazione CP garantisce la consegna del pacchetto, UDP no! CP: caratteristiche come UDP ha il concetto di porta il CP di un nodo, quando deve comunicare con il CP di un altro nodo, crea un circuito virtuale al circuito virtuale è associato un protocollo full-duplex acknowledge controllo di flusso segmenta e riassembla i dati secondo necessità: nessuna relazione tra il numero di read e di write usa sliding window, timeout e ritrasmissione CP richiede più banda e più CPU di UDP CP: PDU (segment) 0 4 8 15 16 31 source port data res control offset checksum sequence number destination port acknowledgment number options data window size urgent pointer padding Campi dell'header CP (I) source port (16 bit) destination port (16 bit) sequence number (32 bit) (SYN=1) valore iniziale (SYN=0) posizione nello stream del primo data byte acknowledgment number (32 bit) (ACK=1) posizione nello stream del primo data byte da ricevere (tutti quelli precedenti sono OK) (ACK=0) non significativo checksum (16 bit, tutti zero se non usata) protegge sia header sia payload Campi dell'header CP (II) data offset (4 bit) lunghezza dell'header CP in word da 32 bit valore 5...15 (20...60 B, con max 40 B di opzioni) control (9 bit) = insieme di flag SYN = sincronizzare i Sequence Number ACK = campo Acknowledgment Number valido FIN = non verranno trasmessi altri dati RS = reset della connessione PSH = inviare i dati nel buffer all'applicazione URG = campo Urgent Pointer valido NS, CWR, ECE (controllo avanzato di congestione) Campi dell'header CP (III) window size (16 bit) spazio ancora disponibile nella receive window il mittente può mandare al massimo questi byte prima di attendere un ACK ed una nuova WIN... oppure lo scadere del timeout! options (0-320 bit, in multipli di byte) opzioni varie es. imestamp, Selective Acknowledgment padding byte a zero per rendere l'header multiplo di 32 bit A.Lioy - Politecnico di orino (2013-14) A-4

CP Selective Acknowledgment Esempio SACK anche detto SACK definito in RFC-2018 utile quando viene perso un segmento ma ricevuti correttamente quelli successivi l'opzione indica un intervallo di byte ricevuti 50 byte 50 byte 50 byte 50 byte ricevuti persi ricevuti ricevuti (normale) ACK=50 aggiuntiva rispetto ad ACK sender ritrasmette 51-200 (ossia 150 byte) (con SACK) ACK=50, SACK=101-200 sender ritrasmette 51-100 (ossia 50 byte) CP: Urgent Pointer CP: three-way handshake con URG=1, indica che nel segmento ci sono uno o più byte "urgenti" tipicamente associati ad eventi asincroni: active open (client) CLOSED passive open () LISEN interrupt byte da trattare prima di quelli già ricevuti ma ancora nel buffer è un meccanismo per "saltare la coda" sul ricevente ma non ha effetto sulle code in rete quindi è praticamente inutile! R SYN_SEN SYN_RECEIVED R CP: four-way teardown active close (client) passive close() FIN m FIN_WAI1 CLOSE_WAI FIN_WAI2 LAS_ACK ACK n+1 IME_WAI CLOSED Lo stato IME_WAI dallo stato IME_WAI si esce solo per timeout: durata pari a 2 x MSL (Max Segment Lifetime) MSL = 2 minuti (RFC-1122), 30 secondi (BSD) quindi timeout 1 4 minuti esiste per risolvere due problemi: implementare la chiusura CP full-duplex l ultimo ACK potrebbe venir perso ed il client ricevere un nuovo FIN permettere a pacchetti duplicati di spirare potrebbero essere interpretati come parte di una nuova incarnazione della stessa connessione A.Lioy - Politecnico di orino (2013-14) A-5

Come si creano i segmenti CP? CP riceve un byte-stream dal livello superiore quando invia un segmento? con quanti byte? invia quando è pieno un segmento massimo (MSS) invia alla scadenza di un timeout (200 ms) invia quando si riceve un comando esplicito (flush) dal livello superiore invia non appena ci sono dati disponibili (se la connessione è marcata CP_NODELAY) segmenti grossi: maggiore latenza, migliore throughput (viceversa per segmenti piccoli) es. download vs. on-line gaming CP Maximum Segment Size (MSS) massima quantità di dati (payload) presenti in un segmento CP: 576 B (max pacchetto IP trattabile da tutti)... 20 B (min header IP)... 20 B (min header CP) = 536 B CP: sliding window il ricevente ha un buffer limitato lo spazio disponibile varia in base a: ACK inviati dati prelevati dall'applicazione non manda ACK per singoli byte ma cerca di raggruppare più byte ricevuti usare "piggyback" su dati da inviare dati ricevuti ACK inviato mandati all'app dati ricevuti ACK inviato non mandati all'app receiver buffer dati ricevuti ACK non inviato dati ricevibili CP: slow start le prime versioni di CP quando andavano in timeout ritrasmettevano l intera window questo poteva causare gravi congestioni della rete: nell ottobre 1986 Arpanet fu bloccata da una congestione (da 32 kbps a 40 bps) per evitare le congestioni venne introdotto l algoritmo slow-start quando si verifica un timeout la window viene reinizializzata al valore minimo e fatta crescere lentamente, per evitare nuove congestioni problema rilevante per le connessioni wireless, più soggette a timeout di quelle cablate A.Lioy - Politecnico di orino (2013-14) A-6