• Nie Znaleziono Wyników

PROTOKOŁY TRANSPORTOWE

N/A
N/A
Protected

Academic year: 2021

Share "PROTOKOŁY TRANSPORTOWE"

Copied!
90
0
0

Pełen tekst

(1)

INTERNETOWE PROTOKOŁY

TRANSPORTOWE

(2)

Protokół TCP

(3)

Protokół TCP: historia

• TCP (ang. Transmission Conłrol Protocol — protokół sterowania transmisją) zaprojektowany został w celu zapewnienia niezawodnej transmisji strumieni

bajtowych na bazie (zawodnych z natury) międzysieci.

• Protokół TCP został zdefiniowany w RFC 793 (z 1981 roku).

• Równie istotne są poprawki błędów ujęte w RFC 1122, rozszerzenia poprawiające wydajność z RFC 1323,

selektywne potwierdzenia (RFC 2018), mechanizmy kontroli przeciążeń z RFC 2581, specyfikacja zmiany znaczenia wybranych pól nagłówka w RFC 2873,

ulepszenia zegarów retransmisji w RFC 2988, jawne powiadomienia o przeciążeniach z RFC 3168.

(4)

Protokół TCP: funkcje

• Ponieważ warstwa IP nie gwarantuje niezawodnego dostarczenia datagramu ani nie daje wskazówek co do szybkości wysyłania datagramów, ustanawianie limitów czasowych odpowiedzi i (w razie potrzeby) powtarzanie transmisji, tak żeby w pełni wykorzystać pojemność sieci bez ryzykowania przeciążeń, leży całkowicie w gestii

TCP.

• Kolejna funkcja TCP — odtworzenie oryginalnego komunikatu poprzez ułożenie jego fragmentów we właściwej kolejności.

• TCP musi zapewnić maksymalną wydajność przy określonej niezawodności, której żąda większość użytkowników i której nie jest w stanie zapewnić IP.

(5)

Model usługi TCP: gniazda

• Usługa TCP realizowana jest za pośrednictwem punktów dostępowych, zwanych gniazdami (ang.

sockets).

• Każde gniazdo jest w istocie konkatenacją adresu IP hosta i lokalnego 16-bitowego numeru zwanego

portem.

• Usługa TCP świadczona jest w ramach połączenia, które musi zostać uprzednio nawiązane między gniazdami

obydwu hostów.

• Określone gniazdo może w danej chwili uczestniczyć w kilku połączeniach.

• Określone połączenie jest więc identyfikowane przez parę gniazd i jest to jego jedyna identyfikacja.

(6)

Porty TCP

• Porty o numerach mniejszych niż 1024 określane są mianem tzw. portów znanych (ang. well-known

ports) albo zarezerwowanych — ich wykorzystanie

zarezerwowane jest na potrzeby usług

standardowych.

• Lista dobrze znanych portów zarządzana jest centralnie przez organizację Internet Assigned

Numbers Authority, IANA (www.iana.org); w chwili

obecnej na liście tej znajduje się ponad 700 pozycji.

• Reszta portów jest do dowolnego wykorzystania

aplikacji.

(7)

Niektóre z „dobrze znanych portów”

Port Protokół Zastosowanie

20, 21 FTP Transfer plików

22 SSH Zdalna powłoka logowania 25 SMTP Poczta elektroniczna (e-mail)

80 HTTP WWW

110 POP3 Zdalny dostęp do poczty elektronicznej 143 IMAP Zdalny dostęp do poczty elektronicznej

443 HTTPS Zabezpieczone połączenie do serwera WWW (HTTP w osłonie SSL/TLS) 543 RTSP Sterowanie odtwarzaniem mediów

631 IPP Usługi wydruku

(8)

Model usługi TCP: połączenia

• Wszystkie połączenia TCP są połączeniami

pełnodupleksowymi.

• Są one także połączeniami dwupunktowymi (ang.

point-to-point) – TCP nie obsługuje ani

multicastingu, ani rozgłaszania.

• Dane przesyłane w ramach połączenia TCP

traktowane są jako strumień bajtów, a nie jako strumień komunikatów – granice poszczególnych komunikatów nie są zachowywane podczas

transmisji.

(9)

Model usługi TCP: wysłanie danych

• Dane powierzone TCP mogą zostać wysłane

natychmiastowo, mogą też być buforowane w celu jednorazowego wysłania większej porcji.

• W niektórych przypadkach aplikacja powinna otrzymać przeznaczone dla niej dane natychmiast, niezależnie od ich rozmiaru. Do wymuszania wypychania danych do sieci w TCP służy mechanizm ze znacznikiem PUSH w pakietach.

• Mechanizm pilnych danych (ang. urgent data) stosuje się, gdy aplikacja ma do wysłania dane o wysokim

priorytecie, które powinny zostać przetworzone u odbiorcy bezzwłocznie (poza kolejnością). Znacznik URGENT powoduje chwilowe wstrzymanie przez TCP gromadzenia danych do wysłania i natychmiastowe wysłanie „pilnego” pakietu.

(10)

Protokół TCP: wielkość segmentu

• Hosty biorące udział w połączeniu TCP wymieniają ze sobą dane w jednostkach zwanych segmentami.

• Wielkość segmentu TCP ograniczona jest co najmniej przez dwa czynniki:

• każdy segment wraz z nagłówkiem TCP nie może przekraczać wielkości 65 515 bajtów jako maksymalnej dla treści

datagramu IP;

• rozmiar segmentu nie może przekraczać maksymalnej jednostki transmisji, MTU.

• Mimo to może się zdarzyć, że pakiety IP będą niosły segmenty TCP pofragmentowane. W takim przypadku mamy do czynienia z degradacją wydajności i innymi problemami. Dlatego w TCP realizuje się wykrywanie MTU ścieżki.

(11)

Protokół TCP: protokół okna przesuwnego

