Plan całości wykładu. Warstwa łącza i sieci lokalne

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

Wykład 5: Najważniejsze usługi sieciowe: DNS, SSH, HTTP, . A. Kisiel,Protokoły DNS, SSH, HTTP,

1. Model klient-serwer

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

Tworzenie witryn internetowych PHP/Java. (mgr inż. Marek Downar)

Programowanie w Internecie

TCP/IP. Warstwa aplikacji. mgr inż. Krzysztof Szałajko

Technologie internetowe

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Programowanie Sieciowe 2 Protokoły komunikacyjne: HTTP

Przesyłania danych przez protokół TCP/IP

Protokoły sieciowe - TCP/IP

Bazy Danych i Usługi Sieciowe

Wybrane działy Informatyki Stosowanej

Sieci komputerowe. Wykład 8: Warstwa zastosowań: FTP i HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Adres IP

Architektura aplikacji sieciowych. Architektura klient-serwer

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

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

World Wide Web? rkijanka

Języki programowania wysokiego poziomu WWW

Laboratorium nr 4 - Badanie protokołów WWW

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

Sieci komputerowe. Wykład 7: Warstwa zastosowań: DNS, FTP, HTTP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Sprawozdanie nr 4. Ewa Wojtanowska

Programowanie współbieżne i rozproszone

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

Instrukcja konfiguracji funkcji skanowania

JĘZYK PYTHON - NARZĘDZIE DLA KAŻDEGO NAUKOWCA. Marcin Lewandowski [ mlew@ippt.gov.pl ]

Sprawozdanie Sieci komputerowe i bazy danych Laboratorium nr 4

Model sieci OSI, protokoły sieciowe, adresy IP

1. W protokole http w ogólnym przypadku elementy odpowiedzi mają: a) Postać tekstu b) Postać HTML c) Zarówno a i b 2. W usłudze DNS odpowiedź

Dr Michał Tanaś(

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

Protokół HTTP. 1. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

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

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

Protokoły warstwy aplikacji

Sieci komputerowe i bazy danych

Sieci komputerowe. Wykład dla studentów Informatyki Stosowanej i Fizyki Komputerowej UJ 2007/2008. Michał Cieśla

Programowanie Sieciowe 1

Protokół HTTP 1.1 *) Wprowadzenie. Jarek Durak. rfc2616 źródło

Sprawozdanie Laboratorium 4

Programowanie sieciowe

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

Sieci komputerowe Warstwa aplikacji

Zadanie programistyczne nr 3 z Sieci komputerowych

Sieci komputerowe. Wstęp

Wykład Nr Sieci bezprzewodowe 2. Monitorowanie sieci - polecenia

Stos TCP/IP Warstwa transportowa Warstwa aplikacji cz.1

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Plan wykładu. Domain Name System. Hierarchiczna budowa nazw. Definicja DNS. Obszary i ich obsługa Zapytania Właściwości.

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

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Sieci Komputerowe i Bazy Danych

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Kierunek: Automatyka i Robotyka Studia stacjonarne I stopnia: rok I, semestr II

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

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

Warstwa aplikacji. część 1. Sieci komputerowe. Wykład 8. Marcin Bieńkowski


Stos TCP/IP. Warstwa aplikacji cz.2

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

Technologie sieciowe Sprawozdanie z labolatorium. Lista 5

Sieci Komputerowe Modele warstwowe sieci

Wstęp. Sieci komputerowe. Wykład 1. Marcin Bieńkowski

Sieci komputerowe Warstwa transportowa

Gatesms.eu Mobilne Rozwiązania dla biznesu

SIECI KOMPUTEROWE I TECHNOLOGIE INTERNETOWE

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

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

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

SPRAWOZDANIE SIECI KOMPUTEROWE I BAZY DANYCH LABORATORIUM NR 4 BADANIE PROTOKOŁÓW HTTP KAMIL BOGDANOWSKI

Aplikacje WWW. Wykład 4. Protokół HTTP. wykład prowadzi: Maciej Zakrzewicz. Protokół HTTP

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

