Stos TCP/IP Warstwa transportowa Warstwa aplikacji cz.1 aplikacji transportowa Internetu 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 16 b 16 b... Port źródłowy Port docelowy Długość Suma kontrolna Dane UDP - RFC 768
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.
0 Zarezerwowane Przesunięcie Budowa segmentu TCP 4 10 Port źródłowy Suma kontrolna Numer kolejny Numer potwierdzenia Flagi Opcje Dane... 16 24 31 Port docelowy Okno Wskaźnik pilności Uzupełnienie
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 Komputer A TCP Komputer B Wysyła SYN (ISN=x) Odbiera SYN (ISN=y, ACK=x+1) Wysyła ACK (ACK=x+1) t t Odbiera SYN (ISN=x) Wysyła SYN (ISN=y, ACK=x+1) Odbiera ACK (ACK=x+1)
Przykład retransmisji TCP Komputer A Komputer B Wysyła komunikat 1 Odbiera potwierdzenie 1+1 Wysyła komunikat 2 Odbiera potwierdzenie 2+1 Wysyła komunikat 3 Odbiera komunikat 1 Wysyła potwierdzenie 1+1 Odbiera komunikat 2 Wysyła potwierdzenie 2+1 Przekroczenie czasu retransmisji Zgubienie pakietu 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 Wysyła komunikat 4 Wysyła komunikat 5 Wysyła komunikat 6 Odbiera komunikat 1,2,3 Wysyła potwierdzenie 4 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 transportowa Internetu dostępu do sieci SERWER 1 SERWER2 SERWER3 transportowa Internetu dostępu do sieci KLIENT 31 transportowa Internetu dostępu do sieci KLIENT 21 transportowa Internetu dostępu do sieci KLIENT 22 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 edu (...) pl de (...) arpa google lego edu kalisz com 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? Server domeny pl Komputer A 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ą Komputer użytkownika Klient pocztowy Skrzynka użytkownika Program transportowy Serwer SMTP Internet Serwer POP Klient POP