Capitolo 10 Lo Strato di Trasporto in Internet

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Capitolo 10 Lo Strato di Trasporto in Internet"

Transcript

1 Capitolo 10 Lo Strato di Trasporto in Internet 1

2 Sommario del capitolo Modelli di servizio per lo Strato di Trasporto Funzioni svolte dallo Strato di Trasporto: i. Rivelazione di errore ii. Multiplazione iii. Controllo di flusso iv. Trasferimento affidabile di dati v. Controllo di congestione Il protocollo UDP di Internet Il protocollo TCP di Internet Prestazioni del protocollo TCP 2

3 A cosa serve lo Strato di Trasporto (1/6) Consideriamo due applicazione P S e P D (ossia, due programmi) che risiedono su due terminali di utente H S e H D distinti, in generale non tra di loro adiacenti. Supponiamo che l applicazione P S voglia inviare una sequenza di messaggi {M 1, M 2 } all applicazione P D, impiegando la Rete Internet come rete di trasferimento. Informalmente, lo scopo dello Strato di Trasporto residente nei terminali H S e H D è quello di mettere a disposizione delle due applicazioni P S e P D un canale logico di tipo punto-punto e full-duplex che permetta a P S di inviare/ricevere messaggi a/da P D. 3

4 A cosa serve lo Strato di Trasporto application transport network data link physical messaggio segmento (2/6) application transport network data link physical messaggio segmento Baccarelli, Cordeschi, Patriarca, Polli 4

5 A cosa serve lo Strato di Trasporto (3/6) Informalmente, per canale logico tra i processi P S (residente nel terminale H S ) e P D (residente nel terminale H D ) intendiamo l insieme di router, sotto-reti, canalitrasmissivi, protocolli di gestione che permettono di stabilire un collegamento punto-punto, bidirezionale e full-duplex direttamente tra i due processi P S e P D. 5

6 A cosa serve lo Strato di Trasporto (4/6) I protocolli di Strato di Trasporto residenti presso i terminali di utente H S e H D effettuano le seguenti funzioni di base: i. Il protocollo di trasporto residente nel terminale sorgente (H S ) riceve messaggi dall applicazione P S, li incapsula in segmenti e invia la sequenza ordinata di segmenti nel canale logico. Questa operazione è detta multiplazione di ii. segmenti. Il protocollo di trasporto residente nel terminale di destinazione (H D ), riceve la sequenza di segmenti in uscita dal canale logico, frammenta la sequenza in segmenti, estrae da ciascun segmento il corrispondente messaggio, passa il messaggio al processo P D residente nel terminale H D. 6

7 A cosa serve lo Strato di Trasporto (5/6) I protocolli di Strato di Trasporto sono attuati solo presso i terminali d utente (host) ma non sono attuati nè nei router né nei bridge. Questo porta a 3 conseguenze: i. I protocolli di Strato di Trasporto e le funzioni da essi svolte sono attuati solo ai bordi della rete (nella Edge Network) ma non al suo interno (Core Network); ii. Solo gli Strati di Trasporto dei terminali d utente di sorgente e di destinazione sono al corrente del canale logico che li interconnette e ne mantengono, quindi, i parametri necessari per la gestione; iii. I router, bridge e canali trasmissivi della rete non sono al corrente di quanti e quali canali logici di Strato di Trasporto sono attivi. 7

8 A cosa serve lo Strato di Trasporto (6/6) Lo Strato di Trasporto della rete Internet mette a disposizione delle applicazioni che sono attive in ciascun terminale d utente due distinti protocolli di trasporto: i. L User Datagarma Protocol (UDP); ii. Il Transport Control Protocol TCP. UDP e TCP svolgono funzioni diverse, cioè offrono servizi diversi allo Strato Applicativo. Ogni applicazione (processo) attiva presso un terminale d utente deve scegliere quale dei due protocolli usare (TCP o UDP), prima di iniziare a trasmettere/ricevere messaggi. 8

9 Inter-Relazione tra Strato di Rete e Strato di Trasporto (1/3) Lo scopo principale dello Strato di Rete è quello di dar luogo ad un canale logico tra due utenti terminali H S e H D che vogliono comunicare. Lo scopo principale dello Strato di Trasporto è quello di dar luogo a un canale logico: i. Punto-punto; ii. Bidirezionale; iii. Full-duplex. tra una coppia di applicazione P S e P D residenti presso due terminali d utente H S e H D distinti. 9

10 Inter-Relazione tra Strato di Rete e Strato di Trasporto (2/3) Analogia con il servizio di posta ordinario. o 12 ragazzi inviano lettere a 12 ragazzi: o processi = ragazzi o messaggi delle applicazioni = lettere nelle buste o host = case o protocollo di trasporto = Anna e Andrea o Protocollo del livello di rete = servizio postale 10

11 Inter-Relazione tra Strato di Rete e Strato di Trasporto (3/3) Il servizio offerto allo Strato Applicativo dallo Strato di Trasporto si basa ovviamente sul servizio che lo Strato di Rete offre a sua volta allo Strato di Trasporto. Quindi, alcune delle caratteristiche del servizio offerto dallo Strato di Trasporto dipendono dalle caratteristiche del servizio offerto dallo Strato di Rete. Lo Strato di Rete di Internet offre un servizio di tipo besteffort, cioè un servizio di trasferimento di datagrammi in cui non sono garantiti né il ritardo massimo con il quale ciascun datagramma è trasferito né la velocità minima (dat/sec) con cui i datagrammi sono trasferiti. Come conseguenza, nella rete Internet, TCP e UDP offrono servizi di trasferimento di segmenti nei quali non sono garantiti né i ritardi massimi né le velocità minime (in segm/sec). 11

12 Servizi offribili dallo Strato di Trasporto (1/2) I principali servizi che i protocolli di uno Strato di Trasporto possono offrire sono: i. Multiplazione/Demultiplazione Al lato sorgente, lo Strato di Trasporto riceve i messaggi generati da uno o più processi attivi nel terminale sorgente e li ordina in una sequenza di segmenti (operazione di multiplazione). Al lato destinazione, lo Strato di Trasporto riceve la corrispondente sequenza di segmenti e ne estrae le sotto-sequenze di messaggi da trasferire ad una o più applicazioni attive nel terminale di destinazione (operazione di demultiplazione). ii. Rivelazione di errori al lato sorgente, il protocollo di trasporto immette in ciascun segmento da trasmettere una sequenza di bit di controllo della parità che, al lato ricezione, vengono utilizzati per rivelare la presenza di eventuali errori. iii. Trasferimento affidabile di segmenti lo Strato di Rete di Internet fornisce un canale logico tra due utenti che può indurre errori e/o perdite nei datagrammi trasmessi. Lo Strato di Trasporto può attuare tecniche di ARQ per fornire un canale logico tra due processi che è affidabile, ossia che non introduce errori/perdite/duplicazioni/ ri-ordino nella sequenza dei messaggi scambiati dalle applicazioni comunicanti 12

13 Servizi offribili dallo Strato di Trasporto (2/2) iv. Controllo del flusso dei segmenti trasmessi dal processo P S al processo P D, con lo scopo di evitare che il buffer presente allo Strato di Trasporto del terminale di destinazione vada in saturazione (over-flow). v. Controllo di congestione ha lo scopo di prevenire che gli scambi di segmenti (ossia, il traffico) tra tutte le coppie di processi comunicanti in un certo istante provochino fenomeni di saturazione (over-flow) dei buffer presenti nei router e nei bridge della rete. A questo scopo, il protocollo di Trasporto al lato sorgente del canale logico regola (ossia, aumenta o diminuisce) la velocità con cui i segmenti vengono immessi nella rete. vi. Gestione della connessione lo Strato di Trasporto può anche offrire il servizio di: i. Instaurazione; ii. Gestione; iii. Abbattimento della connessione tra due processi comunicanti attraverso un canale logico. 13

14 Modelli di servizio di Trasporto in Internet Anticipiamo che, nella Rete Internet, UDP fornisce un servizio di trasferimento di segmenti privo di connessione e non affidabile. UDP fornisce solo i due seguenti servizi: i. Multiplazione/demultiplazione; ii. Rivelazione degli errori. TCP fornisce un servizio di trasferimento dei segmenti orientato alla connessione e affidabile. TCP fornisce i seguenti servizi: i. Multiplazione/demultiplazione; ii. Rivelazione degli errori; iii. Trasferimento affidabile; iv. Controllo di flusso; v. Controllo di congestione; vi. Gestione della connessione. 14

15 Servizio di Multiplazione/ Demultiplazione: Principi Generali 15

16 Porte e Socket (1/4) Consideriamo un terminale d utente H con assegnato indirizzo IP: <IPAdd.H> a 32 bit. Supponiamo che uno o più processi P 1, P 2,,P N siano simultaneamente attivi (ossia, trasmettono o ricevono messaggi) nel terminale H. All interno del terminale H dove risiede, ciascuno dei suddetti processi attivi viene univocamente individuato (identificato) assegnandogli un numero intero compreso tra 0 e Questo numero è detto numero di porta (port number) associato al processo in oggetto ed è costituito da una stringa di 16bit. 16

17 Porte e Socket (2/4) Nel momento in cui diviene attivo, a ciascun processo all interno del terminale H è assegnato un numero di porta che lo identifica univocamente all interno del terminale H per tutto il tempo in cui il processo è attivo. Nel momento in cui il processo termina di essere attivo, il corrispondente numero di porta viene deallocato e torna ad essere libero (ossia, nuovamente assegnabile). I numeri di porta da 0 a 1023 sono riservati ad applicazioni particolari (quali HTTP, FTP, DNS, TelNet etc ) e costituiscono i cosiddetti well-known port numbers. 17

18 Porte e Socket (3/4) La lista completa dei well-known port numbers è reperibile al sito: Esempi di well-known port numbers sono i seguenti: Applicazione (processo) Numero di porta FTP 21 TelNet 23 SMTP 25 DNS 53 HTTP 80 18