Plan wykładu. 1. Protokół FTP. 2. Protokół HTTP, usługi www, model request-response (żądanie-odpowiedź), przekazywanie argumentów, AJAX.

OBSŁUGA I KONFIGURACJA SIECI W WINDOWS

Klient-Serwer Komunikacja przy pomocy gniazd

ZESZYTY ETI ZESPOŁU SZKÓŁ W TARNOBRZEGU Nr 2 Seria: Teleinformatyka 2013

Wykład 2: Budowanie sieci lokalnych. A. Kisiel, Budowanie sieci lokalnych

Skąd dostać adres? Metody uzyskiwania adresów IP. Statycznie RARP. Część sieciowa. Część hosta

Protokoły internetowe

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

Sieci komputerowe Wykład

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

Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do

Adresy URL. Zaawansowane technologie Javy 2019

Domain Name System. Kraków, 30 Marca 2012 r. mgr Piotr Rytko Wydział Matematyki i Informatyki UJ

Laboratorium Sieci Komputerowych - 2

Technologie informacyjne (6) Zdzisław Szyjewski

Problemy z bezpieczeństwem w sieci lokalnej

Adresy w sieciach komputerowych

Wireshark analizator ruchu sieciowego

Źródła. cript/1.5/reference/ Ruby on Rails: AJAX: ssays/archives/

INSTRUKCJA OBSŁUGI USTAWIEŃ DYNAMICZNIE PRZEDZIELANYCH ADRESÓW IP W URZĄDZENIACH SYSTEMU IP-PRO ORAZ REJESTRATORACH MY-DVR

Laboratorium 3.4.3: Usługi i protokoły

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Sieci komputerowe Computer networks. Informatyka I stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

Laboratorium 6.7.2: Śledzenie pakietów ICMP

Rok szkolny 2014/15 Sylwester Gieszczyk. Wymagania edukacyjne w technikum. SIECI KOMPUTEROWE kl. 2c

ZiMSK. Konsola, TELNET, SSH 1

Transkrypt:

Plan całości wykładu Wprowadzenie Warstwa aplikacji Warstwa transportu Warstwa sieci Warstwa łącza i sieci lokalne Podstawy ochrony informacji (2 wykłady) (2 wykłady) (2-3 wykłady) (2-3 wykłady) (3 wykłady) (2-3 wykłady) 1

Plan czasowy wykładu i ćwiczeń start zadania programistyczne (łącznie 16 punktów) kolokwium (24 punktów) zadania programistyczne i zaliczenie ćwiczeń egzamin (60 punktów) 2

Literatura do warstwy aplikacji Rozdział 2, Computer Networking: A Top-Down Approach Featuring the Internet, wydanie 2 lub 3, J. Kurose, K. Ross, Addison-Wesley, 2004 Rozdział y 4,6, Programowanie zastosowań sieciowych w systemie Unix, W. R. Stevens, WNT, 1995 Rozdziały 19, 20, 22, 24, 25, Sieci komputerowe TCP/IP, D.E. Comer, WNT, 1997 3

Warstwa aplikacji Cele: koncepcyjne i implementacyjne zagadnienia protokołów w. aplikacji modele usług warstwy transportu model klient-serwer model partnerski (peer-to-peer) poznawanie popularnych protokołów warstwy aplikacji HTTP FTP SMTP / POP3 / IMAP DNS programowanie aplikacji sieciowych API gniazd 4

Mapa wykładu 2.1 Zasady budowy protokołów w. aplikacji 2.2 WWW i HTTP 2.3 DNS 2.4 Programowanie przy użyciu gniazd TCP 2.5 Programowanie przy użyciu gniazd UDP 2.6 Poczta elektroniczna SMTP, POP3, IMAP 2.7 FTP 2.8 Dystrybucja zawartości Schowki Internetowe Sieci dystrybucji zawartości 2.9 Dzielenie plików P2P 5

