Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Intersieci – stos protokołów, protokoły warstwy transportowej TCP/IP - cd. Ryszard Wiatr Przedmiot: Sieci komputerowe Wykład 7.

Podobne prezentacje


Prezentacja na temat: "Intersieci – stos protokołów, protokoły warstwy transportowej TCP/IP - cd. Ryszard Wiatr Przedmiot: Sieci komputerowe Wykład 7."— Zapis prezentacji:

1 Intersieci – stos protokołów, protokoły warstwy transportowej TCP/IP - cd. Ryszard Wiatr Przedmiot: Sieci komputerowe Wykład 7

2 Zawodność sprzętu Przeciążenie sieci Gubienie i przychodzenie pakietów z opóźnieniem Uszkodzenie danych Powielanie danych i błędy w kolejności ich napływania Powody istnienia stosu protokołów, zamiast jednego (ogromna ilość problemów podczas komunikowania się komputerów poprzez sieć)

3 Warstwa 1 Warstwa Warstwa n Warstwa 1 Warstwa Warstwa n Sieć NadawcaOdbiorca Model warstwowy oprogramowania protokołów

4 Warstwa protokołów wysokiego poziomu Warstwa interfejsów sieciowych Protokół 1 Moduł IP Warstwa Internet Protocol Protokół 2Protokół 3 Interfejs 1Interfejs 2Interfejs 3 Podział koncepcyjnyOrganizacja oprogramowania Porównanie modelu warstwowego i obrazu organizacji wielu interfejsów sieciowych pod IP i wielu protokołów nad nim

5 inne... Warstwa IP Interfejs NadawcaOdbiorca inne... Warstwa IP Interfejs Sieć 1Sieć 2Sieć 3 Ścieżka wiadomości w Internecie od nadawcy do odbiorcy Komputery pośrednie przesyłają datagram tylko do warstwy oprogramowania IP

6 Programy użytkowe Reprezentacja danych Sesja Transport Sieć Łącze (interfejs sprzętowy) Połączenie przy pomocy fizycznego sprzętu Warstwa Działanie Zależności oprogramowania protokołów. 7 -wartwowy model ISO

7 Programy użytkowe Transport Intersieć Interfejs sieciowy Sprzęt Warstwy koncepcyjne Obiekty przesyłane między warstwami Komunikaty lub strumienie Pakiety protokołów transportu Datagramy IP Ramka sieci fizycznej Cztery koncepcyjne warstwy oprogramowania TCP/IP i format obiektów przesyłanych między nimi

8 Programy użytkowe Transport Intersieć Interfejs sieciowy Węzeł A Programy użytkowe Transport Intersieć Interfejs sieciowy Węzeł B Sieć fizyczna Identyczny komunikat Identyczny pakiet Identyczny datagram Identyczna ramka n-ta warstwa w węźle B odbiera dokładnie te same obiekty, które wysłała n-ta warstwa węźle A Zasada podziału na warstwy

9 Programy użytkowe Transport Intersieć Interfejs sieciowy Węzeł A Programy użytkowe Transport Intersieć Interfejs sieciowy Węzeł B Sieć fizyczna 1 Identyczny komunikat Identyczny pakiet Intersieć Sieć fizyczna 2 Ruter Ident. datagram Ident. ramka

10 Transport Interfejs sieciowy Protokół 1 Moduł IP Intersieć Protokół 2Protokół 3 Interfejs 1Interfejs 2Interfejs 3 Podział koncepcyjnyOrganizacja oprogramowania Połączenia wewnątrzsieciowe Połączenie międzypunktowe (sieć wewnętrzna ) Umiejscowienie protokołu bezpośrednich połączeń międzypunktowych, gdy IP traktuje ich zestaw jako pojedynczą sieć IP

11 Programy użytkowe Transport Intersieć Interfejs sieciowy Sprzęt Warstwa koncepcyjnaGranica Oprogramowanie poza systemem operacyjnym Oprogramowanie wewnątrz systemu operacyjnego Tylko adresy IP Adresy fizyczne Związek pomiędzy koncepcyjnym podziałem na warstwy a granicami dla systemu operacyjnego i adresami protokołów wysokiego poziomu

