Adresacja IP – podział podsieci

W życiu każdego projektanta oraz administratora sieci następuje czas, w którym z dostępnego bloku adresowego musi utworzyć klika logicznych sieci (podsieci). Czas, który poświęcicie na zapoznanie się z tym artykułem oraz jego analizę, pozwoli Wam w przyszłości zaoszczędzić sporo stresu podczas wykonywania tej czynności.

Sięgnijmy pamięcią do poprzedniego artykułu, w którym omówiliśmy sobie czy jest adres IPv4 oraz maska. Informacje te będą nam potrzebne, aby zrozumieć proces podziału sieci na mniejsze podsieci, co w przyszłości pozwoli we właściwy sposób wykonywać taki podział. Maska jest elementem konfiguracji, który określa, która część adresu IP jest adresem sieci, a która adresem hosta. Weźmy dla przykładu adres 192.168.1.0 z maską 255.255.255.0. W tym przypadku na adres sieci przypadają 3 pierwsze oktety adres IP, wynika to z faktu, iż w postaci binarnej maski (11111111.1111111.1111111.00000000), na 3 pierwszych oktetach mamy 1, a przypomnę, że 1 odpowiada części sieciowej, a 0 części hosta. Jeśli chcielibyśmy taki blok podzielić na 2 logiczne podsieci, to musimy z części hosta „pożyczyć” 1 bit do części sieciowej. Wówczas nasza maska, dla każdej z tych podsieci, będzie binarnie miała postać 11111111.11111111.11111111.10000000, czyli dziesiętnie 255.255.255.128. Analogicznie postąpimy, kiedy będziemy chcieli wykonać podział na 4 logiczne podsieci, wówczas „pożyczymy” 2 bity z części hosta i otrzymamy maskę 11111111.11111111.11111111.11000000 binarnie czyli 255.255.255.192 dziesiętnie.

Z pewnością u wielu z Was pojawi się pytanie dlaczego w drugim przypadku „pożyczenie” kolejnej jedynki spowodowało podział od razu na 4 a nie na 3 podsieci? Wynika to z logiki binarnej, a dokładniej z potęgi liczby 2, gdzie nie można uzyskać liczby nieparzystej. Ponadto przy podziale na podsieci stosuje się wzór:

liczba podsieci = 2n

gdzie n = liczba „pożyczonych” bitów z części hosta

Stąd też jeśli „pożyczylibyśmy” dwie 1 z części hosta nasz wzór miałby postać 22 co daje nam  4 podsieci

Poniższa tabela pozwoli Wam łatwiej zrozumieć, jak dodawanie jedynki binarnej do maski przekłada się na liczbę możliwych do utworzenia podsieci.

maski

Uprzedzając następne pytanie, które brzmi „czy zatem nie można dokonywać podziału adresu sieci na 3 lub 5 podsieci?” odpowiadam można. Należy wówczas jednak zastosować technikę zmiennej długości maski, tzw. VLSM (ang. Variable Length Subnet Mask), o której opowiem w dalszej części artykułu.

Wróćmy do naszego pierwszego przykładu, czyli adresu 192.168.1.0, maski 255.255.255.0 oraz podziału na 2 podsieci. Jeśli wykorzystaliśmy część bitów hosta, aby „zaspokoić” część sieciową, to jest to równoznaczne z tym, że liczba hostów w tych dwóch podsieciach się zmniejszy. Jak zatem obliczyć liczbę hostów w nowo utworzonych podsieciach? Należy skorzystać z tego samego wzoru, który stosowaliśmy w poprzednim artykule czyli: 2(liczba bitów adresu IP – skrócony zapis maski) – 2, co w naszym przypadku da nam:

2(32 – 25) – 2 = 2(7) – 2 = 128 – 2 = 126

Tak więc w każdej z podsieci będziemy mieli 126 hostów.

Na koniec pozostaje nam jeszcze określić adresy nowo utworzonych podsieci, oraz ich adres rozgłoszeniowe. Pamiętajmy, że „wyjściowo” skorzystaliśmy z adresu 192.168.1.0 oraz maski 255.255.255.0 i co za tym idzie 3 pierwszych oktetów tego adresu zmienić nie możemy. Poruszać się będziemy zatem tylko w ramach ostatniego oktetu.