19 Porte e Socket (4/4) Il numero di porta individua univocamente un processo P solo all interno del terminale H in cui il processo P è attivo (risiede). Per individuare globalmente (cioè, all interno della intera rete Internet) un processo P attivo all interno di un terminale H bisogna specificare: i. Il numero di porta di P; ii. L indirizzo IP del terminale H in cui risiede P. A questo fine, ad ogni processo P attivo è associato un Socket. Per definizione il Socket è costituito dal numero di porta di P e dall indirizzo IP del terminale H in cui risiede. Socket = < numero di porta del processo, indirizzo IP del terminale > 19

20 Canale Logico Definizione formale Consideriamo un processo P S residente nel terminale H S che comunica con un processo P D residente nel terminale H D. Indichiamo con : o o S S = < numero di porta di P S, indirizzo IP di HS>, il socket associato a P S ; S D = < numero di porta di P D, indirizzo IP di H D >, il socket associato a P D. Allora per definizione, il canale logico tra P S e P D è definito dalla corrispondente coppia di socket: S S e S D. 20

21 Formato generale di un segmento (1/2) In generale, un Segmento di Strato di Trasporto è costituito da una Intestazione (Header) e da un campo dati (Payload). Il campo dati contiene il messaggio generato dall applicazione. Esso può essere di dimensioni variabili. La dimensione massima (in byte) del campo dati viene fissata, di volta in volta, al momento in cui viene stabilito il canale logico tra i due processi comunicanti. La suddetta dimensione massima è detta Maximum Segment Size (MSS) ed è espressa in byte. L intestazione (Header) contiene vari sotto-campi tra cui: i. Numero di porta dell applicazione sorgente che ha generato il messaggio (16 bit); ii. Numero di porta dell applicazione di destinazione alla quale il messaggio è destinato (16 bit). 21

22 Formato generale di un segmento (2/2) 32 bits Source port # Dest port # Other header fields Application data (message) 22

23 Il servizio di Multiplazione Al lato sorgente, il Protocollo di Trasporto effettua le seguenti operazioni (servizio di Multiplazione): i. Incapsula i messaggi ricevuti dai vari Sockets ii. iii. attivi al terminale-sorgente in segmenti; Compila l header di ciascun segmento, specificando i corrispondenti numeri di porta sorgente e destinazione; Passa la sequenza ordinata dei segmenti allo Strato di Rete. 23

24 Il servizio di Demultiplazione Al lato destinazione, il Protocollo di Trasporto effettua le seguenti operazioni (servizio di Demultiplazione): i. Frammenta la sequenza di dati ricevuta dallo strato di rete in segmenti; ii. iii. iv. Legge il numero di porta di destinazione presente nell header di ciascun segmento; Estrae il messaggio dal segmento; Dirige il messaggio al socket specificato dal numero di porta destinazione. 24

25 Multiplazione/Demultiplazione: Demultiplazione al Terminale-destinazione Consegnare i segmenti ricevuti ai socket corretti = socket riepilogo = process Multiplazione al Terminale-sorgente Raccogliere dati da più socket, incapsularli con un header (usato in seguito per la demultiplazione) application P3 P1 P1 application P2 P4 application transport transport transport network network network link link link physical physical host 1 host 2 host 3 physical 25

26 Il servizio di Trasferimento Affidabile: Principi generali 26

27 Il servizio di Trasferimento Affidabile Generalità (1/2) Consideriamo due socket S S e S D che si scambiano segmenti attraverso un canale logico gestito dallo Strato di Trasporto. Per definizione, il Servizio di Trasferimento offerto dallo Strato di Trasporto è detto affidabile se: i. Tutti i messaggi sono consegnati a S D senza errori ii. iii. (no errori né perdita di messaggi); Ciascun messaggio è consegnato a S D una e una sola volta (no duplicazione); I messaggi sono consegnati nello stesso ordine in cui sono generati da S S. 27

28 Il servizio di Trasferimento Affidabile Generalità (2/2) Lo strato di Rete di Internet implementa un servizio di trasferimento di segmenti che non è affidabile, ossia è soggetto a perdite ed errori. Lo Strato di Trasporto deve, allora, attuare meccanismi di tipo ARQ che permettano di eliminare gli errori e le perdite introdotte allo Strato di Rete. L obiettivo è quello di offrire un servizio di trasferimento affidabile dei messaggi allo Strato Applicativo. 28

29 Schema generale di riferimento (1/2) Strato di trasporto Segm. L Canale diretto con Segm. F Strato di trasporto sorgente errori e perdite destinazione ACK. no M Canale di ritorno con perdite ACK. no N 29

30 Schema generale di riferimento (2/2) Introduciamo le seguenti assunzioni: i. Il canale diretto può introdurre errori e/o perdite nei segmenti in ii. transito; Il canale di ritorno può introdurre perdite nei messaggi di riscontro in transito. Introduciamo i seguenti parametri: i. Il Round Trip Time (RTT) è l intervallo di tempo che intercorre tra l istante in cui un segmento inizia ad essere trasmesso dalla sorgente e l istante in cui la sorgente ne riceve il relativo messaggio di riscontro. ii. C (bit/sec) indica la capacità trasmissiva del canale diretto; iii. L intervallo di Time-Out (Retransmission Time Out: RTO) indica il massimo intervallo di tempo che può intercorrere tra l istante di trasmissione di un segmento e l istante di ricezione del corrispondente riscontro prima che la sorgente consideri perso il segmento stesso. 30

31 Meccanismi impiegati In generale, i meccanismi impiegati per realizzare un trasferimento di segmenti affidabile attraverso l (inaffidabile) canale diretto della figura precedente sono quelli già esaminati allo Strato di Collegamento, e cioè: i. Rivelazione degli errori in ricezione; ii. Numerazione dei segmenti trasmessi; iii. Ritrasmissione dei segmenti persi o in cui sono stati rivelati errori; iv. Trasmissione di messaggi di riscontro con numero di sequenza; v. Impiego di finestre in trasmissione e in ricezione; vi. Impiego di un temporizzatore (timer) in trasmissione. 31

32 Numerazione dei segmenti trasmessi (1/2) Ai fini della numerazione, lo strato di trasporto considera la sequenza (ordinata) dei segmenti trasmessi come una sequenza ordinata di byte. Ovviamente ogni segmento è composto da più byte. Lo Strato di Trasporto numera progressivamente la sequenza dei byte trasmessi. Ciascun numero è un intero compreso tra 0 e (2 32-1). Quindi, la numerazione effettuata dallo strato di trasporto è di tipo ciclico, ovvero: mod. 2 b con b=32. Per definizione, il numero di sequenza associato ad un segmento è il numero d ordine del primo byte che compone il segmento stesso. 32

33 Numerazione dei segmenti trasmessi (2/2) Ciò significa che se: i. Il numero di sequenza del segmento attuale è L {0,, (2 32-1)}; ii. Il segmento attuale è composto da k 1 byte; Allora il numero di sequenza del prossimo segmento è: (L+k) mod

34 Messaggi di riscontro positivi con numerazione (1/2) Di tanto in tanto, il Protocollo di Trasporto al lato destinazione invia al Protocollo di Trasporto al lato sorgente messaggi di riscontro positivi con numerazione del tipo ACK(m). I messaggi di riscontro si propagano dalla destinazione alla sorgente mediante il canale di ritorno e quindi possono essere soggetti a perdite. 34

35 Messaggi di riscontro positivi con numerazione (2/2) Quando la sorgente riceve dalla destinazione il riscontro ACK (m) allora per definizione, la sorgente acquisisce le seguenti due informazioni: i. Il prossimo byte che la destinazione si attende di ricevere è quello con numero d ordine m. Il byte m-simo o non è stato ricevuto o è stato ricevuto ii. con errore; Tutti i byte con numeri d ordine (m-1) sono già stati ricevuti correttamente dalla destinazione. Quindi, il riscontro che arriva alla sorgente è di tipo cumulativo. 35

36 NACK impliciti I protocolli di Strato di Trasporto non prevedono l impiego esplicito di messaggi NACK (riscontri negativi). Essi impiegano messaggi NACK di tipo implicito. Ciò significa che: Quando la sorgente riceve tre o più messaggi ACK con lo stesso numero di sequenza m (cioè, tre o più ACK(m)), allora comprende che l intero segmento con numero di sequenza m deve essere ri-trasmesso. 36

37 Finestra di trasmissione (1/4) Per gestire la ritrasmissione di segmenti andati persi o ricevuti con errori, lo Strato di Trasporto del terminale sorgente mantiene e aggiorna la finestra di trasmissione. La finestra di trasmissione ha dimensione W S 1 byte. Essa memorizza tutti i numeri di sequenza dei byte che la sorgente può trasmettere senza bisogno di ricevere alcun messaggio ACK da parte della destinazione. 37

38 Finestra di trasmissione (2/4) La sorgente implementa e aggiorna la finestra di trasmissione avvalendosi di 2 variabili (2 puntatori): o Sendbase: rappresenta il numero d ordine del byte più vecchio tra quelli trasmessi ma non ancora riscontrati positivamente dalla destinazione. In altri termini, sendbase individua l estremo inferiore della finestra di trasmissione corrente. o Nextseqnum: rappresenta il numero d ordine del prossimo byte che cade nella finestra corrente e che deve ancora essere trasmesso per la prima volta. 38

39 Finestra di trasmissione (3/4) W S (byte) 39

40 Finestra di trasmissione Aggiornamento (4/4) Quando la sorgente riceve un riscontro ACK(y) dalla destinazione, allora aggiorna l estremo inferiore sendbase della finestra di trasmissione come segue: a. Se y sendbase, allora sendbase è lasciato inalterato; b. Se y > sendbase, allora sendbase è posto pari a y. Quando la sorgente trasmette per la prima volta k 1 bytes con numeri d ordine consecutivi, allora incrementa nextseqnum di k unità, ossia pone: nextseqnum= (nextseqnum + k) mod