• Podstawowym protokołem wykorzystywanym przez encje TCP jest protokół okna przesuwnego z

dynamicznym rozmiarem okna.

• Host wysyłający segment uruchamia jednocześnie stoper.

• Gdy wysłany segment dotrze do hosta docelowego,

jednostka TCP tego ostatniego wysyła zwrotny segment potwierdzający, zawierający następny oczekiwany

numer sekwencyjny i rozmiar pozostałego okna.

• Gdy ów segment potwierdzający nie dotrze w limicie czasowym do hosta wysyłającego, ten wysyła

problematyczny segment ponownie.

(12)

Nagłówek segmentu TCP

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Port nadawcy Port odbiorcy

Numer sekwencyjny, SN

Numer potwierdzenia, ACK SN (jeżeli flaga ACK jest ustawiona) Długość

nagłówka

Zarezer wowane

N S

C W

R E C E

U R G

A C K

P S H

R S T

S Y N

F I N

Rozmiar okna

Suma kontrolna Wskaźnik priorytetu (jeżeli flaga URG jest ustawiona)

Opcje (jeżeli długość nagłówka > 5, to pole jest uzupełniane "0") ...

(13)

Pola nagłówka TCP

• Numer potwierdzenia zawiera numer sekwencyjny związany z następnym oczekiwanym bajtem, nie z bajtem ostatnio otrzymanym. Jest to tak zwane potwierdzenie zbiorcze, ponieważ podsumowuje

odebrane dane pojedynczym numerem potwierdzenia.

• Pole Długość nagłówka TCP określa rozmiar nagłówka liczony w 32-bitowych słowach.

• Znaczniki CWR i ECE służą do sygnalizowania przeciążeń w ramach mechanizmu jawnych powiadomień ECN

(Explicit Congestion Notification), zgodnie z RFC 3168.

(14)

Pola nagłówka TCP (2)

• Ustawienie na 1 znacznika URG oznacza, że zawartość pola Wskaźnik pilności jest istotna – pole to wskazuje przesunięcie bajtowe początku obszaru, w którym

znajdują się pilne dane. Obecnie mechanizm pilnych danych jest stosowany wyjątkowo rzadko.

• Wartość 1 znacznika ACK oznacza, że istotna jest zawartość pola Numer potwierdzenia przy zerowej wartości znacznika zawartość tego pola jest

ignorowana.

• Wartość 1 znacznika PSH identyfikuje dane do natychmiastowego wysłania i natychmiastowego

przekazania ich aplikacji docelowej, bez pośredniego buforowania.

(15)

Pola nagłówka TCP (3)

• Ustawienie znacznika RST sygnalizuje konieczność nagłego zresetowania połączenia. Generalnie

otrzymanie segmentu z ustawionym znacznikiem RST zawsze oznacza wystąpienie sytuacji problematycznej.

• Segmenty z ustawionym znacznikiem SYN używane są do nawiązywania połączeń.

• Ustawiony znacznik FIN oznacza polecenie zwolnienia połączenia, a dokładniej – informację, że host nie

zamierza już wysyłać żadnych danych. Mimo wysłania takiego segmentu host gotowy jest w dalszym ciągu na przyjmowanie danych.

(16)

Pola nagłówka TCP (4)

• Wartość pola Rozmiar okna określa liczbę bajtów, które mogą zostać wysłane, począwszy od bajta o numerze sekwencyjnym określonym w polu Numer

potwierdzenia.

• Zerowa wartość tego pola jest całkowicie poprawna – oznacza ona, że bajty o numerze sekwencyjnym do (Numer potwierdzenia-1) włącznie zostały odebrane poprawnie, lecz z wysyłaniem następnych host

powinien się chwilowo wstrzymać.

• Pole Sumy kontrolnej zapewnia dodatkową kontrolę poprawności transmisji. Suma ta obliczana jest dla obszaru nagłówka uzupełnionego o pseudonagłówek.

(17)

Nawiązywanie połączenia TCP

(18)

Zwalnianie połączenia TCP

(19)

Model TCP zarządzania połączeniami

• Stany automatu skończonego reprezentującego zarządzanie połączeniami TCP

Stan Znaczenie

CLOSED Brak aktywnych połączeń i nieobsłużonych żądań połączenia.

LISTEN Serwer oczekuje na żądanie połączenia.

SYN RCVD Otrzymano żądanie połączenia; oczekiwanie na ACK.

SYN SENT Aplikacja rozpoczyna nawiązywanie połączenia.

ESTABLISHED Normalny stan transmisji danych.

FIN WAIT 1 Aplikacja sygnalizuje zakończenie wysyłania danych.

FIN WAIT 2 Druga strona zgadza się na zwolnienie połączenia.

TIMED WAIT Oczekiwanie na wygaśnięcie wszystkich pakietów.

CLOSING Obydwie strony próbują jednocześnie zamknąć połączenie.

CLOSE WAIT Druga strona połączenia zainicjowała jego zwalnianie.

LAST ACK Oczekiwanie na potwierdzenie zwolnienia połączenia.

(20)

Diagram stanów TCP

(21)

Zarządzanie oknem w TCP

(22)

Okna przesuwne

• Mimo odebrania ogłoszenia zerowego rozmiaru okna host-nadawca może jednak nadal wysyłać dane:

• Po pierwsze, mogą zostać wysłane dane pilne

• Po drugie, host-nadawca może zażądać od hosta-odbiorcy powtórnego przesłania numeru sekwencyjnego następnego spodziewanego bajta oraz rozmiaru okna, by uniknąć

zakleszczenia (ang. deadlock), gdy zagubiony zostanie segment oznajmiający nadawcy niezerowy rozmiar okna.

• Potwierdzenia powinny być wysyłane dopiero wtedy, kiedy udało się odebrać wszystkie dane aż do