12 Moduł IPModuł ARPModuł RARP Demultipleksowanie na podstawie typu ramki Przybycie ramki Demultipleksowanie przychodzących ramek na podstawie pola typu znajdującego się w nagłówku ramki

13 Protokół ICMPProtokół UDPProtokół TCP Moduł IP Przybycie datagramu Demultipleksowanie w warstwie Internetu. Oprogramowanie IP wybiera odpowiednią procedurę obsługi na podstawie znajdującego się w nagłówku datagramu pola typu protokołu Protokół EGP

14 Protokół UDP ( User Datagram Protocol ) Warstwa aplikacji Warstwa dostępu do sieci Warstwa transportowa Warstwa sieciowa (Internetu) Telnet FTP HTTP SMTP POP DNS NFS SNMP RIP TCPUDP IPICMP ARP CSMA/CD Ethernet SLIP PPP Token Ring FDDI inne… UDP zapewnie podstawowy mechanizm wykorzystywany przez programy użytkowe przy przesyłaniu datagramów do innych programów użytkowych (portów) Port - abstrakcyjny punkt docelowy identyfikowany za pomocą dodatniej liczby całkowitej

15 Dane Długość komunikatu UDPSuma kontrolna UDP Port UDP nadawcyPort UDP odbiorcy Format komunikatów UDP

16 Adres IP nadawcy Adres IP odbiorcy Długość UDPZeroProto Dwanaście oktetów pseudonagłówka używanego przy wyliczaniu sumy kontrolnej UDP

17 Program użytkowy Datagram użytkownika (UDP) Intersieć (IP) Interfejs sieci Podział logiczny Logiczny podział UDP na warstwy między programem użytkowym i IP

18 nagłówek ramkiobszar danych ramki nagłówek IPobszar danych IP nagłówek UDPobszar danych UDP Kapsułkowanie datagramu UDP w datagramie IP przed wysłaniem przez intersieć. Kapsułkowanie w ramce - dla każdej pojedynczej sieci

19 Port 1Port 2Port 3 UDP: demultipleksowanie w zależności od portu Warstwa IP Nadchodzący datagram UDP Demultipleksowanie w warstwie bezpośrednio powyżej IP. UDP wybiera odpowiedni port odbiorcy na podstawie numeru portu odbiorcy znajdującego się w nadchodzącym datagramie

20 NumerNazwa Nazwa w Unix Opis ECHO DISCARD USERS DAYTIME - QUOTE CHARGEN TIME NAMESERVER NICNAME DOMAIN BOOTPS BOOTPC TFTP SUNRPC NTP - echo discard systat daytime netstat qotd chargen time name whois nameserver bootps bootpc tftp sunrpc ntp snmp snmp-trap biff who syslog timed zarezerwowane echo porzucanie aktywni użytkownicy pora dnia kto pracuje lub netstat cytat dnia generator znaków czas serwer nazw maszyn kto jest serwer nazw serwer ładowania systemu klient ładowania systemu trivial file transfer RPC firmy Sun Microsystems Network Time Protocol monitor sieci SNMP pułapki snmp Unix comsat demon rwho systemu Unix kronika systemu demon czasu Przykład przyporządkowania portów usługom

21 Warstwa transportowa modelu ma zapewnić: usługę niezawodnego dostarczania kontrolę przepływu Niezawodne dostarczanie zapewnia program komunikacyjny (protokół) warstwy transportowej poprzez: przesyłanie strumieniami łączenie w obwód wirtualny przesyłanie z użyciem buforów brak strukturalizacji strumienia połączenie w pełni dwukierunkowe

22 Komunikaty sieciowe Wydarzenia po stronie nadawcy Wydarzenia po stronie odbiorcy Wysłanie pakietu 1 Odebranie ACK 1 Wysłanie pakietu 2 Odebranie ACK 2 Odebranie pakietu 1 Wysłanie ACK 1 Odebranie pakietu 2 Wysłanie ACK 2 Protokół stosujący pozytywne potwierdzanie z retransmisją. Nadawca czeka na potwierdzenie dla każdego wysłanego pakietu Pozytywne potwierdzanie z retransmisją

