Jakie jest dokładne użycie adresu MAC?

126

Rozumiem, że adresy IP są hierarchiczne, więc routery w Internecie wiedzą, w którym kierunku przesłać pakiet. W przypadku adresów MAC nie ma hierarchii, dlatego przekazywanie pakietów nie byłoby możliwe. Dlatego adresy MAC nie są używane do przesyłania pakietów.

Nie sądzę, żeby tam stał bez powodu. Więc moje pytanie brzmi: gdzie dokładnie wchodzi adres MAC podczas przesyłania pakietu?

VISHNU VIVEK
źródło

Odpowiedzi:

57

Adresy TL; DR> MAC to niskopoziomowe elementy sieci Ethernet (i niektóre inne podobne standardy, takie jak WiFi). Pozwalają urządzeniu komunikować się z maszyną w lokalnej sieci fizycznej (LAN) i nie mogą być kierowane przez Internet - ponieważ fizyczny sprzęt teoretycznie można podłączyć do dowolnego miejsca na świecie.

Z kolei adresy IP obejmują cały Internet, a routery używają ich, aby dowiedzieć się, gdzie wysłać dane, nawet jeśli potrzebuje wielu przeskoków, aby dotrzeć do miejsca docelowego - ale nie są one pomocne w łączeniu się ze sprzętem fizycznym w sieci lokalnej.

Gdybyśmy kiedykolwiek znaleźli lepszy standard niż Ethernet, może nie używać adresów MAC, ale ruch IP z Internetu może nadal przepływać przez nie, nawet jeśli inne osoby w Internecie nigdy o nim nie słyszały.

Gdybyśmy kiedykolwiek znaleźli lepszy standard niż IP (na przykład IPv6, gdyby wyczerpały się wszystkie adresy IPv4), większość urządzeń Ethernet mogłaby przenosić nowy rodzaj ruchu bez modyfikacji - a prosta aktualizacja oprogramowania / oprogramowania naprawiłaby większość pozostałych.

Adresy MAC są wymagane do wykonywania funkcji lokalnej sieci Ethernet (lub Wi-Fi). Pozwalają urządzeniu sieciowemu przyciągnąć uwagę jednego bezpośrednio podłączonego urządzenia, nawet jeśli fizyczne połączenie jest wspólne. Może to być ważne, gdy tysiące urządzeń są połączone razem w ramach jednej organizacji. Nie pełnią one żadnej funkcji w szerszym Internecie.

Aby naprawdę zrozumieć odpowiedź na to pytanie, musisz zrozumieć model OSI (czasami znany jako 7-warstwowy) .

Aby komunikacja odbywała się między 2 aplikacjami działającymi na osobnych komputerach, które nie mają bezpośredniego połączenia fizycznego, należy wykonać wiele pracy.

W dawnych czasach każda aplikacja wiedziała dokładnie, jakie instrukcje kodu maszynowego należy uruchomić, aby wygenerować odpowiedni sygnał, który dotrze i może zostać zdekodowany przez aplikację na drugim końcu. Cała komunikacja była efektywna punkt-punkt, a oprogramowanie musiało zostać napisane w celu dopasowania do konkretnej sytuacji, w której miało zostać wdrożone. Oczywiście było to niezrównoważone.

Zamiast tego problem sieci został podzielony na warstwy, a każda warstwa wiedziała, jak rozmawiać z pasującą warstwą na zdalnym komputerze i jak komunikować się z warstwą pod nią (a czasem nad nią) na swoim komputerze lokalnym. Nic nie wiedział o żadnych innych warstwach - więc twoja przeglądarka internetowa nie musi dbać o to, czy działa na komputerze, który używa sieci Token Ring, Ethernet lub Wi-Fi - i zdecydowanie nie musi wiedzieć, jaki sprzęt używa zdalnego komputera.

Aby to zadziałało, model 7-warstwowy wykorzystuje system podobny do zagnieżdżonych kopert; aplikacja tworzy dane i pakuje je w kopertę, którą ma dostarczyć system operacyjny. System operacyjny pakuje to w inną kopertę i przekazuje do sterownika sieciowego. Sterownik sieciowy pakuje to w kolejną kopertę i kładzie na fizycznym kablu. I tak dalej.

Dolna warstwa, warstwa 1 , jest warstwą fizyczną. To jest warstwa drutów, tranzystorów i fal radiowych, a na tej warstwie komunikacja jest w większości tylko strumieniem pojedynczych i nici. Dane trafiają wszędzie, gdzie są fizycznie połączone. Port sieciowy komputera podłączasz do przełącznika za pomocą kabla CAT-5.

Warstwa 2 to warstwa łącza danych. Zapewnia to pewną strukturę dla tych i kółek, pewne możliwości wykrywania błędów i korekty, a także pewne wskazanie, które fizycznie podłączone urządzenie (tutaj fizyczne połączenia mogą faktycznie być przez Wi-Fi) powinno zwrócić uwagę na komunikat. To jest warstwa, w którą wchodzą adresy MAC i do niej wrócimy później. Ale adresy MAC nie są jedyną możliwością na tej warstwie. Na przykład sieci Token Ring wymagają innej implementacji łącza danych.

Warstwa 3 to warstwa sieci. Jest to warstwa, na której działa protokół IP (choć nie jest to jedyny protokół warstwy sieciowej), i to on umożliwia komputerom wysyłanie wiadomości, które mogą dotrzeć do dowolnego komputera w dowolnym miejscu w „sieci”. Nie ma potrzeby bezpośredniego połączenia między danymi maszynami.

