Stos TCP/IP Warstwa transportowa

Transkrypt

Stos TCP/IP Warstwa transportowa
aplikacji
transportowa
Internetu
Stos TCP/IP
Warstwa transportowa
Warstwa aplikacji cz.1
dostępu do sieci
Sieci komputerowe
Wykład 5
Podstawowe zadania warstwy
transportowej
• Segmentacja danych aplikacji wyższej
warstwy.
• Zapewnienie pełnej łączności (ang. end-toend).
• Zapewnienie niezawodności danych.
• Kontrola przepływu.
Port
• Identyfikacja przynależności danej
transmisji do konkretnego procesu odbywa
się na podstawie numeru portu
• Jest liczbą 16-bitową związaną z procesem
komunikacyjnym w sieci
• Np. serwer WWW rezerwuje sobie port 80,
pod którym może odbierać zapytania i
wysyłać odpowiedzi
Gniazdo
• Połączenie numeru portu i adresu IP daje
tzw. gniazdo (ang. socket).
• 2 komputery komunikujące się ze sobą
charakteryzuje podwójna para adr. IP:port
Np. 54.213.242.123:80 – 216.21.44.231:6002
(W systemach UNIX-owych dwukropek
zastąpiony jest kropką)
Numery portów
• Pula 0-65535.
• Tzw. dobrze znane porty (ang. well-known
port number) 0-1023 (RFC 1700)
• 1024-65535 porty wysokie, możliwe do
wykorzystania przez dowolne aplikacje
(IANA opisuje porty do numeru 49151)
• Większość standardowych połączeń
odbywa się z wysokich portów na niskie.
Protokoły transportowe
• UDP (ang. User Datagram Protocol)
– protokół bezpołączeniowy
• TCP (ang. Transmission Control Protocol)
– protokół niezawodny i połączeniowy
Protokół UDP
• Nie ustanawia w żaden sposób połączenia
• Nie sprawdza gotowości odległego komputera do
odebrania danych
• Mniejsza ilość informacji kontrolnych co
zwiększa efektywność tego protokołu
• Jednostką danych jest pakiet
• Wykorzystywany do wysyłania małych porcji
danych: SNMP, DHCP, DNS, BOOTP
Format pakietu UDP
16 b
16 b
Port
źródłowy
Port
Długość
docelowy
UDP - RFC 768
16 b
16 b
...
Suma
Dane
kontrolna
Znaczenie pól pakietu
• Porty źródłowy i docelowy pakietu UDP
• Długość (nagłówek i dane) w bajtach (min
8, max zależne od warstw niższych)
• Suma kontrolna – tworzona na podstawie
nagłówka i danych pakietu
Zalety UDP
• Niektóre aplikacje same dbają o kontrolę
poprawności transmisji więc nie potrzeba
tego robić na poziomie protokołu transmisji
• Lepsze rozwiązanie dla przesyłu małych
porcji danych, przy wykorzystaniu
protokołu połączeniowego ilość danych
przesyłanych mogłaby zrównać się z ilością
danych kontrolnych
Protokół TCP
• Działa na strumieniu bajtów - połączenie.
• Sprawdza, czy dane zostały dostarczone
poprawnie i w określonej kolejności –
niezawodność.
• Jednostką danych jest segment (komunikat)
Współpraca TCP z IP
Każdy komunikat TCP jest kapsułkowany w
datagramie IP i wysyłany intersiecią.
Nagłówek IP
Komunikat TCP
IP nie analizuje zawartości, traktuje każdy
komunikat TCP jak dane do przesłania.
Budowa segmentu TCP
0
4
10
16
24
31
Port źródłowy
Port docelowy
Numer kolejny
Numer potwierdzenia
PrzesuZarezerFlagi
Okno
nięcie
wowane
Suma kontrolna
Opcje
Wskaźnik pilności
Uzupełnienie
Dane
...
Opis pól segmentu TCP cz.1
• Porty
• Numer kolejny (ang. sequence
number) numer kolejny bajtu
danych w tym połączeniu
• Numer potwierdzenia (ang.
acknownledgment number)
numer potwierdzający
odebranie poprzednich bajtów
• Przesunięcie – (ang. data offset)
wskazuje początek danych
• Zarezerwowane – przyszłe
wykorzystanie, wartość 0
• Flagi – kolejne bity oznaczają:
URG – pole pilnego wskaźnika
ACK – pole potwierdzenia
PSH – funkcja przepychania
RST – zresetuj połączenie
SYN – ustawiona podczas
nawiązywania połączenia,
używana do synchr. numerów
kolejnych
FIN – koniec połączenia
Opis pól segmentu TCP cz.2
• Okno – liczba bajtów
danych, które wolno
wysłać nadawcy bez
potwierdzenia odbioru
• Suma kontrolna –
nagłówka i danych
• Wskaźnik pilności –
(ang. urgent pointer)
numer kolejny bajtu
po „pilnych danych”
• Opcje – 44 bity (np.
timestamp, maximum
segment size, MD5
signature)
• Uzupełnienie – uzup.
opcje zerami do 32
bitów
• Dane
Wielkość segmentu TCP
• Max. teoretyczny rozmiar 65535 bajtów
Praktyczny rozmiar dla sieci:
• Ethernet – 1500 bajtów
• FDDI – 4472 bajty
• Token Ring (4Mb/s) – 4472 bajty
Nawiązywanie połączenia przez
TCP
Komputer A
Komputer B
Wysyła SYN (ISN=x)
Odbiera SYN (ISN=x)
Wysyła SYN (ISN=y,
ACK=x+1)
Odbiera SYN (ISN=y,
ACK=x+1)
Wysyła ACK (ACK=x+1)
Odbiera ACK (ACK=x+1)
t
t
Przykład retransmisji TCP
Komputer A
Komputer B
Wysyła komunikat 1
Odbiera komunikat 1
Wysyła potwierdzenie 1+1
Odbiera potwierdzenie 1+1
Wysyła komunikat 2
Odbiera komunikat 2
Wysyła potwierdzenie 2+1
Odbiera potwierdzenie 2+1
Wysyła komunikat 3
Zgubienie pakietu
Przekroczenie czasu retransmisji
Wysyła ponownie komunikat 3
Odbiera komunikat 3
Wysyła potwierdzenie 3+1
t
t
Okna
Komputer A
Komputer B
Wysyła komunikat 1
Wysyła komunikat 2
Wysyła komunikat 3
Odbiera komunikat 1,2,3
Wysyła potwierdzenie 4
Wysyła komunikat 4
Wysyła komunikat 5
Wysyła komunikat 6
Odbiera komunikat 4,5,6
Wysyła potwierdzenie 7
t
t
okno TCP animacja
Warstwa aplikacji
stos TCP/IP
Architektura klient-serwer
• Istnieją dwa programy zaangażowane w
wymianę informacji
• Klient – program, który aktywnie inicjuje
połączenie
• Serwer – program biernie oczekujący na
połączenie, świadczy usługi klientom, może
obsługiwać jednocześnie wielu klientów
Cechy programów klient i serwer
Oprogramowanie klient
•
•
•
•
•
Dowolny program użytkowy,
wykonuje również obliczenia lokalne.
Wywoływany przez użytkownika,
czas wykonania obejmuje jedną sesję.
Działa lokalnie na komputerze
osobistym użytkownika.
Może kontaktować się z wieloma
serwerami, jednak jednocześnie tylko
z jednym aktywnym.
Nie wymaga specjalnego sprzętu ani
specjalnego systemu operacyjnego.
Oprogramowanie serwer
•
•
•
•
•
•
Jest specjalizowanym,
uprzywilejowanym programem, którego
zadaniem jest świadczenie konkretnej
usługi.
Może obsługiwać naraz wielu klientów.
Jest uruchamiane automatycznie przy
starcie systemu i działa przez wiele
kolejnych sesji.
Działa na publicznie dostępnym
komputerze
Przyjmuje połączenia od dowolnie
odległych klientów
Wymaga wydajnego sprzętu i
wyrafinowanego systemu operacyjnego.
Architektura klient - serwer
KLIENT 11
KLIENT 31
transportowa
transportowa
SERWER 1
Internetu
SERWER2
SERWER3
Internetu
transportowa
dostępu do sieci
dostępu do sieci
Internetu
dostępu do sieci
KLIENT 22
KLIENT 21
transportowa
Internetu
dostępu do sieci
transportowa
Internetu
dostępu do sieci
System DNS
• Zapamiętywanie adresów IP jest trudne dla
człowieka.
• Wprowadzono łatwe do zapamiętania,
hierarchiczne nazwy
• DNS (ang. Domain Name System) zapewnia
zamianę nazwy komputera na jego adres IP.
Najprostszy system
rozwiązywania nazw – plik hosts
# Plik hosts dla wirtualnego browaru/wirtualnej winiarni
# IP FQDN aliasy
#
127.0.0.1
localhost
#
172.16.1.1 vlager.vbrew.com vlager vlager-if1
172.16.1.2 vstout.vbrew.com vstout
172.16.1.3 vale.vbrew.com vale
#
172.16.2.1 vlager-if2
172.16.2.2 vbeaujolais.vbrew.com vbeaujolais
172.16.2.3 vbardolino.vbrew.com vbardolino
172.16.2.4 vchianti.vbrew.com vchianti
Struktura nazw domen
.
com
google
edu
lego
(...)
edu
pl
kalisz
de
com
(...)
arpa
in-addr
195
212
Zarządzanie przestrzenią nazw
domenowych
• ICANN ( ang. The Internet Corporation for
Assigned Names and Numbers)
• Domeny głównego poziomu dzielą się na
domeny organizacyjne (com, edu, gov, mil,
net, ini, org) i geograficzne (pl, uk, de ...)
• Październik 2000 dodano info, biz, aero,
name, pro, museum, coop
• domeny najwyższego poziomu w postaci
własnego dwuliterowego kodu kraju
(ISO-3166)
Serwery DNS
• Rozproszona baza danych o adresach.
• Serwery główne (ang. root servers)
• Każdy serwer DNS ma pełne informacje o
części przestrzeni nazw zwanej strefą.
• Delegacja strefy – oddanie części struktury
drzewiastej kolejnemu serwerowi DNS
• Dwa rodzaje serwerów – podstawowy i
zapasowy (podrzędny) serwer DNS
Działanie systemu DNS
• Oprogramowanie tłumaczące tzw. program
resolwer (ang. resolver) – biblioteka
procedur wywoływana przez programy
użytkowe.
• Resolwer wysyła zapytanie do serwera
DNS.
• Ten serwer wysyła zapytanie do innych
serwerów DNS i odpowiada resolwerowi.
Szczegóły działania DNS
Root Serwer
Serwer A
Adres IP dla www.firma.com.pl?
Komputer A
Server domeny pl
Adres IP www.firma.com.pl to x.x.x.x
Serwer domeny
com.pl
Serwer domeny firma.com.pl
Protokół SMTP
• (ang. Simple Mail Transfer Protocol)
• Podstawowy protokół transmisji poczty
elektronicznej w Internecie
• Serwer SMTP jest często określany jako serwer
poczty wychodzącej
• Dotyczy niezawodnego przekazywania danych
• Aktualne RFC pod adresem:
http://www.networksorcery.com/enp/protocol/smtp.htm
Odwzorowanie odwrotne
Znajdowanie adresu IP należącego do hosta jest pewnie
najpowszechniejszym zastosowaniem systemu nazw domen,
ale czasem chcesz znaleźć kanoniczną nazwę hosta
odpowiadającą adresowi. Znajdowanie nazwy hosta jest
nazywane odwzorowaniem odwrotnym (ang. reverse mapping)
i jest używane przez pewne usługi sieciowe do
weryfikacji tożsamości klienta. Wyszukiwanie odwrotne,
przeprowadzane w oparciu o plik hosts, polega po prostu
na przeszukaniu pliku i znalezieniu w nim hosta, do
którego należy poszukiwany adres IP. W przypadku DNS-u
skrupulatne przeszukiwanie przestrzeni nazw jest
wykluczone. Zamiast tego została stworzona specjalna
domena in-addr.arpa, która zawiera adresy IP wszystkich
hostów zapisane w odwrotnej notacji kropkowej.
Na przykład adres IP 149.76.12.4 odpowiada nazwie
4.12.76.149.in-addr.arpa.
Protokół MIME
• (ang. Multipurpose Internet Mail
Extensions)
• Umożliwia definiowanie różnych typów
danych przesyłanych pocztą elektroniczną
(umożliwia wysyłanie załączników)
• RFC 2045-2049
Protokół POP
• (ang. Post Office Protocol)
• Protokół służący do odbierania poczty z
serwera
• Wymaga zalogowania do serwera
• Aktualne RFC pod adresem:
http://www.networksorcery.com/enp/protocol/pop.htm
Protokół IMAP
• (ang. Internet Message Accesss Protocol)
• Protokół służący do odbierania poczty z
serwera
• Większe możliwości od POP
• Aktualne RFC pod adresem:
http://www.networksorcery.com/enp/protocol/imap.htm
Przesyłanie poczty elektronicznej
Nadawca
Komputer ze skrzynką pocztową
Klient
pocztowy
Program
transportowy
Komputer
użytkownika
Skrzynka
użytkownika
Serwer POP
Serwer SMTP
Internet
Klient POP