Stos TCP/IP Warstwa transportowa
Transkrypt
Stos TCP/IP Warstwa transportowa
aplikacji transportowa Internetu Stos TCP/IP Warstwa transportowa Warstwa aplikacji cz.1 dostępu do sieci Sieci komputerowe Wykład 5 Podstawowe zadania warstwy transportowej • Segmentacja danych aplikacji wyższej warstwy. • Zapewnienie pełnej łączności (ang. end-toend). • Zapewnienie niezawodności danych. • Kontrola przepływu. Port • Identyfikacja przynależności danej transmisji do konkretnego procesu odbywa się na podstawie numeru portu • Jest liczbą 16-bitową związaną z procesem komunikacyjnym w sieci • Np. serwer WWW rezerwuje sobie port 80, pod którym może odbierać zapytania i wysyłać odpowiedzi Gniazdo • Połączenie numeru portu i adresu IP daje tzw. gniazdo (ang. socket). • 2 komputery komunikujące się ze sobą charakteryzuje podwójna para adr. IP:port Np. 54.213.242.123:80 – 216.21.44.231:6002 (W systemach UNIX-owych dwukropek zastąpiony jest kropką) Numery portów • Pula 0-65535. • Tzw. dobrze znane porty (ang. well-known port number) 0-1023 (RFC 1700) • 1024-65535 porty wysokie, możliwe do wykorzystania przez dowolne aplikacje (IANA opisuje porty do numeru 49151) • Większość standardowych połączeń odbywa się z wysokich portów na niskie. Protokoły transportowe • UDP (ang. User Datagram Protocol) – protokół bezpołączeniowy • TCP (ang. Transmission Control Protocol) – protokół niezawodny i połączeniowy Protokół UDP • Nie ustanawia w żaden sposób połączenia • Nie sprawdza gotowości odległego komputera do odebrania danych • Mniejsza ilość informacji kontrolnych co zwiększa efektywność tego protokołu • Jednostką danych jest pakiet • Wykorzystywany do wysyłania małych porcji danych: SNMP, DHCP, DNS, BOOTP Format pakietu UDP 16 b 16 b Port źródłowy Port Długość docelowy UDP - RFC 768 16 b 16 b ... Suma Dane kontrolna Znaczenie pól pakietu • Porty źródłowy i docelowy pakietu UDP • Długość (nagłówek i dane) w bajtach (min 8, max zależne od warstw niższych) • Suma kontrolna – tworzona na podstawie nagłówka i danych pakietu Zalety UDP • Niektóre aplikacje same dbają o kontrolę poprawności transmisji więc nie potrzeba tego robić na poziomie protokołu transmisji • Lepsze rozwiązanie dla przesyłu małych porcji danych, przy wykorzystaniu protokołu połączeniowego ilość danych przesyłanych mogłaby zrównać się z ilością danych kontrolnych Protokół TCP • Działa na strumieniu bajtów - połączenie. • Sprawdza, czy dane zostały dostarczone poprawnie i w określonej kolejności – niezawodność. • Jednostką danych jest segment (komunikat) Współpraca TCP z IP Każdy komunikat TCP jest kapsułkowany w datagramie IP i wysyłany intersiecią. Nagłówek IP Komunikat TCP IP nie analizuje zawartości, traktuje każdy komunikat TCP jak dane do przesłania. Budowa segmentu TCP 0 4 10 16 24 31 Port źródłowy Port docelowy Numer kolejny Numer potwierdzenia PrzesuZarezerFlagi Okno nięcie wowane Suma kontrolna Opcje Wskaźnik pilności Uzupełnienie Dane ... Opis pól segmentu TCP cz.1 • Porty • Numer kolejny (ang. sequence number) numer kolejny bajtu danych w tym połączeniu • Numer potwierdzenia (ang. acknownledgment number) numer potwierdzający odebranie poprzednich bajtów • Przesunięcie – (ang. data offset) wskazuje początek danych • Zarezerwowane – przyszłe wykorzystanie, wartość 0 • Flagi – kolejne bity oznaczają: URG – pole pilnego wskaźnika ACK – pole potwierdzenia PSH – funkcja przepychania RST – zresetuj połączenie SYN – ustawiona podczas nawiązywania połączenia, używana do synchr. numerów kolejnych FIN – koniec połączenia Opis pól segmentu TCP cz.2 • Okno – liczba bajtów danych, które wolno wysłać nadawcy bez potwierdzenia odbioru • Suma kontrolna – nagłówka i danych • Wskaźnik pilności – (ang. urgent pointer) numer kolejny bajtu po „pilnych danych” • Opcje – 44 bity (np. timestamp, maximum segment size, MD5 signature) • Uzupełnienie – uzup. opcje zerami do 32 bitów • Dane Wielkość segmentu TCP • Max. teoretyczny rozmiar 65535 bajtów Praktyczny rozmiar dla sieci: • Ethernet – 1500 bajtów • FDDI – 4472 bajty • Token Ring (4Mb/s) – 4472 bajty Nawiązywanie połączenia przez TCP Komputer A Komputer B Wysyła SYN (ISN=x) Odbiera SYN (ISN=x) Wysyła SYN (ISN=y, ACK=x+1) Odbiera SYN (ISN=y, ACK=x+1) Wysyła ACK (ACK=x+1) Odbiera ACK (ACK=x+1) t t Przykład retransmisji TCP Komputer A Komputer B Wysyła komunikat 1 Odbiera komunikat 1 Wysyła potwierdzenie 1+1 Odbiera potwierdzenie 1+1 Wysyła komunikat 2 Odbiera komunikat 2 Wysyła potwierdzenie 2+1 Odbiera potwierdzenie 2+1 Wysyła komunikat 3 Zgubienie pakietu Przekroczenie czasu retransmisji Wysyła ponownie komunikat 3 Odbiera komunikat 3 Wysyła potwierdzenie 3+1 t t Okna Komputer A Komputer B Wysyła komunikat 1 Wysyła komunikat 2 Wysyła komunikat 3 Odbiera komunikat 1,2,3 Wysyła potwierdzenie 4 Wysyła komunikat 4 Wysyła komunikat 5 Wysyła komunikat 6 Odbiera komunikat 4,5,6 Wysyła potwierdzenie 7 t t okno TCP animacja Warstwa aplikacji stos TCP/IP Architektura klient-serwer • Istnieją dwa programy zaangażowane w wymianę informacji • Klient – program, który aktywnie inicjuje połączenie • Serwer – program biernie oczekujący na połączenie, świadczy usługi klientom, może obsługiwać jednocześnie wielu klientów Cechy programów klient i serwer Oprogramowanie klient • • • • • Dowolny program użytkowy, wykonuje również obliczenia lokalne. Wywoływany przez użytkownika, czas wykonania obejmuje jedną sesję. Działa lokalnie na komputerze osobistym użytkownika. Może kontaktować się z wieloma serwerami, jednak jednocześnie tylko z jednym aktywnym. Nie wymaga specjalnego sprzętu ani specjalnego systemu operacyjnego. Oprogramowanie serwer • • • • • • Jest specjalizowanym, uprzywilejowanym programem, którego zadaniem jest świadczenie konkretnej usługi. Może obsługiwać naraz wielu klientów. Jest uruchamiane automatycznie przy starcie systemu i działa przez wiele kolejnych sesji. Działa na publicznie dostępnym komputerze Przyjmuje połączenia od dowolnie odległych klientów Wymaga wydajnego sprzętu i wyrafinowanego systemu operacyjnego. Architektura klient - serwer KLIENT 11 KLIENT 31 transportowa transportowa SERWER 1 Internetu SERWER2 SERWER3 Internetu transportowa dostępu do sieci dostępu do sieci Internetu dostępu do sieci KLIENT 22 KLIENT 21 transportowa Internetu dostępu do sieci transportowa Internetu dostępu do sieci System DNS • Zapamiętywanie adresów IP jest trudne dla człowieka. • Wprowadzono łatwe do zapamiętania, hierarchiczne nazwy • DNS (ang. Domain Name System) zapewnia zamianę nazwy komputera na jego adres IP. Najprostszy system rozwiązywania nazw – plik hosts # Plik hosts dla wirtualnego browaru/wirtualnej winiarni # IP FQDN aliasy # 127.0.0.1 localhost # 172.16.1.1 vlager.vbrew.com vlager vlager-if1 172.16.1.2 vstout.vbrew.com vstout 172.16.1.3 vale.vbrew.com vale # 172.16.2.1 vlager-if2 172.16.2.2 vbeaujolais.vbrew.com vbeaujolais 172.16.2.3 vbardolino.vbrew.com vbardolino 172.16.2.4 vchianti.vbrew.com vchianti Struktura nazw domen . com google edu lego (...) edu pl kalisz de com (...) arpa in-addr 195 212 Zarządzanie przestrzenią nazw domenowych • ICANN ( ang. The Internet Corporation for Assigned Names and Numbers) • Domeny głównego poziomu dzielą się na domeny organizacyjne (com, edu, gov, mil, net, ini, org) i geograficzne (pl, uk, de ...) • Październik 2000 dodano info, biz, aero, name, pro, museum, coop • domeny najwyższego poziomu w postaci własnego dwuliterowego kodu kraju (ISO-3166) Serwery DNS • Rozproszona baza danych o adresach. • Serwery główne (ang. root servers) • Każdy serwer DNS ma pełne informacje o części przestrzeni nazw zwanej strefą. • Delegacja strefy – oddanie części struktury drzewiastej kolejnemu serwerowi DNS • Dwa rodzaje serwerów – podstawowy i zapasowy (podrzędny) serwer DNS Działanie systemu DNS • Oprogramowanie tłumaczące tzw. program resolwer (ang. resolver) – biblioteka procedur wywoływana przez programy użytkowe. • Resolwer wysyła zapytanie do serwera DNS. • Ten serwer wysyła zapytanie do innych serwerów DNS i odpowiada resolwerowi. Szczegóły działania DNS Root Serwer Serwer A Adres IP dla www.firma.com.pl? Komputer A Server domeny pl Adres IP www.firma.com.pl to x.x.x.x Serwer domeny com.pl Serwer domeny firma.com.pl Protokół SMTP • (ang. Simple Mail Transfer Protocol) • Podstawowy protokół transmisji poczty elektronicznej w Internecie • Serwer SMTP jest często określany jako serwer poczty wychodzącej • Dotyczy niezawodnego przekazywania danych • Aktualne RFC pod adresem: http://www.networksorcery.com/enp/protocol/smtp.htm Odwzorowanie odwrotne Znajdowanie adresu IP należącego do hosta jest pewnie najpowszechniejszym zastosowaniem systemu nazw domen, ale czasem chcesz znaleźć kanoniczną nazwę hosta odpowiadającą adresowi. Znajdowanie nazwy hosta jest nazywane odwzorowaniem odwrotnym (ang. reverse mapping) i jest używane przez pewne usługi sieciowe do weryfikacji tożsamości klienta. Wyszukiwanie odwrotne, przeprowadzane w oparciu o plik hosts, polega po prostu na przeszukaniu pliku i znalezieniu w nim hosta, do którego należy poszukiwany adres IP. W przypadku DNS-u skrupulatne przeszukiwanie przestrzeni nazw jest wykluczone. Zamiast tego została stworzona specjalna domena in-addr.arpa, która zawiera adresy IP wszystkich hostów zapisane w odwrotnej notacji kropkowej. Na przykład adres IP 149.76.12.4 odpowiada nazwie 4.12.76.149.in-addr.arpa. Protokół MIME • (ang. Multipurpose Internet Mail Extensions) • Umożliwia definiowanie różnych typów danych przesyłanych pocztą elektroniczną (umożliwia wysyłanie załączników) • RFC 2045-2049 Protokół POP • (ang. Post Office Protocol) • Protokół służący do odbierania poczty z serwera • Wymaga zalogowania do serwera • Aktualne RFC pod adresem: http://www.networksorcery.com/enp/protocol/pop.htm Protokół IMAP • (ang. Internet Message Accesss Protocol) • Protokół służący do odbierania poczty z serwera • Większe możliwości od POP • Aktualne RFC pod adresem: http://www.networksorcery.com/enp/protocol/imap.htm Przesyłanie poczty elektronicznej Nadawca Komputer ze skrzynką pocztową Klient pocztowy Program transportowy Komputer użytkownika Skrzynka użytkownika Serwer POP Serwer SMTP Internet Klient POP