Warstwy 4-7 to protokoły wyższego poziomu. Coraz bardziej oddalają się od sprzętu i zbliżają do aplikacji. Na przykład protokół TCP znajduje się na szczycie adresu IP i zapewnia mechanizmy, które automatycznie wysyłają ponownie wiadomości, gdy zaginą.

Dlatego adresy MAC działają w warstwie 2 i zezwalają 2 komputerom fizycznie połączonym ze sobą na wysyłanie wiadomości, które będą ignorowane przez inne maszyny, które mają to samo połączenie fizyczne.

Załóżmy, że mam aplikację, która chce wysłać dane do komputera o adresie IP 8.8.8.8

Warstwa 3 otacza dane kopertą zawierającą między innymi adres IP 8.8.8.8, a następnie przekazuje go do warstwy 2.

Warstwa 2 sprawdza ten adres IP i decyduje, z którym komputerem, do którego jest bezpośrednio podłączony, jest w stanie poradzić sobie z tym komunikatem. Będzie miał tablicę przeglądową wyboru bezpośrednio połączonych adresów IP wraz z odpowiednim adresem MAC karty sieciowej w tym urządzeniu. Ta tabela przeglądowa jest zbudowana przy użyciu protokołu o nazwie ARP, który pozwala karcie sieciowej zadawać pytania innym bezpośrednio podłączonym urządzeniom. Ethernet rezerwuje specjalny adres MAC, FF: FF: FF: FF: FF: FF, który pozwala urządzeniu komunikować się ze wszystkimi fizycznie połączonymi urządzeniami.

Jeśli adres IP znajduje się w tabeli (lub można go rozwiązać za pomocą ARP), zawinie kopertę warstwy 3 w kopertę warstwy 2 z adresem MAC w nowym nagłówku, a następnie przekaże cały pakiet do sprzętu w warstwie 1 Karta sieciowa z pasującym adresem MAC otrzyma wiadomość, a sterownik sieci otworzy kopertę warstwy 2 i przekaże zawartość do dowolnej części systemu operacyjnego, która spodziewa się otrzymywać wiadomości pod określonym adresem IP.

Alternatywnie, jeśli adres IP nie znajduje się w sieci lokalnej, nowa koperta będzie miała adres MAC domyślnej bramy (tj. Routera) skonfigurowany dla tego interfejsu sieciowego, a sprzęt przetransportuje pakiet do routera.

Router zauważa swój adres MAC w kopercie warstwy 2 i otwiera pakiet poziomu 2. Sprawdza adres IP na kopercie poziomu 3 i sprawdza, gdzie wiadomość musi iść dalej, co prawdopodobnie będzie routerem u twojego dostawcy usług internetowych. Jeśli router używa NAT (lub podobnego), może nawet zmodyfikować obwiednię poziomu 3 w tym momencie, aby zachować poufność wewnętrznych adresów IP. Następnie owinie kopertę poziomu 3 w nową kopertę poziomu 2, która jest adresowana na adres MAC routera dostawcy usług internetowych, i tam wyśle ​​wiadomość.

Ten proces usuwania zewnętrznej koperty i owijania zawartości w nową kopertę skierowaną do następnego kroku w łańcuchu będzie kontynuowany, dopóki wiadomość nie dotrze do urządzenia docelowego.

Koperty będą dalej odrywane, gdy wiadomość wraca po warstwach, aż w końcu dotrze do zamierzonego odbiorcy, co będzie aplikacją, która, miejmy nadzieję, będzie wiedziała, co zrobić z wiadomością - ale nie będzie miała pojęcia, jak wiadomość dotarła, ani też wszystkie kroki wymagane do uzyskania odpowiedzi z powrotem na pierwotną maszynę.

Ale wszystko działa, prawie jak magia!

Należy pamiętać, że przełączniki sieciowe mogą używać adresów MAC w celu optymalizacji przepływu ruchu sieciowego. Podczas gdy koncentrator Ethernet po prostu przekazuje cały ruch przychodzący do wszystkich swoich portów, natomiast przełącznik może przekazywać ruch tylko do jednego portu, do którego podłączony jest docelowy adres MAC pakietu. Zwiększa to efektywną przepustowość sieci; poprzez ukierunkowanie na określone porty przełącznik pozwala uniknąć przekierowania ruchu na niepotrzebne segmenty sieci. Przełącznik użyje ARP lub wąchania pakietów, aby zidentyfikować, które urządzenia są podłączone do którego portu. Przełączniki całkowicie ignorują zawartość pakietów warstwy 2.

Bill Michell
źródło
Cześć! Dziękuję za odpowiedź. O ile czytałem, twoja odpowiedź jest najlepsza. Byłoby wspaniale, gdybyś mógł w swoim scenariuszu uwzględnić więcej pojęć, takich jak ARP i NAT.
Vishnu Vivek
1
Dodano odniesienie do ARP i przełączników sieciowych. Nie sądzę, że NAT ma coś wspólnego z adresami MAC, ponieważ jest funkcją warstwy 3 ...
Bill Michell
@BillMichell: W IPv6 do utworzenia adresu IP można użyć adresu MAC lub innego lokalnego („sprzętowego”) identyfikatora.
Luciano
Odpowiedź brzmi Wiki społeczności. Prawdopodobnie możesz go edytować, aby uwzględnić te dodatkowe informacje, jeśli uważasz, że pomoże to odpowiedzieć na pytanie PO.
Bill Michell
To wymaga TL; DR.
AJMansfield
113

Do czego służą adresy MAC?

