Dlaczego potrzebne są adresy Ethernet / MAC?

16

Nie rozumiem, dlaczego potrzebne są adresy MAC Ethernet. Czy nie wszystkie komputery mogą być podłączone do ujednoliconej sieci i używać adresów IP do komunikacji?

Na przykład w sieci Ethernet występuje następujący mechanizm:

  1. Komputer z adresem IP 192.168.1.1( X.1) chce wysłać pakiet do 192.168.1.2( X.2)
  2. X.1 używa ARP, aby uzyskać MAC X.2
  3. Aby to zrobić, X.1musi wysłać pakiet do wszystkich komputerów w sieci; tylko jeden odpowie
  4. X.1 pobiera MAC i wysyła pakiet

Czy nie byłoby łatwiej zrobić tylko jeden krok:

  1. X.1wysyła pakiet do wszystkich komputerów w sieci; tylko X.2to przetworzy, inni to zignorują

Uzupełniające pytanie brzmiałoby: dlaczego adresy IP są potrzebne, jeśli wszystkie urządzenia mają unikalne adresy MAC?

użytkownik2449761
źródło
Skąd komputery wiedzą, że powinny zignorować dane? Bez adresu MAC nie mogą powiedzieć, który z sieci powinien go przetworzyć ...
Bakuriu
1
mogliby użyć adresu IP zamiast adresu MAC
user2449761
erm ... komputer <-> adres IP nie jest mapowaniem iniekcyjnym. Przeredaguję moje pytanie: Skąd komputery wiedzą, że powinny zignorować dane? Bez adresu MAC nie mogą powiedzieć, który z sieci powinien go przetworzyć ... ponieważ więcej niż jeden z nich może mieć ten sam adres IP ?
Bakuriu
4
nie powinny mieć tego samego adresu IP w tej samej podsieci ... to jest konflikt
user2449761
1
Uzupełniające pytanie to serverfault.com/q/410626/102768
OrangeDog

Odpowiedzi:

31

Te różne warstwy sieci są tam, aby mogły zostać zamienione na różnych technologiach.

Dwie warstwy, o których tu mówisz, to warstwy 2 i 3. Warstwa 2 w tym scenariuszu to Ethernet - z której powstają adresy MAC, a Warstwa 3 to IP.

Ethernet działa tylko na poziomie lokalnym, między urządzeniami sieciowymi podłączonymi do „łącza danych” sieci rozgłoszeniowej, podczas gdy IP jest routowalnym protokołem i dlatego może być ukierunkowany na urządzenia w sieciach zdalnych.

Wymagania każdego z nich są różne. Ethernet określa rodzinę technologii, które pozwalają na wysyłanie i odbieranie pakietów między urządzeniami sieciowymi, podczas gdy IP określa protokół, który pozwala pakietom danych przechodzić przez wiele sieci.

Żadne z nich nie jest zależne od drugiego, co zapewnia sieci elastyczność. Na przykład możesz połączyć się z usługą internetową za pomocą protokołu IP przez sieć Ethernet, ale w sieci wewnętrznej możesz zdecydować się na użycie protokołu IP przez ... papier. Gdy ktoś zapisuje zawartość każdego pakietu i fizycznie przekazuje go na inną maszynę i wpisuje go. Oczywiście nie byłoby to szczególnie szybkie, ale nadal byłoby to IP, pod warunkiem, że osoba nosząca kawałki papieru przestrzega reguł routingu IP.

W prawdziwym świecie istnieją różne protokoły łącza danych, z których już korzystasz (dwa) (chociaż ich schematy adresowania są takie same): 802.3 - ethernet i 802.11 - wifi.

IP nie dba o to, jaka jest podstawowa warstwa.

Podobnie, IP można zamienić na różne protokoły warstwy sieci (pod warunkiem, że dzieje się tak dla wszystkich uczestników). Takich jak bankomat .

Chociaż nic nie stoi bezpośrednio na przeszkodzie, aby utworzyć protokół obejmujący zarówno warstwę 2, jak i warstwę 3, byłby on mniej elastyczny, a więc mniej atrakcyjny, a więc jest mało prawdopodobne, aby go użyć.