Jeśli nasz początkowy adres miał postać 192.168.1.0 to nie ma żadnego powodu, aby nie wykorzystać go jako adres naszej pierwszej podsieci, zatem będzie ona miała adres 192.168.1.0, maska dla tej podsieci to: 255.255.255.128. Adres rozgłoszeniowy (ang. broadcast) wyliczamy w taki sam sposób, w jaki robiliśmy to w poprzednim artykule, czyli wykonujemy operacją logiczną NOT na postaci binarnej maski, następnie zamieniamy otrzymaną liczbę na postać dziesiętną i dodajemy ją do adresu sieci.

Operacja NOT

maski1

Konwersja otrzymanej liczby na postać dziesiętną

maski2

Dodanie otrzymanej liczby do adresu sieci

maski3

I w taki oto sposób wyliczyliśmy adres rozgłoszeniowy naszej pierwszej podsieci.

Jak w takim razie określić adres drugiej podsieci? Zasada jest bardzo prosta i obowiązywać będzie zawsze przy podziale na podsieci więc warto ją zapamiętać: adres każdej kolejnej podsieci to adres rozgłoszeniowy poprzedniej plus 1, czyli w naszym przypadku 192.168.1.128. Maska jest taka sama, tak więc łatwo można obliczyć adres rozgłoszeniowy tej podsieci, wystarczy, że dodamy do ostatniego oktetu adresu podsieci wyliczoną wcześniej liczbę 127, co da nam 192.168.1.255. Adresy pierwszych i ostatnich hostów również obliczamy, tak jako było to omówione w poprzednim artykule, czyli adres pierwszego hosta każdej podsieci to adres tej podsieci plus 1, adres każdego ostatniego hosta podsieci to adres rozgłoszeniowy minus 1.

Podsumowując, podział adresu 192.168.1.0 z maską 255.255.255.0 przedstawia się następująco:

maski4

W celu przećwiczenia zagadnienia, proponuję abyście samodzielnie spróbowali podzielić sieć z większą ilością możliwych do zaadresowania hostów o adresie 172.16.0.0 z maską 255.255.0.0 na 4 podsieci. Zauważcie, że w tym przykładzie maska jest mniejsza niż we wcześniej omawianym, dlatego też, zmiana adresów będzie następować na dwóch ostatnich oktetach, a nie tylko na ostatnim. Dla ułatwienia udostępniam Wam tabelę z rozwiązaniem, abyście mogli sprawdzić poprawność wykonania zadania. Powodzenia!

Wróćmy teraz do wspomnianej przeze mnie wcześniej techniki VLSM. Polega ona na zastosowaniu różnej długości maski w zależności od wielkości podsieci. Dwa przypadki, które przećwiczyliśmy wcześniej, dzieliły adres IP na równe podsieci, czyli na podsieci z taką samą ilością hostów (podsieci miały taką samą maskę). Stosowanie stałych masek nie zawsze ma jednak sens, ponieważ czasami zdarzają się sytuacje, gdzie w podsieciach pracować będzie różna liczba hostów, np. w jednej podsieci 100, a w drugiej tylko 10. Jeśli podzielimy adres IP na dwie równe podsieci, to w tej drugiej wiele adresów będzie niewykorzystanych, zostaną zmarnowane, co jest sytuacją niepożądaną. Aby uniknąć takiej sytuacji przy podziale na podsieci, uwzględnić należy „zapotrzebowanie” na liczbę hostów i tak ustawić maskę, aby odpowiadała temu „zapotrzebowaniu”. Podsumowując VLSM stosuje się wówczas, kiedy chcemy podzielić adres IP na mniejsze podsieci, ale z różną ilość hostów możliwych do zaadresowania.

Aby przybliżyć Wam stosowanie tej techniki ponownie posłużę się przykładem:

Mamy do dyspozycji adres 192.168.1.0 z maską 255.255.255.0 i musimy dokonać podziału na 3 podsieci o określonej liczbie hostów:

1 podsieć: minimum 100 hostów,

2 i 3 podsieć: minimum po 50 hostów.

Aby wykonać to zadanie, na początek trzeba wskazać jaką zastosować maskę, aby możliwe było zaadresowanie liczby hostów podanej w przykładzie. Tak więc jeśli dodamy jedynkę do maski i będzie ona miała postać 255.255.255.128 (/25) będziemy mogli zaadresować do 126 hostów (wynika to z podanego wcześniej wzoru 2(liczba bitów adresu IP – skrócony zapis maski) – 2). Jeśli dodamy 2 jedynki to maska będzie miała postać 255.255.255192 (/26), czyli będziemy mogli zaadresować do 62 hostów. Jak widać, zarówno w pierwszym, jak i w drugim przypadku mieścimy się w podanych wcześniej założeniach. Podsumowując zatem, maski dla poszczególnych podsieci przedstawiają się następująco:

1 podsieć: 255.255.255.128

2 i 3 podsieć255.255.192

Jeśli mamy już określone maski, możemy przystąpić do wyliczania pozostałych danych, czyli adresów sieci, adresów rozgłoszeniowych oraz adresów pierwszych i ostatnich hostów w podsieciach. Zasady są dokładnie takie same jak w poprzednich przypadkach.

Przypominam, że jeśli mamy do podzielenia adres IP 192.168.1.0 to adres ten użyty będzie jako adres 1 podsieci. Jeśli maska ma postać 255.255.255.128 to po zamianie na postać binarną (11111111.11111111.11111111.10000000), wykonaniu negacji (operacji NOT) i po konwersji na liczbę dziesiętną uzyskamy postać 0.0.0.127. Dodając tę wartość do adresu podsieci otrzymamy adres rozgłoszeniowy 192.168.1.127. Adres pierwszego hosta to 192.168.1.1 (adres sieci + 1), natomiast ostatniego to 192.168.1.126 (adres rozgłoszeniowy – 1)

Adres drugiej podsieci będzie miał postać 192.168.1.128 (+ 1 do adresu rozgłoszeniowego poprzedniej podsieci). Po zamianie na postać binarną maski podsieci (11111111.11111111.11111111.11000000), wykonaniu operacji NOT i ponownej konwersji na liczbę dziesiętną otrzymamy postać 0.0.0.63. Po dodaniu tej wartości do adresu sieci, otrzymamy adres rozgłoszeniowy w tej podsieci w postaci 192.168.1.191. Adres hosta pierwszego to 192.168.129, a ostatniego 192.168.1.190

Adres trzeciej podsieci będzie miał postać 192.168.1.192, maska jest taka sama, jak w poprzedniej podsieci tak więc ponownie wartość 0.0.0.63 dodajemy do adresu podsieci aby otrzymać adres rozgłoszeniowy, który ostatecznie będzie miał postać 192.168.1.255 Adres pierwszego hosta to 192.168.1.193, natomiast ostatniego 192.168.1.254

Podsumowanie przedstawiam Wam w poniższej tabeli.

podsieci

Adresowanie IP

Sieci komputerowe – podstawowe pojęcia

powrót do strony głównej

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Adresacja IP – cz.2

Adresy publiczne i prywatne

Omawiając adresację IPv4 nie można pominąć bardzo ważnego jej elementu jaki jest podział adresów IP na publiczne oraz prywatne. Adresy publiczne są wykorzystywane w celu umożliwienia hostom dostępu do Internetu. Adresy te są unikatowe, to znaczy, że tylko jeden host w całej globalnej sieci może mieć przypisany dany adres. W sieciach lokalnych (LAN) stosuje się natomiast adresy prywatne, które również są unikatowe, ale tylko w obrębie tej sieci. Oznacza to, że w ramach jednej sieci LAN, każdy komputer ma inny adres IP, ale w już w innej sieci LAN adres taki może się powtórzyć.

Dla lepszego zrozumienia tego stanu rzeczy posłużę się przykładem: komputery w Twojej szkolnej sieci mogą mieć przykładowe adresy 192.168.0.x, jeśli w swoim domu również masz sieć lokalną (ruter + komputer + laptop) to istnieje spore prawdopodobieństwo, że urządzenia w Twojej sieci również mają adresy z zakresu 192.168.0.x. Nawet jeśli tak nie jest, to uwierz mi, że na świecie są miliony małych sieci lokalnych o takiej samej adresacji.

Jeśli urządzenia w Twojej sieci szkolnej lub domowej posiadają dostęp do Internetu, a zapewne tak jest to muszą korzystać również z adresu (lub adresów) publicznych. Adres ten przydzielony jest przez tzw. providera czyli firmę, która udostępnia połączenie internetowe. W większości przypadków provider udostępnia tylko jeden adres publiczny. Może tutaj pojawić się pytanie dlaczego w takim razie wszystkie urządzenia w sieci (a może ich być przecież bardzo dużo) mogą korzystać z Internetu? Dlatego, że istnieje usługa, zwana NAT (ang. Network Address Translation), która „tłumaczy” adresy prywatne na publiczne. Jest ona skonfigurowana na ruterze lub szkolnym serwerze. Jej zadaniem jest, mówiąc skrótowo umożliwienie urządzeniom w sieci LAN na korzystanie z sieci globalnej. Zobrazowałem Wam działanie usługi NAT na poniższej grafice.