23 Komunikaty sieciowe Wydarzenia po stronie nadawcy Wydarzenia po stronie odbiorcy Wysłanie pakietu 1 Uruchomienie zegara Przekroczenie limitu czasowego Odebranie ACK 1 Skasowanie zegara Spodziewane przybycie pakietu Powinno zostać wysłane ACK Odebranie pakietu 1 Wysłanie ACK 1 Przekroczenie limitów czasu i retransmisja pojawiające się przy utracie pakietu W tym momencie normalnie przybyłby komunikat ACK Retransmisja pakietu 1 Uruchomienie zegara

24 Okno początkowe Przesuwanie się okna Protokół z przesuwającym się oknem z 8 pakietami wewnątrz okna Okno przesuwa się tak, że pakiet 9 może zostać wysłany, gdy przyszło potwierdzenie dotyczące pakietu 1 Pakiety, dla których nie było potwierdzenia są retransmitowane

25 Komunikaty sieciowe Wydarzenia po stronie nadawcy Wydarzenia po stronie odbiorcy Wysłanie pakietu 1 Odebranie ACK 1 Odebranie ACK 3 Odebranie pakietu 1 Wysłanie ACK 1 Odebranie pakietu 2 Wysłanie ACK 2 Przesuwanie 3 pakietów przy pomocy protokołu z przesuwającym się oknem. Nadawca może przesłać wszystkie pakiety z okna bez oczekiwania na potwierdzenie Wysłanie pakietu 2 Wysłanie pakietu 3 Odebranie ACK 2 Odebranie pakietu 3 Wysłanie ACK 3

26 Program użytkowy Niezawodne strumienie (TCP)Datagramy użytkownika (UDP) Internet (IP) Interfejs sieciowy Model podziału na warstwy z uwidocznionym miejscem na UDP i TCP. TCP - usługa przesyłania niezawdonymi strumieniami UDP - usługa zawodnego dostarczania datagramów

27 Specyfikuje format danych przesyłanych między komputerami Specyfikuje format potwierdzeń wymienianych między komputerami w celu uzyskania niezawodnego przesyłania Opisuje procedury stosowane w celu upewnienia się, że dane dotarły do celu Wyznacza sposób, w jaki oprogramowanie TCP rozróżnia odbiorców na danej maszynie Wyznacza sposób, w jaki komunikające się maszyny radzą sobie z błędami, takimi jak utrata pakietu lub jego zduplikowanie Wyznacza sposób, w jaki dwa komputery inicjują przesyłanie za pomocą strumienia TCP i sposób zgadzania się na jego zakończenie Protokół TCP:

28 Podstawowym pojęciem protokołu TCP jest połączenie Połączenie jest identyfikowane przez parę punktów końcowych Np. ( :1069) oraz ( :25) Punkt końcowy to para (adres IP : port). Np. ( :1069)

29 Programy użytkowe na obu końcach połączenia dokonują: na jednym końcu funkcję pasywnego otwacia - informacja dla systemu operacyjnego, że akceptuje się połączenie, które ma nastąpić. System operacyjny przypisuje połaczeniu numer portu na drugim końcu funkcję aktywnego otwarcia - informacją dla systemu operacyjnego inicjująca skontaktowanie się obydwu modułów TCP.

30 Przykład przesuwającego się okna TCP. Oktety 1 i 2 wysłane i potwierdzone Oktety wysłane ale nie potwierdzone Oktety nie wysłane ale będą wysłane niezwłocznie Oktety od 10 nie mogą być wysłane przed przesunięciem okna

