Powrót

Sieci komputerowe i Internet cz. 3

W pierwszych dwóch artykułach (DR001 i DR002) omówiona była koncepcja warstw. Przypomnijmy w uproszczeniu: bardzo skomplikowane zadanie przesyłania różnorodnych danych pomiędzy użytkownikami zostaje podzielone na oddzielne, niejako wymienne części, które nazywa się warstwami. Powszechnie wykorzystuje się czterowarstwowy model TCP-IP, którego górne warstwy omówiliśmy gładko. Problem ujawnił się przy dolnej warstwie dostępu do sieci, nazywanej też czasem warstwą fizyczną. Wiemy, że warstwy to w istotce protokoły, czyli ustalone zestawy reguł. Jednak dolna warstwa stosu TCP-IP to nie są zestawy reguł, opisujące napięcia, prądy, częstotliwości i czasy impulsów w liniach-kanałach przesyłowych. Sprawa jest bardziej złożona… Omówimy tylko zarys sytuacji, a przy okazji wyjaśnimy pewne dość popularne skróty.

Dziwna warstwa dolna…

W wielu podręcznikach szczegółowo omawia się klasyczny, siedmiowarstwowy model OSI i porównuje go z modelem czterowarstwowym, czego przykładem może być rysunek 1. Z takiego porównania wynika, że jednej warstwie aplikacji modelu TCP/IP odpowiadają trzy górne warstwy modelu OSI. Nas teraz bardziej interesuje to, że podobnie jednej dolnej warstwie dostępu do sieci odpowiadają dwie dolne warstwy modelu OSI, nazwane warstwą łącza danych oraz warstwą fizyczną.

Rysunek 1

To już lepiej obrazuje, co dzieje się w dolnej warstwie stosu TCP/IP. Możemy się domyślać, że warstwa fizyczna modelu OSI to protokoły (reguły, zasady, specyfikacje) określające parametry sprzętu transmisyjnego.

Słusznie! Jednak niepokoi oraz budzi zdziwienie i pytania obecność w modelu OSI warstwy łącza danych (ang. data link layer). Co jeszcze dziwniejsze, w niektórych podręcznikach można znaleźć opisy, na których warstwa łącza danych rozdzielona jest (z jak najbardziej uzasadnionych powodów) na dwie podwarstwy: sterowania łączem danych (w skrócie LLC = logical link control) oraz sterowania dostępem do nośnika (w skrócie MAC = media access control).

Oba modele, OSI oraz TCP/IP, odnoszą się do tej samej, praktycznej realizacji transmisji danych. I tak oto w powszechnie wykorzystywanym stosie TCP-IP nieoczekiwanie pojedyncza, najniższa warstwa dostępu do sieci podzieliła się nie na dwie, tylko na trzy podwarstwy (rysunek 2), z których jak na razie rozumiemy sens, a raczej domyślamy się sensu tylko tej najniższej podwarstwy, zawierającej protokoły fizycznego łącza.

Rysunek 2

A podwarstwy LLC i MAC?

Okazuje się, że są to protokoły określające zasady przetwarzania danych cyfrowych, a nie parametry fizycznego łącza transmisyjnego. Podwarstwa LLC to protokoły opisujące sposoby zapewnienia prawidłowej transmisji i likwidowania błędów, co przypomina, a wręcz dubluje zadania warstwy transportowej, natomiast MAC to podwarstwa i protokoły związane z adresowaniem „paczek”, co jako żywo przypomina warstwę internetową stosu TCP/IP.

Tak, w podwarstwie MAC znów mamy do czynienia z adresowaniem! Tak, ale nie 4-bajtowymi adresami IP (rozpisywanymi w postaci czterech liczb dziesiętnych 0-255 rozdzielonych kropkami x.x.x.x), tylko innymi, dłuższymi adresami: 6-bajtowymi (48-bitowymi) adresami MAC! Dwójkowe, 6-bajtowe adresy MAC przedstawiamy – rozpisujemy w postaci sześciu (dwucyfrowych) liczb szesnastkowych – heksadecymalnych, na przykład 00:0A:E6:3E:FD:E1.

