Un. of Rome “La Sapienza”

Slides:



Advertisements
Presentazioni simili
SINTESI PUNTI SALIENTI Da shared bus a network on chip Concetto di nodo Standard commerciali shared bus: AMBA, Wishbone, CoreConnect Opzioni avanzate shared.
Advertisements

I protocolli TCP/UDP prof.: Alfio Lombardo.
Modello ISO/OSI Un metodo di studio Vallì Rossella Carando 2006 SIS.
4-1 Il Livello di Rete Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
I modelli di riferimento OSI e TCP/IP
5-1 ATM Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
Routing Crediti Parte delle slide seguenti sono adattate dalla versione originale di J.F Kurose and K.W. Ross (© All Rights Reserved)
La rete in dettaglio: rete esterna (edge): applicazioni e host
TIPOLOGIA DELLE VARIABILI SPERIMENTALI: Variabili nominali Variabili quantali Variabili semi-quantitative Variabili quantitative.
Trasporto affidabile (principi) Di fondamentale importanza negli strati applicativi, di trasporto e di collegamento! Le caratteristiche del canale determinano.
Il livello di trasporto
Reti di Calcolatori IL LIVELLO RETE.
Realizzato da Roberto Savino 3-1 Il livello di trasporto r Dobbiamo assumere di avere a che fare con un canale di comunicazione molto particolare 1. Inaffidabile.
I protocolli TCP/UDP prof.: Alfio Lombardo.
Introduzione al controllo derrore. Introduzione Quando dei dati vengono scambiati tra due host, può accadere che il segnale venga alterato. Il controllo.
Modulo 2 – U.D. 4 – Lez. 5 (parte I)
Laureando: Giuseppe BRUSCELLA
Connessioni wireless. introduzione Il primo standard fu creato nel 1995 dalla IEEE e fu attribuito il codice Le tecnologie utilizzate sono:  Raggi.
Livello di trasporto Protocolli TCP e UDP.
Reti di calcolatori e Sicurezza -- Transport Layer ---
MUSE Progetto di un servizio di audio streaming in reti wireless Progetto realizzato da: Leardini Francesco Mercati Alberto Morsiani Marco Bologna
UNIVERSITA’ DEGLI STUDI DI ROMA “TOR VERGATA”
MODELLI ANALITICI PER LA VALUTAZIONE DELLE PRESTAZIONI DI ARCHITETTURE DI COMMUTAZIONE SPN Ing. Michele Savi DEIS - Universita’di Bologna
Flusso e congestione TCP
Fast Retransmit. Fast Retransmit (1) Altri indizi di perdite oltre il timeout: possiamo interpretare il verificarsi di sequenze di 4 ACK per lo stesso.
Controllo timeout. Il modo più ovvio per individuare delle perdite è usare il timeout del timer di ritrasmissione. Timeout (1) Attenzione! Con valori.
Controllo di congestione avanzato. Controllo della congestione TCP Prima del 1988, solo controllo del flusso! TCP Tahoe 1988 − TCP con Slow Start, Congestion.
TCP E APPLICAZIONI IN AMBIENTE WIRELESS Claudio Enrico Alma Mater Studiorum – Università di Bologna 27 aprile 2004 Facoltà.
Sistemi e Tecnologie della Comunicazione
1 Sistemi e Tecnologie della Comunicazione Lezione 12: data link layer: controllo di flusso, protocolli stop-and-wait e sliding window.
II PROVA Svolgimento tramite protocollo ISO/OSI. I LIVELLO : LIVELLO FISICO Scelta del mezzo fisico; tenere conto degli standard IEEE Procedura di codifica.
Raccogliere informazioni ALCUNE DOMANDE FONDAMENTALI È stato modificato qualche componente HW o SW? Il sintomo si presenta regolarmente o ad intermittenza?
MUSE BT - CLIENT Music Everywhere BlueTooth progetto Client Acquaviva Luca Reti di Calcolatori LS AA
PRIN NAPOLI Enzo Capone, Gianpaolo Carlino, Alessandra Doria, Rosario Esposito, Leonardo Merola, Silvio Pardi, Arturo Sanchez Pineda.
† Department of Computer Science – University of Rome “Sapienza” – Italy TCP over wireless Alcune note Un. of Rome “La Sapienza” Chiara Petrioli †
Università degli Studi - “ G. d'Annunzio ” Chieti - Pescara FACOLTÀ DI ECONOMIA Corso di laurea in Economia Informatica/s Seminario di: Giovanni Placentino.
Alma Mater Studiorum - Università di Bologna Facoltà di Scienze Matematiche Fisiche e Naturali Dipartimento di Scienze dell’Informazione Supporto al multihoming.
Ing. L. A. Grieco DEE – Telematics Lab. 1 Protocolli UDP e TCP – Telematica I – - I Facoltà di Ingegneria – CdL in Ingegneria Informatica.
Architetture p2p di supporto a servizi VoIP su dispositivi mobili Relatore: Dott. Vittorio Ghini Presentanta da : Renzi Federica Matr
NAT, Firewall, Proxy Processi applicativi.
modulo 5 Prof. Salvatore Rosta
TCP/IP.
Livelli ISO/OSI Docente: Marco Sechi Modulo 1.
Capitolo 3 Livello Trasporto
Reti di comunicazione Appunti.
TCP/IP. Sommario  Introduzione al TCP/IP  Indirizzi IP  Subnet Mask  Frame IP  Meccanismi di comunicazione tra reti diverse  Classi di indirizzi.
Algoritmi di stima con perdita di pacchetti in reti di sensori wireless: modellizzazione a catene di Markov, stima e stima distribuita Chiara Brighenti,
Protocollo di locking a due fasi stretto
FOOT Pixel tracker daq view.
Reti di comunicazione Appunti.
Progetto di Strutture SLE IN TRAVI DI C.A. Dipartimento di Ingegneria
Event dissemination over wide-area networks exploiting Network Coding and distributed gossip-based recovery: a mathematical model and some results Roberto.
PROGRAMMAZIONE BASH – ISTRUZIONE IF
modulo 6 Prof. Salvatore Rosta
analizzatore di protocollo
Sistemi e Tecnologie della Comunicazione
ONDE ELETTROMAGNETICHE E ANTENNE
La Grammatica Italiana Avanti! p
Transmission Control Protocol: TCP
Concetti introduttivi
Ricorsione 16/01/2019 package.
Scambio dati integrazione Specifiche DATEX II
L’architettura a strati
Corso base per Operatori di Protezione Civile
Progettazione concettuale
Laboratorio II, modulo “Skype”.
Il Livello di Trasporto
Ricerca 01/08/2019 package.
RETI.
Corso di programmazione, Simulazione, ROOT, code, ecc. ecc.
Transcript della presentazione:

Un. of Rome “La Sapienza” TCP over wireless Sistemi Wireless, a.a 2009/2010 Un. of Rome “La Sapienza” Chiara Petrioli† †Department of Computer Science – University of Rome “Sapienza” – Italy

TCP- Window based flow control Protocollo basato su sliding window L’ampiezza della finestra è data dal valore minimo tra receiver’s advertised window – determinata dal receiver in base allo spazio disponibile nel buffer congestion window – determinata dal sender, in base al feedback dalla rete 2 3 4 5 6 7 8 9 10 11 13 1 12 Sender’s window Acks received Not transmitted

Window based flow control TCP window flow control è “self-clocking” Nuovi dati vengono inviati quando quelli inviati sono stati ricevuti (ack) Mantiene “equilibrio” 2 3 4 5 6 7 8 9 10 11 13 1 12 Sender’s window Ack 5

Meccanismi del TCP Slow start Congestion avoidance Fast retransmit Fast recovery

CongestionWindow = CongestionWindow +1 Slow start Sorgente Destinazione CongestionWindow = 1 Dati CongestionWindow = 2 ACK CongestionWindow = 4 CongestionWindow = 8 CongestionWindow = CongestionWindow +1 All’arrivo di ogni ACK

Congestion avoidance ADDITIVE INCREASE Sorgente Destinazione Dati ACK CongestionWindow = 1 Dati CongestionWindow = 2 ACK CongestionWindow = 3 CongestionWindow = 4 Incremento lineare

Slow start + Congestion Avoidance 14 Congestion avoidance 12 10 8 Slow start threshold Congestion Window size (segmenti) 6 Slow start 4 2 1 2 3 4 5 6 7 8 Tempo

Congestion control - timeout Congestion Window Additive increase multiplicative decrease threshold = max (CW/2, 2) CW = 1 slow start fino alla threshold Timeout Additive Increase Slow Start CongestionThreshold Tempo CongestionThreshold = Max(CongestionWindow/2,2)

