Systemy Teleinformatyczne
w Transporcie Morskim
Joanna Szłapczyńska
Katedra Nawigacji, ZD Podstaw Informatyki i Sieci Komputerowych
Wykład 2
Page 2
Model TCP/IP a ISO/OSI
Schemat adresowania w TCP/IP
Protokoły TCP/IP
•
IP (v.4 i v.6)
•
ICMP
•
ARP
•
TCP
•
UDP
Wykład 2
Systemy Teleinformatyczne w Transporcie Morskim
Page 3
Model ISO/OSI a TCP/IP
Systemy Teleinformatyczne w Transporcie Morskim
Page 4
Encapsulacja w TCP/IP
Systemy Teleinformatyczne w Transporcie Morskim
Page 5
Warstwa sieci / internetu jest 3-cią warstwą ISO/OSI w modelu
TCP/IP oferującą
• usługi bezpołączeniowe – każdy datagram jest obsługiwany
niezależnie
• usługi typu „best-effort” – brak gwarancji, że datagram wysłany za
pośrednictwem protokołu IP dotrze do celu (dbają o to warstwy
wyższe!)
• usługi routingu datagramów
• protokoły: IPv4, IPv6, ICMP
TCP/IP – warstwa sieci / internetu
Systemy Teleinformatyczne w Transporcie Morskim
Page 6
Format datagramu IP v.4
Systemy Teleinformatyczne w Transporcie Morskim
Teraz to „zróżnicowane usługi”
wykorzystywane w monitorowaniu QoS
Maksymalny rozmiar enkapsulowanych danych to 65
535 bajtów – 20/24 bajtów (nagłówek)
Długość nagłówka datagramu IP + danych
Monitoruje czas życia datagramu
(przeskoki między routerami)
ID protokołu transportowego w
sekcji danych (np. 0x06 dla TCP)
p
re
a
m
b
u
ła
a
d
re
s
y
o
p
c
je
d
a
n
e
n
a
g
łó
w
e
k
Page 7
Kolejność bitów
Systemy Teleinformatyczne w Transporcie Morskim
W sieciach TCP/IP wykorzystywany jest schemat Big Endian
Page 8
IP – Internet Protocol
IP v.4 address jest 32-bitową liczbą (4 oktety) zdefiniowaną w RFC 791
Adresowanie w sieciach TCP/IP
Systemy Teleinformatyczne w Transporcie Morskim
Request For Comments (RFC) to memorandum opracowane przez
Internet Engineering Task Force (IETF) na temat systemów i standardów
w Internecie
Jeden bajt = osiem bitów = jeden oktet
32 bity (4 * 8 bitów) lub 4 bajty lub 4 oktety
Adres IP v.4 (notacja dziesiętna)
Page 9
MAC to adres wykorzystywany przez warstwę łącza danych
(2-ga warstwa OSI) przypisany fizycznemu urządzeniu
sieciowemu
np. 00-16-76-C8-63-C1
IP
to adres wykorzystywany w warstwie sieci (3-cia warstwa
OSI) przypisany logicznemu urządzeniu sieciowemu
np. 192.168.1.15
Jeden interfejs sieciowy (np. karta sieciowa) może mieć
przypisane
• dokładnie jeden adres fizyczny MAC
• jeden lub więcej adresów IP (np. w sieci LAN z dostępem do Internetu)
Adresy IP oraz MAC
Systemy Teleinformatyczne w Transporcie Morskim
Page 10
Klasy adresów IP (IP v.4)
Systemy Teleinformatyczne w Transporcie Morskim
Page 11
Adres IP (klasy A lub B) dzielony jest na wiele drobniejszych
podsieci (jeden adres IP może obsłużyć większą liczbę sieci ale o
mniejszej liczbie stacji/hostów w każdej w nich)
Maska podsieci to adres IP zdefiniowany następująco
• 1 oznaczają (maskują) sieciową (network prefix) część adresu
• 0 oznaczają część adresu z numerem stacji/hosta (host number)
255.255.255.240 => 11111111.11111111.11111111.11110000
Podsieci IP
Systemy Teleinformatyczne w Transporcie Morskim
Adres sieci + podsieci
Host
Page 12
Classless Inter-Domain Routing (CIDR) jest sposobem tworzenia
wyższego adresu IP z ciągłej grupy adresów niższych
CIDR jest notacją prefiksową, w której slash (/) oddziela bazowy adres IP
od
liczby bitów części sieciowej, np. 156.17.4.32/28
W dostępnej puli adresów hostów adresy: pierwszy (sieć) i ostatni
(rozgłoszeniowy) są z góry zarezerwowane
• dla notacji: xx.xx.xx.xx / k mamy faktycznie dostępne 2
(32 – k)
-2 adresów hostów
Przykład: adres w notacji CIDR:
156.17.4.32/28
maska:
225.225.225.240
adres sieci:
156.17.4.32
adres rozgłoszeniowy:
156.17.4.47
dostępne adresy hostów:
156.17.4.33 – 156.17.4.46
(14 adresów)
CIDR
Systemy Teleinformatyczne w Transporcie Morskim
32 dec = 100000 bin
32 -> 0010
0000
47 -> 0010
1111
Page 13
Adresy prywatne wykorzystywane są w sieciach LAN – pakiety
z tymi adresami nigdy nie będą transferowane do sieci
publicznej
• 10.0.0.0/8 (klasa A)
• 172.16.0.0/12 (klasa B)
• 192.168.0.0/16 (klasa C)
Pętla sprzężenia zwrotnego (127.0.0.1 = localhost) –
specjalny adres IP zdefiniowany jako adres wskazujący na
samego siebie (ten sam interfejs sieciowy)
Adresy prywatne IP i pętla sprzężenia zwrotnego
Systemy Teleinformatyczne w Transporcie Morskim
Page 14
IP v.6 posiada rozszerzoną przestrzeń adresową (adres 128-bitowy
zamiast 32-bitowego w IP v.4), notacja szesnastkowa:
1234:5678:9ABC:DEF0:0000:0000:0000:0123
notacja uproszczona:
1234:5678:9ABC:DEF0:0:0:0:123
1234:5678:9ABC:DEF0::123
IP v.6 – podstawowe nowe właściwości
• bezstanowa autokonfiguracja adresu – ułatwia przypisywanie adresów na
podstawie unikatowych numerów MAC
• standaryzowany rozmiar maski - 64 bitów
• wbudowane mechanizmy zapewniające bezpieczeństwo (obowiązkowy
IPsec)
IP v.6
Systemy Teleinformatyczne w Transporcie Morskim
1 bajt = 8 bitów
Page 15
Internet Control Message Protocol (ICMP) jest jednym z
podstawowych protokołów sygnalizacyjnych warstwy sieci,
transportowanych przez pakiety IP
ICMP jest protokołem monitorowania sieci wykorzystywanym
zazwyczaj do sprawdzania obecności danego adresu IP w sieci
Nagłówek ICMP rozpoczyna się zaraz po nagłówku IP
ICMP
Systemy Teleinformatyczne w Transporcie Morskim
np. ECHO Request
lub ECHO Reply
Page 16
Address Resolution Protocol (ARP) – protokół TCP/IP służący do
konwersji adresów IP na adresy fizyczne MAC
ARP / RARP
Systemy Teleinformatyczne w Transporcie Morskim
IP v.4: 153.19.114.89
=>
MAC: 00-16-76-C8-63-C1
Kody operacji:
1 – żądanie MAC
2 – odpowiedź MAC
3 – żądanie IP (RARP)
4 – odpowiedź IP (RARP)
Page 17
Reverse Address Resolution Protocol (RARP) – protokół TCP/IP
odwrotny do ARP, konwertuje adresy MAC na adresy IP
RARP korzysta z tych samych pakietów do ARP z kodami operacji 3 i 4
Każdy węzeł lokalny (host, router, itd.) utrzymuje swoją tablicę ARP z
mappingiem IP<-> MAC aby zminimalizować komunikację
ARP / RARP
ARP oraz RARP są protokołami umieszczonymi na pograniczu warstw
łącza danych oraz sieci
ARP / RARP
Systemy Teleinformatyczne w Transporcie Morskim
MAC: 00-16-76-C8-63-C1
=>
IP v.4: 153.19.114.89
Page 18
W sieciach TCP/IP warstwa transportowa oferuje dwie usługi typu
end-to-end w ramach protokołów
• Transport Communication Protocol (
TCP) – zorientowany połączeniowo &
niezawodny
• User Datagram Protocol (
UDP) – bezpołączeniowy & zawodny (typu „best-
effort”)
W warstwie transportowej logiczna komunikacja pomiędzy
procesami aplikacji wykorzystywana jest przez najwyższą warstwę
(aplikacji)
Gniazdo sieciowe jest elementem wprowadzającym multipleksację /
demultipleksację statystyczną do procesu komunikacji (za
pośrednictwem portów)
TCP/IP – warstwa transportowa
Systemy Teleinformatyczne w Transporcie Morskim
Page 19
Multipleksacja / demultipleksacja statystyczna
Systemy Teleinformatyczne w Transporcie Morskim
Page 20
Gniazdo sieciowe definiuje połączenie transportowe i zawiera
• typ protokołu transportowego (TCP lub UDP)
• lokalny (źródłowy) adres IP oraz numer portu
• zdalny (docelowy) adres IP oraz numer portu
Port
• identyfikator procesu lub aplikacji służący jako punkt odniesienia w
procesie komunikacji sieciowej
• 16-bitowa liczba całkowita (0 – 65 535)
Numery portów w zakresie od 0 do 1023 są przypisane na stałe
do pewnych znanych typów aplikacji i stanowią tzw.
ogólnie
znane porty (well-known ports)
Gniazdo sieciowe
Systemy Teleinformatyczne w Transporcie Morskim
Page 21
Zazwyczaj procesy nasłuchują na ogólnie znanych portach, a kiedy
aplikacja kliencka przysyła żądanie połączenia, jest ono ustanawiane z
wykorzystaniem innego, prywatnego (>1024) numeru portu (aby umożliwić
innym klientom na połączenie z danym ogólnie znanym portem)
Ogólnie znane porty (well-known ports)
Systemy Teleinformatyczne w Transporcie Morskim
Page 22
Protokół TCP (Transport Communication Protocol) zapewnia niezawodną
i uporządkowaną transmisję strumienia danych pomiędzy końcowymi
procesami aplikacji
Obecnie większość transmisji w sieci Internet oraz sieciach LAN
wykorzystuje protokół
TCP
Proces transmisji TCP dzieli się na fazy
• ustanawianie połączenia - inicjalizacja połączenia przez powitanie 3-etapowe
• transfer danych – właściwy transfer danych
• zamknięcie połączenia – rozłączanie (zamykanie połączenia) i zwolnienie
zaalokowanych wcześniej zasobów
Wymiana danych w protokole TCP polega na wysyłaniu i odbieraniu
potwierdzeń (ACK) -> dane odebrano i są prawidłowe
Protokół TCP (Transport Communication Protocol)
Systemy Teleinformatyczne w Transporcie Morskim
Page 23
Ustanawianie połączenia TCP: powitanie 3-etapowe
Systemy Teleinformatyczne w Transporcie Morskim
SN=100 flaga SYN
SN=300 AN=101
flagi SYN ACK
SN=101 AN=301
flaga ACK
Page 24
Drogi Panie Serwer,
Cieszę się, że chce Pan podjąć
współpracę. Oczekuję od Pana
danych numerowanych począwszy
od 10 012. Zamierzam transferować
dane bez dalszych opóźnień.
Z poważaniem
Jan Klient
Ustanawiane połączenia TCP: przykład 1
Systemy Teleinformatyczne w Transporcie Morskim
Klient
193.12.33.23
Serwer
194.11.13.123
Drogi Panie Serwer,
Chciałbym ustanowić połączenie z Panem
aby przesłać Panu pewne dane do dalszego
przetwarzania na porcie nr 25. Moje dane
będą numerowane począwszy od 55 367 –
przykro mi z powodu tej dziwnej
numeracji, szkoda, że nie mogę zacząć po
prostu od 1!
W oczekiwaniu na Pan odpowiedź,
Jan Klient
Drogi Panie Klient,
Dziękuję za list i ofertę połączenia,
którą akceptuję z przyjemnością.
Biorąc pod uwagę ten w istocie
dziwny system numeracji
rozpocznę transfer od 10 011. Na
podstawie Pańskiego listu
wnioskuję, że Pan będzie
numerował swoje dalsze przesyłki
począwszy od 55 368.
Z poważaniem
Paweł Serwer
Page 25
Pakiet (segment) TCP
Systemy Teleinformatyczne w Transporcie Morskim
Flagi:
CWR – (Congestion Window Reduced) flaga potwierdzająca odebranie powiadomienia przez
nadawcę, umożliwia odbiorcy zaprzestanie wysyłania echa.
ECE – (ECN-Echo) flaga ustawiana przez odbiorcę w momencie otrzymania pakietu z ustawioną
flagą CE
URG – informuje o istotności pola "Priorytet"
ACK – informuje o istotności pola "Numer potwierdzenia"
PSH – wymusza przesłanie pakietu
RST – resetuje połączenie (wymagane ponowne uzgodnienie sekwencji)
SYN – synchronizuje kolejne numery sekwencyjne
FIN – oznacza zakończenie przekazu danych
ISS1 lub SN
ISS2 lub AN
Page 26
Ustanawiane połączenia TCP: przykład 2
Systemy Teleinformatyczne w Transporcie Morskim
SN
X
= 6545666,
SYN(SN
X
)=1,
ACK(?)=0
SN
Y
= 1545088,
AN
Y
= 6545667,
SYN(SN
Y
) =1, ACK(AN
Y
)=1
AN
X
= 1545089
ACK(AN
X
) =1
Klient: inicjalizacja
połączenia
SN=ISN
X
(np. 6545666)
Serwer:
SN=ISN
Y
(np. 1545088)
Page 27
Transfer danych w TCP
Systemy Teleinformatyczne w Transporcie Morskim
Uporządkowany transfer danych- host docelowy porządkuje
przychodzące pakiety zgodnie z numerem sekwencyjnym
Retransmisja zagubionych pakietów – każdy skumulowany oraz
niepotwierdzony strumień danych jest retransmitowany
Transfer bez przekłamań zapewniany jest przez sumy kontrolne CRC
Kontrola przepływu – ograniczanie prędkości nadawania danych w
celu zagwarantowania niezawodnego dostarczenia danych. Odbiorca
musi na bieżąco informować nadawcę jak dużo danych może jeszcze
odebrać (sterowanie ze pomocą
przesuwnego okna). Kiedy bufory
odbiorcze są przepełnione, najbliższe potwierdzenie zawiera rozmiar
okna = 0 aby zatrzymać dalszy transfer na czas przetwarzania danych z
bufora.
Kontrola przeciążeń– za pomocą sterowania rozmiarem okna
przesuwnego
Page 28
Mechanizm przesuwnego okna w TCP (1)
Systemy Teleinformatyczne w Transporcie Morskim
Mechanizm przesuwnego okna w TCP jest implementacją protokołu
Go-Back-N Automatic Repeat reQuest (GBK-N ARQ)
W protokole GBK-N ARQ proces wysyłania trwa tak długo dopóki
wysłana zostanie bez oczekiwania na natychmiastowe
potwierdzenie liczba pakietów o wielkości zgodnej z rozmiarem
okna N (podanego w bajtach)
Proces odbiorczy śledzi numery sekwencyjne nadchodzących
pakietów. Po nadejściu pakietu którego się spodziewa odbiorca
wysyła potwierdzenie (ACK) wraz z tym numerem
Page 29
Mechanizm przesuwnego okna w TCP (2)
Systemy Teleinformatyczne w Transporcie Morskim
Odbiorca ignoruje pakiety przychodzące z innym numerem
sekwencyjnym niż też oczekiwany (o 1 większy od ostatnio odebranego)
niezależnie czy jest to
• „stary” pakiet już dawno potwierdzony który dopiero dotarł
• „przyszły” pakiet wobec pakietu oczekiwanego
Kiedy nadawca wyśle wszystkie pakiety ze swojego okna ustala które z
wysłanych pakietów zostały już potwierdzone i ustawia nowy początek
okna na pakiecie następującym po tym ostatnio potwierdzonym.
Nadawca kontynuuje wysyłanie dalszych pakietów w ramach okna i
powtarza cały proces po ponownym wypełnieniu się okna
Page 30
Faza połączenia TCP : ustawianie rozmiaru okna
Systemy Teleinformatyczne w Transporcie Morskim
Klient
193.12.33.23
Serwer
194.11.13.123
Szanowny Panie Serwerze,
Chciałbym ustanowić połączenie z Panem
….
W oczekiwaniu na Pan odpowiedź,
Jan Klient
Szanowny Panie Serwerze,
Niestety ostatnio nie czuję się zbyt
dobrze, dlatego bez potwierdzenia
mogę przyjąć od Pana jedynie
2 000 bajtów. Poinformuję Pana jeśli
coś w tej kwestii ulegnie zmianie,
jednakże proszę nie oczekiwać ode
mnie więcej niż zadeklarowałem.
Z poważaniem
Jan Klient
Szanowny Panie Kliencie,
Chciałbym Pana poinformować, że
śmiało może mi Pan przesyłać aż
do 20 000 bajtów danych bez
potwierdzenia. W kolejnych listach
będę Pana informował o zmianach.
Z poważaniem
Paweł Serwer
Page 31
Rozmiar okna N odzwierciedla zdolności odbiorcze oraz rozmiary buforów
odbiorczych
W momencie gdy rozmiar N jest zadeklarowany nadawca może z dowolną
prędkością nadać pakiety nie przekraczające rozmiaru okna
Przeciążenie następuje wtedy gdy połączenie lub węzeł muszą przenieść
tak wiele danych, że powoduje to obniżenie jakości świadczonych przez
nie usług. W związku z tym wprowadzono dodatkowy rozmiar okna dla
przeciążeń C (okno przeciążenia)
Liczba wysłanych bajtow – Liczba potwier. bajtów <= min {N, C}
Rozmiar okna C powinien oddawać obecną sytuację w sieci i być
resetowany w przypadku wystąpienia przeciążenia
• w przypadku przeciążenia gdy gubione są pakiety (a wysyłane są pakiety
zadławienia – choke packets) rozmiar okna powinien być zmniejszony o połowę
a opóźnienie retransmisji znacząco wydłużone
Zmiana rozmiaru okna
Systemy Teleinformatyczne w Transporcie Morskim
Page 32
Kontrola przeciążeń
Systemy Teleinformatyczne w Transporcie Morskim
W celu unikania przeciążeń w TCP wykorzystywane są następujące
mechanizmy
• zmiana rozmiaru przesuwnego okna (okno przeciążenia C)
• pakiety zadławienia (choke packets) wysyłane przez routery, informujące
nadawców o występującym przeciążeniu dla danego kierunku transmisji
• mechanizm powolnego startu – rozmiar okna przeciążenia C jest początkowo
ustawiany na małą wartość a później w szybkim tempie zwiększany aż do
osiągnięcia pożądanej wartości docelowej oraz umożliwienia przyspieszenia
transmisji
Page 33
Przesuwne okno i powolny start - symulacja
Systemy Teleinformatyczne w Transporcie Morskim
http://www.osischool.com/protocol/Tcp/slidingWindow/index.php
Page 34
Szanowny Panie Kliencie,
Dziękuję za list oraz ofertę
połączenia, lecz niestety nie mogę
jej przyjąć. Nasz pracownik
pracujący w pokoju nr 25 (port 25)
ma w tej chwili wolne. W związku w
tym proszę spróbować później.
Z wyrazami szacunku
Paweł Serwer
Odrzucenie połączenia TCP (1)
Systemy Teleinformatyczne w Transporcie Morskim
Serwer
194.11.13.123
Klient
193.12.33.23
Szanowny Panie Serwerze,
Chciałbym ustanowić połączenie z Panem
aby przesłać Panu pewne dane do dalszego
przetwarzania na porcie nr 25. Moje dane
będą numerowane począwszy od 55 367 –
przykro mi z powodu tej dziwnej
numeracji, szkoda, że nie mogę zacząć po
prostu od 1!
W oczekiwaniu na Pan odpowiedź,
Jan Klient
Page 35
Odrzucenie połączenia TCP (2)
Systemy Teleinformatyczne w Transporcie Morskim
SYN(ISN
X
)=1,
ACK(?)=0
RST=1
X
Y
X
Y
Klient
193.12.33.23
Serwer
194.11.13.123
Page 36
Zamknięcie połączenia TCP
Systemy Teleinformatyczne w Transporcie Morskim
Page 37
User Datagram Protocol (UDP) jest bezpołączeniowym typu „best
effort” protokołem transportowym w sieciach TCP/IP
Żadne dodatkowe pola ani flagi nie są wymagane dla porządkowania
pakietów oraz zapewnienia niezawodności transmisji -> stąd krótszy
nagłówek niż w TCP
Brak ścisłego nadzoru nad procedurami transmisji czynią ten protokół
bardzo szybkim, lecz dostarczającym usługi które mogą być zawodne
UDP jest wykorzystywany przez np.
• Domain Name System (DNS)
• aplikacje strumieniowego dostępu do mediów (IPTV)
• VoIP
• gry online
UDP
Systemy Teleinformatyczne w Transporcie Morskim
Page 38
Pakiet UDP
Systemy Teleinformatyczne w Transporcie Morskim