W każdym razie wygląda na to, że podwarstwa LLC w jakimś stopniu dubluje działanie warstwy transportowej, a podwarstwa MAC dubluje działanie „adresowej” warstwy internetowej!

Właśnie to częściowe dublowanie i podwójne adresy w sieciach internetowych znacząco zaburzają klarowny dotąd obraz i utrudniają zrozumienie całości zagadnienia. Do tego dublowania będziemy jeszcze wracać, a na razie parę zdań o protokołach najniższej warstwy stosu TCP-IP.

802, 802, 802, 802, 802, …

Najogólniej biorąc, ustalenia dotyczące najniższej warstwy niedużych sieci (w tym prywatnych, domowych sieci LAN) to duża grupa standardów o numerze 802, opracowanych przez IEEE (Institute of Electrical and Electronics Engineers – Instytut Inżynierów Elektryków i Elektroników). A konkretnie standard 802.2 określa działanie (protokół) podwarstwy LLC, którą można nazwać uniwersalną dla wielu „niższych rozwiązań”. Natomiast podwarstwa MAC i podwarstwa fizyczna to dużo obszerniejsza kwestia. Otóż w lokalnych sieciach mogą być wykorzystywane różne łącza fizyczne, przewodowe i bezprzewodowe (radiowe). Obecnie zdecydowanie najpopularniejszym łączem przewodowym jest Ethernet, a najpopularniejszym łączem bezprzewodowym – radiowym, jest Wi-Fi. Są obecne prawie w każdym współczesnym domu.

Standard oznaczony 802.3 określa protokoły przewodowego łącza Ethernet, zarówno te dotyczące przetwarzania danych w podwarstwie MAC, jak i realizacji fizycznej łącza Ethernet, a właściwie kilku jego odmian (spośród których dziś najpopularniejsza jest odmiana oznaczona 100Base-T, nazywana też Fast Ethernet).

Natomiast „bezprzewodowy” standard 802.11, i jego odmiany oznaczane małymi literami (802.11b, 802.11g, 802.11n, itd.), określa podwarstwy LLC i MAC dla radiowego łącza Wi-Fi.

W niedużych sieciach lokalnych (LAN) bezwzględnie najpopularniejsze są Ethernet (802.3) i Wi-Fi (802.11). Ale mamy też inne protokoły, opisujące inne fizyczne (obecnie już wymierające) łącza, w tym Token Ring (802.5) oraz Token Bus (802.4) i inne opisane w nieaktualnych już dziś standardach 802.6, 802.7 i 802.8. A oprócz bardzo popularnego bezprzewodowego Wi-Fi (802.11), mamy inne bezprzewodowe, jak także bardzo popularny „krótkozasięgowy” Bluetooth (802.15.1) i pokrewny ZigBee (802.15.4) oraz WiMax (802.16). Istnieje też szereg innych standardów – protokołów z rodziny IEEE 802. Do tego dochodzi światłowodowe łącze FTTI spoza standardów IEEE, ale też wykorzystujące protokół 802.2.

Wcześniej cieszyliśmy się, że system sieciowej transmisji danych cyfrowych TCP/IP dzieli się na tylko cztery warstwy, czyli grupy protokołów stosu TCP/IP. A teraz nieoczekiwanie czwarta dolna warstwa nie tylko rozdzieliła nam się „w pionie” na „podwarstwy”, ale okazało się, że obok uniwersalnej podwarstwy LLC, określonej przez 802.2, dwie najniższe, „rozdzieliły się w poziomie” w związku z tym, że w sieciach LAN mogą być używane różne fizyczne łącza (a do tego dochodzą protokoły, które działają w więcej niż jednej warstwie, czym jednak nie będę Cię męczył). Wszystko to można w wielkim uproszczeniu przedstawić jak na rysunku 3.

Rysunek 3

Szczegółów nie musisz znać. Mając już taką niewielką wiedzę, jesteśmy znacznie bliżej praktyki. Ale aby do tej praktyki dojść, trzeba jeszcze raz wrócić do problemu podwójnych adresów IP oraz MAC.