Fast retransmit (ack duplicati) Sorgente Destinazione Pacchetto 1 Pacchetto 2 Pacchetto 3 Pacchetto 4 Pacchetto 5 Pacchetto 6 ACK 1 ACK 2 3 ACK Duplicati Ritrasmissione Pacchetto 3 ACK Cumulativo ACK 6 Fast retransmit non aspetta lo scadere del timeout Attivo quando la sorgente riceve multipli (>= 3) ack duplicati (prima del timeout)

Timeout VS Fast retransmit Differente dal timeout : slow start segue timeout timeout -> pacchetti non arrivano più a destinazione fast retransmit -> un pacchetto viene perso, ma i successivi arrivano a destinazione Non c’è necessità di eseguire slow start, perchè si è persa una piccola quantità di pacchetti Fast retransmit in genere è seguita dalla fase di Fast recovery

Congestion window dimezzata Fast Recovery ssthresh = cwnd/2 cwnd = ssthresh + number of dupacks Ritrasmette il pacchetto perso (fast retransmit) e attende l’ack Quando riceve un nuovo ack (non di un pacchetto ritrasmesso) : cwnd = ssthreh esegue congestion avoidance Congestion window dimezzata

Fast recovery tempo Congestion Window Stato di Congestione Leggera: la rete è congestionata, ma alcuni pacchetti arrivano a destinazione. Con 3 DUPACK viene rilevata la perdita del pacchetto, si effettua il Fast Retransmit e si entra nella fase di Fast Recovery.

Livello di trasporto in ambito wireless La soluzione naturale sarebbe usare TCP Tuttavia sorgono dei problemi TCP assume che quando si verifica un time-out o si perdono pacchetti è per via di congestione nei router della rete Assume link affidabili (tipici dei link fissi) In ambito wireless perdita di pacchetti o time-out possono anche essere dovuti a errori nella ricezione dei pacchetti (e.g. per fenomeni di fading) collisioni mobilità dei nodi che porta a temporanee disconnessioni In questo diverso scenario è opportuno diminuire fortemente il trasmission rate quando avviene una perdita? Banda trasmissiva risorse preziosa, vorremmo usarla il piu’ possibile senza congestionare la rete non opportuno se loss sporadici Eterogeneità dei link wireless può portare a soluzioni diverse Satellite, reti cellulare o basate su AP (access Point), Reti Ad Hoc

Vari approcci Problemi legati alla comunicazione sul canale radio possono essere risolti a livello link layer Es. FEC, ARQ Problema: mancanza di sinergia tra livello di trasporto e link-layer es. introduzione di ritardi per risolvere a livello link layer collissioni e perdita di pacchetti potrebbe far scattare time-out Approcci che ‘separano’ la parte della connessione fino al punto di accesso alla rete fissa e la parte di connessione dall’AP all’utente fisso Non si mantiene end-to-end il protocollo Richiesto intervento da ‘nuove entità’ in rete Meccanismi proposti per distinguere tra perdita di pacchetti per congestione perdita da canale radio etc… diversi meccanismi di congestion control usati a seconda dei casi Questi approcci possono a loro volta essere completamente end-to-end oppure prevedere un livello di supporto dai router della rete Nel seguito vediamo delle soluzioni che fanno riferimento a quest’ultima categoria

Soluzione 1: ECN (explicit congestion notification) Fenomeni di congestione sono ben rappresentanti dal fatto che le code di alcuni dei router si caricano eccessivamente Drop tail scheme (usato da TCP): quando sono arrivata a riempire il buffer di coda scarto i pacchetti  dropping fornisce info usate da TCP Difetti dell’approccio standard: Puo’ caricare troppo comunque la rete, global synchronization Non controlla i queuing delays Unfairness (se ho un misto di pacchetti TCP e UDP l’effetto del congestion control di TCP ha effetto solo sui pacchetti TCP)

Random Early Discard (RED) Prevede che i pacchettipossano essere scartati con probabilità non nulla anche prima che la coda del nodo sia completamente riempita Stima la average queue size Droppa pacchetti con prob pb Riduce buffer overflow, fair (chi piu’ Produce traffico ha piu’ dropping) Da indicazione sul livello di congestione La stessa tecnica si puo’ usare per marcare i pacchetti in uscita con una Probabilità in modo da fornire una indicazione esplicita di congestione  ECN ECN: marca il pacchetto Con probabilità pb quando la dim della coda è tra minth e minth

