DNS: Domain Name System

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "DNS: Domain Name System"

Transcript

1 DNS: Domain Name System People: molti identificativi: o # CF, nome, # passaporto Host e router in Internet: o o indirizzo IP (32 bit) usato per indirizzare datagrams nome, e.g., pianeta.di.unito.it usato dagli esseri umani Domanda: corrispondenza tra indirizzo IP e nome? Domain Name System: database distribuito implementato con una gerarchia di name server protocollo di livello application host, router, e name servers comunicano per risolvere nomi (traduzione indirizzo/nome) o nota: funzione chiave in Internet, implementata come protocollo a livello application o complessità nella edge network 2: Livello Application 43

2 Servizi offerti dal DNS Traduzione di indirizzi mnemonico -> IP Host aliasing o indirizzi mnemonici complicati possono avere alias più semplici Mail server aliasing Distribuzione di carico o o web server replicati su host con stesso indirizzo mnemonico (e.g., cnn.com) ma diversi indirizzi IP rotazione degli indirizzi nelle risposte (l ordine determina chi contattare per primo da parte del client HTTP) 2: Livello Application 44

3 DNS name servers Perché non centralizzare il DNS? punto unico di guasto volume di traffico database centralizzato distante mantenimento non scala! nessun server ha tutte le corrispondenze nome-indirizzo IP name server locali: o o ogni ISP o azienda ha dei name server locali (default) la query DNS di un host è innanzitutto diretta al name server locale name server autoritativo: o o per un host: memorizza il nome e l indirizzo IP di quell host può eseguire la traduzione nome/indirizzo per il nome di quell host 2: Livello Application 45

4 DNS: Root name servers contattati dai name server locali che non sanno risolvere un nome root name server: o o o contatta il name server autoritativo se la corrispondenza per il nome non è conosciuta ottiene la corrispondenza e NASA Mt View, CA f Internet Software C. Palo Alto, CA restituisce la corrispondenza al name server locale a NSI Herndon, VA c PSInet Herndon, VA d U Maryland College Park, MD g DISA Vienna, VA h ARL Aberdeen, MD j NSI (TBD) Herndon, VA k RIPE London i NORDUnet Stockholm m WIDE Tokyo b USC-ISI Marina del Rey, CA l ICANN Marina del Rey, CA 13 root name server nel mondo 2: Livello Application 46

5 Semplice esempio DNS root name server l host surf.eurecom.fr vuole l indirizzo IP di gaia.cs.umass.edu 1. contatta il suo server DNS locale, dns.eurecom.fr 2. dns.eurecom.fr contatta il root name server, se necessario 3. il root name server contatta il name server autoritativo, dns.umass.edu, se necessario local name server dns.eurecom.fr host richiedente surf.eurecom.fr name server autorititivo dns.umass.edu gaia.cs.umass.edu 2: Livello Application 47

6 Esempio DNS root name server Root name server: può non conoscere il name server autoritativo può conoscere un name server intermedio : chi contattare per trovare il name server autoritativo local name server dns.eurecom.fr host richiedente surf.eurecom.fr name server intermedio dns.umass.edu 4 5 name server autoritativo dns.cs.umass.edu gaia.cs.umass.edu 2: Livello Application 48

7 DNS: query iterate root name server query ricorsive: scarica il peso della risoluzione del nome sul name server contattato carico pesante? query iterate: il server contattato risponde con il nome del server da contattare Non conosco questo nome ma chiedi a questo server local name server dns.eurecom.fr host richiedente surf.eurecom.fr query iterate name server intermedio dns.umass.edu 5 6 name server autoritativo dns.cs.umass.edu gaia.cs.umass.edu 2: Livello Application 49

8 DNS: caching e aggiornamento record una volta che un (qualunque) name server impara una corrispondenza, la mette in una cache o gli elementi della cache vanno in timeout (scompaiono) dopo qualche tempo meccanismo di aggiornamento/notifica sotto progetto del IETF o RFC 2136 o 2: Livello Application 50

9 DNS record DNS: database distribuito che memorizza record di risorse, resource records (RR) Type=A o o Type=NS o o formato RR: (name, value, type, ttl) name è un hostname value è un indirizzo IP name è un dominio (e.g. foo.com) value è un indirizzo IP di un name server autoritativo per questo dominio Type=CNAME o o name è un alias di un nome canonico (quello vero) è in realtà servereast.backup2.ibm.com value è il nome canonico Type=MX o value è il nome del mailserver associato a name 2: Livello Application 51

10 DNS record Se un name server è autoritativo per un host allora conterrà un record con Type=A per quell host Un name server non autoritativo può contenere un record con Type=A (caching) Se un name server non è autoritativo per un host allora conterrà un record con Type=NS per il dominio che include l host; conterrà anche un record con Type=A e indirizzo IP per il campo Value del record con Type=NS o o (umass.edu, dns.umass.edu, NS) (dns.umass.edu, ,a) 2: Livello Application 52

11 Protocollo DNS: i messaggi Protocollo DNS : messaggi di query e reply, entrambi con lo stesso formato di messaggio header del messaggio identificazione: # di 16 bit per le query, e il reply alla query usa lo stesso # flag: o query o reply o ricorsione desiderata o ricorsione disponibile o reply è autoritativo 2: Livello Application 53

12 Protocollo DNS: i messaggi Nome, campi tipo per una query RR in risposta ad una query record per server autoritativi informazioni utili aggiuntive che possono essere usate (e.g., RR con Type=A per alias mail server) 2: Livello Application 54

13 Parte 2: sommario Completato lo studio delle applicazioni di rete! requisiti di servizio delle applicazioni: o affidabilità, larghezza di banda, ritardo paradigma client-server Modelli di servizio di trasporto in Internet o o connection-oriented, affidabile: TCP non affidabile, datagram: UDP protocolli specifici: o o o o http ftp smtp, pop3 dns programmazione con socket o o implementazione di un client/server usando socket tcp, udp 2: Livello Application 72

14 Parte 2: sommario Più importante: imparato qualcosa sui protocolli tipico scambio di messaggi request/reply: o o il client richiede servizi o informazioni il server risponde inviando dati e codici di stato formati dei messaggi: o o header (intestazioni): i campi danno informazioni sui dati dati: informazioni che vengono comunicate messaggi di controllo vs. dati o in-based, out-of-band centralizzato vs. decentralizzato stateless vs. con stato trasferimento di messaggi affidabile vs. non affidabile complessità ai bordi della rete sicurezza: auetenticazione 2: Livello Application 73

15 Parte 3: livello transport Obiettivi: comprendere i principi alla base dei servizi a livello di trasporto: multiplexing/demultiplex ing trasferimento dati affidabile controllo di flusso controllo di congestione realizzazione in Internet Panoramica: servizi del livello di trasporto multiplexing/demultiplexing trasporto connectionless: UDP principi di trasferimento dati affidabile trasporto connection-oriented: TCP trasferimento affidabile controllo di flusso gestione delle connessioni principi del controllo di congestione controllo di congestione in TCP 3: Livello Transport 1

16 Protocolli e servizi di Trasporto fornire la comunicazione logica tra processi (applicazioni di rete) in esecuzione su host diversi i protocolli di trasporto sono eseguiti sugli host (endsystem) servizi di livello transport vs servizi di livello network: livello network: trsferimento dati tra host (end-system) livello trasporto: trasferimento dati tra processi si affida ai sevizi di livello network application transport network data link physical network data link physical trasporto end-to-end logico network data link physical network data link physical network data link physical network data link physical application transport network data link physical 3: Livello Transport 2

17 Protocollo di livello di trasporto Servizi di trasporto in Internet: trasporto affidabile, in ordine, unicast (1-to-1): (TCP) congestione controllo di flusso setup della connessione trasporto non affidabile ( best-effort ), non ordinato, unicast o multicast (1 to-m): UDP servizi non disponibili: real-time larghezza di banda garantita multicast affidabile application transport network data link physical network data link physical trasporto end-to-end logico network data link physical network data link physical network data link physical network data link physical application transport network data link physical 3: Livello Transport 3