Adresy MAC to podstawy niskiego poziomu, dzięki którym Twoja lokalna sieć Ethernet działa. Lokalny oznacza, że ​​urządzenia sieciowe są albo bezpośrednio połączone kablem, albo Wi-Fi, albo przez koncentrator sieciowy lub przełącznik sieciowy.

Każda karta sieciowa ma unikalny adres MAC. Pakiety wysyłane do sieci Ethernet zawsze przychodzą z adresu MAC i są wysyłane na adres MAC. Jeśli karta sieciowa odbiera pakiet, porównuje docelowy adres MAC pakietu z własnym adresem MAC karty. Jeśli adresy się zgadzają, pakiet jest przetwarzany, w przeciwnym razie jest odrzucany.

Istnieją specjalne adresy MAC, jeden na przykład to ff: ff: ff: ff: ff: ff, który jest adresem rozgłoszeniowym i adresuje każdą kartę sieciową w sieci.

Jak działają adresy IP i adresy MAC?

IP to protokół używany na warstwie powyżej Ethernetu. Innym protokołem może być na przykład IPX. IP pozwala łączyć różne sieci lokalne, tworząc sieć korporacyjną lub globalny internet.

Gdy komputer chce wysłać pakiet na jakiś adres IP xxxx, najpierw sprawdź, czy adres docelowy znajduje się w tej samej sieci IP, co sam komputer. Jeśli xxxx jest w tej samej sieci, docelowy adres IP może być osiągnięty bezpośrednio, w przeciwnym razie pakiet musi zostać wysłany do skonfigurowanego routera.

Do tej pory wszystko się pogorszyło, ponieważ teraz mamy dwa adresy IP: jeden to adres docelowy oryginalnego pakietu IP, drugi to adres IP urządzenia, do którego powinniśmy wysłać pakiet (następny przeskok, albo końcowy miejsce docelowe lub router).

Ponieważ sieć Ethernet używa adresów MAC, nadawca musi uzyskać adres MAC następnego przeskoku. Do tego celu służy specjalny protokół ARP (protokół rozpoznawania adresów). Gdy nadawca odzyska adres MAC następnego przeskoku, zapisuje ten docelowy adres MAC w pakiecie i wysyła pakiet.

Jak działa ARP?

Sam ARP jest protokołem ponad Ethernetem, takim jak IP lub IPX. Gdy urządzenie chce poznać adres MAC dla danego adresu IP, wysyła pakiet na adres MAC emisji, pytając „Kto ma adres IP rrrr?”. Wszystkie urządzenia odbierają ten pakiet, ale tylko urządzenie z adresem IP rrrr odpowie pakiet „To ja”. Urządzenie pytające otrzymuje odpowiedź i teraz wie, że źródłowy adres MAC pakietu ARP jest odpowiednim adresem MAC do użycia. Oczywiście wynik zostanie zapisany w pamięci podręcznej, więc urządzenie nie musi za każdym razem rozpoznawać adresu MAC.

Wytyczanie

Prawie zapomniałem wspomnieć: nie ma routingu opartego na adresach MAC. Niski poziom adresów Ethernet i MAC może dotrzeć tylko do każdego urządzenia w tej samej sieci (kablowej lub bezprzewodowej). Jeśli masz dwie sieci z routerem pomiędzy nimi, nie możesz mieć urządzenia w sieci A, wyślij pakiet na adres MAC urządzenia w sieci B. Żadne urządzenie w sieci A nie ma adresu MAC urządzenia w sieci B, więc pakiet na ten adres MAC zostanie odrzucony przez wszystkie urządzenia w sieci A (także przez router).

Trasowanie odbywa się na poziomie IP. Po prostu widać, że router robi to, co opisałem powyżej w sekcji „Jak adresy IP i adresy MAC współpracują ze sobą?”. Router odbierze pakiety dla własnego adresu MAC, ale dla innego adresu IP. Następnie sprawdzi, czy może bezpośrednio osiągnąć docelowy adres IP. Jeśli tak, wysyła pakiet do celu. W przeciwnym razie sam router ma również skonfigurowany router nadrzędny i wyśle ​​pakiet do tego routera.

Oczywiście możesz skonfigurować wiele routerów. W twoim routerze domowym będzie skonfigurowany tylko jeden router nadrzędny, ale w sieci szkieletowej duże routery mają duże tabele routingu, dzięki czemu znają najlepsze sposoby dla wszystkich pakietów.

Inne przypadki użycia adresów MAC

  1. Przełączniki sieciowe przechowują listę adresów MAC widocznych na każdym porcie i przekazują tylko pakiety do portów, które muszą zobaczyć pakiet.

  2. Bezprzewodowe punkty dostępowe często używają adresów MAC do kontroli dostępu. Umożliwiają dostęp tylko do znanych urządzeń (adres MAC jest unikalny i identyfikuje urządzenia) z prawidłowym hasłem.

  3. Serwery DHCP używają adresu MAC do identyfikacji urządzeń i nadają niektórym urządzeniom stałe adresy IP.

