Alma Mater Studiorum – Università di Bologna Facoltà di Scienze Matematiche Fisiche e Naturali Corso di laurea in Scienze dell’Informazione TCP E APPLICAZIONI IN AMBIENTE WIRELESS Sistemi e Applicazioni Multimediali Claudio Enrico Palazzi [email protected] 27 aprile 2004 Internet e wireless 1/2 • Situazione attuale: – Crescita del traffico di Internet e della sua importanza nel quotidiano – Aumento esponenziale nell’utilizzo di dispositivi mobili (computer portatili, telefoni cellulari, PDA, …) – Incremento nell’utilizzo delle connessioni wireless in generale (Hot Spots, Satelliti, …) Last Hop GEO Satellite Internet Sat UAV + proxy 802.11 Ad Hoc Urban Environment Gateway Internet e wireless 2/2 • Prospettiva futura: – Interazione tra mobile e Internet sempre più frequente: comunicazioni a voce e a video su IP biblioteche virtuali conference calling indipendenti da luogo e da operatori telelavoro giochi on line video e musica on-demand supporto al traffico (navigazione e info su congestione vie) reperimento di informazioni “location-based” SOMMARIO I. II. Principali funzioni del TCP Problematiche proprie di un ambiente wireless con particolare attenzione a quelle correlate con il TCP III. Tipologia di soluzioni proposte ed esempi (Snoop Protocol, TCP Westwood) IV. Un applicazione pratica per lo streaming video. Collocazione di TCP OSI - ISO Internet Applicazione Presentazione Applicazione Sessione Trasporto Trasporto - TCP Rete Rete Collegamento Fisico Collegamento Caratteristiche e funzionalità di TCP • • • • Affidabilità della trasmissione Rilascio ordinato dei pacchetti (segmenti) al livello superiore Semantica End-to-End della connessione Controllo del flusso: – Ack cumulativi – Sliding window • Controllo della congestione: – Scadenza di timeout o ricezione di 3 DUPACK: perdita di pacchetto • Perdite dovute a congestione • Riduzione della finestra di invio TCP: Controllo della Congestione Contesto Wireless GEO Satellite Sat UAV + proxy 802.11 Urban Environment Gatew ay Last Hop Ad Hoc Internet Diagramma interazione TCP-Wireless Bandwidth Latenza Pacch. Disconn. BER Bandwidth Incapac. Errori Latenza elevata piccoli: handoff e elevato variabile bassa distinz. in burst variab. framm. fading errore – congest. Diffic. stima RTT-RTO Perdita di tanti pacchetti Timeout a sproposito Restringimento finestra di invio Ritrasmiss. ridondanti Spreco di Bandwidth Spreco di tempo Legenda: Data Rate basso Caratteristica Caratteristica Problema wireless TCP conseguente Spreco di Energia Tassonomia delle soluzioni (livello di trasporto) • Divisione della connessione: – Ritrasmissioni locali – Tempestività nell’intervenire sul tratto wireless – TCP specifico sul wireless • End-to-End puro: – Nuovo protocollo di trasporto – Mittente consapevole del tratto wireless – Rispetto del paradigma End-to-End Protocolli di trasporto TCP tradizionali: • • • • TCP Reno TCP New Reno TCP Vegas TCP Sack Divisione della connessione: • I-TCP • M-TCP • Snoop Protocol End-to-End puri: • • • • • • • Delayed Dupacks TCP-Aware Freeze-TCP TCP Probing WTCP Fast TCP TCP Westwood Snoop Protocol (Balakrishnan et al., 1995) • Ideato per combattere le conseguenze dei BER elevati • Implementa nella base station uno Snoop Agent: – Monitoraggio di tutti i pacchetti in transito in entrambe le direzioni – Memorizzazione dei pacchetti non ancora confermati da ack in una cache presente nella base station: • Ritrasmissioni locali dei dati persi e filtraggio dei dupack allo scopo di evitare che il mittente invochi meccanismi per il controllo della congestione. TCP modificato Internet Base Station (Snoop Agent) Snoop Protocol – Esempio (1/9) 15 20 16 17 19 18 18 17 14 Legenda: dati in cache 16 perso ack dupack 16 Snoop Protocol – Esempio (2/9) 15 16 21 17 20 18 19 14 Legenda: dati 19 18 16 16 in cache perso ack dupack Snoop Protocol – Esempio (3/9) 17 18 19 20 22 21 20 19 16 18 16 14 Legenda: dati in cache perso ack dupack 16 Snoop Protocol – Esempio (4/9) 17 20 18 19 21 19 23 22 21 16 Legenda: dati 20 16 in cache perso 18 16 ack dupack 16 Snoop Protocol – Esempio (5/9) 17 20 21 18 19 22 20 19 Ritrasmissione 24 23 17 21 16 18 16 16 16 Legenda: dati in cache Dupack scartati da BS perso ack dupack 16 Snoop Protocol – Esempio (6/9) 20 21 17 18 22 23 19 21 20 19 25 24 22 17 16 16 Legenda: dati 16 in cache 18 16 Dupack scartati da BS perso ack dupack 16 Snoop Protocol – Esempio (8/9) 25 20 21 27 17 18 19 22 23 24 26 24 23 21 21 Niente Fast Retransmit 16 Legenda: dati 16 16 16 in cache Dupack scartati da BS perso ack dupack Snoop Protocol – Esempio (7/9) 20 21 17 18 19 17 22 23 24 21 20 19 26 25 23 22 16 18 21 Niente Fast Retransmit 16 Legenda: dati 16 16 in cache Dupack scartati da BS perso ack dupack 16 Snoop Protocol – Esempio (9/9) 25 26 22 28 27 23 24 25 24 21 Legenda: dati in cache 23 perso ack dupack 21 Snoop Protocol: Pro & Cons • Vantaggi: – Preserva la semantica End-to-End – Effettua recupero locale (e tempestivo) delle perdite – Affronta BER elevati • Svantaggi: – Richiede RTT brevi sul tratto wireless – Non gestisce adeguatamente le lunghe disconnessioni – Non utilizzabile subito dopo un handoff (assenza di pacchetti nella nuova cache) TCP Westwood (Mascolo et al., 2001) • Utilizzo di meccanismi puramente End-to-End • Controllo del flusso basato sulla stima della bandwidth disponibile (BWE): – Monitoraggio della frequenza di arrivo degli ack al mittente – Utilizzo di BWE per impostare cwnd e ssthresh: Arrivo di tre dupack: Scadenza di timeout: • ssthresh=BWE*RTTmin • ssthresh=BWE*RTTmin anziché TCP Reno: Ssthresh = cwnd/2 anziché TCP Reno: Ssthresh = cwnd/2 • se(cwnd > ssthresh) allora cwnd=ssthresh • cwnd = 1 TCP Westwood (1/3) dk (bit ricevuti nell’intervallo) tk-1 tk tk+1 • La prima (e piu’ semplice) versione di TCPW utilizzava uno stimatore di bandwidth (BWE) dato da: bk d k /(t k t k 1 ) campione bk bk 1 filtro BWE k k BWE k 1 1 k esponenziale 2 2 t k k 2 t k guadagno del filtro TCP Westwood (2/3) dk-1 dk tk (intervallo di campionamento) T • Stima della bandwidth ottenuta per aggregazione dei dati ricevuti durante l’intervallo T. bk dj t j tk T campione T bk bk 1 filtro RE k k RE k 1 1 k 2 esponenziale k 2 t k 2 t k guadagno del filtro TCP Westwood (3/3) • La dimensione dell’intervallo di campionamento viene continuamente adattato seguendo il livello di congestione misurato Tk adattamento continuo senza congestione: Tk = inter ACK (risulta una stima piu’ aggressiva) Tk RTT * ( Throughput massimo, assumendo che non vi sia congestione nel collegamento Tk con congestione: Tk cresce (risulta una stima piu’ prudente) cwin cwin Thˆk ) / RTT min RTT min Throughput corrente reale TCP Westwood (ssthresh a confronto) cwnd capacità del canale TCP Westwood TCP Reno ssthresh = BWE * RTTmin guadagno ssthresh media TCP Reno Perdite casuali tempo TCP Westwood: Pro & Cons • Vantaggi: – Stima della bandwidth al mittente per impostare la ssthresh e la cwnd che gli permette throughput elevati – Modifiche del codice richieste solo al mittente – Fair & Friendly • Svantaggi: – Stima della bandwidth falsata in collegamenti asimmetrici – Assenza di meccanismi specifici per gestire disconnessioni – Scarse prestazioni su pipe piccole – Prestazioni al variare delle dimensioni dei buffer? Analisi attraverso un modello di confronto • Problematiche NON prestazionali: – – – – – – – – • Problematiche prestazionali: – Gest. disconness. – Limitaz. spreco tempo – Gest. BER elevato – Discriminaz perdite – Finestra invio non eccesivam. ridotta – Limitaz. difficoltà calcolo RTT e RTO – Limitaz. ridondanze Ricevente inalterato Mittente inalterato Nodi inalterati Traffico criptato Semantica E2E Risparmio energia Collegam. asimmet. Fair & Friendly Legenda: Snoop Westwood Approcci per il controllo del flusso • RAP (Rate Adaptation Protocol) somiglianza con TCP (meccanismo AIMD); adattamento del video trasmesso • SR-RTP (Selective Retransmission-RTP) Ritrasmette solo alcuni tipi di pacchetti che trasportano informazioni chiave • SCTP (Stream Control Transmission Protocol) somiglianza con TCP; multistream; • TFRC (TCP-Friendly Rate Control) somiglianza con TCP tramite equazioni; Limitazioni: – Il meccanismo AIMD (Additional Increase Multiplicative Decrease) provoca oscillazioni nella frequenza di trasmissione – Scarsa utilizzazione della bandwidth disponibile in presenza di errori random Caratteristiche MPEG-4 Compressione realizzata grazie alla compresenza di frame di diverso tipo (per importanza e dimensioni): • Intra-coded frames (I-frames) sono codificati indipendentemente dagli altri frame; fungono da frame di riferimento. • Predicted frames (P-frames) dipendono dal frame che li precede (I o P); contengono dati di movimento immagine e informazioni su errori. • Bi-directionally predicted frames (B-frames) dipendono sia dal frame precedente e sia da quello succesivo. VTP: Video Transport Protocol Caratteristiche principali: • Stima della bandwidth utilizzata per adattare il flusso video • Utilizzo dei livelli di compressione disponibili in MPEG-4 allo scopo di selezionare la qualita’ video piu’ appropriata per la trasmissione • Mantenimento di un frame rate costante in modo da preservare la qualita’ percepita del video • Equo utilizzo del canale con TCP preservato Stima della Bandwidth • Il ricevente stima la Bandwidth disponibile • Tecnica di stima della Bandwidth ispirata al meccanismo di TCP Westwood): Bi=()Bi-1+(1-)(bi+bi-1)/2 Bi: stima della bandwidth bi: bandwidth sample (bits_nel_pacchetto/ intervallo tra arrivo di pacchetti) : coefficiente modificabile • Il ricevente retro-invia al mittente la stima della bandwidth periodicamente (almeno ogni RTT) Algoritmo VTP • Copie multiple dello stream video con diversi livelli di quantizzazione (compressione) sono disponibili sul server • Lato mittente: se la stima della bandwidth comunicata dal ricevente e’ maggiore o uguale alla frequenza di invio, allora incrementa gradualmente (un pacchetto per RTT) la frequenza di invio (probing phase) • Quando la stima della bandwidth e’ sufficiente da supportare il livello di quantizzazione successivo, utilizza lo stream video con un livello di qualita’ superiore e maggiore bitrate. • Se la stima della bandwidth ricade sotto la frequenza di invio corrente, utilizza un livello di quantizzazione inferiore Cambiameto di rate e codifica DR = Stato di Decremento IR = Stato di Incremento Q1, Q2, Q3: Stati di codifica MPEG Esempio: supponiamo di trovarci in Q1 Se la stima della bandwidth eccede l’ultimo valore, andiamo da Q1 a IR1. Controlliamo se la bandwidth e’ sufficiente per supportare Q2. Se non lo e’, incrementiamo il rate e ritorniamo in Q1. Altrimenti, andiamo in Q2. VTP vs TFRC con errori VTP vs TFRC con perdite casuali – stessa traccia video per entrambi CONCLUSIONI • Integrazione di Internet con ambiente wireless: caratteristiche e problematiche • Analisi critica di soluzioni differenti • Esempio di applicazione derivata da una delle soluzioni proposte