nat

Jeśli zatem korzystacie z usług sieci Internet za pośrednictwem komputera w sieci lokalnej, to dla użytkowników i usług w Internecie jesteście „widoczni” pod adresem publicznym, a każdy komputer znajdujący się w sieci lokalnej, będzie komunikował się z Internetem poprzez ten sam publiczny adres (o ile oczywiście provider przydzielił tylko jeden publiczny adres).

Liczba prywatnych adresów IP jest określona i mieści się w następujących przedziałach:

  • od 10.0.0.0 do 10.255.255.255 (10.0.0.0 /8),
  • od 172.16.0.0 do 172.31.255.255 (172.16.0.0 /12),
  • od 192.168.0.0 do 192.168.255.255 (192.168.0.0 /16).

Klasy adresów

Obecnie stosowanie adresacji IPv4 opiera się na określaniu jaka ilość hostów będzie działać w danej sieci, co nazwane zostało adresowanie bezklasowym. Natomiast jeszcze kilka, kilkanaście lat temu stosowano podział adresów, który dzielił je na trzy główne grupy, co oznaczane było mianem adresacji klasowej.

Klasa A

Blok adresów w klasie A został określony do tworzenia bardzo dużych sieci, w których można zaadresować ponad 16 milinów hostów. Klasa ta domyślnie posiada maskę 255.0.0.0, co oznacza, że tylko jeden (pierwszy) oktet adresu IP zawiera adres sieci, pozostałe określają adres hosta.

Klasa B

Blok adresów w klasie B został określony do tworzenia dużych i średnich sieci, w których można zaadresować ponad 65 tysięcy hostów. Klasa ta domyślnie posiada maskę 255.255.0.0, co oznacza, że pierwsze dwa oktety adresu IP zawierają adres sieci, pozostałe dwa określają adres hosta.

Klasa C

Blok adresów w klasie C został określony w celu tworzenia i obsługi małych sieci skupiających maksymalnie 254 hosty. Klasa ta domyślnie posiada maskę 255.255.255.0, co oznacza, że trzy pierwsze oktety adresu IP zawierają adres sieci, ostatni określa adres hosta.

Istnieją jeszcze klasy E, są tzw. adresy grupowe (klasa D) i eksperymentalne (klasa E) i nie są wykorzystywane do adresowania hostów.

Poniżej przedstawiam Wam tabelę z klasami adresów, która przedstawia ich zakresy oraz liczbę możliwych do zaadresowania sieci i hostów.

tabela adresów

Adresacja IP – podział podsieci

Protokoły warstwy sieci

powrót do strony głównej

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Adresacja IP

Adresacja stanowi niezwykle ważny element w działaniu sieci komputerowych ponieważ na jej podstawie odbywa się dostarczanie informacji. Kiedy listonosz dostarcza nam list, dokonuje tego na podstawie naszego adresu zamieszania, w sieciach komputerowych natomiast, aby dostarczyć pakiety do odpowiedniego hosta potrzebny jest inny adres, nazywamy adresem IP. Stanowi on kluczowy element w funkcjonowaniu protokołów warstwy sieciowej. W tym artykule omówimy sobie, w jaki sposób działa adresowanie IP w wersji 4.

Adres IP jest adresem logicznym interfejsu sieciowego (hosta) to znaczy, że nie musi to być tylko adres konkretnego komputera, może to być również adres interfejsu (interfejsów) rutera czy access pointa.

Każdy adres IPv4 składa się z 32-bitowego ciągu zer i jedynek. Wynika to z faktu, że działanie urządzeń w sieciach komputerowych oparte jest na logice cyfrowej, co oznacza, że adresy te interpretowane są jako liczby binarne. Dla prostszego stosowania adresacji i zapamiętywania adresów, na co dzień stosuje się jednak zapis dziesiętny. Zapis ten składa się z 4 części (każda z nich to 1 bajt czyli 8 bitów), zwanych oktetami.

Dla lepszego zrozumienia posłużę się przykładem:

adres IP w zapisie dziesiętnym 192.112.20.101 będzie miał postać binarną równą 11000000.01110000.00010100.01100101

W każdym adresie IP, pewna część bitów (liczona od lewej strony), reprezentuje adres sieci, reszta natomiast stanowi adres konkretnego hosta. Jest to logiczne ponieważ pakiet najpierw musi trafić do właściwej sieci, dopiero potem trafia do konkretnego hosta. Jak w życiu, list najpierw trafia do miasta, dopiero potem pod wskazany numer domu na konkretnej ulicy. Jaka część bitów przeznaczona jest na adres sieci, a jaka na adres hosta określone jest przez tzw. maskę podsieci, która to określaja wielkość sieci oraz liczbę hostów w niej funkcjonujących.

Zanim przejdziemy do omówienia maski, musimy jeszcze określić typy adresów, które związane są z każdą siecią, są nimi:

  • adres sieciowy (ang. network address) -adres, który określa całą sieć,
  • adres rozgłoszeniowy (ang. broadcast address) – specjalny adres używany w celu wysyłania danych do wszystkich hostów w określonej sieci,
  • adres hosta (interfejsu urządzenia końcowego) – adres przyporządkowany urządzeniu końcowemu pracującemu w sieci.

Podział ten będzie nam potrzebny aby we właściwy sposób móc obliczać adresy IP.

Wróćmy teraz do naszej maski podsieci, która to określa, jaka część adresu IP określa sieć, a jaka hosty. Podobnie jak sam adres IP, również maska zapisana jest w postaci 32-bitowej i przez urządzenia sieciowe interpretowana jest jako liczba binarna, natomiast w zapisie oraz konfiguracji urządzeń stosuje się zapis dziesiętny, podzielony na 4 oktety. Przykładowa maska podsieci może mieć postać 255.255.255.0 dziesiętne czyli 11111111111111111111111100000000 binarnie. Czasami też możemy spotkać się z tzw. skróconym zapisem maski  (np. /24), określającym, ile jest jedynek w binarnym zapisie maski. My będziemy stosować oba te zapisy.

W jaki sposób interpretować zapis binarny, a co za tym idzie jak określić, która część adresu jest adresem sieci, a która hosta? Bardzo prosto: jedynki określają sieć, a zera hosty należące do tej sieci.

Teraz omówimy sobie, w jaki sposób należy obliczać adresy IP. Jest to przydatne w momencie kiedy będziemy chcieli na podstawie podanego adresu i maski określić adres sieci, do której należy host, maksymalną liczbę hostów należących do tej sieci oraz adres rozgłoszeniowy. Aby wykonać tego typu zadanie potrzebna będzie umiejętność konwersji liczb dziesiętnych na binarne (i odwrotnie) oraz wiedza z zakresu wykonywania operacji logicznych, a konkretnie operacji AND  NOT. Zaczynamy!

Podany jest adres ip w postaci: 192.168.1.145 oraz maska 255.255.255.128. Na podstawie tych danych należy obliczyć:

  • adres sieci,
  • adres rozgłoszeniowy,
  • maksymalną liczbę hostów,

oraz wskazać adres pierwszego i ostatniego hosta w sieci.

Rozwiązanie:

1. Obliczamy adres sieci

Zamieniamy adres IP oraz maskę na postać binarną

przeliczanieIP1

Na otrzymanych liczbach binarnych wykonujemy operację AND (czyli mnożymy liczby w kolumnach)

przeliczanieIP2

Otrzymaną postać binarną konwertujemy na liczbę dziesiętną

przeliczanieIP6

 

przeliczanieIP15

2. Obliczamy adres rozgłoszeniowy

Na postaci binarnej maski wykonujemy operację logiczną NOT (jedynki zamieniamy na zera, a zera na jedynki)

przeliczanieIP17

Zamieniamy otrzymaną liczbę binarną na postać dziesiętną

przeliczanieIP8

Otrzymaną liczbę dziesiętną dodajemy do adresu sieci

przeliczanieIP9

 

przeliczanieIP10

3. Obliczamy maksymalną liczbę hostów w sieci

Obliczając maksymalną liczbę hostów w sieci korzystamy ze wzoru

przeliczanieIP11

przypominam, że skrócony zapis maski to liczba jedynek w jej postaci binarnej

Co w naszym przypadku daje

przeliczanieIP12

