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

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

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

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

Sieci komputerowe Warstwa transportowa

Sieci komputerowe - Protokoły warstwy transportowej

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

Sieci komputerowe Mechanizmy sterowania przebiegiem sesji TCP w Internecie

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

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

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

PROTOKOŁY WARSTWY TRANSPORTOWEJ

Warstwa 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.

Przesyłania danych przez protokół TCP/IP

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

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

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

Sterowanie ruchem w sieciach szkieletowych

BADANIE SPRAWNOŚCI PROTOKOŁU TCP

Warstwa transportowa. 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

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

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

Adresy w sieciach komputerowych

Laboratorium 6.7.2: Śledzenie pakietów ICMP

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Sieci komputerowe - warstwa transportowa

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

Protokoły sieciowe - TCP/IP

BADANIE SPRAWNOŚCI PROTOKOŁU TCP

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

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

pasja-informatyki.pl

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ PODSTAWY RUTINGU IP. WSTĘP DO SIECI INTERNET Kraków, dn. 7 listopada 2016 r.

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

MODEL OSI A INTERNET

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

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

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

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Optymalizacja parametrów konfiguracyjnych protokołu TCP

Sieci Komputerowe Protokół TCP

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Akademia Techniczno-Humanistyczna w Bielsku-Białej

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

Selektywne powtarzanie (SP)

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

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

Laboratorium Sieci Komputerowych - 2

ADRESY PRYWATNE W IPv4

Transmisja bezpołączeniowa i połączeniowa

Protokoły wspomagające. Mikołaj Leszczuk

Architektura INTERNET

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

Stos TCP/IP Warstwa transportowa Warstwa aplikacji cz.1

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

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

Protokół TCP (RFC 793)

Przecinanie kabla atak TCP Reset

Laboratorium - Używanie programu Wireshark do obserwacji mechanizmu uzgodnienia trójetapowego TCP

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

ARP Address Resolution Protocol (RFC 826)

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

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

Całkowita długość nagłówka zróżnicowane. Numer identyfikacyjny Flagi Przesunięcie

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

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

Sieci Komputerowe Modele warstwowe sieci

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

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.

Programowanie sieciowe

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

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

Laboratorium - Wykorzystanie programu Wireskark do badania ramek Ethernetowych

Odmiany protokołu TCP

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

Sieci komputerowe - administracja

Sieci komputerowe - warstwa fizyczna

Uniwersalny Konwerter Protokołów

ISO/OSI TCP/IP SIECI KOMPUTEROWE

Programowanie Sieciowe 1

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

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

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

polega na opakowaniu danych - w każdej warstwie modelu OSI, kolejno idąc z góry na dół - w konieczne nagłówki/stopki odpowiednich protokołów

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

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

Instrukcja programu Wireshark (wersja 1.8.3) w zakresie TCP/IP

Rozdział 7. Protokół sterowania transmisją

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

Sieci komputerowe 1 DSRG

Wireshark

Instrukcja 5 - Zastosowania protokołu ICMP

Modyfikacja algorytmów retransmisji protokołu TCP.

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

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

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

1 Moduł Diagnostyki Sieci

Na podstawie: Kirch O., Dawson T. 2000: LINUX podręcznik administratora sieci. Wydawnictwo RM, Warszawa. FILTROWANIE IP

Transkrypt:

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ PROTOKÓŁ STEROWANIA TRANSMISJĄ WSTĘP DO SIECI INTERNET Kraków, dn. 19 grudnia 2016 r.

O CZYM JEST TEN WYKŁAD Protokół Sterowania Transmisją Transmission Control Protocol

PROTOKÓŁ TCP

PYTANIE Ustawiona jest adresacja. Nie ma włączonego rutingu. Które urządzenia się widzą? PC1 R1 R2 PC2.1.2.1.2.1.2 192.168.1.0/24 192.168.2.0/24 192.168.3.0/24

PLAN Przypomnienie cech TCP Rozpoczęcie i zakończenie transmisji - mechanizm threeway handshake Mechanizm okna przesuwnego Potwierdzenia Mechanizm powolnego startu Mechanizmy unikania przeciążeń Podsumowanie

TCP - PRZYPOMNIENIE TCP to protokół: połączeniowy niezawodny zachowujący kolejność pakietów Stosowane mechanizmy: nawiązywania i zrywania połączenia kontroli szybkości transm isji potwierdzenia / retransm isje Numery portów