18 Analogia umana (1) Due abitazioni (Italia, Australia) abitate da fratelli (10 in Italia e 10 in Australia) cugini degli altri 10 Ognuno scrive agli altri 10 una lettera in buste separate recapitate dalle Poste (Italiana ed Australiana) Ogni settimana 100 lettere partono da una abitazione verso l altra In ogni abitazione c è un responsabile (Teo e Tea) che, ogni settimana, raccoglie e distribuisce le lettere (in partenza e in arrivo). Se in partenza le passa al postino che passa dall abitazione ogni giorno dal quale raccoglie quelle in arrivo 3: Livello Transport 4

19 Analogia umana (2) Le Poste offrono, in questo esempio, la comunicazione logica tra le due abitazioni Teo e Teo offrono la comunicazione logica tra cugini (abitanti nella stessa casa) Dal punto di vista dei cugini, Teo e Tea sono il servizio postale anche se ne sono solo una parte (quella finale) 3: Livello Transport 5

20 Analogia umana (3) Abitazioni = Host (End System) Cugini = Processi su un Host Lettere in busta = Messaggi delle Applicazioni Servizio postale = Protocolli di livello network Teo e Tea = Protocolli di livello Transport 3: Livello Transport 6

21 Analogia umana (4) Teo e Tea svolgono il loro compito nelle abitazioni e non si curano della gestione delle lettere nei vari uffici postali nel cammino dall Italia all Australia e viceversa Analogamente, i protocolli di livello Transport sono parte degli host (end system) e non dei router (e gateway) Il servizio postale non conosce il contenuto delle lettere o distingue tra tipi di mittente o destinatario Analogamente, i router della core network non discriminano i pacchetti che stanno instradando 3: Livello Transport 7

22 Analogia umana (5) Teo e Tea a volte sono sostituiti da Beo e Bea che, essendo più piccoli, non raccolgono e smistano frequentemente le lettere o, a volte, ne smarriscono alcune Analogamente, i servizi del livello Transport offerti ai processi possono differire all interno di un host (TCP o UDP) I servizi offerti da Teo e Tea sono vincolati ai servizi che il servizio postale offre, e.g., garanzia del recapito entro tre giorni Analogamente, i servizi del livello transport sono limitati e condizionati dal modello di servizio del livello network, e.g., garanzie sul ritardo o ampiezza di banda 3: Livello Transport 8

23 Multiplexing/demultiplexing IP fornisce comunicazione logica tra due host usando l indirizzo IP!! Ricordate: segmento unità dati scambiata tra entità del livello di trasporto alias TPDU: transport protocol data unit header segmento segmento dati del livello application Ht M Hn segmento P1 M application transport network P3 Demultiplexing: smistare i segmenti ricevuti ai giusti processi del livello application in esecuzione sugli host ricevente M M application transport network P4 M P2 application transport network 3: Livello Transport 9

24 Multiplexing/demultiplexing analogia umana? Multiplexing: raccolta dei messaggi da diversi processi del livello application, aggiunta di un header ai dati (usato successivamente per il demultiplexing) multiplexing/demultiplexing: si basa sul numero di porta del mittente (source) e del destinatario (destination), e sugli indirizzi IP numero di porta di source (mittente) e destination (ricevente) in ogni segmento ricordate: ci sono i numeri di porta well-known usati da applicazioni specifiche (http, smtp ) (da 0 a 1023) 32 bits source port # dest port # altri campi dell header dati applicazione (messaggio) formato del segmento TCP/UDP 3: Livello Transport 10

25 Multiplexing/demultiplexing: esempi host A source port: x dest. port: 23 server B client Web host C source port:23 dest. port: x uso della porta: applicazione 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 client Web host A Source IP: A Dest IP: B source port: x dest. port: 80 Web server B uso della porta: Web server 3: Livello Transport 11

26 UDP: User Datagram Protocol [RFC 768] protocollo di livello trasporto in Internet servizio best effort, i segmenti UDP possono essere: persi recapitati non in ordine all applicazione connectionless: senza handshaking tra mittente UDP e ricevitore UDP ogni segmento UDP viene gestito indipendentemente dagli altri Perché esiste UDP? senza creazione di una connessione (che può aggiungere ritardo) semplice: senza stato della connessione nel mittente e nel ricevitore piccolo header del segmento senza controllo di congestione: UDP può spedire dati alla velocità che desidera 3: Livello Transport 12

27 UDP: User Datagram Protocol usato spesso per applicazioni di streaming multimedia tolleranti alle perdite dipendenti dalla velocità (rate sensitive) altri usi di UDP(perché?): DNS SNMP trasferimento affidabile con UDP: si aggiunge l affidabilità al livello di applicazione recupero dall errore dipendente dall applicazione! Lunghezza, in bytes del segmento UDP, incluso l header 32 bits source port # dest port # lunghezza Dati applicazione (messaggio) checksum formato del segmento UDP 3: Livello Transport 13

28 UDP checksum Obiettivo: riconoscimento errori (e.g., bit invertiti) nei segmenti trasmessi Mittente: tratta il contenuto dei segmenti come sequenze di interi di 16 bit checksum: somma (in complemento ad 1) del contenuto dei segmenti il mittente scrive il valore del checksum nel campo checksum del segmento UDP Ricevente: calcola il checksum del segmento ricevuto controlla se il checksum calcolato è uguale al valore del campo checksum del segmento: NO riconoscimento errore SI nessun errore riconosciuto. Forse c è comunque un errore? Vediamo dopo. 3: Livello Transport 14

29 Principi del trasferimento dati affidabile importante nel livello applicazione, trasporto e data link importante argomento di networking! le caratteristiche di un canale non affidabile determineranno la complessità del protocollo di trasferimento affidabile di dati (rdt) 3: Livello Transport 15

30 Trasferimento dati affidabile : gli inizi rdt_send(): invocata dall alto, (e.g., dall applicazione). Passaggio dei dati da recapitare al ricevitore al livello superiore deliver_data(): invocata da rdt per recapitare i dati al livello superiore lato mittente lato ricevente udt_send(): invocata da rdt, per trasferire pacchetti su un canale non affidabile ad un ricevitore rdt_rcv():invocata quando il pacchetto arriva sul lato del ricevitore del canale 3: Livello Transport 16

31 Trasferimento dati affidabile : gli inizi Cosa faremo: sviluppiamo in maniera incrementale (con miglioramenti successivi) il lato mittente e ricevente del protocollo per trasferimento di dati affidabile (rdt) consideriamo solo trasferimenti dati unidirezionali anche se le informazioni di controllo possono viaggiare in entrambe le direzioni! usiamo una macchina a stati finiti (FSM) per specificare (descrivere) mittente e destinatario stato: quando ci si trova in questo stato il prossimo stato è univocamente determinato dal prossimo evento evento che causa una transizione di stato azioni effettuate in seguito a transizione di stato stato 1 evento azione stato 2 3: Livello Transport 17

32 Rdt1.0: trasferimento affidabile su un canale affidabile canale sottostante perfettamente affidabile nessun errore sui bit trasmessi nessuna perdita di pacchetti FSM separati per mittente e ricevente: mittente spedisce dati sul canale sottostante ricevente riceve dati dal canale sottostante 3: Livello Transport 18

33 Rdt2.0: canale con errori sui bit IPOTESI: pacchetti ricevuti in ordine il canale sottostante può invertire i bit in un pacchetto ricordate: il checksum di UDP rileva gli errori sui bit la domanda: come si può recuperare un errore?: acknowledgements (ACK) (conferma di ricezione): il ricevitore comunica esplicitamente al mittente di aver ricevuto correttamente il pacchetto negative acknowledgements (NAK): il ricevitore comunica esplicitamente al mittente di aver ricevuto con errori il pacchetto il mittente ritrasmette il pacchetto in seguito alla ricezione di un NAK analogie umane dell uso di ACK e NAK? nuovi meccanismi in rdt2.0 (rispetto a rdt1.0): rilevazione di errori feedback da parte del ricevente: messaggi di controllo (ACK,NAK) ricevente -> mittente ri-trasmissione 3: Livello Transport 19

34 rdt2.0: specifica dei FSM FSM del mittente stop and wait Il mittente spedisce un pacchetto, ed attende una risposta del ricevente FSM del ricevente 3: Livello Transport 20

35 rdt2.0: in azione (senza errori) FSM del mittente FSM del ricevente 3: Livello Transport 21

36 rdt2.0: in azione (scenario con errori) FSM del mittente FSM del ricevente 3: Livello Transport 22

