Transmission Control Protocol


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 3
Transmission Control Protocol 2
Transmission Control Protocol 1
Nonlinear Control of a Conrinuously Variable Transmission (CVT) for Hybrid Vehicle Powertrains
Design and Control of an Hybrid Transmission
X Packet Transmission Protocol
High Level Data Link Control (HDLC) Protocol
control structures continue
12 control statements
Przewodowe media transmisyjne czII
02 ZELIO CONTROL?TALOGUE
rmi protocol7
Test di controllo
ULTRADŹWIĘKOWA KAMERA TRANSMISYJNA
mikrotik bandwidth control

więcej podobnych podstron