Struktura komunikatów sieciowych Aby lepiej

Transkrypt

Struktura komunikatów sieciowych Aby lepiej
Struktura komunikatów sieciowych
Aby lepiej zrozumieć działanie adresów przedstawmy uproszczony
schemat pakietów IP podróżujących w sieci.
nagłówek ramki ethernetowej
adr. żr
adr. celu
typ
IP źr.
IP celu
dane ramki ethernetowej
nagłówek pakietu IP
crc
flagi
TTL
......
dane pakietu IP
nagłówek TCP
dane TCP
Każdy pakiet posiada nagłówki kolejnych protokołów oraz dane w
których mogą być zagnieżdżone nagłówki oraz dane protokołów
wyższego poziomu. Każdy protokół ma inne zadanie i działa
korzystając z funkcji protokołów niższego poziomu.
Tak więc ramka ethernetowa (protokół najniższego poziomu) składa
się z pary adresów ethernetowych (każdy po 6 bajtów) oraz dwu
bajtowego pola typu protokołu wyższego poziomu. Na podstawie tych
adresów switche mogą odpowiednio przesyłać pakiety. Ponadto karty
sieciowe odbierając ramki zaadresowane do innych komputerów
odrzucają te dane jako zbędne przez co komputer nie musi ich w
ogóle analizować.
W części danych ramki ethernetowej mogą znajdować się nagłówki
oraz dane kolejnego protokołu. W przypadku sieci TCP/IP następnym
protokołem jest protokół IP. W nagłówku IP zawarte są adresy IP
komputera źródłowego oraz docelowego. Ponadto pakiet zawiera
informacje takie jak suma kontrolna, numer sekwencyjny, rozmiar,
czas życia TTL itd.
W części pakietu ip przeznaczonego na dane mogą znajdować się
kolejne nagłówki i dane protokołów wyższego poziomu np. TCP itd.
Dane przed wysłaniem z komputera są opakowywane w poszczególne
protokoły. Końcowy komunikat zawiera więc też adresy IP, adresy
ethernetowe itd.
Protokół IP odpowiada za odnalezienie drogi od nadawcy do
odbiorcy. Oznacza to iż wysyłając pakiet IP z adresem nadawcy
"sieć" musi sama poradzić sobie z przekazaniem danych do
wskazanego komputera. Odnajdowanie drogi jaką pakiet powinien
dalej podążyć nazywamy trasowaniem (routingiem).
Adresowanie IP
Adres ip ma postać czterech ośmio bitowych liczb, przyjęto
zapisywać liczby rozdzielone znakiem kropki. To na jego podstawie
określa się czy pakiet jest zaadresowany do nas a jeśli nie, w
jakim kierunku powinniśmy go wysłać by dotarł do celu.
przykładowy adres
212.191.65.6
Adres ten składa się z 4 oktetów które zapisane w postaci binarnej
mają wartości:
212
191
65
6
=
=
=
=
128*1
128*1
128*0
128*0
+
+
+
+
64*1
64*0
64*1
64*0
+
+
+
+
32*0
32*1
32*0
32*0
+
+
+
+
16*1
16*1
16*0
16*0
+
+
+
+
8*0
8*1
8*0
8*0
+
+
+
+
4*1
4*1
4*0
4*1
+
+
+
+
2*0
2*1
2*0
2*1
+
+
+
+
1*0
1*1
1*1
1*0
więc dla "poprawy" czytelności można zapisać go jako:
212.191.65.6 = 11010100 . 10111111 . 01000001 . 00000110
Reprezentacja binarna pozwoli nam zrozumieć w jaki sposób
obliczane są adresy sieci na podstawie klas lub masek.
Każdy adres sieciowy dzielony jest na dwie części numer sieci oraz
numer hosta w tej sieci. Obydwa numery zawarte są w adresie IP.
Numer sieci pozwala na przekazywanie pakietu w kierunku sieci
natomiast (na całym świecie) natomiast numer hosta jest używany w
ostatnim kroku gdy pakiet dotrze już do sieci docelowej.
Adresowanie klasowe
W adresowaniu klasowym zakłada się iż trzy pierwsze bity adresu IP
określają klasę adresu. W zależności od klasy zmienia się ilość
bitów przeznaczonych na numer sieci oraz ilość bitów
przeznaczonych na numer hosta.
Klasa A
pierwszy bit = 0
ilość sieci = 126
ilość hostów w sieci = ponad 16 milionów
ilość bitów przeznaczonych na numer sieci = 8
ilość bitów przeznaczonych na numer hosta = 24
zakres sieci = 1.0.0.0 - 126.0.0.0
Klasa B
pierwszy bit = 10
ilość sieci = 16 tyś
ilość hostów w sieci = 65 tyś
ilość bitów przeznaczonych na numer sieci = 16
ilość bitów przeznaczonych na numer hosta = 16
zakres sieci = 128.1.0.0 - 191.254.0.0
Klasa C
pierwszy bit = 110
ilość sieci = 2 mil.
ilość hostów w sieci = 254
ilość bitów przeznaczonych na numer sieci = 24
ilość bitów przeznaczonych na numer hosta = 8
zakres sieci = 192.0.1.0 - 223.255.254.0
Klasa D
pierwszy bit = 1110
multicast
Klasa E
pierwszy bit = 1111
zarezerwowane
Adresowanie bezklasowe
W celu zwiększenia elastyczności możliwe jest adresowanie
bezklasowe które wprowadzając maskę sieci pozwala na to by
dowolnie podzielić adres IP na numer sieci i numer hosta.
Pozwala to bardziej swobodnie dzielić sieci i bardziej efektywnie
wykorzystywać przestrzeń adresową.
Maska sieci mówi nam które bity adresów IP będą traktowane jako
część numeru sieci a które nie. Maska sieci postaci 255.255.255.0
oznacza iż 3 pierwsze bajty przeznaczone są na numer sieci
natomiast pozostała część adresu IP określa numer hosta w tej
sieci. Możliwe jest jednak dowolne ustawienie maski tak że np.
maska
255.255.255.240 = 11111111 . 11111111 . 11111111 . 11110000
mówi nam że tylko ostatnie 4 bity adresu IP będą określać numer
hosta. Oznacza to iż sieć będzie mogła zawierać maksymalnie 15
adresów IP - 2 więc 13 hostów.
Dlaczego -2 ? W adresowaniu zarówno klasowym jak i bezklasowym, w
każdej sieci, zarezerwowane są dwa adresy.
– Pierwszy adres w sieci, (numer hosta w sieci = 0) rozumiany
jest jako adres sieci i nie może być wykorzystywany przez
hosty. np. 212.191.65.0 z maską 24 bitową.
– Ostatni adres IP w sieci, (numer sieci + same jedynki w
części numeru hosta) oznacza adres rozgłaszania w tej
sieci. Dlatego licząc ilość dostępnych adresów hostów
należy odjąć 2. np. 212.191.65.255 z maską 24 bitową.
Maska sieci zapisywana jest też nieraz w postaci ilości bitów za
adresem sieci. np. 212.191.65.0 / 24 oznacza to iż numer sieci
składa się z 3 oktetów i jest równy
Zarezerwowane sieci
Istnieją ponadto często stosowane zarezerwowane numery sieci:
Zarezerwowane adresy klasy A
10.0.0.0/255.0.0.0 aż do 10.255.255.255/255.0.0.0
Zarezerwowane adresy sieci klasy B
172.16.0.0/255.255.0.0 aż do 172.31.255.255/255.255.0.0
Zarezerwowane adresy sieci klasy C
192.168.0.0/255.255.255.0 aż do 192.168.255.0/255.255.255.0
Zarezerwowany adres (pętla zwrotna)
127.0.0.1
Routing
Wiemy już co to jest adres IP oraz maska podsieci warto zastanowić
się po co to wszystko ? Jak już była mowa pakiet IP podróżując w
sieci nie zawiera definicji jak dotrzeć do adresata. Komputery
pośredniczące w transmisji muszą wywnioskować jak dostarczyć
pakiet na podstawie samego adresu IP.
Każdy router posiada tablicę routingu w której przechowywane są
następujące informacje:
sieć docelowa
212.191.65.0
.......
default
maska docelowa
255.255.255.0
następny skok
ip_gateway'a
cena
2
iface
eth0
0.0.0.0
domyślny_gw
1
eth2
Odbierając pakiet z sieci router sprawdza do jakiej sieci należy
dostarczyć pakiet poprzez wykonanie operacji
IP_DOCELOWY AND MASKA_DOCELOWA
Jeżeli otrzymany adres sieci zgodzi się z przechowywanym adresem
docelowym sieci pakiet wysyłany jest do odpowiedniego routera.