Paweł
źródło
2
W przypadku sieci wewnętrznej powinieneś był użyć RFC1149 . (Mniej opis techniczny )
Scott Chamberlain
2
Co, na przykład przy użyciu ręcznych flag sygnałowych ?
Scott Chamberlain
1
@ScottChamberlain: Uwielbiam sztukę ASCII w sygnale ręcznym jeden!
Fred Larson
5
IPoAC to zły wybór do komunikacji wewnętrznej; gołębie pracują lepiej na zewnątrz niż wewnątrz
cpast
2
@ user2449761 ludzie wymienili tylko te głupie. Zamiast Ethernetu można użyć bluetooth, dial-up, GPRS, LTE, USB, DSL, token ring itp.
OrangeDog
8

Gdzie miałaby zostać podjęta decyzja o tym, czy przetworzyć lub zignorować pakiet? Żadna odpowiedź nie jest naprawdę zadowalająca:

1) W przełączniku? Oznaczałoby to, że przełączniki muszą rozumieć każdy protokół, który określa, które komputery są zainteresowane, które pakiety. To nie tylko zwiększyłoby koszt przełączników i zmniejszyło ich szybkość, ale znacznie utrudniłoby wprowadzenie zmian w protokole IP.

2) W sprzęcie interfejsu Ethernet? To sprawiłoby, że sieć byłaby znacznie wolniejsza, ponieważ każdy pakiet danych musiałby trafić na każdą maszynę. Technologie takie jak WiFi i mostkowanie sieci z wolniejszymi mostami byłyby niemożliwe. Niemożliwe byłoby współdziałanie sieci Ethernet z różnymi prędkościami. Technologie takie jak IPv6 lub IP multicast wymagałyby zmian sprzętowych do wdrożenia we wszystkich stacjach końcowych Ethernet.

3) W oprogramowaniu? To spowodowałoby, że komputery byłyby znacznie wolniejsze, ponieważ musiałyby radzić sobie ze znacznie większą liczbą przerwań interfejsu sieciowego. Wszystkie powyższe problemy związane z mostowaniem, VPN i Wi-Fi również byłyby problemami.

Wszystko to sprawiłoby, że Ethernet nie nadawałby się do użytku bez adresu IP i oznaczałoby, że zmiany w sieci Ethernet byłyby potrzebne do wprowadzenia zmian w adresie IP. Fuj

Rozdzielenie problemów jest dobre.

David Schwartz
źródło
Ponadto może znacznie zmniejszyć ogólną wydajność sieci. W przypadku opcji 3 wysyłam ogromny plik, który nasyca moją sieć 1 GBit, i nagle wszyscy inni w sieci również otrzymują ten plik i muszą go zignorować i nie mają przepustowości, aby wysłać plik do kogoś, kto nie jest częścią bieżącego transferu plików.
PlasmaHH
czy druga opcja nie opisuje, jak działa Ethernet? Wszystkie interfejsy otrzymują te same pakiety, ale tylko jedna maszyna ich nie zignoruje (z wyjątkiem tych w trybie rozwiązanym). Przełączniki mają przyspieszyć ...
user2449761
2
@ user2449761 Wszystkie pakiety trafiają na wszystkie komputery tylko wtedy, gdy używasz starożytnego sprzętu sieciowego, który ma koncentratory zamiast przełączników. Huby były pierwotnie opcją ze względu na koszty; ale teraz, gdy przełączniki są tanie, nikt ich już nie używa.
Dan Neely
@ Dan, właśnie o tym mówię ...
user2449761
2
Opcja 1 już się dzieje. Nie zastępuje to używania adresów MAC, przynajmniej jeszcze nie. Ale niektóre urządzenia przełączające można skonfigurować do używania docelowego adresu MAC lub docelowego adresu IP do wyboru interfejsu wychodzącego. Możliwe jest, że za 10 lub 20 lat adres MAC pozostanie tylko do celów historycznych, a wszystkie trasy pakietów będą odbywać się wyłącznie na podstawie adresu IP. Nie uniknięto też części o tym, że zmiany IP są trudniejsze do wdrożenia, ponieważ routery szkieletowe rutują na podstawie docelowego adresu IP w sprzęcie od lat.
kasperd
3