37 rdt2.0 ha un difetto fondamentale! Che succede se ACK/NAK vengono rovinati (errori in trasmissione)? il mittente non sa cosa è successo al ricevente! non può solo ritrasmettere: possibile duplicazione Cosa fare? ACK/NAK del mittente e ACK/NAK del ricevente? Cosa succede se ACK/NAK del mittente vengono rovinati? ritrasmettere, ma ciò potrebbe causare la ritrasmissione di pacchetti ricevuti correttamente! Gestione dei duplicati: il mittente aggiunge un numero di sequenza ad ogni pacchetto il mittente ri-trasmette il pacchetto corrente se l ACK/NAK contiene errori il ricevente scarta (non recapita ai livelli superiori) pacchetti duplicati 3: Livello Transport 23

38 rdt2.1: mittente, gestisce ACK/NAK distorti 3: Livello Transport 24

39 rdt2.1: ricevente, gestisce ACK/NAK distorti 3: Livello Transport 25

40 rdt2.1: discussione Mittente: numero di sequenze aggiunto ai pacchetti solo due numeri di sequenza (0,1) vanno bene. Perché? si deve controllare se gli ACK/NAK ricevuti sono rovinati gli FSM hanno il doppio degli stati lo stato deve ricordare se il pacchetto corrente ha numero di sequenza 0 o 1 Ricevente: deve controllare se il pacchetto ricevuto è duplicato lo stato indica se 0 o 1 è il numero di sequenza atteso nota: il ricevente non può sapere se il suo ultimo ACK/NAK è stato ricevuto dal mittente senza errori 3: Livello Transport 26

41 rdt2.2: un protocollo senza NAK stesse funzionalità di rdt2.1, usando solo ACK invece di un NAK, il ricevente spedisce un ACK per l ultimo pacchetto ricevuto correttamente il ricevitore deve includere esplicitamente il numero di sequenza del pacchetto confermato dall ACK ACK duplicati al mittente danno origine alla stessa azione di un NAK: ritrasmissione del pacchetto corrente! FSM del mittente 3: Livello Transport 27

42 rdt3.0: canali con errori e perdite Nuove ipotesi: il canale sottostante può anche perdere pacchetti (dati o ACK) checksum, numeri di sequenza, ACK, ritrasmissioni aiutano ma non abbastanza Domanda: come gestire le perdite? rilevare le perdite azioni per gestire la perdita Approccio: il mittente attende un ACK per un tempo ragionevole ri-trasmette se non ha ricevuto ACK entro questo tempo se il pacchetto (o l ACK) sono solo in ritardo (non persi) : la ri-trasmissione sarà duplicata, ma l uso dei numeri di sequenza gestisce questo caso il ricevitore deve specificare il numero di sequenza del pacchetto per il quale spedisce l ACK è necessario un countdown timer 3: Livello Transport 28

43 rdt3.0 mittente 3: Livello Transport 29

44 rdt3.0 in azione 3: Livello Transport 30

45 rdt3.0 in azione 3: Livello Transport 31

46 Prestazioni di rdt3.0 rdt3.0 funziona ma fornisce pessime prestazioni esempio: canale a 1 Gbps link, 15 ms propagation delay, pacchetti da 1KB: T transmit = 8kb/pkt 10**9 b/sec = 8 microsec frazione di tempo Utilizzazione = U = = 8 microsec durante la quale il msec mittente è impegnato a trasmettere = un pacchetto da 1KB ogni 30 msec -> 33kB/sec su 1 Gbps il protocollo di rete limita l uso delle risorse fisiche! 3: Livello Transport 32

47 Protocolli Pipelined Pipelining: il mittente permette che ci siano pacchetti in transito per i quali ancora non è stato ricevuto un ACK i possibili valori dei numeri di sequenza devono aumentare buffering al mittente e/o ricevente Due forme generiche di protocolli pipelined: go-back- N, selective repeat 3: Livello Transport 33

48 Go-Back-N Mittente: numero di sequenza di k bit nell header del pacchetto finestra di, fino a, N pacchetti consecutivi non ancora con ACK ACK(n): fornise un ACK di tutti i pacchetti i cui numeri di sequenza vanno fino ad n incluso cumulative ACK timer per ogni pacchetto in transito timeout(n): ri-trasmette il pacchetto con numero di sequenza n e tutti quelli con numero di sequenza maggiore nella finestra 3: Livello Transport 34

49 GBN: FSM esteso del mittente 3: Livello Transport 35

50 GBN: FSM esteso del ricevente semplice ricevente: manda un ACK: manda sempre un ACK per pacchetti con il numero di sequenza più alto ricevuti in ordine e correttamente può generare ACK duplicati deve solo ricordare expectedseqnum pacchetti non in ordine: elimina (non bufferizza) -> ricevente senza buffering! ACK per pacchetto con il numero di sequenza più alto ricevuto in ordine 3: Livello Transport 36

51 GBN in azione 3: Livello Transport 37

52 Selective Repeat il ricevente manda un ACK individuale per tutti i pacchetti correttamente ricevuti bufferizza pacchetti, se necessario, per il recapito finale in ordine al livello superiore il mittente ri-spedisce solo i pacchetti per i quali non ha ricevuto un ACK timer del mittente per ogni pacchetto senza ACK finestra del mittente N numeri di sequenza consecutivi limita il numero di sequenza di pacchetti spediti e non ancora con ACK 3: Livello Transport 38

53 Selective repeat: finestre mittente e ricevente 3: Livello Transport 39

54 Selective repeat mittente data dal livello superiore: se il prossimo numero di sequenza disponibile è nella finestra spedisce il pacchetto timeout(n): ri-spedisce il pacchetto, riinizializza il timer ACK(n) in [sendbase,sendbase+n]: marca il pacchetto n come ricevuto se n è il più piccolo pacchetto senza ACK, avanza la base della finestra al prossimo numero di sequenza di un pacchetto senza ACK ricevente pacchetto n in [rcvbase, rcvbase+n-1] spedisce ACK(n) non in ordine: bufferizza in ordine: recapita (recapita anche pacchetti in ordine bufferizzati), avanza la finestra al prossimo pacchetto non ancora ricevuto pacchetto n in [rcvbase- N,rcvbase-1] ACK(n) altrimenti: ignora pacchetto 3: Livello Transport 40

55 Selective repeat in azione 3: Livello Transport 41

56 socket door TCP: Panoramica RFC: 793, 1122, 1323, 2018, 2581 punto-punto: 1 mittente, 1 ricevente Flusso di byte ordinato ed affidabile: pipelined: Il controllo di flusso e di congestione determinano una dimensione di finestra Buffer di spedizione e ricezione application writes data TCP send buffer segment application reads data TCP receive buffer socket door Dati full-duplex: flusso dati bi-direzionale nella stessa connessione MSS: maximum segment size connection-oriented: handshaking (scambio di messaggi di controllo) inizializzazione dello stato del mittente e del ricevitore prima dello scambio dati controllo di flusso: il mittente non sovraccaricherà il ricevente 3: Livello Transport 42

57 Struttura del segmento TCP URG: urgent data (in genere non usato) ACK: numero ACK valido PSH: push data now (in genere non usato) RST, SYN, FIN: inizio connessione (comandi setup, teardown) Internet checksum (come in UDP) 32 bits source port # dest port # head len sequence number acknowledgement number not used UA P R S F checksum rcvr window size ptr urgent data Options (variable length) application data (variable length) contano in termini di byte di dati (non segmenti!) numero di bytes che il ricevente desidera accettare 3: Livello Transport 43

58 Numeri di sequenza e ACK in TCP Numeri di sequenza: numero del primo byte di un segmento del flusso di byte ACK: numero di sequenza del prossimo byte atteso dall altra parte ACK cumulativo Domanda: come sono gestiti dal ricevente segmenti non in ordine? Risposta: la specifica di TCP non lo stabilisce scelta dell implementazione 3: Livello Transport 44

59 Numeri di sequenza e ACK in TCP file di byte MSS di 1000 byte 3: Livello Transport 45

60 Numeri di sequenza e ACK in TCP Host A Host B Spedizione secondo segmento Seq=1000, ACK=79, data = Seq=79, ACK=2000, data = l host manda un ACK per confermare la ricezione di del segmento e comunica il # di sequenza del prossimo byte atteso tempo 3: Livello Transport 46

61 Numeri di sequenza e ACK in TCP Host A Host B Spedizione quarto segmento con perdita del terzo Seq=4000, ACK=79, data = Seq=79, ACK=2000, data = l host manda un ACK per il # di sequenza del prossimo byte atteso tempo 3: Livello Transport 47

