Przeznaczenie i charakterystyka
Umożliwia niezawodny transfer wiadomości pomiędzy parą
węzłów w sieci
TCP:
Charakterystyka:
Transfer danych strumieniowych (TCP dzieli je na segmenty
i niezawodnie przekazuje)
Niezawodność (wymagane potwierdzenie)
Sterowanie przepływem (dostosowanie szybkości do
możliwości odbioru)
Multipleksowanie (korzystanie z różnych portów)
Połączenia logiczne (możliwe kilka sesji <połączeń TCP> o
różnych parametrach)
Pełny dupleks
Przeznaczenie:
TCP
jest protokołem niezawodnym, połączeniowym,
działającym na strumieniach bajtów.
Niezawodność TCP jest zapewniana za pomocą mechanizmu
pozytywnego potwierdzania z retransmisją (
Positive
Acknowledgment with Retransmission - PAR
). Stacja nadająca
wysyła dane w postaci elementarnych jednostek -
segmentów, posiadających sumę kontrolną, wykorzystywaną
do
stwierdzenia, czy dane zostały odebrane poprawnie. Jeśli
stacja odbierająca
stwierdzi, że dane są poprawne wysyła potwierdzenie. Brak
potwierdzenia
interpretowany jest przez stację nadającą jako żądanie
retransmisji utraconego
segmentu.
Połączeniowość protokołu TCP oznacza konieczność
nawiązania połączenia
logicznego pomiędzy wymieniającymi informację stacjami.
Odbywa się to w drodze wymiany informacji kontrolnych,
ustanawiających dialog -
handshake
. Stosowany jest
trzystanowy handshake, co oznacza, że stacje nawiązujące
połączenie wymieniają trzy komunikaty: SYN, SYN ACK i
ACK.
Protokoły warstwy transportowej -
Protokoły warstwy transportowej -
host-to-host
host-to-host
Budowa segmentu TCP
Budowa segmentu TCP
PAR -
PAR -
Positive
Positive
Acknowledgment
Acknowledgment
with
with
Retransmission
Retransmission
HANDSHAKE
HANDSHAKE
Protokół UDP jest niepewnym, bezpołączeniowym protokołem przekazywania
datagramów.
Niepewność protokołu oznacza, że nie jest on wyposażony
w mechanizmy kontroli poprawności dostarczania danych do miejsca
przeznaczenia.
Bezpołączeniowość oznacza, że nie występuje faza nawiązywania
połączenia. Protokół UDP zorientowany jest na przekazywanie przez sieć
komunikatów.
DANE
suma
kontrolna
długość
port docelowy
port źródłowy
4 bajty
Protokoły warstwy transportowej -
Protokoły warstwy transportowej -
host-to-host
host-to-host
Protokoły TCP/IP posiadają szereg cech, ułatwiających wymianę danych:
-
są protokołami otwartymi, swobodnie dostępnymi, opracowywanymi niezależnie
od specyfiki sprzętu komputerowego i systemu operacyjnego,
- są niezależne od fizycznych właściwości sieci, co pozwala na integrację wielu różnych
rodzajów sieci (Ethernet, Token Ring, po łączach telefonicznych, sieciach X25
i wielu innych fizycznych mediach transmisyjnych,
- wspólny schemat adresacji pozwala dowolnemu urządzeniu korzystającemu
z protokołów TCP/IP na jednoznacznie zaadresowanie innego urządzenia, nawet w sieci
tak rozległej jak Internet,
- standaryzowane zestawy protokołów wyższych warstw zapewniają zgodność szeroko
dostępnych usług użytkowych.
- wspólny schemat adresacji pozwala dowolnemu urządzeniu korzystającemu z protokołów
TCP/IP na jednoznacznie zaadresowanie innego urządzenia, nawet w sieci tak rozległej
jak Internet,
- standaryzowane zestawy protokołów wyższych warstw zapewniają zgodność szeroko
dostępnych usług użytkowych.
Protokoły Internetu
Protokoły Internetu
Protokoły Internetu
Protokoły Internetu
Otwarta natura protokołów TCP/IP wymaga ogólnie dostępnych dokumentów
standaryzujących. Wszystkie protokoły wchodzące w skład stosu TCP/IP są zdefiniowane
w jednej z trzech podstawowych publikacji:
Ø Standardy Wojskowe (MIL STD),
Ø Internet Engineering Notes (IEN),
Ø Request for Commnents (RFC).
Stos protokołów TCP/IP zawiera cztery warstwy funkcjonalne, stosunkowo luźno powiązane
z siedmioma warstwami modelu odniesienia OSI. Są to warstwy:
Ø procesu/aplikacji,
Ø transportu (hosta z hostem),
Ø internetu,
Ø dostępu do sieci.
Warstwowy model odniesienia OSI jest modelem bardzo sformalizowanym i
sztywnym.
Na potrzeby Internetu zdefiniowano bardziej elastyczny model odniesienia
tzw. stos protokołów TCP/IP
Protokoły Internetu
Protokoły Internetu
POWIĄZANIA PROTOKOŁÓW PRZY WSPÓŁPRACY MIĘDZYSIECIOWEJ
F Funkcje realizowane przez protokół TCP:
kontrola błędów, wykrywająca dane przekłamane, utracone,
zduplikowane i błędnie uszeregowane;
sterowanie przepływem, dostosowujące tempo nadawania do
możliwości przetwarzania danych przez proces odbiorczy;
sterowanie połączeniami, obejmujące działania związane z ich
nawiązywaniem, przerywaniem oraz rozłączaniem.
TCP zapewnia niezawodność przekazu za pomocą tzw. pozytywnych
potwierdzeń
z
retransmisją
(Positive
Acknowledgment
with
Retransmission - PAR), co oznacza ponawianie przekazu do chwili
potwierdzenia jego poprawnego odbioru. Jeśli odbiorca stwierdza, że w
otrzymanych danych występują błędy, to anuluje przekaz i oczekuje na
retransmisję
TCP/IP
PROTOKOŁY WARSTWY APLIKACJI
SMTP
(Simple Mail Transfer Protocol) - służy do elektronicznego przekazywania
komunikatów. Protokół ten gwarantuje jedynie przekazanie wiadomości bez
ingerowania w jej zawartość, która wymaga dalszego przetwarzania, w celu
wydobycia odpowiednich informacji i zaprezentowania ich we właściwej formie.
Szczegółowy opis SMTP zawiera RFC 821.
TELNET
(Network Terminal Protocol) - zawiera definicje mechanizmów emulacji
wirtualnych terminali umożliwiających logowanie się poprzez sieć do oddalonych
hostów, dzięki czemu możliwa jest praca, jak przy korzystaniu z lokalnego
terminala. Specyfikację protokołu TELNET zawiera RFC 854.
FTP
(File Transfer Protocol) - definiuje sposób, w jaki użytkownicy mogą pobierać
pliki ze zdalnych hostów. niezależnie od ich realizacji sprzętowej i systemu
operacyjnego. FTP zapewnia obsługę przesyłania plików tekstowych i binarnych, z
możliwością ograniczania dostępu do zasobów przy użyciu haseł. Formalna
specyfikacja FTP zawarta jest w RFC 959.
SNMP
(Simple Network Management Protocol) - służy do zarządzania zdalnymi
urządzeniami komunikacji międzysieciowej przy wykorzystaniu datagramowego
protokołu UDP. Jego zadania to zapewnianie komunikacji między zarządzającą
stacją roboczą i modułem (agentem) zarządzania siecią, zawartym w zarządzanym
elemencie (urządzeniu bądź programie). SNMP w wersji 1 definiuje dokument RFC
1157, natomiast specyfikację wersji 2, która obejmuje m.in. funkcje ochrony. (RFC
od 1441 do 1452).
INNE PROTOKOŁY:
DNS
(Domain Name Service) - zwany także serwerem nazw, dokonujący
translowania adresów IP na mnemoniczne nazwy nadane urządzeniom sieciowym.
RIP
(Routing Information Protocol) - używany do wymiany informacji dotyczących
marszrutowania danych.
NFS
(Network File System) - sieciowy system plików pozwalający na współdzielenie
plików przez wiele komputerów sieciowych.
TCP/IP
Komunikacja TCP
Komunikacja TCP
Koncepcja okna w protokole transportowym
Najprostszy protokół transportowy:
Host A
Host B
Pakiet danych
Potwierdzenie
Pakiet danych
Potwierdzenie
Pakiet danych
Potwierdzenia po każdym pakiecie
Koncepcja okna:
1 2 3 4 5 6
..
Pakiety
Okno
7 8 9
1
0
1
1
1
2
Źródło wysyła x pakietów zanim
otrzyma potwierdzenie
Odbiornik musi potwierdzić otrzymanie
każdego pakietu wskazując w odpowiedzi na
ostatni poprawnie odebrany pakiet
Źródło po każdym otrzymanym
potwierdzeniu przesuwa okno
1
2
1
2
3
3
Pakiet danych
1
2
3
4
5
Potwierdzenie dla pakietu 1 przesunięcie okna o jeden pakiet
Potwierdzenie
4
Możliwe przesłanie
jeszcze jednego
pakietu
6
1
1
1
1
Ti
m
e
o
u
t
2
Przykład:
5
Pakiet 2 w końcu dotarł
Potwierdzenie wszystkich 5 pakietów przesunięcie okna o 4
5
Nadal brakuje pakietu kolejnego (2), potwierdzenie dla
1
Błąd
Okno w TCP
W protokole TCP wykorzystano koncepcję okna z następującymi modyfikacjami:
Numery sekwencyjne nie są przyporządkowane do przesyłanych
pakietów ale do bajtów potwierdzana jest więc ilość danych w
bajtach
Rozmiar okna podawany jest w bajtach
Rozmiar okna definiowane jest przez odbiornik podczas
nawiązywania połączenia i zmienia się dynamicznie w czasie
trwania połączenia
1 2 3 4 5 6 7 8 9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
1
8
..
Okno (w bajtach)
A
B
C
D
A – bajty, które zostały wysłane i zostały potwierdzone
B – bajty, które zostały wysłane, ale jeszcze niepotwierdzone
C – bajty, które mogą jeszcze być wysłane
D – bajty, które jeszcze nie mogą być przesłane
bajty
Numery portów TCP i UDP
Numery
portów
Warstwa
Transportowa
Warstwa
Aplikacji
Identyfikato
r protokołu
F
T
P
T
E
L
N
E
T
D
N
S
S
N
M
P
S
M
T
P
R
I
P
IP
Warstwa
Sieciowa
TCP
21
21
23
23
25
25
UDP
53
53
69
69
161
161
520
520
H
T
T
P
80
80
T
F
T
P
6
6
17
17
Uwaga: Istnieją tzw. porty dobrze znane oraz porty
tymczasowe
• dobrze znane: od 1 do 1023
(przykład powyżej)
• tymczasowe: od 1024
(określane zwykle przez klienta, np. w architekturze
klient <stacja> serwer <serwer www>)
Format nagłówka TCP, UDP
Bit 1
Port źródłowy (16)
Port docelowy (16)
Numer sekwencji (32)
Dł. nagł. w
4B słowach
(4)
Numer potwierdzenia (32)
Zarezerwow
ane - zera
(6)
Flagi (6)
Rozmiar okna (16)
Suma kontrolna (16)
Wskaźnik ważności (16)
Opcje (zmienna długość) - opcjonalnie
Dane (zmienna długość: max 64kB)
20
Bajtów
Bit 16
Bit 17
Bit 32
TCP:
...... Dopełnienie
TCP: Format nagłówka
Numer sekwencji
(16 bitów)
Kolejny numer pierwszego bajtu segmentu TCP
(Liczba ta wskazuje na kolejne bajty, a nie kolejne pakiety, np.
jeśli dwa kolejne pakiety przenoszą po 1460 bajtów strumienia
danych <za nagłówkiem TCP>, to w pierwszym pakiecie numer
sekwencji ustawiony jest np. na x a w drugim – na x+1460)
Uwaga: Gdy ustawiony jest bit SYN w polu tym ustawiana jest
sekwencja inicjacyjna
Długość nagłówka
(4 bity)
Długość nagłówka w 32 bitowych słowach – wskazuje
miejsce rozpoczęcia danych aplikacji
(standardowo 0x05
= 20B)
Flagi
(6 bitów)
URG
(1)
PSH
(1)
RST
(1)
SYN
(1)
FIN
(1)
URG
(1)
Flaga wskazująca, że należy odczytać pole wskaźnika
ważności
(Urgent)
ACK
(1)
Numer potwierdzenia
(16 bitów)
Numer potwierdzenia
(Zawiera sekwencyjny numer segmentu, którego nadawca
spodziewa się odebrać od węzła przeznaczenia jeśli bit ACK
jest ustawiony, to numer ten jest spodziewanym numerem
potwierdzenia)
Flaga wskazująca, że należy odczytać pole numeru
potwierdzenia
(Acknowledgment)
ACK
(1)
TCP: Format nagłówka
Flagi
(6 bitów)
URG
(1)
ACK
(1)
PSH
(1)
RST
(1)
SYN
(1)
FIN
(1)
PSH
(1)
Ustawienie tego bitu oznacza, że odbiorca musi powiadomić
niezwłocznie aplikację o danych, które nadeszły i które mają
nadejść
(Push – natychmiastowe przepchnięcie danych)
RST
(1)
Znacznik resetowania połączenia
(np. w przypadku nieosiągalności
portu – zamiast wysyłania wiadomości ICMP: Uwaga: w przypadku UDP trzeba
wysłać ICMP)
SYN
(1)
FIN
(1)
Znacznik inicjalizacji połączenia i synchronizacji numerów
sekwencyjnych
Znacznik oznaczający, że wysyłający kończy wysyłanie danych
kończy połączenie TCP
(połączenie zostanie zakończone, gdy obie
strony wyślą znaczniki FIN)
Rozmiar okna
(16 bitów)
Liczba bajtów, które węzeł nadający może przyjąć
bez potwierdzenia od węzła docelowego
(określa
wielkość buforu wydzielonego dla danego połączenia TCP)
Uwaga: liczba ta dotyczy danych + nagłówek TCP (nie dotyczy
nagłówków IP i łącza danych)
TCP: Format nagłówka
Suma kontrolna
(16 bitów)
Suma kontrolna obliczana z pól pseudonagłówka IP
nagłówka TCP oraz danych
(pola sumy kontrolnej w
nagłówku TCP są wtedy zerowane)
Adres źródłowy IP
(32)
Adres źródłowy IP
(32)
Zera
(4)
Nr prot.
transp.
(4)
Długość segmentu TCP
(8)
Pseudonagłówek
Długość TCP dotyczy długości
nagłówka TCP + dane
(określana w bajtach)
Uwaga: Nie jest to wartość
przepisana z żadnego innego
pola innych nagłówków, lecz
obliczona <bo nie ma takiego
pola>
Wskaźnik ważności
(16 bitów)
Wskaźnik ten dodawany jest do numeru sekwencji segmentu TCP i
wskazuje na ostatni ważny bajt w tym segmencie
.
Rozpatrywany jest gdy ustawiona jest flaga URG
Przykład: W Telnecie flaga i wskaźnik ważności ustawiany jest w
segmencie, gdy użytkownik naciśnie klawisz przerwania
TCP: Format nagłówka
Opcje
(zmienna długość)
Opcja „Maximum Segment Size”
Typ
(8 bitów)
Długość opcji
(8 bitów)
Dane opcji
Typ
Długość
Opis
0
-
End of option list
1
-
No-operation
2
4
Maximum Segment Size
(MSS)
3
3
Window Scale
4
2
Sack-Permitted
(selective
acknowledgment permited)
5
x
Sack
(selective
acknowledgment)
8
10
Time Stamps
2
(8 bitów)
4
(8 bitów)
(8 bitów)
(8 bitów)
MSS
4 oktety
Wykorzystywane w czasie
ustanawiania połączenie
flaga SYN = 1 do negocjacji
maksymalnej długości
segmentu TCP
3
(8 bitów)
3
(8 bitów)
(8 bitów)
Window scale
Opcja „Window Scale”
Przykład:
Opcja wykorzystywana do poszerzenia
pola definicji okna zatem również i
samego okna
TCP – Ustanowienie połączenia – „Three Way Handshake”
Host A
Host B
SYN
- numer portu do którego chcę się przyłączyć
- początkowy numer sekwencji (ISN) hosta A
- maksymalny możliwy rozmiar segmentu wys
yłanego z Hosta A
- początkowy numer
sekwencji (ISN) ho
sta B
- sekwencja potwier
dzająca (ISN hosta
A +1)
- maksymalny rozm
iar segmentu prze
syłanego przez ho
st B
SYN, ACK
ACK
- kolejny numer sekwencji hosta A (ISN A+
1)
- sekwencja potwierdzająca (ISN hosta B +
1)
Przykład: ISN =100, SYN=1, MSS = 1640
Przykład: sekw =101, potw =301, ACK =
1,
ISN B. = 300, sek
w. potw. = 101,
SYN=1, ACK=1,
MSS=1640
Internet
TCP – „Three Way Handshake” – handshake 1 - przykład
SYN
ISN stacji A: 3931661217
IP: 10.2.7.103
IP: 62.44.10.4
Uwaga: Pole „Acknowledgment number = 0x00
Port źródłowy (tymczasowy)
Port docelowy (dobrze znany=80 <HTTP>)
Flaga SYN
Rozmiar okna oferowany
A
B
MSS
TCP – „Three Way Handshake” – handshake 1 - przykład
SYN, ACK
IP: 10.2.7.103
IP: 62.44.10.4
A
B
Port źródłowy (dobrze znany=80 <HTTP>)
Port docelowy (z SYN)
ISN stacji B
Numer potwierdzenia:
ISN stacji A +1 =3931661217 +1
Flagi SYN i ACK
MSS
Rozmiar okna dla stacji B
TCP – „Three Way Handshake” – handshake 1 - przykład
ACK
IP: 10.2.7.103
IP: 62.44.10.4
A
B
Numer sekwencji
(dokładnie numer
potwierdzenia z SYN, ACK)
:
ISN stacji A +1 =3931661217 +1
Numer potwierdzenia:
ISN stacji B +1 =3039176547 +1
Uwaga:
Teraz połączenie między hostem A i B zostało ustanowione.
Host A wie że: rozmiar początkowy okna = 65535 bajtów, może spodziewać się MSS
= 1460 B,
może transmitować dane z kolejnym numerem sekwencyjnym =
3931661217
+1+1
Podobne dane posiada host B.
TCP – okna - szczegóły
Przykład:
Wielkość segmentu TCP: 500 bajtów
Rozmiar okna 1500 bajtów
segment 1, sekw=1000
Źródło
Przeznaczenia
segment 5, sekw=3000
segment 2, sekw=1500
Potwierdzenie ACK 1500 (ACK=sekw+1500)
segment 3, sekw=2000
Otrzymano
potwierdzenie.
Przesunięcie
okna o 500
bajtów
segment 4, sekw=2500
Potwierdzenie ACK 1500 (wciąż to samo)
Timeout2 = b sek
Timeout1 = a sek
Timeout3 = c sek
ACK 1500
ACK 1500
Ostatni
segment w
oknie
przesuniętym
Wciąż nie
otrzymano
potwierdzenia
ostatniego
segmentu okna
Mija timeout
dla segmentu 2
Uwaga: w TCP numery sekwencji
dotyczą pierwszego bajtu w
segmencie; również potwierdzenie
dotyczą ilości przesłanych bajtów, a
nie pakietów
segment 2, sekw=1500
segment 3, sekw=2000
segment 4, sekw=2500
segment 5, sekw=3000
Zasięg okna
początkowego:
1000 - 2500
Przeznaczenie i charakterystyka
Umożliwia transfer wiadomości pomiędzy parą węzłów w
sieci. Pracuje jak multiplekser/demultiplekser przesyłając
dane z/do portów.
UDP:
Charakterystyka:
Transfer danych strumieniowych (UDP dzieli je na
segmenty podczas nadawania i łączy w węźle docelowym)
Szybkość przesyłania wiadomości
Multipleksowanie (korzystanie z różnych portów)
Pełny dupleks
Nie gwarantuje niezawodnej transmisji danych
Przeznaczenie:
UDP – format nagłówka
Port źródłowy (16)
Port docelowy (16)
Długość (nagłówek TCP + dane) (16)
Dane (zmienna długość)
Bit 0
Bit 15
Bit 16
Bit 31
Suma kontrolna (16)
8
Bajtów
UDP:
TCP/IP
PRZEPŁYW DANYCH PRZEZ HOSTY I ROUTERY
TCP/IP
RUTOWANIE TABLICOWE
W warstwie tej definiuje się protokoły zdalnego dostępu i współdzielenia zasobów.
Najważniejsze
z tych protokołów to Telnet, FTP, SMTP, NFS, HTTP. Poprawne działanie tych
protokołów
jest uzależnione od funkcjonowania niższych warstw. Protokoły te związane są
bezpośrednio z aplikacjami użytkowników
WARSTWA PROCESU / APLIKACJI
WARSTWA TRANSPORTOWA (HOST-TO-HOST)
Protokoły Internetu
Protokoły Internetu
Warstwa ta luźno nawiązuje do warstw sesji i transportu modelu OSI. Zdefiniowano w niej
dwa protokoły: protokół sterowania transmisją (TCP - Transmission Control Protocol)
i protokół datagramów użytkownika (UDP - User Datagram Protocol). Obecnie w celu
dostosowania do zorientowanego na transakcje charakteru Internetu definiuje się trzeci protokół
sterowania transakcją i transmisją (T/TCP - Transaction and Transmission Control Protocol).
WARSTWA INTERNETU
Protokoły Internetu
Protokoły Internetu
Protokół Internetu (IP) jest sercem TCP/IP i najważniejszym protokołem tej warstwy.
IP umożliwia dostarczanie pakietów na bazie których zbudowane są sieci TCP/IP. Wszystkie
protokoły warstw powyżej i poniżej IP używają dla dostarczania danych protokołu IP.
Funkcje IP zawierają:
Ø definiowanie datagramów IP, będących w Internecie podstawowymi jednostkami
informacyjnymi,
Ø definiowanie schematu adresowania używanego w Internecie,
Ø przekazywanie danych między warstwą dostępu do sieci i warstwą transportową
host-to-host,
Ø kierowanie datagramów do komputerów oddalonych,
Ø dokonywanie fragmentacji i ponownego składania datagramów.
Protokół IP jest niepewnym protokołem bezpołączeniowym. Można zakładać, że IP
dostarczy wiernie
dane do sieci nie sprawdzi jednak czy dane te zostały poprawnie
odebrane. Kontrola poprawności dostarczania danych spoczywa na protokołach wyższych
warstw
WARSTWA INTERNETU
Protokoły Internetu
Protokoły Internetu
Protokół Internetu (IP) jest sercem TCP/IP i najważniejszym protokołem tej warstwy.
IP umożliwia dostarczanie pakietów na bazie których zbudowane są sieci TCP/IP. Wszystkie
protokoły warstw powyżej i poniżej IP używają dla dostarczania danych protokołu IP.
Funkcje IP zawierają:
Ø definiowanie datagramów IP, będących w Internecie podstawowymi jednostkami
informacyjnymi,
Ø definiowanie schematu adresowania używanego w Internecie,
Ø przekazywanie danych między warstwą dostępu do sieci i warstwą transportową
host-to-host,
Ø kierowanie datagramów do komputerów oddalonych,
Ø dokonywanie fragmentacji i ponownego składania datagramów.
Protokół IP jest niepewnym protokołem bezpołączeniowym. Można zakładać, że IP
dostarczy wiernie
dane do sieci nie sprawdzi jednak czy dane te zostały poprawnie
odebrane. Kontrola poprawności dostarczania danych spoczywa na protokołach wyższych
warstw
Budowa datagramu IP
Budowa datagramu IP
Protokół ARP
Protokół ARP
ARP (Address Resolution Protocol) – RFC 826
Przeznaczenie:
Zadaniem ARP jest konwersja adresów warstw
wyższych (IP) na adresy warstwy fizycznej
Hub Ethernet
MAC 1
MAC 2
MAC 3
MAC 0
IP 0
IP 1
IP 2
IP 3
Pakiet IP:
IP źródła: IP x
IP docelowy: IP 3
ARP request
Ramka Ethernet:
MAC źródła: MAC 0
MAC docelowy: rozsiewczy
IP źródła: IP 0
IP docelowy: IP 3
1
1
1
1
IP
MAC
IP 3
MAC 3
....
....
Tablica ARP
(ARP Cache)
2
ARP reply
Ramka Ethernet:
MAC źródła: MAC 3
MAC docelowy: MAC 0
IP źródła: IP 3
IP docelowy: IP 0
2
Kto ma adres IP 3
niech się odezwie ?
Ja mam taki adres.
Oto mój adres MAC.
3
5
0
5
Ramka Ethernet z pakietem IP:
MAC źródła: MAC 0
MAC docelowy: MAC 3
Uwaga: ARP nie działa w
sieciach, w których nie można
przesyłać ramek
rozgłoszeniowych (np. X.25)
Sprawdzenie tablicy
IP
MAC
IP 0
MAC 0
....
....
IP
MAC
IP 0
MAC 0
....
....
IP
MAC
IP 0
MAC 0
....
....
Przy okazji
otrzymania
pakietu ARP stacje
uaktualniają
tablice ARP
ARP – Komunikacja w sieci lokalnej poprzez IP
Przyporządkuj: IP MAC
Zapisz tablice ARP
172.16.3.1
IP: 172.16.3.2
Ethernet: 0800.0020.1111
IP: 172.16.3.2
Ethernet: 0800.0020.1111
172.16.3.2
IP: 172.16.3.2 = ???
IP: 172.16.3.2 = ???
Odczytałem ramkę
rozgłoszeniową.
Znalazłem tam swój
adres IP.
Odpowiadam i
załączam mój adres
Ethernetowy
Chcę wysłać
pakiet.
Muszę znać
adr. stacji o IP:
176.16.3.2.
IP: 172.16.3.2 = ???
IP: 172.16.3.2 = ???
1
2
2
3
4
5
ARP – Format pakietu
ARP request, reply
Typ protokołu warstwy fizycznej
(16 bitów)
Nagłówek warstwy fizycznej
(x bajtów)
1
8
16 bitów
Typ protokołu warstwy sieciowej - z pola Type nagłówka warstwy fizycznej (IP = 0x0800)
(16 bitów)
Długość adresu MAC w bajtach
(8 bitów)
Długość adresu sieciowego w bajtach
(8 bitów)
Kod działania – Request = 1, Reply = 2
(16 bitów)
Adres MAC źródłowy
(n bitów) –> dla Ethernetu (48 bitów)
Adres IP źródłowy
(32 bity – IPv4)
Adres MAC docelowy
(n bitów) –> dla Ethernetu (48 bitów)
Adres IP docelowy
(32 bity – IPv4)
ARP – Przykład z analizatora protokołów
Adres MAC rozgłoszeniowy
Na początku wstawiane same zera
Pola pakietu ARP
Protokół RARP
Protokół RARP
RARP (Reverse Address Resolution Protocol) – RFC 903
Przeznaczenie:
Zadaniem RARP jest powiadomienie stacji, która
przesyła swój adres MAC o jej adresie IP.
Ethernet: 0800.0020.1111
IP: 172.16.3.25
Ethernet: 0800.0020.1111
IP: 172.16.3.25
Ethernet: 0800.0020.1111 IP = ???
Ethernet: 0800.0020.1111 IP = ???
Jaki
mam
adres
IP?
Odczytałe
m ramkę
rozgłoszen
iową. Oto
twój adres
IP
172.16.3.2
5.
Przyporządkuj: MAC IP
Uwaga:
Format pakietu RARP jest identyczny jak ARP,
Przypisano następujące kody działania:
RARP request = 3
RARP reply = 4
Historia
0
Numer
sieci
Numer komputera
0
1-----------7
8---------------------------------------------------------31
Adres klasy A
10
Numer sieci
Numer komputera
0-1
2-------------------------15
16------------------------------------31
Adres klasy B
110
Numer sieci
Numer
komputera
0--2
3-------------------------------------------------23
24-----------31
Adres klasy C
1110
Adres grupowy (multicast)
0------3
4------------------------------------------------------------------31
Adres klasy D
1111
Zarezerwowany dla
Network Information
Center
0-------3
4-----------------------------------------------------------------31
Adres klasy E
Adresacja w sieci TCP/IP
TCP/IP
WYKORZYSTANIE SYSTEMU DNS
Podsieci w Sieci Internet
Ethernet
Ethernet
PC
PC
Router
Global network
144.84.11.50
144.84.10.50
Podsieć B
144.84.11.
Podsieć A
144.84.10.
144.84.11.10
144.84.10.10
Osiem bitów podsieci. Maska Podsieci 255.255.255.0
10
Numer sieci
Bity
podsieci
Numer
komputera
0-1
2-------------------------15
16-----23
24------------------31
Adres klasy B z maską podsieci.
Osiem bitów podsieci.
Maska podsieci.
10
Numer sieci
Bity
pod-
siec
i
Numer
komputera
0-1
2-------------------------15
16---19
20--------------------31
Adres klasy B z maską podsieci.
Cztery bity podsieci.
Maska podsieci.
TCP/IP
Struktura drzewa DNS
root
kor
edv
kor
kor
kor
kor
kor
AA
KK
BB
mek
com
gov
TCP/IP
Format pakietu IPv4 - RFC791
Wersja
(4 bity)
Długość
nagłówka
w 4-
bajtowych
słowach
1
8
16
24
32 bity
Typ usługi
(TOS – 8 bitów)
Długość pakietu (nagłówek + dane)
(16 bitów)
Identyfikacja (0 2^16)
(16 bitów)
4
8
12
16
20
bajty
24
Przesunięcie fragmentacji
(13 bitów)
Flagi
(3 bity)
Czas życia (0 256)
(TTL - 8 bitów)
Protokół warstwy wyższej
(8 bitów)
Suma kontrolna nagłówka
(16 bitów)
Adres IP źródłowy
(32 bity)
Adres IP docelowy
(32 bity)
Opcje (Opcjonalnie)
Dane
20
bajtó
w
max 60
bajtów
max
64KB
Wypełnienie
do pełnych 32 bitów
Format pakietu IPv4
Długość
nagłówka w
4-bajtowych
słowach
Standardowo: 0x05 (czyli 20 bajtów)
Typ usługi
(TOS – 8 bitów)
Pierwszeństwo
(3)
D
(1)
T
(1)
R
(1)
C
(1)
0
8
1
Bity 1-3: Pierwszeństwo – Określa priorytet pakietu
D - Opóźnienie: 0 = Opóźnienie normalne, 1 = Opóźnienie małe
T - Przepustowość: 0 = Przepustowość normalna, 1 = Przepustowość wysoka
R – Niezawodność: 0 = Niezawodność normalna, 1 = Niezawodność wysoka.
C – Koszt (w jedn. monetarnych): 0 = Koszt normalny 1 = Koszt minimalizowany
Bit 8: Do przyszłego wykorzystania
Ustawienie standardowe TOS: 000 0000 0
Przykładowe ustawienia bitów pierwszeństwa:
- 010: Natychmiastowo
- 001: Priorytetowo
- 000: Standardowo
Inne zalecane ustawienie bitów DTRC: zależne od protokołów warstw
wyższych RFC1060 (Assigned Numbers) :
- TELNET, TFTP: 1000
- FTP, SMNP: sterowanie: 1000, dane: 0100
- ICMP <standardowo>: 0000
(RFC791,
RFC1349)
7
6
5
4
3
2
Format pakietu IPv4
Długość pakietu (nagłówek + dane)
(16 bitów)
Długość pakietu mierzona w liczbie oktetów (max do 65 535 oktetów, tzn.
64kB, 2^16)
Dla max pola danych
Ethernetu: 0x5dc [H]
1500B
Identyfikacja (0 2^16)
(16 bitów)
Pomaga składać pakiety w
odpowiedniej kolejności
Przesunięcie fragmentacji
(13 bitów)
Flagi
(3 bity)
0
DF
(1)
MF
(1)
3
2
1
Przesunięcie fragmentacji
mierzone w jednostkach
8-oktetowych w
pierwszym pakiecie = 0x00
DF =0: Zezwolenie na
fragmentacje
DF =1: Brak zezwolenia na fragm.
MF =0: Ostatni fragment
MF =1: Więcej fragmentów
Wskazuje przesunięcie przenoszonych
przez pakiet danych
(pofragmentowanych) względem
początku tych danych (początku
datagramu) datagram może być
przenoszony w kilku pakietach
Format pakietu IPv4
Protokół warstwy wyższej
(8 bitów)
Wartość
Nazwa
Rozwinięcie
1
ICMP
Internet Control Message Protocol
2
IGMP
Internet Group Management Protocol
3
GGP
Gateway-to-Gatewey Protocol
4
IP
Enkapsulacja
6
TCP
Transmission Control Protocol
8
EGP
Exterior Gateway Protocol
41
IPv6
IPv6
17
UDP
User Datagram Protocol
Czas życia (0 256)
(TTL - 8 bitów)
Czas życia w sekundach
Uwaga: Gdy router przetwarza pakiet mniej niż
sekundę to odejmuje całą sekundę.
0x00 – oznacza że należy zniszczyć pakiet
RFC1060 (Assigned Numbers)
Suma kontrolna nagłówka
(16 bitów)
Suma kontrolna – zabezpiecza jedynie
nagłówek (do obliczeń sumy kontr.
przyjmuje się że pole samej sumy =0)
Format pakietu IPv4
Dwa typy opcji:
- opcje jednobajtowe (a)
- opcje wielobajtowe (b)
Opcje (Opcjonalnie)
Format opcji:
(a)
Typ opcji
(8 bitów)
Typ opcji
(8 bitów)
(b)
Długość opcji (B)
(8 bitów)
Dane opcji
(16 bitów)
Typ opcji
(8 bitów)
Format typu opcji:
8
1
7
6
5
4
3
2
Klasa
(2 bity )
FC
(1)
Wskaźnik typu opcji
(5 bitów)
FC (Flaga kopiowania opcji podczas fragmentacji): 0 – NIE, 1 – TAK
Klasa: 0 – sterowanie; 1,3 – zarezerwowane; 2 – debugowanie i
pomiary
Wskaźnik typu:
0 – koniec listy opcji; 2 – opcja bezpieczeństwa;
inne wskaźniki: zdefiniowane w RFC 791
Format pakietu IPv4
10000010
(8 bitów)
(b)
00001011
(8 bitów)
Dane opcji
(88 bitów)
Przykład opcji bezpieczeństwa
Typ opcji: 130
1 - kopiować
00 - sterowanie
00010 = 2 -
bezpieczeństwo
Długość: 11
bajtów
Poziom
bezpieczeństw
a
16 bitów
Dane
bezpieczeństw
a
72 bity
Poziom bezpieczeństwa:
00000000 00000000 - Unclassified
11110001 00110101 - Confidential
10101111 00010011 - Restricted
11010111 10001000 - Secret
01101011 11000101 - Top Secret
Format pakietu IPv6 – RFC 2460
Wersja
(4 bity)
1
8
16
24
32 bity
Klasa ruchu
(8 bitów)
Etykieta przepływu
(20 bitów)
Długość pakietu (bez nagłówka)
(16 bitów)
4
8
28
40
bajty
Liczba skoków
(8 bitów)
Następny nagłówek
(8 bitów)
Adres IP źródłowy
(128 bitów)
Adres IP docelowy
(128 bitów)
40
bajtó
w
Porównanie nagłówków IPv4 i IPv6
IPv6 – Nagłówki
Nagłówek IPv6 (IPv6 header);
Nagłówek opcji Hop-by-Hop (Hop-by-hop Options header);
Nagłówek opcji docelowych (Destination Options header)*;
Nagłówek routingu (Routing header);
Nagłówek fragmentu (Fragment header);
Nagłówek uwierzytelniania (Authentication header)**;
Nagłówek enkapsulacji wiadomości bezpieczeństwa
(Encapsulating Security Payload header);
Nagłówek opcji docelowych (Destination Options header)***;
Nagłówek warstwy wyższej (Upper layer header).
. - nagłowki przenoszące opcje
(*) - nagłówek jest interpretowany przez pierwszego z odbiorców wymienionych
w polu IPv6 Destination Address oraz w polu docelowym wymienionym w
nagłówku routingu (Routing header);
(**) - dodatkowe zalecenia dotyczące porządku występowania wiadomości
uwierzytelniania i enkapsulacji wiadomości bezpieczeństwa są zawarte w
zaleceniu;
(***)- nagłówek jest przetwarzany tylko przez ostatniego z odbiorców pakietu.
IPv6 – Nagłówki rozszerzone
IPv6 Header
Next = TCP
TCP Header
IPv6 Header
Next = Routing
TCP Header
Routing Hdr
Next = TCP
IPv6 Header
Next = Security
TCP Header
Security Hdr
Next = Frag
Application Data
Application Data
Fragment Hdr
Next = TCP
Data
Frag
Opcje w IPv6 przesunięto do tzw. nagłówków rozszerzonych
(Extension Headers)
Extension Headers stanowią łańcuch nagłówków
IPv6 – Przenoszenie opcji w nagłówkach opcji
T
L
V
T
L
V
T
L
V
T - Typ opcji nasennej (Option Type), 8 bitowy identyfikator
typu opcji;
L – Długość Wiadomości Opcji (Option Data Length), 8
bitowa liczba całkowita bez znaku (unsigned integer).
Długość wyrażona jest w oktetach.
V – Wiadomość Opcji (Option Data, Variable-length), pole o
zmiennej długości, zależnej od typu opcji.
W nagłówkach opcji przenoszonych może być jednocześnie wiele
opcji
Zasada upakowania opcji:
IPv6 – Pole typu opcji
PP:
00 – opuść przetwarzaną opcję i kontynuuj przetwarzanie
nagłówka.
01 – odrzuć pakiet.
10 – odrzuć pakiet i, bez względu czy adres jest adresem
multicastowym czy nie, prześlij wiadomość „ICMP Parameter
Problem, Code 2” pod adres nadawcy (Source Address),
wskazując nierozpoznany typ opcji.
11 – odrzuć pakiet i jeśli adres docelowy nie był adresem
multicastowym, prześlij wiadomość „ICMP Parameter Problem,
Code 2” pod adres nadawcy (Source Address), wskazując
nierozpoznany typ opcji.
P
(1)
P
(1)
R
(1)
3
2
1
(5 bitów)
8
R:
0 – Wiadomość Opcji (Option Data) nie może zmienić
wyznaczonej drogi dostarczenia pakietu.
1 – Wiadomość Opcji (Option Data) może zmienić wyznaczoną
drogę dostarczenia pakietu.
Mimo, że trzy pierwsze bity
wskazują
węzłom
sposób
postępowania z opcją, to nazwa
opcji
jest
określana
przez
wszystkie 8 bitów
IPv6 – przykład opcji - Destination option
Next Header – 8 bitowe pole selektora typu następnego nagłówka.
Hdr Ext Len – 8 bitowa liczba całkowita bez znaku (unsigned
integer). Długość Opcji Docelowych jest mierzona w 8
oktetowych jednostkach, bez włączania pierwszej ósemki
oktetów.
Options – Pole o zmiennej długości, długość kompletnego nagłówka
Opcji Docelowych jest liczbą całkowitą 8 oktetowych jednostek.
Next header w poprzednim nagłówku = 60
Jeśli brak jest następnego nagłówka, to Next header = 59
IPv6 - zalety
Stały rozmiar nagłówka
40 bajtów
Mniej pól w nagłówka w porównaniu z IPv4
szybsze przetwarzanie pakietów w węzłach
Efektywne przetwarzanie opcji
Przetwarzane są tylko wtedy, gdy są dołączane
Większość opcji przetwarzanych w węźle końcowym
Zrezygnowano z sumy kontrolnej
Lepsze kanały transmisyjne
Obecnie warstwy wyższe muszą mieć
zaimplementowaną możliwość korekcji błędów
Ograniczona fragmentacja w sieci
Routery w większości umożliwiają przesyłanie różnych
długości pakietów
Łatwiejsza implementacja oraz routing
IPv6 a warstwy niższe
IPv6 – dostosowanie wielkości pakietu do MTU
IPv6 – mechanizm odkrywania sąsiadów
IPv6 – odnajdowanie adresu sąsiada
IPv6 – Wiadomości rozgłoszeniowe routerów
IPv6 – Zgłoszenie się stacji do routera
IPv6 – Autokonfiguracja stacji roboczej
Sterowanie przepływem
- umożliwia chwilowe zatrzymywanie
strumienia danych przez odbiorcę poprzez wygenerowanie do
nadawcy komunikatu Source Quench, oznaczającego żądanie
chwilowego wstrzymania nadawania.
Informowanie o nieosiągalności miejsc przeznaczenia
- system
wykrywając nieosiągalność miejsca przeznaczenia, wysyła do źródła
datagramów
komunikat
Destination
Unreachable
Jeśli
nieosiągalnym adresatem jest sieć lub komputer, komunikat ten jest
wysyłany przez routery pośrednie, natomiast jeśli nieosiągalnym
zasobem jest port, zawiadomienie generuje host docelowy.
Przekierunkowanie marszrut
- otrzymanie przez element systemu
komunikatu Redirect oznacza, że należy użyć innego routera, gdyż
jest on prawdopodobnie lepszym pośrednikiem. Komunikat taki
może być wysłany tylko wtedy, gdy obydwa routery znajdują się w tej
samej sieci, co host źródłowy.
Sprawdzanie połączeń z komputerami oddalonymi
- w celu
sprawdzenia czy jakiś system oddalony pracuje i jest dostępny,
można wygenerować komunikat Echo, który zostanie zwrócony do
nadawcy. Mechanizm ten jest wykorzystywany bezpośrednio przez
polecenie „ping” systemu UNIX.
TCP/IP
FUNKCJE ICMP
ICMP (Internet Control Message Protocol) – RFC792,
RFC950
Charakterystyka ogólna ICMPv4
ICMP jest integralną częścią IP choć wykorzystuje go tak, jak protokoły
warstw wyższych (w polu „protokół warstwy wyższej” w IPv4 oraz
„następny nagłówek” w IPv6 wstawiany jest kod ICMP = 1)
Wykorzystywany jest do informowaniu o błędach – nie zapewnia
niezawodnej transmisji pakietów IP (do tego służą protokoły warstwy
transportowej)
ICMP pozwala informować o błędach dot. pakietów IP, ale nie tych które
przenoszą wiad. ICMP
W przypadku fragmentowanych pakietów IP wiadomość o błędzie dotyczy
tylko fragmentu 0
Wiadomości ICMP nie są przesyłane w odpowiedzi na pakiety o adresach
docelowych broadcastowych lub multicastowych oraz adresach źródłowych
innych niż unikastowych
Wiadomości ICMP nie są przesyłane w odpowiedzi na wiadomości ICMP
informujące o błędach – mogą być przesyłane w odpowiedzi na tzw.
zapytania ICMP (np.. echo request)
Wiadomości ICMP o błędach mogą być generowane przez urządzenia
sieciowe, ale nie muszą (wg. RFC792).
ICMP jest protokołem określającym zbiór wiadomości służących do
powiadamianiu o błędach w przetwarzaniu pakietów IP w sieci oraz
pełniących funkcje pomocnicze w identyfikacji stanu elementów sieci
(ping).
Przeznaczenie:
ICMP – RFC792 – ogólny format wiadomości ICMP
Typ
(8 bitów)
Kod
(8 bitów)
Suma kontrolna
(16 bitów)
4
8
1
8
16
24
32 bity
Dane ICMP (w zależności od typu wiadomości)
Typ Kod
Opis
0
0
echo reply
3
destination
unreachable
0
network unreachable
1
host unreachable
2
protocol unreachable
3
port unreachable
4
0
source quenche
5
redirect
0
redirect for network
Najczęściej używane typy wiadomości ICMP
Typ Kod
Opis
8
0
echo request
9
0
router advertisement
10
0
router solicitation
11
0
time exceeded
12
parameter problem
0
IP header bed
1
required option
missing
13
0
time stamp request
14
0
time stamp reply
Application
Transpor
t
Internet
Data Link
Physical
Destination
Unreachable
Echo (Ping)
Inne
ICMP
1
ICMP – Format „Echo request” i „Echo replay”
8
(8 bitów)
0
(8 bitów)
Suma kontrolna
(16 bitów)
Identyfikator (02^16)
(16 bitów)
4
8
1
8
16
24
32 bity
Echo request (ping)
Numer sekwencji (02^16)
(16 bitów)
Dane
(32 bajty):
a b s c d e f g h i j k l m n o p r s t u v w a b c d e f g h i
RFC 792 nie definiuje
zawartości pola danych.
Najczęściej (dla
komendy „ping”)
zawiera ono sekwencję
32 kolejnych liter
alfabetu zakodowaną na
32 bajtach w kodzie
ASCI (1 litera – 1 bajt)
0
(8 bitów)
0
(8 bitów)
Suma kontrolna
(16 bitów)
Identyfikator (02^16)
(16 bitów)
4
8
1
8
16
24
32 bity
Echo reply
Numer sekwencji (02^16)
(16 bitów)
Dane
(32 bajty):
a b s c d e f g h i j k l m n o p r s t u v w a b c d e f g h i
Kopiowane
ICMP – Format „Time exceeded”
11
(8 bitów)
Kod
(8 bitów)
Suma kontrolna
(16 bitów)
Nieużywane – same zera
(32 bity)
4
8
1
8
16
24
32 bity
Time exceeded – Przekroczony czas
Nagłówek pakietu IP, na który wiadomość odpowiada + 64 bity danych oryginału
(28 bajty dla nagłówka IPv4 bez opcji)
Kod = 0 – przekroczony
czas transmisji pakietu
Kod = 1 – Przekroczony
czas dzielenia pakietu
(fragmentacji)
Przykład:
Nagłówek IP (20B)
Nagłówek TCP (20B)
Dane TCP (65B)
dostęp do strony www
Nagłówek IP (20B)
Nagłówek IP (20B)
adr docelowy: y
x
y
adr docelowy: x
64 bity nagłówka TCP
Nagłówek ICMP
(8B)
Typ: 11; Kod 0
Wiadomość
ICMP
Czas życia
pakietu
minął:
TTL = 0
TTL=128
ICMP – Format „Destination unreachable”
3
(8 bitów)
Kod
(8 bitów)
Suma kontrolna
(16 bitów)
Nieużywane – same zera
(32 bity)
4
8
1
8
16
24
32 bity
Destination unreachable – brak dostępu do sieci (węzła)
Nagłówek pakietu IP, na który wiadomość odpowiada + 64 bity danych oryginału
(28 bajty dla nagłówka IPv4 bez opcji)
Kod – liczba zależna od
przyczyny braku
dostępu
Przykład:
Nagłówek IP (20B)
Nagłówek TCP (20B)
Dane TCP (65B)
dostęp do strony www
Stacja
robocza – nie
serwer www
(brak
wymaganego
portu)
Nagłówek IP (20B)
Nagłówek IP (20B)
adr docelowy: y
x
y
adr docelowy: x
64 bity nagłówka TCP
Zły port
Nagłówek ICMP
(8B)
Typ: 3; Kod 3
Wiadomość
ICMP
ICMP – Przykład zastosowania „Echo request” i „Time
exceeded”
Aplikacja „Traceroute”:
206.152.221.254
232.172.211.254
212.155.221.254
202.112.211.254
206.152.221.78
232.172.211.113
Ping (Echo req)
IP:
TTL: 1
Source: 206.152.221.78
Dest: 232.172.211.113
1
1
2
2
ICMP: Time exc.
IP:
TTL: 128
Source:
206.152.221.254
Dest: 206.152.221.78
3
4
Ping (Echo req)
IP:
TTL: 2
Source: 206.152.221.78
Dest: 232.172.211.113
3
4
ICMP: Time exc.
IP:
TTL: 128
Source:
202.112.211.254
Dest: 206.152.221.78
5
6
Ping (Echo req)
IP:
TTL: 3
Source: 206.152.221.78
Dest: 232.172.211.113
5
6
ICMP: Time exc.
IP:
TTL: 128
Source:
232.172.211.254
Dest: 206.152.221.78
7
8
7
8
Ping (Echo req)
IP:
TTL: 3
Source: 206.152.221.78
Dest: 232.172.211.113
Echo repl
Trasa:
206.152.221.254
202.112.211.254
232.172.211.254
ICMP - Przykład z analizatora protokołów
Pola pakietu ICMP
Pod tym adresem nie
ma udostępnionego
żądanego portu
Typ: Destination unreachable
IGMP (Internet Group Management Protocol) – RFC1112,
RFC2236
Przeznaczenie:
Protokół IGMP wykorzystywany jest przez stacje, które dołączone są
do grupy stanowiącej zbiór stacji multicastowych.
Router
multicasto
wy
Stacja
robocza
Stacja
robocza
Stacja
robocza
Aby otrzymywać
pakiety
multicastowe stacja
musi dołączyć się do
określonej grupy
Transmisja
multicastowa polega
na jednoczesnym
przesyłaniu
pakietów do wielu
stacji na tzw. adres
multicastowy
Grupa multicastowa
Router
multicasto
wy
Już jest w
grupie
multicastowej
1
1
1
1
Membership report
2
2
2
2
2
Membership query
1
2
Dołącza
m się
2
Od czasu do czasu
router sprawdza kto jest
w grupie
1
IGMP – Format pakietu
Application
Transpor
t
Internet
Data Link
Physical
Membership
Query
Membership
Report
IGMP
2
Wersja
(4 bitów)
Typ
(4 bitów)
Suma kontrolna
(16 bitów)
4
8
1
8
16
24
32 bity
Adres IP klasy D
(32 bity)
Nieużywane (zera)
(8 bitów)
bajtów
Typ:
1 = Host Membership Query
2 = Host Membership Report
Adres:
- zera gdy Typ 1
- grupowy adres multikastowy
Uwaga:
1.
Stacja po otrzymaniu „Membership query” odpowiada z losowym
opóźnieniem. Przyczyna: nie ma nagłego wzrostu ruchu.
2.
Stacja odpowiada na grupowy adres multikastowy z ustawionym
TTL = 1. Zatem inne stacje nie nie odbierają tego pakietu gdyż
usunięty on zostanie w routerze
IGMP – Przykład z analizatora protokołów
Membership query
Membership report
Same zera
Adres multicastowy
TTL = 1
TTL = 1
Temat
Adresacja w sieci IPv4 i IPv6.
Marszrutyzacja w sieciach IP
Format adresu IPv4
Klasa A:
Klasa B:
Klasa C:
Klasa D: Multicast
Klasa E: Zarezerwowana
Sieć
Sieć
Host
Host
Host
Host
Host
Host
Sieć
Sieć
Sieć
Sieć
Host
Host
Host
Host
Sieć
Sieć
Sieć
Sieć
Sieć
Sieć
Host
Host
8 bitów 8 bitów 8 bitów 8 bitów
Klasy adresów IPv4:
Klasy adresów IPv4
1
Klasa A:
0NNNNNNN
0
NNNNNNN
Host
Host
Host
Host
Host
Host
8 9
16 17
24 25
32
Zakres (1-126)
1
Klasa B:
10NNNNNN
10
NNNNNN
Sieć
Sieć
Host
Host
Host
Host
8 9
16 17
24 25
32
Zakres (128-191)
1
Klasa C:
110NNNNN
110
NNNNN
Sieć
Sieć
Sieć
Sieć
Host
Host
8 9
16 17
24 25
32
Zakres (192-223)
1
Klasa D:
1110MMMM
1110
MMMM
Grupa multicast.
Grupa multicast.
Grupa multicast.
Grupa multicast.
Grupa multicast.
Grupa multicast.
8 9
16 17
24 25
32
Zakres (224-239)
1
Adres
Klasa
Sieć
Host
10.2.1.1
128.63.2.10
0
201.222.5.64
192.6.141.2
130.113.64.1
6
256.241.201.1
0
A
B
C
C
B
Brak
10.0.0.0
128.63.0.
0
201.222.5.0
192.6.141.0
130.113.0.0
0.2.1.1
0.0.2.100
0.0.0.64
0.0.0.2
0.0.64.16
Przykład:
Adresy hostów IPv4
Liczba dostępnych adresów hostów IPv4
Podsieci – maski IPv4
Przykład zapisu
Podsieci IPv4
Adresy bradcastowe IPv4
172.16.1.0
172.16.2.0
172.16.3.0
172.16.4.0
172.16.3.255
(Directed broadcast)
255.255.255.255
(Local network broadcast)
X
X
172.16.255.255
(All subnets broadcast)
Podsumowanie - Przykład adresowania IPv4
10101100
11111111
10101100
00010000
11111111
00010000
11111111
00000010
10100000
11000000
10000000
00000010
10101100 000100000000001010111111
10101100 000100000000001010000001
10101100 000100000000001010111110
Host
Maska
Podsieć
Broadcast
Ostatni
Pierwszy
172.16.2.160
255.255.255.192
172.16.2.128
172.16.2.191
172.16.2.129
172.16.2.190
1
2
3
4
5
6
7
16
172
2
160
Adresowanie w IPv6 – reprezentacja adresu
IPv6 – reprezentacja adresu – rodzaje i zakres adresów
IPv6 – Adresy indywidualne (unicast)
IPv6 – Adresy indywidualne (unicast)
IPv6 – Adresy rozgłoszeniowe (multicast)
IPv6 – Adresy rozgłoszeniowe (multicast)
Temat
Routing IP
Protokoły routingu – co to jest routing?
Aby kierować pakiety router musi:
Znać adres docelowy
Znać możliwe drogi
Znać lub określić najlepszą drogę
Utrzymywać i aktualizować tablice routingu
172.16.1.0
10.120.2.0
Co to jest routing?
Sieć docelowa
Interfejs znany
Wyuczony
10.120.2.0
172.16.1.0
Interfejs
wyjściowy
E0
S0
Routery muszą wiedzieć do którego
portu skierować pakiety
172.16.1.0
10.120.2.0
E0
S0
Metody routingu
Routing
statyczny
Wykorzystuje
zdefiniowane przez
administratora drogi
kierowania pakietów
Routing
dynamiczny
Wykorzystuje
automatycznie
skonfigurowane drogi
kierowania pakietów.
Korzysta z protokołów
routingu
Protokoły routingu
Protokoły Routingu
są
wykorzystywane
pomiędzy routerami
do określania dróg w
sieci i utrzymywania
tabel routingu.
Po ustaleniu drogi
router może routować
protokół
rutowalny
.
Networ
k
Protoc
ol
Destinati
on
Network
Connected
RIP
IGRP
10.120.2.
0
172.16.2.
0
172.17.3.
0
Exit
Interface
E0
S0
S1
Protokół rutowalny: IP
Protokół routingu: RIP, IGRP
172.17.3.0
172.16.1.0
10.120.2.0
E0
S0
Interior or Exterior Routing Protocols
Autonomous System 100 Autonomous System 200
IGP: RIP, IGRP
EGP: BGP
– System (sieć) autonomiczna jest zbiorem podsieci zebranych pod jedną domeną
administracyjną
– IGPs wewnątrz systemu autonomicznego
– EGPs pomiędzy systemami autonomicznymi
Klasy protokołów routingu
Distance Vector
Distance Vector
Hybrid Routing
Hybrid Routing
Link State
Link State
C
C
B
B
A
A
D
D
C
C
D
D
B
B
A
A
Protokoły „Distance vector”
C
C
D
D
B
B
A
A
C
C
B
B
A
A
D
D
Routing
Table
Routing
Table
Routing
Table
Routing
Table
Routing
Table
Routing
Table
Routing
Table
Routing
Table
Distance—How far
Vector—In which direction
Distance—How far
Vector—In which direction
Protokoły „Distance vector” – sposób nauki dróg
A
A
B
B
C
C
10.1.0.0
10.2.0.0
10.3.0.0
10.4.0.0
E0
S0
S0
S1
S0
E0
Routing Table
Routing Table
10.2.0.0
10.2.0.0
10.3.0.0
10.3.0.0
0
0
0
0
S0
S1
Routing Table
Routing Table
10.3.0.0
10.3.0.0 S0
0
0
10.4.0.0
10.4.0.0 E0
0
0
Routing Table
Routing Table
10.1.0.0
10.1.0.0
10.2.0.0
10.2.0.0
E0
S0
0
0
Routery odczytują najlepszą trasę od wiadomości
przesyłanych przez routery sąsiednie
Protokoły „Distance vector” – sposób nauki dróg
A
A
B
B
C
C
10.1.0.0
10.2.0.0
10.3.0.0
10.4.0.0
E0
S0
S0
S1
S0
E0
Routing Table
Routing Table
10.1.0.0
10.1.0.0
10.2.0.0
10.2.0.0
10.3.0.0
10.3.0.0
Routing Table
Routing Table
10.2.0.0
10.2.0.0
10.3.0.0
10.3.0.0
10.4.0.0
10.4.0.0
10.1.0.0
10.1.0.0
0
0
0
0
1
1
1
1
S0
S1
S1
S0
Routing Table
Routing Table
10.3.0.0
10.3.0.0 S0
0
0
10.4.0.0
10.4.0.0 E0
0
0
10.2.0.0
10.2.0.0 S0
1
1
E0
S0
S0
1
1
0
0
Routery odczytują najlepszą trasę od wiadomości
przesyłanych przez routery sąsiednie
Protokoły „Distance vector” – sposób nauki dróg
Routery odczytują najlepszą trasę od wiadomości
przesyłanych przez routery sąsiednie
A
A
B
B
C
C
10.1.0.0
10.2.0.0
10.3.0.0
10.4.0.0
E0
S0
S0
S1
S0
E0
Routing Table
Routing Table
10.1.0.0
10.1.0.0
10.2.0.0
10.2.0.0
10.3.0.0
10.3.0.0
10.4.0.0
10.4.0.0
Routing Table
Routing Table
10.2.0.0
10.2.0.0
10.3.0.0
10.3.0.0
10.4.0.0
10.4.0.0
10.1.0.0
10.1.0.0
0
0
0
0
1
1
1
1
S0
S1
S1
S0
Routing Table
Routing Table
10.3.0.0
10.3.0.0 S0
0
0
10.4.0.0
10.4.0.0 E0
0
0
10.2.0.0
10.2.0.0 S0
10.1.0.0
10.1.0.0 S0
1
1
2
2
E0
S0
S0
S0
1
1
2
2
0
0
Protokoły „Distance vector” – Zmiana informacji o drogach
Uaktualnienie realizowane jest krok po kroku
od routera do routera
A
A
B
B
Przetwarzan
ie
informacji,
aktualizacja
tabeli
routingu
Przetwarzan
ie
informacji,
aktualizacja
tabeli
routingu
Przetwarzan
ie
informacji,
aktualizacja
tabeli
routingu
Przetwarzan
ie
informacji,
aktualizacja
tabeli
routingu
Zmiana
topologi
sieci
Router A
przesyła
zaktualizowaną
tablicę w
następnym
zdefiniowanym
momencie
Protokoły „Distance vector” – Zmiana informacji o drogach
- problem
Istnieje możliwość wolnej zbieżności
A
A
B
B
C
C
10.1.0.0
10.2.0.0
10.3.0.0
10.4.0.0
E0
S0
S0
S1
S0
E0
X
X
Routing Table
Routing Table
10.3.0.0
S0
E0
S0
S0
1
1
2
2
10.1.0.0
10.2.0.0
10.4.0.0
0
Down
Routing Table
Routing Table
10.1.0.0
E0
S0
S0
S0
1
1
2
2
10.4.0.0
10.3.0.0
10.2.0.0
0
0
Routing Table
Routing Table
10.2.0.0
S0
S1
S1
S0
1
1
1
1
10.1.0.0
10.4.0.0
10.3.0.0
0
0
Każdy węzeł utrzymuje informacje o odległości do
każdej możliwej sieci docelowej
Protokoły „Distance vector” – Zmiana informacji o drogach
- problem
Router C wnioskuje, że najlepszą drogą do
sieci 10.4.0.0 jest droga przez Router B
A
A
B
B
C
C
10.1.0.0
10.2.0.0
10.3.0.0
10.4.0.0
E0
S0
S0
S1
S0
E0
X
X
Routing Table
Routing Table
10.3.0.0
S0
S0
S0
S0
1
1
2
2
10.1.0.0
10.2.0.0
10.4.0.0
0
2
Routing Table
Routing Table
10.1.0.0
E0
S0
S0
S0
1
1
2
2
10.4.0.0
10.3.0.0
10.2.0.0
0
0
Routing Table
Routing Table
10.2.0.0
S0
S1
S1
S1
1
1
1
1
10.1.0.0
10.4.0.0
10.3.0.0
0
0
Protokoły „Distance vector” – Zmiana informacji o drogach
- problem
Router A uaktualnia swoją tabelę
uwzględniając nową liczbę skoków (złą)
A
A
B
B
C
C
10.1.0.0
10.2.0.0
10.3.0.0
10.4.0.0
E0
S0
S0
S1
S0
E0
X
X
Routing Table
Routing Table
S0
S0
S0
S0
1
1
2
2
10.3.0.0
10.1.0.0
10.2.0.0
10.4.0.0
0
2
Routing Table
Routing Table
E0
S0
S0
S0
1
1
4
4
10.1.0.0
10.4.0.0
10.3.0.0
10.2.0.0
0
0
Routing Table
Routing Table
S0
S1
S1
S0
3
3
1
1
10.2.0.0
10.1.0.0
10.4.0.0
10.3.0.0
0
0
Protokoły „Distance vector” – Zmiana informacji o drogach
- problem
Pakiety routingu dot. sieci 10.4.0.0 krążą między sieciami A,
B, and C
Licznik skoków do sieci 10.4.0.0 zdąża do nieskończoności
A
A
B
B
C
C
10.1.0.0
10.2.0.0
10.3.0.0
10.4.0.0
E0
S0
S0
S1
S0
E0
X
X
Routing Table
Routing Table
10.3.0.0
S0
S0
S0
S0
1
1
2
2
10.1.0.0
10.2.0.0
10.4.0.0
0
4
Routing Table
Routing Table
E0
S0
S0
S0
1
1
6
6
10.1.0.0
10.4.0.0
10.3.0.0
10.2.0.0
0
0
Routing Table
Routing Table
S0
S1
S1
S0
5
5
1
1
10.2.0.0
10.1.0.0
10.4.0.0
10.3.0.0
0
0
Protokoły „Distance vector” – Zmiana informacji o drogach
- rozwiązanie
Określenie limitu liczby skoków co zapobiega
pętli nieskończonej
A
A
B
B
C
C
10.1.0.0
10.2.0.0
10.3.0.0
10.4.0.0
E0
S0
S0
S1
S0
E0
X
X
Routing Table
Routing Table
10.3.0
.0
S0
S0
S0
S0
1
1
2
2
10.1.0.0
10.2.0.0
10.4.0.0
0
16
Routing Table
Routing Table
E0
S0
S0
S0
1
1
16
16
10.1.0.0
10.4.0.0
10.3.0.0
10.2.0.0
0
0
Routing Table
Routing Table
S0
S1
S1
S0
16
16
1
1
10.2.0.0
10.1.0.0
10.4.0.0
10.3.0.0
0
0
Protokoły „Distance vector” – Zmiana informacji o drogach
- rozwiązanie
Routery ustawiają odległość do uszkodzonych sieci
jako nieskończoność
A
A
B
B
C
C
10.1.0.0
10.2.0.0
10.3.0.0
10.4.0.0
E0
S0
S0
S1
S0
E0
X
X
Routing Table
Routing Table
10.3.0
.0
S0
S0
S0
S0
1
1
2
2
10.1.0.0
10.2.0.0
10.4.0.0
0
Infinity
Routing Table
Routing Table
10.1.0.0
E0
S0
S0
S0
1
1
2
2
10.4.0.0
10.3.0.0
10.2.0.0
0
0
Routing Table
Routing Table
10.2.0.0
S0
S1
S1
E1
1
1
2
2
10.1.0.0
10.4.0.0
10.3.0.0
0
0
Definicja maximum
Protokoły „Distance vector” – Zmiana informacji o drogach
- rozwiązanie
Nie potrzeba przesyłania wstecz informacji o
uszkodzeniu
A
A
B
B
C
C
10.1.0.0
10.2.0.0
10.3.0.0
10.4.0.0
E0
S0
S0
S1
S0
E0
X
X
X
X
X
X
Routing Table
Routing Table
10.3.0.0
S0
S0
S0
S0
1
1
2
2
10.1.0.0
10.2.0.0
10.4.0.0
0
0
Routing Table
Routing Table
E0
S0
S0
S0
1
1
2
2
10.1.0.0
10.4.0.0
10.3.0.0
10.2.0.0
0
0
Routing Table
Routing Table
S0
S1
S1
E1
1
1
2
2
10.2.0.0
10.1.0.0
10.4.0.0
10.3.0.0
0
0
Split horizon
Protokoły „Distance vector” – Zmiana informacji o drogach
- rozwiązanie
Poison Reverse unieważnia split horizon
A
A
B
B
C
C
10.1.0.0
10.2.0.0
10.3.0.0
10.4.0.0
E0
S0
S0
S1
S0
E0
X
X
Routing Table
Routing Table
10.3.0
.0
S0
S0
S0
S0
1
1
2
2
10.1.0.0
10.2.0.0
10.4.0.0
0
Infinity
Routing Table
Routing Table
10.1.0.0
E0
S0
S0
S0
1
1
2
2
10.4.0.0
10.3.0.0
10.2.0.0
0
0
Routing Table
Routing Table
10.2.0.0
S0
S1
S1
E1
Possibly
Down
Possibly
Down
2
2
10.1.0.0
10.4.0.0
10.3.0.0
0
0
Poison
Reverse
Poison Reverse
Protokoły „Distance vector” – Zmiana informacji o drogach
– rozwiązanie
Routery utrzymują wpis w tablicach routingu o trasie
do sieci, która być może jest niedostępna, dzięki
czemu dają czas innym routerom do rekonfiguracji
Uaktualnij po
hold-down Time
Uaktualnij po
hold-down Time
Network 10.4.0.0
is unreachable
Network 10.4.0.0
is unreachable
A
A
B
B
C
C
10.1.0.0
10.2.0.0
10.3.0.0
10.4.0.0
E0
S0
S0
S1
S0
E0
X
X
Uaktualnij po
hold-down Time
Uaktualnij po
hold-down Time
Hold-down Timers
Protokoły „Distance vector” – Zmiana informacji o drogach
- rozwiązanie
Routery przesyłają uaktualnienia gdy nastąpią
zmiany w ich tabelach routingu
A
A
B
B
C
C
10.2.0.0
10.3.0.0
10.4.0.0
E0
S0
S0
S1
S0
E0
X
X
Network 10.4.0.0
is unreachable
Network 10.4.0.0
is unreachable
Network 10.4.0.0
is unreachable
Network 10.4.0.0
is unreachable
Network 10.4.0.0
is unreachable
Network 10.4.0.0
is unreachable
10.1.0.0
Triggered Updates
RIP (Routing Information Protocol) - RFC1058 –
protokół distance-
vector
Pole komendy
(8 bitów)
Format pakietu RIPv1
Numer wersji
(8 bitów)
Zarezerwowane (zera)
(16 bitów)
AFI (=2 dla IP)
(16 bitów)
Zarezerwowane (zera)
(16 bitów)
Adres IP (sieci)
(32 bity)
Zarezerwowane (zera)
(64 bity)
Metryka (116)
(32 bity)
AFI – Address Family Identifier (dla IP = 2)
Pole komendy
(8 bitów)
Pole komendy:
Request = 1
Response = 2
Numer wersji
(8 bitów)
Numer wersji:
1 dla IPv4
2 dla IPv6
Pola
mogą być
powtórzone w
zależności od
wielkości tablic
routingu (max 25
razy)
Pola zerowe – dla wstecznej
kompatybilności oraz przyszłego
wykorzystania
Maksy-
malnie
504
oktety
W przypadku większych tablic routingu
(powyżej 25 wpisów) musi być
przesłanych kilka pakietów RIP
Uwaga:
Pakiet RIP wykorzystuje UDP
RIP - funkcjonowanie
W routerach są trzy zegary:
- uaktualnień (dla całego węzła)
- route-timeout (dla każdego wpisu w tablicy routingu)
- route-flush (dla każdego wpisu w tablicy routingu)
Bramka
R1
R2
R3
Co
ok. 30
sekund
każdy router
przesyła do sąsiadów
pakiet RIP zgodnie z
zegarem uaktualnień
(inny dla każdego
routera)
1
Zegar route-timeout ustawiany jest zazwyczaj na
180 sek
. – gdy router nie
otrzyma w tym czasie uaktualnienia trasy uznaje, że nie ma dostępu do sieci
wskazanej tą trasą.
Akcja inicjalizacja zegara route-flush (
zazwyczaj 90 sek
.), ustawienie
metryki routingu trasy = 16, ustawienie flagi zmiany trasy, rozesłanie
informacji o niedostępności sąsiadom, trasa jeszcze jakiś czas nie jest
usuwana
2
3
Jeśli po czasie 180s + 90s = 270s trasa jest wciąż nieważna usuwana jest z
tablicy
RIP przesyła kopie tablic routingu
RIP – routing do bramy i między bramami
brama
172.31.253.5
Sieć
172.31.253
172.31.12.123
192.168.125.10
Sieć
192.168.125
Sieć
172.31.1
Wysyłany pakiet
IP docelowe:
192.168.125.10
Routery nie muszą mieć w
tablicach routingu drogi do
hostów ani routerów
wewnątrzsieciowych, ale tylko
do routerów brzegowych
(bram)
Router na podstawie adresu
określa sieć: 192.168.125 ->
sprawdza tabelę routingu,
Przesyła pakiet określonym
portem
Router bramowy sieci
192.168.125 wie dokąd
dalej przesłać pakiet
Uwaga:
Trasy do podsieci nie są
rozgłaszane na zewnątrz sieci
zawierającej tę podsieć. Brama traktuje
każdą podsieć jako indywidualną sieć.
Uaktualnienia RIP dokonywane są
pomiędzy najbliższymi sąsiadami w
obrębie każdej podsieci. Brama
rozgłasza pojedynczy numer sieci do
sąsiadujących z nią bram
1
2
3
0
Informacje o
innych bramach:
np. 192.168.125
0
Informacje
o bramie:
172.31.1
0
0
brama
Sieć
172.31.252
Router zakłada, że router
docelowy (brama) sobie poradzi
Adres 0.0.0.0 w tabeli określa drogę domyślną
Sieć autonomiczna
172.31
RIP – zmiana topologii - zbieżność
172.31.1
192.68.253
192.168.130
192.168.125
A
B
D
C
192.168.130.2
192.168.125.9
192.68.253.20
Koszt =1
Koszt =1 Koszt =1
Koszt =1
Koszt =10
172.31.1
192.68.253
192.168.130
192.168.125
A
B
D
C
192.168.130.2
192.168.125.9
192.68.253.20
Koszt =1
Koszt =1 Koszt =1
Koszt =1
Koszt =10
Timeout D < Timeout C
Uszkodzenie linii
Uszkodzenie węzła
Trasy routingu przed uszkodzeniem
Trasy routingu po uszkodzeniu
RIP:
unieważnienie
trasy
(metryka
=16)
Zbieżność Jeśli wszystkie routery zgadzają się że
do 172.31 można dostać się przez B czas
zbieżności zależy od topologii sieci
Po timeoucie
roter C
stwierdza,
że
uszkodziło
się łącze
Efekt nieskończoności
RIPv2 – RFC 1723
Rodzina adresów
w pierwszej części 0xffff oznacza,
że pakiet zawiera elementy
uwierzytelniania
RIPng
Tablica routingu, Format pakietu RIP - przykłady
Przykład tablicy routingu w routerze:
RIPv1: Command = Request
AFI
Metryka = 16
Adres multicastowy
Format pakietu RIP - przykład
RIP działa na UDP
Porty UDP dla RIP = 520
Pola adresów sieci i metryk
Adres podsieci
Metryka - Odległość
RIPv1: Command = Response
Adres multicastowy
Temat
Protokoły warstwy
transportu typu host-host:
TCP, UDP
Transmission Control
Protocol (TCP)
User Datagram
Protocol (UDP)
Transmission Control
Protocol (TCP)
User Datagram
Protocol (UDP)
Application
Transport
Internet
Data Link
Physical
Connection-
Oriented
Connectionless