potwierdzanego bajta (a nie w momencie odebrania segmentu, który może być poza kolejnością). To tak zwane potwierdzenie zbiorcze.

(23)

Zarządzanie czasem przez TCP

• Do poprawnej pracy protokołu TCP konieczne jest wykorzystywanie wielu zegarów i stoperów:

• Stoper retransmisji (ang. retransmission timeout).

• Stoper przetrwania (ang. persistence timer). Jego zadaniem jest zapobieganie zastojom wywoływanym zagubieniem

komunikatów o rozmiarze okna.

• Stoper żywotności (ang. keepalive timer). W przypadku

dłuższej bezczynności połączenia powoduje on wysłanie do partnera próbnego komunikatu; brak odpowiedzi na ten komunikat powoduje jednostronne zwolnienie połączenia.

• Ostatni z zegarów TCP uruchamiany jest bezpośrednio przed zwolnieniem połączenia, gdy znajduje się ono w stanie TIME WAIT. Jego wartość ustawiana jest na dwukrotność

maksymalnego czasu życia pakietu w sieci.

(24)

Prawdopodobieństwo czasów przybywania potwierdzeń

• (a) w warstwie łącza danych, (b) w protokole TCP

(25)

Prawdopodobieństwo czasów przybywania potwierdzeń

• Ustalenie granicy zbyt malej – jak wartość T

1

– spowoduje wzrost niepotrzebnych retransmisji i

„zaśmiecenie” Internetu niepotrzebnymi pakietami.

• Zbyt duża granica (jak T

2

) spowoduje z kolei spadek efektywności z powodu zbyt długiego oczekiwania na retransmisję pakietów faktycznie zagubionych.

• Co więcej, parametry funkcji gęstości

prawdopodobieństwa podlegać mogą gwałtownym

zmianom w ciągu kilku sekund, głównie z powodu

występowania (i zanikania) przeciążeń.

(26)

Zarządzanie czasem przez TCP:

stoper retransmisji

• Dynamiczny algorytm nieustannego adaptowania

wartości granicznej stopera retransmisji do wyników nieustannie wykonywanych pomiarów wydajności sieci (algorytm Jacobsona, 1988).

• Jacobson uwrażliwił czas graniczny retransmisji na

zmiany RTT i równocześnie powiązał je z filtrowaniem odchyleń RTT.

• Dla każdego połączenia utrzymywana jest zmienna SRTT (Smoothed Round-Trip Time) – najlepszy znany dotąd czas wędrówki pakietu do swego punktu

przeznaczenia.

• W momencie wysyłania segmentu zmierzony zostaje czas nadejścia potwierdzenia R.

(27)

Zarządzanie czasem przez TCP:

stoper retransmisji

• Wartość zmiennej SRTT zostaje zmodyfikowana:

𝑆𝑅𝑇𝑇 = 𝛼 ∙ 𝑆𝑅𝑇𝑇 + 1 − 𝛼 ∙ 𝑅

• RTTVAR (Round-Trip Time VARiation) odchylenie

RTT:

𝑅𝑇𝑇𝑉𝐴𝑅 = 𝛽 ∙ 𝑅𝑇𝑇𝑉𝐴𝑅 + 1 − 𝛽 ∙ 𝑆𝑅𝑇𝑇 − 𝑅

• Stoper retransmisji RTO ustawia się wtedy według wzoru:

𝑅𝑇𝑂 = 𝑆𝑅𝑇𝑇 + 4 ∙ 𝑅𝑇𝑇𝑉𝐴𝑅

• Więcej informacji o sposobie obliczania czasu

retransmisji podaje dokument RFC 2988.

(28)

Kontrola przeciążeń w TCP

• Warstwa sieciowa wykrywa przeciążenie po wzroście długości kolejek pakietów na routerach i próbuje na to przeciążenie reagować, nawet jeśli reakcja sprowadza się do odrzucania pakietów.

• Właściwym adresatem informacji o przeciążeniu sieci jest warstwa transportowa, która powinna zareagować nań poprzez zmniejszenie szybkości wysyłania danych do sieci.

• Kluczowym elementem kontroli przeciążeń jest wdrożenie zasady sterującej addytywnego

przyspieszania i multiplikatywnego spowalniania transmisji AIMD (Additive Increase Multiplicative Decrease), która pozwala na konwergencję do optymalnego punktu pracy sieci.

(29)

Okno przeciążenia oraz okno sterowania przepływem

• W TCP implementowane jest okno przeciążenia (ang.

congestion window), którego rozmiar jest równy liczbie bajtów, jaka może obecnie być transmitowana siecią.

TCP dopasowuje rozmiar okna zgodnie z zasadą AIMD.

• Okno przeciążenia jest utrzymywane obok okna

sterowania przepływem, określającego liczbę bajtów mieszczących się w buforze odbiorcy.

• Oba okna są utrzymywane równocześnie, a liczba bajtów, które nadawca może wysłać do sieci, to mniejszy z rozmiarów obu okien.

• Efektywne okno nadawcze jest kompromisem pomiędzy możliwościami sieci i możliwościami odbiorcy.

(30)

Takt potwierdzeń

• Czasy dostarczania potwierdzeń odzwierciedlają przepustowość najwolniejszego łącza w ścieżce.

• Odstępy czasowe potwierdzeń nazywa się interwałem potwierdzeń albo taktem potwierdzeń (ang. ack clock).

• Dzięki taktowi potwierdzeń TCP wygładza ruch sieciowy i zapobiega niepotrzebnemu natłokowi pakietów w

routerach.

(31)

Algorytm powolnego rozruchu

• Powolny rozruch sprawdza się w przypadku szerokiego zakresu prędkości łączy i czasów opóźnień RTT, a

prędkość wysyłania dostosowuje do możliwości ścieżki sieciowej na podstawie taktu potwierdzeń.

Algorytm powolnego rozruchu z początkowego okna przeciążenia o rozmiarze 1