Werner Henze
źródło
16
+1 za faktyczną odpowiedź na pytanie w sposób zrozumiały dla osób, które jeszcze nie znają odpowiedzi.
puszysty
Nie mogę powstrzymać się od chęci stworzenia niesamowitej infografiki / diagramu, sposób interakcji MAC / IP jest dość interesujący!
NRGdallas
1
fajna odpowiedź tylko szczegół: adresy MAC są również używane dla urządzeń innych niż Ethernet i czy opisałeś w zasadzie wstrzymania dla dowolnej warstwy łącza danych używanej ze stosem IP
kriss
Warto zwrócić uwagę na MAC-y Wi-Fi: Chociaż są one na ogół unikalne i mogą być używane do identyfikacji urządzeń, łatwo je sfałszować i przesłać bezprzewodowo. Jeśli nie ma innego szyfrowania / uwierzytelniania używany w połączeniu lub gdy inny mechanizm (y) szyfrowania / uwierzytelniania są słabe (np: WEP), to bardzo trywialne atakującemu podszywać autoryzowanych urządzeń i przyłączyć się do sieci.
Iszi
1
@Rick Masz rację, docelowy adres IP połączenia nie zmienia się. Ale w cytowanym akapicie mówiłem o bezpośrednim miejscu docelowym pakietu - którym może być router, a router może się zmienić podczas połączenia. Jeśli chodzi o twój drugi komentarz, zmieniłem tekst na „źródłowy adres MAC pakietu ARP”. Mam nadzieję, że to jest bardziej jasne.
Werner Henze
47

Adres MAC (adres Media Access Control) ogólnie jest identyfikatorem urządzeń w sieci. Tak więc każda karta sieciowa (kontroler interfejsu sieciowego znaleziona w routerze, komputerze, drukarce sieciowej, serwerze itp.) Ma adresy MAC. Niektóre serwery mają wbudowaną więcej niż jedną kartę sieciową i dlatego mają wiele adresów MAC. Adres MAC ma długość 6 bajtów (6 oktetów). Lewy jest najbardziej znaczącym bajtem, a prawy najmniej znaczącym bajtem. Jak widać na poniższym obrazku, pierwsze 3 bajty są unikatowym identyfikatorem organizacyjnym . Wskazuje to producenta, który wyprodukował to urządzenie.

Oto lista unikatowych identyfikatorów organizacyjnych : Standards.ieee.org

Oto alternatywa dla powyższego: Wyszukiwanie dostawcy MAC

Kilka przykładów powszechnie znanych producentów:

  • 00-05-5D (D-Link Systems Inc.)
  • 00-09-5B (Netgear Inc.)
  • 00-E0-4C (Realtek Semiconductor Corp.)
  • 00-E0-4F (Cisco Systems Inc.)
  • 00-E0-64 (Samsung Electronics)

Ostatnie 3 bajty (3 oktety) są losowo przydzielane przez producenta.

Jak prawidłowo stwierdził pjc50, adres MAC w sieci Ethernet pomaga przełącznikom zdecydować, który pakiet wysłać. Istnieje również adres MAC emisji. ff: ff: ff: ff: ff: ff jest używany dla adresu MAC rozgłaszania. Pamiętaj, że adres MAC można zmienić, więc używaj go jako konkretnego identyfikatora urządzenia! Adres MAC jest także używany z protokołem ARP (Address Resolution Protocol). Jak to działa, komputer A wysyła żądanie ARP do komputera B z własnym adresem IP, adresem MAC, adresem IP odbiornika i adresem emisji wspomnianym powyżej (ff: ff: ff: ff: ff : ff). Następnie komputer B sprawdza, czy pakiet został do niego wysłany, czy nie. Jeśli tak, komputer B wysyła z powrotem swój adres MAC, adres IP, adres MAC odbiornika i adres IP odbiornika. Inne urządzenia odrzucają pakiet.

Zarówno komputer A, jak i B zwykle zapisują udane połączenie w tak zwanej pamięci podręcznej ARP. Sposób, w jaki komputery PC zapisują połączenie, różni się w zależności od urządzenia. Jeśli nie znasz adresu IP, możesz uzyskać adres IP za pomocą protokołu RARP (Reverse Address Resolution Protocol). Za pomocą RARP urządzenie kontaktuje się z klientem centralnym i prosi go o adres IP. Ale ta metoda jest obecnie rzadko stosowana.

Następujące technologie używają formatu identyfikatora MAC-48:

  • Ethernet
  • Sieci bezprzewodowe 802.11
  • Bluetooth
  • Pierścień tokena IEEE 802.5
  • większość innych sieci IEEE 802
  • FDDI
  • ATM (tylko przełączane połączenia wirtualne, jako część adresu NSAP) Fibre Channel i Serial Attached SCSI (jako część nazwy światowej)
Meintjes
źródło
4
Dokładniej niż „każde urządzenie (...) mają MAC-adresów.”, Każda karta sieciowa ma A adres MAC . (Nie biorąc pod uwagę możliwości ustawienia niestandardowego adresu MAC.) Nie wszystkie drukarki mają wbudowane karty sieciowe, a wiele serwerów ma więcej niż jedną kartę sieciową, a zatem więcej niż jeden adres MAC.
CVn
2
Powiedzmy, że PC-1 wysyła pakiet do PC-2. Teraz Switch odczytuje tylko adres MAC PC-1 i zapisuje go w tabeli. Jeśli chcesz uzyskać więcej informacji o tym, jak to działa, przeczytaj to: Jak działają przełączniki LAN :)
Meintjes
3
Inną kwestią jest to, że adres MAC określa, w jaki sposób karta sieciowa decyduje, co należy odrzucić, a co wysłać do procesora w celu obsługi. Napotkana na przewodzie ramka Ethernet ma docelowy adres MAC XOR'd z adresem MAC NIC, a jeśli wynikiem są wszystkie zera, to jest to ramka przeznaczona dla tej karty sieciowej.
bbayles
7
-1: Pytanie dotyczy sposobu używania adresów MAC, a nie adresu MAC. Jedyną częścią odpowiedzi na pytanie jest lista wypunktowana na końcu i nie zawiera ona zbyt wielu szczegółów.
Kevin
4
Zdjęcie pochodzi z wikipedii: en.wikipedia.org/wiki/File:MAC-48_Address.svg , zdjęcia na licencji Creative Commons muszą być przypisane ich autorom, jeśli zostaną użyte.
Étienne
24