41 Finestra di ricezione (1/5) Per gestire la richiesta di ritrasmissione di segmenti ricevuti con errori o mai ricevuti (persi), lo Strato di Trasporto del terminale di destinazione mantiene e aggiorna la finestra di ricezione. La finestra di ricezione ha dimensione W D 1 byte. Per definizione, la finestra di ricezione memorizza i numeri d ordine dei byte che la destinazione è disposta a ricevere consecutivamente, ossia senza bisogno di inviare alcun messaggio ACK alla sorgente. 41

42 Finestra di ricezione (2/5) La destinazione implementa e aggiorna (fa scorrere in avanti) la finestra di ricezione avvalendosi della sola variabile: Rcvbase è il più piccolo numero d ordine del byte che la destinazione attende di ricevere ma che i. Non ha mai ancora ricevuto (perdita di segmento); ii. Ha ricevuto con errori (segmento corrotto). In altri termini, rcvbase è l estremo inferiore della finestra di ricezione. 42

43 Finestra di ricezione (3/5) W D (byte) 43

44 Finestra di ricezione (4/5) Supponiamo che la destinazione riceva un segmento con numero di sequenza n s e lungo L 1 bytes. Allora, i. Se la destinazione rivela errori nel segmento ricevuto, ii. iii. scarta il segmento; Se la destinazione non rivela errori e inoltre se il segmento cade nella finestra di ricezione, ossia se è verificata la relazione seguente: n s + L rcvbase + W D, allora il segmento è accettato; Se la destinazione non rivela errori nel segmento ma il segmento non cade nella finestra di ricezione, ossia se n s + L > rcvbase + W D, allora la destinazione scarta il segmento. 44

45 Finestra di ricezione Aggiornamento (5/5) La destinazione aggiorna l estremo inferiore rcvbase della Finestra di ricezione alla generazione di ogni messaggio ACK. Supponiamo che la destinazione generi il messaggio ACK(z), allora l estremo inferiore della Finestra di ricezione è posto uguale a z, ossia: Rcvbase = z. 45

46 Temporizzatore e Retransmission Time Out (RTO) (1/2) Poiché uno o più segmenti inviati dalla sorgente nel canale diretto e/o uno o più riscontri inviati dalla destinazione nel canale di ritorno possono andare persi, il Protocollo di Trasporto al lato sorgente implementa e gestisce un temporizzatore (Timer). La sorgente associa il temporizzatore all (intero) segmento già trasmesso e non ancora riscontrato che, tra tutti i segmenti trasmessi e non ancora riscontrati, è quello che è stato trasmesso per primo (il più vecchio). Il timer è avviato (fatto partire) quando il suddetto segmento è trasmesso (per la prima volta o meno). Il timer è bloccato (fermato) quando la sorgente riceve un riscontro positivo per il segmento in oggetto. 46

47 Temporizzatore e Retransmission Time Out (RTO) (2/2) Quando (Timer RTO) (ossia il tempo di attesa è scaduto), allora: i. La sorgente ri-inizializza il timer; ii. La sorgente ritrasmette il segmento in oggetto. Quando (Timer < RTO) e la sorgente riceve un riscontro positivo circa il segmento in oggetto, allora: i. La sorgente blocca il timer. 47

48 Il servizio di Controllo di Congestione Principi generali 48

49 Quando si verifica una congestione di Rete I router e i canali trasmissivi della Rete Internet sono, in ogni istante, condivisi (ossia, utilizzati simultaneamente) da più canali logici impiegati da più coppie di processi per scambiarsi tra di loro messaggi. Informalmente, la Rete Internet diventa congestionata quando il numero totale di messaggi che i processi-sorgenti immettono nella rete Internet nell unità di tempo supera la velocità con cui i router e i canali trasmissivi della rete sono in grado di inoltrare i suddetti messaggi verso i corrispondenti processi di destinazione. 49

50 Effetti negativi della congestione di Rete (1/4) Il verificarsi di una congestione da luogo a due principali effetti negativi: i. Il ritardo medio che ciascun datagramma sperimenta a ciascun router che attraversa cresce al crescere del livello di congestione e, al limite, diviene infinito (rete completamente bloccata). ii. Un datagramma che arriva ad un router può trovare il corrispondente buffer già completamente occupato (buffer overflow al router) e, quindi, il datagramma viene scartato (perdita di datagrammi). 50

51 Effetti negativi della congestione di Rete (2/4) Supponiamo che, per effetto della congestione, un datagramma sia stato scartato ad un certo router R. Se il Protocollo di Trasporto adottato non fornisce un servizio di trasferimento dati affidabile (caso UDP), il messaggio contenuto nel datagramma scartato non raggiungerà mai il processo-destinazione. Ciò provoca una perdita di informazione alla destinazione. Se il protocollo di Trasporto adottato fornisce un servizio di trasferimento dati affidabile (caso di TCP), il messaggio contenuto nel datagramma scartato verrà ri-trasmesso una o più volte da parte del processo-sorgente. Ovviamente, ogni ri-trasmissione richiede l immissione nella Rete di un nuovo segmento (contenente sempre lo stesso messaggio) che andrà ad incrementare il livello di congestione della rete. 51

52 Effetti negativi della congestione di Rete Incremento dei ritardi (3/4) Host A λ λ in : original data out due sorgenti, due destinazioni buffer di dimensione infinita nessuna ritrasmissione Host B Baccarelli, Cordeschi, Patriarca, Polli unlimited shared output link buffers Grandi ritardi quando congestionata massimo throughput 52 raggiungibile

53 Effetti negativi della congestione di Rete Ritrasmissioni (4/4) un router, buffer di dimensione finita ogni sorgente ritrasmette i segmenti persi Host A λ in : original data λ' in : original data, plus retransmitted data λ out Host B finite shared output link buffers 53

54 Strategie per controllare le congestioni (1/2) Per eliminare (controllare) una congestione in atto, i processi-sorgente debbono ridurre le velocità con le quali immettono nuovi messaggi nella Rete. 54

55 o o Strategie per controllare le congestioni (2/2) Il controllo della velocità con la quale ciascun singolo processosorgente immette nuovi messaggi in Rete può essere effettuato in accordo a due differenti strategie. Nel controllo di congestione di tipo end-to-end, lo strato di rete non fornisce alcun servizio allo Strato di Trasporto per controllare le congestione. La stessa presenza di congestione deve essere rivelata dallo Strato di Trasporto presso gli utenti terminali autonomamente, basandosi, cioè, solamente sul valore assunto da indici prestazionali (quali, RTT e/o il tasso di perdita di segmenti) misurabili direttamente presso i terminali d utente. Questo è il tipo di controllo di congestione adottato dal TCP. Nel controllo di congestione assistito dalla rete, lo Strato di Rete (o, meglio, i router di rete) generano e inviano allo Strato di Trasporto dei terminali-sorgente espliciti messaggi contenenti informazioni circa: i. Il livello di occupazione dei buffers dei router; ii. Il ritardo medio di coda ai buffers dei router. Le reti ATM attuano strategie di controllo di congestione assistite dalla rete. 55

56 Il Protocollo UDP 56

57 UDP - Generalità L User Datagram Protocol (UDP) è un protocollo di trasporto che fornisce un servizio di trasferimento messaggi i. Privo di connessione; ii. Non affidabile. Inoltre, UDP dà luogo ad una modalità di trasferimento tra processi di tipo i. Punto-punto; ii. Bidirezionale; iii. Full-duplex. UDP attua solo due funzioni sui segmenti che trasferisce: i. Rivelazione degli errori una volta rivelato un errore in un segmento ricevuto, UDP scarta il segmento oppure lo passa al processo-destinazione notificando contestualmente la presenza di errori. ii. Multiplazione/demultiplazione dei segmenti trasferiti tra i processi 57

58 Perché usare UDP (1/2) Nonostante UDP fornisca un servizio di trasferimento non affidabile la sua utilizzazione presenta i seguenti vantaggi: o o o o Essendo UDP privo di connessione, il suo impiego non introduce i ritardi temporali necessari per instaurare una connessione tra i processi comunicanti; L header di un segmento UDP è molto più corto (8byte) dell header di un segmento TCP (almeno 20byte); Essendo UDP privo di connessione, non richiede che gli Strati di Trasporto dei processi comunicanti mantengano e gestiscano i parametri della connessione; Poiché UDP non attua controllo di congestione, la velocità con cui UDP immette i segmenti nella rete dipende solo dalla velocità con cui il corrispondente processo-sorgente genera i suoi messaggi. 58

59 Perché usare UDP (2/2) UDP è impiegato dalle applicazioni (ossia, dai processi di Strato Applicativo) che richiedono bassi ritardi di trasferimento end-to-end ma tollerano perdite/errori nei segmenti ricevuti dai processi di destinazione. Applicazione Protocollo di strato applicativo Protocollo di trasporto impiegato SMTP TCP Accesso al terminale TelNet TCP Web HTTP TCP Trasferimento file FTP TCP Applicazione multimediale UDP Telefonia via Internet VoIP UDP Protocolli di instradamento RIP UDP 59

60 Il formato del segmento UDP (1/2) Il segmento UDP è costituito da i. Un header (8byte) ii. Un campo payload (di lunghezza variabile ma non superiore a MSS byte) 32 bit n porta sorgente n porta dest. lunghezza checksum Dati dell applicazione (messaggio) 60

61 Il formato del segmento UDP (2/2) L header di un segmento UDP è composta dai seguenti campi: o o o o Num. porta sorgente (16 bit) indica il numero della porta alla quale è connesso il processo sorgente del terminale sorgente; Num. porta destinazione (16 bit) indica il numero della porta alla quale è connesso il processo destinazione del terminale destinazione; Lunghezza (16 bit) indica la lunghezza in byte dell intero segmento; Checksum (16 bit) è il campo dei bit di controllo di parità impiegato in ricezione per verificare la eventuale presenza di errori sull intero segmento ricevuto. 61