NIEZAWODNOŚĆ TRANSMISJI 0 15 16 31 Port źródłowy Port docelowy Numer sekwencyjny Numer potwierdzenia DN Rez. Flagi Szerokość okna Suma kontrolna Wskaźnik priorytetu Opcje (nieobowiązkowe) TCP używa numerów sekwencyjnych do identyfikacji każdego bajtu danych Odbiorca ustawia numer potwierdzenia na numer bajtu, który chce otrzymać Otrzymanie potwierdzenia bajtu n oznacza, że wszystkie bajty do numeru n zostały odebrane poprawnie

ZESTAWIANIE POŁĄCZENIA TCP musi nawiązać połączenie z adresatem przed rozpoczęciem każdej transmisji TCP używa tzw. three-way handshake: 1. Klient wysyła pakiet SYN (losowy numer sekwencyjny n) 2. Serwer odpowiada pakietem SYN-ACK (losowy numer sekwencyjny m, potwierdzenie: n + 1) 3. Klient wysyła potwierdzenie: ACK (numer sekwencyjny n + 1, potwierdzenie m + 1)

ROZPOCZĘCIE TRANSMISJI host A SYN (n, 0) SYN-ACK (m, n+1) ACK (n+1, m+1) wymiana danych host B PAKIET (a, b): a nr sekwencyjny b nr potwierdzenia m i n są wybierane losowo dla każdej transmisji

ZAKOŃCZENIE TRANSMISJI host A FIN (m, n) ACK (n, m+1) FIN (n+1, m+1) host B PAKIET (a, b): a nr sekwencyjny b nr potwierdzenia ACK (m+1, n+2)

OPCJE - PRZYKŁADY [SYN] TYLKO PODCZAS NAWIĄZYWANIA POŁĄCZENIA Pole Opcje w nagłówku służy do przekazywania dodatkowych informacji: Maksymalna wielkość segmentu (ang. maximum segment size, MSS) [SYN] Skalowanie okna (ang. window scale) [SYN] Zgoda na selektywne potwierdzenia (ang. selective acknowledgement permitted) [SYN] Selektywne potwierdzenia Znacznik czasu (ang. timestamp) Żądanie alternatywnego sprawdzania poprawności (ang. TCP Alternate Checksum Request) [SYN] Dane alternatywnego sprawdzania poprawności (ang. TCP Alternate Checksum Data)

MAKSYMALNA WIELKOŚĆ SEGMENTU (MSS) parametr utrzymywany przez TCP powinien zostać ustawiony na taką wartość, by zapobiec fragmentacji pakietów IP maksymalna wartość powinna być uzależniona od MTU warstwy drugiej domyślna wartość: 536 B (nie wliczając nagłówków TCP i IP) jeżeli host chce zmienić tę wartość, sugeruje nową wartość w opcjach. Może zacząć już w pakiecie SYN podczas nawiązywania połączenia.

MECHANIZM OKNA PRZESUWNEGO ANG. SLIDING WINDOW MECHANISM Odbiorca może sterować szybkością wysyłania danych przez nadawcę: Odbiorca ustawia w polu Szerokość Okna wartość mówiącą ile bajtów może jeszcze otrzymać od nadawcy Nadawca otrzymawszy potwierdzenie, może wysłać tylko tą wskazaną ilość danych, zanim otrzyma kolejne potwierdzenie Rozmiar okna ustawiony na 0 oznacza zatrzymanie transmisji Nadawca ustawia wtedy tzw. persist timer po czym wysyła zapytanie o aktualizację

MECHANIZM OKNA PRZESUWNEGO ANG. SLIDING WINDOW MECHANISM Szerokość okna jest ustawiona na 4000 [B] Wielkość wysyłanych pakietów: 1000 B 1 2 3 4 5 6 7 8 9 10 11 12 ACK (n, 1001) ACK (n+1, 5001)

SYNDROM GŁUPIEGO OKNA ANG. SILLY WINDOW SYNDROME Nadajnik (lub odbiornik) nie jest w stanie przetwarzać danych z dużą szybkością Zmniejsza szerokość okna, by transmisja była powolna Gdy szerokość okna jest ustawiona na wartość 1: nagłówek TCP: 20 B nagłówek IP: 20 B dane do przesłania: 1 B Przesyłamy przez sieć 41 bajtów, by przesłać 1 bajt wartościowych danych

