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

Podobne dokumenty
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

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

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski

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

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski

Sieci komputerowe Warstwa transportowa

Sieci komputerowe Mechanizmy sterowania przebiegiem sesji TCP w Internecie

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

Przesyłania danych przez protokół TCP/IP

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

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

Wstęp. Sieci komputerowe. Wykład 1. Marcin Bieńkowski

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

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

Selektywne powtarzanie (SP)

Wstęp. Sieci komputerowe. Wykład 1. Marcin Bieńkowski

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

Protokoły sieciowe - TCP/IP

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

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

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

Routing. część 2: tworzenie tablic. Sieci komputerowe. Wykład 3. Marcin Bieńkowski

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

Warstwa transportowa. mgr inż. Krzysztof Szałajko

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Sieci komputerowe - Protokoły warstwy transportowej

Plan wykładu. Warstwa sieci. Po co adresacja w warstwie sieci? Warstwa sieci

Routing. część 2: tworzenie tablic. Sieci komputerowe. Wykład 3. Marcin Bieńkowski

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

Uproszczony opis obsługi ruchu w węźle IP. Trasa routingu. Warunek:

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

Protokoły wspomagające. Mikołaj Leszczuk

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

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

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

Modyfikacja algorytmów retransmisji protokołu TCP.

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

Zarządzanie infrastrukturą sieciową Modele funkcjonowania sieci

MODEL OSI A INTERNET

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

Zestaw ten opiera się na pakietach co oznacza, że dane podczas wysyłania są dzielone na niewielkie porcje. Wojciech Śleziak

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

Adresy w sieciach komputerowych

LABORATORIUM SYSTEMY I SIECI TELEKOMUNIKACYJNE CZĘŚĆ 2 MODELOWANIE SIECI Z WYKORZYSTANIEM SYMULATORA NCTUNS

Sieci komputerowe - administracja

Model OSI. mgr inż. Krzysztof Szałajko

Instytut Informatyki Uniwersytet Wrocławski. Dane w sieciach. (i inne historie) Marcin Bieńkowski

Routing. część 2: tworzenie tablic. Sieci komputerowe. Wykład 3. Marcin Bieńkowski

Laboratorium podstaw telekomunikacji

Sieci Komputerowe 2 / Ćwiczenia 2

Sieci komputerowe - podstawowe technologie. Plan wykładu. Piotr Kowalski KAiTI

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

Plan całości wykładu 3-1

Laboratorium 6.7.2: Śledzenie pakietów ICMP

Sieci Komputerowe 2 / Ćwiczenia 1

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

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

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

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Warstwy i funkcje modelu ISO/OSI

Klient-Serwer Komunikacja przy pomocy gniazd

Sieci Komputerowe Protokół TCP

Sieci komputerowe - warstwa transportowa

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

Warstwa sieciowa. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP. WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r.

PROTOKOŁY WARSTWY TRANSPORTOWEJ

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

Plan wykładu. Warstwa sieci. Po co adresacja w warstwie sieci? Warstwa sieci

LABORATORIUM SIECI KOMPUTEROWYCH (compnet.et.put.poznan.pl)

Sieci Komputerowe Modele warstwowe sieci

Uniwersalny Konwerter Protokołów

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

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

ZiMSK NAT, PAT, ACL 1

Aby lepiej zrozumieć działanie adresów przedstawmy uproszczony schemat pakietów IP podróżujących w sieci.

pasja-informatyki.pl

Unicast jeden nadawca i jeden odbiorca Broadcast jeden nadawca przesyła do wszystkich Multicast jeden nadawca i wielu (podzbiór wszystkich) odbiorców

Programowanie współbieżne i rozproszone

Architektura INTERNET

Colloquium 1, Grupa A

Niższe warstwy. Sieci komputerowe. Wykład 5. Marcin Bieńkowski

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

Sieci komputerowe - opis przedmiotu

Warstwa transportowa

Sieci komputerowe. Wykład 1: Podstawowe pojęcia i modele. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Dlaczego? Mało adresów IPv4. Wprowadzenie ulepszeń względem IPv4 NAT CIDR

Sterowanie ruchem w sieciach szkieletowych

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

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

PLAN Podstawowe pojęcia techniczne charakteryzujące dostęp do Internetu prędkość podłączenia opóźnienia straty Umowa SLA inne parametry dostępność

Niższe warstwy. Sieci komputerowe. Wykład 5. Marcin Bieńkowski

Laboratorium 6.7.1: Ping i Traceroute

BADANIE SPRAWNOŚCI PROTOKOŁU TCP

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Sieci komputerowe. Wykład 0: O czym jest ten przedmiot. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Protokół IPsec. Patryk Czarnik