62 Multiplazione/Demultiplazione in UDP (1/3) UDP fornisce un servizio di trasferimento di messaggi privo di connessione. Ciò implica che le operazioni di multiplazione/demultiplazione effettuate da UDP hanno le seguenti caratteristiche: i. In UDP, un canale logico tra un processo sorgente e un processo destinazione è identificato solo dalla seguente coppia di parametri: <indirizzo IP del terminale di dest., num. Porta di dest.> ii. Quando il terminale di destinazione riceve un segmento UDP, allora: o Legge il numero della porta di destinazione; o Estrae il messaggio contenuto nel segmento; o Invia il messaggio alla socket col numero di porta di destinazione specificato. 62

63 Multiplazione/Demultiplazione in UDP (2/3) La conseguenza è che in UDP : o Segmenti che hanno differenti indirizzi IP sorgente e/o numeri di porta sorgente ma hanno lo stesso indirizzo IP di destinazione e lo stesso numero di porta destinazione vengono consegnati allo stesso socket all interno del terminale di destinazione. 63

64 Multiplazione/Demultiplazione in Esempio illustrativo UDP (3/3) P2 P3 P1 P1 SP: 6428 DP: 9157 SP: 6428 DP: 5775 SP: 9157 SP: 5775 client IP: A DP: 6428 server IP: C DP: 6428 Client IP:B SP provides return address 64

65 Il Protocollo TCP 65

66 TCP Generalità (1/4) o o Il Transport Control Protocol (TCP) fornisce allo Strato Applicativo un servizio di trasferimento di messaggi che è: Orientato alla connessione Affidabile. Inoltre, la modalità del trasferimento dati attuata dal TCP tra un processo sorgente e un processo destinazione è di tipo: i. Punto-punto; ii. Bidirezionale; iii. Full-duplex. Specificatamente, TCP offre i seguenti servizi e implementa le seguenti funzioni: i. Rivelazione di errori nei segmenti ricevuti; ii. iii. iv. Multiplazione/demultiplazione dei segmenti; Trasferimento affidabile dei segmenti; Controllo della velocità di emissione dei segmenti da parte del terminale sorgente (controllo di flusso); v. Controllo di congestione; vi. Gestione della connessione. 66

67 TCP Generalità (2/4) Essendo TCP orientato alla connessione, due processi che vogliano scambiare messaggi mediante TCP debbono preliminarmente instaurare una connessione (fase di handshaking). La fase di handshaking si compone di 3 passi: i. Il processo-cliente invia uno speciale segmento TCP al processo-servente (segmento di notifica); ii. Il processo-servente risponde inviando al processocliente un secondo speciale segmento TCP (segmento di risposta); iii. Il processo-cliente invia un terzo segmento TCP al processo-servente comunicandogli che è pronto a inviare/ricevere messaggi (segmento di O.K.). 67

68 TCP Generalità (3/4) Uno degli scopi della fase di handshaking è quello di permettere: i. al terminale-sorgente, di predisporre (allocare) un buffer di trasmissione in cui memorizzare temporaneamente i messaggi che sono stati generati dal processo sorgente ma non ancora trasmessi dal TCP operante al terminale sorgente; ii. al terminale-destinazione, di predisporre (allocare) un buffer di ricezione in cui memorizzare temporaneamente i messaggi estratti dai segmenti ricevuti che non sono ancora stati inoltrati (letti dal) processo di destinazione. 68

69 TCP Generalità (4/4) 69

70 Il segmento TCP (1/2) Ciascun segmento TCP è costituito da un: i. Header, la cui dimensione minima è di 20 byte; ii. Un campo Payload contiene il messaggio generato dall applicazione sorgente. Il campo payload può essere di dimensioni variabili, ma la dimensione massima è di MSS byte. 70

71 Il segmento TCP (2/2) source port # dest port # head len 32 bits sequence number acknowledgement number not used U A P R S F checksum Receive window Urg data pointer Options (variable length) application data (variable length) 71

72 L Header del segmento TCP (1/3) L Header di ciascun segmento TCP è costituito dai seguenti campi: o Source port # (16 bit) indica il numero della porta del processo sorgente; o Dest. port # (16 bit) indica il numero della porta del processo destinazione; o Seq. Number (32 bit) è il numero di sequenza del segmento in oggetto, ossia è il numero di sequenza del primo byte che costituisce il segmento in oggetto; o ACK Number (32 bit) è il numero d ordine del prossimo byte che il processo che genera il segmento si aspetta di ricevere dal processo al quale sta inviando il segmento; o Header Len. (4 bit) è la lunghezza dell header (comprese le eventuali opzioni), espressa in multipli di 32 bit; o Urg (1 bit) indica la presenza nel payload di dati urgenti (se urg=1) la cui posizione finale all interno del payload è specificata dal campo urgent pointer. 72

73 L Header del segmento TCP (2/3) o ACK (1 bit) indica se il contenuto del campo ACK number è valido (ACK=1), oppure se deve essere ignorato dal terminale che riceve il segmento in oggetto (ACK=0); o Push (1 bit) richiede (P=1) al terminale che riceve il segmento in oggetto di consegnarne il payload all opportuno socket, indipendentemente dal livello di occupazione del buffer di ricezione; o Reset (1 bit) segnala (R=1) l abbattimento di una connessione in atto oppure il rifiuto di una richiesta di apertura di una connessione; o Syn (1 bit) usato (S=1) per instaurare una connessione TCP; a seconda dello stato del bit ACK, distingue tra: Richiesta di connessione (S=1, ACK=0); Accettazione della richiesta di connessione (S=1, ACK=1). 73

74 L Header del segmento TCP (3/3) o Fin (1 bit) usato (F=1) per richiedere la chiusura (abbattimento) di una connessione in atto; o Receive Window (16 bit) indica il numero di byte che il processo che genera il segmento in oggetto è disposto a ricevere dal processo al quale il segmento è diretto; o Checksum (16 bit) bit di controllo della parità per la rivelazione alla destinazione di eventuali errori presenti in tutto il segmento ricevuto; o Urg. data pointer (16 bit) indica la posizione all interno del payload dell ultimo byte che costituisce i dati urgenti trasportati (eventualmente) dal payload; o Options campo di lunghezza variabile, ma in ogni caso multipla di 32 bit. Viene usato per negoziare il valore di MSS tra i processi comunicanti. 74

75 Il servizio di Mux/Demux in TCP (1/3) TCP offre un servizio orientato alla connessione. Ciò significa che, in TCP, ogni canale logico tra processo sorgente (residente nel terminale sorgente) e processo destinazione (residente nel terminale destinazione) è identificato da 4 parametri: i. Indirizzo IP del terminale sorgente; ii. Il numero di porta del terminale sorgente; iii. Indirizzo IP del terminale destinazione; iv. Il numero di porta del terminale destinazione. Per ogni segmento che riceve, il TCP al lato destinazione usa tutti e 4 parametri per inoltrare il messaggio contenuto nel segmento verso la socket di destinazione appropriata. 75

76 Il servizio di Mux/Demux in TCP (2/3) In particolare, ciò significa che, se il terminale destinazione riceve due segmenti con gli stessi valori dei campi: <indirizzo IP dest., Numero porta dest.> ma con valori diversi dei campi: <indirizzo IP sorg., Numero porta sorg. > allora il terminale destinazione inoltrerà i due segmenti a due socket distinti residenti nel terminale destinazione. 76

77 Il servizio di Mux/Demux in TCP- Esempio (3/3) P1 P4 P5 P6 P2 P1 P3 SP: 5775 DP: 80 S-IP: B D-IP:C SP: 9157 SP: 9157 client IP: A DP: 80 S-IP: A D-IP:C server IP: C DP: 80 S-IP: B D-IP:C Client IP:B 77

78 Stima del RTT e calcolo del RTO in TCP 78

79 Stima del RTT di una connessione (1/4) Consideriamo la trasmissione di segmenti da un processo sorgente ad un processo destinazione mediante un assegnato canale logico (connessione TCP). Definiamo come Round Trip Time (RTT) (sec) sperimentato da uno specifico segmento l intervallo di tempo che intercorre tra l istante t 0 in cui il segmento inizia ad essere trasmesso dallo Strato di Trasporto del terminale sorgente e l istante t 1 in cui lo strato di trasporto del terminale sorgente riceve il corrispondente messaggio ACK inviatogli dal terminale di destinazione, ossia: RTT = t 1 -t 0 (sec). 79

80 Stima del RTT di una connessione (2/4) Ovviamente, ciascun segmento trasmesso sperimenterà un suo proprio valore di RTT che, in genere, varia da segmento a segmento. Indichiamo, allora, con RTTsample (sec) il valore del RTT del segmento correntemente trasmesso (per la prima volta) dallo strato di trasporto del terminale sorgente. 80

81 Valore medio del RTT (3/4) Indichiamo con RTT (sec) il valore medio degli RTTs dei segmenti trasmessi attraverso la connessione Proc. Sorgente Proc. Destinazione. Ogni volta che un nuovo RTTsample è misurato, il TCP al lato sorgente aggiorna il valore RTT del RTT medio in accordo alla seguente formula: RTT = (1-α) RTT + α RTTsample (sec), dove tipicamente α =

82 Valore medio del RTT Esempio illustrativo (4/4) L esempio mostra che: i. RTTsample può assumere valori medi molto diversi in istanti di tempo vicini tra di loro; ii. Il risultante valore medio RTT (sec) ha un andamento nel tempo molto meno fluttuante (più continuo) Baccarelli, Cordeschi, Patriarca, Polli 82