Adres IP i adresy MAC działają na różnych warstwach pakietu protokołów internetowych . Adresy MAC są używane do identyfikacji maszyn w tej samej sieci rozgłoszeniowej na warstwie 2, podczas gdy adresy IP są używane na warstwie 3 do identyfikacji maszyn w różnych sieciach.

Nawet jeśli komputer ma adres IP, nadal potrzebuje adresu MAC, aby znaleźć inne maszyny w tej samej sieci, ponieważ każda warstwa korzysta z warstw leżących poniżej. Na stronie wspomnianej wcześniej można znaleźć ładne diagramy szczegółowo wyjaśniające pakiet protokołów.

vembutech
źródło
2

Problem z przeciążeniem napotyka sieć ethernetowa wraz ze wzrostem wielkości. Ten zamiar może udusić sieć i wprowadzić opóźnienie. Jest to jeden z czynników, który wprowadził koncepcję podsieci. Jednak w przypadku podsieci potrzebujemy dodatkowego elementu zwanego routerem, aby umożliwić pakietowi podróżowanie z komputera w jednej podsieci do komputera w innej podsieci.

Odległość pokonywana przez kabel Ethernet jest kolejnym poważnym problemem, ponieważ może ograniczyć powodzenie transmisji, jeśli przekroczy określony limit. To przyniosło kolejne nowe podmioty w postaci hub / repeater.

Pamiętaj, że wszystkie mechanizmy komunikacji nie używają adresu MAC do komunikacji. PPP i HDLC nie używają adresu MAC do identyfikacji.

Pamiętaj też, że niektóre sieci nie używają sieci Ethernet. Sieci Token Ring wymagają innej warstwy łącza danych.

Jeśli wyślesz pakiet z sieci A do urządzenia w sieci B, adresując go poprzez adres MAC urządzenia w sieci B, zostanie on upuszczony w samej sieci A. Zauważ, że nawet jeśli istnieje router między siecią A i siecią B, router upuści pakiet, ponieważ router działa, odbierając pakiety adresowane na jego adres MAC, ale dla innego adresu IP.

Z powyższych scenariuszy jasno wynika, że ​​Internet nie jest siecią płaską ze względu na różne sieci lokalne / prywatne. Istnieją również różne jednostki sieciowe między źródłem a miejscem docelowym.

Ponieważ internet nie jest siecią płaską, adres MAC nie jest wykorzystywany do wszystkich rodzajów komunikacji, a niektóre sieci wymagały innej warstwy łącza danych niż sieć Ethernet, potrzebujemy adresu IP do przekierowania go do pożądanego węzła, niezależnie od lokalizacji węzła i tego osiąga się dzięki warstwie sieci.

Odwołaj się również do podobnej dyskusji w https://stackoverflow.com/questions/26290069/arp-vs-ip-why-do-we-need-both

Karthik Balaguru
źródło
Oprócz przykładów „ptasich nosicieli”, „sygnałów ręcznych” i „papierowych i ołówkowych” alternatywnych warstw 2, niektóre są zwariowane, ale czasami przydatne . IP przez SMS, Facebook, a nawet e-mail. Są też stare standby SLIP, PPP i PPPoE. Te trzy NIE prezentują tego samego rodzaju twarzy co połączenie Ethernet lub WIFI - mimo to wszystkie uzyskują dostęp przez IP i są całkowicie routowalne.
Ross Presser
2

Jak wyjaśnili inni, potrzebujesz protokołów warstwy 2 do kontroli zatorów w sieci lokalnej. Warstwa 3 służy do routingu i adresowania między sieciami.

Powiedziawszy to, ważne pytanie może brzmieć: dlaczego obie warstwy nie mogą korzystać z tego samego schematu adresowania?

Pierwsza odpowiedź: jak wspomnieli inni, pozwala to na przełączanie technologii L2 i / lub L3 i wszystko nadal działa.

Druga odpowiedź: nawet jeśli wszyscy zgodziliby się, aby protokoły warstwy 2 korzystały z adresów IP, nadal musielibyśmy używać dwóch adresów IP, jednego dla warstwy 2 i jednego dla warstwy 3. Dlaczego? NATting. Jeśli komputer ma publiczny adres IP, adresy L2 i L3 mogą być takie same. Jeśli jednak użyjesz NAT, twoje adresy L2 i L3 będą inne.

