SK W05 transport


Sieci komputerowe
Wykład 5.
Warstwa Transportu
Paweł Niewiadomski
Katedra Informatyki Stosowanej
Wydział Matematyki UA
niewiap@math.uni.lodz.pl
Warstwa transportu
" Funkcje
 zapewnienie niezawodnego i efektywnego
transportu danych od procesu do procesu
niezależnego od fizycznej (data-link) i
logicznej (network) topologii sieci
" Protokoły
 TCP
 UDP
Warstwa transportu
" Dlaczego nie wystarczy warstwa sieci?
 kod warstwy sieci
" głównie wykonywany na routerach
 nie mamy wpływu na wykonanie kodu i na jego
niezawodność (uszkodzenia routerów, przeładowanie,& )
" potencjalnie heterogeniczny
 kod warstwy transportu
" wykonywany na komunikujących się hostach
" homogeniczny
 możliwość dostarczenia jednolitych usług dla warstwy
aplikacji
" ukrywa wszelkie niedoskonałości warstwy sieci i
tworzy niezawodne połączenie między procesami
Warstwa transportu
" Dlaczego nie wystarczy warstwa sieci?
 Warstwa sieci
" adresowanie maszyn, nie aplikacji
" Co jeśli na danym hoście uruchomionych kilka
aplikacji?
" Dla któej aplikacji przeznaczony jest pakiet?
 Warstwa transportu
" adresowanie procesów numery portów
" multipleksowanie komunikacji
 kilka interfejsów sieciowych ten sam proces
 ten sam interfejs sieciowy kilka procesów
Warstwa transportu
" Dlaczego nie wystarczy warstwa sieci?
 Warstwa sieci
" zawodna komunikacja nie zajmuje się
sprawdzaniem, czy wszystkie pakiety doszły,
wysyłaniem potwierdzeń, retransmisją&
 Warstwa transportu
" część protokołów zapewnia niezawodność
komunikacji (reliable communication), np. protokół
TCP (najbardziej popularny w komunikacji w
Internecie TCP/IP)
Prototypy procedur w-wy transportu
" Po stronie serwera " Po stronie klienta
 oczekuj  połącz
 przesyłaj  przesyłaj
 odbieraj  odbieraj
 zakończ
 zakończ
Problemy przy połączeniu
" Skąd wiadomo, że serwer dostał pakiet z
żądaniem połączenia?
 Rozwiązanie wysyłanie potwierdzenia (pakiet
ACK) przez serwer.
" Skąd wiadomo, jak długo należy czekać na
potwierdzenie?
 Rozwiązanie ustalamy arbitralnie pewien okres, po
którym wysyłamy żądanie połączenia ponownie.
" Który pakiet żądający połączenia został
zatwierdzony  pierwszy czy drugi, czy któryś z
kolei?
 Rozwiązanie porozumienie trzyetapowe (three-way
handshake).
Porozumienie trzyetapowe
Porozumienie trzyetapowe
CR = żądanie połączenia
(connection request)
odpowiednik SYN
ACK = potwierdzenie
(acknowledgement)
odpowiednik SYN,ACK
DATA = dane
odpowiednik ACK
REJECT = odrzucenie
a.) normalne nawiązanie
połączenia
b.) w sieci pojawił się
opózniony duplikat CR
c.) w sieci pojawiły się dwa
opóznione duplikaty 
numery porządkowe się nie
zgadzają Tannenbaum  Computer networks
Problemy przy kończeniu połączenia
" Typy zakończenia połączenia:
 Asymetryczne zerwanie z jednej strony
powoduje automatycznie zakończenie
przesyłania danych.
" tak jak w telefonie
" Co jeśli druga strona jeszcze nie skończyła
nadawać?
 Symetryczne aby połączenie zostało
zakończone obie strony muszą się co do tego
porozumieć.
" problem dwóch armii
Problem dwóch armii
Tannenbaum  Computer networks
Problem dwóch armii
DR  żądanie
rozłączenia
(disconnection
request)
Tannenbaum  Computer networks
Jak przebiega komunikacja  model
automatu skończonego
" Stany węzły grafu
" Procedury wykonywane
łuki grafu
" Otrzymane pakiety
Jak przebiega komunikacja  model
automatu skończonego
Tannenbaum  Computer networks
Jak przebiega komunikacja  model
automatu skończonego
Tannenbaum  Computer networks
Protokoły warstwy transportu
" User Datagram Protocol (UDP)
 Remote Procedure Call (RPC)
 Real-time Transport Protocol (RTP)
" Transport Control Protocol (TCP)
User Datagram Protocol
" Protokół datagramów użytkownika
" Zapewnia:
 adresowanie procesów
" Nie zapewnia:
 kontroli błędów
 ponownego przesyłania pakietów
 kontroli szybkości przesyłania danych
" Podsumowanie:
 IP + adresowanie procesów = UDP
" Zastosowanie  rzadko:
 DNS (Domain Name System  system nazw domen)
 TFTP (Trivial File Transfer Protocol  praktycznie nie
używany)
Remote Procedure Call
" Zdalne wywoływanie procedur
 Programista wywołuje normalną funkcję, jakby to była
funkcja lokalna
 Specjalny interfejs, tzw. pieniek (stub) odpowiedzialny
jest za przesłanie argumentów funkcji od klienta do
serwera
 Pieniek (stub) po stronie serwera odczytuje
argumenty i wykonuje funkcję na serwerze, a
następnie przesyła wynik do klienta
 Pieniek klienta zwraca wynik funkcji do programu