Addytywne przyspieszanie od początkowego okna przeciążenia o rozmiarze jednego segmentu

(32)

Potwierdzenia powielone i szybka retransmisja

• Nadawca może więc rozpoznać utratę pakietu nie po przekroczeniu czasu retransmisji, ale po

odebraniu potwierdzeń z tymi samymi numerami.

Takie potwierdzenia nazwiemy potwierdzeniami

powielonymi (ang. duplicate acknowledgements).

• Szybka retransmisja (ang. fast retransmission):

kiedy do niej dojdzie, próg powolnego rozruchu jest ustawiany na połowę osiągniętego rozmiaru okna przeciążenia, dokładnie tak jak w przypadku

przekroczenia czasu retransmisji.

(33)

Powolny rozruch i przyspieszanie

addytywne w TCP Tahoe

(34)

Potwierdzenia wybiórcze SACK

• W potwierdzeniach wybiórczych SACK (Selective ACKnowledgements) podaje się maksymalnie trzy zakresy bajtów już odebranych.

• SACK to informacja czysto doradcza. Opcja SACK jest obecnie stosowana bardzo szeroko; opisuje ją

dokument RFC 2883, a mechanizm kontroli przeciążeń w kontekście potwierdzeń SACK opisuje RFC 3517.

(35)

WARSTWA APLIKACJI

(36)

DNS – System Nazw

Domen

(37)

System Nazw Domenowych

• Adresy IP nie są wygodne do zapamiętywania, poza tym nie zawsze są one do określonych zasobów

przypisywane w sposób permanentny

• Posługiwanie się nazwami mnemonicznymi hostów wymaga obecności mechanizmu dokonującego

konwersji tychże nazw na stosowne adresy IP

• Istotą DNS jest nadanie nazwom mnemonicznym

struktury hierarchicznej opartej na koncepcji domen i zarządzanie nimi w postaci rozproszonego systemu baz danych

• System DNS opisany jest w dokumentach RFC 1034,1035 i 2181

(38)

Przestrzeń nazw DNS

• W Internecie najwyższy poziom hierarchii nazw jest zarządzany przez ICANN (ang. Internet Corporation for Assigned Names and Numbers — internetowa

korporacja ds. przydziału nazw i numerów).

• Domeny najwyższego poziomu dzielą się na dwie

kategorie: rodzajowe (ang. generic) i narodowe (ang.

countries).

• W 2010 roku wprowadzono domeny narodowe wykorzystujące znaki diakrytyczne poszczególnych języków.

• Nazwa każdego członu domeny może liczyć co najwyżej 63 znaki; długość całej nazwy domeny ograniczona jest natomiast do 255 znaków.

(39)

Przestrzeń nazw DNS

(40)

Rodzajowe domeny najwyższego poziomu

Domena Planowane przeznaczenie Data utworzenia Ograniczenia?

com Zastosowania komercyjne 1985 Nie

edu Instytucje edukacyjne 1985 Tak

gov Instytucje rządowe 1985 Tak

int Organizacje międzynarodowe 1988 Tak

mil Wojsko 1985 Tak

net Operatorzy sieci 1985 Nie

org Organizacje niekomercyjne 1985 Nie

aero Transport lotniczy 2001 Tak

biz Zastosowania biznesowe 2001 Nie

coop Kooperatywy 2001 Tak

info Działalność informacyjna 2002 Nie

museum Muzea 2002 Tak

name Osoby prywatne 2002 Nie

pro Profesjonaliści 2002 Tak

cat Katalonia 2005 Tak

jobs Zatrudnienie 2005 Tak

mobi Urządzenia mobilne 2005 Tak

tel Dane kontaktowe 2005 Tak

travel Działalność turystyczna 2005 Tak

xxx Branża erotyczna 2010 Nie

(41)

Rekordy zasobów domenowych

• Do każdej domeny mogą być przedzielane rekordy

zasobów (ang. resource records). Rekordy te

składają się na bazę danych systemu DNS.

• Podstawową funkcją DNS jest więc w istocie

odwzorowywanie nazw domen na zbiory rekordów zasobów.

• Rekord zasobów składa się z pięciu części:

Nazwa_domeny Czas_życia Klasa Typ Wartość

(42)

Najważniejsze typy rekordów zasobowych DNS

Typ Znaczenie Wartość

SOA Początek strefy wpływów Parametry strefy serwera nazw

A Adres IP hosta 32-bitowa liczba całkowita

AAAA Adres IPv6 hosta 128-bitowa liczba całkowita

MX Wymiana poczty Nazwa i priorytet serwera pocztowego domeny

NS Serwer nazw Nazwa serwera DNS dla domeny

CNAME Nazwa kanoniczna Nazwa domeny

PTR Wskaźnik Alias adresu IP

SPF Sender Policy Framework Zasady rozsyłania poczty elektronicznej

SRV Usługa Host, na którym uruchomiono usługę

TXT Tekst Tekst w postaci łańcucha ASCII

niepodlegający interpretacji

(43)

Przykład podziału przestrzeni nazw

DNS na strefy

(44)

Serwery nazw

• Położenie granicy stref w obrębie strefy pozostaje w gestii jej administratora. Decyzja ta jest zazwyczaj podejmowana w oparciu o liczbę potrzebnych

serwerów DNS i ich pożądane rozmieszczenie.

• Każda ze stref jest skojarzona z jednym lub wieloma

serwerami nazw.

(45)

13 głównych (pierwszorzędnych)

serwerów DNS

(46)

13 pierwszorzędnych serwerów nazw

Nazwa hosta IP Adresy Zarządca

a.root-servers.net 198.41.0.4, 2001:503:ba3e::2:30 VeriSign, Inc.

b.root-servers.net 192.228.79.201, 2001:500:84::b University of Southern California (ISI) c.root-servers.net 192.33.4.12, 2001:500:2::c Cogent Communications