83 Deviazione media di RTT Può accadere che, di volta in volta, il valore correntemente misurato di RTTsample possa essere molto vicino o molto lontano al corrispondete valore medio RTT. Lo scostamento medio di RTTsample da RTT è misurato dalla variabile DevRTT (sec). Specificatamente, in corrispodenza ad ogni nuovo valore di RTTsample, il TCP al alto trasmissione aggiorna DevRTT in accordo alla relazione seguente: DevRTT = (1- β) DevRTT + β RTTsample - RTT, dove tipicamente β =

84 Calcolo del Re-Transmission Time Out (RTO) (1/2) Ricordiamo che il Re-transmission Time Out (RTO) (sec) è l intervallo temporale massimo che può trascorrere tra l istante di trasmissione di un segmento e l istante di ricezione del corrispondete ACK prima che il TCP al lato sorgente ri-trasmetta di nuovo il segmento in oggetto. Quindi, i. valori troppo piccoli di RTO possono provocare ritrasmissioni non necessarie di uno o più segmenti; ii. valori troppo grandi di RTO possono introdurre ritardi troppo elevati nel trasferimento di segmenti che sono stati soggetti a perdita. 84

85 Calcolo del Re-Transmission Time Out (RTO) (2/2) Allora, alla misurazione di ciascun nuovo RTTsample, il TCP al lato trasmissione effettua le seguenti operazioni: i. Aggiorna il valore di RTT; ii. Aggiorna il valore di DevRTT; e, infine, calcola il valore corrente di RTO (sec) sulla base della seguente formula: RTO= RTT + 4 DevRTT (sec). 85

86 Il servizio di trasferimento dati affidabile di TCP 86

87 Il servizio di trasferimento dati affidabile di TCP Generalità (1/3) Consideriamo il trasferimento di segmenti da un processo sorgente P S ad un processo destinazione P D attraverso una connessione (canale logico) gestita dal TCP. Ricordiamo che TCP deve implementare un servizio di trasferimento di segmenti da P S a P D affidabile, avvalendosi di un servizio di trasferimento di datagrammi non affidabile dal terminale sorgente H S al terminale destinazione H D realizzato dallo strato di rete di Internet. 87

88 Il servizio di trasferimento dati affidabile di TCP Generalità (2/3) Per dar luogo al servizio di trasferimento di segmenti affidabile, TCP fa ricorso all impiego: o Della strategia ARQ; o Della numerazione (ciclica) dei segmenti trasmessi; o Della numerazione (ciclica) dei messaggi di riscontro (ACK); o Delle finestre di trasmissione e di ricezione; o Del temporizzatore e del RTO; o Del NACK implicito (3ACK con stesso numero di sequenza) o già descritti in precedenza. 88

89 Il servizio di trasferimento dati affidabile di TCP Generalità (3/3) Quindi, non ci rimane altro che passare alla descrizione dettagliata degli algoritmi (operazioni) che il TCP implementa: o Al lato trasmissione (TCP sender algorithm); o Al lato ricezione (TCP receiver algorithm). 89

90 Trasferimento dati affidabile di TCP Lato Sorgente (1/5) Al lato sorgente, la trasmissione di nuovi segmenti o la ri-trasmissione di segmenti già trasmessi in precedenza è, di volta in volta, regolata dal verificarsi o meno di uno dei seguenti 3 eventi: a. Un nuovo messaggio è ricevuto dal processo sorgente - in questo caso, il TCP opera come o o o segue: Incapsula il messaggio in un nuovo segmento, al quale assegna come numero di sequenza il numero d ordine del primo byte che costituisce il segmento stesso; Passa il segmento allo strato di Rete; Se non è già stato attivato, attiva il Timer. 90

91 Trasferimento dati affidabile di TCP Lato Sorgente (2/5) b. Si verifica un TimeOut (ossia, Timer > RTO) in questo caso il TCP: Ri-inizializza il timer; Ri-trasmette il segmento che ha causato il timeout. 91

92 Trasferimento dati affidabile di TCP Lato Sorgente (3/5) c. E ricevuto ACK (y) - in questo caso, il TCP aggiorna l estremo inferiore: sendbase della finestra di trasmissione, operando come segue: i. Se y > sendbase, allora: iii. o Sendbase è posto pari a y; o Se ci sono nella finestra di trasmissione segmenti già trasmessi non ancora riscontrati, allora ri-inizializza il timer. Se y sendbase, allora: o Sendbase non viene modificato; o Se è il terzo ACK che ricevi con numero di sequenza y, allora ri-trasmetti l intero segmento y-mo. 92

