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.
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
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.
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.
Serwery DHCP używają adresu MAC do identyfikacji urządzeń i nadają niektórym urządzeniom stałe adresy IP.
źródło
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:
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:
źródło
Oni są 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.
źródło
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.
źródło
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.
źródło
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.
źródło
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.
źródło
How MAC addresses were used in packet transfer
a potem założyłem, że jest na poziomie Ethernet. I tak, to prosta odpowiedź, ale odpowiadam na poziomie, który odpowiada mojemu poziomowi :)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).
źródło
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 .
źródło
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).
źródło
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.
źródło
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).
źródło