Struktura komunikatów sieciowych Każdy pakiet
Transkrypt
Struktura komunikatów sieciowych Każdy pakiet
Struktura komunikatów sieciowych 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. 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 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. Zadanie: – proszę zapisać poniższe adresy w postaci dwójkowej. – 255.255.128.0 – 193.120.240.100 – 78.113.239.63 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. Mówiąc najprościej, jedynki w numerze maski mówią że określony bit adresu IP należy do numeru sieci. Zero oznacza że bit przeznaczony jest do numerowania hostów. Przykład: Dla adresu 212.191.65.6 z maską 255.255.255.240 (28 bitową) możemy rozpisać wszystko w systemie binarnym: 255.255.255.240 = 11111111 . 11111111 . 11111111 . 11110000 212.191.65.6 = 11010100 . 10111111 . 01000001 . 00000110 daje nam to adres sieci: 212.191.65.0 = 11010100 . 10111111 . 01000001 . 00000000 oraz część adresu przeznaczona dla hosta: 00000000 . 00000000 . 00000000 . 00000110 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 212.191.65.0 Zadanie: – wyznacz adres sieci oraz adres hosta na podstawie adresu IP oraz maski – 212.191.65.30 / 255.255.255.0 – 10.130.0.1 / 255.255.128.0 – 10.130.191.67 / 255.255.128.0 – 192.168.31.180 / 255.255.192.0 – 212.191.192.34 / 255.255.224.0 Podzielić sieci: – podziel podaną sieć – 212.191.65.0/24 tak by uzyskać dwie równe podsieci każda po 128 adresów (125 adresów hostów). – 212.191.192.0/25 na cztery podsieci o równej liczbie adresów. – 10.0.0.0/16 tak by uzyskać jedną dużą podsieć (największą jak się da) i dwie mniejsze (maski podsieci będą różne) 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.