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

Podobne dokumenty
Protokoły sieciowe - TCP/IP

Sieci komputerowe - Protokoły warstwy transportowej

Sieci komputerowe Warstwa transportowa

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

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

Przesyłania danych przez protokół TCP/IP

MODEL WARSTWOWY PROTOKOŁY TCP/IP

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

Sieci komputerowe - warstwa transportowa

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

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

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

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

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

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

PROTOKOŁY WARSTWY TRANSPORTOWEJ

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

Warstwa transportowa. mgr inż. Krzysztof Szałajko

Dr Michał Tanaś(

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

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

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

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

Model sieci OSI, protokoły sieciowe, adresy IP

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

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 Mechanizmy sterowania przebiegiem sesji TCP w Internecie

Programowanie sieciowe

Warstwa transportowa

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

Architektura INTERNET

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

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

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

Model OSI. mgr inż. Krzysztof Szałajko

ARP Address Resolution Protocol (RFC 826)

System operacyjny UNIX Internet. mgr Michał Popławski, WFAiIS

Selektywne powtarzanie (SP)

Test sprawdzający wiadomości z przedmiotu Systemy operacyjne i sieci komputerowe.

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

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

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

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

MODEL OSI A INTERNET

Warstwy i funkcje modelu ISO/OSI

Programowanie współbieżne i rozproszone

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

Sieci Komputerowe Protokół TCP

Sieci Komputerowe i Technologie Internetowe (SKiTI)

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Podstawy sieci komputerowych

Klient-Serwer Komunikacja przy pomocy gniazd

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

Protokoły wspomagające. Mikołaj Leszczuk

Zarządzanie infrastrukturą sieciową Modele funkcjonowania sieci

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

Adresy w sieciach komputerowych

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

Moduł 11.Warstwa transportowa i aplikacji Zadaniem warstwy transportowej TCP/IP jest, jak sugeruje jej nazwa, transport danych pomiędzy aplikacjami

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.

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

Sieci Komputerowe Modele warstwowe sieci

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

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

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

Routing i protokoły routingu

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

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

Protokół TCP (RFC 793)

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

Pytanie 1 Z jakich protokołów korzysta usługa WWW? (Wybierz prawidłowe odpowiedzi)

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

Referencyjny model OSI. 3 listopada 2014 Mirosław Juszczak 37

Zarządzanie systemami informatycznymi. Protokoły warstw aplikacji i sieci TCP/IP

UDP vs TCP. Autor: Marcin Koczara IV FDS

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

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

Uniwersalny Konwerter Protokołów

Dr Michał Tanaś(

pasja-informatyki.pl

Stos TCP/IP Warstwa transportowa Warstwa aplikacji cz.1

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

ISO/OSI TCP/IP SIECI KOMPUTEROWE

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

1. Model klient-serwer

Transmisja bezpołączeniowa i połączeniowa

Laboratorium Sieci Komputerowych - 2

5. Model komunikujących się procesów, komunikaty

Model warstwowy Warstwa fizyczna Warstwa łacza danych Warstwa sieciowa Warstwa transportowa Warstwa aplikacj. Protokoły sieciowe

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

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

Laboratorium 6.7.1: Ping i Traceroute

Modyfikacja algorytmów retransmisji protokołu TCP.

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

Protokoły internetowe

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

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 14 Protokoły sieciowe

Sieci komputerowe 1 DSRG

Bazy Danych i Usługi Sieciowe

Transkrypt:

Połączeniowe Mechanizmy Protokołu Transportu Połączenie logiczne Zestawienie połączenia Zerwanie połączenia Niezawodne Np. TCP

Niezawodna, Uporządkowana Usługa Sieciowa Przyjmijmy dowolną długość wiadomości Przyjmijmy właściwie 100% pewność dostarczenia przez sieć np. niezawodna sieć pakietowa oparta na X.25 np. frame relay przy użyciu kontrolnego protokołu LAPF np. IEEE 802.3 przy użyciu usługi połączeniowej LLC Usługa transportu jest protokołem dwukońcowym (end-to-end) pomiędzy dwoma systemami w tej samej sieci

Zagadnienia w Prostym Protokole Transportu Adresowanie Multipleksowanie Kontrola strumienia danych Zestawianie i zrywanie połączenia

Adresowanie Docelowy użytkownik określony przez : Identyfikacja użytkownika Zwykle host, port Nazywana gniazdem (socket) w TCP Port reprezentuje konkretną usługę transportu (TS) użytkownika Identyfikacja jednostki transportu Zwykle tylko jedna na jednego hosta Jeśli więcej niż jedna to zwykle jedna danego typu Adres hosta Wybrać protokół transportu (TCP, UDP) Podłączona karta sieciowa W internecie adres IP Numer sieci

Szukanie Adresów Cztery metody Adres znany od razu np. zestaw danych karty sieciowej Dobrze znane adresy Serwer nazw Wysyłanie żądania procesu na dobrze znany adres

Multipleksowanie Wielu użytkowników używa tego samego protokołu transportu Użytkownicy identyfikowani przez numer portu bądź punkt dostępu do usługi (SAP) Multipleksować można także usługi sieciowe np. multipleksowanie jednego wirtualnego połączenia X.25 do kilku użytkowników protokołu transportu X.25 obciąża za czas korzystania z wirtualnego połączenia

Kontrola Strumienia Danych Dłuższe opóźnienie pomiędzy jednostkami transportu niż właściwy czas przesłania Opóźnienie w wymianie informacji o kontroli strumienia Różne wartości opóźnień Trudno używać pola odliczania (timeout) Strumień musi być kontrolowany, ponieważ: Odbiorca może nie nadążać Jednostka transportu po stronie odbiorcy może nie nadążać Kończy się wypełnieniem bufora

Jak radzić sobie z wymaganiami strumienia (1) Nic nie robić Segmenty które zalewają odbiorcę są odrzucane Nadawca nie otrzyma ACK i powtórzy transmisję Dalsze zwiększenie napływu danych Odrzucenie kolejnych segmentów Niezręczne Multipleksowane połączenia są kontrolowane na jednym, zagregowanym strumieniu

Jak radzić sobie z wymaganiami strumienia(2) Używać protokołu przesuwającego okna o stałym rozmiarze Analogicznie do protokołów warstwy liniowej Działa dobrze na stosunkowo niezawodnej sieci Nieodebranie ACK jest tratowane jako sygnał kontroli strumienia danych Nie działa dobrze na nieefektywnej sieci Nie można rozróżnić pomiędzy zgubionym segmentem, a kontrolą strumienia Użyć schemat kredytu

Schemat Kredytu Większa kontrola w niezawodnych sieciach Bardziej efektywna w zawodnych sieciach Rozszczepia kontrolę strumienia i ACK Można wysłać ACK z pozwoleniem na dalszy strumień danych bądź bez Każdy oktet ma numer sekwencyjny Każdy segment ma zawarty w nagłówku numer sekwencyjny, numer ACK i wielkość okna

Użycie Pól w Nagłówku Kiedy wysyłamy segment, numer sekwencyjny to numer pierwszego oktetu w tym segmencie ACK zawiera AN=i, W=j (numer ACK, rozmiar okna) Wszystkie oktety do SN=i-1 są potwierdzone Następny jest spodziewany oktet i Zezwolenie na wysłanie dodatkowego okna W=j oktetów i.e. Oktety do i+j-1

Alokacja Kredytu

Perspektywy Nadania i Odbioru

Zestawianie i zrywanie połączenia Zezwolić by każdy koniec połączenia wiedział o drugim końcu Negocjacja opcjonalnych parametrów Pociąga za sobą przypisanie zasobów jednostek transportu Przez wzajemne przypisanie

Diagram Stanu Połączenia

Zestawianie Połączenia

Nie Słucha Odrzucić z RST (Reset) Zakolejkować żądanie dopóki odpowiednia komenda otwarcia nie zostanie wysłana Zasygnalizować użytkownikowi pilne żądanie May replace passive open with accept

Zrywanie Połączenia Oba lub jeden koniec Przez obustronne porozumienie Nagłe zerwanie Lub grzeczne odłączenie Stan oczekiwania zamknięcia musi przyjmować dane dopóki FIN nie zostanie odebrane

Zakończenie połączenia Gwałtowne zerwanie ze stratą danych

Zakończenie połączenia Problem dwóch armii

Strona Zrywająca Użytkownik wysyła żądanie zamknięcia sesji (Close) Jednostka transportu wysyła FIN, żądając zakończenia połączenia Połączenie ustawione w trybie FIN WAIT Kontynuowanie odbierania i wysyłania danych Powstrzymanie się od wysyłania danych Kiedy otrzyma FIN, jednostka transportu informuje użytkownika i zamyka sesję

Strona nie Zrywająca FIN otrzymany Poinformowanie użytkownika o umieszczeniu połączenia w stanie CLOSE WAIT Kontynuacja wysyłania danych od użytkownika Użytkownik wydaje komendę CLOSE Jednostka transportu wysyła FIN Połączenie rozłączone Wszystkie pozostałe dane są wysyłane przez obie strony Obie strony zgadzają się na zamknięcie sesji

Zakończenie połączenia 6-14, a, b (a) Normalny przypadek zakończenia przez potrójny uścisk (b) Zaginiony końcowy ACK

Zakończenie połączenia 6-14, c,d (c) Utrata odpowiedzi (d) Utrata odpowiedzi i powtórzenia ządania rozłączenia.

Niepewna Usługa Sieciowa Np. Internet poprzez IP, frame relay poprzez LAPF IEEE 802.3 poprzez niepotwierdzane, bezpołączeniowe LLC Segmenty mogą zaginąć Segmenty mogą dojść nie w kolejności

Problemy Kolejność dostarczenia Strategia retransmisji Wykrywanie duplikatów Kontrola strumienia danych Zestawianie połączenia Zrywanie połączenia Odzyskiwanie połączenia po awarii

Kolejność Dostarczania Danych Segmenty mogą dojść nie w kolejności Numerowanie segmentów sekwencyjnie TCP numeruje każdy oktet sekwencyjnie Segmenty są numerowane numerem pierwszego oktetu w danym segmencie

Strategia Retransmisji Segmenty uszkodzone w czasie transmisji Segmenty nie dotarły Nadawca nie wie o defekcie Odbiorca musi potwierdzić poprawny odbiór Używanie kumulacyjnego potwierdzania Ograniczony czas oczekiwania na ACK inicjuje retransmisje

Wartość Licznika Stały licznik Oparty na zrozumienia zachowania sieci Nie przystosowuje się do zmieniających się realiów Zbyt krótki powoduje zbyt częste retransmisje Zbyt długi i odpowiedź na zagubione segmenty wolna Powinien być trochę dłuższy niż czas transmisji w obie strony Schemat adaptacyjny Może nie potwierdzić od razu Może nie odróżnić potwierdzenia segmentu oryginalnego i retransmitowanego Warunki mogą zmienić się nagle

Wykrywanie Duplikatów Jeśli ACK zaginął segment jest wysyłany ponownie Odbiorca musi rozpoznawać duplikaty Duplikat otrzymany przed zerwaniem połączenia Odbiorca uznaje ACK za zagubiony i wysyła ACK znów Nadawca nie może się zagubić w mnogości potwierdzeń Przestrzeń numerów sekwencyjnych wystarczająco duża, by nie powtórzyć się podczas czasu życia segmentu Duplikat otrzymany po zerwaniu połączenia

Niewłaściwa Detekcja Duplikatu

Kontrola Strumienia Danych Przypisanie kredytu Problem jeśli AN=i, W=0 okno zamknięcia Wyślij AN=i, W=j by otworzyć, ale segment zostaje zagubiony Nadawca myśli, że okno zamknięte, a odbiorca że otwarte Używanie licznika okna Jeśli się wyzeruje, wysłać cokolwiek Może być retransmisja poprzedniego segmentu

Zestawianie Połączenia Dwustronne uściśnięcie dłoni A wysyła SYN, B odpowiada wysyłając SYN Zagubiony SYN obsługiwany przez retransmisję Może doprowadzić do duplikatów SYN Ignorowanie duplikatów SYN jeśli już połączony Zagubione lub opóźnione segmenty mogą powodować problemy z połączeniem Segment ze starych połączeń Zacząć numerowanie segmentów za poprzednim ostatnim Używać SYN i Trzeba potwierdzić by załączyć i Potrójne uściśnięcie dłoni

Dwustronny Uścisk Stary Segment Danych

Dwustronny Uścisk : Przestarzały Segment SYN

Potrójny Uścisk Diagram Stanów

Potrójny Uścisk Przykłady

Zrywanie Połączenia Jednostka w stanie CLOSE WAIT wysyła ostatni segment danych i zaraz potem FIN FIN dociera przed danymi Odbiorca akceptuje FIN Zamyka połączenie Traci ostatni segment danych Kojarzenie numeru sekwencyjnego z FIN Odbiorca czeka na wszystkie segmenty przed numerem sekwencyjnym FIN Strata segmentów i przestarzałych segmentów Trzeba wyraźnie ACK FIN

Łagodne Zerwanie Wysłanie FIN i, odebranie AN i Otrzymanie FIN j, wysłanie AN j Poczekać dwukrotny maksymalny czas życia segmentu

Odzyskiwanie Połączenia po Awarii Po awarii wszystkie informacje o stanie giną Połączenie jest połowicznie otwarte Strona która nie uległa awarii myśli że wciąż jest połączona Zamykanie połączenia używając licznika Czekać na ACK przez (time out) * (ilość retransmisji) Kiedy się wyzeruje zamknąć połączenie i poinformować użytkownika Wysłanie RST i w odpowiedni na jakikolwiek segment i Użytkownik musi sam zdecydować czy łączyć się ponownie Problemy z zagubionymi danymi i duplikatami

TCP & UDP Transmission Control Protocol (TCP) Zorientowany połączeniowo RFC 793 User Datagram Protocol (UDP) Bezpołączeniowy RFC 768

Usługi TCP Pewna komunikacja pomiędzy dwoma procesami na różnych hostach Przez różnorodne pewne i niepewne sieci i intersieci Dwa rodzaje usługi Wypchnięcie (push) strumienia danych Użytkownik TCP może wymagać przesłania wszystkich danych aż do flagi push Odbiorca będzie wysyłał w ten sam sposób Nie trzeba czekać na zapełnienie bufora Pilny sygnał danych Wskazuje na nadchodzący strumień pilnych danych Użytkownik decyduje jak się z nim obchodzić

Nagłówek TCP

Nagłówek segmentu TCP (2) Pseudonagłówek zawarty w obliczeniach sumy kontrolnej TCP

Obiekty przekazywane do IP TCP przekazuje parę parametrów do IP Kolejność Normalne/niskie opóźnienie Normalna/wysoka przepustowość Normalna/wysoka niezawodność Bezpieczeństwo Co robi warstwa IP w praktyce?

Nagłówek TCP pola cd. Data offset inaczej długość nagłówka TCP w wierszach 32 bitowych Wskaźnik pilności wskazuje miejsce w segmencie ( o ustawionym bicie URG) gdzie kończą się pilne dane Opcje: MSS Maximum segment size ( 536 oktetów danych) minimum z dwóch propozycji obecnie bardziej zaawansowane algorytmy Skala okna ( RFC 1323) w 64 KB jednostkach - mnożone przez 2 16 Sieci gigabitowe, pojemność łącza Selective Repeat zamiast Go-Back-N, NAK, też SACK. Znacznik czasu opcja stosowana w szybkich sieciach zabezpiecza też przed inkarnacją starych segmentów lub ich duplikatów no nowego połączenia do tego służy głównie zakładane przez implementacje TCP wartości MSL ( maximum segment lifetime) Pierwsze MSL = 2 minuty!!!!, czas przekręcenia licznika dla łącza 45 Mbps 12 minut, ale dla 2,4 Gbps - 12 sekund Time_wait (czekanie na spóźnionych) licznik czasu zamknięcia połączenia = 2*MSL ( było na diagramie stanów )

Mechanizmy TCP (1) Zestawianie połączenia Potrójny uścisk dłoni Pomiędzy parą portów Jeden port może łączyć się z wieloma odbiorcami Transfer danych Logiczny strumień oktetów (bajtów), a nie wiadomości (segmentów) Oktety numerowane modulo 2 32 Kontrola strumienia poprzez przypisywanie kredytu od odbiorcy w postaci ilości oktetów Dane buforowane u nadawcy i odbiorcy

Mechanizmy TCP (2) Zrywanie połączenia Łagodne zamknięcie sesji Użytkownik TCP wysyła komendę CLOSE Jednostka transportu ustawia flagę FIN w ostatnim wysyłanym segmencie Nagłe zerwanie poprzez komendę ABORT Jednostka porzuca próby wysyłania i odbioru danych Segment RST wysyłany

Opcje Polityki Implementacji Wyślij Dostarcz Zaakceptuj Retransmituj Potwierdź

Wyślij Jeśli bez push lub close jednostka TCP nadaje wg własnego uznania Dane buforowane w buforze transmisji Można tworzyć segment z paczki danych Można oczekiwać na konkretną ilość danych

Dostarcz W przypadku braku push, dostarcz dane wg uznania Można dostarczać w kolejności otrzymywania segmentów Można buforować dane z więcej niż jednego segmentu

Akceptuj Segmenty mogą nie dotrzeć w kolejności W kolejności Akceptuj segmenty tylko w kolejności Odrzuć segmenty nie w kolejności W oknach Akceptuj wszystkie segmenty w zasięgu okna odbioru

Retransmituj TCP trzyma kolejkę segmentów wysłanych ale nie potwierdzonych TCP retransmituje jeśli nie potwierdzone w przeciągu danego czasu Tylko pierwszy Całą paczkę (zawartość okna) Indywidualnie

Potwierdzenie Natychmiastowe Kumulacyjne Liczniki czasu Czas retransmisji Czas ponowne połączenia ( reconnection) Czas okna ( window) maksymalny czas miedzy segmentami ACK/kredyt Retransmisji SYN ponowna próba nawiązania połączenia Licznik bezustanny zamyka połączenie po braku potwierdzeń segmentów Licznik nieaktywności zamyka połączenie gdy nie ma segmentów z obu stron

Kontrola Przeciążeń RFC 1122, Wymagania dla hostów internetowych Zarządzanie licznikiem retransmisji (RTO retransmission timeout) Oszacuj czas dwustronnej transmisji (RTT) poprzez obserwację tendencji opóźnień Ustawić czas licznika na trochę powyżej oszacowanego Prosta średnia dla RTT Średnia wykładnicza dla RTT Oszacowanie wariancji RTT (algorytm Jacobsona) RTT_new=a*RTT_old + (1-a)*RTT_przybyłe, a=7/8 RTO=b*RTT, b=2 Odchylenie D=aD_old + (1-a)* RTT-RTT_przybyłe RTO= RTT + 4 * D Co z potwierdzeniami duplikatów trudności w określeniu RTT, i co robić z czasem retransmisji? Rozwiązuje to Karn -

Zarządzanie zegarami w TCP (a) Gęstość prawdopodobieństwa czasów przybycia Ack w warstwei liniowej ( LAN) (b) jw. dla TCP (sieć rozległa Internet)

Wykładnicze Korekcje RTO Ponieważ licznik jest funkcją przeciążenia (odrzucony pakiet lub długi RTT), utrzymywanie RTO na tym samym poziomie jest nieuzasadnione RTO jest zwiększane z każdym retransmitowanym segmentem RTO = q*rto Z reguły q=2 Binarna korekcja wykładnicza Karn w TCP/IP, w niepewnych sieciach radiowych

Algorytm Karn a Jeśli segment jest retransmitowany, otrzymany ACK może być uznany: Za pierwszą kopię segmentu RTT dłuższy niż spodziewany Za drugą kopię Nie ma sposobu by je odróżnić Nie mierzyć RTT dla retransmitowanych segmentów Obliczać korekcję kiedy zachodzi retransmisja Używać korekcji RTO ( wykładniczej) dopóki nie nadejdzie ACK za segment nie retransmitowany

Zarządzanie Oknem Powolny start Okno dozwolone = MIN[kredyt, cwnd] Zacząć połączenie z cwnd=1 (cwnd okno przeciążeniowe) Zwiększać cwnd za każdym ACK, do jakiegoś max To znaczy, że start jest szybki bo wykładniczy 1,2,4,8, etc. Pierwotnie zwany soft start Dynamiczne dopasowywanie okna w czasie przeciążenia Kiedy licznik się wyzeruje Ustawić górną granicę powolnego startu do połowy obecnego okna przeciążenia (cwnd) ssthresh=cwnd/2 Ustawić cwnd = 1 i powolny start dopóki cwnd=ssthresh Zwiększać cwnd o 1 dla każdego otrzymanego ACK Dla cwnd >=ssthresh, zwiększyć cwnd o 1 dla każdego mierzonego RTT stan unikania przeciążenia Dlaczego TCP w ten sposób kontroluje przeciążenia? Przepełnienie buforów jako prawdopodobna przyczyną utraty segmentów

Okno kredytowe w TCP Zarządzanie oknem w TCP.

TCP Kontrola przeciążeń Przykład algorytmu unikania przeciążeń w Internecie (powolny start)

Polityka transmisji w TCP Syndrom głupiego okna

Zapobieganiu syndromu głupiego okna Rozwiązanie Clark a Wysyłać update okna po osiągnięciu MSS, lub połowa buforu (co mniejsze) Po stronie nadawcy też nie wysyłać zbyt małych segmentów Aplikacje typu telnet Wysłanie jednego znaku, ACK, update okna po przesłaniu danych do aplikacji, echo znaku Łącznie 4 segmenty ( 162 bajty IP i TCP) Swoboda po stronie nadawcy i odbiorcy Opoźnianie wysyłania ACK i aktualizacji okna Algorytm Nagle a Po stronie nadawcy wysłanie pierwszego bajtu i dalej buforowanie aż do otrzymania potwierdzenia Stosowany szeroko, ale w X- windows lepiej nie używać ruchy myszy Oba rozwiązania mogą pracować razem Nadawca nie wysyła małych segmentów ( Nagle), a odbiorca ich nie żąda ( Clark)

UDP User datagram protocol RFC 768 Bezpołączeniowa usługa dla procedur poziomu aplikacji Niepewna Dostarczenie i kontrola duplikatów nie gwarantowana Zmniejszona redundancja(overhead) Zastosowanie wzrasta Dlaczego?

Użycie UDP Wewnętrzne zbieranie danych tftp Zewnętrzne szerzenie (rozgłaszanie) danych RIP Żądanie-odpowiedź DNS Aplikacje czasu rzeczywistego (real-time) RTP Tunelowanie L2TP, ISAKMP

Nagłówek UDP

Dobrze znane porty Porty UDP 7 echo 11 systat 19 chargen 53 nameserver ( DNS) 69 tftp 123 NTP network time protocol Porty TCP 20 ftp data 21 ftp 23 telnet 22 ssh 25 smtp 53 DNS

Porty TCP cd. 79 finger 80 http 110 POP 139 Netbios SSN 143 - IMAP /etc/services telnet host port Pasywne i aktywne otwarcie połączeń TCP Porty do 1023 i wyżej do...? Interfejs gniazd ( socket) Co się dzieje jeśli brak otwarcia pasywnego? ICMP, RST w TCP (czasami)

Real-Time Transport Protocol (a) Pozycja RTP w stosie protokołów ( warstw) (b) Zagnieżdzenia pakietów

Nagłówek RTP Nagłówek RTP

Inne protokoły transportowe Problemy TCP w sieciach zawodnych (bezprzewodowych) Pośredni TCP ( i-tcp), indirect, split Dzieli połączenie TCP narusza semantykę end-to-end ( a NAT?) Snoop TCP ( podsłuchujący) Buforowanie, eliminacja duplikatów potwierdzeń Nadal End-to-End, Opcje SACK Protokół UDP nie rozwiązuje tych problemów Przeniesienie do warstwy aplikacji Transakcyjny TCP T/TCP Skrócenie procedury uruchamiania aplikacji typu żądanie odpowiedź Efektywność bliska UDP, ale niezawodność w warstwie transportowej SCTP Stream Control Transmission Protocol Strumień wielu ( multihoming) pakietów (chunks) Możliwości bezsekwencyjnego dostarczania, potwierdzenia SACK

Wydajność sieci Zagadnienie sieci gigabitowych Czas transmisji pakietu Czas propagacji i RTT Pojemność Wielkość okna update okna odbiorcy opcje okna w TCP Mechanizmy potwierdzania Go-Back-N, SACK Przetwarzanie pakietów w węzłach, u nadawcy i odbiorcy Implementacje Rozwój sieci i komputerów przepustowość vs. moc obliczeniowa 56 kbs vs 5 Gbs 10 6 Niedoszacowanie rozwoj sieci IP v6 Szybsze przetwarzanie duży nadmiar nagłówków ATM -?