Na koniec wskazujemy adres pierwszego i ostatniego hosta w sieci

Jeśli adres sieci ma postać 192.168.1.128 to adres pierwszego hosta będzie miał postać

przeliczanieIP13

Jeśli natomiast adres rozgłoszeniowy ma postać 192.168.1.255 to adres ostatniego hosta będzie miał postać

przeliczanieIP14

Podsumowując:

Adres sieci: 192.168.1.128.

Adres rozgłoszeniowy: 192.168.1.255.

Liczba hostów: 126.

Pierwszy host: 192.168.1.129.

Ostatni host: 192.168.1.254.

Powyższy sposób przeliczania sprawdzi przy adresie z każdej klasy adresowej. Zwróćcie uwagę na to, że wszelkie operacje (AND, NOT, dodawanie czy odejmowanie) wykonywaliśmy w kolumnach, oktet pod oktetem. Jeśli obliczalibyśmy adres z innej klasy, np 153.15.102.120 /18 i przykładowo, wykonując operację NOT na postaci binarnej maski i konwertując ją na liczbę dziesiętną otrzymalibyśmy postać 0.0.127.255, to aby uzyskać adres rozgłoszeniowy 127 dodajemy do trzeciego oktetu, natomiast 255 do czwartego oktetu adresu sieci. Stosując te zasady, będziecie w stanie przeliczać każdy adres IP.

Zadanie do samodzielnego wykonania

Dany jest adres IP w postaci: 172.16.34.200 oraz maska 255.255.192.0. Na podstawie tych danych oblicz:

  • adres sieci,
  • adres rozgłoszeniowy,
  • liczbę hostów,
  • adres pierwszego i ostatniego hosta.

czytaj dalej (cz. 2)

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.

Możesz użyć następujących tagów oraz atrybutów HTML-a: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Protokoły warstwy sieci – protokoły rutingu

Bardzo ważnym elementem w procesie przesyłania danych pomiędzy urządzeniami w sieci jest ruting, który ogólnie rzecz ujmując służy do określania trasy przesyłania pakietów pomiędzy sieciami. Dlatego też omawiając protokoły warstwy sieci, nie można nie wspomnieć o protokołach rutingu, które również zwierają się w tej warstwie. Zanim jedenak o wybranych protokołach rutingu, kilka słów wstępu o samym procesie rutingu.

Hosty znajdujące się w tej samej sieci komputerowej wymieniają między sobą dane bez konieczności stosowania urządzenia pośredniczącego w warstwie sieci (rutera), wystarczy im urządzenie warstwy łącza danych, np. przełącznik. Co się jednak dzieje kiedy pakiet musi zostać dostarczony do urządzenia znajdującego się w innej sieci? Otóż wówczas do gry wkracza ruter, który stanowi bramę pomiędzy siecią, z której pakiet został wysłany, a innymi sieciami. Ruter, który znajduje się w naszej sieci i łączy ją z innymi sieciami określamy mianem bramy domyślnej (adres bramy konfiguruje się w ustawieniach sieci komputera). Brama posiada tzw. tablicę rutingu, która zawiera adresy ruterów, na drodze pakietu. Jeśli pakiet wysyłany jest do sieci oddalonej o wiele kilometrów, wówczas, zanim dotrze do celu, przesyłany jest przez wiele ruterów. Tablica rutingu przechowuje informacje o przyłączonych i odległych sieciach. Trasy do tych sieci mogą być zaprogramowane przez administratora (tzn. ruting statyczny) lub też mogą być aktualizowane automatycznie poprzez protokoły rutingu (tzn. ruting dynamiczny). Ruting statyczny jest metodą bardziej żmudną ponieważ wymaga każdorazowej aktualizacji tablic kiedy tylko zmieni się topologia sieci. Ruting dynamiczny ma tą przewagę, że samodzielnie potrafi dokonać aktualizacji w tablicy rutingu ruterów.


Powszechnie stosowane protokoły rutingu to:

  • protokół RIP (ang. Routing Information Protocol) – protokół działający na podstawie wektora odległości, określający najkrótszą ścieżkę przesyłu pakietu,
  • protokół EIGRP (ang. Enhanced Interior Gateway Routing Protocol), protokół, działający zarówno na podstawie wektora odległości, ale również na podstawie stanu łącza,
  • protokół OSPF (ang. Open Shortest Path First) – protokół, działający zarówno na podstawie wektora odległości, ale również na podstawie stanu łącza, stosujący tzw. obszary przy obliczaniu trasy.