Oni używane do przesyłania pakietów: w sieci Ethernet, istnieje wiele urządzeń, a adres MAC określa, które urządzenie powinno otrzymać pakiet. Przełączniki Ethernet użyją go do wyboru portu, na który ma zostać wysłany odebrany pakiet.

pjc50
źródło
5
Warto zauważyć, że Ethernet był pierwotnie nośnikiem magistrali, w którym wszystkie maszyny fizycznie współużytkowały ten sam nośnik (nadal dotyczy to sieci bezprzewodowych). Więc logicznie tak to działa.
LawrenceC
i nadal prawdziwe dla sieci, które nadal używają hubów :)
Doon
odtąd przełączniki są tylko zakład (naprawdę stał się szeroko rozprzestrzeniać z RJ-45 LAN) możemy i mają sieci IP bez nich (za pomocą koncentratorów lub 802.11)
Kriss
7

Zapomnij o hierarchii w tym przypadku, nie jest to bardzo ważna kwestia.

Adres MAC to adresy warstwy 2 (warstwa łącza) w modelach ISO / OSI lub TCP / IP. Adresy IP pochodzą z warstwy 3 (warstwa sieciowa) w tych samych modelach.

W sieci warstwy 2, na przykład wspólnej sieci Ethernet, istnieje domena kolizyjna, w której wszystkie podłączone urządzenia mogą odbierać wszystkie ramki (dane jednostki warstwy 2) z dowolnego punktu końcowego. Ale nikt poza siecią nie może odbierać tych ramek. Adresy MAC to adresy w tych domenach.

Pakiety to dane jednostkowe warstwy 3, zazwyczaj pakiety IP. Podróżują przez jedną lub więcej domen kolizyjnych. Adresy IP to adresy w tej domenie.

Przełączniki to urządzenia warstwy 2 i ramki do przodu z wykorzystaniem tabel adresów MAC. Routery są urządzeniami warstwy 3 i przekazują pakiety za pomocą tabel adresów IP.

Wyloguj
źródło
6

Ethernet zakłada, że ​​drugi komputer (inny MAC), z którym chce rozmawiać, jest osiągalny bezpośrednio z karty sieciowej. IP nie. IP zakłada, że ​​może osiągnąć dowolny inny adres IP na całym świecie i że jeśli nie będzie w stanie dotrzeć do niego w bieżącej podsieci, router go tam przeniesie, bez względu na NAT. Pojęcie bram nie istnieje w warstwie 2 lub Ethernet.

Jeśli masz kilka komputerów podłączonych do przełącznika i nigdy nie będziesz musiał handlować ruchem z innymi sieciami / Internetem za pośrednictwem routera, to naprawdę nie musisz mieć działającego adresu IP. Oczywiście aplikacja musiałaby wdrożyć lub dostarczyć własny protokół powyżej warstwy 2, ponieważ prawie wszystkie systemy operacyjne i aplikacje zakładają, że zawsze chcesz używać TCP / IP.

Zawsze pamiętaj, że „Internet” w IP oznacza „pracę w sieci”, co oznacza, że ​​tak naprawdę chodzi o uzyskanie ruchu między sieciami bardziej niż w sieci, choć oczywiście można do tego również (i jest) używany.

ultrasawblade
źródło
Pierwszy akapit to idealna odpowiedź! Pouczający!
Milind R
6

Adres MAC jest wykorzystywany przy fizycznym przesyłaniu. Karta Ethernet nie wie nic o IP. Tak więc adapter Ethernet używa adresu MAC do adresowania odbiorcy pakietu danych.

Jeśli adapter Ethernet wiedziałby cokolwiek o IP, musimy zaktualizować całe nasze oprogramowanie, aby przełączyć się na nowy protokół (np. IPv4 na IPV6).

Adres MAC zawiera również informacje o producencie.

Uwe Plonus
źródło
3
Routery nie używają adresu MAC do robienia czegokolwiek. Używają adresów IP. Huby kopiują ruch niezmodyfikowany z ich portów, ale byłoby to nazywane mostowaniem, ponieważ ruch nie przechodzi przez inną sieć, ale przez tę samą sieć.
LawrenceC
5

Jest używany, gdy ARP (protokół rozpoznawania adresów) dla IPv4 lub NDP (Neighbor Discovery Protocol) dla IPv6 tłumaczy adresy IP na adresy MAC, aby określić, do którego unikalnego hosta należy wysłać ramki.

Jesper Jensen
źródło
Jest to dość bliskie, ale nie obejmuje całego użycia. W ten sposób MAC odnosi się do TCP / IP, ale MAC jest używany do znacznie więcej niż tylko tego. To jest pierwsza odpowiedź, na którą jednak nie daję -1 (od dołu do góry).
Mark Henderson
@Mark Henderson Dzięki za krytykę. Próbowałem tylko odpowiedzieć na pytanie, How MAC addresses were used in packet transfera potem założyłem, że jest na poziomie Ethernet. I tak, to prosta odpowiedź, ale odpowiadam na poziomie, który odpowiada mojemu poziomowi :)
Jesper Jensen
3

Aby uzupełnić odpowiedzi innych, dodam, że adres MAC jest nawet bardziej krytyczny dla routerów niż dla przełączników. Chodzi mi o to, że bardziej krytyczne jest to, że przełączniki nie są tak naprawdę konieczne do istnienia sieci IP. Jeśli spojrzysz 20 lat wstecz (przed RJ-45) Lokalne sieci IP działały idealnie bez przełączników. Nie routowane sieci Ethernet po prostu łączyły urządzenia tym samym przewodem (patrz na przykład technologia ethernetowa X base-T).