d.root-servers.net 199.7.91.13, 2001:500:2d::d University of Maryland

e.root-servers.net 192.203.230.10 NASA (Ames Research Center) f.root-servers.net 192.5.5.241, 2001:500:2f::f Internet Systems Consortium, Inc.

g.root-servers.net 192.112.36.4 US Department of Defense (NIC) h.root-servers.net 198.97.190.53, 2001:500:1::53 US Army (Research Lab)

i.root-servers.net 192.36.148.17, 2001:7fe::53 Netnod j.root-servers.net 192.58.128.30, 2001:503:c27::2:30 VeriSign, Inc.

k.root-servers.net 193.0.14.129, 2001:7fd::1 RIPE NCC l.root-servers.net 199.7.83.42, 2001:500:9f::42 ICANN

m.root-servers.net 202.12.27.33, 2001:dc3::35 WIDE Project

(47)

Główne serwery DNS: ponad 130

lokacji fizyczne

(48)

Rozwiązywanie nazw

• Proces wyszukiwania nazwy i odnajdywania adresu sieciowego to tak zwane rozwiązywanie nazw (ang.

name resolution).

• Rekordem wiarygodnym (ang. authoritative record) nazywamy taki rekord, który pochodzi

bezpośrednio od ciała zarządzającego, a więc jako taki jest zawsze poprawny.

• Rekordom wiarygodnym możemy przeciwstawić

rekordy pamiętane (ang. cached records), które

mogą okazać się przeterminowane.

(49)

Przykład wyszukiwania nazwy

zdalnej

(50)

Mechanizmy odpytań

• Kiedy host wysyła swoje zapytanie do lokalnego serwera nazw, ów serwer nazw obsługuje

rozwiązanie nazwy w imieniu hosta dopóty, dopóki może zwrócić ostateczną odpowiedź; lokalny

serwer nazw nie zwraca odpowiedzi częściowych.

Ten mechanizm nosi nazwę zapytania

rekurencyjnego (ang. recursive query).

• Z drugiej strony, pierwszorzędny serwer nazw (i wszystkie kolejne serwery nazw) nie realizuje zapytań rekurencyjnych i odsyła odpowiedź

częściową. Tu mamy do czynienia z zapytaniem

iteracyjnym (ang. iterative query).

(51)

Protokół DNS

• Protokół transportowy wykorzystywany do wymiany zapytań i odpowiedzi jest UDP, port serwera 53.

• Format komunikatu DNS:

NAGŁÓWEK – (Header)

ZAPYTANIE – (Question) do serwera nazw

ODPOWIEDŹ – (Answer) zawiera rekordy będące odpowiedzią

ZWIERZCHNOŚĆ – (Authority) wskazuje serwery zwierzchnie dla domeny DODATKOWA – (Additional) sekcja informacji dodatkowych

(52)

Nagłówek DNS

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

ID

QR OPCODE AA TC RD RA Z RCODE

QDCOUNT ANCOUNT NSCOUNT ARCOUNT

(53)

Pola nagłówka DNS

• ID – identyfikator tworzony przez program wysyłający zapytanie

• QR – określa, czy komunikat jest zapytaniem (0) czy odpowiedzią (1)

• OPCODE – określa rodzaj zapytania wysyłanego od klienta

• AA – oznacza, że odpowiedź jest autorytatywna.

• TC – oznacza, że odpowiedź nie zmieściła się w jednym pakiecie UDP i została obcięta.

• RD – oznacza, że klient żąda rekurencji

• RA – bit oznaczający, że serwer obsługuje zapytania rekurencyjne

• Z – zarezerwowane do przyszłego wykorzystania.

• RCODE – kod odpowiedzi.

• QDCOUNT – określa liczbę wpisów w sekcji zapytania

• ANCOUNT – określa liczbę rekordów zasobów w sekcji odpowiedzi

• NSCOUNT – określa liczbę rekordów serwera w sekcji zwierzchności

• ARCOUNT – określa liczbę rekordów zasobów w sekcji dodatkowej

(54)

Poczta Elektroniczna

(55)

Architektura systemu poczty elektronicznej

• MUA (Mail User Agent) – Program używany przez odbiorcę końcowego do wysyłania, odbierania, filtrowania, czytania, pisania listów itp.

• MTA (Mail Transfer Agent) – Część systemu

pocztowego zajmująca się odbiorem poczty i/lub jej dalszym przekazaniem do innych serwerów

• MDA (Mail Delivery Agent) – Część systemu

pocztowego zajmująca się dostarczaniem poczty do lokalnego użytkownika

(56)

Formaty wiadomości

• Format adresu: użytkownik@nazwa-domenowa

• Każda wiadomość składa się z prymitywnej koperty (opisanej jako część systemu SMTP w dokumencie RFC 5321), nagłówka stanowiącego ciąg pewnej liczby pól, pustego wiersza i ciała.

• Użytkownicy mogą definiować własne pola

nagłówka dla użytku prywatnego. Nazwy tych pól rozpoczynają się przedrostkiem X-.

• RFC 5322 nie narzuca żadnych ograniczeń na treść

wiadomości.

(57)

Zdefiniowane w RFC 5322 podstawowe pola nagłówka

Pole Zawartość

To: Adresy głównych odbiorców Cc: Adresy odbiorców dodatkowych

Bcc: Adresy odbiorców informowanych w sposób poufny o wysłaniu wiadomości From: Identyfikator osoby tworzącej wiadomość

Sender: Adres osoby wysyłającej wiadomość

Received: Pole dodawane przez każdego agenta transmisji napotykanego na trasie wysłanej wiadomości

Return-Path: Adres zwrotny dla odpowiedzi

(58)

Niektóre ze zdefiniowanych w RFC 5322 dodatkowych pól nagłówka

Pole Zawartość

Date: Data i czas wysłania wiadomości

