ARP, adres MAC i IP – jak działa komunikacja w sieci LAN i WAN?

by Patryk

Warstwa łącza danych i warstwa sieci – jak dane trafiają do celu?

W poprzednim artykule omówiłem elementy składujące się na warstwę fizyczną (Layer 1). W tym artykule omówię dalszy krok – dowiesz się jak dane trafiają do celu dzięki dwóm kolejnym warstwom. Za dostarczanie danych z urządzenia źródłowego do urządzenia docelowego odpowiadają dwie kluczowe warstwy modelu sieciowego: warstwa łącza danych (Layer 2) oraz warstwa sieci (Layer 3).

Co ciekawe: protokoły na obu warstwach używają adresu źródłowego i docelowego, ale pełnią one zupełnie inne role.

  • W warstwie łącza danych komunikacja opiera się o adresy MAC i działa lokalnie – wewnątrz jednej sieci LAN.
  • W warstwie sieci używane są adresy IP, które pozwalają kierować ruch pomiędzy różnymi sieciami (np. przez Internet).

Komunikacja między urządzeniami w tej samej sieci LAN

Jeśli oba urządzenia znajdują się w tej samej sieci lokalnej, to dane są przesyłane bezpośrednio w ramach ramki Ethernet, a kluczową rolę odgrywa adres MAC urządzenia docelowego.

Adres MAC to:

  • 48-bitowy identyfikator,
  • zapisywany jako 12 cyfr szesnastkowych (np. A1:B2:C3:D4:E5:F6),
  • służący do identyfikacji urządzeń w obrębie LAN.

Skąd urządzenie wie, jaki MAC ma odbiorca?

Jeżeli komputer zna adres IPv4 hosta docelowego, ale nie zna jego adresu MAC, uruchamia protokół ARP (Address Resolution Protocol).

ARP ma dwie główne funkcje:

  • mapowanie IPv4 → MAC (czyli „rozwiązywanie” adresów),
  • utrzymywanie tablicy ARP (cache), czyli listy tymczasowych skojarzeń IP–MAC przechowywanej w RAM.

Jak działa ARP krok po kroku

  1. Urządzenie sprawdza swoją tablicę ARP.
  2. Jeśli wpis dla danego IPv4 istnieje → wykorzystuje przypisany MAC jako docelowy w ramce.
  3. Jeśli wpisu nie ma → wysyła żądanie ARP (ARP Request) do całej sieci.

W praktyce komputer wysyła broadcast z pytaniem w stylu: „jaki adres MAC odpowiada temu adresowi IP?”.

Ponieważ ARP Request to rozgłoszenie, przełącznik (switch) „zalewa” nim wszystkie porty (poza tym, z którego przyszła ramka). Każde urządzenie w LAN sprawdza, czy pytanie dotyczy jego adresu IP.

  • Odpowiada tylko ten host, którego IPv4 pasuje do zapytania.
  • Wysyła wtedy odpowiedź ARP (ARP Reply) jako unicast (czyli bezpośrednio do pytającego).
  • Obie strony aktualizują swoją tablicę ARP, dzięki czemu późniejsza komunikacja jest już szybka i bez dodatkowych broadcastów.

Adres broadcast w ARP

Żądania ARP są wysyłane na adres rozgłoszeniowy warstwy 2: FF:FF:FF:FF:FF:FF.
Odpowiedź ARP to już wiadomość unicastowa skierowana tylko do urządzenia źródłowego.

Jeśli nikt nie odpowie na ARP (np. host nie istnieje lub jest odłączony), pakiet zostaje odrzucony, bo nie da się zbudować poprawnej ramki Ethernet bez docelowego MAC.

Jak długo żyją wpisy w tablicy ARP?

Wpisy w tablicy ARP mają ograniczony czas życia. Gdy przez określony czas nie ma komunikacji z danym urządzeniem, wpis jest usuwany.

Uwaga: to nie jest klasyczny TTL pakietów IP, tylko czas życia wpisu w cache ARP (często nazywany „ARP aging”). Warto to rozróżniać, bo TTL w IP dotyczy liczby „skoków” przez routery.

Przykładowo systemy Windows przechowują wpisy ARP zwykle w zakresie około 15–45 sekund (zależnie od wersji i zachowania sieci).

W Windows zawartość pamięci podręcznej ARP sprawdzisz poleceniem: arp -a.

W IPv6 odpowiednikiem tego procesu jest Neighbor Discovery (ND). Omówię go w kolejnych artykułach.

Komunikacja między urządzeniami w różnych sieciach (sieci zdalne)

Gdy wysyłasz dane do urządzenia w innej sieci (np. do serwera w Internecie), sama warstwa łącza danych nie wystarczy. Potrzebujesz wtedy adresowania warstwy sieci:

  • adres IP źródłowy (Twoje urządzenie),
  • adres IP docelowy (urządzenie w innej sieci).

Po dodaniu nagłówka IP do danych mówimy o pakiecie (Layer 3), który dalej zostaje zapakowany w ramkę Ethernet (Layer 2) – bo fizycznie po kablu/Wi-Fi nadal „jedzie” ramka.

Dlaczego nie da się wysłać ramki Ethernet bezpośrednio do hosta zdalnego?

Tu pojawia się kluczowa zasada: adresy MAC działają tylko lokalnie (w obrębie jednej sieci LAN).

Czyli:

  • IP docelowe znasz (bo wiesz, gdzie chcesz wysłać dane),
  • ale MAC docelowego hosta w obcej sieci jest dla Ciebie „niewidoczny” – bo nie da się go ustalić przez ARP poza swoją siecią.

Co więc jest adresem MAC docelowym?

Gdy cel jest poza Twoją siecią, ramka Ethernet jest wysyłana do bramy domyślnej (default gateway), czyli najczęściej do routera, ponieważ jego adres MAC znamy bo znajduję się w naszej sieci.

Wtedy:

  • MAC źródłowy = MAC Twojego urządzenia,
  • MAC docelowy = MAC routera (bramy domyślnej),
  • IP docelowy w pakiecie nadal wskazuje prawdziwy serwer/host zdalny.

Router po otrzymaniu ramki:

  1. „wyciąga” pakiet IP,
  2. sprawdza tablicę routingu,
  3. decyduje, gdzie wysłać pakiet dalej.

Ten proces nazywamy routingiem i to on umożliwia komunikację pomiędzy różnymi sieciami.

Jeśli chcesz wiedzieć więcej na temat komunikacji w sieci, to nie będę wynajdował koła na nowo. Proces ten został już doskonale opisany przez Damiana Stelmacha do którego artykułu odsyłam tu.

Podsumowanie

W tym materiale omówiliśmy, jak dane „wędrują” przez:

  • warstwę łącza danych (ramki, MAC, ARP, komunikacja w LAN),
  • warstwę sieci (pakiety, IP, komunikacja między sieciami i rola bramy domyślnej).

W kolejnych artykułach naturalnym krokiem jest rozwinięcie dwóch podstawowych protokołów warstwy sieci: IPv4 oraz IPv6. To fundament, jeśli celujesz w rolę administratora sieci albo po prostu chcesz dobrze rozumieć, jak działa Internet.

You may also like

Leave a Comment