Aplikacje sieciowe: trochę słownictwa Proces: program działający na hoście. na jednym hoście, dwa procesy komunikują się przez komunikację międzyprocesową (zdefiniowaną przez System Operacyjny). procesy działające na różnych hostach porozumiewają się protokołem warstwy aplikacji agent (user agent): komunikuje się z użytkownikiem i siecią. implementuje interfejs użytkownika i protokół warstwy aplikacji WWW: przeglądarka E-mail: program pocztowy streaming audio/video: odtwarzacz multimediów 6

Aplikacje i protokoły warstwy aplikacji Aplikacje: komunikujące, rozproszone procesy n.p., e-mail, WWW, dzielenie plików P2P, komunikatory działają na systemach końcowych (hostach) wymieniają komunikaty Protokoły warstwy aplikacji "kawałek" aplikacji definiują komunikaty i akcje aplikacji używają usług komunikacyjnych niższej warstwy (TCP, UDP) aplikacji transportu sieci łącza fizyczna aplikacji transportu sieci łącza fizyczna aplikacji transportu sieci łącza fizyczna 7

Protokół w. aplikacji określa... Rodzaje komunikatów, n.p., komunikaty żądania i odpowiedzi Składnię komunikatów: jakie pola w komunikatach i jak są oddzielane Znaczenie informacji w polach komunikatu Zasady określające kiedy i jak procesy wymieniają komunikaty Protokoły publiczne: definiowane w dokumentach Request For Comments (RFC) pozwala na współpracę różnych systemów n.p., HTTP, SMTP Protokoły prywatne: n.p., KaZaA 8

Model klient/serwer Typowa aplikacja sieciowa ma dwie części: klienta i serwera Klient: rozpoczyna komunikację z serwerem ( mówi pierwszy ) zwykle prosi o usługę serwera, WWW: klient implementowany przez przeglądarkę; e-mail: przez program pocztowy aplikacji transportu sieci łącza fizyczna żądanie Serwer: udostępnia żądaną usługę klientowi n.p., serwer WWW wysyła żądaną stronę, serwer poczty dostarcza pocztę odpowiedź aplikacji transportu sieci łącza fizyczna 9

Rozwinięcia modelu klient/serwer Dodatkowe etapy pośrednie: płaszczyzny (ang. multi-tier architecture) klient serwer pośrednik serwer WWW serwer aplikacyjny baza danych 10

Procesy komunikujące przez sieć proces wysyła/odbiera komunikaty do/z swojego gniazda gniazdo można porównać do skrzynki pocztowej proces wrzuca wiadomość do skrzynki proces zakłada, że warstwa transportu dostarczy komunikat do odbiorcy host lub serwer proces gniazdo sterowany przez twórcę aplikacji Internet TCP z buforami, zmiennymi sterowane przez system operacyjny host lub serwer proces gniazdo TCP z buforami, zmiennymi API: (1) wybór protokołu transportowego; (2) możliwość zmiany niektórych parametrów (o tym więcej później) 11

Adresowanie procesów: Żeby proces mógł odbierać komunikaty, musi mieć identyfikator Każdy host ma unikatowy 32-bitowy adres IP Pytanie: czy adres IP hosta na którym działa proces wystarczy dla identyfikacji procesu? Odpowiedź: Nie, wiele procesów może działać na jednym hoście Identyfikator zawiera adres IP oraz numer portu związany z procesem na hoście. Przykładowe numery portów: serwer HTTP: 80 serwer poczty: 25 Wrócimy do tego tematu później 12

Jakiej usługi transportowej potrzebuje aplikacja? Straty niektóre aplikacje (n.p., audio) tolerują pewną ilość strat inne aplikacje (n.p., transfer plików, telnet) wymagają 100% niezawodności Opóźnienie niektóre aplikacje (n.p., telefonia Internetowa, gry interaktywne) wymagają niskich opóźnień Przepustowość niektóre aplikacje (n.p., audio/wideo) wymagają minimalnej przepustowości inne aplikacje ( elastyczne ) mogą wykorzystać tyle przepustowości, ile otrzymają 13