Reply-To: Adres, na który powinna zostać wysłana odpowiedź

Message-Id: Unikalny numer jednoznacznie identyfikujący wiadomość

In-Reply-To: Identyfikator (Message-Id:) wiadomości, dla której niniejsza wiadomość jest odpowiedzią

References: Identyfikatory innych wiadomości powiązanych z niniejszą wiadomością Keywords: Zdefiniowane przez użytkownika pola kluczowe zawarte w treści

wiadomości

Subject: Jednowierszowe streszczenie treści wiadomości

(59)

MIME — uniwersalne rozszerzenie poczty internetowej

• MIME – Multipurpose Internet Mail Extension.

• Elastyczność systemu MIME pozwala stosować go również w innych formach komunikacji z treściami o zróżnicowanym typie, na przykład w systemie WWW.

• System MIME opisano w dokumentach RFC 2045–

2047, 4288, 4289 i 2049.

(60)

Format wiadomości

(61)

Pola nagłówka MIME

Pole Zawartość

MIME-Version: Identyfikator wersji MIME

Content-Description: Nieformalny opis zawartości wiadomości Content-Id: Unikalny identyfikator treści wiadomości

Content-TransferEncoding: Schemat przystosowujący zawartość wiadomości do transmisji sieciowej

Content-Type: Typ i format zawartości wiadomości

(62)

Typy i przykładowe podtypy MIME

Typ Podtyp Rodzaj zawartości

text plain, html, xml, css Dane tekstowe w różnych formatach zapisu image gif, jpeg, tiff Dane graficzne (obrazki)

audio basic, mpeg, mp4 Dane dźwiękowe

video mpeg, mp4, quicktime Filmy

model vrml Modele 3D

application octet-stream, pdf, javascript, zip Dane binarne generowane przez aplikacje

message http,rfc822 Wiadomości osadzone

multipart mixed, alternative, paralell, digest Kombinacje różnych typów

(63)

Transfer wiadomości

• Przesyłanie poczty w Internecie inicjowane jest przez nawiązanie przez agenta użytkownika

połączenia TCP (na port 25) do serwera poczty elektronicznej.

• SMTP – Simple Mail Transfer Protocol (Protokół Prostego Przesyłania Poczty) RFC 2821

• Protokół niezawodnego przesyłania wiadomości

tekstowych (e-mail) za pomocą prostych komend

tekstowych.

(64)

SMTP

(65)

Dialog SMTP

(66)

Komendy SMTP i ESMTP

• SMTP

• ESMTP

Komenda Opis

DATA przesłanie treści listu

HELO nawiązanie połączenia SMTP HELP wypis dostępnych komend MAIL nadawca listu

NOOP podtrzymywanie połączenia QUIT zakończenie sesji SMTP RCPT odbiorca listu

RSET przerwanie sesji SMTP

VRFY sprawdzenie obecności skrzynki pocztowej o podanej nazwie

Komenda Opis

AUTH autoryzacja

DSN powiadamianie o statusie doręczenia EHLO spis obsługiwanych komend ESMTP

ETRN przesłanie kolejki listów przeznaczonych do podłączającego się serwera PIPELINING potokowe przesyłanie wiadomości

SIZE określenie wielkości przesyłanej wiadomości 8BITMIME wsparcie dla 8bitowego kodowania wiadomości

RESTART wznowienie przesyłania wiadomości przy rozłączeniu sesji

(67)

Kody zwrotne SMTP

1xy Wstępna akceptacja komendy Komenda zaakceptowana, ale oczekiwanie na dalszą decyzję użytkownika. Używane tylko w ESMTP

2xy Akceptacja komendy Komenda zaakceptowana, oczekiwanie na następną.

3xy Pośrednia akceptacja komendy Komenda zaakceptowana, ale oczekiwanie na dalszą jej część.

4xy Przejściowe odrzucenie komendy Komenda nie zaakceptowana, tymczasowo 5xy Permanentne odrzucenie komendy Komenda nie zaakceptowana, ostatecznie

Kod Opis

220 Usługa aktywna, oczekiwanie na komendy 250 Akceptacja komendy

354 Oczekiwanie na wprowadzanie treści listu

450 Skrzynka użytkownika zajęta (np. zablokowana przez proces) 452 Skrzynka użytkownika przepełniona

500 Brak takiego polecenia 501 Błąd w składni polecenia

552 Brak miejsca na dysku (serwer)

(68)

SMTP – przekazywanie poczty

między MUA, MTA i MDA

(69)

Protokoły dostarczania końcowego

• Zadaniem programu pocztowego jest

zaprezentowanie zawartości zdalnej skrzynki

pocztowej, a także umożliwienie manipulowania jej zawartością.

• Dostarczanie końcowe musi się odbywać na

zasadzie pobierania oczekujących wiadomości na

żądanie.

(70)

Protokół IMAP

• Jednym z ważniejszych protokołów dostarczania końcowego jest protokół dostępu do wiadomości internetowych, IMAP (Internet Message Access

Protocol).

• Czwarta wersja tego protokołu została zdefiniowana w dokumencie RFC 3501.

• Transport – TCP, port 143.

• Po zalogowaniu klient może wysyłać do serwera

rozliczne polecenia związane z przeglądaniem

wiadomości i folderów oraz zarządzaniem nimi.

(71)

Polecenia protokołu IMAP

Polecenie Opis

CAPABILITY Wypis możliwości serwera

STARTTLS Inicjacja bezpiecznego transportu TLS (patrz rozdział 8.)

LOGIN Logowanie do serwera

AUTHENTICATE Logowanie inną metodą

SELECT Wybranie folderu

EXAMINE Wybranie folderu tylko do odczytu CREATE Utworzenie folderu

DELETE Usunięcie folderu RENAME Zmiana nazwy folderu

SUBSCRIBE Dodanie folderu do zestawu folderów aktywnych UNSUBSCRIBE Usunięcie folderu z zestawu folderów aktywnych