93 Trasferimento dati affidabile di TCP Lato Sorgente (4/5) 1. NextSeqNum : = InitialSeqNum; /* inizializzazione */ 2. SendBase : = InitialSeqNum; /* inizializzazione */ In definitiva, l algoritmo che il TCP implementa al Lato Sorgente della connessione per garantire il trasferimento affidabile dei dati assume la forma seguente: switch(event) event: data received from application above 3. create TCP segment with sequence number NextSeqNum; 4. if (timer currently not running) start timer; 5. pass segment to IP; 6. NextSeqNum := NextSeqNum + length(data); event: timer timeout 7. retransmit not-yet-acknowledged segment with 8. smallest sequence number; start timer; event: ACK received, with ACK field value of y if (y > SendBase) { 9. SendBase := y if (there are currently not-yet-acknowledged segments) 10. start timer; } else{ 11. increment count of dup ACKs received for y; if (count of dup ACKs received for y = 3) { Baccarelli, resend segment with sequence number y; Cordeschi, Patriarca, } Polli

94 Trasferimento dati affidabile di TCP Lato Sorgente (5/5) E interessante osservare che se la sorgente riceve tre ACKs con uno stesso numero di sequenza y, allora al sorgente ri-trasmette l intero segmento no.y, anche se non si è ancora verificato alcun timeout. Questo meccanismo di ri-trasmissione di un segmento causato dalla ricezione di tre ACK è detto Fast- Retransmission Mechanism. Il suo scopo è quello di anticipare l istante di ritrasmissione di un segmento che (verosimilmente) è andato perso, senza attendere che il Timer ad esso associato scada. 94

95 Trasferimento dati affidabile di TCP Lato Destinazione (1/2) Alla ricezione di ciascun segmento, il Lato Destinazione opera come segue: i. Verifica se il segmento è affetto da errori; ii. iii. Se rivela errori nel segmento, scarta il segmento; Se non rivela errori nel segmento, genera un messaggio ACK e aggiorna la finestra di ricezione in accordo a quanto riportato nella tabella seguente: 95

96 Trasferimento dati affidabile di TCP Lato Destinazione (2/2) Evento alla destinazione Arrivo ordinato di un segmento con numero di sequenza atteso. Tutti i dati fino al numero di sequenza atteso sono già stati riscontrati. Azione della destinazione TCP ACK ritardato. Attende fino a 500ms l arrivo del prossimo segmento. Se il segmento non arriva, invia un ACK. Arrivo ordinato di un segmento con numero di sequenza atteso. Un altro segmento è in attesa di trasmissione dell ACK. Invia immediatamente un singolo ACK cumulativo, riscontrando entrambi i segmenti ordinati. Arrivo non ordinato di un segmento con numero di sequenza superiore a quello atteso. Viene rilevato un buco. Invia immediatamente un ACK duplicato, indicando il numero di sequenza del prossimo byte atteso. Arrivo di un segmento che colma parzialmente o completamente il buco. Invia immediatamente un ACK, ammesso che il segmento cominci all estremità inferiore del buco. 96

97 Trasferimento di Dati affidabile in TCP - Conclusioni Che tipo di strategia ARQ è quella attuata dal TCP e descritta dalle precedenti slides? Poiché ogni messaggio ACK(y) riscontra positivamente tutti i bytes ricevuti dalla destinazione con numero d ordine (y-1), il tipo di messaggio ACK impiegato dal TCP è cumulativo. L impiego di ACK cumulativi è tipico della strategia Go-back-N. D altra parte, mediante l impiego delle strategie di TimeOut e di Fast Retransmission, il TCP è in grado di ri-trasmettere singoli segmenti. La capacità di ritrasmettere singoli segmenti è tipica della strategia Selective Repeat (SR). In conclusione, la strategia ARQ attuata dal TCP è un ibrido delle strategie Go-back-N e Selective Repeat. 97

98 Il servizio di controllo di flusso in TCP 98

99 Controllo di Flusso in TCP Generalità (1/2) Consideriamo una connessione (canale logico) TCP da un processo sorgente P S (residente nel terminale sorgente H S ) ad un processo destinazione P D (residente nel terminale destinazione H D ). Abbiamo già visto che, all atto dell instaurazione della connessione, il TCP al lato destinazione alloca un buffer di ricezione per la memorizzazione temporanea dei segmenti ricevuti che non sono ancora stati passati al processo di destinazione. Indichiamo con RcvBuffer la dimensione (in byte) del buffer di ricezione allocato dal TCP alla destinazione al momento dell instaurazione della connessione in oggetto. 99

100 Controllo di Flusso in TCP Generalità (2/2) Lo scopo del servizio di Controllo di Flusso è quello di regolare (aumentare o diminuire) la velocità (byte/ sec) con cui lo Strato di Trasporto al lato sorgente immette byte nella connessione in modo da garantire che il numero di byte da memorizzare nel buffer di ricezione non superi mai il valore: RcvBuffer. Per implementare il suddetto servizio, il lato sorgente e il lato destinazione della connessione TCP mantengono e aggiornano una finestra di trasmissione e una finestra di ricezione, le dimensioni delle quali possono variare nel tempo, come di seguito specificheremo. 100

101 Controllo di Flusso in TCP Lato Destinazione (1/4) Per implementare il controllo di flusso, il lato Destinazione della connessione TCP mantiene e aggiorna le due seguenti variabili: o Last_Byte_Rcvd è il numero d ordine dell ultimo byte (ossia del byte più recente) che la destinazione ha ricevuto dalla connessione; o Last_Byte_Read - è il numero d ordine dell ultimo byte (ossia del byte più recente) che il processo destinazione ha prelevato (letto) dal buffer di ricezione; Ovviamente, affinchè il buffer di ricezione non trabocchi, deve sempre essere verificata la seguente condizione: (Last_Byte_Rcvd) (Last_Byte_Read) RcvBuffer 101

102 Controllo di Flusso in TCP Lato Destinazione (2/4) Sulla base dei valori correnti di: Last_Byte_Rcvd e di Last_Byte_Read, il TCP al Lato Destinazione effettua le seguenti 3 operazioni: i. Aggiorna la variabile: RcvWindow in accordo alla seguente relazione: RcvWindow := RcvBuffer [Last_Byte_Rcvd Last_Byte_Read] ovviamente, RcvWindow costituisce il numero di byte che sono ancora liberi nel buffer di ricezione (vedi la figura seguente). 102

103 Controllo di Flusso in TCP Lato Destinazione (3/4) 103

104 ii. Controllo di Flusso in TCP Lato Destinazione (4/4) Memorizza il valore della variabile: RcvWindow nel campo: ReceiveWindow di un nuovo segmento che il processo destinazione invierà al processo sorgente; iii. Invia il suddetto segmento al processo sorgente, così che il TCP operante al lato sorgente della connessione possa conoscere quanti byte sono correntemente liberi nel buffer di ricezione. 104

105 Controllo di Flusso in TCP Lato Sorgente (1/2) Per implementare il controllo di flusso, il TCP al lato sorgente mantiene e aggiorna le due seguenti variabili: o Last_Byte_Sent - è il numero d ordine dell ultimo byte (ossia del byte più recente) che la sorgente ha inviato nella connessione; o Last_Byte_Acked - è il numero d ordine dell ultimo byte (ossia del byte più recente) di cui la sorgente ha ricevuto un riscontro positivo da parte della destinazione. Quindi la differenza: (Last_Byte_Sent) (Last_Byte_Acked) Ha l ovvio significa di numero di byte che sono stati trasmessi dalla sorgente ma dei quali non ha ancora ricevuto alcun riscontro. 105

106 Controllo di Flusso in TCP Lato Sorgente (2/2) Nel momento in cui la sorgente riceve un nuovo segmento dalla destinazione, il TCP al lato sorgente effettua le seguenti operazioni: i. Estrae dal segmento ricevuto dalla destinazione il contenuto del campo: Receive Window (ossia, legge il valore di RcvWindow); ii. Aggiorna la variabile: Last_Byte_Sent (ossia, eventualmente trasmette un certo numero di byte) in modo che risulti in ogni caso soddisfatta la seguente relazione: Last_Byte_Sent Last_Byte_Acked + RcvWindow Sintanto che il TCP a lato sorgente garantisce il soddisfacimento della relazione precedente, il buffer di ricezione non subirà mai trabocchi. 106

107 Il servizio di Controllo di Congestione in TCP 107

108 Il Controllo di Congestione in TCP Generalità (1/3) Consideriamo una connessione (canale logico) TCP da un processo sorgente P S (residente nel terminale sorgente H S ) ad un processo destinazione P D (residente nel terminale destinazione H D ). Poiché la connessione P S P D impiega router e canali trasmissivi che possono essere contemporaneamente utilizzati da altre connessioni attive nella Rete Internet, può accadere che il numero totale di segmenti che ciascun router e canale trasmissivo deve inoltrare nell unità di tempo (traffico aggregato) sia più grande delle velocità di inoltro (switching speed) dei router e delle capacità dei canali trasmissivi. Quando ciò accade, la Rete è detta essere congestionata. 108

Reti di Telecomunicazione Lezione 8

Reti di Telecomunicazione Lezione 8 Reti di Telecomunicazione Lezione 8 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Livello di trasporto Programma della lezione relazione tra lo strato di trasporto e lo strato

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

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

Prova in itinere - Rete Internet (ing. Giovanni Neglia) Mercoledì 23 Maggio 2007, ore 15.00 Prova in itinere - Rete Internet (ing. Giovanni Neglia) Mercoledì 23 Maggio 2007, ore 15.00 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome:

Dettagli

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

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 7 Febbraio 2005, ore 15.00 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:

Dettagli

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

Reti di Telecomunicazioni Mobile IP Mobile IP Internet Internet Protocol header IPv4 router host indirizzi IP, DNS URL indirizzo di rete IP Analizziamo con sufficiente dettaglio il sistema denominato IP, usato per consentire a due computer mobili di spostarsi liberamente in altre reti pur mantenendo lo stesso indirizzo IP. In particolare,

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Parte II Lezione 5 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II Lezione 5 Giovedì 19-03-2015 1 Intensità del traffico e perdita dei pacchetti La componente

Dettagli

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008

Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008 Rete Internet Prova in Itinere Mercoledì 23 Aprile 2008 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome: Corso di laurea e anno: Matricola:

Dettagli

Reti di Calcolatori. Il software

Reti di Calcolatori. Il software Reti di Calcolatori Il software Lo Stack Protocollare Application: supporta le applicazioni che usano la rete; Transport: trasferimento dati tra host; Network: instradamento (routing) di datagram dalla

Dettagli

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

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:

Dettagli

Gestione della Connessione in TCP

Gestione della Connessione in TCP I semestre 03/04 Gestione della Connessione in TCP Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Riscontro e Ritrasmissione Per ogni segmento spedito la sorgente

Dettagli

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

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 2005, ore 15.00 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Lunedì 24 Gennaio 200, ore 1.00 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:

Dettagli

Reti di Telecomunicazione Lezione 6

Reti di Telecomunicazione Lezione 6 Reti di Telecomunicazione Lezione 6 Marco Benini Corso di Laurea in Informatica marco.benini@uninsubria.it Lo strato di applicazione protocolli Programma della lezione Applicazioni di rete client - server

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

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

UDP. Livello di Trasporto. Demultiplexing dei Messaggi. Esempio di Demultiplexing a.a. 2002/03 Livello di Trasporto UDP Descrive la comunicazione tra due dispositivi Fornisce un meccanismo per il trasferimento di dati tra sistemi terminali (end user) Prof. Vincenzo Auletta auletta@dia.unisa.it

Dettagli

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

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Venerdì 18 Febbraio 2005, ore 9.30 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Venerdì 18 Febbraio 2005, ore 9.30 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette. Cognome: Nome:

Dettagli

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

Corso di Sistemi di Elaborazione delle informazioni. Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella Corso di Sistemi di Elaborazione delle informazioni Reti di calcolatori 2 a lezione a.a. 2009/2010 Francesco Fontanella Una definizione di Rete Una moderna rete di calcolatori può essere definita come:

Dettagli

DA SA Type Data (IP, ARP, etc.) Padding FCS 6 6 2 0-1500 0-46 4

DA SA Type Data (IP, ARP, etc.) Padding FCS 6 6 2 0-1500 0-46 4 Esercizio Data la rete in figura, si assuma che i terminali T1-T12 e T13-T24 siano connessi tramite collegamenti di tipo UTP a due switch Fast Ethernet. Si assuma che le tabelle ARP di tutti i dispositivi

Dettagli

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

Comunicazione tra Computer. Protocolli. Astrazione di Sottosistema di Comunicazione. Modello di un Sottosistema di Comunicazione I semestre 04/05 Comunicazione tra Computer Protocolli Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Università degli studi di Salerno Laurea in Informatica 1

Dettagli

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

PARTE 1 richiami. SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) PARTE 1 richiami SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) Parte 1 Modulo 1: Stack TCP/IP TCP/IP Protocol Stack (standard de facto) Basato su 5 livelli invece che sui 7 dello stack ISO/OSI Application

Dettagli

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

J+... J+3 J+2 J+1 K+1 K+2 K+3 K+... Setup delle ConnessioniTCP Una connessione TCP viene instaurata con le seguenti fasi, che formano il Three-Way Handshake (perchè formato da almeno 3 pacchetti trasmessi): 1) il server si predispone ad

Dettagli

Capitolo 10 Lo Strato di Trasporto in Internet. Baccarelli, Cordeschi, Patriarca, Polli

Capitolo 10 Lo Strato di Trasporto in Internet. Baccarelli, Cordeschi, Patriarca, Polli Capitolo 10 Lo Strato di Trasporto in Internet 1 Sommario del capitolo Modelli di servizio per lo Strato di Trasporto Funzioni svolte dallo Strato di Trasporto: i. Rivelazione di errore ii. Multiplazione

Dettagli

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

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 2 Marzo 2005, ore 14.30 NB: alcune domande hanno risposta multipla: si richiede di identificare TUTTE le risposte corrette.

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

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

Dal protocollo IP ai livelli superiori

Dal protocollo IP ai livelli superiori Dal protocollo IP ai livelli superiori Prof. Enrico Terrone A. S: 2008/09 Protocollo IP Abbiamo visto che il protocollo IP opera al livello di rete definendo indirizzi a 32 bit detti indirizzi IP che permettono

Dettagli

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

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Martedì 15 Novembre 2005 Si svolga il compito su questi fogli. Nel caso di domande a risposta aperta, lo spazio lasciato sul foglio

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

Parte II: Reti di calcolatori Lezione 13

Parte II: Reti di calcolatori Lezione 13 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 13 Martedì 15-04-2014 1 Instaurazione della

Dettagli

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

Standard: OSi vs TCP/IP. Il livello di trasporto. TCP e UDP. TCP: Transmission Control Protocol. TCP: funzionalità Standard: OSi vs TCP/IP Application Presentation Session NFS XDR RPC Telnet, FTP SMTP, HTTP SNMP, DNS RTP,... Protocolli per la comunicazione tra applicativi: le raisons d etre della rete Transport TCP

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

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

MODELLO CLIENT/SERVER. Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it MODELLO CLIENT/SERVER Gianluca Daino Dipartimento di Ingegneria dell Informazione Università degli Studi di Siena daino@unisi.it POSSIBILI STRUTTURE DEL SISTEMA INFORMATIVO La struttura di un sistema informativo