SKALOWANIE SZEROKOŚCI OKNA Szerokość okna: 16-bitowe pole Jaka jest największa wartość? Kalkulacja 16 bitów 64 KB 1 s RTT 64 KB/s = 0,52 Mbit/s 100 ms RTT 5,2 Mbit/s 10 ms RTT 52 Mbit/s Parametr skalowania okna może być przesłany w opcjach podczas nawiązywania połączenia Jest to 14-bitowa wartość przez którą jest mnożona szerokość okna przenoszona w pakietach Jaka jest maksymalna szerokość okna po skalowaniu?

POTWIERDZENIA Numer potwierdzenia w nagłówku TCP jest używany do sygnalizowania poprawnego odebrania danych Numer potwierdzenia n wskazuje na to, że wszystkie bajty do n zostały odebrane poprawnie 1 2 3 4 5 6 7 8 9 10 W tej sytuacji, nadawca nie dowie się, który pakiet z serii nie dotarł ang. Cumulative Acknowledgement ang. Selective Acknowledgement

MECHANIZM POWOLNEGO STARTU ANG. SLOW START MECHANISM Nadawca utrzymuje licznik, tzw. okno przeciążeń (Congestion Window, CWD) CWD oznacza liczbę pakietów które można wysłać bez potwierdzenia Mechanizm Slow-Start: 1. Początkowo CWD = 1 2. Każdy pakiet ACK zwiększa CWD o 1 3. Gdy pojawi sie przeciążenie: CWD wraca do 1 Jak szybko rośnie CWD: liniowo, logarytmicznie, wykładniczo?

MECHANIZM POWOLNEGO STARTU ANG. SLOW START Każde odebrane potwierdzenie zwiększa congestion window o 1 1 2 3 4 5 6 7 8 9 10 11 12 ACK ACK ACK ACK ACK ACK ACK ACK ACK ACK ACK ACK Jeśli potwierdzany jest każdy pakiet, szybkość transmisji rośnie wykładniczo!

MECHANIZM UNIKANIA PRZECIĄŻEŃ Mechanizm: Additive Increase Multiplicative Decrease (AIMD): 1. Gdy pojawi sie przeciążenie, zapamiętaj połowę wartości CWD 2. Ustaw CWD na 1 3. Do połowy poprzedniego CWD: mechanizm Slow-Start 4. Od połowy: CWD rośnie liniowo Często nie ma kroku 2 i 3.

ADDITIVE INCREASE MULTIPLICATIVE DECREASE Szybkość transmisji Czas

UNIKANIE PRZECIĄŻEŃ WPROWADZONE PRZEZ TCP RENO Gdy 4 kolejne ACK są identyczne, TCP zmniejsza CWD o połowę Przeprowadza Szybka Retransmisje (Fast Retransmit) Następnie wchodzi w fazę Fast Recovery Po Szybkiej Retransmisji, TCP czeka na potwierdzenie wszystkich wysłanych pakietów (całe okno przesuwne) Jeśli wszystkie potwierdzenia przyjdą - TCP wraca do standardowego unikania przeciążeń Jeśli jakieś potwierdzenie nie przyjdzie - zaczyna sie Slow Start od nowa

WERSJE PROTOKOŁU TCP TCP Tahoe: RFC 793 TCP + problem Silly Window Syndrome + algorytmy Jackobson a TCP Reno: Tahoe + Reno Fast Recovery TCP NewReno: Reno + NewReno Fast Recovery TCP SACK: Reno + Selective Acknowledgements TCP Vegas: używa opóźnień zamiast braku potwierdzeń TCP Hybla: optymalizowane dla sieci o dużych opóźnieniach TCP BIC, TCP LFN (long fat networks): optymalizowane dla sieci o wysokiej przepustowości TCP Compound: wprowadzone w MS Vista

PODSUMOWANIE TCP posiada wiele mechanizmów usprawniających jego pracę TCP używa mechanizmu three-way handshake do rozpoczęcia transmisji Okno przesuwne reguluje szybkość transmisji TCP używa potwierdzeń: cumulative selective Mechanizm powolnego startu nie jest wolny! Mechanizmy unikania przeciążeń służą do optymalizacji transmisji w sieci TCP doczekało się wielu wersji

Dziękuję za uwagę Kontakt: robert.wojcik@kt.agh.edu.pl