Z drugiej strony sieci IP zostały wymyślone do obsługi routingu i opierają się na schematach adresów MAC i IP.

Rutowanie pakietów w sieciach IP oznacza, że ​​gdy nie można uzyskać bezpośredniego dostępu do komputera docelowego, najpierw zostanie on wysłany na inny komputer (bramę), który jest bliżej końcowego celu IP.

Pod względem nagłówków pakietów sieciowych oznacza to, że pakiet wysłany do bramy będzie miał jako cel w nagłówku poziomu ethernetowego adres MAC bramy, a nagłówek poziomu IP pozostanie niezmieniony.

Należy również zauważyć, że adresy MAC zwykle oznaczają obecnie MAC-48 (fizyczny adres urządzenia) lub EUI-48 (logiczny adres urządzenia) lub nawet 8 bajtów adresów EUI-64 używanych w większych sieciach. Historycznie MAC został wynaleziony przez Xerox dla technologii Ethernet, a następnie ponownie wykorzystany do innych technologii transportu sieciowego (802.11, Bluetooth, FibreChannel, BlueTooth) wymagających identyfikacji urządzenia.

Jak powiedziałem, możesz użyć innej warstwy-2 zamiast Ethernetu, ale większość używa adresu MAC jako identyfikatora sieci, a podstawowy schemat zgodności MAC / IP utrzymuje się i nadal możesz używać ARP. O ile mi wiadomo, wszystkie stosy adresów IP zależą od tabeli zgodności między adresami MAC i adresami IP.

Istnieją inne rodzaje identyfikatorów węzłów urządzeń dla stosów innych niż IP. Na przykład X.25 nie opiera się na adresach MAC, ale na kanałach wirtualnych ustanowionych na podstawie połączenia lub urządzenia ATM są identyfikowane w sieciach ATM za pomocą SNPA. Ale ani X.25, ani ATM nie są stosami IP (a nawet ATM używa formatu adresów MAC jako części swojego SNA, mniej więcej odpowiednika adresu IP dla ATM).

kriss
źródło
Routery nie dbają o adresy MAC. Dbają o przypisanie podsieci do każdej z co najmniej 2 kart sieciowych, ale tak naprawdę nie o adresy MAC. Przekazują (tj. Kopiują) ruch z jednego adresu IP na inny, a nie z adresu IP na MAC lub coś podobnego.
LawrenceC
4
@ultrasawblade, twoje oświadczenie jest absurdalne . Jeśli router jest podłączony do sieci Ethernet, musi komunikować się przy użyciu protokołu Ethernet. Pakiety IP zostaną zamknięte w ramce Ethernet. Co oznacza, że ​​bezwzględnie wymagana jest znajomość adresów MAC wszystkich ** komputerów bezpośrednio ** hostów Ethernet **. Urządzenie warstwy 3 nie tylko magicznie komunikuje się za pomocą protokołu warstwy 3, musi obudować protokół warstwy 3 w ramach protokołu warstwy 2, który jest następnie przesyłany przez medium warstwy 1.
Zoredache
3
Nie zgadzam się z twoim pierwszym zdaniem - nie są one „bardziej krytyczne” dla routerów niż przełączniki - wszystkie mają jednakowe znaczenie w całej sieci Ethernet.
Mark Henderson
1
Możesz zastąpić warstwę podstawową 2 czymś zupełnie innym (choć nie wiem co), a IP nadal będzie działać tak samo. Protokół IP (Warstwa 3) nie dba o to, czy poszczególne hosty są adresowane poniżej przez MAC lub inny schemat. Oczywiście istnieje potrzeba utrzymania mapowania IP na MAC - ale trudno jest ustalić, czy ARP naprawdę „należy” do warstwy 3 lub warstwy 2. Chodzi o to, że protokół warstwy 2 nie musi być Ethernetem, a IP nie ma znaczenia / muszę wiedzieć, co to jest protokół warstwy 2.
LawrenceC,
2
@Mark Henderson: jak jestem stary, pamiętam czas, kiedy nie było żadnych zmian. Nie są tak naprawdę kluczowym sprzętem. Sieci IP mogą działać bez przełączników. Switches wykorzystywał jedynie istniejący układ sieci danych. To, że obecnie mamy je wszędzie, jest konsekwencją technologii punkt-punkt RJ zastępującej stare magistrale. Innymi słowy: adresy MAC nie zostały wymyślone do działania przełączników. Z drugiej strony sieci IP zostały wymyślone do celów routingu, dlatego relacja MAC do IP ma kluczowe znaczenie.
kriss,
2

Wróć do dni przed przełączeniem (huby).

Jeśli ludzie są komputerami, to adres MAC to ich nazwa.

Udawaj, że wiele osób (komputery) rozmawia przez telefon. Wszyscy rozmawiają jednocześnie.

TY (jeden komputer) słyszysz WSZYSTKIE gadanie, ale nie wiesz, czego powinieneś słuchać, AŻ dopóki ktoś nie wypowie twojego imienia (twojego adresu MAC) na początku zdania (pakietu).

"FRED, THERE IS ICE CREAM!"

Oczywiście słuchasz również zdań wysłanych na adres nadawczy . Pomyśl, że to ktoś krzyczy,

"EVERYONE, THERE IS ICE CREAM!"