62 Numeri di sequenza e ACK in TCP Host A Host B Utente digita C l host manda un ACK per la ricezione dell echo C Seq=42, ACK=79, data = C Seq=79, ACK=43, data = C Seq=43, ACK=80 l host manda un ACK per confermare la ricezione di C, Manda indietro un echo per C semplice scenario telnet tempo 3: Livello Transport 48

63 TCP: trasferimento dati affidabile evento: dato ricevuto dall applicazione (livello superiore) crea e spedisci il segmento wait for event attendi evento evento: timeout del timer per il segmento con numero di sequenza y ri-trasmetti il segmento mittente semplificato assumendo che: trasferimento dati one way senza controllo di flusso e congestione evento: ACK ricevuto con numero di ACK y elaborazione dell ACK 3: Livello Transport 49

64 TCP: trasferimento dati affidabile Mittente TCP semplificato 00 sendbase = initial_sequence number 01 nextseqnum = initial_sequence number loop (forever) { 04 switch(event) 05 event: data received from application above 06 create TCP segment with sequence number nextseqnum 07 start timer for segment nextseqnum 08 pass segment to IP 09 nextseqnum = nextseqnum + length(data) 10 event: timer timeout for segment with sequence number y 11 retransmit segment with sequence number y 12 compute new timeout interval for segment y 13 restart timer for sequence number y 14 event: ACK received, with ACK field value of y 15 if (y > sendbase) { /* cumulative ACK of all data up to y */ 16 cancel all timers for segments with sequence numbers < y 17 sendbase = y 18 } 19 else { /* a duplicate ACK for already ACKed segment */ 20 increment number of duplicate ACKs received for y 21 if (number of duplicate ACKS received for y == 3) { 22 /* TCP fast retransmit */ 23 resend segment with sequence number y 24 restart timer for segment y 25 } 26 } /* end of loop forever */ 3: Livello Transport 50

65 Generazione di ACK in TCP [RFC 1122, 2581] Evento arrivo di un segmento in ordine, senza buchi nella sequenza, tutto il resto già con ACK arrivo di un segmento in ordine, senza buchi nella sequenza, un ACK ritardato è pendente arrivo di un segmento non in ordine, # di sequenza > di quello atteso rilevazione di un buco arrivo di un segmento che parzialmente o completamente riempie il buco Azione del ricevente TCP ACK ritardato. Attende fino a 500ms il prossimo segmento. Se non c è un prossimo segmento manda un ACK spedisce immediatamente un solo ACK cumulativo spedisce un ACK duplicato che indica il # di sequenza del prossimo byte atteso spedisce una ACK immediatamente se il segmento inizia al limite sinistro del buco 3: Livello Transport 51

66 TCP: scenari di ri-trasmissione Host A Host B Host A Host B Seq=92, 8 bytes data Seq=92, 8 bytes data Seq=100, 20 bytes data ACK=100 ACK=120 ACK=100 X timeout Seq=100 timeout Seq=92 timeout perdita Seq=92, 8 bytes data Seq=92, 8 bytes data ACK=120 ACK=100 tempo scenario per ACK perso tempo timeout prematuro, ACK cumulativi 3: Livello Transport 52

67 Controllo di flusso in TCP controllo di flusso il mittente non sovraccaricherà il buffer del ricevente trasmettendo troppo troppo velocemente RcvBuffer = dimensione del buffer di ricezione TCP RcvWindow = ammontare di spazio disponibile nel buffer ricevente: informa esplicitamente il mittente dell ammontare di spazio disponibile nel buffer (dinamicamente variabile) RcvWindow campo nel segmento TCP mittente: mantiene l ammontare di dati trasmessi ancora senza ACK minore del valore più recentemente ricevuto di RcvWindow buffer di ricezione 3: Livello Transport 53

68 Round Trip Time e Timeout in TCP Domanda: come si determina il valore del timeout in TCP? più alto del RTT nota: RTT è variabile troppo piccolo: timeout prematuro ritrasmissioni non necessarie troppo alto: reazione lenta alla perdita di segmenti Domanda: come stimare il RTT? SampleRTT: tempo misurato dalla trasmissione del segmento fino alla ricezione dell ACK si ignorano le ritrasmissioni, e segmenti con ACK cumulativi SampleRTT è variabile, vogliamo una stima migliore del RTT si usano diverse recenti misurazioni non solo il SampleRTT correntemente disponibile 3: Livello Transport 54

69 Round Trip Time e Timeout in TCP EstimatedRTT = (1-x)*EstimatedRTT + x*samplertt Exponential weighted moving average l influenza di un campione decresce esponenzialmente valori tipici di x: 0.1 Determinare il timeout EstimtedRTT più margine di sicurezza grandi variazioni di EstimatedRTT -> grande margine di sicurezza Timeout = EstimatedRTT + 4*Deviation Deviation = (1-x)*Deviation + x* SampleRTT-EstimatedRTT 3: Livello Transport 55

70 Gestione della connessione in TCP Ricordate: mittente e ricevente TCP stabiliscono una connessione prima dello scambio di segmenti di dati inizializzazione di variabili TCP: numeri di sequenza buffer, informazioni per il controllo di flusso (e.g. RcvWindow) client: iniziatore della connessione Socket clientsocket = new Socket("hostname","port number"); server: contattato dal client Socket connectionsocket = welcomesocket.accept(); Three way handshake: Passo 1: l host del client spedisce un segmento di controllo TCP (SYN=1) al server specifica il # di sequenza iniziale direzione client -> server Passo 2: l host del server riceve il SYN, risponde con un segmento di controllo SYNACK è un ACK per il SYN alloca i buffer specifica il numero di sequenza iniziale in direzione server-> client Passo 3: l host del client riceve il SYNACK, risponde con un segmento di controllo con il campo SYN=0 è un ACK per il SYN alloca i buffer 3: Livello Transport 56

71 Three way handshake: esempio 3: Livello Transport 57

72 Gestione della connessione in TCP Chiusura della connessione: client server il client chiude il socket: clientsocket.close(); chiusura FIN Passo 1: l host del client spedisce un segmento di controllo FIN al server ACK FIN chiusura Passo 2: il server riceve il FIN e risponde con un ACK. Chiude la connessione e spedisce un FIN. attesa ACK chiusa chiusa 3: Livello Transport 58

73 Gestione della connessione in TCP Passo 3: il client riceve il FIN, risponde con un ACK. Entra in una attesa risponderà con un ACK al FIN ricevuto Step 4: il server, riceve l ACK. Connessione chiusa. chiusura client FIN ACK FIN server chiusura attesa ACK chiusa chiusa 3: Livello Transport 59

74 Gestione della connessione in TCP ciclo di vita di un server TCP ciclo di vita di un client TCP 3: Livello Transport 60

75 Principi del controllo di congestione Congestione: informalmente: troppe sorgenti spediscono troppi dati troppo velocemente perché la rete possa gestirli diverso dal controllo di flusso! manifestazioni: pacchetti persi (overflow dei buffer nei routers) grandi ritardi (accodamento nei buffer dei routers) 3: Livello Transport 61

76 Approcci per il controllo di congestione Due grandi approcci: Controllo della congestione End-end: nessun feedback esplicito dalla rete la congestione si inferisce dall osservazione da parte degli host delle perdite e dei ritardi approccio di TCP Controllo di congestione con l aiuto della rete: i routers forniscono feedback agli host un bit che indica congestione (SNA, DECbit, TCP/IP ECN, ATM) indicazione esplicita della velocità alla quale un mittente dovrebbe trasmettere 3: Livello Transport 62

77 Controllo di congestion in TCP controllo end-end (senza assistenza della rete) velocità di trasmissione limitata dalla dimensione della finestra di congestione sui segmenti, Congwin: Congwin w segmenti, ognuno di MSS bytes spediti in un RTT: throughput = w * MSS RTT Bytes/sec 3: Livello Transport 63

78 Controllo di congestion in TCP sondaggio della larghezza di banda usabile: idealmente: trasmettere il più velocemente possibile (Congwin il più grande possibile) senza perdite incrementare Congwin fino a quando si hanno perdite (congestione) perdite: decrementare Congwin, quindi iniziare a sondare (incrementare) ancora due fasi slow start congestion avoidance variabili importanti: Congwin threshold: definisce una soglia tra la fase di slow start e di congestion avoidance 3: Livello Transport 64

79 TCP Slowstart Algoritmo di Slowstart inizio: Congwin = 1 for (each segment ACKed) Congwin++ until (loss event OR CongWin > threshold) RTT Host A Host B 1 segmento 2 segmenti 4 segmenti incremento esponenziale (per RTT) della dimensione della finestra (non così slow!) evento di perdita: timeout (Tahoe TCP) e/o tre ACK duplicati (Reno TCP) tempo 3: Livello Transport 65

80 TCP Congestion Avoidance Congestion avoidance /* slowstart è terminato */ /* Congwin > threshold */ Until (loss event) { every w segments ACKed: Congwin++ } threshold = Congwin/2 Congwin = 1 perform slowstart 3: Livello Transport 66

81 TCP congestion avoidance: AIMD AIMD: additive increase, multiplicative decrease incremento della dimensione della finestra di 1 ogni RTT decremento della dimensione della finestra di un fattore 2 per un evento di perdita TCP Fairness Obiettivo: se N connessioni TCP condividono lo stesso canale collo di bottiglia ognuna dovrebbe ottenere 1/N della capacità del canale connessione TCP 1 connessione TCP 2 router collo di bottiglia con canale a capacità R 3: Livello Transport 67

82 Parte 3: Sommario principi dietro i servizi del livello di trasporto: multiplexing/demultiplexing trasferimento affidabile controllo di flusso controllo di congestione implementazione in Internet UDP TCP Prossima puntata: lasciamo la edge network (livello application e transport) ci tuffiamo nella core network 3: Livello Transport 68

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

Argomenti: ! Servizi dello strato di trasporto! multiplexing/demultiplexing! Servizio senza connessione: UDP Strato di trasporto Obiettivi:! Comprendere i principi dei servizi dello strato di trasporto: " multiplexing/demultipl exing " Trasferimento affidabile dei dati " Controllo di flusso " Controllo di congestione!

Dettagli

Telematica di Base. IL Livello di Trasporto TCP

Telematica di Base. IL Livello di Trasporto TCP Telematica di Base IL Livello di Trasporto TCP TCP RFCs: 793, 1122, 1323, 2018, 2581 point-to-point: Un sender, un receiver affidabile protocollo di tipo pipeline: Meccanismi per evitare la congestione,

Dettagli

Telematica di Base. Il livello di trasporto

Telematica di Base. Il livello di trasporto Telematica di Base Il livello di trasporto Trasporto: Servizi e Protocolli Fornisce un servizio di communicazione logica tra applicazioni di rete I protocolli di trasporto sono in esecuzione sugli host

Dettagli

TCP: rassegna RFCs: 793, 1122, 1323, 2018, 2581

TCP: rassegna RFCs: 793, 1122, 1323, 2018, 2581 TCP: rassegna RFCs: 793, 1122, 1323, 2018, 2581 socket door Protocollo uno-a-uno: Un sender, un receiver Flusso di Byte ordinato e affidabile Protocollo pipelined: TCP ha controllo di flusso e di congestione

Dettagli

Reti di Calcolatori:

Reti di Calcolatori: Reti di Calcolatori: Internet, Intranet e Mobile Computing a.a. 2007/2008 http://www.di.uniba.it/~lisi/courses/reti/reti0708.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì

Dettagli

Livello 4 (trasporto): cosa vedremo

Livello 4 (trasporto): cosa vedremo Il livello Trasporto Livello 4 (trasporto): cosa vedremo Servizi di livello trasporto multiplexing/demultiplexing Protocollo non orientato alla connessione: UDP Principi di trasferimento end-to-end affidabile

Dettagli

Programmazione in Rete

Programmazione in Rete Programmazione in Rete a.a. 2005/2006 http://www.di.uniba.it/~lisi/courses/prog-rete/prog-rete0506.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì ore 10-12 Sommario della

Dettagli

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

Reti di Calcolatori. Master Bio Info Reti e Basi di Dati Lezione 3 Reti di Calcolatori Sommario Software di rete Livello Trasporto (TCP) Livello Rete (IP, Routing, ICMP) Livello di Collegamento (Data-Link) Livello Trasporto (TCP) I protocolli di trasporto sono eseguiti

Dettagli

Capitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella

Capitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella Capitolo 3 - parte 2 Corso Reti ed Applicazioni Mauro Campanella Principi di un trasferimento dati affidabile strato di trasporto strato di applicazione (a) Servizio fornito (b) la realizzazione del Servizio

Dettagli

Capitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella

Capitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella Capitolo 3 - parte 2 Corso Reti ed Applicazioni Mauro Campanella Principi di un trasferimento dati affidabile strato di trasporto strato di applicazione (a) Servizio fornito (b) la realizzazione del Servizio

Dettagli

Il Livello Trasporto. Multiplexing/demultiplexing. Multiplexing/demultiplexing. Multiplexing/demultiplexing: esempi. Servizi e protocolli di Trasporto

Il Livello Trasporto. Multiplexing/demultiplexing. Multiplexing/demultiplexing. Multiplexing/demultiplexing: esempi. Servizi e protocolli di Trasporto Il Livello Trasporto Servizi e protocolli di Trasporto Obiettivi: Comprendere i principi costitutivi dei servizi del lievello trasporto: multiplexing/demultiplex ing Trasf. dati affidabile controllo flusso

Dettagli

Il Livello Trasporto. Multiplexing/demultiplexing. Multiplexing/demultiplexing. Multiplexing/demultiplexing: esempi. Servizi e protocolli di Trasporto

Il Livello Trasporto. Multiplexing/demultiplexing. Multiplexing/demultiplexing. Multiplexing/demultiplexing: esempi. Servizi e protocolli di Trasporto Il Livello Trasporto Servizi e protocolli di Trasporto Obiettivi: Comprendere i principi costitutivi dei servizi del lievello trasporto: multiplexing/demultiplex ing Trasf. dati affidabile controllo flusso

Dettagli

Livello trasporto. Controllo del flusso e della congestione

Livello trasporto. Controllo del flusso e della congestione Livello trasporto Servizi Multiplexing e demultiplexing Trasporto senza connessione: UDP Principi di trasferimento affidabile TCP Struttura del segmento Trasferimento dati affidabile Controllo del flusso

Dettagli

Livello trasporto. Servizi del livello trasporto

Livello trasporto. Servizi del livello trasporto ivello trasporto Servizi Multiplexing e demultiplexing Trasporto senza connessione: UDP Principi di trasferimento affidabile Trasporto orientato alla connessione: TCP Struttura del segmento Trasferimento

Dettagli

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

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I 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: controllo di congestione

Dettagli

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

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I 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: controllo di congestione

Dettagli

Lezione n.3 LIVELLO TRASPORTO

Lezione n.3 LIVELLO TRASPORTO Università degli Studi di Pisa Lezione n.3 SSIS INFORMATICA LIVELLO TRASPORTO 30/11/2007 Laura Ricci Laura Ricci 1 LIVELLO TRASPORTO realizza un supporto per la comunicazione logica tra processi distribuiti

Dettagli

Il livello trasporto: Introduzione e protocollo UDP

Il livello trasporto: Introduzione e protocollo UDP Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori a.a. 2009/10 Roberto Canonico (roberto.canonico@unina.it) Antonio Pescapè (pescape@unina.it) Il livello trasporto: Introduzione e

Dettagli

Reti di Calcolatori:

Reti di Calcolatori: Reti di Calcolatori: Internet, Intranet e Mobile Computing a.a. 2007/2008 http://www.di.uniba.it/~lisi/courses/reti/reti0708.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì

Dettagli

Il livello trasporto: Introduzione e protocollo UDP

Il livello trasporto: Introduzione e protocollo UDP Corsi di Laurea in Ingegneria Informatica Ingegneria delle Telecomunicazioni Ingegneria dell Automazione Corso di Reti di Calcolatori Simon Pietro Romano (spromano@unina.it) Antonio Pescapè (pescape@unina.it)

Dettagli

Controllo della congestione

Controllo della congestione Controllo della congestione Problema: troppe sorgenti inviano troppi dati troppo velocemente perchè la rete riesca a gestirli Effetti: perdita di pacchetti (overflow nei buffer dei router) e ritardi eccessivi

Dettagli

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

Reti di calcolatori TCP/IP. Slide a cura di Simon Pietro Romano Reti di calcolatori TCP/IP Slide a cura di Simon Pietro Romano spromano@unina.it Il livello rete Stack ISO/OSI Applicazione Presentazione Sessione Trasporto Rete Data Link Fisico Corso di Tecnologie dei

Dettagli

Livello di trasporto:

Livello di trasporto: Livello di : Gaia Maselli maselli@di.uniroma1.it Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da copyright. All material copyright 1996-2007 J.F Kurose and

Dettagli

Reti di Calcolatori in Tecnologia IP

Reti di Calcolatori in Tecnologia IP Reti di Calcolatori in Tecnologia IP Il Livello Transport e TCP Dott. Marco Bianchi 04/12/2001 1 Agenda Introduzione Indirizzamento Protocolli di livello transport Attivazione e rilascio di una connessione

Dettagli

Livello di trasporto: meccanismi trasferimento dati affidabile, TCP

Livello di trasporto: meccanismi trasferimento dati affidabile, TCP Livello di trasporto: meccanismi trasferimento dati affidabile, TCP Gaia Maselli Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da copyright. - Copyright 2013

Dettagli

Transport Layer & TCP/UDP

Transport Layer & TCP/UDP 34565 34571 httpd 136.45.127.12 47352 128.30.52.45 80 195.7.34.45 & TCP/UDP Trasporto Interfaccia 4-3 Rete Interfaccia 3-2 Coll. Dati Interfaccia 2-1 Fisico p2p (l 3) p2p (l 2) p2p (l 4) Rete Interf. 3-2

Dettagli

Livello di trasporto: TCP, controllo flusso, controllo congestione

Livello di trasporto: TCP, controllo flusso, controllo congestione Livello di trasporto: TCP, controllo flusso, controllo congestione Gaia Maselli maselli@di.uniroma1.it Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da copyright.

Dettagli

Il livello trasporto: controllo di congestione in TCP

Il livello trasporto: controllo di congestione in TCP Reti di Calcolatori I Prof. Roberto Canonico Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione Corso di Laurea in Ingegneria delle Telecomunicazioni Corso di Laurea in Ingegneria

Dettagli

la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK.

la trasmissione è regolata solamente dall algoritmo per il controllo del flusso prima di inviare l ACK. 1. Considerare il problema della stima del Round Trip Time. Supporre che inizialmente RTT valga 200 ms. Il mittente invia un segmento e riceve l ACK relativo dopo 100 ms, quindi invia un altro segmento,

Dettagli

Livello di trasporto: meccanismi trasferimento dati affidabile (2), TCP

Livello di trasporto: meccanismi trasferimento dati affidabile (2), TCP Livello di trasporto: meccanismi trasferimento dati affidabile (2), TCP Gaia Maselli maselli@di.uniroma1.it Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da

Dettagli

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

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11) Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori (a.a. 2010/11) Roberto Canonico (roberto.canonico@unina.it) Giorgio Ventre (giorgio.ventre@unina.it) Il livello trasporto: tecniche

