Sieci komputerowe Mechanizmy sterowania przebiegiem sesji TCP w Internecie

Podobne dokumenty
DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Transport. część 3: kontrola przeciążenia. Sieci komputerowe. Wykład 8. Marcin Bieńkowski

Transport. część 3: kontrola przeciążenia. Sieci komputerowe. Wykład 8. Marcin Bieńkowski

BADANIE SPRAWNOŚCI PROTOKOŁU TCP

Sieci komputerowe Warstwa transportowa

BADANIE SPRAWNOŚCI PROTOKOŁU TCP

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

Transport. część 1: niezawodny transport. Sieci komputerowe. Wykład 6. Marcin Bieńkowski

Transport. część 3: kontrola przeciążenia. Sieci komputerowe. Wykład 8. Marcin Bieńkowski

Odmiany protokołu TCP

Sieci komputerowe. -Sterownie przepływem w WŁD i w WT -WŁD: Sterowanie punkt-punkt p2p -WT: Sterowanie end-end e2e

Adam Domański. Instytut Informatyki Politechnika Śląska

Sieci komputerowe - Protokoły warstwy transportowej

Protokół TCP (RFC 793)

Przesyłania danych przez protokół TCP/IP

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Sieci Komputerowe Protokół TCP

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Protokoły sieciowe - TCP/IP

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Optymalizacja parametrów konfiguracyjnych protokołu TCP

Wydajność transmisji TCP w sieciach WAN

Sieci komputerowe. Protokoły warstwy transportowej. Wydział Inżynierii Metali i Informatyki Przemysłowej. dr inż. Andrzej Opaliński.

Zapewnianie bezbłędności transmisji steganograficznej (Blok tematyczny S2B: Jakość sieci i usług)

POŁĄCZENIE STEROWNIKÓW ASTRAADA ONE MIĘDZY SOBĄ Z WYKORZYSTANIEM PROTOKOŁU UDP. Sterowniki Astraada One wymieniają między sobą dane po UDP

TCP/IP formaty ramek, datagramów, pakietów...

Podstawowe protokoły transportowe stosowane w sieciach IP cz.2

Mikroprocesory i Mikrosterowniki Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

BSI wykład 3. Proxy, protokoły,

Modyfikacja algorytmów retransmisji protokołu TCP.

Model OSI. mgr inż. Krzysztof Szałajko

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący

Selektywne powtarzanie (SP)

Rys. 1. Wynik działania programu ping: n = 5, adres cyfrowy. Rys. 1a. Wynik działania programu ping: l = 64 Bajty, adres mnemoniczny

OSI Transport Layer. Network Fundamentals Chapter 4. Version Cisco Systems, Inc. All rights reserved. Cisco Public 1

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Protokoły wspomagające. Mikołaj Leszczuk


Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Sieci komputerowe w sterowaniu informacje ogólne, model TCP/IP, protokoły warstwy internetowej i sieciowej

Komunikacja w mikrokontrolerach. Magistrala szeregowa I2C / TWI Inter-Integrated Circuit Two Wire Interface

Selektywne powtarzanie (SP)

Sieci Komputerowe Modele warstwowe sieci

Podstawowe protokoły transportowe stosowane w sieciach IP cz.1