Ostatni komentarz: Kiedy mówisz, że wszyscy otrzymali wiadomość, a osoby nie biorące ich ignorują, mówisz o WiFi. Przewodowy Ethernet już tak nie działa. Tak było kiedyś, gdy używaliśmy kabli koncentrycznych, a później, kiedy korzystaliśmy z koncentratorów. Przełączniki wysyłają tylko wiadomości / pakiety do odpowiedniego portu (chyba że wykonasz na nich atak i nasycisz ich tabele).

cabad
źródło
Bardzo się cieszę, że dodałeś ostatni komentarz. Jak już zauważyłeś: zatory mogą być zarządzane przez przełączniki. Przełączniki mogą korzystać wyłącznie ze schematu adresowania IP. Nie rozumiem również argumentu NATing: zawsze potrzebujemy dwóch adresów IP po obu stronach NAT. Myślę, że poprawnym pytaniem byłoby: dlaczego potrzebujemy osobnych warstw DataLink i Network w nowoczesnych sieciach? Rozumiem, że separacja była potrzebna w latach 70., kiedy używano żetonów, gołębi i papierów.
user2449761
0

Adresy MAC i adresy IP działają w różnych warstwach sieci do różnych celów. Pozbycie się jednej z warstw może powodować problemy, powodować zamieszanie lub uniemożliwić działanie.

Powiedzmy, że mam jakiś starożytny sprzęt (powiedzmy tokarkę CNC za milion dolarów), która obsługuje tylko IPX . W jaki sposób ktoś mógłby z nią rozmawiać w twojej sieci opartej tylko na IP? Lub powiedz, że podłączam nieskonfigurowany komputer do nowej sieci. W przypadku braku adresów MAC, w jaki sposób serwer DHCP może powiedzieć komputerowi, jakiego adresu IP użyć?

Załóżmy, że mam serwer z czterema gigabitowymi połączeniami do przełącznika szkieletowego, połączonych w jedno wirtualne połączenie. W twojej sieci opartej tylko na MAC jaki jest adres mojego serwera? Lub powiedz, że mam komputer podłączony przez modem PPPoA i nie mam adresu MAC. Jak ktokolwiek może się z tym połączyć?

znak
źródło
0

Hmmm, myślę, że mogło to zostać wykonane (właściwie / zrobiłem / ręcznie przypisałem adres MAC); jednak gdyby to zostało zrobione, musiałbyś kupić nowy sprzęt dla IPv6 i prawdopodobnie nie byłoby nakładania się. W sumie nie lubię konsekwencji.

Jozuego
źródło
0

Ja w IP oznacza Międzysieciowa protokołu.

Oznacza to, że adres IP ma być unikalny we WSZYSTKICH sieciach na całym świecie.

Adresy IP powinny być dosłownie globalne. Jeśli wysyłasz ruch do 9.9.9.9, ma on docierać wszędzie tam, gdzie 9.9.9.9 nie ma znaczenia, gdzie na świecie 9.9.9.9 jest fizycznie lub która sieć 9.9.9.9 jest fizycznie włączona.

(Jest to nieco zepsute z powodu NAT. Kiedy wynaleziono TCP / IP, NAT nie był częścią pierwotnego planu i jest to „hack”, dopóki IPv6 nie stanie się bardziej powszechny tam, gdzie nie jest potrzebny. Udawaj, że NAT nie istnieje, aby zrozumieć ta odpowiedź).

Adres MAC powinien być unikalny tylko w sieci lokalnej, w której znajduje się host. Nie ma na celu umożliwienia komunikacji między czymkolwiek, co nie znajduje się w tej samej sieci lokalnej. Istnieje więc fizyczne ograniczenie adresów MAC, ale nie ma takich ograniczeń adresów IP.

TCP / IP opiera się na założeniu, że:

  • istnieją sieci lokalne, w których systemy mogą ze sobą rozmawiać bezpośrednio, bez udziału routera
  • czasami komputery w jednej sieci chcą rozmawiać z komputerami w innej i potrzebują do tego routera.

Gdyby istniał inny fundamentalny mechanizm, w którym dwie powyższe koncepcje nie mają zastosowania, wówczas IP i MAC nie byłyby potrzebne, tak jak obecnie.