Dettagli

PARTE 5 LIVELLO TRASPORTO. - Protocolli UDP e TCP. Parte 5. Modulo 1: Servizi del livello trasporto

PARTE 5 LIVELLO TRASPORTO. - Protocolli UDP e TCP. Parte 5. Modulo 1: Servizi del livello trasporto PARTE 5 LIVELLO TRASPORTO - Protocolli UDP e TCP Parte 5 Modulo 1: Servizi del livello trasporto 1 Livello 4 (transport) Il livello trasporto estende il servizio di consegna con impegno proprio del protocollo

Dettagli

TCP: apertura della connessione. Apertura connessione (handshake)

TCP: apertura della connessione. Apertura connessione (handshake) TCP: apertura della connessione Prima dello scambio dati, sender e receiver si "stringono la mano": Concordano sull aprire la connessione Concordano su alcuni parametri A livello trasporto, la richiesta

Dettagli

Parte II: Reti di calcolatori Lezione 13 (37)

Parte II: Reti di calcolatori Lezione 13 (37) Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Parte II: Reti di calcolatori Lezione 13 (37) Venerdì 21-04-2017 1 Trasferimento

Dettagli

Application Layer DNS, TELNET. DNS: Domain Name System. DNS: gerarchia dei domini. DNS: Domain Name System. DNS: Domain Name System

