METODY WYMIANY INFORMACJI W
SIECIACH PAKIETOWYCH
Unicast – jeden nadawca i jeden odbiorca
Broadcast – jeden nadawca przesyła do wszystkich
Multicast – jeden nadawca i wielu (podzbiór wszystkich) odbiorców
Adres multicastingowy nie identyfikuje ani konkretnej maszyny, ani
też konkretnej podsieci i nie ma bezpośredniego związku z adresami
IP innych klas identyfikujących dany komputer.
Uwaga: adres 224.0.0.0.0 jest zabroniony
adres 224.0.0.1 określa grupę wszystkich maszyn korzystających
z multicastingu w Internecie (ang. all host group).
R 1
R 2
A
B
C
D
E
F
G
D a t a g r a m m u l t i c a s t i n g o w y
A d r e s I P = 1 1 1 0 + g r u p a m u l t i c a s t i n g u
TRANSMISJA MULTICASTINGOWA
Pula adresów IP dla multicastingu: 224.0.0.0 do 239.255.255.255
GRUPY MULTICASTOWE
grupę tworzą węzły posiadające identyczny tzw.
adres grupowy IP
(ang. IP multicast address)
Uwaga – nadawca pakietu multicast nie musi być członkiem grupy
węzły tworzące grupę mogą znajdować się w różnych sieciach IP (tzn.
mieć adresy unicastw różnych sieciach IP)
1110
adres grupy multicast
Zestaw hostów nasłuchujących nadejścia datagramu,
wysyłanego pod danym adresem grupy multicast, nazywany jest
grupą hostów. Grupa hostów może obejmować wiele sieci.
Członkowie tej grupy są przydzielani dynamicznie – host może
przyłączyć się do grupy i ją opuścić, kiedy zechce. Nie ma żadnych
ograniczeń liczby hostów w grupie, a hosty nie musza wysyłać
komunikatów do grupy, aby do niej należeć.
Niektóre grupy adresów multicast zatwierdzone są jako dobrze
znane adresy i są nazywane stałymi grupami hostów. Obowiązuje
przy tym zasada, że stały jest adres grupy multicast a nie jej
członkowie, którzy mogą się dynamicznie zmieniać.
ADRESY KLASY D
MULTICAST LOKALNY v RUTOWALNY
Multicast lokalny (ang.link local multicast) – gdy wszystkie węzły są w
jednej sieci lokalnej
Multicast rutowany(ang.routed multicast) – gdy węzły tworzące grupę
znajdują się w różnych sieciach lokalnych
ADRESY MULTICAST IP ORAZ MAC
by warstwa 2 mogła rozpoznać ramki z pakietami multicast, muszą
istnieć adresy grupowe MAC
warstwa 2 automatycznie generuje adres grupowy MAC na
podstawie adresu grupowego IP
przełączniki przekazują ramki z adresami grupowymi MAC na wiele
portów (mniej zaawansowane przełączniki rozgłaszają)
stały prefiks 01-00-5E w adresie MAC oznacza adres grupowy
bit 24 adresu MAC jest zawsze równy 0
pozostałe 23 bity są kopiowane z mniej znaczącej części adresu IP
ADRESY MULTICAST IP ORAZ MAC - CD
Przekształcenie gubi informację o pięciu bitach adresu IP (XXXXXna
rysunku)
Przykład bez utraty informacji:
IP 224.20.8.6 => MAC 01-00-5E-14-08-06
Przykład z utratą informacji:
adresy z zakresu 224.0.0.1, 225.0.0.1, 226.0.0.1, ..., 239.0.0.1 wszystkie
odwzorowane są do adresu MAC 01-00-5E-00-00-01
Wniosek: dopiero warstwa 3 potrafi ostatecznie stwierdzić, czy pakiet
trafił pod właściwy adres
PRÓG TTL - CD
interfejsowi rutera przypisywana jest stała wartość, którą ruter
porównuje z wartością TTL w pakiecie;wartość ta nosi nazwę progu
TTL (ang. TTLthreshold)
pakiet zostanie przeniesiony przez wejściowy interfejs rutera, jeśli TTL
w pakiecie jest większy niż próg TTL tego interfejsu
mechanizm ten ogranicza zasięg pakietów multicast
przy wyjściu z rutera parametr TTL w pakiecie multicast jest
zmniejszany o 1, jak w każdym pakiecie IP
PRÓG TTL
Standardowe wartości TTL:
0
– ograniczenie do maszyny; pakiet nie zostanie wysłany przez żaden
interfejs
1
– ograniczenie do sieci LAN; pakiet nie zostanie przeniesiony przezruter
< 32
– ograniczenie do jednej organizacji
< 128
– ograniczenie do jednego kontynentu
< 255
– zasięg nieograniczony, globalny
nagłówek IP
Komunikat IGMP
20 bajtów
8 bajtów
datagram IP
Protokół IGMP (ang. Internet Group Managment Protocol)
przesyła swoje komunikaty za pośrednictwem oddzielnych
datagramów IP (podobnie jak ICMP)
PROTOKÓŁ IGMP
Słowo 16 bitowe
bajt
4 bity
Słowo 32 bitowe
4 bity
Wersja
typ
nieużywany
suma kontrolna
adres 32 bitowy klasy D
Wartość 1 gdy dotyczą zapytania przez router multicast
Wartość 2 gdy dotyczy odpowiedzi przesyłanej przez
host
Group Address - zawiera adres grupy
będący dla hosta potwierdzeniem
jego członkostwa w tej grupie.
PROTOKÓŁ IGMP - CD
Format komunikatu IGMP
Użytkownik połączenia TCP/UDP jest identyfikowany za
pośrednictwem numeru, zwanego adresem portu (ang port address)
Adres portu jest łączony z adresem internetowym IP hostu, tworząc
gniazdo (ang. Socket)
Para socketów identyfikuje oba końce każdego połączenia TCP/UDP
SOCKET NADAJĄCY=ADRES IP NADFAWCY
+ ADRES PORTU ŹRÓDŁOWEGO
Konkretne usługi sieciowe są przypisane na stałe do pewnych
numerów portów.
UWAGA: Możliwe jest teoretycznie przypisanie dla TCP numeru portu do
jednej usługi, a dla UDP przypisanie tego samego numeru do zupełnie
innej usługi, jednak w celu uniknięcia nieporozumień, nigdy się tego nie
robi.
SOCKET ODBIERAJĄCY=ADRES IP ODBIORCY
+ ADRES PORTU DOCELOWEGO
GNIAZDA WARSTWY IV - CZ.I
ftp-data
20/tcp
ftp
21/tcp
telnet
23/tcp
Smtp
25/tcp
time
37/tcp timserver
time
37/udp
timserver
rlp
39/udp
resource
name
42/udp
nameserver
whois
43/tcp nickname
domain
53/tcp
domain 53/udp
mtp
57/tcp
#deprecated
bootps
67/udp
# bootp server
bootpc
68/udp
# bootp cl ient
tftp
69/udp
gopher
70/tcp
# gopher server
rje
77/tcp
finger
79/tcp
http
80/tcp
GNIAZDA WARSTWY IV - CZ.II
Przykładowy plik
/etc/services
w systemie LINUX
HOST A
HOST B
1
2
Port źródłowy = 401
Port docelowy = 25 (SMTP)+IP
Port źródłowy = 400
Port docelowy = 25 (SMTP)+IP
HOST C
3
Port źródłowy = 400
Port docelowy = 25 (SMTP)+IP
Rozróżnienie połączeń za posrednictwem adresów IP
UWAGA: identyczne adresy portów źródłowych mogą być rozróżniane
poprzez sprawdzenie dołączonych do nich adresów IP => wielu
użytkowników może korzystać usług i sieciowej oferowanej za
pośrednictwem tego samego portu TCP ( np. SMTP )
ROLA GNIAZD PRZY POŁACZENIU
W zestawie protokołów TCP/IP
protokół
datagramów
użytkownika UDP (ang. User
Datagram Protocol), zapewnia
porty protokołów używane do
rozróżniania
programów
wykonywanych na pojedynczej
maszynie.
Do przesyłania komunikatów między maszynami UDP używa
podstawowego protokołu IP i ma tę samą niepewną,
bezpołączeniową semantykę dostarczania datagramów co IP - nie
używa potwierdzeń w celu upewnienia się, o dotarciu komunikatów i
nie zapewnia kontroli szybkości przesyłania danych między
maszynami.
Program użytkowy korzystający z UDP musi na siebie wziąć
odpowiedzialność za rozwiązanie problemów niezawodności.
PROTOKÓŁ UDP
Pola port nadawcy i port
odbiorcy (ang Source &
Destination Port) zawierają
16-bitowe numery portów
UDP
używane
do
odnajdywania
procesów
oczekujących
na
dany
datagram. Pole port nadawcy
jest opcjonalne.
Pole długość (ang. Length)
zawiera wartość odpowiadającą
liczbie bajtów datagramu UDP
wliczając nagłówek i dane.
Minimalna więc wartość tego
pola wynosi więc 8, czyli jest
długością samego nagłówka.
Pole
suma
kontrolna
jest
opcjonalne.
Ponieważ jednak IP nie wylicza sum
kontrolnych dla danych, suma kontrolna UDP
jest jedyną gwarancją, że dane nie zostały
uszkodzone.
KOMUNIKAT UDP
Podstawowe usługi oferowane przez TCP (ang. Transmision Control
Protocol) to :
kontrola poprawności transmisji
kontrola przepływu danych
sekwencjonowanie
Główne usługi TCP:
Zarządzanie danymi przesyłanymi za pośrednictwem sieci w oparciu o
wcześniej zestawione połączenia (ang. Connection-oriented data
managment). Podczas każdej transmisji TCP obsługuje transmisje danych
w obie strony i kontroluje, czy całość przesyłanej informacji dotarła do
punktów docelowych.
PROTOKÓŁ TCP - CZ.I
Przesyłanie danych w oparciu o koncepcję strumieni (ang. Steam-oriented
data transfer). TCP otrzymuje dane z warstw wyższych w postaci strumienia
bajtów, a nie jakichkolwiek pakietów, ramek czy segmentów. Dopiero
wewnątrz modułu TCP dane są grupowane w tzw. segmenty TCP
PROTOKÓŁ TCP - CZ.II
Kontrola przepływu danych (ang. Flow control - sliding windows) Moduł
otrzymujący dane może wpływać na ilość danych wysyłanych przez moduł
nadsyłający. Wykorzystywane jest w tym celu pojęcie tzw. rozmiaru „okna”,
który jest przesyłany od odbiorcę do nadawcy. Nadawca jest uprawniony do
wysłania określonej ilości bajtów w ramach danego okna.
Gwarantowanie poprawności przesyłanych informacji (ang. Reliable data
transfer) Moduł TCP otrzymujący nadchodzące dane wykorzystuje
mechanizm sum kontrolnych do sprawdzenia poprawności tych danych.
Dodatkowo TCP używa liczników czasu do określenia, czy nie został
przekroczony czas przewidziany na nadesłanie danych lub nadejścia
potwierdzenia odbioru. Jednocześnie, podczas odbierania przychodzących
danych moduł TCP sprawdza występowanie tzw. duplikatów.
Jednoczesna obsługa wielu sesji transmisyjnych (ang. Multiplexing)
Pełna transmisja dwukanałowa (ang. Full duplex transmission)
Zamykanie połączeń logicznych po sprawdzeniu, czy całość
transmitowanych danych została przesłana prawidłowo (Graceful close).
Mechanizm ten zapewnia, że w normalnych warunkach ( jeżeli połączenie nie
zostało przerwane fizycznie) TCP dopilnuje, aby całość wysłanych danych
dotarła do miejsca przeznaczenia przed zamknięciem połączenia.
Obsługa poziomów bezpieczeństwa oraz priorytetów danych (ang.
Precedence and security)
PROTOKÓŁ TCP – CZ. III
Sprawdzenie poprawności działania mechanizmu ponownego łączenia
segmentów w strumień (ang. Resequencing) Celem zapewnienia
prawidłowego odtworzenia strumienia danych z nadchodzących segmentów,
TCP nadaje numery poszczególnym segmentom.