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

Podobne dokumenty
MODEL WARSTWOWY PROTOKOŁY TCP/IP

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

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

Sieci komputerowe. Wykład 9: Poczta elektroniczna. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Przesyłania danych przez protokół TCP/IP

Protokoły sieciowe - TCP/IP

Dr Michał Tanaś(

Bazy Danych i Usługi Sieciowe

Dr Michał Tanaś(

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

Bezpieczeństwo poczty elektronicznej

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

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

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

Router programowy z firewallem oparty o iptables

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

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

Architektura aplikacji sieciowych. Architektura klient-serwer

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

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

Model sieci OSI, protokoły sieciowe, adresy IP

Bezpieczeństwo w M875

Sieci komputerowe i bazy danych

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

Problemy z bezpieczeństwem w sieci lokalnej

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

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

SIECI KOMPUTEROWE. Podstawowe wiadomości

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

Programowanie współbieżne i rozproszone

systemów intra- i internetowych Platformy softwarowe dla rozwoju Architektura Internetu (2) Plan prezentacji: Architektura Internetu (1)

Java wybrane technologie

Sieci komputerowe. Wstęp

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

Sprawozdanie nr 4. Ewa Wojtanowska

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

ARP Address Resolution Protocol (RFC 826)

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

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

Zadanie1: Odszukaj w serwisie internetowym Wikipedii informacje na temat usługi DHCP.

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

Laboratorium 3.4.3: Usługi i protokoły

Klient poczty elektronicznej - Thunderbird

Wybrane działy Informatyki Stosowanej

Protokół wymiany sentencji, wersja 1

Model OSI. mgr inż. Krzysztof Szałajko

Java Enterprise Edition spotkanie nr 1 (c.d.) JavaMail

1. FTP 2. SMTP 3. POP3

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

Instrukcja konfigurowania poczty Exchange dla klienta pocztowego użytkowanego poza siecią uczelnianą SGH.

DOKUMENTACJA TECHNICZNA SMS API MT

Sieci komputerowe Warstwa transportowa

Budowa wiadomości SMTP. autorzy: Aleksandra Wichert Marcin Żurowski

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ź

ZiMSK NAT, PAT, ACL 1

1. Model klient-serwer

Zadanie1: Odszukaj w Wolnej Encyklopedii Wikipedii informacje na temat NAT (ang. Network Address Translation).

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

Sieci komputerowe - administracja

Sieci komputerowe - opis przedmiotu

Internetowy serwis Era mail Aplikacja sieci Web

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

Adresy w sieciach komputerowych

Moduł Ethernetowy. instrukcja obsługi. Spis treści

Konfiguracja poczty IMO dla urządzeń mobilnych z systemem ios oraz Android.

Jak zacząć korzystać w HostedExchange.pl ze swojej domeny

Obsługa poczty elektronicznej w domenie emeritus.ue.poznan.pl

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

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

Laboratorium Sieci Komputerowych - 2

Programowanie Sieciowe 1

Instrukcja konfiguracji funkcji skanowania

Warstwa sieciowa. Model OSI Model TCP/IP. Aplikacji. Aplikacji. Prezentacji. Sesji. Transportowa. Transportowa

Zadania z sieci Rozwiązanie

Autorytatywne serwery DNS w technologii Anycast + IPv6 DNS NOVA. Dlaczego DNS jest tak ważny?

Cennik usług Usługa Mobilnego Internetu

Sieci komputerowe - Protokoły warstwy transportowej

Warstwy i funkcje modelu ISO/OSI

Serwer poczty Postfix. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

1 IMAP czy POP3? 2 Instalacja programu Mozilla Thunderbird

Laboratorium podstaw telekomunikacji

Manual konfiguracji konta dla fax2mail

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

pasja-informatyki.pl

Kierunek: technik informatyk 312[01] Semestr: II Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Sprawozdanie. (notatki) Sieci komputerowe i bazy danych. Laboratorium nr.3 Temat: Zastosowanie protokołów przesyłania plików

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

Wykład VI. Administrowanie szkolną siecią komputerową. dr Artur Bartoszewski

Wydział Informatyki, Elektroniki i Telekomunikacji Katedra Telekomunikacji

Podstawowe pojęcia dotyczące sieci komputerowych

SSL (Secure Socket Layer)

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Skrócony podręcznik dla partnerów

Instrukcja konfiguracji programu Microsoft Outlook do współpracy z serwerami hostingowymi obsługiwanymi przez Ideo

Klient-Serwer Komunikacja przy pomocy gniazd

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

Zarządzanie bezpieczeństwem w sieciach

Routing. część 2: tworzenie tablic. Sieci komputerowe. Wykład 3. Marcin Bieńkowski

Sieci komputerowe Wykład

Transkrypt:

Warstwa aplikacji część 2 Sieci komputerowe Wykład 10 Marcin Bieńkowski

Warstwy protokołów warstwa aplikacji HTTP SMTP DNS NTP warstwa transportowa TCP UDP warstwa sieciowa IP warstwa łącza danych Ethernet PPP 802.11 (WiFi) MPLS warstwa fizyczna kable miedziane światłowód DSL fale radiowe 2

W dzisiejszym odcinku Sieci peer-to-peer. NAT (network address translation) a warstwa aplikacji. Wydajność HTTP. Poczta elektroniczna. 3

Peer-to-peer

Klient-serwer a peer-to-peer Do tej pory mówiliśmy o architekturze klient-serwer (HTTP, DNS, poczta elektroniczna, ) Duża część rozwiązań pracuje w architekturze peer-to-peer (BitTorrent, Skype, ) 5

Peer-to-peer Architektura P2P: Wszystkie komputery są jednocześnie klientami i serwerami. Każdy komputer może nawiązywać połączenia z innymi. Brak centralnego miejsca z danymi: Lepsza skalowalność i niezawodność Autonomia ale trudniejsze zagwarantowanie współpracy całości. 6

Niepełne peer-to-peer W większości architektur peer-to-peer istnieją wyróżnione komputery: Przechowują np. bazę użytkowników (Skype) Pomagają w podłączeniu (punkt pierwszego kontaktu + później) komunikaty kontrolne właściwe dane 7

Warstwa aplikacji a warstwa transportowa Peer-to-peer = określenie logiki warstwy aplikacji. Dwa punkty sieci peer-to-peer chcą wymieniać dane. Wykorzystują w tym celu warstwę transportową (TCP lub UDP). Z punktu widzenia TCP lub UDP jeden z nich (serwer) oczekuje na połączenie a drugi (klient) łączy się z nim. 8

Przykład: BitTorrent tracker Podłączanie się do sieci Łączymy się z trackerem. Tracker zna adresy członków sieci i udostępnia adresy niektórych (50-100). Po jakimś czasie możemy prosić o kolejne adresy. 9

BitTorrent: przesyłanie pliku (1) Plik dzielony na kawałki Każdy kawałek pobierany niezależnie Rozmiar kawałka ok. 256 KB - 16 MB Duży żeby okno TCP miało czas urosnąć. Mały żeby plik miał wiele kawałków (urównoleglenie). Seeder = ma wszystkie kawałki. Leecher = ma niektóre kawałki. 10

BitTorrent: przesyłanie pliku (2) Typowo: każdy klient ma mnóstwo chętnych na posiadane kawałki. Klienci zazwyczaj chcą kawałki, które występują najrzadziej w sieci. Seeder wybiera kandydatów wśród chętnych po kolei (co najwyżej Q naraz). Leecher ma listę P innych klientów, którym udostępnia. Tylko pod warunkiem, że dostał od nich coś w zamian. Na liście jest P takich klientów, którzy najszybciej wysyłają mu swoje kawałki. Eksploracja: czasem dajemy kawałek losowemu członkowi może odeśle nam jakiś kawałek odpowiednio szybko? Nowi klienci: jeśli klient mówi, że jest nowy, to dostaje kawałek za darmo. animacja 11

BitTorrent: metadane Z plikiem X związany jest plik.torrent, umieszczany na WWW. Zawiera IP trackera. Zawiera funkcje skrótu dla wszystkich kawałków umożliwia sprawdzenie, czy pobraliśmy dobry kawałek. 12

NAT vs. warstwa aplikacji

NAT Router z funkcją NAT sieć lokalna 192.168.0.0/24 Internet 192.168.0.1 12.34.56.78 Bardzo powszechne rozwiązanie. Z reszty Internetu cała sieć lokalna wygląda tak samo, jak pojedynczy komputer z adresem 12.34.56.78. 14

Co robi router z funkcją NAT? Pakiet Z adresu i portu (A, PA ). A NAT C Do adresu i portu (C, PC ). B NAT na podstawie krotki (A, PA, C, P C ) wybiera port P B. Adres i port źródłowy pakietu podmienione na (B, PB ). Tablica NAT: Przechowuje przez pewien czas przypisanie (A, P A, C, P C ) P B. Dla kolejnych podobnych pakietów przypisanie będzie takie samo. Jeśli przychodzi pakiet z Internetu do (B, PB ) to jego adres i port docelowy zostanie podmieniony na (A, P A ). 15

NAT a P2P Kiedyś: Komunikacja zawsze w modelu klient-serwer. Serwery nie są za routerami z NAT. A NAT C Klienci mogą być za routerami z NAT B Początkowa transmisja (np. TCP SYN) od klienta do serwera tworzy przypisanie (A, P A, C, P C ) P B, dzięki któremu pakiety z odpowiedziami serwera mogą wracać do klienta. Obecnie: Chcemy często przesyłać dane w modelu peer-to-peer (Bittorrent, Skype, ) Obie strony są często za NAT! Brak naturalnej możliwości zainicjowania połączenia. 16

Odwrócone połączenie R NAT A C C chce nawiązać połączenie z A, ale A jest za NAT. Jeśli oba utrzymują kontakt z R, to C może poprosić (przez R) komputer A o nawiązanie bezpośredniego połączenia z C. Stosowane np. w Skype. 17

Odwrócone połączenie R NAT A C C chce nawiązać połączenie z A, ale A jest za NAT. Jeśli oba utrzymują kontakt z R, to C może poprosić (przez R) komputer A o nawiązanie bezpośredniego połączenia z C. Stosowane np. w Skype. 17

Odwrócone połączenie w protokole FTP FTP: protokół przesyłania plików. A NAT komunikacja kontrolna dane C Na początku klient A łączy się z serwerem C na porcie 21 (połączenie na komunikaty kontrolne). A wysyła polecenie chcę pobrać plik i słucham na porcie X C łączy się z portem X klienta A i wysyła plik (odrębne połączenie TCP). Połączenie odrzucane przez NAT. 18

Odwrócone połączenie w protokole FTP FTP: protokół przesyłania plików. A NAT komunikacja kontrolna dane C Na początku klient A łączy się z serwerem C na porcie 21 (połączenie na komunikaty kontrolne). A wysyła polecenie chcę pobrać plik i słucham na porcie X C łączy się z portem X klienta A i wysyła plik (odrębne połączenie TCP). Połączenie odrzucane przez NAT. Tryb pasywny FTP: A wysyła polecenie chce pobrać plik w trybie pasywnym C zaczyna słuchać na porcie Y i wysyła komunikat słucham na porcie Y. A łączy się z portem Y serwera C i pobiera plik. 18

Przekaźniki R NAT NAT A C Jeśli A i C utrzymują kontakt z R, to oba mogą nawiązać połączenie z R i R może przekazywać między nimi dane. Stosowane np. w Skype (jeśli wszystko inne zawiedzie). 19

Przechodzenie przez NAT (1) NAT B R D NAT A C 20

Przechodzenie przez NAT (1) NAT B R D NAT A C A wysyła z portu P A pakiet do R o treści (A,P A ). Na routerze NAT zostaje utworzone przypisanie (A,P A ) (B,P B ). R widzi pakiet o treści (A,P A ) od (B, P B ), tj. poznaje przypisanie wygenerowane przez B. 20

Przechodzenie przez NAT (1) NAT B R D NAT A C A wysyła z portu P A pakiet do R o treści (A,P A ). Na routerze NAT zostaje utworzone przypisanie (A,P A ) (B,P B ). R widzi pakiet o treści (A,P A ) od (B, P B ), tj. poznaje przypisanie wygenerowane przez B. W taki sam sposób R poznaje przypisanie (C,P C ) (D,P D ). R odsyła poznane przypisania do A i C. 20

Przechodzenie przez NAT (2) Fakt: Jeśli R wyśle dane do (D,P D ) to zostaną przesłane do (C,P C ). NAT z przypisaniem (A,P A ) (B,P B ) B R D NAT z przypisaniem (C,P C ) (D,P D ) A C 21

Przechodzenie przez NAT (2) Fakt: Jeśli R wyśle dane do (D,P D ) to zostaną przesłane do (C,P C ). NAT z przypisaniem (A,P A ) (B,P B ) B R D NAT z przypisaniem (C,P C ) (D,P D ) A pakiet do (D,P D ) C Pytanie: Czy jeśli A wyśle dane do (D,P D ) to zostaną przesłane do (C,P C )? 21

Przechodzenie przez NAT (2) Fakt: Jeśli R wyśle dane do (D,P D ) to zostaną przesłane do (C,P C ). NAT z przypisaniem (A,P A ) (B,P B ) B R D NAT z przypisaniem (C,P C ) (D,P D ) A pakiet do (D,P D ) C Pytanie: Czy jeśli A wyśle dane do (D,P D ) to zostaną przesłane do (C,P C )? Niestety nie zawsze! 21

Przechodzenie przez NAT (2) Fakt: Jeśli R wyśle dane do (D,P D ) to zostaną przesłane do (C,P C ). NAT z przypisaniem (A,P A ) (B,P B ) B R D NAT z przypisaniem (C,P C ) (D,P D ) A pakiet do (D,P D ) C Pytanie: Czy jeśli A wyśle dane do (D,P D ) to zostaną przesłane do (C,P C )? Niestety nie zawsze! Ale jeśli tak jest, to możliwa jest komunikacja: A adresuje pakiety do (D,P D ), przychodzą one do C jako pakiety od (B,P B ). C adresuje pakiety do (B,P B ), przychodzą one do A jako pakiety od (D,P D ). 21

Przechodzenie przez NAT (2) Fakt: Jeśli R wyśle dane do (D,P D ) to zostaną przesłane do (C,P C ). NAT z przypisaniem (A,P A ) (B,P B ) B R D NAT z przypisaniem (C,P C ) (D,P D ) A pakiet do (D,P D ) C Pytanie: Czy jeśli A wyśle dane do (D,P D ) to zostaną przesłane do (C,P C )? Niestety nie zawsze! Ale jeśli tak jest, to możliwa jest komunikacja: dlaczego nie? A adresuje pakiety do (D,P D ), przychodzą one do C jako pakiety od (B,P B ). C adresuje pakiety do (B,P B ), przychodzą one do A jako pakiety od (D,P D ). 21

Przechodzenie przez NAT (3) A wysyła pakiet do (D,P D ) NAT z przypisaniem (A,P A ) (B,P B ) B R D NAT z przypisaniem (C,P C ) (D,P D ) A pakiet do (D,P D ) C Poza przypisaniem (C,P C ) (D,P D ) router D pamięta listę odbiorców pakietów, które wychodziły przez (D,P D ). 22

Przechodzenie przez NAT (3) A wysyła pakiet do (D,P D ) NAT z przypisaniem (A,P A ) (B,P B ) B R D NAT z przypisaniem (C,P C ) (D,P D ) A pakiet do (D,P D ) C zawiera (R,P R ) Poza przypisaniem (C,P C ) (D,P D ) router D pamięta listę odbiorców pakietów, które wychodziły przez (D,P D ). 22

Przechodzenie przez NAT (3) A wysyła pakiet do (D,P D ) NAT z przypisaniem (A,P A ) (B,P B ) B R D NAT z przypisaniem (C,P C ) (D,P D ) A pakiet do (D,P D ) C zawiera (R,P R ) Poza przypisaniem (C,P C ) (D,P D ) router D pamięta listę odbiorców pakietów, które wychodziły przez (D,P D ). D przekaże do (C,P C ): wszystkie pakiety (pełny asymetryczny NAT). pakiety tylko od IP z listy (ograniczony as. NAT). pakiety tylko od par (IP,port) z listy (ogranicz. portowo as. NAT). 22

Przechodzenie przez NAT (3) A wysyła pakiet do (D,P D ) NAT z przypisaniem (A,P A ) (B,P B ) B R D NAT z przypisaniem (C,P C ) (D,P D ) A pakiet do (D,P D ) C zawiera (R,P R ) Poza przypisaniem (C,P C ) (D,P D ) router D pamięta listę odbiorców pakietów, które wychodziły przez (D,P D ). D przekaże do (C,P C ): wszystkie pakiety (pełny asymetryczny NAT). pakiet od (A,P A ) przejdzie przez D pakiety tylko od IP z listy (ograniczony as. NAT). pakiety tylko od par (IP,port) z listy (ogranicz. portowo as. NAT). 22

Wybijanie dziur (hole punching) Co z asymetrycznymi ograniczonymi (portowo) NAT? B R D przez (D,P D ) wychodziły już pakiety do (R,P R ) A C 23

Wybijanie dziur (hole punching) Co z asymetrycznymi ograniczonymi (portowo) NAT? B R D przez (D,P D ) wychodziły już pakiety do (R,P R ) A pakiet do (B,P B ) C (C,P C ) wysyła pakiet do (B,P B ). B odrzuca ten pakiet. 23

Wybijanie dziur (hole punching) Co z asymetrycznymi ograniczonymi (portowo) NAT? B R D przez (D,P D ) wychodziły już pakiety do (R,P R ) i do (B,P B ) A pakiet do (B,P B ) C (C,P C ) wysyła pakiet do (B,P B ). B odrzuca ten pakiet. Na routerze D: (B,P B ) dodany do listy odbiórców pakietów wychodzących przez (D,P D )! 23

Wybijanie dziur (hole punching) Co z asymetrycznymi ograniczonymi (portowo) NAT? B R D przez (D,P D ) wychodziły już pakiety do (R,P R ) i do (B,P B ) A pakiet do (D,P D ) pakiet do (B,P B ) C (C,P C ) wysyła pakiet do (B,P B ). B odrzuca ten pakiet. Na routerze D: (B,P B ) dodany do listy odbiórców pakietów wychodzących przez (D,P D )! (A,P A ) wysyła pakiet do (D,P D ): adres źródłowy zostaje podmieniony na (B,PB ) D przepuszcza pakiet od (B,P B ) do (C,P C ). 23

NAT symetryczny NAT z przypisaniem (A,P A ) (B,P B ) B R D NAT z przypisaniem (C,P C ) (D,P D ) A C Milcząco założyliśmy, że jeśli (A,P A ) wysyłało pakiet do (R,P R ) i potem do (D,P D ), to w obu przypadkach B wybierze port P B. NAT asymetryczny: P B zależy tylko od adresu i portu nadawcy. NAT symetryczny: P B zależy od adresu i portu nadawcy i odbiorcy. Wybijanie dziur nie działa, pomagają tylko przekaźniki. 24

Wydajność HTTP

Poprawianie wydajności HTTP Połączenia trwałe: Wiele żądań i odpowiedzi HTTP w jednym połączeniu TCP (standardowe zachowanie HTTP 1.1). Pamięć podręczna w przeglądarce WWW: Zapytanie GET z polem If-Modified-Since: Serwer może umieszczać w nagłówku odpowiedzi pola: Expires: (do kiedy można trzymać dokument w pamięci podręcznej) można całkowicie pominąć żądanie strony. Cache-Control: no-cache (nigdy nie trzymaj w pamięci podręcznej) 26

Serwery proxy (1) serwery WWW w Internecie sieć ISP serwer proxy Przeglądarka wysyła zapytanie HTTP do serwera proxy. Proxy w razie potrzeby łączy się z serwerem HTTP. Serwer proxy odpowiada używając stron przechowywanych w swojej pamięci podręcznej. W razie potrzeby przeglądarka może wymusić pominięcie proxy. 27

Serwery proxy (2) serwery WWW w Internecie sieć ISP serwer proxy Serwer proxy Wpisywany w ustawieniach przeglądarki HTTP Czasem wymuszany przez ISP (integrowany z routerem obsługującym ruch z danej sieci). Korzyści: głównie dla ISP (ograniczenie ilości danych). 28

Anonimiowe serwery proxy Serwer proxy dodaje do żądania HTTP dodatkowe pola. X-Forwarded-For: adres IP. Via: adres IP proxy. Anonimowe serwery proxy: Nie dodają takich nagłówków. Zwykle płatne. 29

Odwrotne proxy (1) klienci WWW w Internecie serwery proxy serwer WWW Wykorzystywane przez dostawców treści. Zmniejszają obciążenie samego serwera WWW. Adresy IP serwerów proxy podawane zazwyczaj przez DNS jako adresy IP przy rozwiązywaniu nazwy serwera WWW. Serwery DNS zazwyczaj zwracają listę adresów IP w losowej albo cyklicznej kolejności. 30

Odwrotne proxy (2) klienci WWW w Internecie serwery proxy serwer WWW Zysk dla klienta i dostawcy treści. Ale wciąż duże opóźnienie w przesyłaniu pakietów pomiędzy klientami i serwerami proxy. Jak opłacalnie przysunąć serwery proxy do klientów? 31

CDN (Content Distribution Networks) klienci WWW w Internecie serwery proxy CDN serwer WWW Serwery proxy obsługiwane przez osobną organizację (obsługuje wiele serwerów WWW). Akamai, Limelight, Setki tysięcy serwerów proxy. CDN utrzymuje również serwery DNS: umożliwiają wybieranie bliskiego serwera proxy. 32

Poczta elektroniczna

Protokół SMTP Protokół przekazywania poczty. Protokół tekstowy, serwer nasłuchuje na porcie 25. 34

Wysyłanie bezpośrednie (1) Chcemy wysłać pocztę do adresu abc@xyx.com. Łączymy się z adresem IP serwera odpowiedzialnego za odbieranie i przechowywanie pocztę dla domeny xyx.com. Rekord MX (mail exchange) w DNS a rekord A: A, ii.uni.wroc.pl 156.17.4.11 MX, ii.uni.wroc.pl swiatowit.ii.uni.wroc.pl A, swiatowit.ii.uni.wroc.pl 156.17.4.1 Wysyłając pocztę do abc@ii.uni.wroc.pl łączymy się z 156.17.4.1 (nie z 156.17.4.11). 35

Wysyłanie bezpośrednie (2) Chcemy wysłać pocztę do adresu abc@xyx.com. nadawca maila MX dla domeny xyz.com klient SMTP serwer SMTP 36

Wysyłanie pośrednie Chcemy wysłać pocztę do adresu abc@xyx.com. Krok 1. nadawca maila SMTP relay / smarthost klient SMTP serwer SMTP Krok 2. SMTP relay / smarthost MX dla domeny xyz.com klient SMTP serwer SMTP (Kroków może być więcej). 37

Wysyłanie pośrednie Chcemy wysłać pocztę do adresu abc@xyx.com. Krok 1. nadawca maila klient SMTP SMTP relay / smarthost serwer SMTP = to co program pocztowy klienta ma ustawione jako serwer SMTP Krok 2. SMTP relay / smarthost MX dla domeny xyz.com klient SMTP serwer SMTP (Kroków może być więcej). 37

Przekazywanie pośrednie Zazwyczaj wymaga autoryzacji nadawcy u SMTP relay Różne mechanizmy autoryzacji są elementem protokołu SMTP. Zabezpieczenie przed rozsyłaniem niechcianej poczty (spamu). Czasem autoryzacja na podstawie adresu IP klienta. 38

Przykładowy email (otrzymany) Delivered-To: marcin.bienkowski@cs.uni.wroc.pl Received: by 10.64.232.142 with SMTP id to14csp146725iec; Sat, 23 Apr 2016 08:41:37-0700 (PDT) Received: from aisd.ii.uni.wroc.pl (algo2014.ii.uni.wroc.pl. [156.17.4.30]) by mx.google.com with ESMTP id l199si7484936lfl.24.2016.04.23.08.41.36 for <marcin.bienkowski@cs.uni.wroc.pl>; Sat, 23 Apr 2016 08:41:36-0700 (PDT) Received: by aisd.ii.uni.wroc.pl (Postfix, from userid 1000) id E6BCD5F84D; pola ustawiane przez odbiorcę pola ustawiane przez serwery pośredniczące Sat, 23 Apr 2016 17:41:35 +0200 (CEST) Date: Sat, 23 Apr 2016 17:41:35 +0200 From: mbi <mbi@ii.uni.wroc.pl> To: marcin.bienkowski@cs.uni.wroc.pl Subject: Testowy email Message-ID: <20160423154135.GA11834@aisd.ii.uni.wroc.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 pola ustawiane przez nadawcę Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.5.23 (2014-03-12) Jakaś treść maila. M. 39

Pola nagłówka ustawiane przez klienta From: To: Subject: Cc: Bcc: ( ślepa kopia ) Message-ID: (unikatowy identyfikator wiadomości) Date: (data wysłania) In-Reply-To: (ID maila, na którego odpowiadamy) References: 40

Typ zawartości Pole Content-Type: nagłówka określa: czym jest treść maila (w standardzie MIME) czysty tekst (text/plain) HTML (text/html) kodowanie znaków Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit 41

Załączniki pocztowe Content-Type: multipart/mixed; boundary= --UNIKATOWY-CIĄG-ZNAKÓW Content-Transfer-Encoding: 8bit --UNIKATOWY-CIĄG-ZNAKÓW Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit treść tekstowego maila w UTF-8 Wiadomość testowa M. --UNIKATOWY-CIĄG-ZNAKÓW Content-Type: image/jpeg Content-Disposition: attachment; filename="obrazek.jpg" Content-Transfer-Encoding: base64 załącznik obrazek.jpg ZAWARTOŚĆ-PLIKU-ZAKODOWANA-W-BASE64. --UNIKATOWY-CIĄG-ZNAKÓW 42

Dostarczanie poczty do użytkownika Protokół POP3. Protokół IMAP. Klienty pocztowe jako aplikacje WWW. 43

Spam: niechciane wiadomości pocztowe Sposoby wykrywania i usuwania spamu: ręczne blokowanie konkretnych tematów / nadawców metody statystyczne, uczenie maszynowe greylisting SPF 44

Greylisting Wolne wysyłanie spamu jest nieopłacalne. Pomysł: każemy klientowi SMTP wysłać wiadomość ponownie za jakiś czas: -> MAIL FROM: <nadawca@jakasdomena.pl> <- 250 2.1.0 Sender ok -> RCPT TO: <odbiorca@innadomena.pl> <- 451 4.7.1 Please try again later Ustawiamy okno czasowe (np. nie wcześniej niż za 10 min. i nie później niż po godzinie ). Jeśli klient ponowi w danym oknie czasowym, to akceptujemy jego email. Problemy z poprawnym ustawieniem okna. Dostarczanie poczty przestaje być szybkim procesem. Stosowany wariant: zamiast odrzucać, odbieraj wolniej z okna TCP. 45

Spam: SPF (Sender Policy Framework) Rekord SPF (o typie TXT) w DNS dla danej domeny: TXT, ii.uni.wroc.pl v=spf1 ip4:156.17.4.0/24 mx:ii.uni.wroc.pl mx:gmail.com mx:google.com -all" Definiuje jakie komputery są uprawnione do wysyłania poczty z polem From: równym adres@ii.uni.wroc.pl. komputery z adresów 156.17.4.0/24. serwery SMTP obsługujące pocztę dla domen ii.uni.wroc.pl, gmail.com i google.com. Rekord sprawdzany przez odbiorcę. 46

Lektura dodatkowa Kurose & Ross: rozdział 2. Tanenbaum: rozdział 7. 47