Application Layer DNS, TELNET. DNS: Domain Name System. DNS: gerarchia dei domini. DNS: Domain Name System. DNS: Domain Name System DNS: Domain Name System Application Layer DNS, TELNET The Domain Name System is a hierarchical distributed database. It stores information for mapping Internet host names to IP addresses and vice versa,

Dettagli

Parte II: Reti di calcolatori Lezione 12 (36)

Parte II: Reti di calcolatori Lezione 12 (36) Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Parte II: Reti di calcolatori Lezione 12 (36) Martedì 18-04-2017 1 UDP L UDP

Dettagli

Capitolo 3 Livello di trasporto

Capitolo 3 Livello di trasporto Capitolo 3 Livello di trasporto Nota per l utilizzo: Abbiamo preparato queste slide con l intenzione di renderle disponibili a tutti (professori, studenti, lettori). Sono in formato PowerPoint in modo

Dettagli

UDP. User Datagram Protocol. UDP Connectionless

UDP. User Datagram Protocol. UDP Connectionless UDP User Datagram Protocol IP fornisce un unreliable datagram service tra gli host I Transport protocols forniscono un servizio di consegna end-to-end tra gli endpoints di una connessione UDP Connectionless

Dettagli

Lo strato di Trasporto

Lo strato di Trasporto Corso di Fondamenti di Reti di Telecomunicazioni LT - ELE / LM-TLC Reti di Telecomunicazioni a.a. 2016-2017 Lo strato di Trasporto Internet è composta da host connessi a reti a commutazione di pacchetto,

Dettagli

Application Layer DNS, TELNET

Application Layer DNS, TELNET Application Layer DNS, TELNET DNS: Domain Name System The Domain Name System is a hierarchical distributed database. It stores information for mapping Internet host names to IP addresses and vice versa,

Dettagli

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

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I 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

Dettagli

TCP: generalità RFCs: 793, 1122, 1323, 2018, 2581

TCP: generalità RFCs: 793, 1122, 1323, 2018, 2581 TCP: generalità FCs: 793, 1122, 1323, 2018, 2581 socket door! Punto-punto: " Un sender, un receiver! Affidabile, stream di byte in ordine (in order): " no message boundaries! Pipelining: " Dim. finestra

Dettagli

Reti di Calcolatori:

Reti di Calcolatori: Reti di Calcolatori: Internet, Intranet e Mobile Computing a.a. 2007/2008 http://www.di.uniba.it/~lisi/courses/reti/reti0708.htm dott.ssa Francesca A. Lisi lisi@di.uniba.it Orario di ricevimento: mercoledì

Dettagli

Reti di Calcolatori e Laboratorio - Compito del 12 Gennaio 2012

Reti di Calcolatori e Laboratorio - Compito del 12 Gennaio 2012 Nome: Matricola: e-mail: Esercizio 1 (6 punti) Si consideri una rete che utilizza una variante del protocollo ALOHA per comunicare a livello di collegamento. In particolare, quando il livello di collegamento

Dettagli

Livello applicazione: DNS

Livello applicazione: DNS Livello applicazione: DNS Gaia Maselli Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da copyright. All material copyright 1996-2007 J.F Kurose and K.W. Ross,

Dettagli

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

Reti di Calcolatori I. Prof. Roberto Canonico Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione Reti di Calcolatori I Prof. Roberto Canonico Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione Corso di Laurea in Ingegneria Informatica A.A. 2018-2019 Il protocollo TCP I lucidi

Dettagli

Principi di trasferimento affidabile

Principi di trasferimento affidabile Principi di trasferimento affidabile Il livello rete è inaffidabile: Presenza di errori Perdita e duplicazione di pacchetti Ordine dei pacchetti non garantito In caso di errori è necessario: Rilevare e/o

Dettagli

Parte II: Reti di calcolatori Lezione 14 (38)

Parte II: Reti di calcolatori Lezione 14 (38) Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Parte II: Reti di calcolatori Lezione 14 (38) Giovedì 3-05-2018 1 Numeri di sequenza

Dettagli

TCP: Panoramica RFC: 793, 1122, 1323, 2018, 2581

