Transmission Control Protocol
1
Literatura
" Wireless IP and Building the Mobile Internet Sudhir Dixit,
Ramjee Prasad, Universal personal communications, 2002,
" The Wireless Mobile Internet Architectures, Protocol and
Services Abbas Jamalipour, Ph.D. - Wiley 2003,
" TCP/IP Network Administration Craig Hunt, O Reilly, December
1997,
" Networking With Microsoft TCP/IP Certified Administrator s
Drew Heyword, Rob Scrimger, New Riders Publishing, 1997,
" Evaluation of different TCP versions in non wireline enviroments
Tanja Lang, University of South Australia, Institute for
Telecommunications Research, August 2002,
" Formal Specifications and Verification of Safety and Performance
of TCP Selective Acknowledgment Mark. A. Smith, K. K.
Ramakrishnan, October 2001,
2
Warstwa transportowa
" Połączenia e2e
Aspekty transportu
między hostami
Niezawodnośd
transportu danych
Ustanawianie,
utrzymanie i kooczenie
kanałów wirtualnych
Detekcja błędu
Sterowanie przepływem
3
Model TCP/IP
4
Wiadomości wstępne
" TCP/IP
stos protokołów stosowanych w Internecie
stos protokołów w bezprzewodowych sieciach IP
" Protokoły warstwy transportowej
TCP
" Zapewnia niezawodnÄ… warstwÄ™ transportowÄ… dla aplikacji
nie tolerujących utraty pakietów, stosując retransmisje
UDP
" Stosowany do aplikacji wymagających niewielkich opóznieo,
zazwyczaj aplikacji czasu rzeczywistego, np. Voice over IP
" Nie gwarantuje dostarczenia wszystkich pakietów
5
Wiadomości wstępne
" Większośd aplikacji internetowych, zarówno w
sieciach bezprzewodowych, jak i przewodowych,
używa TCP:
WWW
E-mail
Bankowośd internetowa
Przesyłanie plików (FTP)
Zdalne logowanie
Pośrednictwo giełdowe
Handel elektroniczny
6
7
Usługi oferowane aplikacjom przez TCP
" Usługa przesyłania zorientowana na
połączenie
" Usługa przesyłania strumieniowego
" Usługa przesyłania pełnodupleksowego
" Usługa przesyłania niezawodnego
" Semantyka od kooca do kooca
8
Usługa przesyłania zorientowana na połączenie
" Przed rozpoczęciem przesyłania danych między
aplikacjami w warstwie transportowej musi byd
zestawione połączenie TCP
" Każdy proces aplikacji używa innego numeru
portu
Wiele równoczesnych sesji TCP
" Identyfikacja połączenia TCP
yródłowy adres IP
yródłowy numer portu TCP
Docelowy adres IP
Docelowy numer portu TCP
9
Usługa przesyłania strumieniowego
" Proces aplikacji formuje strumieo bajtów
przesyłanych do warstwy transportowej po
stronie nadawcy
" Pomiędzy nadawcą TCP i odbiorcą TCP
Segment
" Po stronie odbiorcy TCP oferuje procesowi
aplikacji strumieo bajtów
10
Usługa przesyłania pełnodupleksowego
" Równoczesne przesyłanie danych w obu
kierunkach
11
11
Usługa przesyłania niezawodnego
" TCP
zapewnia dostarczenie każdego bajta danych
" Mechanizm potwierdzeo
" Segmenty niepotwierdzone wysyłane ponownie
Zapewnia właściwą kolejnośd dostarczania danych
bez ich powielania
" NieuporzÄ…dkowane dane przychodzÄ…ce z warstwy sieci
sÄ… buforowana i sortowane zgodnie z nadanymi
numerami segmentów
Semantyka od kooca do kooca
" Umożliwia uzyskanie niezawodności TCP
" Potwierdzenia wysyłane są po poprawnym
odbiorze danych przez stronÄ™ odbiorczÄ…
" Daje to pewnośd, że dane dotarły do odbiorcy
" Naruszenie semantyki od kooca do kooca
Wysyłanie potwierdzeo przez węzeł pośredniczący
13
Nagłówek TCP
Numer portu zródłowego Numer portu docelowego
Numer sekwencyjny
Numer potwierdzenia
Długość
U A P R S F
Nieużywane
Rozmiar okna odbiorcy
nagłówka
Suma kontrolna Wskaznik ważności
Opcje
Dane aplikacje
Pole o zmiennej długość
14
Nagłówek TCP - numery portów
" Umożliwiają
identyfikacjÄ™ aplikacji
Realizację wielu połączeo TCP
" Pole dwubajtowe: 0 65535.
Numery poniżej 255 : dla aplikacji publicznych
Numery z zakresu 255 - 1023 : przyporzÄ…dkowywane
firmom do zastosowao handlowych
Numery powyżej 1023 : nieuregulowane
" yródłowe numery portów:
Przyporządkowywane dynamicznie przez host zródłowy
Zazwyczaj numery większe od 1023
15
Nagłówek TCP Numer sekwencyjny
" Pole 32 bitowe
" Zawiera numer sekwencyjny pierwszego bajtu
danych w segmencie TCP
Poprzedni segment: nr sekwencyjny = 2000, pole
danych = 1400 bajtów
Następne segment: nr sekwencyjny = 3400
16
Nagłówek TCP
" Numer potwierdzenia
Pole 32 bitowe
Umożliwia odbiorcy potwierdzanie danych
" Długośd nagłówka
Pole 4 bitowe
Długośd nagłówka w liczbie słów 32-bitowych
Zazwyczaj 20 bajtów
Umożliwia określenie początku pola danych
" Zarezerwowane
6 bitów
Na przyszłe potrzeby
Do celów eksperymentalnych
17
Nagłówek TCP Znaczniki (Flags)
" 6 bitów
" W segmencie może byd więcej niż jeden
Znacznik Znaczenie
znacznik
ACK (A) Pole potwierdzenia zawiera dane
FIN (F) Ostatni segment wysłany przez nadawcę
PSH (P) Wykonano operację PUSH. Powiadomić
nadawcÄ™
RST (R) Przerwanie połączenia
SYN (S) Rozpoczęcie nowego połączenia
URG (U) Wskaznik ważności zawiera dane
18
Nagłówek TCP
" Rozmiar okna odbiorcy
Umożliwia sterowanie przepływem
Informuje nadawcę o wielkości okna (bufora)
odbiorcy
19
Nagłówek TCP
" Suma kontrolna
Pole 16 bitowe
Zabezpiecza nagłówek i pole danych segmentu TCP
Wyliczana na podstawie
" Nagłówka TCP
" Danych aplikacji w polu danych segmentu
" Psudonagłówka
Adres zródłowy IP
Adres docelowy IP
Pola długości nagłówka IP
20
Nagłówek TCP Wskaznik ważności
" Pole 16 bitowe
" Informuje o pewnych danych priorytetowych
przenoszonych w segmencie TCP (ustawiony
znacznik URG
" Wskazuje ostatni bajt danych priorytetowych
w segmencie
Pozwala to na odnalezienie danych w segmencie
21
Nagłówek TCP Opcje
" Pole 16 bitowe
" Definicja opcji 2 bajty
Pierwszy bajty rodzaj opcji
Drugi bajt rozmiar pola opcji
" Przykładowe opcje
Maksymalny rozmiar segmentu (MSS)
" 16 bitów 64kB
Znacznik czasu
" 8 bitów
" Umożliwia określenie czasu RTT
22
Mechanizm potwierdzania
" Potwierdzanie skumulowane
Wiadomośd ACK potwierdza odebranie bajtów do
numeru określonego w wiadomości ACK
ACK = 1000 ! odbiorca oczekuje na bajt 1001
" Metody potwierdzania
Segment potwierdzajÄ…cy puste pole danych,
nagłówek z numerem ACK
Piggybacking jazda na barana potwierdzenie w
segmencie zawierajÄ…cym dane
23
Mechanizm potwierdzania
" Potwierdzenie opóznione
Możliwośd potwierdzenia przez odbiorcę kilku
segmentów danych nie wysyłanie potwierdzeo po
każdym segmencie
Maksymalne opóznienie potwierdzeo = 500ms
" W przeciwnym razie ponowne wysłanie segmentu
" Powielanie potwierdzeo
Wysyłanie potwierdzeo dotyczących tego samego
segmentu danych w przypadku, gdy kolejny segment
uległ zagubieniu, ale odebrano poprawnie następne
24
Mechanizm retransmisji
" Wykrywanie zagubienia segmentu
Dla każdego segmentu uruchamiany jest zegar
retransmisji
Wartośd zegara à limit czasu retransmisji (RTO)
Gdy potwierdzenie nie dojdzie w czasie RTO (zegar
doliczy do zera) ! retransmisja
" Dobór odpowiedniej wartości RTO
Zbyt duża
" Zwiększenie opóznienia działania aplikacji
Zbyt krótka
" Niepotrzebne wykorzystanie zasobów sieciowych
25
Mechanizm retransmisji
" Poprawnie ustawiony czas RTO
RTO > RTT
" Problem: RTT zmienne w czasie
" RozwiÄ…zanie
Nadawca przechowuje dla każdego połączenia TCP
wartośd Orientacyjne_RTT
Orientacyjne_RTT wyliczane jest na podstawie:
" Danych historycznych dla tego połączenia
" Wartości Próbka_RTT ostatnia wartośd od momentu
wysłania segmentu do otrzymania jego potwierdzenia,
zależna od aktualnego opóznienia kolejkowania w sieci
26
Mechanizm retransmisji
" Zazwyczaj a=0,25
27
Ustanawianie połączenia
28
Zakooczenie połączenia
" Proces zakooczenia połączenia
Four-way handshaking
Uzgadnianie czterostronne
1. Klient wysyła segment z ustawionym FIN do
serwera
2. Serwer wysyła ACK
Przerwanie transmisji w kierunku serwera
Serwer może wysyład dane
3. Serwer wysyła FIN do klienta
4. Klient potwierdza ACK
29
Sterowanie przepływem Flow control
" Umożliwia dopasowanie szybkości wysyłania danych przez
nadawcę do możliwości odbiorcy
" Realizowane poprzez mechanizm okna przesuwnego (sliding
window)
Zmienna w czasie połączenia
Uzależniona od wolnego miejsca w buforze odbiorcy
" Rozmiar danych
Liczba bajtów które może wysład nadawca
Uwzględnia liczbę niepotwierdzonych bajtów
" AdvertisedWindow
Zmienna służąca do przechowywania aktualnego rozmiaru okna po stronie
nadawcy
30
Sterowanie przepływem Flow control
" Umożliwia dopasowanie szybkości wysyłania danych
przez nadawcę do możliwości odbiorcy
" Realizowane poprzez mechanizm okna przesuwnego
(sliding window)
Zmienna w czasie połączenia
Uzależniona od wolnego miejsca w buforze odbiorcy
" Rozmiar danych
Liczba bajtów które może wysład nadawca
Uwzględnia liczbę niepotwierdzonych bajtów
" AdvertisedWindow
Zmienna służąca do przechowywania aktualnego rozmiaru
okna po stronie nadawcy
31
Mechanizm okienny
32
Mechanizm okna przesuwnego
Nadawca Odbiorca
Wysyła 1 Otrzymuje 1
Wysyła 2 Otrzymuje 2
Wysyła 3 Nie otrzyma 3
ACK 3 rozmiar okna 2
Wysyła 3 Otrzymuje 3
Wysyła 4 Otrzymuje 4
Wysyła 5 Nie otrzymuje 5
ACK 5 rozmiar okna 2
Wysyła 5 Otrzymuje 5
Wysyła 6 Otrzymuje 6
ACK 7 rozmiar okna 2
33
Sterowanie przeciążeniem
Congestion control
" Służy do rozwiązywania problemów z
przeciążeniem routerów pośredniczących
" Rozmiar okna powinien zapobiegad
Przepełnieniu buforów po stronie odbiorcy
Przepełnieniu buforów w węzłach pośredniczących
" CongestionWindow
Dodatkowa zmienna sterujÄ…ca rozmiarem okna
Uwzględniająca przeciążenie w sieci
Jak uzyskad informacje na temat wolnego miejsca w
buforach węzłów pośredniczących (routery IP)?
34
Sterowanie przeciążeniem
" Określanie rozmiaru CongestionWindow na
podstawie liczby retransmisji
" Retransmisja ! Przeciążenie
" Sterowanie rozmiarem CongestionWindow
Powolny start
Unikanie przeciążenia
Wielokrotne zmniejszanie
" Rozmiar okna: mniejsza z dwóch wartości:
AdvertisedWindow
CongestionWindow
35
Powolny start
" PoczÄ…tkowy rozmiar CongestionWindow = 1
" Potwierdzenie pozwala na zwiększenie okna do 2
" Każde kolejne potwierdzenie wysłanych
segmentów (odebrane w czasie RTT) pozwala na
podwojenie liczby wysyłanych segmentów
Wzrost wykładniczy
Doprowadzenie do szybkiego przeciążenia sieci
" Ustalenie granicy, od której wzrost liniowy, tj.
zastosowanie algorytmu unikania przeciążeo
36
Unikanie przeciążeo
" Ustalenie granicy pomiędzy wzrostem
wykładniczym i liniowym
Zmienna sstresh
" Po przekroczeniu tej granicy
CongestionWindow zwiększa się o 1, jeżeli
otrzymano potwierdzenie w czasie RTT
37
Wielokrotne zmniejszanie
38
TCPReno/TCP New Reno
39
TCP DLA SIECI BEZPRZEWODOWYCH
40
Wprowadzenie
" Przechodzenie od sieci z komutacją kanałów do
sieci z komutacją pakietów
" Systemy 3G i B3G
Dominujące usługi transmisji danych
Aącznośd ze szkieletową siecią przewodową
" Dominujący stos protokołów TCP/IP
" Większośd popularnych aplikacji Internetowych korzysta z
TCP
Aącznośd hostów mobilnych ze stacjonarnymi
Koniecznośd wprowadzenia stosu TCP/IP do sieci
bezprzewodowych z minimalnÄ… modyfikacjÄ…
istniejących protokołów w TCP/IP
41
Wprowadzenie
" IP
Koniecznośd modyfikacji protokołu IP w celu obsługi
urzÄ…dzeo mobilnych
" m.in. Mobile IP
" TCP
Brak konieczności modyfikacji protokołu
Wskazane dopasowanie do kanału radiowego
" TCP wprowadzono dla sieci ze stopą błędów 10^{-8}
Straty wynikają głównie z przeciążenia
" W sieciach bezprzewodowych stopa błędu ~ 10^{-3}
Straty wynikają głównie z charakterystyki kanału radiowego
42
Wprowadzenie
" TCP jest standardowym (de facto) protokołem
transportowym dla sieci Internet
" Zapewnia właściwą efektywnośd w tradycyjnych
sieciach przewodowych, w których straty
zazwyczaj wynikają z przeciążenia sieci
" W sieciach bezprzewodowych
Założenie powyższe nie jest prawdziwe
Głównym powodem utraty pakietów jest wysoka
stopa błędów BER
TCP nie działa optymalnie
43
Wprowadzenie
" TCP zakłada wysoką niezawodnośd łączy
transmisyjnych
" Przyczyny słabej wydajności TCP w sieciach
bezprzewodowych
TCP nie potrafi rozróżnid strat pakietów
wynikających z przeciążenia sieci i strat związanych
z zawodnym kanałem radiowym
Nadawca TCP nie może utrzymad optymalnej
wielkości okna transmisyjnego
44
Wydajnośd TCP w kanale bezprzewodowym
45
Problemy z wydajnością TCP
w Å‚Ä…czach bezprzewodowych
" Powód niskiej wydajności TCP w sieciach
bezprzewodowych błędy transmisji
" Odpowiednie kodowanie pozwala naprawid niewielkÄ…
liczbę błędów
" Pakiet odrzucany, bez przekazania TCP, gdy błędów zbyt
wiele
Dla TCP utrata pakietu sygnalizuje przeciążenie w sieci
TCP zmniejsza wielkośd okna zazwyczaj niepotrzebnie
Spada szybkośd transmisji
Nieefektywne wykorzystanie pasma problem systemów z
komutacją kanałów
46
Poprawa wydajności TCP
w sieciach bezprzewodowych
" Podział połączenia TCP na częśd przewodową i
bezprzewodowÄ…
" Podsłuchiwanie TCP w stacji bazowej
" Jawne informowanie o przyczynie utraty
pakietu
" Potwierdzanie selektywne
47
Podział połączeo TCP
" Podział połączenia TCP na granicy sieci
bezprzewodowych i przewodowych
" Podział realizuje odpowiednia brama
" Odseparowanie retransmisji w Å‚Ä…czu radiowym
od Å‚Ä…cza przewodowego
" W połączeniu bezprzewodowym można użyd
innego protokołu niż TCP
" Problemy
Duże obciążenie bram
48
Podział połączeo TCP
Połączenie przewodowe Połączenie bezprzewodowe
TCP TCP TCP TCP
IP IP IP
LL LL LL LL
PHY PHY PHY PHY
BRAMA
49
Podział połączeo TCP - Indirect-TCP
50
Protokoły warstwy łącza
51
Podsłuchiwanie TCP
" Cel: Ograniczenie retransmisji do części
bezprzewodowej
" Nie zostaje naruszona semantyka od kooca do
kooca, jak w poprzedniej metodzie
" Brama (agent SNOOP) przechowuje informacje
o stanie połączeo TCP
" Brama podsłuchuje nagłówki TCP
" Segmenty, wysyłane przez stację przewodową,
buforowane w bramie do czasu otrzymania
52
potwierdzenia od stacji bezprzewodowej
Podsłuchiwanie TCP
" Potwierdzenie powielone wysłane przez stację
bezprzewodowÄ… sygnalizuje utratÄ™ pakietu
Brama z pamięci podręcznej pobiera
przechowywane dane i wysyła ponownie
Blokuje przesyłanie potwierdzeo powielonych do
stacji przewodowej
" Nie jest uruchamiany mechanizm sterowania
przeciążeniem i przepływem
" Nie występuje podwójna reakcja na błąd,
mechanizmów typowych dla sieci bezprzewodowych i
TCP
53
Podsłuchiwanie TCP
" Mechanizm szybszy od podziału połączeo TCP
" Nie narusza semantyki od kooca do kooca
" Mechanizm korzystny dla połączenia od stacji
przewodowej do bezprzewodowej
54
Jawne informowanie o przyczynie utraty pakietu
" Explicit Congestion Notification
" Mechanizm nie był wbudowany w oryginalny
TCP
" Informowanie o przyczynie utraty pakietu
pozwala na uzyskanie większych
przepływności i lepszego wykorzystania pasma
" Bit ECN-Echo Flag
Umożliwia odbiorcy poinformowanie nadawcy o
przyczynie utraty danych: przeciążenie lub
uszkodzenie
55
Potwierdzenie selektywne TCP
" Selective acknowledgment SACK
" Standardowo TCP dowiaduje siÄ™ o utracie
tylko pierwszego segmentu z okna
transmisyjnego
" Często w sieciach bezprzewodowych dochodzi
do utraty wielu segmentów z tego samego
okna
" Umożliwia naprawę wielu segmentów w
czasie równym 1 RTT
56
Problemy z mechanizmami poprawiajÄ…cymi
efektywnośd TCP
" Naruszenie semantyki od kooca do kooca
" Naruszenie komunikacji peer-to-peer między
warstwami
Koniecznośd dostępu do pakietu IP
Pakiety mogÄ… byd szyfrowane, np. IPSEC
" Problemy ze skalowalnością bram
utrzymujÄ…cych informacje o wszystkich
połączeniach TCP
57
Wyszukiwarka
Podobne podstrony:
08 6 8 Transmission Control Protocol (TCP)Transmission Control Protocol 3Transmission Control Protocol 2Transmission Control Protocol 1Nonlinear Control of a Conrinuously Variable Transmission (CVT) for Hybrid Vehicle PowertrainsDesign and Control of an Hybrid TransmissionX Packet Transmission ProtocolHigh Level Data Link Control (HDLC) Protocolcontrol structures continue12 control statementsPrzewodowe media transmisyjne czII02 ZELIO CONTROL?TALOGUErmi protocol7Test di controlloULTRADŹWIĘKOWA KAMERA TRANSMISYJNAmikrotik bandwidth controlwięcej podobnych podstron