Dr Michał Tanaś(

Uniwersalny Konwerter Protokołów

WIZUALIZACJA WYBRANYCH ZAGADNIE TRANSMISJI TCP Z WYKORZYSTANIEM SYMULATORA NS-2

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

Sieci komputerowe 1 DSRG

Połączenie logiczne Zestawienie połączenia Zerwanie połączenia Niezawodne Np. TCP

Katedra Inżynierii Komputerowej Politechnika Częstochowska. Protokoły dostępu do medium bezprzewodowego I Laboratorium Sieci Bezprzewodowych

Warstwa transportowa. mgr inż. Krzysztof Szałajko

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

EWOLUCJA OKNA PRZECI ENIOWEGO PROTOKO U TCP

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

Protokół IP. III warstwa modelu OSI (sieciowa) Pakowanie i adresowanie przesyłanych danych RFC 791 Pakiet składa się z:

Sterowanie ruchem w sieciach szkieletowych

Sieci komputerowe - warstwa transportowa

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 13 Topologie sieci i urządzenia

Sieci komputerowe wykłady Protokoły TCP i UDP. Adresowanie komunikatów. Adresowanie komunikatów c.d. Porty protokołów. Porty protokołów c.d.

Warstwa transportowa. Warstwa transportowa. Enkapsulacja. Zapewnienie niezawodnego przesyłania danych /wg ISO/ Transmisja bezpołączeniowa

Internet Control Message Protocol (ICMP) Łukasz Trzciałkowski

Zarządzanie przepływem

= RD PRZEPUSTOWOŚCI. Dla lepszego zrozumienia zasad doboru szerokości okna wprowadzono współczynnik znormalizowanej przepustowości (S).

Programowanie Sieciowe 1

Towards Stability Analysis of Data Transport Mechanisms: a Fluid Model and an Application

(12) TŁUMACZENIE PATENTU EUROPEJSKIEGO (19) PL (11) PL/EP (96) Data i numer zgłoszenia patentu europejskiego:

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Sieci Komputerowe 2 / Ćwiczenia 1

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

ZAPOBIEGANIE PRZECIĄŻENIOM W SIECI IP POPRZEZ STEROWANIE SĄSIEDNIMI WĘZŁAMI

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Sieci komputerowe - Wstęp do intersieci, protokół IPv4

Adresy w sieciach komputerowych

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

Konfiguracja sieci, podstawy protokołów IP, TCP, UDP, rodzaje transmisji w sieciach teleinformatycznych

Sieci Komputerowe 2 / Ćwiczenia 2

Wydział Elektryczny. Katedra Automatyki i Elektroniki. Instrukcja. do ćwiczeń laboratoryjnych z przedmiotu: SYSTEMY CYFROWE 1.

Laboratorium podstaw telekomunikacji

Katedra Inżynierii Komputerowej Politechnika Częstochowska. Zastosowania protokołu ICMP Laboratorium podstaw sieci komputerowych

FAQ: /PL Data: 26/11/2008 Komunikacja w protokole MPI za pomocą Global Data (GD) pomiędzy sterownikami S7-300

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

MOBOT-RCR v2 miniaturowe moduły radiowe Bezprzewodowa transmisja UART

Sieci Komputerowe Mechanizmy kontroli błędów w sieciach

Marta Rybczyńska Nowy atak na systemy anonimowości

Rozproszony system zbierania danych.

Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Warstwa transportowa

TCP/IP. Warstwa łącza danych. mgr inż. Krzysztof Szałajko


MODEL OSI A INTERNET

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

Systemy kolejkowe z histerezą- wprowadzenie

Dr Michał Tanaś(

Sieci komputerowe. Wykład dr inż. Łukasz Graczykowski

Wojskowa Akademia Techniczna im. Jarosława Dąbrowskiego

Wprowadzenie do sieci komputerowych

Transkrypt:

Sieci komputerowe Mechanizmy sterowania przebiegiem sesji TCP w Internecie Józef Woźniak Katedra Teleinformatyki Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej Opracowano na podstawie materiałów Andrzej Chydziński, Instytut Informatyki, Politechnika Śląska Tadeusz Czachórski, IITiS PAN Wydział Automatyki, Elektroniki i Informatyki Politechnika Śląska

Tematyka Mechanizmy typu flow control w protokole TCP Współzależność tych mechanizmów z zasadami kolejkowania w routerach Idea i cele aktywnego zarządzania kolejkami (AQM Active Queue Management) RED przykład algorytmu AQM 2

Kontrola przeciążenia w Internecie kolejka FIFO-DT protokół TCP protokół TCP 3

Z jaką częstością wysyłamy pakiety? Kolejne etapy transmisji pakietu Przepustowość na danym etapie przekazu datagramu Generator ruchu

Klasyczna kontrola przepływu okna kontrolne zasady sterowania przepływem (flow control) w małej sieci Receiver Window ( rwnd ): znane pod nazwą advertised window (awnd) używane przez odbiorcę do informowania o ilości wolnego miejsca w buforze tcp. Time-out y (ocena RTT) i pakiety ACK

Dlaczego przesuwne okno? snd_wnd snd_una snd_nxt

Sliding Window Flow Control Ilustracja algorytmu Sliding Window na poziomie bajtów (1 segment = 1 bajt): Advertised window 1 2 3 4 5 6 7 8 9 10 11 sent and acknowledged sent but not acknowledged can be sent USABLE WINDOW can't sent Tutaj: Nadajnik może transmitować kolejne bajty o numerach 6,7,8.

Sliding Window: zmniejszenie wymiaru okna Transmisja bajtu 6 (with SeqNo = 6) i odbiór powiadomienia o bajcie 5 (AckNo = 5; tu: numer bajtu oczekiwanego, Win=4): 1 2 3 4 5 6 7 8 9 10 11 Transmit Byte 6 1 2 3 4 5 6 7 8 9 10 11 AckNo = 5, Win = 4 is received 1 2 3 4 5 6 7 8 9 10 11

Sliding Window: Poszerzenie okna Odebrane zostaje powiadomienie, które zwiększa rozmiar okna przesuwa okno na prawo (AckNo = 5, Win=6): 1 2 3 4 5 6 7 8 9 10 11 AckNo = 5, Win = 6 is received 1 2 3 4 5 6 7 8 9 10 11 Odbiornik otwiera poszerza okno, gdy bufor TCP opróżnia się (oznacza to dostarczenie danych do aplikacji).

Sliding Window: Zmniejszenie szerokości okna Odebrane zostaje powiadomienie, które ogranicza okno z prawej strony (AckNo = 5, Win=3): 1 2 3 4 5 6 7 8 9 10 11 AckNo = 5, Win = 3 is received 1 2 3 4 5 6 7 8 9 10 11 Zmniejszanie okna nie jest korzystne...

Zarządzanie oknem w TCP Odbiornik przesyła zwrotnie do nadajnika dwa parametry: AckNo window size (win) 32 bits 16 bits Jest to interpretowane w następujacy sposób: Jestem gotowy do odbioru danych o numerach: SeqNo= AckNo, AckNo+1,., AckNo+Win-1 Odbiornik może potwierdzić dane bez zmiany szerokości okna; Odbiornik może zmienić okno bez potwierdzania danych.

Sliding Window: Przykład Sender sends 2K of data 2K SeqNo=0 Receiver Buffer 0 4K Sender sends 2K of data Sender blocked AckNo=2048 Win=2048 2K SeqNo=2048 AckNo=4096 Win=0 AckNo=4096 Win=1024 2K 4K 3K

TCP - Kontrola przeciążenia Congestion Control

Kontrola przepływu okna kontrolne Receiver Window ( rwnd ): znane pod nazwą advertised window (awnd) używane przez odbiorcę do informowania o ilości wolnego miejsca w buforze tcp. Congestion Window (cwnd ): wartość zależna od stanu sieci ( tj. ilości wystąpień zatorów w sieci ). Sender Window ( snd_wnd ): snd_wnd = min( awnd, cwnd ) Time-out y (ocena RTT) i pakiety ACK

TCP - Kontrola przeciążenia TCP posiada mechanizm kontroli przeciążenia - implementowany po stronie nadawczej; Nadawca dysponuje dwoma parametrami: Congestion Window (cwnd) Slow-start threshhold Value (ssthresh) Początkowa wartość jest równa wartości advertised window; Kontrola przeciążenia działa w dwóch trybach: slow start (cwnd < ssthresh) congestion avoidance (cwnd >= ssthresh)

Slow Start Wartość początkowa: Set cwnd = 1» Uwaga:Jednostką jest segment. TCP bazuje na bajtach i mechanizm zwiększa okno o 1 MSS (maximum segment size) Odbiornik przesyła powiadomienia (ACK) dla każdego pakietu» Uwaga: Generalnie, odbiornik TCP przesyła powiadomienie ACK dla każdego segmentu. Każdorazowo, gdy ACK zostanie odebrane przez nadawcę, okno congestion window jest zwiększane o 1 segment: cwnd = cwnd + 1» Jeżeli nawet ACK potwierdza 2 segmenty, cwnd jest zwiększane tylko o 1 segment.» Nawet, gdy ACK potwierdza segment mniejszy niż 1MSS bajtów, to cwnd wzrasta o 1. Czy zatem okno Slow Start rośnie wolno? Niekoniecznie. W rzeczywistości wzrost cwnd jest eksponencjalny!

Slow Start - przykład Rozmiar congestion window wzrasta szybko Dla każdego ACK, zwiększamy cwnd o 1, bez względu na liczbę potwierdzanych segmentów. TCP spowalnia wzrost cwnd gdy cwnd > ssthresh cwnd = 1 cwnd = 2 cwnd = 4 cwnd = 7 segment 1 ACK for segment 1 segment 2 segment 3 ACK for segments 2 ACK for segments 3 segment 4 segment 5 segment 6 ACK for segments 4 ACK for segments 5 ACK for segments 6

Slow Start

Unikanie przeciążenia - Congestion Avoidance Faza congestion avoidance jest inicjowana, gdy cwnd osiąga, w przypadku slow-start, wartość progową, czyli: Jeżeli cwnd >= ssthresh wówczas każdorazowo gdy ACK jest odbierane, wartość cwnd zwiększana jest w sposób następujący: cwnd = cwnd + 1/ [cwnd] Gdzie [cwnd] jest największą liczbą całkowitą mniejszą niż cwnd. Tym samym cwnd wzrasta o 1 tylko wtedy, gdy wszystkie cwnd segmentów zostało potwierdzonych.

Cwnd (in segments) Slow Start i Congestion Assume that ssthresh = 8 Avoidance cwnd = 1 cwnd = 2 cwnd = 4 14 12 10 8 6 4 2 0 t=0 ssthresh t=2 t=4 Roundtrip times t=6 cwnd = 8 cwnd = 9 cwnd = 10

Congestion avoidance

Reakcje na przeciążenie Mechanizm TCP przyjmuje, że wystąpiło przeciążenie, gdy wykryje utratę pakietu Nadawca TCP może wykryć utratę pakietu poprzez: Timeout (upływ czasu) zegara retransmisji Odbiór duplikatu ACK TCP interpretuje Timeout jako binarny sygnał przeciążenia. W takim przypadku nadawca postępuje następująco: cwnd jest zmniejszane do wartości 1: cwnd = 1 ssthresh jest ustalana jako ½ aktualnej wartości cwnd: ssthressh = cwnd / 2 Inicjowany jest slow start

Kontrola przeciążenia TCP powolny start (slow start) i unikanie przeciążenia (congestion avoidence) Oparta na regulacji rozmiaru okna przeciążenia (W) Idea - zwiększaj okno przeciążenia aż do wystąpienia straty pakietu (w ten sposób sonduj dostępną szybkość transmisji). W powolny start straty unikanie przeciążenia W 1 W+1 4 W W 1 /2 2 1 23 RTT RTT czas

Fast Retransmit Jeżeli odebrane zostaną 3 lub więcej (pod rząd) duplikaty ACK nadawca TCP uważa, że segment został stracony. AckNo=1024 1K SeqNo=0 1K SeqNo=1024 1K SeqNo=2048 TCP realizuje wówczas (przed upływem timeout u) retransmisję brakującego segmentu. duplicate duplicate AckNo=1024 AckNo=1024 1K SeqNo=3072 Realizuje przy tym zwykle procedurę slow start: ssthresh = cwnd/2 cwnd = 1 1K 1K SeqNo=1024 SeqNo=4096

Procedura Fast recovery pozwala uniknąć realizacji slow start po zainicjowaniu fast retransmit Intuicja mówi: Duplikaty ACK wskazują, że dane są przesyłane!! Fast Recovery cwnd=12 sshtresh=5 cwnd=12 sshtresh=5 AckNo=1024 1K SeqNo=0 1K SeqNo=1024 1K SeqNo=2048 Po odbiorze 3 duplikatów ACK set nadawca realizuje: Retransmisję straconego packetu ssthresh = cwnd/2 cwnd = cwnd+3 Dalej stosuje congestion avoidance Zwiększając cwnd o 1 po odbiorze każdego kolejnego duplikatu ACK cwnd=12 sshtresh=5 cwnd=12 sshtresh=5 AckNo=1024 AckNo=1024 1K 1K 1K SeqNo=3072 SeqNo=1024 SeqNo=4096 Gdy napływa ACK potwierdzające nowe dane (tutaj: AckNo=2028), set: cwnd=ssthresh enter congestion avoidance cwnd=9 sshtresh=9 AckNo=2048

Pojedyncza utrata pakietu Utrata pakietu 14 Slow Start Retransmisja pakietu Congestion Avoidance 3 zduplikowane ACK cwnd cwnd = 2*mss = 4*mss cwnd = 1*mss cwnd = 2*mss cwnd = 1*mss 339 396 Fast Recovery & Fast Retransmission cwnd Congestion = ssthresh Avoidance ssthresh = cwnd/2 Retransmisja pakietu 3 zduplikowane ACK

cwnd cwnd TCP Tahoe and TCP Reno (dla pojedynczych strat segmentów) Taho time Reno time

Zduplikowane ACK: Fast retransmit TCP Reno Fast recovery Fast Recovery unikamy procedury slow start Timeout: Retransmit Slow Start TCP Reno poprawia wyraźnie TCP Tahoe, gdy pojedyncze pakiety są tracone w czasie RTT.

TCP Congestion Control TCP Tahoe (1988, FreeBSD 4.3 Tahoe) Slow Start Congestion Avoidance Fast Retransmit TCP Reno (1990, FreeBSD 4.3 Reno) Fast Recovery New Reno (1996) SACK (1996) RED (Floyd and Jacobson 1993)