TCP: Panoramica RFC: 793, 1122, 1323, 2018, 2581 socket door : Panoramica FC: 793, 1122, 1323, 2018, 2581 punto-punto: un mittente, un destinatario flusso di byte affidabile e ordinato protocollo pipeline: il controllo di flusso e di congestione definisce

Dettagli

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

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori (a.a. 2010/11) Corso di Laurea in Ingegneria Informatica Corso di Reti di Calcolatori (a.a. 2010/11) Roberto Canonico (roberto.canonico@unina.it) Giorgio Ventre (giorgio.ventre@unina.it) Il livello trasporto: il protocollo

Dettagli

Reti di Calcolatori e Laboratorio

Reti di Calcolatori e Laboratorio Nome: Matricola: Esercizio 1 (8 punti) Due terminali comunicano tramite un canale inaffidabile, nel quale i pacchetti possono essere persi o venir corrotti. Per ottenere un servizio di comunicazione affidabile,

Dettagli

Implementazioni tipiche del protocollo TCP

Implementazioni tipiche del protocollo TCP Implementazioni tipiche del protocollo TCP Prof. Ing. Carla Raffaelli Anno accademico 2004-2005 N. 1 Prime versioni del TCP Tahoe Slow-start Congestion avoidance Fast retransmit Reno Implementa anche il

Dettagli

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

Livello Trasporto. Liv. Applic. Liv. Transport. Transport Entity. Liv. Network. Trasporto Livello Trasporto Fornire un trasporto affidabile ed efficace dall'host di origine a quello di destinazione, indipendentemente dalla rete utilizzata Gestisce una conversazione diretta fra sorgente e destinazione

Dettagli

TCP: Panoramica RFC: 793, 1122, 1323, 2018, 2581

TCP: Panoramica RFC: 793, 1122, 1323, 2018, 2581 socket door : Panoramica FC: 793, 1122, 1323, 2018, 2581 punto-punto: un mittente, un destinatario flusso di byte affidabile e ordinato protocollo pipeline: il controllo di flusso e di congestione definisce

Dettagli

TCP/IP: summary. Lorenzo Cavallaro, Andrea Lanzi

TCP/IP: summary. Lorenzo Cavallaro, Andrea Lanzi Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Corso di Laurea in Informatica December 7, 2004 Sommario 1 La suite di protocolli TCP/IP Layer 2 3 4 5 6 Sommario 1 La

Dettagli

I protocolli UDP e TCP

I protocolli UDP e TCP I protocolli UDP e TCP Corso di Reti di Telecomunicazione a.a. 2013/14 - Ingegneria Elettronica e delle Telecomunicazioni - Ingegneria Informatica e dell Automazione - - Ing. G. Boggia Protocolli di trasporto:

Dettagli

Principi di trasferimento affidabile

Principi di trasferimento affidabile Principi di trasferimento affidabile Il livello rete è inaffidabile: Presenza di errori Perdita e duplicazione di pacchetti Ordine dei pacchetti non garantito In caso di errori è necessario: Rilevare e/o

Dettagli

INFORMATICA DISTRIBUITA. prof. Carlo Bellettini. lez 8 DNS (cont)

INFORMATICA DISTRIBUITA. prof. Carlo Bellettini. lez 8 DNS (cont) INFORMATICA DISTRIBUITA prof. lez 8 DNS (cont) Università degli Studi di Milano Scienze e Tecnologie della Comunicazione Musicale a.a. 2009-2010 DNS: Domain Name System Indirizzamento di una macchina (host)

Dettagli

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

Terminologia e concetti fondamentali La struttura di Internet (hardware e software): Introduzione Terminologia e concetti fondamentali La struttura di Internet (hardware e software): Accesso alla rete: end-systems, applicazioni, mezzi trasmissivi Nucleo: commutazione, struttura della rete,

Dettagli

Controllo di congestione

Controllo di congestione Controllo di congestione 1 Timeout 2 D: come fissare un valore per il timeout in TCP? troppo corto: timeout prematuri, ritrasmissioni non necessarie troppo lungo: reazione lenta a perdite di segmenti ancora

Dettagli

IL LIVELLO TRASPORTO Protocolli TCP e UDP

IL LIVELLO TRASPORTO Protocolli TCP e UDP Reti di Calcolatori ed Internet IL LIVELLO TRASPORTO Protocolli TCP e UDP Il Livello I servizi del livello Le primitive di Indirizzamento Protocolli di Livello in Internet UDP TCP 5-1 5-2 Livello TRASPORTO

Dettagli

1) (commutazione pacchetto, prodotto banda-ritardo) 2) (frammentazione, commutazione di pacchetto) 3) (Selective Repeat)

1) (commutazione pacchetto, prodotto banda-ritardo) 2) (frammentazione, commutazione di pacchetto) 3) (Selective Repeat) 1) (commutazione pacchetto, prodotto banda-ritardo) Considerare l invio di un pacchetto di L bit da un nodo C ad un nodo S, attraverso 3 router intermedi, che introducono un ritardo di elaborazione di

Dettagli

Esercitazione. Livello di Trasporto [Capitolo 3]

Esercitazione. Livello di Trasporto [Capitolo 3] Esercitazione Livello di Trasporto [Capitolo 3] 1 È possibile che un'applicazione che gira su UDP ottenga un trasferimento dati affidabile? Si. Lo sviluppatore dell'applicazione può inserire il trasferimento

Dettagli

Parte II: Reti di calcolatori Lezione 14 (38)

Parte II: Reti di calcolatori Lezione 14 (38) Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2018-2019 Pietro Frasca Parte II: Reti di calcolatori Lezione 14 (38) Giovedì 18-04-2019 1 Trasporto

Dettagli

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

CORSO DI RETI SSIS. Lezione n.3 9 novembre 2005 Laura Ricci CORSO DI RETI SSIS Lezione n.3 9 novembre 2005 Laura Ricci IL LIVELLO TRASPORTO realizza un supporto per la comunicazione logica tra processi distribuiti comunicazione logica = astrazione che consente

Dettagli

Transmission Control Protocol: TCP

Transmission Control Protocol: TCP Transmission Control Protocol: TCP Prof.ssa Gaia Maselli Parte di queste slide sono state prese dal materiale associato ai libri: 1) B.A. Forouzan, F. Mosharraf Reti di calcolatori. Un approccio top-down.

Dettagli

Gestione delle Reti di Telecomunicazioni

Gestione delle Reti di Telecomunicazioni Dipartimento di Elettronica e Telecomunicazioni Gestione delle Reti di Telecomunicazioni Modello TCP/IP Ing. Tommaso Pecorella Ing. Giada Mennuti {pecos,giada}@lenst.det.unifi.it 1 Protocolli di trasporto

Dettagli

URG: dati urgenti (solitam. non usato) ACK: ACK # valido PSH: push data now (solitam. non usato)

URG: dati urgenti (solitam. non usato) ACK: ACK # valido PSH: push data now (solitam. non usato) socket door : Panoramica FC: 793, 1122, 1323, 2018, 2581 punto-punto: un mittente, un destinatario flusso di byte affidabile e ordinato protocollo pipeline: il controllo di flusso e di congestione definisce

Dettagli

Il Livello Trasporto III 3. Corso di RETI DI CALCOLATORI (9 CFU) a.a II anno / II semestre. Il Livello Trasporto. Il Livello Trasporto

Il Livello Trasporto III 3. Corso di RETI DI CALCOLATORI (9 CFU) a.a II anno / II semestre. Il Livello Trasporto. Il Livello Trasporto Corso di RETI DI CALCOLATORI (9 CFU) a.a. 2017-2018 II anno / II semestre Servizi forniti ai livelli superiori (entità di trasporto) Servizio di trasporto orientato alla connessione Servizio di trasporto

Dettagli

Livello di trasporto: meccanismi trasferimento dati affidabile

Livello di trasporto: meccanismi trasferimento dati affidabile Livello di trasporto: meccanismi trasferimento dati affidabile Gaia Maselli Queste slide sono un adattamento delle slide fornite dal libro di testo e pertanto protette da copyright. - Copyright 2013 McGraw-Hill

Dettagli

Capitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella

Capitolo 3 - parte 2. Corso Reti ed Applicazioni Mauro Campanella Capitolo 3 - parte 2 Corso Reti ed Applicazioni Mauro Campanella Principi di un trasferimento dati affidabile strato di trasporto strato di applicazione (a) Servizio fornito (b) la realizzazione del Servizio