Wojskowa Akademia Techniczna im. Jarosława Dąbrowskiego

Transkrypt:

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

Protokoły w Internecie warstwa aplikacji HTTP warstwa transportowa SMTP TCP warstwa sieciowa warstwa łącza danych warstwa fizyczna DNS NTP UDP IP Ethernet kable miedziane PPP 802.11 (WiFi) światłowód "2 DSL MPLS fale radiowe

Podsumowanie mechanizmów warstwy transportowej

Warstwa sieci = zawodna usługa przesyłania pakietów Tylko zasada dołożenia wszelkich starań (best effort) Pakiety mogą zostać: uszkodzone, zgubione, opóźnione, zamienione (kolejność), zduplikowane (przez wyższe lub niższe warstwy). "4

Podstawowe mechanizmy w warstwie transportowej Segmentacja: dzielimy przesyłany strumień danych na kawałki; dla uproszczenia będziemy wszystko liczyć w segmentach. Potwierdzenia (ACK): małe pakiety kontrolne potwierdzające otrzymanie danego segmentu. Timeout (przekroczenie czasu oczekiwania): jeśli nie otrzymamy potwierdzenia przez pewien czas (typowy dla łącza, np. 2 * RTT). Retransmisje: ponowne wysłanie danego segmentu w przypadku przekroczenia czasu oczekiwania. "5

Co umiemy już zapewniać? Niezawodny transport Mechanizmy ARQ (Automatic Repeat request) = wysyłanie do skutku Kontrola przepływu Nadawca powinien dostosowywać prędkość transmisji do szybkości z jaką odbiorca może przetwarzać dane. Jak? Najczęściej: okno przesuwne + potwierdzenia skumulowane. "6

Przypomnienie: przesuwne okno nadawcy LAR = Last ACK received 1 2 3 wysłane i potwierdzone 4 LAR + SWS 5 6 7 8 wysłane ale niepotwierdzone utrzymujemy dla nich licznik czasu 9 10 niewysłane Akcje: Otrzymanie ACK sprawdzamy, czy możemy przesunąć okno. Przesunięcie okna wysyłamy dodatkowe segmenty. Timeout dla (niepotwierdzonego) segmentu wysyłamy go ponownie. "7

Przypomnienie: okno odbiorcy, potwierdzanie skumulowane Wysyłanie ACK: Wysyłamy tylko jeśli otrzymamy segment S LFRead + RWS W razie potrzeby aktualizujemy LFRcvd (przesuwamy okno w prawo) a następnie wysyłamy ACK dla LFRcvd. "8

Przypomnienie: okno odbiorcy, potwierdzanie skumulowane LFRead + RWS LFRcvd (last frame received) 1 2 3 4 6 7 LFRead (last frame read) odebrane (i potwierdzone) ale nieprzeczytane przez aplikację odebrane, potwierdzone, przeczytane przez aplikację Wysyłanie ACK: Wysyłamy tylko jeśli otrzymamy segment S LFRead + RWS W razie potrzeby aktualizujemy LFRcvd (przesuwamy okno w prawo) a następnie wysyłamy ACK dla LFRcvd. "8

Przypomnienie: oferowane okno Odbiorca: Oferowane okno = wolne miejsce w buforze Oferowane okno wysyłane nadawcy (zazwyczaj razem z ACK). Np.: pakiety potwierdzane, ale aplikacja wolno czyta oferowane okno jest małe. 1 2 3 4 6 7 Nadawca: Zmienia SWS (rozmiar swojego okna) na rozmiar oferowanego okna. Nie wysyła danych, na które odbiorca nie ma miejsca. 1 2 3 4 5 6 "9 7 8 9 10

SWS a prędkość transmisji SWS = 1: większe SWS: dane dane ACK RTT dane ACK Dane wysyłane są ze średnią prędkością SWS / RTT. Okno mniejsze od BDP = przepustowość * RTT nadawca nie jest w stanie wykorzystać całego łącza. "10

Problem przeciążenia

Statystyczny multipleksing Różne strumienie danych przesyłane tym samym łączem. prze pust owoś ć R1 przepustowość R < R1 + R2 R2 ć ś o ow t s u p prze Założenie: różne komputery wykorzystują łącze w innych momentach lepsze wykorzystanie łącza. "12

Bufory bufor (kolejka wyjściowa) prze pust owoś ć R1 R < R1 + R2 R2 ć ś o ow t s u ep prz Bufory przy łączach wyjściowych: Pomagają przy przejściowym nadmiarze pakietów. Jeśli bufor się przepełni (przeciążenie) pakiety są odrzucane. Dlaczego nie zrobić większych buforów? "13

