• Home
  • Server 2003/2008
  • Windows 7
  • Office
  • Linux
  • Sieci komputerowe
  • Wujek dobra rada
  • Mapa strony
  • Napisz
  • czcionka Zmniejsz czcionkę Zmniejsz czcionkę Powiększ czcionkę Powiększ czcionkę
  • Wydrukuj
  • Email
  • Komentarze (6)
pikolo pikolo

O co w tych sieciach komputerowych chodzi? Garść podstawowych informacji.

07 marzec 2013
Dział: Sieci komputerowe
Czytany 47300 razy
Oceń ten artykuł
  • 1
  • 2
  • 3
  • 4
  • 5
(27 głosów)

Sieć komputerowa jest jak żywy organizm, ciągle w niej zachodzą jakieś procesy. Użytkownikowi wydaje się że kiedy nie korzysta z niej to sieć jest w "spoczynku" i nic się w niej nie dzieje. A jest to nie do końca prawda. By sieć działała urządzenia ją tworzące cały czas wymieniają się pewnymi informacjami - routery podtrzymują relacje sąsiedztwa, wymieniają się swoimi tablicami routingu, switche budują swoje tablice adresów MAC, aplikacje włączone na naszych komputerach a korzystające z sieci pracują w tle wysyłając swoje dane itd. Sieć komputerowa jest w nieustającym ruchu, o całkowitej bezczynności sieci będziemy mogli mówić wtedy gdy ją wyłączymy. W artykule zawarłem garść podstawowych informacji niezbędnych do zrozumienia tych procesów, jeśli chcesz wiedzieć co tak naprawdę w sieci siedzi to zapraszam do dalszej lektury.

 

 

Na początek zaczniemy od samych podstaw a więc zastanówmy się czym jest adres IP i jaki jest jego związek z maską sieci.

Każdy, kto ręcznie przypisywał adres karty sieciowej te dwa adresy musiał wpisać by poprawnie skonfigurować kartę sieciową i by pełniła ona swoją rolę czyli umożliwiła nam łączność z innymi komputerami.

„Adres IP (ang. Internet Protocol) – numer nadawany interfejsowi sieciowemu, grupie interfejsów (broadcast, multicast), bądź całej sieci komputerowej opartej na protokole IP, służąca identyfikacji elementów warstwy trzeciej modelu OSI – w obrębie sieci oraz poza nią (tzw. adres publiczny).

Adres IP nie jest "numerem rejestracyjnym" komputera – nie identyfikuje jednoznacznie fizycznego urządzenia – może się dowolnie często zmieniać (np. przy każdym wejściu do sieci Internet) jak również kilka urządzeń może dzielić jeden publiczny adres IP. Ustalenie prawdziwego adresu IP użytkownika, do którego następowała transmisja w danym czasie jest możliwe dla systemu/sieci odpornej na przypadki tzw. IP spoofingu (por. man in the middle, zapora sieciowa, ettercap) – na podstawie historycznych zapisów systemowych.