Dettagli

Il livello trasporto Protocolli TCP e UDP

Il livello trasporto Protocolli TCP e UDP Il livello trasporto Protocolli TCP e UDP Standard: OSi vs TCP/IP Application Presentation Session NFS XDR RPC Telnet, FTP SMTP, HTTP SNMP, DNS RTP,... Protocolli per la comunicazione tra applicativi:

Dettagli

Informatica per la comunicazione" - lezione 8 -

Informatica per la comunicazione - lezione 8 - Informatica per la comunicazione - lezione 8 - I multipli 1 KB (kilo) = 1000 B 1 MB (mega) = 1 mln B 1 GB (giga) = 1 mld B 1 TB (tera) = 1000 mld B Codifica binaria dei numeri Numerazione con base 10:

Dettagli

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

Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 14 Settembre 2005, ore 9.00 Prova di Esame - Rete Internet (ing. Giovanni Neglia) Prova completa Mercoledì 14 Settembre 2005, ore 9.00 Alcune domande hanno risposta multipla: si richiede di identificare tutte le risposte corrette.

Dettagli

Livello di Trasporto

Livello di Trasporto Livello di Trasporto Introduzione Problemi e requisiti Livello di trasporto in Internet UDP -UserDatagramProtocol TCP - Transmission Control Protocol Meccanismo di ritrasmissione Controllo del flusso Three-way

Dettagli

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

CORSO DI RETI SSIS. Lezione n.2. 2 Novembre 2005 Laura Ricci CORSO DI RETI SSIS Lezione n.2. 2 Novembre 2005 Laura Ricci IL DOMAIN NAME SYSTEM (DNS) Indirizzi IP poco adatti per essere memorizzati da utenti umani è prevista la possibiltà di associare nomi simbolici

Dettagli

LIVELLO DATA LINK (DI LINEA)

LIVELLO DATA LINK (DI LINEA) LIVELLO DATA LINK (DI LINEA) 1 TRASMISSIONE 2 FRAMING 3 CONTROLLO DEGLI ERRORI 4 CONTROLLO DI FLUSSO 1 Asincrona 2 Sincrona 1 Orientata al byte 2 Orientata al bit 1 Codici correttori 2 Codici Rivelatori

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

Standard di comunicazione

Standard di comunicazione Standard di comunicazione Organizzato a livelli per ridurne la complessità e aumentarne la flessibilità il numero dei livelli e le loro funzionalità dipendono dal tipo di rete ogni livello formalizza un

Dettagli

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini.

A intervalli regolari ogni router manda la sua tabella a tutti i vicini, e riceve quelle dei vicini. Algoritmi di routing dinamici (pag.89) UdA2_L5 Nelle moderne reti si usano algoritmi dinamici, che si adattano automaticamente ai cambiamenti della rete. Questi algoritmi non sono eseguiti solo all'avvio

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

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI

TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI TECNOLOGIE E PROGETTAZIONE DI SISTEMI INFORMATICI E DI TELECOMUNICAZIONI Confronto tra ISO-OSI e TCP/IP, con approfondimento di quest ultimo e del livello di trasporto in cui agiscono i SOCKET. TCP/IP

Dettagli

IP Internet Protocol

IP Internet Protocol IP Internet Protocol Vittorio Maniezzo Università di Bologna Vittorio Maniezzo Università di Bologna 13 IP - 1/20 IP IP è un protocollo a datagrammi In spedizione: Riceve i dati dal livello trasporto e

Dettagli

ARCHITETTURA DI RETE FOLEGNANI ANDREA

ARCHITETTURA DI RETE FOLEGNANI ANDREA ARCHITETTURA DI RETE FOLEGNANI ANDREA INTRODUZIONE È denominata Architettura di rete un insieme di livelli e protocolli. Le reti sono organizzate gerarchicamente in livelli, ciascuno dei quali interagisce

Dettagli

Inizializzazione degli Host. BOOTP e DHCP

Inizializzazione degli Host. BOOTP e DHCP BOOTP e DHCP a.a. 2002/03 Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/~auletta/ Università degli studi di Salerno Laurea e Diploma in Informatica 1 Inizializzazione degli Host Un

Dettagli

Reti diverse: la soluzione nativa

Reti diverse: la soluzione nativa Reti diverse: la soluzione nativa Quando si deve trasmettere un messaggio attraverso reti diverse, per il mezzo fisico, per il protocollo di accesso o altro, a che livello si colloca la procedura di traduzione

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 rete in Internet Il protocollo

Dettagli

Dispositivi di rete. Ripetitori. Hub

Dispositivi di rete. Ripetitori. Hub Ripetitori Dispositivi di rete I ripetitori aumentano la distanza che può essere ragginta dai dispositivi Ethernet per trasmettere dati l'uno rispetto all'altro. Le distanze coperte dai cavi sono limitate

Dettagli

Internetworking TCP/IP: esercizi

Internetworking TCP/IP: esercizi Politecnico di Milano Facoltà di Ingegneria dell Informazione Fondamenti di Reti di Telecomunicazione prof. A. Capone Internetworking TCP/IP: esercizi 1 Esercizio 7.1 Si consideri la rete in figura dove

Dettagli

Livello di Rete. Gaia Maselli maselli@di.uniroma1.it

Livello di Rete. Gaia Maselli maselli@di.uniroma1.it Livello di Rete 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

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

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet )

SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) PARTE 2 SUITE PROTOCOLLI TCP/IP ( I protocolli di Internet ) Parte 2 Modulo 1: Stack TCP/IP TCP/IP Protocol Stack (standard de facto) Basato su 5 livelli invece che sui 7 dello stack ISO/OSI Application

Dettagli

I protocolli UDP e TCP

I protocolli UDP e TCP I protocolli UDP e TCP A.A. 2005/2006 Walter Cerroni Il livello di trasporto in Internet APP. APP. TCP UDP IP collegamento logico tra diversi processi applicativi collegamento logico tra diversi host IP

Dettagli

Protocolli di Comunicazione

Protocolli di Comunicazione Protocolli di Comunicazione La rete Internet si è sviluppata al di fuori dal modello ISO-OSI e presenta una struttura solo parzialmente aderente al modello OSI. L'architettura di rete Internet Protocol

Dettagli

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

Nelle reti di calcolatori, le porte (traduzione impropria del termine. port inglese, che in realtà significa porto) sono lo strumento I protocolli del livello di applicazione Porte Nelle reti di calcolatori, le porte (traduzione impropria del termine port inglese, che in realtà significa porto) sono lo strumento utilizzato per permettere

Dettagli

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

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

Dettagli

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it

Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Cenni di programmazione distribuita in C++ Mauro Piccolo piccolo@di.unito.it Socket Nei sistemi operativi moderni i servizi disponibili in rete si basano principalmente sul modello client/server. Tale

Dettagli

Prof. Ing. Maurizio Casoni Dipartimento di Ingegneria dell Informazione Università degli Studi di Modena e Reggio Emilia

Prof. Ing. Maurizio Casoni Dipartimento di Ingegneria dell Informazione Università degli Studi di Modena e Reggio Emilia Controllo di flusso in TCP Prof. Ing. Maurizio Casoni Dipartimento di Ingegneria dell Informazione Università degli Studi di Modena e Reggio Emilia Meccanismo a finestra La dimensione della finestra viene

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

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

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

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

Lo scenario: la definizione di Internet

Lo scenario: la definizione di Internet 1 Lo scenario: la definizione di Internet INTERNET E UN INSIEME DI RETI DI COMPUTER INTERCONNESSE TRA LORO SIA FISICAMENTE (LINEE DI COMUNICAZIONE) SIA LOGICAMENTE (PROTOCOLLI DI COMUNICAZIONE SPECIALIZZATI)

Dettagli

Introduzione alle applicazioni di rete

Introduzione alle applicazioni di rete Introduzione alle applicazioni di rete Definizioni base Modelli client-server e peer-to-peer Socket API Scelta del tipo di servizio Indirizzamento dei processi Identificazione di un servizio Concorrenza

Dettagli

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

Indirizzi Internet e. I livelli di trasporto delle informazioni. Comunicazione e naming in Internet Indirizzi Internet e Protocolli I livelli di trasporto delle informazioni Comunicazione e naming in Internet Tre nuovi standard Sistema di indirizzamento delle risorse (URL) Linguaggio HTML Protocollo

Dettagli

DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO

DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO Corso DOMOTICA ED EDIFICI INTELLIGENTI UNIVERSITA DI URBINO Docente: Ing. Luca Romanelli Mail: romanelli@baxsrl.com Networking NAT 1 Sommario L indirizzamento privato e pubblico I meccanismi di address

Dettagli

Soluzioni verifica 3 2009-10 parte 4