Symbole graficzne sieci komputerowej

Protokoły warstwy transportowej

powrót do strony głównej

Protokoły warstwy sieci

Warstwa sieci (3 warstwa modelu OSI) udostępnia mechanizmy pozwalające na wymianę danych pomiędzy dwoma określonymi urządzeniami końcowymi sieci. W działaniu warstwy sieci można wyróżnić 4 elementy:

  • adresowanie, określające nadawcę i odbiorcę danych,
  • enkapsulacja, podczas której dodawane są adresy hosta źródłowego i docelowego,
  • ruting, określający drogę przesyłania danych pomiędzy sieciami
  • dekapsulacja, podczas której następuje potwierdzenie czy dane zostały przesłane do właściwego hosta.

Protokołami, które można wyróżnić w warstwie sieci to miedzy innymi:

  • IPv4 (Internet Protocol version 4)
  • IPv6 (Internet Protocol version 6)
  • Novell IPX (Internetwork Packet Exchange)
  • AppleTalk
  • CLNS/DECNet

Protokołem stosowanym najczęściej jest protokół IPv4. Został on zaprojektowany jako protokół z niedużym narzutem (dodatkowymi informacjami dodawanymi do pakietu). Zapewnia on tylko niezbędne funkcje umożliwiające dostarczanie pakietu ze źródła do celu przez połączone ze sobą sieci.

Ogólna charakterystyka protokołu IPv4:

  • bezpołączeniowy – przed wysyłaniem danych nie jest zestawiane żadne połączenie,
  • nie posiada mechanizmów zapewniających gwarancję dostarczenia pakietu,
  • niezależny od używanego medium transmisyjnego.

Budowa nagłówka pakietu IPv4:

nagłówek ip
Docelowy adres IP – pole docelowego adresu IP, zapisane w postaci 32-bitowej.

Źródłowy adres IP - pole docelowego adresu IP, zapisane w postaci 32-bitowej.

Czas życia (TTL) – 8 bitowe pole, które określa pozostały czas życia pakietu. Wartość TTL jest zmniejszana o co najmniej 1 za każdym razem, gdy pakiet przechodzi przez router (tj. za każdym przeskokiem). Kiedy wartość osiąga 0, router porzuca pakiet i jest on usunięty ze strumienia danych w sieci. Mechanizm ten chroni pakiety, które nie mogą osiągnąć celu przed przekazywaniem w nieskończoność pomiędzy routerami w tzw. pętli routingu. Jeżeli pętle routingu byłyby dozwolone, sieć byłaby przeciążona pakietami danych, które nigdy nie osiągną swojego celu. Zmniejszanie wartości TTL przy każdym przeskoku zapewnia, że w końcu osiągnie wartość 0 i pakiet, którego pole TTL równe jest 0 będzie odrzucone.

Protokół - ta 8-bitowa wartość wskazuje typ danych, które pakiet przenosi. Pole protokołu umożliwia warstwie sieci przekazać dane do odpowiedniego protokołu warstwy wyższej. Przykładowymi wartościami są: 01 ICMP, 06 TCP, 17 UDP.

Typ usługi (ToS) - zawiera 8-bitową wartość binarną, która używana jest do określenia priorytetu każdego pakietu. Ta wartość umożliwia zastosowanie mechanizmów QoS w stosunku do pakietów o wysokim priorytecie, np. przenoszących dane głosowe.

Przesunięcie fragmentu – pole stosowane podczas rekonstrukcji podzielonego prze ruter pakietu. Wskazuje porządek w jakim ma być ustawiony każdy z pakietów podczas rekonstrukcji.

Flaga MF (ang. More Fragments) – pojedynczy bit używanym z polem przesunięcia fragmentu do podziału i rekonstrukcji pakietów. Gdy bit flagi MF jest ustawiony, oznacza to, że dany fragment nie jest ostatnim fragmentem pakietu. Kiedy host odbierający zauważy przybywający pakiet z ustawioną wartością MF=1, sprawdza pole przesunięcia fragmentu, gdzie należy umieścić ten fragment podczas rekonstrukcji pakietu. Kiedy host odbierający zauważy przybywający pakiet z ustawioną wartością MF=0 i niezerową wartość w polu przesunięcia fragmentu, umieszcza ten fragment jako ostatni kawałek rekonstruowanego pakietu.