31 Port nadawcyPort odbiorcy Numer porządkowy Numer potwierdzenia OknoDł. nagBity koduzarezerwowane Suma kontrolnaWskaźnik pilnych danych Opcje (jeżeli jakieś)Uzupełnienie Dane Format segmentu TCP z nagłówkiem Segmenty używane do ustanawiania połączenia, przenoszenia danych i potwierdzeń Porty identyfikują programy użytkowe na końcach połączenia Numer porządkowy wyznacza pozycję danych segmentu w strumienia bajtów nadawcy Numer potwierdzenia wyznacza numer oktetu, który nad. spodziewa się otrzymać w następnej kolejności Dł. nagłówka określa długość nagłówka segmentu mierzoną w wielokrotnościach 32 bitów Okno to propozycja TCP, ile danych może przyjąć - rozmiar bufora, liczba 16-bitowa

32 Bity pola KOD z nagłówka TCP Bity (od lewej do prawej) Znaczenie, gdy bit jest ustawiony URG ACK PSH RST SYN FIN Wskaźnik pilności jest istotny Pole potwierdzenia jest istotne Ten segment stanowi prośbę o wypchnięcie Skasuj połączenie Zsynchronizuj numery początkowe Koniec strumienia bajtów u nadawcy

33 Adres IP nadawcy Adres IP odbiorcy ZeroProtokółDługość TCP Format pseudonagłówka używanego do obliczania sumy kontrolnej TCP Po stronie odbiorcy odpowiednie informacje są wyciągane z datagramu IP, który przenosił segment

34 Dziesiętnie słowo kluczowe słowo kl. w Unix Opis TCPMUX RJE ECHO DISCARD USERS DAYTIME - QUOTE CHARGEN FTP-DATA FTP TELNET SMTP TIME NAMESERVER NICNAME DOMAIN - FINGER DCP SUBDUP HOSTNAME - echo discard systat daytime netstat qotd chargen ftp-data ftp telnet smtp time name whois nameserver rje finger dcp subdup hostnames zarezerwowane wielokrotne XOR dla TCP pozycja dla zadania z odległej maszyny echo usuń aktywni użytkownicy godzina program podający stan sieci cytat dnia generator znaków File Transfer Protocol (dane) File Transfer Protocol połączenie terminalowe Simple Mail Transport Protocol czas serwer nazw węzłów kto jest Domain Name Server dowolna prywatna usługa RJE finger Device Control Protocol protokół SUPDUP serwer nazw węzłów NIC Przykłady obecnie przypisanych numerów portów TCP

35 Próbka czasu podróży w obie strony: RTT ( Round Trip Time ) RTT = α * Stare_RTT) + (1 - α ) * Nowa_Próbka_Czasu Czas_oczekiwania = β * RTT Algorytm retransmisji z adaptacją: potrzeba ciągłego oszacowywania RTT śledzenie czasu spóźnień i dostosowywanie parametru czasu oczekiwania

36 Niejednoznaczność potwierdzania Algorytm Karna: przy oszacowaniu czasu podróży w obie strony ignoruj próbki, które odpowiadają retransmitowanym segmentom, ale używaj strategii wydłużania oczekiwania i nie uwzględniaj wartości czasu oczekiwania uzyskanych z retransmitowanych pakietów, dopóki nie uzyskasz poprawnej próbki. Nowy_czas_oczekiwania = γ * czas_oczekiwania zwykle γ = 2

37 Zapaść z powodu przeciążenia: retransmisje z powodu opóźnień przeciążeniowych jeszcze te przeciążenia pogłębiają doprowadzając do unieruchomienia sieci. Jak sobie z tym radzi TCP: metoda wielokrotnego zmniejszania: dozwolone okno = min (propozycja_odbiorcy, okno przeciążeniowe) przy zgubieniu segmentu redukcja okna przeciążeniowego o połowę metoda powolnego startu: zwiększanie okna przeciążeniowego za każdym nadejściem potwierdzenia

38 Kasowanie połączenia: gdy zachodzi potrzeba natychmiastowego zamknięcia połączenia ustawiony bit RST (reset) w polu Kodu)

39 Wymuszanie dostarczenia danych: operacja wypchnięcia (push) - wymuszenie dostarczenia oktetów obecnie znajdujących się w strumieniu bez konieczności czekania na wypełnienie bufora ustawiony bit PSH (push) w polu Kodu