Wymagania aplikacji dotyczące transportu Aplikacja Straty Przepustowość Opóźnienie transfer plików poczta elektroniczna WWW audio/wideo w czasie rzeczywistym odtwarzane audio/wideo gry interaktywne komunikatory bez strat bez strat bez strat toleruje straty toleruje straty toleruje straty bez strat elastyczna elastyczna elastyczne audio: 5kbps-1Mbps wideo:10kbps-5mbps jak wyżej powyżej kilku kbps elastyczna nie nie nie tak, setki ms tak, kilka s tak, setki ms tak i nie 14

Usługi transportowe Internetu usługa TCP: połączeniowa: wymaga inicjalizacji połączenia pomiędzy procesami niezawodna komunikacja pomiędzy procesami kontrola przepływu: nadawca nie przeciąży odbiorcy kontrola przeciążenia: nadawca zwolni, jeśli sieć zostanie przeciążona nie udostępnia: informacji o czasie, gwarancji minimalnej przepustowości usługa UDP: zawodna komunikacja pomiędzy procesami nie udostępnia: tworzenia połączenia, niezawodności, kontroli przepływu, kontroli przeciążenia, informacji o czasie, ani gwarancji przepustowości Pytanie: Po co? Czemu istnieje usługa UDP? 15

Aplikacje Internetowe: protokoły warstw aplikacji i transportu Aplikacja e-mail zdalny terminal WWW transfer plików media strumieniowe Telefonia Internetowa Protokół warstwy aplikacji SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] prywatne (n.p. RealNetworks) prywatne (n.p., Dialpad) Wykorzystywany protokół transportowy TCP TCP TCP TCP TCP lub UDP zwykle UDP 16

Mapa wykładu 2.1 Zasady budowy protokołów w. aplikacji 2.2 WWW i HTTP 2.3 DNS 2.4 Programowanie przy użyciu gniazd TCP 2.5 Programowanie przy użyciu gniazd UDP 2.6 Poczta elektroniczna SMTP, POP3, IMAP 2.7 FTP 2.8 Dystrybucja zawartości Schowki Internetowe Sieci dystrybucji zawartości 2.9 Dzielenie plików P2P 17

WWW i HTTP Najpierw terminologia Strona WWW składa się z obiektów Obiekt może być plikiem HTML, obrazem JPEG, apletem Java, plikiem audio, Strona WWW składa się z bazowego pliku HTML który zawiera szereg odnośników do obiektów Każdy obiekt posiada adres URL (Uniform Resource Locator) Przykładowy URL: www.szkola.edu.pl/katedra/pic.gif nazwa hosta ścieżka 18

Przegląd HTTP HTTP: hypertext transfer protocol Protokół warstwy aplikacji WWW model klient/serwer klient: przeglądarka żąda, otrzymuje, wyświetla obiekty WWW serwer: serwer WWW wysyła obiekty w odpowiedzi na żądania HTTP 1.0: RFC 1945 HTTP 1.1: RFC 2068 PC na którym działa Explorer Mac na którym działa Navigator żądanie HTTP odpowiedź HTTP żądanie HTTP odpowiedź HTTP Serwer, na którym działa serwer WWW Apache 19

Przegląd HTTP (c.d.) Używa TCP: klient nawiązuje połączenie TCP (tworzy gniazdo) do serwera, port 80 serwer przyjmuje połączenie TCP od klienta przeglądarka (klient HTTP) i serwer WWW (serwer HTTP) wymieniają komunikaty HTTP (komunikaty protokołu warstwy aplikacji) połączenie TCP jest zamykane HTTP jest bezstanowy serwer nie utrzymuje i nie wykorzystuje informacji o uprzednich połączeniach HTTP dygresja Protokoły, które utrzymują stan, są złożone! historia (stan) musi być utrzymywana jeśli serwer lub klient będzie miał awarię, informacje o stanie mogą być niezgodne, muszą zostać ujednolicone są problemy z bezpieczeństwem 20