LIST Wypis dostępnych folderów

LSUB Wypis aktywnych folderów

(72)

Polecenia protokołu IMAP (2)

Polecenie Opis

STATUS Pobranie statusu folderu

APPEND Dodanie wiadomości do folderu CHECK Pobranie punktu kontrolnego folderu FETCH Pobranie wiadomości z folderu

SEARCH Wyszukanie wiadomości w folderze STORE Zmiana znaczników wiadomości

COPY Utworzenie kopii wiadomości we wskazanym folderze EXPUNGE Usunięcie wiadomości oznaczonej do usunięcia

UID Polecenia z unikatowymi identyfikatorami

NOOP Brak operacji

CLOSE Usunięcie oznaczonych wiadomości i zamknięcie folderu LOGOUT Wylogowanie i zamknięcie połączenia

(73)

Protokół POP3

• IMAP stanowi rozwinięcie i udoskonalenie

wcześniejszego protokołu dostarczania końcowego, którym był tak zwany protokół urzędu pocztowego, w skrócie POP3 (ang. Post Office Protocol Version 3),

zdefiniowany w RFC 1939.

• POP3 to protokół prostszy, ale też z mniejszą liczbą

funkcji i w typowych zastosowaniach mniej bezpieczny.

• W przypadku POP3 nie mamy wielu możliwości manipulacji wiadomościami po stronie serwera

pocztowego: poczta jest przede wszystkim ściągana na lokalny komputer użytkownika, do jego programu

pocztowego.

• Mimo to POP3 wciąż jest dość szeroko stosowany.

(74)

WWW

(75)

Przegląd architektury WWW

• Z punktu widzenia użytkownika sieć WWW jest

olbrzymią kolekcją rozmaitych treści w postaci stron WWW (ang. Web pages).

• Każda strona zawierać może łącza (ang. links) do innych stron; kliknięcie łącza spowoduje udostępnienie strony, do której ono prowadzi.

• Koncepcja stron powiązanych łączami nazywa się hipertekstem (ang. hypertext).

• Protokół żądania i odpowiedzi do pobierania stron WWW to prosty protokół tekstowy operujący na połączeniach TCP. Nosi on miano HTTP (HyperText Transfer Protocol).

(76)

Architektura sieci WWW

(77)

URL, URI oraz URN

• Każda strona posiada identyfikator w postaci jednolitego lokalizatora zasobów, w skrócie URL (ang. Uniform Resource Locator).

• URL składa się z trzech elementów: protokołu dostępowego (określanego też mianem schematu), nazwy DNS maszyny, na której znajduje się strona, oraz ścieżki jednoznacznie

identyfikującej konkretną stronę w zasobach danego serwera.

http://wmii.uwm.edu.pl/~yakovyna

Protokół (http), nazwa DNS serwera (wmii.uwm.edu.pl), ścieżka (~yakovyna).

• Ścieżka zasadniczo reprezentuje hierarchiczną nazwę

wzorowaną na strukturze systemu plików, ale interpretacja ścieżki pozostaje w gestii serwera WWW, który

niekoniecznie musi ją odwzorować na fizyczną strukturę dyskową.

(78)

URL, URI oraz URN

• Adresy URL zostały z czasem uogólnione do postaci identyfikatorów URI (Uniform Resource Identifiers).

Niektóre URI mówią, jak zlokalizować zasób: są to znane nam już adresy URL.

• Inne URI podają tylko nazwę zasobu, w oderwaniu od jego konkretnej lokalizacji; takie identyfikatory

nazwiemy URN, czyli nazwami zasobów (Uniform Resource Names).

• Reguły zapisu identyfikatorów URI wymienia dokument RFC 3986, natomiast różne schematy URI są zarządzane przez IANA.

URI => http://wmii.uwm.edu.pl/~yakovyna/Sieci_Dzien_5.pdf URL => http://wmii.uwm.edu.pl

URN => /~yakovyna/Sieci_Dzien_5.pdf

(79)

Jak działa przeglądarka

internetowa

(80)

HTTP – protokół przesyłu hipertekstu

• HTTP (HyperText Transfer Protocol) – protokół przesyłu hipertekstu, opisany w dokumencie RFC 2616.

• HTTP to prosty protokół typu żądanie-odpowiedź, zazwyczaj transportowany połączeniem TCP.

Określa on komunikaty, które klient może wysyłać do serwera, oraz odpowiedzi serwera do klienta.

• Treść przesyłana jest opatrywana typem MIME.

(81)

Połączenia HTTP

• Zwyczajowym sposobem kontaktowania się klienta z serwerem WWW jest ustanowienie połączenia

TCP na porcie 80.

• Koncepcja połączenia trwałego (ang.persistent

connection). Po jego nawiązaniu można realizować

wiele żądań.

• Możliwa jest także realizacja żądań potokowych

(ang. pipelined requests) – kiedy kolejne żądanie

jest wysyłane, jeszcze zanim odebrano odpowiedź

na poprzednie.

(82)

Połączenia HTTP

(a) z osobnymi połączeniami dla żądań,

(b) z trwałym połączeniem dla kompletu żądań,

(c) z żądaniami potokowymi w obrębie pojedynczego połączenia

(83)

Metody HTTP

• HTTP: ‹Metoda› ‹URI› HTTP/‹Wersja›

• Każde żądanie HTTP ma postać jednego lub wielu wierszy tekstu, przy czym pierwsze słowo

pierwszego wiersza musi być nazwą metody.

Metoda Przedmiot żądania

GET Pobranie strony WWW

HEAD Pobranie nagłówka strony WWW POST Wystanie danych do strony WWW PUT Wystanie strony WWW na serwer DELETE Usunięcie strony WWW z serwera TRACE Odesłanie otrzymanego żądania

CONNECT Połączenie przez maszynę pośredniczącą (proxy) OPTIONS Opcje dla strony