ECN Quando riceve un pacchetto marcato il ricevitore setta un flag nell’acknowledgment che invia al sender, informandolo della congestione La ricezione di ACK con flag settato porta a effettuare congestion avoidance Coinvolge router e end host (e richiede modifiche) Router se un pacchetto è ECN capable e c’è congestione viene marcato altrimenti droppato secondo le regole di RED (se un pacchetto appartiene ad un flusso ECN capable è q.sa che nella fase di set up della connessione deve essere stabilita) End host: lo stack viene modificato Aggiunta di info nell’header TCP ECN-Echo flag (ECE) settato dal ricevitore nell’ACK per indicare presenza di congestione Congestion Window Reduced (CWR) flag settato dal sender per informare il ricevitore del fatto che la dimensione della finestra di congestione è stata modificata e si è risposto all’ECE ECN Echo flag viene settato negli ACK dal ricevitore fino a quando il ricevitore non riceve un pacchetto con CWR flag settato. Fast retransmit, fast recovery

Estensione di ECN per TCP over wireless Nel caso di ricezione di duplicate ACK si distingue tra i due casi 3 DUPACK contiene indicazione di congestione congestion avoidance 3 DUPACK senza indicazione di congestione approccio meno conservativo faster recovery la dimensione della finestra può essere diminuita ma non si effettua congestion avoidance (in modo da effettuare un incremento veloce della dimensione della finestra nel caso di perdita sporadica di pacchetti)

TCP Westwood Example of an end-to-end solution We want to fully maintain the end to end paradigm No change needed in the TCP/IP stack (apart from inclusion of the new protocol) and header, no collaboration and changes needed in network Improvement of TCP Reno for both wireless and wired networks with advantages expecially in wireless networks The idea is to discriminate the cause of packet loss (e.g., congestion, wireless channel) ‘Reno’ halves the congestion window after three duplicate ACKs ‘Westwood’ tries to estimate the available bandwidth, tuning the slow start threshold and congestion window accordingly (faster recovery)

TCP Westwood: how it works If I received an ACK at time tk, ACKING a data segment dk, this is an indication the available bandwidth is at least bk=dk/(tk-tk-1) We use a filter to estimate an average available bandwidth =Avg bandwidth(k) If ACKs have a fixed interarrival rate this maps to Avg bandwdith (k)= .9 Avg bandwith(k-1)+.1*(bk+bk-1/2) When tk-tk-1 increases the weight of the ‘old’ samples decreases Requires a sampling every t/2. If an ACK does not arrive within this timeframe it is assumed that bk=0 if no ACK arrives the avg bandwidth exponentially decreases

Challenges Duplicate ACK Delayed ACKs means an out of order packet has been received this segment should count for sake of bandwidth estimation Delayed ACKs an ACK is sent back for every in sequence received segment OR if a 200ms timeout expires after reception of the last segment How to we identify and deal with delayed ACKs?

Come si calcola il dk Si considerano i DUPACK PROCEDURE AckedCount cumul_ack=current_ack_SQN-last_ack_SQN if (cumul_ack==0) /*duplicate ACK*/ accounted_for=accounted_for+1; cumul_ack=1; endif if (cumul_ack >1) if (accounted_for >= cumul_ack) accounted_for = accounted_for – cumul_ack; cumul_ack=0; else if (accounted_for < cumul_ack) cumul_ack=cumul_ack-accounted_for; accounted_for=0; last_ack_SQNO=current_ack_SEQNO; acked=cumul_ack; return (acked); Si considerano i DUPACK Conta i segmenti non ACKed ma che Sono già stati considerati per la stima della banda Segmenti arrivati sono già stati considerati per la stima della banda Stima del dk

Congestion control in Westwood Caso duplicate ACKs if nDUPACKs received ssthreshold=(BWE*RTTmin)/seg_size; if (cwin >ssthresh) cwin=ssthresh; endif Normalizza per riportarsi in num segmenti Banda stimata Si setta la dimensione della finestra ad un valore Che dipende dalla stima della banda disponibile Ci si aspetta che in situazioni di non congestione si diminuisca di una entità minore la dimensione della finestra di congestione  Sei entra una fase di congestion avoidance

Congestion control in Westwood Caso timeout if course timeout expires ssthreshold=(BWE*RTTmin)/seg_size; if (ssthresh<2) ssthresh=2; endif cwin=1; Normalizza per riportarsi in num segmenti Banda stimata Si setta la dimensione della finestra ad 1 e si parte con Slow start ma si è meno conservativi/più accurati nel settare ssthresh