Sieci komputerowe Wykład 7: Warstwa zastosowań: DNS, FTP, HTTP Marcin Bieńkowski Instytut Informatyki Uniwersytet Wrocławski Sieci komputerowe (II UWr) Wykład 7 1 / 26
DNS Sieci komputerowe (II UWr) Wykład 7 2 / 26
Serwery nazw Nazwy symboliczne a adresy IP Większości ludzi łatwiej zapamiętać jest nazwę symboliczna www.ii.uni.wroc.pl zamiast 4 bajtów adresu IP, 156.17.4.1...... albo nawet atm-wro-pb1-wro-br1.devs.futuro.pl zamiast 62.233.154.25. Można gdzieś zapisać sobie lokalnie takie odwzorowania (w Linuksie plik /etc/hosts). Sieci komputerowe (II UWr) Wykład 7 3 / 26
Serwery nazw Nazwy symboliczne a adresy IP Większości ludzi łatwiej zapamiętać jest nazwę symboliczna www.ii.uni.wroc.pl zamiast 4 bajtów adresu IP, 156.17.4.1...... albo nawet atm-wro-pb1-wro-br1.devs.futuro.pl zamiast 62.233.154.25. Można gdzieś zapisać sobie lokalnie takie odwzorowania (w Linuksie plik /etc/hosts). Sieci komputerowe (II UWr) Wykład 7 3 / 26
Serwery nazw Nazwy symboliczne a adresy IP Większości ludzi łatwiej zapamiętać jest nazwę symboliczna www.ii.uni.wroc.pl zamiast 4 bajtów adresu IP, 156.17.4.1...... albo nawet atm-wro-pb1-wro-br1.devs.futuro.pl zamiast 62.233.154.25. Można gdzieś zapisać sobie lokalnie takie odwzorowania (w Linuksie plik /etc/hosts). Sieci komputerowe (II UWr) Wykład 7 3 / 26
Za dużo wpisów! Serwery nazw Do 1984 roku Pojedynczy i centralnie przechowywany plik HOSTS.TXT. Płaska struktura, nazwy komputerów, brak nazw domen. Każdy mógł go sobie ściagn ać i uaktualnić swój /etc/hosts. Aktualizacje tego pliku przez maila do administratora pliku. Problemy z koordynacja, aktualizacja, dostępem powstanie DNS (Domain Name System). Sieci komputerowe (II UWr) Wykład 7 4 / 26
Za dużo wpisów! Serwery nazw Do 1984 roku Pojedynczy i centralnie przechowywany plik HOSTS.TXT. Płaska struktura, nazwy komputerów, brak nazw domen. Każdy mógł go sobie ściagn ać i uaktualnić swój /etc/hosts. Aktualizacje tego pliku przez maila do administratora pliku. Problemy z koordynacja, aktualizacja, dostępem powstanie DNS (Domain Name System). Sieci komputerowe (II UWr) Wykład 7 4 / 26
Serwery nazw Hierarchiczna struktura ROOT pl uk edu uni.wroc com com a uni b uni a.b host1 host2 host3 a1 b1 c1.c2.c3 Uwagi: Korzeń drzewa oznaczany "." Pierwszy poziom drzewa = domeny TLD (top level domain) Może istnieć host.poddomena.domena, choć nie istnieje wpis poddomena.domena Sieci komputerowe (II UWr) Wykład 7 5 / 26
Serwery nazw Jak przekształcać domeny na adresy IP? Naiwne podejście: cała struktura na jednym komputerze Nic nie zyskujemy w stosunku do centralnego pliku HOSTS.TXT Sieci komputerowe (II UWr) Wykład 7 6 / 26
Serwery nazw Lepsze rozwiazanie: podział na strefy ROOT pl uk edu uni.wroc com com a uni b uni a.b host1 host2 host3 a1 b1 c1.c2.c3 Strefa (zone) Najmniejsza jednostka administracyjna DNS Za strefę odpowiada co najmniej jeden serwer nazw Istnieje 13 serwerów głównych (dla ".") link Serwerami dla pl rzadzi NASK Krawędzie między strefami = delegacje. Sieci komputerowe (II UWr) Wykład 7 7 / 26
Serwery nazw Rozszyfrowywanie nazw (resolving) ROOT pl uk edu uni.wroc com com a uni b uni a.b host1 host2 host3 a1 b1 c1.c2.c3 Założenie: znamy choć jeden z serwerów głównych. Chcemy: dowiedzieć się jaki jest adres serwera a1.b.edu 1 Pytamy jeden z serwerów nazw dla ".", np. E.ROOT-SERVERS.NET o adresie IP 192.203.230.10 Serwer nie zna, ale mówi, że serwerem nazw dla edu jest foo.edu o adresie IP: 1.2.3.4 2 Pytamy foo.edu Serwer nie zna, ale mówi, że serwerem nazw dla b.edu jest foo.bar.uni.edu o adresie IP: 5.6.7.8 3 Pytamy foo.bar.uni.edu Serwer foo.bar.uni.edu odpowiada: 4.8.2.4 (bo jest serwerem nazw dla strefy zawierajacej a1.b.edu). Sieci komputerowe (II UWr) Wykład 7 8 / 26
Serwery nazw Rozszyfrowywanie nazw podsumowanie Serwer nazw odpowiedzialny za dana strefę wie: co jest w jego strefie kto odpowiada za strefy podrzędne (delegacje) Sieci komputerowe (II UWr) Wykład 7 9 / 26
Serwery nazw Składanie wniosku o domenę w NASK-u Sieci komputerowe (II UWr) Wykład 7 10 / 26
Serwery nazw Rozszyfrowywanie nazw rzeczywistość Większość serwerów nazw ma pamięć podręczna (cache) do której zapisuje zapytania i odpowiedzi Nie zaczynamy odpytywania od serwerów głównych, tylko od serwera lokalnego (bo być może ma odpowiedź w cache) Przedstawiony schemat odpytywania był iteracyjny. Możliwy wariant rekurencyjny: serwer którego pytamy, pyta w naszym imieniu dalej. Sieci komputerowe (II UWr) Wykład 7 11 / 26
Serwery nazw Rozszyfrowywanie nazw rzeczywistość Większość serwerów nazw ma pamięć podręczna (cache) do której zapisuje zapytania i odpowiedzi Nie zaczynamy odpytywania od serwerów głównych, tylko od serwera lokalnego (bo być może ma odpowiedź w cache) Przedstawiony schemat odpytywania był iteracyjny. Możliwy wariant rekurencyjny: serwer którego pytamy, pyta w naszym imieniu dalej. Sieci komputerowe (II UWr) Wykład 7 11 / 26
Opisy stref Serwery nazw Co może być w opisie strefy? (strefa.pl) Adresy IP nazw uni.wroc A 10.23.45.67 uni.uni.wroc A 10.23.45.68 a.b.uni.wroc.pl. A 10.23.45.69 Aliasy nazw host1.uni.wroc CNAME a.b.c.uni.wroc Sieci komputerowe (II UWr) Wykład 7 12 / 26
Serwery nazw Opisy stref: delegacje ROOT pl uk edu uni.wroc com com a uni b uni a.b host1 host2 host3 a1 b1 c1.c2.c3 Dla poddomeny com należy umieścić wpis, że należy do innej strefy com NS ns1.com com NS ns2.com ns1.com A 10.0.8.1 ns2.com A 10.0.8.2 Ostatnie dwa wpisy to tzw. rekordy sklejajace (glue records). Sieci komputerowe (II UWr) Wykład 7 13 / 26
Serwery nazw Opisy stref: delegacje ROOT pl uk edu uni.wroc com com a uni b uni a.b host1 host2 host3 a1 b1 c1.c2.c3 Dla poddomeny com należy umieścić wpis, że należy do innej strefy com NS ns1.com com NS ns2.com ns1.com A 10.0.8.1 ns2.com A 10.0.8.2 Ostatnie dwa wpisy to tzw. rekordy sklejajace (glue records). Sieci komputerowe (II UWr) Wykład 7 13 / 26
Serwery nazw Opisy stref: inne rekordy Można też zdefiniować serwer, który obsługuje pocztę dla danej domeny IN MX 10 serwer.pocztowy.com.pl. IN MX 20 uni.wroc Sieci komputerowe (II UWr) Wykład 7 14 / 26
Domena odwrotna Serwery nazw Odwrotna konwersja: adres IP nazwa domeny (reverse DNS). Zamiast tworzyć nowy protokół, wykorzystano możliwości DNS Została utworzona domena in-addr.arpa, której poddomenami sa klasy lub adresy IP Przykładowo 222.111.in-addr.arpa opisuje adresy sieci 111.222.0.0. Sieci komputerowe (II UWr) Wykład 7 15 / 26
FTP Sieci komputerowe (II UWr) Wykład 7 16 / 26
File Transfer Protocol FTP Protokół służacy do przesyłania plików: Kopiowanie plików na serwer Pobieranie plików z serwera Sieci komputerowe (II UWr) Wykład 7 17 / 26
FTP FTP Serwer działa na porcie 21 Po połaczeniu możemy wydawac polecenia (podobne do uniksowych poleceń) Jeśli przesyłane sa dane (pliki) to otwierane jest dodatkowe połaczenie Sieci komputerowe (II UWr) Wykład 7 18 / 26
Połaczenie dla danych FTP Tryb aktywny Klient FTP wybiera port, informuje o nim serwer, po czym zaczyna na nim nasłuchiwać Serwer FTP łaczy się z tym portem i wysyła tam żadane dane Tryb pasywny Klient żada, żeby serwer wybrał port Serwer wybiera port, informuje o nim klienta, zaczyna nasłuchiwać Klient łaczy się z tym portem i pobiera stamtad żadane dane Sieci komputerowe (II UWr) Wykład 7 19 / 26
HTTP Sieci komputerowe (II UWr) Wykład 7 20 / 26
HTTP HyperText Transfer Protocol Protokół służacy do przesyłania plików (tak jak FTP) Bardzo dojrzały i złożony (choć nieskomplikowany) protokół wersja 1.1 Działa w przestrzeni nazw rozłacznej z FTP strony/dokumenty WWW Korzysta z portu 80. Sieci komputerowe (II UWr) Wykład 7 21 / 26
HTTP URL (Uniform Resource Locator) URL: Indentyfikuje dany zasób Składa się z 2 części rozdzielonych dwukropkiem schemat: (http, ftp, mailto, file,...) część zależna od rodzaju zasobu Przykłady: http://www.ii.uni.wroc.pl/index.html http://pl.wikipedia.org/wiki/url ftp://ftp.kernel.org/pub/index.html mailto:jan.kowalski@serwer.com Sieci komputerowe (II UWr) Wykład 7 22 / 26
URL, cd. HTTP URL dla schematów http, ftp Część po dwukropku to: // nazwa DNS serwera opcjonalnie :port / identyfikator zasobu wewnatrz serwera Przykład: http://www.ii.uni.wroc.pl:80/~mbi/dyd/sieciw_07s/ Uwagi: / w identyfikatorze wskazuje na hierarchię. Identyfikator zasobu niekoniecznie jest ścieżka do pliku! Sieci komputerowe (II UWr) Wykład 7 23 / 26
URL, cd. HTTP URL dla schematów http, ftp Część po dwukropku to: // nazwa DNS serwera opcjonalnie :port / identyfikator zasobu wewnatrz serwera Przykład: http://www.ii.uni.wroc.pl:80/~mbi/dyd/sieciw_07s/ Uwagi: / w identyfikatorze wskazuje na hierarchię. Identyfikator zasobu niekoniecznie jest ścieżka do pliku! Sieci komputerowe (II UWr) Wykład 7 23 / 26
HTTP Żadanie i odpowiedź HTTP Jak to działa: Przegladarka WWW dostaje URL, rozbija go na człony (zakładamy, że schemat = http) Nawiazuje połaczenie z serwerem WWW na porcie 80 Wysyła żadanie HTTP (metoda GET) przykład Serwer analizuje żadanie, pobiera z dysku odpowiedni plik Serwer ustawia odpowiedni nagłówek i typ MIME pliku Serwer wysyła plik przykład Serwer zamyka połaczenie Przegladarka wykonuje akcję w zależności od typu MIME (wyświetla, używa wtyczki, używa zewnętrznej aplikacji) Sieci komputerowe (II UWr) Wykład 7 24 / 26
Typ MIME HTTP Serwer HTTP dla każdego wysłanego pliku w nagłówku odpowiedzi powinien ustawić poprawnie pole Content-type. Przykłady: text/plain plik tekstowy text/html strona HTML image/jpeg obrazek JPEG video/mpeg film MPEG application/msword dokument DOC application/pdf dokument PDF application/octet-stream ciag bajtów bez interpretacji Sieci komputerowe (II UWr) Wykład 7 25 / 26
HTML HTTP HTTP zaprojektowany został do przesyłania hipertekstu = tekstu z odnośnikami do innych dokumentów. Taka rolę pełnia dokumenty napisane w języku HTML. HTTP + HTML = WWW. Standaryzacja HTML-a zajmuje się organizacja W3C. W rzeczywistości przegladarka pobiera stronę HTML i znajdujace sie na niej elementy (obrazki, filmy, elementy osadzone itp.), każdy w osobnej transakcji HTTP. Sieci komputerowe (II UWr) Wykład 7 26 / 26