(84)

Metody HTTP

Żądanie ma ciało

Odpowiedź ma ciało

Bezpieczny Idempotent Cacheable

GET NIE TAK TAK TAK TAK

HEAD NIE NIE TAK TAK TAK

POST TAK TAK NIE NIE TAK

PUT TAK TAK NIE TAK NIE

DELETE NIE TAK NIE TAK NIE

CONNECT TAK TAK NIE NIE NIE

OPTIONS OPCJONALNY TAK TAK TAK NIE

TRACE NIE TAK TAK TAK NIE

PATCH TAK TAK NIE NIE TAK

Bezpieczny (Safe) – nie powinien zmieniać stan serwera

(85)

Odpowiedzi serwera HTTP

Grupa Znaczenie Przykłady

1xx Informacja 100 = serwer zaakceptował żądanie klienta

2xx Powodzenie 200 = akceptacja, pomyślne zrealizowanie żądania 204 = nie żądano zawartości

3xx Przeadresowanie 301 = żądany zasób znajduje się pod innym adresem 304 = kopia strony w pamięci cache jest nadal aktualna 4xx Błąd klienta 403 = zabroniony dostęp do strony

404 = żądana strona nie istnieje 5xx Błąd serwera 500 = wewnętrzny błąd serwera

503 = spróbuj później

(86)

Odpowiedzi serwera HTTP

(87)

Nagłówki komunikatów

• Po linii zawierającej żądanie mogą występować kolejne linie zawierające dodatkową informację związaną z żądaniem.

• Linie te nazywane są nagłówkami żądań (ang.

Request headers) i mogą być porównane z

parametrami wywołania procedury.

• Analogicznie odpowiedź serwera może zawierać

nagłówki odpowiedzi (ang. response headers).

Niektóre z nagłówków mogą być obecne zarówno w

żądaniu, jak i w odpowiedzi.

(88)

Niektóre nagłówki komunikatów HTTP

Nagłówek Typ Zawartość

User-Agent żądanie Informacja o przeglądarce i systemie operacyjnym Accept żądanie Typy stron, które klient jest w stanie obsłużyć Accept-Charset żądanie Zestaw znaków akceptowalny dla klienta Accept-Encoding żądanie Kodowanie obsługiwane przez klienta Accept-Language żądanie Wersja językowa systemu klienta

If-Modified-Since żądanie Czas do sprawdzenia świeżości strony (pobranie warunkowe)

If-None-Match żądanie Weryfikacja znaczników poprzedniego pobrania (pobranie warunkowe)

Host żądanie Nazwa DNS serwera

Authorization żądanie Lista uwierzytelnień klienta

Referer żądanie Poprzedni URL, z którego pochodzi bieżące żądanie Cookie żądanie Ustawione wcześniej ciasteczka, odsyłane do serwera Set-Cookie odpowiedź Ciasteczko do zapisania u klienta

Server odpowiedź Informacja o serwerze

Content-Encoding odpowiedź Sposób kodowania zawartości (np. gzip)

(89)

Niektóre nagłówki komunikatów HTTP

Nagłówek Typ Zawartość

Content-Language odpowiedź Wersja językowa strony Content-Length odpowiedź Długość strony w bajtach Content-Type odpowiedź Typ MIME zawartości strony

Content-Range odpowiedź Identyfikacja fragmentu zawartości strony (pobranie fragmentami)

Last-Modified odpowiedź Data i czas ostatniej modyfikacji strony Expires odpowiedź Termin „ważności” strony

Location odpowiedź Wymuszenie przekazania żądania pod inny adres Accept-Ranges odpowiedź Serwer akceptuje żądania zakresowe (pobieranie

fragmentami)

Date żądanie i odpowiedź Data i czas wysłania komunikatu Range żądanie i odpowiedź Identyfikacja fragmentu strony

Cache-Control żądanie i odpowiedź Dyrektywy sterujące zawartością pamięci podręcznej

ETag żądanie i odpowiedź Dodatkowe znaczniki zawartości strony

Upgrade żądanie i odpowiedź Protokół, na który nadawca żąda przełączenia

(90)

Oraz jeszcze są dużo innych protokołów, zasad działania sieci komputerowych i ich

bezpieczeństwo …

Cytaty

Powiązane dokumenty

Po uruchomieniu klienta (polecenie ftp) pojawia si ę znak zach ę ty ftp>.. 7) Przej ść do katalogu lokalnego /download (polecenie lcd) oraz zdalnego /ftp_pliki

Aktualizacja oprogramowania centrali wojewódzkiej MCA w zakresie obsługi zewnętrznych serwerów bazodanowych, skonfigurowanie systemu SAOL do współpracy z nowym serwerem

Uwaga! Wykonawca wraz z Ofertą zobowiązany jest dostarczyć szczegółową specyfikację techniczną dla oferowanych Urządzeń umożliwiającą weryfikację

Box.com jest dostępny przez WebDAV, podczas gdy OneDrive jest dostępny za pośrednictwem standardowych narzędzi Windows WebDAV (chociaż jest to potrzebne tylko wtedy, gdy nie

3.4 Zabrania się łamania prawa Polskiego oraz prawa UE pod groźbą kary zablokowania konta na 1 dzień do permanentnego. 3.4.1 Prawo UE https://europa.eu/european-union/law_pl 3.4.2

Wykonaj zrzut ekranu przedstawiający konfigurację sieci stacji roboczej i dołącz go do karty pracy. Dokumentacja wykonania zadania –

Opcja ta określa, w którym katalogu będą znajdować się skrypty serwera (zawartość katalogu traktowana jest, jako aplikacje).. AddHandler

należy w odpowiednich polach wpisać nazwę użytkownika (wyłącznie część przed @polsl.pl, chodzi o nazwę użytkownika, a nie o adres poczty elektronicznej) oraz hasło do