Jeśli projektujesz protokół lub coś, co absolutnie nigdy nie musi rozmawiać z komputerami poza tą samą siecią lokalną, dobrym pomysłem jest po prostu trzymać się adresów MAC. Myślę, że taki jest protokół ATA over Ethernet, ponieważ został zaprojektowany w celu umożliwienia współużytkowania napędów ATA w tej samej sieci, a nie przez Internet ze względów bezpieczeństwa.

LawrenceC
źródło
0

Właśnie miałem podobne myśli. Ale doszedłem do wniosku, że potrzebujesz warstwy MAC. Nawet w celu zamiany!

Nieuniknionym problemem jest to, że masz inny niż tylko protokół IP, nawet jeśli mówimy o IP, istnieją IPv4 i IPv6. Skąd urządzenie sieciowe wie, które to urządzenie? więc potrzebujesz MAC jako warstwy ładującej, w polu protokołu jest kolejna warstwa, która mówi ci, co jest przenoszone przez MAC.

XYZ
źródło
-2

Utkniesz, myśląc tylko o pojedynczej warstwie OSI. IP działa tylko dlatego, że istnieje Ethernet (i inne), podobnie jak Ethernet istnieje tylko dlatego, że istnieją fizyczne przewody do przenoszenia ruchu. To nie jest „IP ani MAC” - routing ruchu wymaga adresów MAC do działania: technologia IP (podobnie jak inne powiązane i niepowiązane technologie) jest na szczycie. Nie możesz po prostu wymienić jednego na drugi.

Lekkość Wyścigi na orbicie
źródło
-6

Dynamiczne adresy IP mój przyjacielu! W swoim lokalnym środowisku (w domu, na uczelni, w miejscu pracy) masz konfigurację sieci. Nie jest podłączony bezpośrednio do Internetu (za pomocą dużej litery „I”), ale przez router. Router otrzymuje dynamiczny adres IP (w większości przypadków, chyba że masz statyczny) od twojego dostawcy usług internetowych i przypisuje adresy dynamiczne (takie same „ale” jak wyżej) wszystkim podłączonym komputerom. Dlaczego tak się dzieje? W linii, aby zapewnić obsługę większej liczbie użytkowników niż posiadanych adresów IP. Chodzi o to, że musisz być w stanie zidentyfikować swojego MacBooka Pro (: D) wśród wszystkich innych komputerów, więc potrzebujesz adresu UNIKALNEGO, a nie dynamicznego / współdzielonego. To twój Mac. I dlatego go potrzebujesz.

Możesz przeczytać dalej tutaj

tfrascaroli
źródło
2
To naprawdę nie ma powodu, aby używać adresów MAC.
Daniel B
1
Chodzi o to, że nie wszystkie komputery mają unikalny adres IP, czasem nawet tego nie chcesz, więc to dobry argument, ponieważ mają osobny adres LAN, którym jest adres MAC.
reinierpost
1
Tak, robią. Wszystko, co można routować przez Internet, jest z definicji wyjątkowo unikalne. W przeciwnym razie internet nie działałby. Są rzeczy takie jak NAT, które naruszają tę tak zwaną zasadę end-to-end. W przypadku NAT masz także osobny adres LAN.
Daniel B
@DanielB Jestem pewien, że to nieprawda, ale może źle cię zrozumiałem. Na przykład: czy możesz mi powiedzieć, w jaki sposób unikalnie adresowałbyś ten komputer, na którym piszę, który znajduje się w lokalnej sieci prywatnej, skąd jesteś, bez wcześniejszego nawiązania połączenia? A jeśli zamiast tego chcesz zwrócić się do komputera obok tego?
SevenSidedDie
@DanielB Pewnie, że to nie jest powód. Pytanie OP: Czy wszystkie komputery nie mogą być podłączone do ujednoliconej sieci i używać adresów IP do komunikacji? Moja odpowiedź zawiera informacje o tym pytaniu, a nie o hipotetycznym pytaniu, które brzmiałoby tak: „Dlaczego używamy adresów MAC w modelu ethernetowym?”. Ponieważ pyta, dlaczego nie możemy po prostu używać adresów IP, oto moja odpowiedź. Proszę przeczytać następnym razem uważnie przed oddaniem głosu :)
tfrascaroli