Podwójne adresy IP i MAC

Dlaczego tak jest? Czy nie powinno i czy nie mogłoby być inaczej, prościej?

Odpowiedź nie jest wcale taka łatwa. Jedną z przyczyn jest to, że protokoły TCP oraz IP (pierwotnie stanowiące jedność) były stworzone na początku lat 70. do celów wojskowych, by stworzyć dowolnie dużą sieć komputerową, odporną na uszkodzenia związane z działaniami wojennymi. Jeśli chodzi o adresowanie, to adresy IP są adresami logicznymi, które można niemal dowolnie przypisywać i zmieniać.

Natomiast protokoły trzech podwarstw dolnej warstwy czwartej, też mające korzenie w latach 70., były opracowywane z myślą o niedużych, lokalnych sieciach transmisyjnych. Adresy MAC są przypisane do konkretnie istniejących urządzeń fizycznych i w pierwszym przybliżeniu można powiedzieć, że są przypisane na stałe, już w fabryce producenta. W sześciobajtowym adresie MAC trzy pierwsze bajty  (sześć znaków HEX) to numer identyfikujący producenta urządzenia, a trzy ostatnie to numer egzemplarza (z zakresie 0…16777216) od tego producenta. Wykaz producentów i przydzielonych im adresów można sprawdzić na przykład na stronie www.macvendorlookup.com

W pierwszym przybliżeniu można przyjąć, że adres MAC konkretnego urządzenia, a raczej interfejsu sieciowego NIC (Network Interface Card), jest „narzucony z góry”, jest niezmienny i wskazuje na producenta. Na razie pomijamy „przypadki szczególne”: na przykład w niektórych urządzeniach możliwa jest zamiana adresu MAC przez użytkownika, a gdybyś chciał sam zrealizować urządzenie sieciowe (NIC), to nie musisz kupować puli 16 milionów adresów (możesz swojemu urządzeniu NIC nadać dowolny adres MAC).

Każde urządzenie sieciowe ma indywidualny (w założeniu niepowtarzalny) numer/adres MAC, więc gdyby ktoś wcześniej o tym pomyślał, to być może mielibyśmy ogólnoświatową sieć komputerową bez adresów IP, a tylko z (fizycznymi) adresami MAC. Być może, jednak taki pomysł, choć teoretycznie możliwy do realizacji, miałby poważną wadę. Otóż producenci sprzedają swoje produkty na całym świecie i gdyby cały Internet oparty był na adresach MAC, mielibyśmy ogromny bałagan, bowiem żeby odnaleźć dane urządzenie, konieczne byłoby korzystanie z ogromnych tabel zawierających przypisania miliardów adresów MAC do lokalizacji geograficznej.

Z adresami IP jest inaczej. Jak wiadomo, są to liczby dwójkowe 4-bajtowe (32-bitowe), czyli w sumie liczby 0…4294967296. Mówiąc najogólniej, numer IP dzieli się na dwie części o różnej długości, z których pierwsza część określa numer „dużej sieci” lub „podsieci”, co możemy nazwać „dużą paczką adresów”. Druga część adresu IP to numer komputera w danej (pod)sieci, to indywidualny numer z „dużej paczki adresów”. Kwestia dzielenia adresu IP na dwie części to odrębne, dość szerokie zagadnienie. Dla nas najważniejsza jest informacja, że „duże paczki” adresów IP, czyli adresów internetowych są przydzielane geograficznie. A to oznacza, że odnalezienie danego numeru IP jest nieporównanie łatwiejsze, niż wymagałoby tego odszukanie adresu MAC!

My jesteśmy najbardziej zainteresowani systemami automatyki domowej i systemami pokrewnymi. Dalszych szczegółów nie musisz znać, a wyjaśnieniem niech będzie prosty przykład z życia wzięty. Otóż z adresem IP jest podobnie, jak z numerem telefonu. Ktoś ci go przydzielił i jest to Twój numer telefonu. Telefonu, czyli… czy jest to numer Twojego smartfona?