Połączenie HTTP Nietrwałe HTTP Najwyżej jeden obiekt jest posyłany przez połączenie TCP, które potem zostaje zamknięte. HTTP/1.0 używa nietrwałego HTTP Trwałe HTTP Wiele obiektów mogą zostać posłane przez jedno połączenie TCP pomiędzy klientem i serwerem. HTTP/1.1 domyślnie używa trwałego HTTP 21

Nietrwałe HTTP Użytkownik wprowadza adres URL www.szkola.edu.pl/katedra/home.index (strona zawiera tekst, wskazania do 10 obrazów jpeg) czas 1a. Klient HTTP nawiązuje połączenie TCP do serwera HTTP (procesu) pod adresem www.szkola.edu na porcie 80 2. Klient HTTP wysyła komunikat żądania HTTP (zawierający URL) przez gniazdo TCP. Komunikat wskazuje, że klient żąda obiektu katedra/home.index 1b. Serwer HTTP pod adresem www.szkola.edu oczekujący na połączenia TCP na porcie 80 przyjmuje połączenie, powiadamia klienta 3. serwer HTTP odbiera komunikat żądania, tworzy komunikat odpowiedzi zawierający żądany obiekt, i wysyła komunikat przez gniazdo TCP 22

Nietrwałe HTTP(c.d.) czas 5. Klient HTTP odbiera komunikat odpowiedzi zawierający plik html, wyświetla html. Parsując plik html, znajduje 10 wskazywanych obiektów jpg 6. Kroki 1-5 są powtarzane dla każdego z 10 obiektów jpg 4. Serwer HTTP zamyka połączenie TCP. 23

Modelowanie czasu obsługi Definicja RTT (ang. Round Trip Time): czas potrzebny na przesłanie małego pakietu od nadawcy do odbiorcy i z powrotem. Czas obsługi: 1 RTT na część inicjacji połączenia TCP 1 RTT na przesłanie żądania HTTP i na powrót pierwszych bajtów odpowiedzi HTTP czas transmisji pliku razem = 2 RTT + czas transmisji nawiązanie połączenia TCP RTT żądanie pliku RTT plik odebrany czas czas czas transmisji pliku 24

Trwałe HTTP Nietrwałe HTTP: wymaga 2 RTT na każdy obiekt System operacyjny hosta musi pracować i udostępniać zasoby na każde połączenie TCP powolny start TCP jednak przeglądarki często otwierają równoległe połączenia TCP Trwałe HTTP serwer zostawia otwarte połączenie po wysłaniu odpowiedzi następne komunikaty HTTP pomiędzy tym samym klientem i serwerem na tym samym połączeniu TCP Trwałe HTTP bez grupowych żądań: klient wysyła nowe żądanie dopiero, gry odebrał poprzednią odpowiedź 1 RTT na każdy żądany obiekt Trwałe z grupowymi żądaniami: domyślne w HTTP/1.1 klient wysyła żądanie jak tylko znajdzie w stronie wskazany obiekt tylko jeden RTT dla wszystkich żądanych obiektów 25

Komunikat żądania HTTP dwa rodzaje komunikatów HTTP: żądanie, odpowiedź Komunikat żądania HTTP: ASCII (format czytelny dla człowieka) linia żądania (polecenia GET, POST, HEAD) linie nagłówków Carriage return, line feed oznaczają koniec nagłówków GET /katalog/strona.html HTTP/1.1 Host: www.uczelnia.edu.pl User-agent: Mozilla/4.0 Connection: close Accept-language:pl (dane lub pusta linia) 26

Komunikat żądania HTTP: ogólny format metoda sp URL nazwa nagłówka : nazwa nagłówka : sp wersja cr lf wartość cr lf wartość cr lf Linia żądania Linie nagłówków nazwa nagłówka cr lf : wartość cr lf Dane żądania 27

Interfejs CGI Interfejs CGI (ang. Common Gateway Interface): Strony WWW często zawierają formularze Dane z formularzy są przekazywane przez serwer WWW do skryptów Kodowanie w URL: Metoda POST: Używa metody GET Zawartość formularza jest Zawartość formularza posyłana do serwera w jest kodowana w danych żądania adresie URL żądania: www.somesite.com/animalsearch?monkeys&banana 28