głównego
" Wszystkie te operacje są przezroczyste dla
programu klienckiego z punktu widzenia
programisty wszystko wygląda, jakby było
wykonane lokalnie.
Remote Procedure Call
Tannenbaum  Computer networks
Remote Procedure Call
" Ograniczenia RPC:
 nie można przekazywać wskazników, jako
argumentów, ani zwracać wskazników jako
wyników funkcji
 nie ma możliwości tworzenia funkcji o
zmiennej liczbie argumentów (np. printf)
 nie ma możliwości przesyłania tablic o
nieokreślonej długości jako argumentów bądz
wyników funkcji
Real-time Transport Protocol
" Protokół transportu w czasie rzeczywistym
" Zastosowanie technologie przesyłania
danych w czasie rzeczywistym (streaming
media):
 Apple Quicktime
 Real Player
 Microsoft NetMeeting telefonia internetowa
 Microsoft NetShow ASF (Advanced
Streaming Format)
 wideokonferencje
 &
Real-time transport protocol
" Podprotokół pomiędzy warstwą aplikacji (serwer
lub klient streaming media) i warstwą transportu
(UDP)
" Funkcja:
 multipleksowanie i demultipleksowanie ścieżek
multimedialnych (np. film = ścieżka wideo + 2 ścieżki
audio  L i P)
 numerowanie pakietów w poszczególnych ścieżkach
 przy zagubionych pakietach można uśrednić wynik
z pakietów sąsiadujących
 synchronizacja ścieżek w czasie i buforowanie
Real-time Transport Protocol
" RTCP  Real-time Transport Control
Protocol
 protokół siostrzany zapewniający informację
zwrotną dla serwera i synchronizację zegarów
poszczególnych ścieżek multimedialnych
Transport Control Protocol
" Protokół kontroli transportu
" Zapewnia:
 adresowanie procesów porty
 komunikację połączeniową (połączenia
identyfikowane przez parę [port zródłowy, port
docelowy])
 niezawodny transport strumienia bajtów przez
potencjalnie zawodną sieć:
" kontrola błędów
" retransmisja danych
" potwierdzenia, &
TCP Jak to działa?
" Strumień bajtów:
 ładowany do TCP przez aplikację klienta
 odbierany z TCP przez aplikację klienta
lub odwrotnie
" Aplikacja nic nie wie o samym transporcie
danych analogicznie do zapisywania
danych do pliku
TCP Jak to działa?
"  Plik TCP tzw. gniazdko (socket)
 adres nr portu
" <1024 tzw. well-known ports dobrze znane
porty zarezerwowane dla standardowych usług
 21 FTP
 22 SSH
 23 Telnet
 25 SMTP
 79 Finger
 80 HTTP
 110 POP-3
 119 NNTP
" w UNIX ie zapisane w pliku /etc/services
TCP Jak to działa?
"  Plik TCP tzw. gniazdko (socket)
 adres nr portu
" >1024 niestandardowe usługi/programy
klienckie
" aplikacja serwera przyłącza się do gniazdka na
określonym numerze portu
" superserwer (w UNIX ie Internet daemon
inetd)
 przyłącza się do kilku portów
 uruchamia odpowiednie aplikacje po otrzymaniu żądania
połączenia
TCP Jak to działa?
"  Plik TCP tzw. gniazdko (socket)
 komunikacja zorientowana na strumień
bajtów, a nie pojedyncze komunikaty
" odbiorca nie wie, w jaki sposób nadawca ładował
dane do gniazdka (wszystkie na raz, kawałkami)
" TCP decyduje o długości segmentów i o ew.
buforowaniu
" Co się stanie, jeśli zależy nam na
natychmiastowym przesłaniu komunikatu?
 flaga PUSH nie czekaj na więcej danych
 flaga URGENT informacja dla aplikacji, że dane
wymagają natychmiastowej uwagi (Ctrl-C w Telnecie)
Nagłówek TCP
Tannenbaum  Computer networks
" SYN
" URG  do natychmiastowego
 bez ACK  connection request
odbioru
 + ACK  odpowiedz na CR
" ACK  potwierdzenie
" FIN  zakończ połączenie
" PSH  push
" RST  ponownie nawiąż poł.
Buforowanie w TCP
Host B
Host A
Aplikacja Aplikacja
Bufor Bufor
nadawcy odbiorcy
Kontrola szybkości
przesyłania w TCP
" Wielkość okna ile danych może aktualnie
znajdować się poza hostem A
" Ograniczenie szybkości przesyłania
2 sytuacje:
 odbiorca ma za mały bufor, żeby przechować
nadchodzace dane ograniczenie przez odbiorcę
(parametr  window size )
 sieć ma za małą przepustowość ograniczenie
przez nadawcę parametry  okienka
przepustowości i  wartości progowej
" Wybierana jest mniejsza z dwóch wartości:
 window size i  wielkośc okna przepustowości
Buforowanie po stronie
odbiorcy w TCP
Tannenbaum  Computer networks
Kontrola zapchania łącza w TCP
" Algorytm  wolnego startu
Tannenbaum  Computer networks


Wyszukiwarka

Podobne podstrony:
0708z sk zlm w05
AGH Sed 4 sed transport & deposition EN ver2 HANDOUT
Fs 1 (tusługa za transport)
[W] Badania Operacyjne Zagadnienia transportowe (2009 04 19)
TRiBO Transport 02
6 6 Zagadnienie transportowe algorytm transportowy przykład 2
Klasyfikacje jÄ…kania
ABC UE Wspólna polityka transportowa Unii Europejskiej (2002)
mk wyklady transport sem 1
GW CW03 A Transport
transportu drogowego Karta pracy
transporter 5 00 00 000
W05 Fizyka Haran
W12 zad transp
materiały do syst transportu
checklist good transport refuse collection

więcej podobnych podstron