Poniekąd tak! Bo jeżeli ktoś wybierze ten numer, to zadzwoni Twój aparat.  Ale numer telefonu NIE JEST na stałe przypisany do tego konkretnego aparatu – sprzętu. Gdy kupujesz nowy smartfon, nie zmieniasz numeru telefonu. Wybranie twojego numeru spowoduje, że będzie dzwonił ten nowy egzemplarz sprzętu (ma z tym związek karta, ale ten szczegół pomijamy).

W każdym razie przydzielony Ci numer telefonu (adres logiczny – analogia do adresu IP) nie jest na stałe powiązany ze sprzętem, z egzemplarzem telefonu, który ma swój sprzętowy numer IMEI (analogia do adresu MAC). Każdy telefon komórkowy ma niepowtarzalny numer – adres IMEI, który możesz sprawdzić, wybierając kod: *#06#.

Następuje jednak jednoznaczne, ale tylko tymczasowe powiązanie (przypisanie) logicznego adresu – nadanego Ci numeru telefonu ze sprzętem, a konkretnie z adresem sprzętowym IMEI sprzętu. Ty zawsze podajesz przyjaciołom i znajomym swój numer telefonu (adres IP), a nie numer IMEI Twojego aparatu (adres MAC). Powiązaniem numeru telefonu z konkretnym aparatem interesuje się Twój operator, a Ciebie i innych to zupełnie nie obchodzi.

Dokładnie tak jest też w sieciach internetowych. (Logiczny) adres IP zostaje nadany: albo „ręcznie” przez kogoś, albo automatycznie, co wiąże się ze skrótem (i protokołem) DHCP. I ten adres IP sam w sobie też jest „ulotny”, „niematerialny”, tak jak niematerialny jest sam w sobie numer telefonu. I w sieciach komputerowych też następuje jednoznaczne powiązanie nadanego numeru IP z konkretnym sprzętem, a ściślej z jego sprzętowym adresem MAC. To przypisanie można zrealizować „ręcznie – na stałe”, ale częściej jest realizowane automatycznie  tylko na określony czas, za pomocą programu wykorzystującego mechanizm-protokół DHCP.

A tak na marginesie: „zwykły”, stary telefon komórkowy GSM ma tylko numer IMEI, natomiast smartfony i inne „telefoniczne urządzenia sieciowo-komputerowe” mają też dodatkowo swój najprawdziwszy numer-adres MAC, a operator komórkowy przydziela im jakiś numer IP, stwarza powiązanie adresów IP – MAC, co pozwala Ci łączyć się z Internetem.

Zapamiętaj: do komunikacji, zarówno w małych sieciach lokalnych, jak i globalnych, wykorzystujemy adresy IP, a jakiś „operator” (DHCP i ARP) dba i o to, żeby pilnować przydziału i powiązań adresów IP ze sprzętowymi adresami MAC.

Co dla nas ważne, w małych sieciach LAN powiązanie adres IP – adres MAC może być dokonane automatyczne (dynamicznie, tymczasowo) przez odpowiedni program, tak zwany serwer DHCP. Druga, pod pewnymi względami lepsza możliwość, to „ręczne” powiązanie adresów IP-MAC przez informatyka  administratora na stałe. Przypisanie automatyczne z wykorzystaniem DHCP jest wygodne dla użytkowników. Natomiast w niektórych przypadkach, na przykład w domowych sieciach LAN zawierających urządzenia automatyki domowej, w tym system alarmowy, kamery IP, itp., zdecydowanie lepsze jest ręczne, stałe nadanie adresów IP wszystkim urządzeniom o danych adresach MAC.

Powtórzmy: choć komunikacja dotyczy fizycznych urządzeń (mających numery MAC), do jej realizacji zasadniczo wykorzystuje się (logiczne) adresy IP. Aby to wszystko działało, niezbędne jest stałe lub czasowe powiązanie adresów MAC-IP (co realizowane jest przez protokoły DHCP oraz ARP). A w następnym odcinku (DR004) mówimy o sieciach i adresach prywatnych.

Piotr Górecki