Im więcej osób (komputerów) bierze udział w połączeniu konferencyjnym, tym więcej trzeba odfiltrowywać. Zaawansowana technologia i przełączniki pozwoliły nam rozmawiać bezpośrednio z jedną osobą (komputer / MAC), aby nie musiały tak ciężko pracować, aby odfiltrować cały ten hałas (i uwolnić większą przepustowość).

IP jest bardzo podobny w podstawowej analogii, ale ma więcej funkcji i warstw ponad adresowaniem MAC. Warstwy 2 i 3 odpowiednio w modelu OSI .

Randy James
źródło
Nie musisz wracać do wcześniej przełączonych dni. Adresy MAC są żywe i mają się dobrze i są używane w każdym pakiecie, który opuszcza dzisiaj adapter Ethernet .
Mark Henderson
Bardzo prawdziwe. Ale pomaga w analogii. A karty sieciowe zachowują się w ten sam sposób.
Randy James
2

Adres MAC jest konieczny, ponieważ do „magistrali” (sieci Ethernet) dołączonych jest wiele adresów. Nadawca musi mieć możliwość identyfikacji odbiorcy, a także identyfikacji odbiorcy.

Wszystkie magistrale sprzętowe wymagają adresowania, ponieważ wielu nadawców i odbiorników korzysta z tych samych przewodów, a wiadomości muszą trafiać do określonych odbiorników, a także identyfikować nadawców wysyłających.

I2C, PCI, Ethernet, nazywacie to.

Mamy wiele adresów w sieci (adres IP i adres sprzętowy), ponieważ adres na poziomie sprzętowym jest lokalny tylko dla konkretnej sieci fizycznej. Gdy datagram przemieszcza się z sieci do sieci, zwykle utrzymuje swój adres na poziomie sieci, ale wielokrotnie zmienia adresy sprzętowe. Podczas przechodzenia przez niektóre sieci może w ogóle nie mieć adresu sprzętowego, aw niektórych innych może mieć adres sprzętowy, który nie jest MAC ethernetowym. (Oczywiście adresy sieciowe mogą być przepisywane przez bramę NAT, ale adresy sprzętowe są usuwane i zastępowane różnymi adresami za każdym razem, gdy pakiet przechodzi przez router).

Kaz
źródło
1

W dawnych czasach sieci były wspólne autobusy. Każde urządzenie sieciowe podłączone do tego samego przewodu lub koncentratora, co oznaczało, że każdy wysłany pakiet był odbierany przez każde urządzenie w sieci.

Oprogramowanie sieciowe było wtedy prostsze. Każde urządzenie miało adres MAC, który z pewnością był unikalny. Nie musiało to być nic innego - wystarczyło upewnić się, że żadne dwa urządzenia w tej samej sieci nie mają tego samego adresu.

Jeśli twoje urządzenie chce rozmawiać z innym urządzeniem, wyśle ​​pakiet z adresem MAC odbiorcy, a odbiorca wyłączy go z sieci. Wszystkie inne urządzenia zignorowałyby go - nie był adresowany na ich adres MAC.

Z czasem ludzie podłączali do sieci zbyt wiele urządzeń i nie mogli nadążyć za ruchem, więc zaczęli rozdzielać sieci i podłączać dwie sieci za pomocą przełączników. Przełączniki te miały ogromne tabele informujące, które adresy MAC znajdują się w każdej sieci. Gdyby zobaczyli pakiet w jednej sieci adresowany na adres MAC w drugiej sieci, skopiowaliby wiadomość do drugiej sieci. Nie skopiowaliby jednak wszystkich wiadomości, tylko tych, które musiały przejść do innej sieci.

Zmniejszyło to zatory i umożliwiło podłączenie większej liczby urządzeń do sieci oraz obsłużenie większego ruchu. Jest to sieć z komutacją pakietów .

Nie rozwiązało to jednak wszystkich problemów i miało jedną wielką wadę - w miarę powiększania się tabel przełączników sieci zwalniały. Jeśli podłączyłeś 5000 komputerów do 50 różnych sieci połączonych przełącznikami, każdy przełącznik musiał nauczyć się wszystkich 5000 adresów MAC i trasować pakiety na tej podstawie.

To nie była wielka sprawa, dopóki ludzie z różnych instytucji, takich jak uniwersytety, nie chcieli połączyć swoich sieci, a wymagane tabele byłyby ogromne. Śledzenie kilkuset tysięcy adresów MAC dzisiaj nie wydaje się wielkim problemem, ale w latach siedemdziesiątych, kiedy to miało miejsce, przełączniki były same komputery, z ograniczoną pamięcią i prędkością oraz śledzenie i szybkie przełączanie pakietów dla kilku sto było problemem.

Rozwiązaniem było przejście do sieci IP i korzystanie z routerów. Jest on zbudowany na bazie komutowanej sieci pakietowej opartej na adresie MAC. Zamiast surowych danych, pakiety zawierają teraz pakiet IP - pakiet w pakiecie.

Teraz większe sieci są połączone z routerami. Czekają, aż zobaczą pakiet ze swoim adresem MAC, a następnie wyjmują pakiet IP i sprawdzają adres IP. Następnie ponownie zawijają pakiet IP do innego pakietu z nowym odbiorcą adresu MAC i wysyłają go do nowej sieci. Ten adres MAC jest prawdopodobnie do innego routera w nowej sieci, ale może to być również komputer z adresem IP.

W dzisiejszych sieciach rzadko widzisz koncentratory i magistrale (z wyjątkiem sieci bezprzewodowych, w których medium jest z natury współużytkowane), a zamiast tego moja maszyna łączy się bezpośrednio z przełącznikiem, który łączy się z routerem.