40 Komunikaty sieciowe Wydarzenia w węźle 1 Wydarzenia w węźle 2 Wysłanie SYN nr = x Odebranie segmentu z SYN+ACK Wysłanie ACK y + 1 Odebranie segmentu SYN Wysłanie SYN nr = y, ACK x + 1 Odebranie segmentu ACK 3-etapowa wymiana komunikatów przy ustanawianiu połączenia. Segmenty z SYN przenoszą informacje o początkowym numerze porządkowym Ustanowienie połączenia TCP

41 Zamykanie połączenia TCP Komunikaty sieciowe Wydarzenia w węźle 1 Wydarzenia w węźle 2 (Program użytkowy zamyka połączenie) Wysłanie FIN nr=x Odebranie segmentu ACK Wysłanie ACK y + 1 Odebranie segmentu FIN Wysłanie ACK x + 1 (poinformowanie programu użytkowego) Odebranie segmentu ACK Odebranie segmentu z FIN + ACK (program użytkowy zamyka połączenie) Wysłanie FIN nr=y, ACK x+1 Trójstopniowa wymiana komuniakató przy zamykaniu połączenia. Węzeł, który odbiera pierwszy segment FIN, potwierdza go natychmiast, a następnie czeka do momentu wysłania przez siebie drugiego segmentu FIN

42 ZAMKNIĘTE NASŁUCHIWANIE SYN ODEBRANY SYN WYSŁANY USTANOWIONECZEKANIE NA ZAMKNĘCIE OSTATNIE ACKZAMYKANIE FIN - 1. OCZEKIWANIE FIN - 2. OCZEKIWANIE CZEKANIE NA SPÓŹNIONYCH Cokolwiek / kasowanie początek Pasywne otwarcie zamknięcie Aktywne otwarcie / syn syn / syn + ack kasowaniesend / syn syn / syn + ack ack Zamknij / fin syn / syn + ack fin / ack Zamknij / fin ack / fin / ack fin - ack / ack Zamknij / przekroczenie czasu / reset Przekroczenie czasu po upłynięciu 2 czasów życia segmentu Automat skończony dla TCP Każdy punkt końcowy zaczyna w stanie Zamknięte. Etykiety przejść pokazują wartość na wejściu powodującą przejście, po której następuje wartość wysyłana na wyjście, jeżeli jakaś jest wysyłana

43

44 Unikanie głupiego okna po stronie odbiorcy: gdy zaoferowano zerowe okno, to przed wysłaniem aktualnej oferty okna należy poczekać, aż stanie się dostępne miejsce równe wielkości co najmniej 50% całkowitej pojemności bufora lub równe maksymalnemu rozmiarowi segmentu opóźnione potwierdzanie

45 Syndrom małego (głupiego) okna Problem, który ujawnia się, gdy każde potwierdzenie proponuje małą ilość miejsca, a każdy segment przenosi małą ilość danych Powody: - nadawanie przez program danych od razu, gdy staną się one dostępne (np. generowanie danych po 1 oktecie) - gdy program odbiorczy przyjmuje strategię czytania po 1 oktecie

46 Unikanie głupiego okna po stronie nadawcy: gromadzenie - TCP nadawcy musi opóźniać wysyłanie segmentu do chwili gdy zbierze się rozsądna ilość danych algorytm Naglea: gdy program wysyłający generuje dodatkowe dane do przesłania przez połączenie, którym poprzednio już były wysyłane dane, ale nie przyszło dla nich potwierdzenie, umieść te nowe dane w buforze wyjściowym, ale nie wysyłaj dodatkowego segmentu, zanim danych nie będzie na tyle dużo, aby stanowiły segment maksymalnej wielkości. Jeżeli w momencie przyjścia potwierdzenia, wciąż jeszcze czekasz na wysłanie, to wyślij zgromadzone dane. Stosuj tę zasadę nawet wtedy, gdy użytkownik wykona operację wypchnięcia

47


Pobierz ppt "Intersieci – stos protokołów, protokoły warstwy transportowej TCP/IP - cd. Ryszard Wiatr Przedmiot: Sieci komputerowe Wykład 7."

Podobne prezentacje


Reklamy Google