Flaga DF (ang. Don’t Fragment) – pojedynczy bit, który jeśli jest ustawiony wskazuje, że fragmentowanie pakietu jest niedozwolone. Jeżeli flaga DF jest ustawiona, wtedy fragmentacja tego pakietu nie jest dozwolona.

Wersja -zawiera numer wersji protokołu IP (4).

Długość nagłówka (IHL) – określa rozmiar nagłówka pakietu.

Długość pakietu – to pole podaje w bajtach całkowitą wielkość pakietu, zawierającą nagłówek oraz dane.

Identyfikacja – to pole jest używane do jednoznacznego identyfikowania fragmentów podzielonego pakietu IP.

Suma kontrolna nagłówka – pole używane jest do sprawdzenia błędów nagłówka pakietu.

Opcje – jest to miejsce na dodatkowe pola w nagłówku IPv4 do obsługi innych usług. Jest ono jednak rzadko używane.

czytaj dalej (cz.2)

Protokoły warstwy transportowej

Warstwa transportowa pełni w procesie przesyłu danych bardzo ważne funkcje. Przede wszystkim odpowiedzialna jest za prawidłowy przebieg komunikacji oraz jej niezawodność. Określa również sposób segmentacji danych (zasady dzielenia ich na możliwe do zarządzania części) oraz późniejszego ich scalania, a także identyfikuje dane pochodzące z różnych aplikacji (poprzez numery portów).

Dwa najpopularniejsze protokoły warstwy transportowej to TCP (ang. Transmission Control Protocol) i UDP (ang. User Datagram Protocol). Oba te protokoły są w stanie zarządzać wieloma równoczesnymi transmisjami. Różnią się zestawem funkcji jakie mogą dostarczyć aplikacjom.

Protokół UDP

UDP jest prostym, bezpołączeniowym protokołem. Jego najważniejszą zaletą jest niewielki narzut dodawany do dostarczanych danych. Porcje danych UDP są nazywane datagramami. Nie zapewnia on jednak mechanizmów ochronnych takich jak potwierdzenie dostarczenia datagramu czy retransmisji.

Aplikacje, które używają protokołu UDP to m.in.:

  • system nazw domenowych DNS (ang. Domain Name System),
  • aplikacje przesyłające strumienie Video,
  • transmisja głosu przez sieć IP (VoIP).

Poniższy rysunek przedstawia jak wygląda typowy datagram UDP.

databram UDP

Protokół TCP

TCP jest protokołem połączeniowym, tworzącym tzw. segmenty, który wprowadza pewien dodatkowy narzut, ze względu na większą liczbę realizowanych funkcji, takich jak dostarczanie ich we właściwej kolejności czy niezawodne dostarczanie i kontrola przepływu. Każdy segment TCP dodaje aż 20 dodatkowych bajtów w nagłówku, gdzie datagram UDP dodaje tylko 8 dodatkowych bajtów. Główną zaletą tego protokołu jest niezawodność, którą gwarantuje konieczność wysłania potwierdzenia przez hosta odbierającego dane zanim dostanie przesłany kolejny segment.

Aplikacje wykorzystujące protokół TCP to:

  • przeglądarki stron WWW,
  • e-mail,
  • programy do przesyłania plików.

Poniższy rysunek przedstawia jak wygląda typowy segment TCP.

segment TCP

Porty aplikacji

Z poprzedniego artykułu wiecie już, że aplikacje stosują różną numerację portów, tak aby warstwa transportowa potrafiła je rozróżnić i we właściwy sposób pokierować przepływem danych. Istnieją 3 typy numerów portów aplikacji:

  • dobrze znane porty (numery od 0 do 1023) – te numery są zarezerwowane dla usług i aplikacji. Są one powszechnie używane dla aplikacji takich jak serwery WWW (HTTP) czy serwery poczty elektronicznej (POP3/SMTP),
  • zarejestrowane porty (numery od 1024 do 49151) – te numery są zarezerwowane dla aplikacji i procesów użytkownika. Są to przede wszystkim porty używane przez aplikacje i usługi tworzone na małą skalę,
  • dynamiczne lub prywatne numery portów (od 49152 do 65535) – to numery portów, które są dynamicznie losowane przez aplikacje klienckie podczas inicjowania połączeń.

Protokoły warstwy sieci

Protokoły warstwy aplikacji

powrót do strony głównej