Najczęściej używane metody HTTP/1.0 GET POST HEAD prosi serwer o posłanie odpowiedzi bez żądanego obiektu (danych) HTTP/1.1 GET, POST, HEAD PUT wysyła plik w danych żądania, który zostanie umieszczony pod adresem URL (ścieżką) DELETE usuwa obiekt o adresie URL 29

Komunikat odpowiedzi HTTP linia statusu (kod statusu i opis statusu) linie nagłówków dane, n.p., żądany plik HTML HTTP/1.1 200 OK Connection: close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998... Content-Length: 6821 Content-Type: text/html dane dane dane dane dane... 30

Kody statusu odpowiedzi HTTP Zawarte w pierwszej linii odpowiedzi HTTP. Parę przykładów: 200 OK żądanie pomyślnie obsłużone, żądany obiekt będzie w danych odpowiedzi 301 Moved Permanently żądany obiekt przeniesiony, nowy adres dalej w nagłówku (Location:) 400 Bad Request komunikat żądania nie został zrozumiany przez serwer (błąd składni) 404 Not Found żądanego obiektu nie ma na serwerze 505 HTTP Version Not Supported 31

Spróbujcie sami... być klientem HTTP 1. Wykonać telnet na wybrany serwer WWW: telnet www.pjwstk.edu.pl 80 2. Wpisać żądanie HTTP GET: Otwiera połączenie TCP na port 80 (domyślny port serwera HTTP) pod adresem www.eurecom.fr. Wszystkie wpisane znaki zostaną przesłane na port 80 pod adresem www.eurecom.fr GET /index.html HTTP/1.0 Wpisując tę linię (nacisnąć dwa razy enter), wysyła się minimalne (ale pełne) żądanie HTTP GET do serwera HTTP 3. Obejrzeć odpowiedź przysłaną przez serwer HTTP 32

Interakcja użytkownika z serwerem: uwierzytelnienie Uwierzytelnienie : kontroluje dostęp do treści serwera informacja uwierzytelniająca: typowo logi, hasło bezstanowe: klient musi przedstawić informację w każdym żądaniu authorization: linia nagłówka w każdym żądaniu jeśli nie ma nagłówka authorization, serwer odmawia dostępu, wysyła w odpowiedzi nagłówek WWW authenticate klient zwykłe żądanie http 401: authorization req. WWW authenticate: zwykłe żądanie http + Authorization: <cred> usual http response msg zwykłe żądanie http + Authorization: <cred> zwykła odpowiedź http serwer czas 33

Ciasteczka: utrzymywanie stanu Wiele znanych portali WWW używa ciasteczek Cztery składniki: 1) nagłówek cookie w odpowiedzi HTTP 2) nagłówek cookie w żądaniu HTTP 3) plik z ciasteczkami na hoście klienta, zarządzany przez przeglądarkę klienta 4) baza danych na serwerze WWW Przykład: Ania ma dostęp do Internetu z zawsze tego samego komputera Odwiedza pewien portal e-commerce po raz pierwszy Gdy pierwsze żądanie HTTP przybywa do portalu, portal tworzy unikalny identyfikator i wpis w bazie danych na serwerze 34

Ciasteczka: utrzymywanie stanu (c.d.) Plik z ciasteczkami ebay: 8734 Plik z ciasteczkami amazon: 1678 ebay: 8734 tydzień później: Plik z ciasteczkami amazon: 1678 ebay: 8734 klient zwykłe żądanie HTTP usual http response + Set-cookie: 1678 zwykłe żądanie HTTP cookie: 1678 zwykła odpowiedź HTTP zwykłe żądanie HTTP cookie: 1678 zwykła odpowiedź HTTP serwer Serwer tworzy ID 1678 dla użytkownika akcja kontrolowana przez ciasteczko akcja kontrolowana przez ciasteczko wpis do bazy danych na serwerze dostęp dostęp 35

