PROTOKOŁY WARSTWY TRANSPORTOWEJ



Podobne dokumenty
MODEL WARSTWOWY PROTOKOŁY TCP/IP

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

Programowanie współbieżne i rozproszone

Programowanie sieciowe

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

Protokoły sieciowe - TCP/IP

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

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

Klient-Serwer Komunikacja przy pomocy gniazd

pasja-informatyki.pl

Sieci komputerowe - Protokoły warstwy transportowej

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

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

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

Adresy w sieciach komputerowych

Warstwa transportowa

Dr Michał Tanaś(

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

Stos TCP/IP Warstwa transportowa Warstwa aplikacji cz.1

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

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

Sieci komputerowe Warstwa transportowa

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

Podstawowe typy serwerów

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Ł

Model sieci OSI, protokoły sieciowe, adresy IP

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

Przesyłania danych przez protokół TCP/IP

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

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

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Omówienie TCP/IP. Historia

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

Warstwa transportowa. mgr inż. Krzysztof Szałajko

Gniazda BSD. Procesy w środowisku sieciowym. Gniazda podstawowe funkcje dla serwera. Gniazda podstawowe funkcje dla klienta

Sieci komputerowe - warstwa transportowa

1. Model klient-serwer

Wykład 3 / Wykład 4. Na podstawie CCNA Exploration Moduł 3 streszczenie Dr inż. Robert Banasiak

Bazy Danych i Usługi Sieciowe

Programowanie Sieciowe 1

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

Instrukcja do laboratorium Systemów Operacyjnych. (semestr drugi)

ADRESY PRYWATNE W IPv4

SSL (Secure Socket Layer)

Plan wykładu. 1. Sieć komputerowa 2. Rodzaje sieci 3. Topologie sieci 4. Karta sieciowa 5. Protokoły używane w sieciach LAN 6.

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

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

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

MODEL OSI A INTERNET

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

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

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

Serwery multimedialne RealNetworks

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

Sieci Komputerowe Modele warstwowe sieci

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

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.

Architektura typu klient serwer: przesyłanie pliku tekstowo oraz logowania do serwera za pomocą szyfrowanego hasła

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

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

Laboratorium Protokoły sieci teleinformatycznych

Laboratorium Sieci Komputerowych - 2

Adres IP

Iteracyjny serwer TCP i aplikacja UDP

Transmisja bezpołączeniowa i połączeniowa

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

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

Sieci komputerowe: WYŻSZE WARSTWY MODELU OSI. Agata Półrola Katedra Informatyki Stosowanej UŁ

Protokoły wspomagające. Mikołaj Leszczuk

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

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

Technologie cyfrowe semestr letni 2018/2019

Remote Quotation Protocol - opis

Analiza protokołu TCP/IP

Instrukcje dotyczące funkcji zarządzania pasmem w urządzeniach serii ZyWALL.

Architektura INTERNET

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

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

Gniazda UDP. Bartłomiej Świercz. Łódź, 3 kwietnia Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Gniazda UDP

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

Protokoły transportowe

Co w sieci piszczy? Programowanie aplikacji sieciowych w C#

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

Model OSI. mgr inż. Krzysztof Szałajko

Zadania z sieci Rozwiązanie

Gniazda surowe. Bartłomiej Świercz. Łódź,9maja2006. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Gniazda surowe

Temat nr 7: (INT) Protokoły Internetu, ochrona danych i uwierzytelniania w Internecie.

TCP/IP (Transmission Control Protocol / Internet Protocol) komunikacji otwartej stosem protokołów

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

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

Komunikacja międzyprocesowa. Krzysztof Banaś Systemy rozproszone 1

Sieci komputerowe 1 DSRG

Systemy internetowe. Wykład 5 Architektura WWW. West Pomeranian University of Technology, Szczecin; Faculty of Computer Science

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.

1. FTP 2. SMTP 3. POP3

Protokoły internetowe

TCP/IP. Transmission Control Protocol / Internet Protocol

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat protokołu http.

Instrukcja 5 - Zastosowania protokołu ICMP

Transkrypt:

PROTOKOŁY WARSTWY TRANSPORTOWEJ Na bazie protokołu internetowego (IP) zbudowane są dwa protokoły warstwy transportowej: UDP (User Datagram Protocol) - protokół bezpołączeniowy, zawodny; TCP (Transmission Control Protocol) - protokół połączeniowy, niezawodny. Protokoły warstwy transportowej zapewniają łączność pomiędzy procesami wykonywanymi na dwóch różnych komputerach (a w szczególnym przypadku też na jednym i tym samym komputerze), nie ingerując w wybór trasy przesyłu informacji (to jest zadaniem podrzędnego względem nich protokołu IP). Ponieważ na jednym komputerze może być wykonywanych wiele procesów jednocześnie, muszą one korzystać z różnych punktów kontaktowych, aby sobie wzajemnie nie przeszkadzały. Takie logiczne obiekty służące jako skrzynki nadawczo-odbiorcze dla poszczególnych procesów nazywane są portami. Porty numerowane są liczbami dwubajtowymi dla każdego protokołu warstwy transportowej oddzielnie. Uwaga Nie należy mylić powyższych portów z fizyczną przestrzenią portów danego komputera. 1

Aby dwa procesy mogły się skomunikować, należy określić elementy następującej piątki uporządkowanej: ( protokół, adres1, port1, adres2, port2 ). Piątka taka nazywana jest asocjacją (skojarzeniem) (association). Trójkę związaną z jednym tylko procesem: ( protokół, adres, port ) nazywamy półasocjacją (half-association), adresem transportowym (transport address) lub (co pochodzi z terminologii związanej z Unixem BSD) gniazdem (socket). Konsekwentnie asocjacja bywa też nazywana parą gniazd (socket pair), bo protokół jest wspólny dla obu półasocjacji. 2

Uwaga Protokół IP pełni rolę poczty zewnętrznej dostarczając całość korespondencji od hosta do hosta (multipleksując / demultipleksując przesyłki otrzymane od protokołów transportowych). Protokoły transportowe obsługują pocztę wewnętrzną zbierając / rozdzielając przesyłki od / do poszczególnych procesów ( pracowników ) posiadających przyporządkowane porty ( skrzynki na indywidualną korespondencję ). W praktyce z portów korzystają protokoły warstwy zastosowań (górne warstwy modelu OSI są na ogół złączone w jeden moduł oprogramowania). Ponieważ praktycznie zawsze realizują one model klient - serwer (pewna usługa jest udostępniana i czeka na zgłoszenia klientów), procesy klientów muszą wiedzieć, do którego portu po stronie serwera należy się zgłosić, aby uzyskać określoną usługę. W związku z tym istnieje zbiór ogólnie znanych portów (well-known port), które są przyporządkowane standardowym, powszechnie używanym usługom - przykładowo serwer FTP (File Transfer Protocol) przyjmuje zawsze zgłoszenia w porcie 21, serwer Telnet (usługi zdalnego terminala) w porcie 23, a serwer HTTP (HyperText Transfer Protocol) - w porcie 80. 3

Numery portów są dwubajtowe, należą więc do przedziału 0-65535. Jako numery ogólnie znane zostały zarezerwowane liczby 0-1023 (ich przyporządkowywaniem i administracją zajmuje się organizacja IANA (Internet Assigned Numbers Authority)). Numery 1024-49151 mogą być numerami portów zarejestrowanych (registered port) - IANA nie sprawuje nad nimi nadzoru, ale na życzenie użytkowników rejestruje je i umieszcza w swoich wykazach. Numery powyżej 49151 mogą być dowolnie wykorzystywane - zwykle z tego zakresu wyznaczane są porty do doraźnego użytku przez programy klienckie, jako tzw. porty efemeryczne (ephemeral port). Klienci nie muszą mieć numerów portów przyporządkowanych na stałe i zazwyczaj po ich doraźny przydział zgłaszają się do swojego systemu operacyjnego. Uwaga Niektóre usługi mogą być zrealizowane zarówno w oparciu o protokół TCP, jak i UDP - zwyczajowo dla standardowych usług rezerwowane są te same numery portów zarówno TCP, jak i UDP, choćby był wykorzystywany tylko jeden z nich. 4

Protokół UDP jest prostym protokołem bezpołączeniowym, operującym na jednostkach informacji nazywanych datagramami UDP lub komunikatami (message). Struktura komunikatu: 1 bajt 2 bajt 3 bajt 4 bajt port źródłowy port docelowy długość suma kontrolna nagłówek D A N E (zmienna długość) Numer portu źródłowego może być nieużywany (pole jest wtedy wyzerowane). Długość jest łączną długością nagłówka i danych. Suma kontrolna - w pewnym stopniu umożliwia sprawdzenie poprawności przesyłu komunikatu. 5

Obsługa komunikatu polega tylko na opakowaniu go przez protokół IP (dodaniu nagłówka IP) i przekazaniu go warstwie łącza. Zawodność protokołu UDP jest taka, jaka jest zawodność protokołu IP na danej ścieżce w sieci. Protokół UDP jest dość szybki ze względu na swoją prostotę. Jest stosowany głównie tam, gdzie przesyłane porcje informacji są nieduże, gdzie występuje pojedyncza wymiana informacji ( pytanie - odpowiedź ), jak również w sieciach lokalnych (w których transmisja charakteryzuje się dużo większą niezawodnością, niż w skali całego Internetu). Przy niedużych ilościach przesyłanej informacji może bardziej się opłacać zapewniać niezawodność na poziomie programu użytkowego, niż korzystać z wbudowanych mechanizmów protokołu TCP (uznawanego obecnie za dość powolny). 6

Schemat komunikacji bezpołączeniowej pomiędzy klientem a serwerem przy użyciu UDP serwer socket ( ); bind ( ); klient socket ( ); recvfrom ( ); oczekiwanie na dane przetwarzanie danych sendto ( ); dane wyniki bind ( ); sendto ( ); recvfrom ( ); oczekiwanie na wyniki 7

Protokół TCP jest protokołem połączeniowym (udostępniającym protokołom nadrzędnym łącze logiczne przenoszące nieprzerwany ciąg bajtów o nieograniczonej długości), zapewniającym niezawodność transmisji poprzez stosowanie numeracji porcji informacji i potwierdzeń ich odebrania. Strumień bajtów otrzymany przez TCP od protokołu nadrzędnego jest dzielony na porcje nazywane segmentami, których wielkość umożliwia opakowanie ich przez protokół IP i wysłanie w postaci datagramów IP. Struktura segmentu: 1 bajt 2 bajt 3 bajt 4 bajt port źródłowy port docelowy numer sekwencji numer potwierdzenia przesunięcie zarezerwowane flagi suma kontrolna opcje okno priorytet niewykorzystane nagłówek D A N E (zmienna długość) 8

Port źródłowy i docelowy - jak w protokole UDP (ale źródłowy musi być określony). Numer sekwencji - liczba, od której protokół zaczyna odliczać wysyłane bajty. Numer potwierdzenia - powiadamia drugą stronę, jaki numer sekwencji protokół spodziewa się otrzymać w następnym segmencie (czyli stanowi potwierdzenie liczby otrzymanych wcześniej bajtów). Flagi - mogą informować, czy dany segment jest segmentem organizacyjnym (i jakiego rodzaju). Przesunięcie - podaje informację o potrzebie przeskalowania okna w przypadku korzystania np. z łącz o dużym opóźnieniu (satelitarnych). Okno - określa, ile bajtów protokół jest w stanie w danej chwili przyjąć do swojego bufora (żeby nie powstało spiętrzenie). Suma kontrolna - jak w protokole UDP. Opcje - mogą na przykład określać maksymalny rozmiar segmentu, jaki protokół jest w stanie obsłużyć. 9

Schemat komunikacji bezpołączeniowej pomiędzy klientem a serwerem przy użyciu UDP serwer socket ( ); bind ( ); listen ( ); accept ( ); oczekiwanie na uzyskanie połączenia read ( ); dane klient socket ( ); connect ( ); oczekiwanie na uzyskanie połączenia write ( ); przetwarzanie danych write ( ); wyniki read ( ); oczekiwanie na wyniki 10

Serwer jako pierwszy przygotowuje się do przyjęcia połączenia, wykonując funkcje socket, bind i listen - jest to tzw. otwarcie bierne (passive open). Klient po pewnym czasie wywołuje funkcje socket i connect, wykonując otwarcie czynne (active open). W odpowiedzi na to serwer wykonuje funkcję accept. Naprzemienne wykonanie powyższych funkcji związane jest z utworzeniem stałego połączenia poprzez uzgadnianie trójfazowe (three-way handshake). Segmenty organizacyjne, które są w jego trakcie przesyłane, oznaczane są SYN (synchronization) i ACK (acknowledgement). Klient, wykonując connect, wysyła SYN zawierający jego początkowy numer sekwencji (arbitralnie wybrany przez protokół) i zawiesza swój proces, czekając na reakcję serwera. Serwer, wykonując accept, wysyła (w jednym segmencie) swoje SYN (ze swoim początkowym numerem sekwencji) oraz ACK (potwierdzające odbiór SYN klienta), a następnie zawiesza swój proces, czekając na reakcję klienta. Klient następnie, wysyłając pierwszy segment z danymi, ustawia w nim flagę ACK i potwierdza numer otrzymany od serwera. serwer SYN SYN + ACK ACK + dane klient 11

Scenariusz zakończenia połączenia wygląda dość podobnie do scenariusza otwarcia. Zazwyczaj klient jako pierwszy wywołuje funkcję close, wykonując zamknięcie czynne (active close), a serwer jako drugi wykonując zamknięcie bierne (passive close). Jednym z wyjątków od tej reguły jest protokół HTTP. Wymiana segmentów organizacyjnych: serwer FIN ACK FIN ACK klient Uwaga W niektórych scenariuszach, aby zmniejszyć liczbę transmisji, ACK i FIN od serwera wysyłane są w jednym segmencie. Ponadto FIN może być wysłany razem z ostatnią porcją danych. 12