Zwiększyć bufory? "14

Zwiększyć bufory? Rozmiar bufora na trasie nie wpływa na przepustowość. Przepustowość na trasie wynika z najwolniejszego łącza. "14

Zwiększyć bufory? Rozmiar bufora na trasie nie wpływa na przepustowość. Przepustowość na trasie wynika z najwolniejszego łącza. Jeśli daną trasą będziemy cały czas przesyłać więcej niż jej przepustowość, to bufory będą całkowicie zapełnione. większe bufory większe kolejki większe kolejki większe opóźnienie! "14

Zwiększyć bufory? Rozmiar bufora na trasie nie wpływa na przepustowość. Przepustowość na trasie wynika z najwolniejszego łącza. Jeśli daną trasą będziemy cały czas przesyłać więcej niż jej przepustowość, to bufory będą całkowicie zapełnione. większe bufory większe kolejki większe kolejki większe opóźnienie! Przy dużych buforach pakiety są tak opóźniane, że TCP zaczyna wysyłać je ponownie jeszcze bardziej zwiększa przeciążenie! "14

Rozmiar kolejki A przepustowość przepustowość R T B Załóżmy, że pakiety wysyłane są od A do B losowo, ze średnią prędkością R. rozmiar kolejki Matematyczna teoria kolejek wykres rozmiaru kolejki. Opóźnienie jest liniową funkcją rozmiaru kolejki. R R T "15

Opóźnienie i faktyczna przepustowość (1) A przepustowość przepustowość R T B Potrzebujemy sposobu na spowolnienie strumienia danych. przepustowość W przeciwnym przypadku: R bardzo duże opóźnienia, bardzo małą faktyczną przepustowość (dużo duplikatów). opóźnienie = R R T "16

Opóźnienie i faktyczna przepustowość (2) Stan bliski przeciążenia jest dobry. Pełne kolejki większe opóźnienia. przepustowość Puste kolejki moglibyśmy nadawać szybciej! R Chcemy mieć mechanizm, który będzie utrzymywać obciążenie w okolicach optymalnego punktu. opóźnienie R T R "17

Cele kontroli przeciążenia Wysokie wykorzystanie łączy. Zajęte łącza = szybkie przesyłanie danych. Małe opóźnienia Sprawiedliwy podział łącza (fairness). Co to znaczy? Dodatkowe cele Rozproszony algorytm. Szybko reaguje na zmieniające się warunki. "18

Sprawiedliwy podział łącza

Sprawiedliwy podział łącza: przykład 1 Każde łącze ma przepustowość 12 Mbit/s. Każdy komputer chce wysyłać do serwera jak najszybciej. A B 6 Mbit 6 Mbit 6 Mbit 6 Mbit "20

Sprawiedliwy podział łącza: przykład 2 Każde łącze ma przepustowość 12 Mbit/s. Każdy komputer chce wysyłać do serwera jak najszybciej. A 4 Mbit 4 Mbit 4 Mbit 4 Mbit B 4 Mbit 4 Mbit C 4 Mbit 4 Mbit "21

Sprawiedliwy podział łącza: przykład 3 Każde łącze ma przepustowość 12 Mbit/s, poza łączem między B a routerem, które ma przepustowość 2 Mbit/s. Każdy komputer chce wysyłać do serwera jak najszybciej. A 5 Mbit 5 Mbit 5 Mbit 2 Mbit B 2 Mbit 2 Mbit C 5 Mbit 5 Mbit Czy to przypisanie jest sprawiedliwe, czy też powinniśmy dać B proporcjonalnie mniej łącza? "22

Max-Min fairness Maksymalizuj minimalną przepustowość Równoważnie: przypisanie jest max-min fair, jeśli nie można zwiększyć szybkości żadnego ze strumieni bez spowolnienia innego strumienia, który jest wolniejszy lub tak samo szybki. A 5 Mbit 5 Mbit 5 Mbit 2 Mbit B 2 Mbit 2 Mbit C 5 Mbit 5 Mbit "23

Sprawiedliwy podział łącza vs. przepustowość Nieoznaczone łącza mają nieskończoną przepustowość. A 10 Mbit 6 Mbit B C sprawiedliwe niesprawiedliwe A 3 Mbit 1 Mbit B 7 Mbit 9 Mbit C 3 Mbit 5 Mbit suma 13 Mbit 15 Mbit "24

AIMD