W najpopularniejszej wersji czwartej (IPv4) jest zapisywany zwykle w podziale na oktety w systemie dziesiętnym (oddzielane kropkami) lub rzadziej szesnastkowym bądź dwójkowym (oddzielane dwukropkami bądź spacjami).” – tak definicję adresu IP podaje Wikipedia (źródło - http://pl.wikipedia.org/wiki/Adres_IP)

Powiem, że jak dla mnie osobie mającej na co dzień do czynienia z sieciami komputerowymi dosyć klarowna i zrozumiała ale dla osoby dopiero co chcącej poznać tajniki budowy i działania sieci komputerowych po zapoznaniu się z nią może się okazać dosyć zagmatwana i nie w sposób zrozumiały dla nowicjusza wyjaśniająca zagadnienie. Po cóż to takiego jest ten broadcast, multicast czy warstwa trzecia modelu OSI? A więc od początku (a tak na marginesie po skończeniu czytania tego artykułu model OSI, broadcat i inne pojęcia nie będą Ci obce).

Adres IPv4 (wersji 4) jest 32-bitowym adresem przypisywanym karcie sieciowej bądź interfejsowi urządzenia sieciowego jakim może być np. router celem identyfikacji tego urządzenia/interfejsu w sieci komputerowej i to bez znaczenia czy jest to sieć o zasięgu lokalny, krajowym czy Internet. Celem przypisania adresu IP urządzeniu jest zapewnienie właściwej komunikacji i wymianie danych pomiędzy innymi urządzeniami.

Udoskonaleniem protokołu IPv4 jest IPv6. Tu już mówimy o adresie 128-bitowym. Na razie wystarczy, że powiem, iż głównym celem wprowadzenia protokołu IPv6 było zwiększenie dostępnej liczby adresów jakie możemy przypisać hostom.

Wracając do IPv4, przyjrzyjmy się przykładowemu adresowi: 172.163.1.161 Taki zapis jest Ci na pewno znany, rodzi się pytanie, wspominałem wcześniej że jest to adres 32-bitowy. Więc gdzie do diabła są te 32 bity? Powyższy adres jest zapisany w notacji dziesiętnej, notabene dla naszej wygody. A co się stanie gdy zapiszemy go w systemie dwójkowym (binarnym)?

Tu przy okazji mała powtórka z matematyki. A więc spróbujmy adres 172.163.1.161 przedstawić w formie binarnej.

Zacznijmy od narysowania sobie oto takiej małej pomocy

 

 

Liczbą, którą będziemy zamieniać na system binarny jest liczba 172. A więc pierwszym krokiem jest sprawdzenie czy liczba 128 mieści się w 172. Odpowiedź jest twierdząca - tak mieści się jeden raz, dlatego pod 128 wpisujemy jedynkę i wykonujemy odejmowanie 172-128=44. Otrzymujemy.

 

 

Teraz sprawdzamy czy 64 mieści się w 44. Odpowiedź - nie. Więc pod 64 wpisujemy 0. Idąc dalej sprawdzamy czy może 32 mieści się w 44. Tu już tak, więc wpisujemy pod 32 liczbę 1 i tak jak w pierwszym przypadku wykonujemy odejmowanie 44-32=12.

 

 

Pozostało nam 12. Więc kolejne sprawdzenie czy 16 mieści się w 12? Nie, więc pod 16 wpisujemy 0. Czy 8 mieści się w 12? Tak, więc pod 8 wpisujemy 1 i wykonujemy odejmowanie 12-8=4. Otrzymujemy:

 

 

Dalej idąc tym tokiem sprawdzamy czy 4 mieści się w 4? Tak, więc pod 4 wpisujemy 1 i wykonujemy odejmowanie 4-4=0. Dotarliśmy do 0 więc w pozostały miejscach tj. pod liczbą 2 i 1 dopełniamy 0. W rezultacie otrzymujemy:

 

 

Dotarliśmy do końca, udało się nam liczbę 172 przedstawić w formie binarnej – 10101100. W ten oto prosty sposób zamienisz każdą liczbę z systemu dziesiętnego na dwójkowy. Pamiętaj tylko, że w systemie binarnym do zapisu liczb używa się tylko 1 i 0, więc jeżeli podczas zamiany jakaś liczba zmieści Ci się dwukrotnie w innej to należy poszerzyć naszą matrycę o kolejne potęgi 2 czyli przed 128 dopisujemy 256, jeśli by i to nie wystarczyło to dalej konsekwentnie przed 256 wpisać 512.

Na koniec tej powtórki z matematyki sytuacja odwrotna, przejście z systemu dwójkowego na dziesiętny. Operacja jest bardzo prosta, dalej korzystamy z naszej matrycy a nasze działania sprowadzają się do mnożenia i dodawania. Naszą liczbę w systemie binarnym zapisujemy jak na rysunku poniżej i wykonujemy mnożenie: 1x0=0; 2x0=0; 4x1=4; 8x1=8; 16x0=0; 32x1=1;64x0=0; 128x1=128 a następnie dodawanie 4+8+32+128=172.

 

 

Zamieniliśmy liczbę 172, analogicznie postępujemy z 163, 1 i 161, tak zamienione liczby zapisujemy jak na rysunku poniżej, jeżeli liczba ma mniej niż 8 znaków to dopełniamy ją do 8, dopisując z przodu zera. W naszym przypadku tak się stało z 1. W rezultacie powinniśmy uzyskać:

 

 

Teraz dopiero widać, że adres IPv4 jest adresem 32-bitowym a tak naprawdę zbudowanym z 4 oktetów po 8-bitów. Jest jeszcze jeden wniosek wypływający z powyższego rysunku a mianowicie taki, że maksymalną liczbę jaką możemy przypisać do adresu to 255 ponieważ 255 w zapisie binarnym to 11111111.

OK wiemy już czym jest adres IP więc idziemy dalej, teraz spróbujemy sobie wyjaśnić związek adresu IP z maską sieci.

Ogólnie maska sieci wyznacza granice bitów przeznaczonych na sieć i na liczbę hostów a także jest niezbędna do wyznaczenia adresu sieci i broadcastu (ale o tym za chwilę).

Przeanalizujmy poniższy rysunek, mamy adres 192.168.0.10 i maskę 255.255.255.0. Adresy te zostały zapisane w systemie binarnym.

 

 

To co zostało zaznaczone na żółto stanowi adres sieci, pozostała część przynależna jest hostom. Tak więc adres sieci wynosi 192.168.0.0, natomiast w tej danej sieci dostępnych jest 256 adresów IP. Taka liczba ponieważ, zostało nam wolnych 8-bitów, które mogą przybierać wartość 1 albo 0 co z możliwych kombinacji 2^8 daje 256 możliwych adresów IP (od 192.168.0.0 do 192.168.0.255), co nie oznacza, że wszystkie możemy wykorzystać. Musimy pamiętać, że 2 adresy są zabierane, jeden jest przydzielany adresowi sieci (pierwszy z puli) czyli 192.168.0.0 a drugi (ostatni z puli) stanowi broadcast w naszym przypadku 192.168.0.255. Więcej o wyznaczaniu tych adresów przeczytasz tu - http://slow7.pl/item/46-jak-wyznaczyc-broadcast-adres-sieci-i-liczbe-hostow

Maskę możemy podawać dwojako, podany przeze mnie zapis 192.168.0.10 i maska 255.255.255.0. jest tożsame z 192.168.0.10/24. Dlatego 24 bo w masce występują 24 jedynki.

Maska w systemie binarnym zawsze stanowi ciąg jedynek, nie może w środku znajdować się zero, skutkiem tego jest to że maskę nie można definiować sobie dowolnie – pamiętajmy, że tam gdzie 1 to adres sieci a tam gdzie 0 to hosty. Poniżej w tabeli dostępne zapisy masek i odpowiadająca im forma skrócona.

 

CIDR

Maska

CIDR

Maska

/1

128.0.0.0

/16

255.255.0.0

/2

192.0.0.0

/17

255.255.128.0

/3

224.0.0.0

/18

255.255.192.0

/4

240.0.0.0

/19

255.255.224.0

/5

248.0.0.0

/20

255.255.240.0

/6

252.0.0.0

/21

255.255.248.0

/7

254.0.0.0

/22

255.255.252.0

/8

255.0.0.0

/23

255.255.254.0

/9

255.128.0.0

/24

255.255.255.0

/10

255.192.0.0

/25

255.255.255.128

/11

255.224.0.0

/26

255.255.255.192

/12

255.240.0.0

/27

255.255.255.224

/13

255.248.0.0

/28

255.255.255.240

/14

255.252.0.0

/29

255.255.255.248

/15

255.254.0.0

/30

255.255.255.252

 

Jak już wiesz maska definiuje nam liczbę dostępnych adresów w danej sieci, wróć do rysunku powyżej i zauważ, że przesuwając żółty obszar w lewo zmniejszasz maskę a jednocześnie poszerzasz liczbę bitów przypisanych hostom, zwiększając tym samym liczbę dostępnych adresów.

Pojawiły się dwa nowe terminy a mianowicie adres sieci i broadcast a więc wypadało by je wytłumaczyć.

Adres sieci został już pośrednio opisany ale zastanówmy się nad takim pytaniem - Po co w ogóle wprowadzono taki typ adresu? Najlepiej będzie jak to pokażę, spójrz na rysunek poniżej.

 

 

No niestety tak to jest, że tłumacząc to pojęcie znów pojawiają się nowe ale nie zrażaj się, powoli wytłumaczymy wszystko. Na rysunku mamy router, który zarządza sieciami 10.0.0.0/8, 172.16.0.0/16 oraz 192.168.0.0/24. Skąd to wiadomo? Wystarczy zajrzeć w tablicę routingu routera. Zadaniem tej tablicy jest dostarczenie informacji urządzeniu z jakimi sieciami ma łączność. Jak widać w tablicy są trzy wpisy będące adresami sieci wraz z maską powiązane z interfejsem routera mającego łączność z daną siecią (w tablicy routingu mogą być zawarte także inne informacje np. typ routingu, adres następnego skoku czy metryka ale te informacje nie są teraz istotne). Router dostając pakiet przeznaczony do komputera o adresie 192.168.0.10 wie, że ma go wysłać do sieci 192.168.0.0/24 (poprzez interfejs FastEthernet0/0). Wie to stąd, bo porównując adres IP i maskę wie, że takowy host musi należeć do tej sieci. W poszukiwaniu drogi musi tylko przeszukać tablicę w której znajdują się 3 powiązania by poprawnie wyznaczyć drogę do sieci docelowej.

A co by się stało, gdyby adresów sieci nie było? By router mógł przekazywać pakiety musiałby mieć informację o adresach podłączonych do niego hostów. Sprowadza się to do tego, że taka informacja musiała by być zapisana w tablicy routingu. Idąc tą drogą dojdziemy do wniosku, że w tablicy musiałoby znaleźć się 15 wpisów powiązanych z odpowiednim interfejsem routera do którego dany host jest podłączony i adresem IP hosta. 15 wpisów bo tyle znajduje się komputerów, a oczywiście każdy nowy komputer powodowałby dodanie kolejnego wpisu do tablicy. Jak widać takie rozwiązanie spowodowałoby znaczący wzrost tablicy, zwiększając tym samym czas na jej przeszukanie.

Kolejny wzrost tablicy routingu byłby skutkiem dostawienia kolejnego routera, ponieważ spowodowałoby to powielenie istniejącej już tablicy routingu w nowo podłączonym routerze (nowy router też musi znać drogę do tych hostów) nastąpiłoby również dodanie kolejnych wpisów do tablicy routingu w istniejącym routerze a pochodzących od nowego. Tak to już jest, że w istniejącej sieci, by sieć działała i była zbieżna wszystkie routery muszą znać drogę do wszystkich hostów więc każdy kolejny router powiększa tablicę routingu wszystkich pozostałych (routery między sobą wymieniają się tablicami, dodając kolejne wpisy).

Takie rozwiązanie powodowałoby również znaczny wzrost stopnia konfiguracji routera. Wykonanie wszystkich wpisów przy wykorzystaniu np. routingu statycznego (takim, gdzie sami decydujemy o drodze przesyłania pakietów) byłaby ogromna, zaś przy routingu dynamicznym (routery same budują swoje tablice routingu i same wybierają jaką drogą prześlą pakiet – odpowiedzialne protokoły np. RIP, EIGRP, OSPF) wielkość przesyłanych aktualizacji byłaby większa, obciążając i wykorzystując bardziej posiadane pasmo.

W małych sieciach gdzie występuje kilkadziesiąt komputerów rozwiązanie te by było jeszcze akceptowalne ale w sieciach WAN gdzie router brzegowy obsługuje tysiące hostów już niestety nie. Więc po tym przykładzie czytelniku już wiesz po co jest adres sieci? Po to by ograniczyć liczbę wpisów w tablicy routingu.

Adres sieci mamy z głowy został nam broadcast. Pozwól, że znów posłużę się rysunkiem a więc spójrz poniżej.

 

 

Adres broadcast jest szczególny rodzajem adresu, jest wykorzystywany przez wiele protokołów m.in. przez DHCP (protokół umożliwiający samo konfigurację maszyny – przypisanie maszynie adresów sieciowych). Taką sytuację mamy powyżej, nowy host komputer PC4 zostaje podłączony do istniejącej sieci w której dystrybucją adresów zajmuje się Server-PT (to jego zadaniem jest obsługa protokołu DHCP). Początkowo host PC4 nie ma przypisanych żadnych ustawień, po podłączeniu go, wysyła specjalny pakiet w poszukiwaniu serwera DHCP, pakiet ten musi trafić do wszystkich urządzeń znajdujących się w sieci dlatego wysyła go na broadcast. I to jest cała istota broadcastu, jest to transmisja, która trafia to wszystkich urządzeń w sieci. Widać to po analizie PDU kolejnych warstw (znów nowe pojęcia, na razie czytelniku musisz mi wierzyć na słowo wszystko będzie jasne już za niedługo), widać że protokół DHCP w warstwie 4 jest obsługiwany przez UDP, adres docelowy w warstwie 3 to 255.255.255.255 (broadcast) a w warstwie drugiej również występuje broadcast w postaci adresu przeznaczenia FFFF:FFFF:FFFF.

Pakiet poszukujący serwera DHCP można tłumaczyć sobie w ten sposób – „witam jestem nowy poszukuję serwera DHCP, czy ty nim jesteś”. Jak widać na tak postawione pytanie odpowiada tylko Server-PT, na reszcie urządzeń pakiet ten zostaje odrzucony. Po odnalezieniu serwera następuje kolejna wymiana informacji czego efektem jest przyznanie komputerowi PC4 potrzebnych adresów niezbędnych do komunikacji z innymi urządzeniami w sieci.

Jak już jesteśmy przy transmisji typu broadcast to dobry moment by wytłumaczyć sobie transmisję typu unicast i multicast.

A więc unicast to rodzaj transmisji, typu jeden do jednego, istnieje tylko jeden nadawca i tylko jeden odbiorca. Wracając do przykładu powyżej, transmisja między Serverem-PT a hostem PC4 oczywiście po zakończeniu broadcastu (proces przypisywania adresu IP).

Multicast jak się pewnie domyślasz to typ transmisji jeden do wielu czyli ta sama informacja trafia do wielu hostów, po każdym łączu sieciowym dystrybuowana informacja jest przekazywana jednokrotnie.

By dokładniej wytłumaczyć różnicę pomiędzy transmisją unicast a multicast posłużę się o to takim przykładem. Nieraz muszę postawić system od nowa, przypuśćmy, że problem wystąpił na 4 komputerach (komputery pod względem hardwaru są jednakowe, mają te same podzespoły) i na tych 4 komputerach instalujemy Windowsa. Mam przygotowany obraz systemu, wraz z zainstalowanymi aktualizacjami i wszystkimi niezbędnymi aplikacjami i sterownikami, tak że po instalacji komputer od razu jest gotowy do działania, nie muszę już wykonywać żadnych dodatkowych czynności. Obraz jest dystrybuowany za pomocą sieci z wykorzystaniem Windows Server 2008R2 na którym to jest zainstalowana rola WDS (Windows Deployment Services). Narzędzie to ma możliwość wykorzystania transmisji multicast do dostarczenia obrazów do instalowanych maszyn. W skrócie sprowadza się to do jednoczesnego przesyłania danych do wszystkich 4 komputerów naraz. W efekcie proces instalacji trwa znacznie krócej niż jak bym wykorzystał unicast. Przy transmisji unicast te same dane wysyłane byłby czterokrotnie, do każdego komputera z osobna.

Zanim przejdziemy do modelu ISO/OSI. Niezbędne jest jeszcze pewne dopowiedzenie w kwestii protokołu IPv4 i samego wykorzystania adresów IP.

Adresacje IP dzielimy na klasową i bezklasową. Wszystko zależy od zastosowanych adresów IP i dobranych masek podsieci. Kiedy mamy do czynienia z adresacją klasową jesteśmy skazani na ściśle określone adresy IP i maski w przypadku notacji bezklasowej, dowolnym adresom IP możemy przydzielić dowolne maski. Poniżej w tabeli rozkład adresów i przynależność do danej klasy wraz z przydzielona maską domyślną.

 

Klasa adresu

Zakres adresów

I oktet

II oktet

III oktet

IV oktet

Liczba dostępnych adresów

A

0.0.0.0 - 127.255.255.255

127.x.x.x – zakres zarezerwowany do celów diagnostycznych

Część sieci

Część hosta

Część hosta

Część hosta

16777216

255

0

0

0

B

128.0.0.0 - 191.255.255.255

Część sieci

Część sieci

Część hosta

Część hosta

65536

255

255

0

0

C

192.0.0.0 - 223.255.255.255

Część sieci

Część sieci

Część sieci

Część hosta

256

255

255

255

0

D

224.0.0.0 – 239.255.255.255

na potrzeby rozsyłania grupowego

-

E

240.0.0.0 – 255.255.255.255

na potrzeby badawcze

-

 

Adresy klasy A wykorzystywane w dużych sieciach. Sieci zaczynające się od 0 i 127 są adresami zarezerwowanymi, np. adres 0.0.0.0 jest używany do określenia bramy domyślnej natomiast adresy typu 127.x.x.x są wykorzystywane jako loopback (pętla zwrotna, localhost), komunikacja np. z 127.0.0.1 oznacza wymianę informacji wewnątrz hosta tj. wysyłanie pakietu do samego siebie w celu np. testu stosu TCP/IP . Maska standardowa dla tej klasy to 255.0.0.0.

Adresy klasy B przeznaczone są do sieci średniej wielkości. Maska standardowa dla tej klasy to 255.255.0.0. W każdej sieci należącej do tej klasy można wyróżnić 65536 adresów.

Adresy klasy C przypisane małym siecią, maksymalna liczba adresów dla klasy to 256 adresów. Maska standardowa dla tej klasy to 255.255.255.0.

Klasa D została zarezerwowana na potrzeby transmisji multicast (rozsyłania grupowego). Pamiętasz podany przeze mnie przykład odnośnie instalacji systemu na wielu komputerach, do przeprowadzenia procesu zostały wykorzystane właśnie adresy z tej puli. Pula tych adresów jest również wykorzystywana przez protokoły routingu np. OSPF.

Klasa E została zarezerwowana na potrzeby badawcze i adresy tej klasy zostały wyłączone z publicznego dostępu.

Dano nam możliwość dowolnego wykorzystywania adresów IP dlatego stworzono specjalne prywatne pule adresowe w poszczególnych klasach adresów IP. Adresy prywatne, to adresy wydzielone w każdej klasie adresów IP, które nie są przydzielane hostom w Internecie (nie routowane). Adresy takie najczęściej stosuje się w sieciach prywatnych, to za ich pomocą możemy budować nasze sieci. Wygląda to tak że router jest granicą pomiędzy siecią lokalną (LAN, sieć wewnętrzna, prywatna) a dostępem do Internetu (WAN, sieć zewnętrzna, publiczna). By była zapewniona komunikacja na routerze musi być zaimplementowana funkcja NAT (translacja adresów) i musimy posiadać przyznany adres publiczny. W naszym przypadku (rysunek poniżej) wszystkie 5 komputerów z zewnątrz będzie widoczne pod jednym adresem.

 

 

Adresy prywatne wydzielone z każdej klasy IP to:

      • w klasie A: zakres od 10.0.0.0 do 10.255.255.255, maska domyślna 255.0.0.0 (10.0.0.0/8)
      • w klasie B: zakres od 172.16.0.0 do 172.31.255.255, maska domyślna 255.255.0.0 (172.16.0.0/16)
      • w klasie C: zakres od 192.168.0.0 do 192.168.255.255 maska domyślna 255.255.255.0 (192.168.0.0/24)

Adresacja oparta o klasowość została wyparta na rzecz adresacji bezklasowej. Zostało to spowodowane ogromnym marnotrawstwem adresów IP. Bez wprowadzenia odpowiednich mechanizmów czyli VLSM, CIDR oraz translacji adresów sieciowych NAT wraz z sieciami prywatnymi, dostępna pula adresów już dawno by się wyczerpała. Poniżej na wykresie jak zwiększała się liczba przydzielanych adresów IP w czasie. (źródło https://www.isc.org/solutions/survey/history)

 

 

Jak gwałtowny był wzrost zainteresowania Internetem a co za tym idzie ilością nowo powstałych sieci ilustruje również wykres poniżej przedstawiający powiększanie się tablic routingu – aktywne trasy BGP (źródło - http://bgp.potaroo.net/). Zresztą można się samemu przekonać wyszukując w Internecie serwery tras, często zdarza się że serwery te są ogólne dostępne w celach poznawczych. Przykładowe adresy poznasz tu (do sprawdzenia użyj klienta Telnetu) - http://www.routeviews.org/.

 

 

Marnotrawstwo adresów polegało na tym, że danej firmie czy organizacji przydzielano cały adres sieci klasowej. Oznaczało to nic innego, jak np. przydzielenie klasy 44.0.0.0/8 wraz z całą pulą adresów przynależną do niej. Wykorzystanie takiej przestrzeni adresowej w której jest do wykorzystania 16777216 adresów jest wręcz nieprawdopodobne ale nie niemożliwe (istnieją do tej pory firmy, które mają przyznaną taką pulę adresów – jeśli nie wierzysz sprawdź sam - http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml) Jak sam widzisz taki rozdział adresów prowadził do dość dużego marnotrawienia ich. Ale na początku istnienia Internetu nikt się tym nie przejmował problem stał się palący kiedy w latach 90 XX w. nastąpił gwałtowny boom na Internet, dlatego wprowadzono niżej wymienione (już wspomniane) rozwiązania.

CIDR – zrezygnowanie z klasowości adresu i maski domyślnej – adresowi z klasy A, można było przypisać np. maskę z klasy C. Czyli długość maski definiuje nam adres sieci i liczbę hostów. Adresu sieci nie ustala się już na podstawie klasy adresu.

VLSM - to po prostu dzielenie sieci na kolejne podsieci. Podsieci mogą być dzielone na kolejne i tak dalej. Sposób dzielenia na kolejne podsieci został opisany tu - http://slow7.pl/item/44-slow-kilka-o-adresacji-sieci.

NAT i adresacja prywatna – jak już zostało wspomniane NAT zwyczajowo przekształca pakiety z sieci używającej adresów prywatnych (wewnętrznych) na adresy publiczne (zewnętrzne) dostępne w sieci Internet i odwrotnie.

NAT wraz z innymi metodami znacznie przyczynił się do spowolnienia tempa wykorzystania adresów IPv4 . Ale trzeba mieć na uwadze, że jak to w życiu bywa nie ma nic za darmo bo wprowadzając jedną technologię stawiane są przed nami ograniczenia. Ma to szczególnie miejsce właśnie przy korzystaniu z NAT-a.

          • przechowywanie stanu połączenia i zmniejszenie wydajności sieci – NAT musi tworzyć, przechowywać oraz pamiętać stany połączeń raz ze względu na zapewnienie ciągłości komunikacji a dwa ze wzg. bezpieczeństwa by w razie wystąpienia problemów była możliwość wykrycia jego źródła (dodatkowy obowiązek dla ISP),
          • kolizja przestrzeni adresowej – występująca gdy na obu końcach realizowanego połączenia między hostami występuje ta sama prywatna przestrzeń adresowa (rozwiązanie podwójny NAT lub przenumerowanie ale zwiększa to złożoność systemu),
          • problem z współdzieleniem tych samych portów ale dla różnych adresów IP –związane z tym że np. nie można dokonać przekierowania np. portu 3389 (Pulpit zdalny) do dwóch różnych komputerów lub sytuacja odwrotna dwa serwery WWW działające za NAT-em na porcie 80 nie mogą używać tego samego adresu zewnętrznego,
          • problemy z szyfrowaniem – NAT nie zapewnia nam integralności nagłówka, jest to szczególnie kłopotliwe gdy transmisja między hostem a serwerem jest szyfrowana np. za pomocą protokołu IPSec, ze względu na dokonaną modyfikację przez NAT źródłowego adresu IPSec zgłasza błąd integralności nagłówka.

Kończąc o adresacji i adresach IPv4 trzeba by było jeszcze wyjaśnić pojęcie bramy domyślnej.

Brama sieciowa (ang. gateway) jest specjalnym adresem, który podajemy w konfiguracji karty sieciowej a jej zadaniem jest komunikacja z innymi sieciami (najczęściej z Internetem). W sieciach domyślna brama (sieciowa) jest najczęściej tożsama z interfejsem najbliższego routera do którego jest podłączona sieć. Oczywiście brama musi się znajdować w obrębie adresacji danej sieci.

Adres bramy nie jest obowiązkowym polem, możemy je zostawić puste ale wtedy maszyny bez podanego adresu bramy mogą wymieniać pakiety tylko z komputerami w obrębie tej samej sieci lokalnej.

 

 

Na rysunku powyżej wszystkie komputery znajdują się w sieci 10.0.0.0/24 i mają przypisane adresy należące do tej sieci, a bramą dla nich jest interfejs routera fa0/0 o adresie 10.0.0.1. Adres bramy jest używany tylko wtedy gdyby jakiś komputer potrzebowałby wysłać dane do Internetu. Pakiety pomiędzy komputerami nie są routowane, router nie bierze udziału w komunikacji, sieć działałaby nawet gdyby go zabrakło.

Rodzi się pytanie - Jak zachodzi proces komunikacji i skąd komputery wiedzą o swojej obecności? Do tego pytania wrócimy na końcu artykułu bo teraz nie chciałbym wprowadzać zamieszania, wszystko stanie się bardziej przejrzyste i zrozumiałe gdy poznasz model ISO/OSI.

A więc przejdźmy do modelu ISO/OSI.

Podstawę całej komunikacji w Internecie stanowi zestaw protokołów komunikacyjnych TCP/IP. Model odniesienia TCP/IP – to czterowarstwowy model tłumaczący proces komunikacji jaki odbywa się w sieci komputerowej.

Model składa się z następujących warstw:

 

 

Model odniesienia OSI (ang. Open System Interconnection), który powstał w organizacji ISO - to siedmiowarstwowy model również tłumaczący proces komunikacji jaki odbywa się w sieci komputerowej.

Model składa się z następujących warstw:

 

 

Cały proces komunikacji zaczyna się od warstwy najwyższej (warstwa aplikacji) i przebiega do najniższej (warstwa fizyczna), nosi on nazwę enkapsulacji bądź kapsułkowania. Dane przechodząc przez kolejne warstwy zostają obudowane o dodatkowe informacje pochodzące z danej warstwy a niezbędne do przebiegu całego procesu. Po dotarciu do warstwy najniższej za pomocą dostępnego medium (skrętka, fale radiowe) zostają wysłane do komputera stanowiącego cel. Na komputerze tym odbywa się proces odwrotny czyli dane wędrują od warstwy najniższej do najwyższej – proces dekapsulacji.

 

 

Nasze dane przechodzą przez kolejne warstwy. Pomiędzy warstwą sesji a warstwą transportową można wyznaczyć granice bo to co jest powyżej tym zarządzają aplikacje a to co leży poniżej należy już ściśle do transportu danych. Nasze dane gdy trafią do warstwy transportowej, obudowane o kolejne informacje utworzą segment, gdy dane trafią do warstwy sieciowej będziemy mieli do czynienia z pakietem natomiast w warstwie łącza danych będzie występowała ramka.

Warstwa aplikacji (application layer) jest warstwą najwyższą, jej zadaniem jest specyfikacja interfejsu, który zostanie wykorzystany przez aplikację do przesłania danych, komunikacji z np. serwerem. Dostarcza usługi sieciowe - dostęp do plików, drukowanie. Jest to warstwa zapewniająca komunikację pomiędzy uruchomionymi aplikacjami (np. przeglądarka) a siecią poprzez którą nasze komunikaty są transmitowane. Protokoły warstwy aplikacji zapewniają łączność pomiędzy programami uruchomionymi na komputerze źródłowym a komputerze docelowym.

Najczęściej stosowane protokoły warstwy aplikacji to:

      • protokół DNS (ang. Domain Name System),
      • protokół FTP (ang. File Transfer Protocol),
      • protokół TELNET (ang. Terminal emulation)
      • protokół SMTP (ang. Simple Mail Transfer Protocol),
      • protokół HTTP (ang. Hyper Text Transfer Protocol).

 

Warstwa prezentacji (presentation layer) - zapewnia tłumaczenie danych, definiowanie ich formatu oraz składni. Dzięki czemu niższe warstwy zawsze otrzymują dane w tym samym formacie. Zadaniem tej warstwy jest kodowanie i konwersja a także kompresja / dekompresja; szyfrowanie / deszyfrowanie. Warstwa prezentacji obsługuje np. QuickTime, MPEG, JPEG, GIF czy TIFF.

Warstwa sesji (session layer) umożliwia aplikacjom organizację dialogu oraz wymianę danych między nimi. Kontroluje nawiązywanie i zrywanie połączenia przez aplikację, utrzymuje aktywność połączenia i wznawia je. Jest odpowiedzialna za poprawną realizację zapytania o daną usługę. Synchronizuje dialog między warstwami prezentacji dwóch hostów.

Część programów takich jak np. klient poczty (Outlook, Thunderbird) czy przeglądarka stron, łączy funkcjonalność warstw sesji, prezentacji i aplikacji.

Warstwa transportowa (transport layer) – dostarcza usługę transportu danych, dzieli na segmenty dane pochodzące z wyższych warstw (komputer, który wysyła dane) w strumień oraz składa je w całość (komputer, który dane odbiera). Warstwa transportowa dokonuje wyboru segmentacji danych pochodzących z warstw wyższych, dodaje nagłówek do każdej porcji danych określający z jakim strumieniem komunikacji ma do czynienia. Dzielenie danych na mniejsze części, które są następnie wysyłane, umożliwia wielu aplikacjom na równoczesną pracę w sieci (multipleksacja).

Aby móc skutecznie przekazywać informacje do odpowiednich aplikacji, warstwa transportowa musi każdą z tych aplikacji odpowiednio zidentyfikować. Dlatego warstwa ta przydziela każdej aplikacji identyfikator - numer portu. Ten numer portu zostaje umiejscowiony w nagłówku warstwy transportowej w celu jednoznacznego zidentyfikowania do którego programu należy dany fragment.

Warstwy wyższe (aplikacji, prezentacji i sesji) skoncentrowane są na obsłudze aplikacji, natomiast niższe zajmują się aspektami transportu danych.

Numery portów reprezentowane są przez liczby naturalne z zakresu od 0 do 65535.

      • od 0 do 1023 są określone jako ogólnie znane, (ang. well known ports),
      • zarejestrowane porty (registered ports) - porty o numerach od 1024 do 49151 przewidziane są dla usług, które zwyczajowo korzystają z określonych portów,
      • porty przydzielane dynamicznie (dynamically allocated ports, również ephemeral ports) - porty o numerach od 49152 do 65535.

Przykładowe, najczęściej wykorzystywane porty:

      • DNS – 53 (TCP, UDP)
      • FTP – 20, przesyłanie danych (TCP)
      • FTP – 21, przesyłanie poleceń (TCP)
      • HTTP – 80, (TCP)
      • HTTPS – 443 (HTTP na SSL) (TCP)
      • IMAP – 143 (TCP)
      • POP3 – 110 (TCP)
      • SMTP – 25 (TCP)
      • Telnet – 23 (TCP)
      • TFTP – 69 (UDP)
      • RIP – 520 (UDP)

Listę portów i korzystających z nich aplikacji znajdziesz tu: http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml

Na poziomie tej warstwy do transmisji danych wykorzystuje się dwa protokoły TCP (ang. Transmission Control Protocol) oraz UDP (ang. User Datagram Protocol).

Protokoły warstwy transportowej mogą zapewnić następujące funkcje, choć trzeba mieć na uwadze że zależy to od wyboru protokołu obsługującego daną sesję:

      • Ustawienie sesji – przygotowanie obu stron do wzajemnej wymiany informacji,
      • Pewne dostarczenie danych – czyli w miarę potrzeby ponowna transmisja brakujących lub uszkodzonych fragmentów,
      • Odpowiedni kolejność dostarczania – w sieci dwa różne fragmenty tej samej transmisji są dostarczane różnymi drogami a co za tym idzie, inny jest czas dostarczenia poszczególnych pakietów dlatego stosowane jest numerowanie i sekwencjonowanie dające nam pewność, że dane zostaną połączone w odpowiedniej kolejności,
      • Kontrola przepływu – reguluje ilość przepływanych informacji.

 

TCP jest protokołem, opisanym w RFC 793. TCP narzut dodatkowych danych jest większy niż w przypadku UDP a to dlatego, że protokół ten realizuje dodatkowe funkcje tj. dostarczanie we właściwej kolejności, pewne dostarczenie oraz oferuje kontrolę przepływu. Każdy segment TCP ma narzut 20 bajtów w nagłówku, natomiast datagram UDP dodaje tylko 8 dodatkowych bajtów.

TCP jest wykorzystywane m.in. przez:

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

Poniżej schemat nagłówka TCP (nie opisuję pół, bo to temat na inny bardziej szczegółowy artykuł, chcę tylko pokazać różnicę w narzucie dodatkowych danych)

 

 

UDP jest bezpołączeniowym protokołem, opisanym w RFC 768. Niewielki narzut dodatkowych danych niezbędnych do działania protokołu powoduje, że wykorzystywany jest przez:

      • aplikacje strumieniujące video,
      • programy do transmisji głosu (VoIP),
      • system nazw domenowych DNS.

Porcje danych UDP są nazywane datagramami.

Poniżej na rysunku schemat datagramu UDP.

 

 

Zdarzają się aplikacje, które potrafią wykorzystywać oba protokoły takim przykładem może być DNS. Serwer DNS może szybko obsługiwać wiele zapytań hostów korzystając z UDP, lecz gdy jest potrzeba pewnego i niezawodnego przesłania danych korzysta z TCP.

Aby w systemie sprawdzić jakie protokoły są używane i na jakich portach można wykorzystać narzędzie wiersza poleceń – netstat.

 

 

Komenda netstat posiada opcje.

 

 

Warstwa sieciowa (network layer) - dysponuje wiedzą dotyczącą fizycznej topologii sieci. Odpowiedzialna za łączność oraz wybór optymalnych ścieżek (routing) połączeń, którymi zostanie przesłany pakiet.

Protokoły warstwy sieci to: IPv4, IPv6, ICMP, NOVELL IPX, APPLE TALK.

Do realizacji swoich celów warstwa sieciowa używa następujących procesów:

      • adresowanie – dostarczanie pakietów do urządzeń końcowych,
      • enkapsulacja – dodawanie informacji do nagłówka,
      • routing – kierowanie pakietów,
      • dekapsulacja.

Najczęściej używanym protokołem warstwy 3 jest IPv4, charakteryzuje się:

  • jest protokołem bezpołączeniowym czyli przed wysyłaniem danych nie jest zestawiane żadne połączenie, host docelowy nie jest świadomy nadejścia pakietów.
  • pracuje niezależnie od medium użytego do transportu danych,
  • działa na zasadzie dostępnych możliwości (ang. Best Effort) – brak gwarancji dostarczenia pakietu bo i po co tym zajmuje się warstwa czwarta w przypadku użycia TCP.

IPv4 kapsułkuje segmenty dostane od warstwy transportowej lub datagramy tak aby można było dostarczyć je do hosta docelowego.

 

Nagłówek pakietu IPv4

 

 

Adres docelowy - zawiera 32-bitową wartość binarną, adres docelowy hosta czyli tam gdzie ma trafić pakiet.

Adres źródłowy - zawiera 32-bitową wartość binarną, adres źródłowy hosta czyli host który wysyła pakiet.

TTL (ang. time to live) – czas życia pakietu - 8-bitowa wartością binarną, która jest zmniejszana o co najmniej 1 gdy pakiet przechodzi przez router. W momencie osiągnięcia 0, pakiet jest odrzucany. Pole TTL zapobiega krążeniu w nieskończoność pakietów. Obecność tego pola można zaobserwować podczas wysyłania pakietu ICMP czyli popularnego pinga.

 

 

Protokół - 8-bitowa wartość wskazuje na typ przenoszonych danych. Przykładowe wartości: 01 ICMP,

06 TCP, 17 UDP.

Typ usługi (ToS) - 8-bitowa wartość binarną, używana przez mechanizm QoS (ang. Quality of Service) czyli do określenia priorytetu pakietu.

Przesunięcie fragmentu – używane w momencie kiedy nastąpi podział pakietu, podczas rekonstrukcji pakietu.

Suma kontrolna nagłówka pole 16-bitowe, pole jest sprawdzane przez rutery w momencie odkrycia błędu pakiety są odrzucane.

Wersja – pole 4 bity, numer wersji protokołu, możliwe wartości to: dla IPv4 – 0100 dla IPv6 – 0110.

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

Opcje - miejsce do określenia dodatkowych pól w nagłówku IPv4, używane (żadko) do obsługi innych usług.

 

Warstwa łącza danych (data link layer) odpowiedzialna za transport danych na fizycznym łączu. Zajmuje się fizycznym (przeciwieństwem logicznego) adresowaniem, topologią sieci, dostępem do mediów sieciowych oraz wykrywaniem błędów.

Zadaniem warstwy łącza danych jest przygotowanie pakietu do transportu przez dostępne medium sieciowe. Tworzona jest ramka, powstająca analogicznie jak w warstwach wyższych poprzez dołączenie do pakietu - nagłówka i pola końcowego.

Ramka warstwa łącza danych zawiera:

      • pakiet przekazany z warstwy sieci,
      • nagłówek - początek PDU, odpowiedzialny za adresowanie,
      • pole końcowe – koniec PDU, zawiera informacje kontrolne.

 

 

Protokoły warstwy łącza danych odpowiadają za sposób enkapsulacji pakietów w ramki oraz są odpowiedzialne za prawidłowe umieszczanie tak powstałych ramek w medium oraz ich pobieranie. Technika pozwalająca umieszczać oraz pobierać ramki z medium nazywana jest metodą kontroli dostępu (ang. media access control).

W warstwie drugiej dostępne są następujące protokoły, które są rozwijane przez różne organizacje poniżej ich zestawienie:

      • Instytut Inżynierów Elektryków i Elektroników (IEEE, Institute of Electrical and Electronics Engineers); rodzina protokołów 802 tj. (802.2 – LLC, 802.3 – Ethernet, 802.5 – Token Ring, 802.11 – WiFi,
      • Międzynarodowa Organizacja ds. Standaryzacji (ISO, International Organization for Standardization); protokół HDLC – High Level Data Link Control,
      • Amerykański Narodowy Instytut Normalizacyjny (ANSI, American National Standards Institute); protokoły 3T9.5, oraz ADCCP – Advanced Data Communications Control Protocol
      • Międzynarodowy Związek Telekomunikacyjny (ITU, International Telecommunication Union); protokoły Q.921 - ISDN Data Link Standard, Q.922 – Frame Relay Standard, HDLC – High Level Data Link Control,
      • Protokół zdefiniowany w RFC – PPP - Point-to-Point Protocol.

Protokoły wyższych warstw są implementowane zazwyczaj w softwaru systemu operacyjnego lub danej aplikacji tu natomiast mamy do czynienia z sytuacją w której protokoły te występują również w hardwaru np. karta sieciowa.

 

Warstwa fizyczna (physical layer) - zapewnia transmisję danych pomiędzy węzłami sieci. Określa ona wszystkie składniki sieci niezbędne do obsługi elektrycznego, optycznego, radiowego wysyłania i odbierania sygnałów. Definiuje interfejsy sieciowe i medium transmisji. Określa m.in. sposób połączenia mechanicznego, poziomy napięcia, okresy zmian napięcia, maksymalne odległości transmisyjne, standard fizycznej transmisji danych. W skład jej obiektów wchodzą min.: przewody, karty sieciowe, modemy, wzmacniacze.

Do transportu ramki przez medium wymagana są następujące elementy wchodzące w skład warstwy fizycznej:

      • fizyczne medium oraz złącza,
      • sposób przedstawienia bitów w medium ,
      • procesy kodowania danych,
      • urządzenia nadawczo-odbiorcze.

Medium – można określić jako nośnik informacji użyty do transmisji danych.

Możemy wyróżnić następujące media transmisyjne:

      • kabel miedziany,
      • światłowód,
      • atmosfera.

Sposób reprezentacji bitów, zależy oczywiście od typu użytego medium i tak dla kabla miedzianego jest to ciąg impulsów elektrycznych, dla światłowodu - impulsy światła natomiast dla atmosfery są to fale radiowe.

Wybór odpowiedniego medium transmisyjnego ma wpływ na osiągany transfer, oczywiście różne media fizyczne oferują nam różne szybkości transferu, który możemy wyrazić na trzy sposoby:

      • szerokość pasma (ang. bandwidth),
      • przepustowość efektywna (ang. goodput),
      • przepustowość (ang. throughput).

Szerokość pasma mierzy ilość informacji, jaka może być przesłana z jednego miejsca do drugiego w określonym czasie. Przeważnie szerokość pasma mierzy się w kilobitach/s (kb/s) lub megabitach/s (Mb/s).

Przepustowość to miara transferu bitów przez medium w określonym czasie. Oczywiście dążymy do tego by przepustowość była jak najbardziej zbliżona do szerokości pasma ale z wielu czynników jest to niemożliwe. Ponieważ na przepustowość wpływ maja takie czynniki jak: wielkość ruchu czy ilość użytych urządzeń.

Przepustowość efektywna to miara transferu użytecznych danych w określonym czasie. Obejmuje również cały proces enkapsulacji i dekapsulacji czyli mierzy efektywny transfer danych użytkownika pomiędzy warstwami. Przykładem może być np. transmisja danych pomiędzy przeglądarką WWW a serwerem www.

Aby zrozumieć proces enkapsulacji i dekapsulacji, prześledźmy proces wysłania pakietu ping. Scenariusz jest taki wysyłamy pakiet z komputera PC1 o adresie 10.0.0.10 do serwera o adresie 192.168.0.10. Jak widać na rysunku pakiet musi przejść przez trzy sieci – zaczyna w sieci 10.0.0.0/24, poprzez sieć 172.16.0.0/30 (między routerami) by w końcu trafić do adresata znajdującego się w sieci 192.168.0.0/24. Trochę wyprzedzę następny artykuł, który będzie dotyczył routingu i dodam, że sieć jest zbieżna czyli wszystkie urządzenia a w szczególności routery mają w swoich tablicach informacje o sposobie dostania się do poszczególnych sieci (w tym przypadku routingiem zajmuje się protokół RIP a bardziej szczegółowo jego druga wersja)

 

 

Z komputera PC1 zostaje wysłany ping, poniżej na rysunku widać wypełniony pakiet warstwy trzeciej (IP) z adresem nadawcy – src:10.0.0.10 i adresem docelowym hosta dst:192.168.0.10. Do pakietu warstwy trzeciej zostaje dodana ramka warstwy drugiej (Ethernet) i również wypełniona adresami nadawcy i odbiorcy z tym wyjątkiem że użytymi adresami są adresy MAC. Dla nadawcy adres 00D0:FF23:DBE0 i dla odbiorcy 0050:0F4C:0007. Można by zapytać czemu został użyty adres 0050:0F4C:0007, który przecież nie jest adresem docelowego hosta? Już śpieszę z odpowiedzią. Dzieje się tak, ponieważ adres 0050:0F4C:0007 jest adresem interfejsu fa0/0 routera , który jest jednocześnie bramą dla komputera PC1, komputer nie zna drogi do sieci przeznaczenia, dlatego w myśl zasady – „jak nie znam drogi, wysyłaj na bramę niech się ona martwi” tak też czyni. Pakiet przechodzi do warstwy fizycznej i zostaje wysłany.

 

 

Pierwszym napotkanym na drodze urządzeniem jest switch S2, on musi odebrany pakiet przekierować w ten sposób by trafił on do routera. Ale by wykonać to zadanie musi poznać adres docelowy MAC adresata. Następuje dekapsulacja danych ale tylko do warstwy drugiej bo w tej warstwie zaszyte są informacje potrzebne do prawidłowego przekazania pakietu. Dlatego bardzo często mówi się, że switch jest urządzeniem warstwy drugiej i jak widać jest to prawda bo switchowi do działania wystarczą informacje zawarte w tej warstwie, warstwy powyżej go nie interesują. W momencie uzyskania informacji o adresie MAC odbiorcy pakietu, następuje sprawdzanie tablicy MAC switcha (w tablicy tej znajdują się adresy MAC z którymi switch ma łączność powiązane z numerem portu – rysunek poniżej) celem dopasowania tego adresu. Gdy switch dopasuje adresy, pakiet zostaje przesłany na odpowiedni port przełącznika i wysłany dalej. Czyli w naszym przypadku pakiet zostaje przekierowany z portu fa0/2 switcha na port fa0/1.

 

 

Kolejnym etapem na drodze pakietu do celu jest router. W tym przypadku by móc przesłać pakiet dalej router musi dostać się do warstwy trzeciej czyli do warstwy sieciowej (stąd mowa o tym, że routery są urządzeniami pracującymi w warstwie 3). Następuje proces dekapsulacji, router zdobywa informację o przeznaczeniu pakietu a tak naprawdę zdobywa adres sieci w której znajduje się docelowy host w naszym przypadku 192.168.0.0/24 (informację te zdobywa po analizie pakietu przychodzącego IN). Kolejnym krokiem jest sprawdzenie gdzie znajduje się docelowa sieć, dlatego router sięga do swojej tablicy routingu, celem odnalezienia drogi do sieci 192.168.0.0/24. W naszym przypadku po sprawdzeniu tablicy routingu router wie, że aby przesłać pakiet dalej musi go przekazać na port fa0/1 na adres następnego skoku 172.16.0.1. Następuje przebudowa nagłówka pakietu warstwy trzeciej m.in. o jeden zostaje pomniejszone pole TTL. Pole te zostaje zmniejszane o 1 za każdym razem gdy pakiet przechodzi przez router. Po dojściu do 0 pakiet zostaje odrzucany, ma to zapobiegać krążeniu pakietów bez końca. Pakiet zostaje przekazany niżej do warstwy łącza danych, warstwa ta musi wypełnić ramkę adresami MAC, wie że docelowym adres następnego skoku jest adres 172.16.0.1, dlatego sięga do tablicy ARP routera w której znajdują się powiązania adresów IP z adresami MAC urządzeń mających łączność z routerem. Dlatego jako docelowy adres MAC zostaje umieszczony wpis 00D0:FF0B:0002, natomiast źródłowy adres MAC to 0050:0F4C:0007 – adres interfejsu fa0/1 routera (pakiet opuszcza router tym właśnie interfejsem).Ping zostaje przekazany dalej (pakiet OUT).

 

 

Kolejny etapem jest znowu router, następuje sytuacja analogiczna co wcześniej czyli analiza pakietu przychodzącego, sprawdzenie docelowego adresu w tablicy routingu, przebudowa nagłówka ramki warstwy trzeciej (pole TTL pomniejszone o 1), przekazanie informacji do warstwy łącza danych, sprawdzenie tablicy ARP, wypełnienie ramki adresami MAC i przekazanie pakietu dalej.

 

 

Ostatnim etapem jest switch, po dotarciu pakietu sprawdzany jest docelowy adres MAC, jeśli takowy znajduje się w tablicy MAC przełącznika to zostaje przekazany na odpowiedni port – w naszym przypadku pakiet trafiający na interfejs fa0/1 po przełączeniu zostaje wysłany interfejsem fa0/2.

 

 

Informacja trafia do hosta docelowego, po dekapsulacji i sprawdzeniu kto przysłał pakiet następuje enkapsulacja i wysłanie odpowiedzi zwrotnej do nadawcy.

 

 

 

Na koniec wróćmy do pytania postawionego wcześniej a odnoszącego się do komunikacji w obrębie sieci lokalnej.

Mamy taką sytuację chcemy spingować komputer 10.0.0.14, pakiet ICMP będzie wysłany z komputera o adresie 10.0.0.10.

 

 

Jak już wiesz proces enkapsulacji przebiega w dół, z warstwą sieciową nie ma problemu, ale problem pojawia się w warstwie łącza danych bo trzeba w ramce wypełnić pole docelowego adresu MAC, a niestety komputer wysyłający nie zna tego adresu. Więc jak być może się już domyślasz musi istnieć jakiś protokół/mechanizm pozwalający na poznanie tego adresu. Oczywiście tak jest. Protokół ten nazywa się ARP i jego zadaniem jest powiązanie adresów IP z adresami MAC, wyniki działania protokołu są umieszczane w tablicy ARP (jak widać powyżej na razie tablica jest pusta). Oczywiście cały proces również zachodzi w sytuacji opisanej powyżej ale żeby za bardzo nie zagmatwać rozbiłem to na 2 różne przykłady. Spójrz na rysunek powyżej komputer o adresie 10.0.0.10 wysyła rozgłoszenie ARP (kolejny protokół korzystający z broadcastu) –„szukam komputera o adresie 10.0.0.14, potrzebuję jego adresu MAC”. Na rysunku poniżej widać jak rozgłoszenie ARP trafia do wszystkich urządzeń znajdujących się w sieci, ale odpowiada tylko komputer o adresie 10.0.0.14. Pakiet ARP zostaje odesłany wraz z wypełnionym adresem MAC źródła czyli komputera o adresie 10.0.0.14.

 

 

Ten pakiet zostaje przetworzony przez komputer PC4 i pojawia się odpowiedni wpis w tablicy ARP, kojarzący adres 10.0.0.14 z odpowiednim adresem MAC.

 

 

Na tej zasadzie wszystkie komputery w sieci budują swoje własne tablice ARP (rysunek poniżej). Aby wyświetlić tablicę ARP komputera wydaj polecenie – arp -a

 

Routing statyczny   >>>

Ostatnio zmieniany piątek, 22 styczeń 2016 21:43
Etykiety
  • ICMP
  • ARP
  • ISO/OSI
  • NAT
  • TCP
  • UDP
  • broadcast
  • Multicast
  • Unicast

Artykuły powiązane

  • Co w sieci siedzi. Protokół DNS.
  • Atak na warstwę 2 modelu ISO/OSI - preludium
  • Serwer Syslog (po raz drugi) z wykorzystaniem systemu Linux.
  • Listy kontroli dostępu ACL
  • Co w sieci siedzi. Skanowanie portów.
Więcej w tej kategorii: « Co w sieci siedzi. Routing statyczny. Słów kilka o adresacji sieci. »

Dodaj komentarz



Odśwież

Wyślij
Skasuj

Komentarze  

# Paweł 2019-01-17 15:36
"Opcje - miejsce do określenia dodatkowych pól w nagłówku IPv4, używane (żadko) do obsługi innych usług." - rzadko pisze się przez "rz" :)
Poza tym super artykuł :)
Cytować
# Stefan 2018-07-09 12:44
Rewelacyjna stronka
Cytować
# pikolo 2018-01-08 10:29
Cytuję Vladyslav:
Jak nazywa się ta aplikacja w której można budować sieci, a potem ich testować?
Z góry dziękuje!


Packet Tracer jest to narzędzie Cisco używane w ćwiczeniach na laboratoriach, bądź samego przerobienia. Zastępuje fizyczny sprzęt.
Cytować
# Vladyslav 2018-01-07 13:33
Jak nazywa się ta aplikacja w której można budować sieci, a potem ich testować?
Z góry dziękuje!
Cytować
# Rafał 2017-01-18 14:30
Super stronka. Autor to super gościu. Szacunek
Cytować
# Piotrek 2015-11-27 01:16
To najlepsza strona opisująca działanie sieci, jaką widziałem. Ten i inne artykuły tutaj są po prostu genialne.
Cytować
Odśwież komentarze
JComments
Powrót na górę

Wujek dobra rada

Szybkie pytania i szybkie odpowiedzi czyli garść porad do wykorzystania w codziennej pracy z komputerem.

  • Jak utworzyć RAMdysk w systemie Windows? Jak utworzyć RAMdysk w systemie Windows?

    RAMdysk jest wydzieloną częścią pamięci, która w systemie operacyjnym jest widziana jak kolejny dysk/partycja. Praca z tak wydzielona przestrzenią pamięci odbywa się jak z normalnym dyskiem. Dostępne są wszystkie operacje związane z plikami.  

    Napisano poniedziałek, 04 grudzień 2017 21:44
  • Bezpieczny pendrive Bezpieczny pendrive

    Jak zabezpieczyć nasze dane w sytuacji utraty pendiva/karty pamięci.

    Napisano czwartek, 29 czerwiec 2017 12:00
  • Wyszukiwanie plików w systemie Windows Wyszukiwanie plików w systemie Windows

    Krótki opis jak wyszukać pliki przy wykorzystaniu Eksploratora plików.

    Napisano sobota, 17 czerwiec 2017 20:31
  • Diagnostyka pamięci RAM Diagnostyka pamięci RAM

    Jak zdiagnozować uszkodzenie modułu pamięci RAM

    Napisano wtorek, 16 maj 2017 12:39
  • Konwersja maszyny fizycznej na wirtualną (odsłona druga). Konwersja maszyny fizycznej na wirtualną (odsłona druga).

    W poprzednim wpisie (Konwersja maszyny fizycznej na wirtualną) opisałem konwersję maszyny fizycznej do wirtualnej, efektem Naszych działań było przeniesienie systemu działającego na fizycznym hoście do środowiska opartego o oprogramowanie Vmware. Zaś w tym wpisie wykonamy podobne działanie lecz efektem będzie uzyskanie maszyny działającej w VirtualBox.

    Napisano czwartek, 04 maj 2017 11:53
Czytaj więcej...

Najczęściej komentowane

  • Jak wyznaczyć broadcast, adres sieci i liczbę hostów? (+19)
  • Instalacja Windows XP/Vista/7 z pendriv'a. (+12)
  • Dostęp zdalny oraz prawa użytkownika w urządzeniach CISCO (+12)
  • Co w sieci siedzi. Protokół DNS. (+10)
  • Windows i Linux w jednej stali sieci. (+8)

Najnowsze komentarze

  • Dzak 07.09.2020 17:32
    Witam. Nie rozumiem dlaczego zamiast podziału na podsieci nie możemy po prostu ustanowić 7 lokalnych ...
     
  • fgm 03.09.2020 06:47
    jak nie pamietam daty rozszezenia i dokladnej nazwy tylko podobna to jak wyszukac taki plik lub wiele ...
     
  • Andrzej 13.08.2020 07:26
    Usunięcie x z /etc/passwd uważam za niebezpieczne rozwiązanie. Ponieważ po takiej operacji i ustawieniu ...
     
  • Andrzej 13.08.2020 07:15
    To zdanie Utworzenie użytkownika w ten sposób powoduje wyłączenie konta poprzez wstawienie znaku x w ...
     
  • goodbye world 01.07.2020 10:20
    Będą jakieś nowe wpisy?

Ostatnio komentowane

  • Słów kilka o adresacji sieci. (3)
  • Wyszukiwanie plików w systemie Windows (1)
  • Dogadać się z Linuksem. Zarządzanie kontem użytkownika. (3)
  • Yubico czyli jak chronić dostęp do naszych kont (6)
  • Atak na warstwę 2 modelu ISO/OSI - preludium (4)

Popularne tagi

80211 Active Directory arkusz kalkulacyjny CISCO cmd DHCP domena EXCEL filtrowanie formuła FTP funkcja GPO grupy jednostka organizacyjna JEŻELI kontroler LibreOffice Linux MSOffice panel sterowania PowerShell przełącznik rejestr Router Serwer SUMA switch TCP trunk Ubuntu UDP usługi VirtualBox VLAN warstwa 2 warstwa 3 warstwa sieciowa warstwa łącza danych wifi Windows wirtualizacja WORD zakres ŚREDNIA

UWAGA! Ten serwis używa cookies

Brak zmiany ustawienia przeglądarki oznacza zgodę na to.

Zrozumiałem

Created by: clivio.pl

Copyright © Created by: 2022 All rights reserved. Custom Design by Youjoomla.com
Home