Moja maszyna ma wiele algorytmów i protokołów, więc wie, jak jest skonfigurowana sieć.

Jeśli wyślę pakiet IP do urządzenia w mojej sieci lokalnej, moje urządzenie umieści go w pakiecie z poprawnym adresem MAC. Przełączniki przełączą ją lokalnie do właściwej sieci, a maszyna, do której jest przeznaczona, ją odbierze, ponieważ ma właściwy adres MAC. Pozwoli im to wyjąć pakiet IP i dokładnie sprawdzić, czy adres IP jest do niego przeznaczony, i odpowiednio postępować.

Jeśli wyślę pakiet IP przeznaczony dla komputera w innym miejscu w Internecie, moje urządzenie wie, że wysyła je do routera, więc umieszcza je w pakiecie z adresem MAC routera. Ponownie przełącza się lokalnie w mojej sieci, dopóki nie trafi do sieci, w której router jest włączony, a następnie router bierze go, wyciąga pakiet IP, analizuje pakiet IP i na podstawie swojej wiedzy o Internecie wysyła go do innego routera na inną sieć, zawijając ją w pakiet z adresem MAC docelowego routera lub komputera docelowego.

Jest wiele drobiazgów, które omówiłem, i kilka naprawdę interesujących algorytmów i protokołów w grze, które sprawiają, że wszystko działa, ale to jest podstawowa historia tego, co adres MAC robi dla nas, nawet dzisiaj.

Adam Davis
źródło
1
Zacząłeś dobrze, ale zgubiłeś go w środku, gdzie zaczynasz mówić o połączonych sieciach. Przełączniki nie były powszechne aż do lat 90., ale routing istniał 20 lat wcześniej.
Mark Henderson
-1

Podstawową różnicą jest to, że MAC jest przydzielany przez producenta w czasie produkcji, podczas gdy adres IP jest przydzielany w czasie połączenia.

MAC jest konieczny, ponieważ można go użyć do identyfikacji urządzenia przed podłączeniem do sieci; jednak ponieważ jest przypisany statycznie, jest rozmieszczony losowo, więc nie nadaje się do wydajnego routingu w więcej niż jednej sieci (zrobienie tego wymagałoby ogromnego stołu routingu dla wszystkich innych urządzeń na planecie ). Dlatego adres IP jest konieczny, ponieważ jest on przypisywany w czasie połączenia, a sposób, w jaki jest przypisany, pozwala na bardziej efektywny routing na duże odległości (w przypadku IP większość urządzeń musi znać tylko sąsiednie sieci).

Jeśli istnieje tylko adres IP, urządzenia, którym nie przypisano adresu IP, nie będą w stanie stwierdzić, która wiadomość jest dla nich przeznaczona. Jak ustaliłbyś, że ten DHCP jest przeznaczony dla Ciebie, a nie dla innej osoby, która również prosi o przydzielenie adresu w tym samym czasie?

Oczywiście MAC są również używane do innych części wysyłania pakietów, ale większość z tych zastosowań jest dość przypadkowa i może (przynajmniej teoretycznie) zostać zastąpiona dynamicznie przypisywaną liczbą (np. Adres IP).

Lie Ryan
źródło
+1 za powód, dla którego nie używaliśmy adresów MAC.
deed02392
3
Pierwszy akapit jest technicznie poprawny, ale to nie jest podstawowa różnica. Różnica polega na tym, że MAC należy do Ethernetu, a IP do TCP / IP. Możesz uruchamiać TCP / IP na wielu protokołach warstwy 2 (na przykład ATM), i istnieje więcej niż tylko TCP / IP, który działa na Etherhet. Nie ma czegoś takiego jak „przed podłączeniem do sieci”, ale jest „Przed uzyskaniem adresu IP z DHCP”. Jednak MAC jest nadal używany - ponieważ znajduje się na innej warstwie w modelu OSI. Ostatni akapit jest całkowicie błędny - nie ma zastępowania adresu MAC w sieci.
Mark Henderson
@ MarkHenderson: Chodzi mi o to, że MAC należący do Ethernetu, a IP do TCP / IP to właściwie historyczny wypadek; teoretycznie, jeśli przeprojektowaliśmy cały stos internetowy od zera (i zignorujemy OSI i kompatybilność z innymi sieciami), możliwe byłoby zastąpienie większości zastosowań numeru przypisanego fabrycznie (np. MAC) numerem przypisanym dynamicznie (np. IP), z wyjątkiem że istnieje pewna liczba pakietów, które należy wysłać / odebrać, aby można było uzyskać numer przypisany dynamicznie, dlatego niezbędny jest przypisany fabrycznie globalnie unikalny identyfikator.
Lie Ryan,
@MarkHenderson: IMO, mówiąc, że potrzebujemy MAC i IP, ponieważ MAC to warstwa 2, a IP to warstwa 3, przypomina powiedzenie „potrzebujemy tego, ponieważ tak zaprojektowaliśmy Internet”, nie ma sensu i nie zawiera użytecznych informacji w ogóle. Odpowiadam tutaj, dlaczego zarówno przypisany fabrycznie, jak i dynamicznie przypisany identyfikator jest niezbędny ze względu na naturę problemu i co pociąga za sobą stos internetowy bez żadnego z nich (utrata wydajności routingu bez dynamicznie przypisanego identyfikatora i trudność jednoznaczne adresowanie urządzenia przed dynamicznym przypisaniem identyfikatora bez identyfikatora przypisanego fabrycznie).
Lie Ryan,
@LieRyan, w rzeczywistości możemy zmienić adres MAC naszego komputera .......
Pacerier