Ciasteczka (c.d.) Co można dzięki ciasteczkom: uwierzytelnienie wózki z zakupami rekomendacje stan sesji użytkownika (np. w banku elektronicznym) dygresja Ciasteczka a prywatność: ciasteczka pozwalają portalom dowiedzieć się wiele o użytkownikach na niektórych portalach, podaje się nazwisko i adres poczty elektronicznej poprzez ciasteczka, wyszukiwarki mogą poznać więcej informacji firmy marketingowe uzyskują informacje z wielu portali i łączą je 36

Warunkowy GET: schowki u klienta klient serwer Cel: nie wysyłać obiektów, jeśli klient ma aktualną kopię w schowku klient: podaje datę kopii w schowku w żądaniu HTTP If-modified-since: <data> żądanie HTTP If-modified-since: <data> odpowiedź HTTP HTTP/1.0 304 Not Modified obiekt nie zmieniony serwer: odpowiedź nie zawiera obiektu, jeśli kopia jest aktualna: HTTP/1.0 304 Not Modified żądanie HTTP If-modified-since: <data> odpowiedź HTTP HTTP/1.0 200 OK <dane> obiekt zmieniony 37

Mapa wykładu 2.1 Zasady budowy protokołów w. aplikacji 2.2 WWW i HTTP 2.3 DNS 2.4 Programowanie przy użyciu gniazd TCP 2.5 Programowanie przy użyciu gniazd UDP 2.6 Poczta elektroniczna SMTP, POP3, IMAP 2.7 FTP 2.8 Dystrybucja zawartości Schowki Internetowe Sieci dystrybucji zawartości 2.9 Dzielenie plików P2P 38

DNS: Domain Name System Ludzie: wiele identyfikatorów: PESEL, nazwisko, numer paszportu Hosty, rutery Internetu: adres IP (32 bity) używany do adresowania pakietów Czy to wystarczy? Co zrobić, jeśli adres IP musi ulec zmianie? Jak określać usługi, które są realizowane przez wiele serwerów? Jak odróżniać różne usługi, które są realizowane przez jeden serwer? Domain Name System: rozproszona baza danych implementowana przez hierarchię wielu serwerów nazw protokół warstwy aplikacji hosty, rutery, serwery nazw komunikują się, żeby tłumaczyć nazwy uwaga: jedna z głównych funkcji Internetu, implementowana jako protokół w warstwie aplikacji złożoność na "brzegu" sieci Rozwiązanie: nazwa, n.p., www.pjwstk.edu.pl używana przez ludzi Pytanie: jak tłumaczyć pomiędzy adresami IP i nazwami? 39

Serwery nazw DNS Czemu nie scentralizować DNS? zagrożenie pojedynczą awarią ilość ruchu odległość od scentralizowanej bazy aktualizacje taki projekt nie jest skalowalny! Zasada delegacji organizacja zarządza strefą nazw w obrębie strefy, może wydzielać mniejsze strefy organizacja przekazuje zarządzanie za strefę innym organizacjom żaden serwer nie zna wszystkich odwzorowań adresów IP i nazw DNS lokalne serwery nazw: każdy DI, organizacja ma lokalny (domyślny) serwer nazw pytanie DNS z hosta jest kierowane najpierw do lokalnego serwera nazw autorytatywny serwer nazw: dla hosta: przechowuje adres IP i nazwę DNS hosta może dokonać odwzorowania pomiędzy nazwą i adresem dla tego hosta 40

DNS: serwery u korzenia lokalny serwer nazw pyta serwer u korzenia, gdy nie może przetłumaczyć nazwy serwer u korzenia: kontaktuje się z serwerem autorytatywnym, jeśli nie zna odwzorowania nazwy otrzymuje odwzorowanie przekazuje odwzorowanie do lokalnego serwera nazw a NSI Herndon, VA c PSInet Herndon, VA d U Maryland College Park, MD g DISA Vienna, VA h ARL Aberdeen, MD j NSI (TBD) Herndon, VA k RIPE London i NORDUnet Stockholm m WIDE Tokyo e NASA Mt View, CA f Internet Software C. Palo Alto, CA b USC-ISI Marina del Rey, CA l ICANN Marina del Rey, CA 13 serwerów u korzenia na całym świecie 41