Soluzioni verifica 3 2009-10 parte 4 Soluzioni verifica 3 2009-10 parte 4 1 Si consideri una rete ethernet a mezzo condiviso, costituita da un unico dominio di collisione in cui vi sono tre segmenti (costituiti da cavi diversi di

Dettagli

3. Introduzione all'internetworking

3. Introduzione all'internetworking 3. Introduzione all'internetworking Abbiamo visto i dettagli di due reti di comunicazione: ma ce ne sono decine di tipo diverso! Occorre poter far comunicare calcolatori che si trovano su reti di tecnologia

Dettagli

Quanto sono i livelli OSI?

Quanto sono i livelli OSI? RETI DI CALCOLATORI Domande di riepilogo Prima Esercitazione Quanto sono i livelli OSI? Esistono 7 livelli OSI. 2 Sergio PORCU 1 Livello 1: Fisico Il livello fisico si occupa della trasmissione dei singoli

Dettagli

Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008

Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008 Progetto di RHS MicroAODV per Reti di Sensori A.A. 2007/2008 Si consideri una rete di sensori MicaZ con sistema operativo TinyOS, dove ogni nodo è identificato da un ID unico e dove è presente un solo

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

L architettura di TCP/IP

L architettura di TCP/IP L architettura di TCP/IP Mentre non esiste un accordo unanime su come descrivere il modello a strati di TCP/IP, è generalmente accettato il fatto che sia descritto da un numero di livelli inferiore ai

Dettagli

Allegato 3 Sistema per l interscambio dei dati (SID)

Allegato 3 Sistema per l interscambio dei dati (SID) Sistema per l interscambio dei dati (SID) Specifiche dell infrastruttura per la trasmissione delle Comunicazioni previste dall art. 11 comma 2 del decreto legge 6 dicembre 2011 n.201 Sommario Introduzione...

Dettagli

Laurea in INFORMATICA

Laurea in INFORMATICA Laurea in INFORMATICA INTERNET e RETI di CALCOLATORI A.A. 24/25 Capitolo MESSAGGI di ERRORE e di CONTROLLO alberto.polzonetti@unicam.it Internet Control Message Protocol Il protocollo è un servizio best

Dettagli

Progettare un Firewall

Progettare un Firewall Progettare un Firewall Danilo Demarchi danilo@cuneo.linux.it GLUG Cuneo Corso Sicurezza 2006 Concetti introduttivi Come pensare un Firewall Argomenti trattati I Gli strumenti del Firewall Gli strumenti

Dettagli

Esercizi Reti di TLC A Parte II. Indirizzamento IP. Esercizio 9.1. Esercizio 9.2. Luca Veltri

Esercizi Reti di TLC A Parte II. Indirizzamento IP. Esercizio 9.1. Esercizio 9.2. Luca Veltri Esercizi Reti di TLC A Parte II Indirizzamento IP Luca Veltri (mail.to: luca.veltri veltri@unipr.it) Corso di Reti di Telecomunicazione,, a.a. 2011/2012 http://www.tlc tlc.unipr.it/.it/veltri Esercizio

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca. Parte II Lezione 4 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Parte II Lezione 4 Giovedì 13-03-2014 1 Ritardi e perdite nelle reti a commutazione

Dettagli

Elementi di Informatica e Programmazione

Elementi di Informatica e Programmazione Elementi di Informatica e Programmazione Le Reti di Calcolatori (parte 2) Corsi di Laurea in: Ingegneria Civile Ingegneria per l Ambiente e il Territorio Università degli Studi di Brescia Docente: Daniela

Dettagli

12.5 UDP (User Datagram Protocol)

12.5 UDP (User Datagram Protocol) CAPITOLO 12. SUITE DI PROTOCOLLI TCP/IP 88 12.5 UDP (User Datagram Protocol) L UDP (User Datagram Protocol) é uno dei due protocolli del livello di trasporto. Come l IP, é un protocollo inaffidabile, che

Dettagli

Access Control List (I parte)

Access Control List (I parte) - Laboratorio di Servizi di Telecomunicazioni Access Control List (I parte) Indice Cosa sono le ACL? Interfacce Inbound & Outbound Wildcard mask Configurare una ACL standard ACL extended Named ACL Posizionamento

Dettagli

Elementi sull uso dei firewall

Elementi sull uso dei firewall Laboratorio di Reti di Calcolatori Elementi sull uso dei firewall Carlo Mastroianni Firewall Un firewall è una combinazione di hardware e software che protegge una sottorete dal resto di Internet Il firewall

Dettagli

Invio SMS. DM Board ICS Invio SMS

Invio SMS. DM Board ICS Invio SMS Invio SMS In questo programma proveremo ad inviare un SMS ad ogni pressione di uno dei 2 tasti della DM Board ICS. Per prima cosa creiamo un nuovo progetto premendo sul pulsante (Create new project): dove

Dettagli

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

Standard per Reti a Commutazione di Pacchetto Prof. Vincenzo Auletta Università degli studi di Salerno Laurea in Informatica I semestre 03/04 Standard per Reti a Commutazione di Pacchetto Prof. Vincenzo Auletta auletta@dia.unisa.it http://www.dia.unisa.it/professori/auletta/ Standard per Reti a Pacchetto Principali standard

Dettagli

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

Università degli Studi di Pisa Dipartimento di Informatica. NAT & Firewalls Università degli Studi di Pisa Dipartimento di Informatica NAT & Firewalls 1 NAT(NETWORK ADDRESS TRANSLATION) MOTIVAZIONI NAT(Network Address Translation) = Tecnica di filtraggio di pacchetti IP con sostituzione

Dettagli

GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1. Il Repeater 2. L Hub 2. Il Bridge 4. Lo Switch 4. Router 6

GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1. Il Repeater 2. L Hub 2. Il Bridge 4. Lo Switch 4. Router 6 GLI APPARATI PER L INTERCONNESSIONE DI RETI LOCALI 1 Il Repeater 2 L Hub 2 Il Bridge 4 Lo Switch 4 Router 6 Gli apparati per l interconnessione di reti locali Distinguiamo i seguenti tipi di apparati:

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 alle Reti Telematiche

Introduzione alle Reti Telematiche Introduzione alle Reti Telematiche Esercizi Copyright Gruppo Reti Politecnico di Torino INTROUZIONE ALLE RETI TELEMATICHE - 1 Copyright Quest opera è protetta dalla licenza Creative Commons Noerivs-NonCommercial.

Dettagli

RETI DI TELECOMUNICAZIONE

RETI DI TELECOMUNICAZIONE RETI DI TELECOMUNICAZIONE SISTEMI M/G/1 e M/D/1 Sistemi M/G/1 Nei sistemi M/G/1: i clienti arrivano secondo un processo di Poisson con parametro λ i tempi di servizio hanno una distribuzione generale della

Dettagli

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

Cos è. Protocollo TCP/IP e indirizzi IP. Cos è. Cos è Protocollo TCP/IP e indirizzi IP Il protocollo TCP/IP è alla base dei sistemi di trasmissione dati impiegati sulle reti locali e su Internet. Nato nel Gennaio 1983 negli Stati Uniti come sistema di comunicazione

Dettagli

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine.

2.5. L'indirizzo IP identifica il computer di origine, il numero di porta invece identifica il processo di origine. ESERCIZIARIO Risposte ai quesiti: 2.1 Non sono necessarie modifiche. Il nuovo protocollo utilizzerà i servizi forniti da uno dei protocolli di livello trasporto. 2.2 Il server deve essere sempre in esecuzione

Dettagli

Il routing in Internet Exterior Gateway Protocols

Il routing in Internet Exterior Gateway Protocols Il routing in Internet Exterior Gateway Protocols A.A. 2005/2006 Walter Cerroni Exterior Gateway Protocols I protocolli di tipo EGP sono diversi da quelli di tipo IGP All interno di un AS si persegue l

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

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

Reti LAN. IZ3MEZ Francesco Canova www.iz3mez.it francesco@iz3mez.it

Reti LAN. IZ3MEZ Francesco Canova www.iz3mez.it francesco@iz3mez.it Reti LAN IZ3MEZ Francesco Canova www.iz3mez.it francesco@iz3mez.it Le LAN Una LAN è un sistema di comunicazione che permette ad apparecchiature indipendenti di comunicare fra loro entro un area limitata

Dettagli

Reti di Calcolatori. Lezione 2

Reti di Calcolatori. Lezione 2 Reti di Calcolatori Lezione 2 Una definizione di Rete Una moderna rete di calcolatori può essere definita come: UN INSIEME INTERCONNESSO DI CALCOLATORI AUTONOMI Tipi di Rete Le reti vengono classificate

Dettagli

Corsi di Reti di Calcolatori (Docente Luca Becchetti)

Corsi di Reti di Calcolatori (Docente Luca Becchetti) Corsi di Reti di Calcolatori (Docente Luca Becchetti) NOT : le soluzioni proposte sono volutamente sintetiche. Lo studente dovrebbe fare uno sforzo per risolvere i quesiti in modo autonomo, espandendo

Dettagli

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam.

INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 DHCP Dynamic Host Configuration Protocol Fausto Marcantoni fausto.marcantoni@unicam. Laurea in INFORMATICA INTERNET e RETI di CALCOLATORI A.A. 2011/2012 Capitolo 4 Dynamic Host Configuration Protocol fausto.marcantoni@unicam.it Prima di iniziare... Gli indirizzi IP privati possono essere

Dettagli

RoutingInternet Protocol. Algoritmi di instradamento di tipo Distance vector

RoutingInternet Protocol. Algoritmi di instradamento di tipo Distance vector RoutingInternet Protocol Algoritmi di instradamento di tipo Distance vector Algoritmi di instradamento del tipo Distance Vector Gli algoritmi di instradamento basati sul Distance Vector(o algoritmo di

Dettagli

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

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15. Pietro Frasca. Parte II Lezione 1 Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2014-15 Parte II Lezione 1 Giovedì 5-03-2015 TESTO DI RIFERIMENTO RETI DI CALCOLATORI E INTERNET un

Dettagli

Il VoIP nel mondo di Internet e l evoluzione del carrier telefonico. Relatore: Ing. Carrera Marco - Audit Technical Manager Switchward

Il VoIP nel mondo di Internet e l evoluzione del carrier telefonico. Relatore: Ing. Carrera Marco - Audit Technical Manager Switchward Il VoIP nel mondo di Internet e l evoluzione del carrier telefonico. Relatore: Ing. Carrera Marco - Audit Technical Manager Switchward Sommario 1) L evoluzione della comunicazione: dalla rete PSTN alla

Dettagli

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

Livello trasporto: TCP / UDP. Vittorio Maniezzo Università di Bologna. Vittorio Maniezzo Università di Bologna 14 TCP/UDP - 1/35. Livello trasporto: TCP / UDP Vittorio Maniezzo Università di Bologna Vittorio Maniezzo Università di Bologna 14 TCP/UDP - 1/35 TCP e UDP Internet Protocol (IP) fornisce un servizio non affidabile di trasmissione

Dettagli