Dettagli

Introduzione. Obiettivo: Sommario: Introduzione alle reti di telecomunicazioni approccio:

Introduzione. Obiettivo: Sommario: Introduzione alle reti di telecomunicazioni approccio: Introduzione Obiettivo: Introduzione alle reti di telecomunicazioni approccio: descrittivo uso di Internet come esempio Sommario: Introduzione Cos è Internet Cos è un protocollo? network edge network core

Dettagli

Livello di trasporto: TCP

Livello di trasporto: TCP Livello di trasporto: TCP Prof.ssa Gaia Maselli maselli@di.uniroma1.it Parte di queste slide sono state prese dal materiale associato ai libri: 1) B.A. Forouzan, F. Mosharraf Reti di calcolatori. Un approccio

Dettagli

Strato di Trasporto TCP

Strato di Trasporto TCP Marco Listanti Strato di Trasporto TCP Multiplazione a livello di trasporto Multiplexing/demultiplexing Demultiplexing nell host ricevente: consegnare i segmenti ricevuti alla socket appropriata Multiplexing

Dettagli

Transmission Control Protocol

Transmission Control Protocol Transmission Control Protocol Franco Callegati Franco Callegati IC3N 2000 N. 1 Transmission Control Protocol - RFC 793 Protocollo di tipo connection-oriented Ha lo scopo di realizzare una comunicazione

Dettagli

Strato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP

Strato di trasporto. Livello di applicazione SAP. Livello di trasporto. Livello di rete SAP Strato di trasporto Lo strato di trasporto si colloca al livello 4 dello strato ISO-OSI e svolge il compito di mettere in comunicazione diversi processi software. La comunicazione tra applicazioni avviene

Dettagli

Parte II: Reti di calcolatori Lezione 12

Parte II: Reti di calcolatori Lezione 12 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II: Reti di calcolatori Lezione 12 Giovedì 10-04-2014 1 Struttura del segmento

Dettagli

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

Corso di Laurea in Ingegneria Informatica. Corso di Reti di Calcolatori I 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 protocollo TCP I lucidi presentati al corso

Dettagli

IL LIVELLO TRASPORTO Protocolli TCP e UDP

IL LIVELLO TRASPORTO Protocolli TCP e UDP Reti di Calcolatori ed Internet IL LIVELLO TRASPORTO Protocolli TCP e UDP 5-1 Il Livello Trasporto I servizi del livello Trasporto Le primitive di Trasporto Indirizzamento Protocolli di Trasporto Livello

Dettagli

TCP: trasmissione Source port [16 bit] - Identifica il numero di porta sull'host mittente associato alla connessione TCP. Destination port [16 bit] - Identifica il numero di porta sull'host destinatario

Dettagli

Controllo di congestione

Controllo di congestione Controllo di congestione Generalità!!In caso di congestione della rete, a causa dei buffer limitati degli apparati di rete, alcuni segmenti potrebbero venire persi!!la perdita dei segmenti e il relativo

Dettagli

Livello di trasporto e TSAP

Livello di trasporto e TSAP Reti di Telecomunicazioni R. Bolla, L. Caviglione, F. Davoli Livello di trasporto e TSAP Three-way handshake Incarnation numbers TCP e UDP 39.2 Sessione T_CONNECT, T_DISCONNECT T_DATA, T_EXP_DATA T_UNITDATA

Dettagli

Parte II: Reti di calcolatori Lezione 15 (39)

Parte II: Reti di calcolatori Lezione 15 (39) Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2017-18 Pietro Frasca Parte II: Reti di calcolatori Lezione 15 (39) Martedì 8-05-2018 1 Raddoppio dell

Dettagli

Strato di Trasporto Multiplazione a livello di trasporto

Strato di Trasporto Multiplazione a livello di trasporto Strato di Trasporto Multiplazione a livello di trasporto 1 Multiplexing/demultiplexing Demultiplexing nell host ricevente: consegnare i segmenti ricevuti alla socket appropriata Multiplexing nell host

Dettagli

Applicazioni e protocolli a livello applicazione

Applicazioni e protocolli a livello applicazione Applicazioni e protocolli a livello applicazione Applicazione: processi distribuiti comunicanti vengono eseguiti sugli host di rete come processi utente scambio di messaggi per implementare l applicazione

Dettagli

Si consideri il problema 1 del capitolo 1 del libro (4 edizione). Si chiede di rappresentare il protocollo tramite un automa a stati finiti esteso.

Si consideri il problema 1 del capitolo 1 del libro (4 edizione). Si chiede di rappresentare il protocollo tramite un automa a stati finiti esteso. Esercizi Capitolo Esercizio. Si considerino due host A e B distanti 0.000 Km connessi da un collegamento di R=Mbps e con velocità di propagazione di,5*0^8 m/s.. Consideriamo l invio di un file di 400.000

Dettagli

Protocolli di Trasporto in reti IP

Protocolli di Trasporto in reti IP Vincenzo Eramo Protocolli di Trasporto in reti IP Protocolli di Trasporto Lo strato di trasporto fornisce un servizio di trasferimento allo strato applicativo conforme ai requisiti di qualità richiesti

Dettagli

Parte II: Reti di calcolatori Lezione 14 (38)

Parte II: Reti di calcolatori Lezione 14 (38) Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2016-17 Pietro Frasca Parte II: Reti di calcolatori Lezione 14 (38) Venerdì 28-04-2017 1 Controllo

Dettagli

Prestazioni. aumentare l intervallo dei numeri di sequenza dotare sender e receiver di buffer per memorizzare i pacchetti non riscontrati

Prestazioni. aumentare l intervallo dei numeri di sequenza dotare sender e receiver di buffer per memorizzare i pacchetti non riscontrati Prestazioni Protocolli stop-and-wait poco efficienti Soluzione: il sender può inviare più pacchetti senza dover aspettare i riscontri (pipelining) Occorre: aumentare l intervallo dei numeri di sequenza

Dettagli

Prestazioni stop-and-wait. Prestazioni

Prestazioni stop-and-wait. Prestazioni Prestazioni stop-and-wait first packet bit transmitted, t = 0 sender receiver last packet bit transmitted, t = L / R RTT first packet bit arrives last packet bit arrives, send ACK ACK arrives, send next

Dettagli

Introduzione (parte III)

Introduzione (parte III) Introduzione (parte III) Argomenti della lezione Ripasso degli argomenti del primo corso: il livello di trasporto, il meccanismo di controllo delle congestioni e le applicazioni Il livello di trasporto

Dettagli

RETI DI CALCOLATORI. I Protocolli TCP e UDP. Livello TRASPORTO. Reti di Calcolatori A.A Carlo Mastroianni. Internet (IP) Trasporto

RETI DI CALCOLATORI. I Protocolli TCP e UDP. Livello TRASPORTO. Reti di Calcolatori A.A Carlo Mastroianni. Internet (IP) Trasporto Reti di Calcolatori RETI DI CALCOLATORI A.A. 2013-2014 I Protocolli TCP e UDP Carlo Mastroianni 5-1 Livello TRASPORTO Trasporto Internet (IP) Host-to-Network 5-2 Servizi di Trasporto Il software che fornisce

Dettagli

Riferimenti. I protocolli TCP e UDP. Sorgente TCP. Principi Fondamentali. TCP header. Ricevitore TCP

Riferimenti. I protocolli TCP e UDP. Sorgente TCP. Principi Fondamentali. TCP header. Ricevitore TCP Riferimenti I protocolli TCP e UDP TCP Illustrated, vol. 1 (Richard Stevens) RFC 1122/1123 (R. T. Braden) Requirements for Internet Hosts (1989) RFC 2001 (R. Stevens) TCP Slow Start, algorithms (1997)

Dettagli

Marco Listanti. Telecomunicazioni e Telerilevamento - Prof. Marco Listanti - A.A. 2010/2011. INFOCOM Dept

Marco Listanti. Telecomunicazioni e Telerilevamento - Prof. Marco Listanti - A.A. 2010/2011. INFOCOM Dept Marco Listanti Strato t di Trasporto Multiplazione a livello di trasporto Multiplexing/demultiplexing Demultiplexing nell host ricevente: consegnare i segmenti ricevuti alla socket appropriata Multiplexing

Dettagli

4 - Il livello di trasporto

4 - Il livello di trasporto 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

Dettagli