Prosty przykład działania DNS serwer u korzenia host surf.eurecom.fr potrzebuje adresu IP gaia.cs.umass.edu 1. pyta swój lokalny serwer DNS, dns.eurecom.fr 2. dns.eurecom.fr pyta serwer u korzenia, jeśli to konieczne 3. serwer u korzenia pyta serwer autorytatywny, dns.umass.edu, jeśli to konieczne serwer lokalny dns.eurecom.fr 1 2 6 pytający host surf.eurecom.fr 5 3 4 serwer autorytatywny dns.umass.edu gaia.cs.umass.edu 42

Przykład działania DNS root name server Serwer u korzenia: może nie znać serwera autorytatywnego może znać pośredni serwer nazw: kogo spytać o autorytatywny serwer lokalny serwer nazw dns.eurecom.fr 1 2 8 pytający host surf.eurecom.fr 7 3 6 pośredni serwer nazw dns.umass.edu 4 5 serwer autorytatywny dns.cs.umass.edu gaia.cs.umass.edu 43

DNS: iterowane pytania serwer u korzenia pytanie rekurencyjne: obciąża pytany serwer zadaniem zdobycia odpowiedzi duże obciążenie? pytanie iterowane: pytany serwer odpowiada adresem serwera, który należy pytać dalej Nie znam tej nazwy, ale spytaj ten serwer lokalny serwer dns.eurecom.fr 1 2 8 pytający host surf.eurecom.fr 3 4 7 pytanie iterowane serwer pośredni dns.umass.edu 5 6 serwer autorytatywny dns.cs.umass.edu gaia.cs.umass.edu 44

DNS: schowki i aktualizacja rekordów gdy (dowolny) serwer nazw pozna odwzorowanie, zachowuje je w schowku pozycje w schowku ulegają dezaktualizacji (znikają) po pewnym czasie mechanizmy aktualizacji (powiadamiania) są projektowane prze zietf RFC 2136 http://www.ietf.org/html.charters/dnsind-charter.html 45

Rekordy DNS DNS: rozproszona baza danych przechowująca rekordy zasobów (RZ) format RZ: (nazwa, wartość, typ,czas życia) Typ=A nazwa hosta wartość jest adresem IP Typ=NS nazwa jest domeną (n.p. edu.pl) wartość jest adresem IP autorytatywnego serwera nazw dla tej domeny Typ=CNAME nazwa jest aliasem dla pewnej kanonicznej (prawdziwej) nazwy www.ibm.com jest naprawdę servereast.backup2.ibm.com wartość jest nazwą kanoniczną Typ=MX wartość jest nazwą serwera poczty związanego z nazwą 46

Protokół, komunikaty DNS Protokół DNS : komunikaty pytania i odpowiedzi, oba z tym samym formatem komunikatu nagłówek komunikatu identyfikacja: 16 bitów na numer pytanie, odpowiedź używa tego samego numeru flagi: pytanie lub odpowiedź żądana rekurencja rekurencja dostępna odpowiedź jest autorytatywna identyfikator ilość pytań ilość autorytatywnych rekordów pytania (zmienna ilość) odpowiedzi (zmienna ilość) flagi ilość rekordów ilość dodatkowych rekordów autorytatywne odpowiedzi (zmienna ilość rekordów) dodatkowa informacja (zmienna ilość rekordów) 12 bajtów 47

DNS protocol, messages Name, type fields for a query RRs in response to query records for authoritative servers additional helpful info that may be used 48

Mapa wykładu 2.1 Zasady budowy protokołów w. aplikacji 2.2 WWW i HTTP 2.3 DNS 2.4 Programowanie przy użyciu gniazd TCP 2.5 Programowanie przy użyciu gniazd UDP 2.6 Poczta elektroniczna SMTP, POP3, IMAP 2.7 FTP 2.8 Dystrybucja zawartości Schowki Internetowe Sieci dystrybucji zawartości 2.9 Dzielenie plików P2P 49