Kontrola przeciążenia w warstwie transportowej Algorytm dla nadawcy. Wykorzystuje istniejące mechanizmy (okno przesuwne, modyfikuje rozmiar okna). Reaguje na obserwowane zdarzenia (utratę pakietów). Oblicza, ile wysłanych pakietów może bezproblemowo być w trasie do celu (wysłanych i jeszcze niepotwierdzonych). "26

Kontrola przepływu vs. kontrola przeciążenia Kontrola przepływu = nie chcemy zalać odbiorcy danymi. SWS = oferowane okno. Kontrola przeciążenia = nie chcemy zalać sieci danymi. Parametr cwnd (congestion window) obliczany przez nadawcę. SWS = min { oferowane okno, cwnd }. Będziemy zakładać, że oferowane okno =. "27

AIMD (Additive Increase, Multiplicative Decrease) Pakiet wysłany poprawnie (otrzymaliśmy ACK): cwnd cwnd + 1 / cwnd. (W ciągu RTT wysyłane cwnd segmentów, więc cwnd zwiększa się o 1). Pakiet zgubiony lub opóźniony (ACK nie dociera przed RTO) cwnd cwnd / 2. cwnd 1 RTT czas "28

AIMD Inny sposób patrzenia: AIMD nie kontroluje szybkości wysyłania. AIMD kontroluję liczbę pakietów (danego strumienia), która jednocześnie może być w sieci. animacja Przy odpowiednio dużych buforach, najbardziej krytyczne łącze jest cały czas wykorzystane w 100%. "29

AIMD vs. sprawiedliwy podział i efektywność Własność AIMD: A1 An rozpoczynają transmisje do X w dowolnych momentach ich rozmiary okien zbiegną do R/n. A1 X An BDP + rozmiar kolejki = R Pokażemy to dla n = 2 na obrazku. "30

Sprawiedliwość podziału i efektywność (1) Pakiety gubią się wtedy i tylko wtedy, jeśli cwnd1 + cwnd2 > R R Linia sprawiedliwego podziału cwnd1 R cwnd2 "31

Sprawiedliwość podziału i efektywność (2) Rozmiary cwnd1 i cwnd2 jednocześnie rosną o 1 lub maleją dwukrotnie Docelowo mamy sprawiedliwy podział łącza i cwnd1 + cwnd2 oscylujące w przedziale [R/2, R]. cwnd1 R R "32 cwnd2

Kontrola przeciążenia w TCP

Kontrola przeciążenia w TCP AIMD w TCP: ACK pakietu (explicite albo wnioskowany z potwierdzenia skumulowanego) zwiększamy cwnd o MSS * MSS / cwnd. Co RTT wysyłane jest cwnd / MSS segmentów: wszystkie będą potwierdzone zwiększymy cwnd o MSS. Pakiet zaginął (przekroczony timeout albo otrzymaliśmy podwójne potwierdzenie) zmniejszamy cwnd dwukrotnie. "34

Kontrola przeciążenia w TCP AIMD w TCP: ACK pakietu (explicite albo wnioskowany z potwierdzenia skumulowanego) zwiększamy cwnd o MSS * MSS / cwnd. Co RTT wysyłane jest cwnd / MSS segmentów: wszystkie będą potwierdzone zwiększymy cwnd o MSS. Pakiet zaginął (przekroczony timeout albo otrzymaliśmy podwójne potwierdzenie) zmniejszamy cwnd dwukrotnie. Nie do końca prawda. To jest tylko faza unikania przeciążenia. Dodatkowo TCP wprowadza fazę wolnego startu "34

Wolny start w TCP Faza wolnego startu: Zaczynamy od cwnd = MSS. Po każdym ACK zwiększamy cwnd o MSS. Co RTT cwnd zwiększa się dwukrotnie. Faza trwa do utraty pierwszego pakietu. Strata pakietu w dowolnej fazie: ssthresh cwnd / 2. uruchamiamy fazę wolnego startu do momentu, gdy cwnd > ssthresh. "35

Fazy w TCP: diagram przejścia Inicjalizacja: faza wolnego startu, ssthresh =, cwnd = MSS. ACK ACK cwnd += MSS cwnd += MSS2 / cwnd cwnd > ssthresh faza wolnego startu unikanie przeciążenia (AIMD) pakiet zgubiony ssthresh = cwnd/2, cwnd = MSS "36

AIMD w TCP: przykład cwnd czas faza wolnego startu faza unikania przeciążenia ssthresh Fazy wolnego startu mają logarytmiczną długość, poza nimi TCP wykonuje AIMD. "37

Źródła informacji o utracie pakietu Timeout dla pakietu Wielokrotny ACK Przykładowo: odbiorca dostaje segmenty 1, 2, 3, 5, 6 wysyła ACK 1, ACK 2, ACK 3, ACK 3, ACK 3. Statystycznie mniejsza szansa, że mamy do czynienia z dłuższym przeciążeniem (kolejne pakiety doszły do odbiorcy)! Szybka retransmisja (wysyłamy brakujący segment bez czekania na timeout). Szybkie przywracanie (pomijamy fazę krótkiego startu): ssthresh = cwnd / 2; cwnd = ssthresh. "38

Wspomaganie przez routery

RED RED (Random Early Detection) Router na trasie wyrzuca losowe pakiety. Prawdopodobieństwo wyrzucenia ustalane jako rosnąca funkcja średniej długości kolejki. Nie reaguje na krótkotrwałe zwiększenia kolejki. Krótsze kolejki mniejsze opóźnienia. Desynchronizacja strumieni (zmniejszają prędkości w różnych momentach). "40

ECN (Explicit Congestion Notification) Prawdopodobne przeciążenie router ustawia bity ECN w nagłówku IP. Odbiorca ustawia bity ECN w nagłówku TCP ACK. Nadawca reaguje tak, jak na utratę pakietu. nagłówek IP: wersja IHL typ usługi całkowita długość pakietu pola związane z fragmentacją pakietu TTL protokół suma kontrolna nagłówka IP źródłowy adres IP docelowy adres IP nagłówek TCP: port źródłowy port docelowy numer sekwencyjny (numer pierwszego bajtu w segmencie) numer ostatniego potwierdzanego bajtu + 1 offset 000 ECN U-A-P-R-S- oferowane okno suma kontrolna wskaźnik pilnych danych dodatkowe opcje, np. potwierdzanie selektywne "41

Problemy z kontrolą przeciążenia

Problemy Krótkie połączenia. Przepustowość proporcjonalna do 1/ p, gdzie p jest frakcją traconych pakietów. Podatność na oszukiwanie. "43

Krótkie połączenia 90% połączeń przesyła poniżej 100 KB danych. Nie wychodzą poza fazę wolnego startu! Remedium: trwałe połączenia, HTTP 2.0, "44

Przepustowość vs. straty segmentów (1) Rozważmy stabilny stan i pomińmy fazy wolnego startu. Średnio (3/4) W segmentów przesyłanych w jednym RTT. W W/2 (W/2) * RTT W jednej fazie: przesyłanych (3/8) W2 segmentów, jeden gubiony. Średnia prędkość przesyłania: (3/4) W / RTT. "45

Przepustowość vs. straty segmentów (2) Frakcja traconych segmentów: p = 8/3 (1/W2). Średnia prędkość przesyłania (segment / sek.) 3 W T = = 4 RTT r 3 1 p 2 RTT p (3/4) W (W/2) * RTT "46

Łącza o dużym BDP Prędkość przesyłania: T = segmentów / sekundę. r 3 2 1 RTT pp Transmisja RTT = 100 ms, MSS = 1500 bajtów, łącze 10 Gbit/s. Żeby osiągnąć T = 10 Gbit/s, p 2 * 10-10 : Co najwyżej jeden tracony segment na 2 * 10 10 segmentów. Nie do zrealizowania w praktyce. Dla takich łączy FastTCP ze zmodyfikowanym AIMD: powyżej pewnej wartości cwnd zwiększane szybciej i zmniejszane wolniej. "47

TCP w WiFi Przepustowość proporcjonalna do 1/ p, gdzie p jest frakcją traconych pakietów. Pakiety tracone niekoniecznie przez przeciążenie, np. w sieciach bezprzewodowych tracone przez interferencje! Żeby TCP działało sensownie konieczne są retransmisje dokonywane przez warstwy niższe (warstwę łącza danych). "48

Transmisje o mniejszym RTT są preferowane Prędkość przesyłania: T = (3/4) W / RTT (segmentów / sek). Dwie transmisje korzystającego z tego samego łącza o małej przepustowości: ich okna przeciążenia (W) są takie same. Prędkości transmisji proporcjonalne do 1/RTT: transmisje o mniejszym RTT przesyłane szybciej! "49

Nadużycia Zaczynanie wolnego startu z cwnd > 1 MSS. Szybsze zwiększanie cwnd niesprawiedliwy podział łącza. Otwieranie wielu połączeń (np. aplikacje P2P), bo każde połączenie ma takie samo cwnd. "50

Lektura dodatkowa Kurose & Ross: rozdział 3. Tanenbaum: rozdział 6. TCP Congestion Control RFC: https://tools.ietf.org/ html/rfc5681 "51