Яке точне використання MAC-адреси?


126

Я розумію, що IP-адреси є ієрархічними, так що маршрутизатори по всьому Інтернету знають, в якому напрямку переслати пакет. З MAC-адресами немає ієрархії, і тому переадресація пакетів була б неможливою. Отже, MAC-адреси не використовуються для передачі пакетів.

Я не думаю, що він сидить там без причини. Отже, моє запитання полягає в тому, де саме MAC-адреса вступає в гру під час передачі пакетів?

Відповіді:


57

TL; DR> MAC-адреси - це компонент низького рівня мережі Ethernet (та деякі інші подібні стандарти, наприклад, WiFi). Вони дозволяють пристрою спілкуватися з машиною в локальній фізичній мережі (LAN) і не можуть бути маршрутизовані через Інтернет - тому що фізичне обладнання в теорії може бути підключено в будь-якій точці світу.

Навпаки, IP-адреси охоплюють весь Інтернет, і маршрутизатори використовують їх, щоб визначити, куди надсилати дані, навіть якщо для досягнення пункту призначення потрібні кілька перестрибень, але вони не корисні для взаємодії з фізичним обладнанням у вашій локальній мережі.

Якщо ми коли-небудь знайшли кращий стандарт, ніж Ethernet, він може не використовувати MAC-адреси, але IP-трафік з Інтернету все ще може протікати через нього, навіть якщо інші люди в Інтернеті про нього ніколи не чули.

Якщо ми коли-небудь знайшли кращий стандарт, ніж IP (наприклад, IPv6, якщо всі адреси IPv4 закінчилися), більшість апаратних засобів Ethernet могли б переносити новий вид трафіку без модифікацій - і просте оновлення програмного забезпечення / прошивки виправить більшість решти.

MAC-адреси необхідні для створення локальної мережі Ethernet (або Wi-Fi). Вони дозволяють мережевому пристрою привернути увагу одного безпосередньо підключеного пристрою, навіть якщо фізичне з'єднання є загальним. Це може бути важливо, коли тисячі пристроїв з'єднані разом в одній організації. Вони не виконують жодної функції в широкому Інтернеті.

Щоб реально зрозуміти відповідь на це питання, вам потрібно зрозуміти модель OSI (іноді відома як 7-шарова) модель .

Щоб спілкування відбувалося між двома програмами, що працюють на окремих машинах, які не мають прямого фізичного зв'язку, потрібно провести багато роботи.

За старих часів кожен додаток точно знав би, які інструкції машинного коду потрібно запустити, щоб подати відповідний сигнал, який би досягав і може бути розшифрований програмою в далекому кінці. Вся комунікація була ефективно орієнтована на точку, і програмне забезпечення потрібно було писати так, щоб відповідати точній ситуації, в якій вона повинна бути розгорнена. Очевидно, що це було нестійким.

Замість цього проблема мереж була розбита на шари, і кожен шар знав, як говорити з відповідним шаром на віддаленій машині та як спілкуватися із шаром під (а іноді і вище) на його локальній машині. Він взагалі нічого не знав про будь-які інші шари, тому ваш веб-браузер не повинен дбати про те, чи працює він на машині, яка використовує токен-дзвінок, Ethernet або Wi-Fi мережу - і, безумовно, не потрібно знати, яке обладнання використовує віддалений апарат.

Щоб зробити цю роботу, 7-шарова модель використовує систему, а не вкладені конверти; додаток створює свої дані та загортає їх у конверт для доставки Операційної системи. ОС завершує це в інший конверт і передає його драйверу мережі. Мережевий драйвер загортає це в ще один конверт і кладе його на фізичний кабель. І так далі.

Нижній шар, шар 1 - це фізичний шар. Це шар проводів і транзисторів і радіохвиль, і на цьому шарі комунікація - це здебільшого лише потік з них і сіток. Дані надходять скрізь, де фізично пов'язані. Ви підключаєте мережевий порт комп'ютера до комутатора за допомогою кабелю CAT-5.

Шар 2 - рівень зв'язку даних. Це забезпечує певну структуру для тіл і мереж, деякі можливості виявлення та виправлення помилок, а також деяку вказівку щодо того, на який фізично підключений пристрій (фізичні з'єднання тут можуть бути фактично через wifi) слід звернути увагу на повідомлення. Це шар, з яким MAC-адреси вступають у гру, і ми повернемося до нього пізніше. Але MAC-адреси - не єдина можливість цього шару. Наприклад, кільцевим мережам маркера потрібна інша реалізація каналу передачі даних.

3 рівень - мережевий рівень. Це шар, на якому працює IP (хоча це не єдиний протокол мережевого рівня), і саме це дозволяє комп'ютерам надсилати повідомлення, яке може потрапити на будь-яку машину в будь-яку точку "мережі". Не потрібно мати прямий зв'язок між відповідними машинами.

Шари 4-7 - протоколи вищого рівня. Вони все більше віддаляються від обладнання та наближаються до програми. Наприклад, TCP сидить поверх IP-адреси та забезпечує механізми, які автоматично надсилають повідомлення, коли вони відсутні.

Таким чином, MAC-адреси працюють на рівні 2 і дозволяють 2 машинам, які фізично підключені один до одного, надсилати повідомлення, які будуть ігноровані іншими машинами, які мають те саме фізичне з'єднання.

Припустимо, у мене є програма, яка хоче надіслати деякі дані на машину з IP-адресою 8.8.8.8

3-й рівень загортає дані в конверт, який, серед іншого, містить IP-адресу 8.8.8.8, а потім передає це на рівень 2.

Шар 2 розглядає цю IP-адресу і вирішує, до якої машини, до якої він безпосередньо підключений, може працювати з цим повідомленням. Він буде мати таблицю пошуку вибору безпосередньо підключених IP-адрес разом із відповідною MAC-адресою мережевої карти в цій машині. Ця таблиця пошуку побудована за допомогою протоколу під назвою ARP, який дозволяє мережевій картці задавати питання іншим безпосередньо підключеним пристроям. Ethernet зберігає спеціальну MAC-адресу, FF: FF: FF: FF: FF: FF, яка дозволяє пристрою спілкуватися з усіма фізично підключеними пристроями.

Якщо IP-адреса знаходиться в таблиці (або її можна вирішити за допомогою ARP), вона загорне конверт рівня 3 в конверт 2 рівня з MAC-адресою в новому заголовку, а потім передасть весь пакет до апаратного забезпечення на рівні 1 . Мережева карта з відповідною MAC-адресою отримає повідомлення, і мережевий драйвер відкриє конверт 2 рівня і передасть вміст до тієї частини, в якій операційна система очікує отримання повідомлень за певною IP-адресою.

Крім того, якщо IP-адреса відсутня в локальній мережі, новий конверт матиме MAC-адресу шлюзу за замовчуванням (тобто маршрутизатора), налаштованого для цього мережевого інтерфейсу, а апаратне забезпечення передасть пакет до маршрутизатора.

Маршрутизатор помічає власну MAC-адресу в конверті рівня 2 та відкриває пакет рівня 2. Він переглядає IP-адресу в конверті рівня 3 та працює над тим, куди потрібно подати повідомлення, яке, ймовірно, буде маршрутизатором у вашого провайдера. Якщо маршрутизатор використовує NAT (або подібне), він може навіть змінити конверт рівня 3 в цей момент, щоб зберегти ваші внутрішні IP-адреси приватними. Потім він оберне конверт рівня 3 у новий конверт рівня 2, який адресований MAC-адресу маршрутизатора провайдера, та надішле повідомлення туди.

Цей процес видалення зовнішнього конверта та загортання вмісту в новий конверт, адресований наступному кроку ланцюга, триватиме до тих пір, поки повідомлення не надійде до машини призначення.

Потім конверти будуть продовжувати видобуватись, коли повідомлення буде виконувати резервні копії шарів, поки нарешті не дістанеться до призначеного одержувача, який буде десь додатком, який, сподіваємось, буде знати, що робити з повідомленням - але не матиме уявлення про те, як повідомлення не надійшло, ані всі кроки, необхідні для повернення відповіді на оригінальну машину.

Але це все працює, майже як магія!

Зауважте, що мережеві комутатори можуть використовувати MAC-адреси для оптимізації потоку мережевого трафіку. Хоча концентраційний центр Ethernet просто пересилає весь вхідний трафік на всі його порти, але, навпаки, комутатор може пересилати трафік лише до одного порту, до якого підключений MAC-адресу пакета. Це збільшує ефективну пропускну здатність мережі; орієнтуючись на конкретні порти, комутатор уникає перенаправлення трафіку на непотрібні сегменти мережі. Комутатор використовує або ARP, або нюхання пакетів, щоб визначити, які пристрої підключені до якого порту. Перемикачі повністю ігнорують вміст пакетів 2 рівня.


Привіт! дякую за відповідь. Наскільки я прочитав, ваша відповідь найкраща. Було б дивним, якби ви могли включити до свого сценарію ще кілька таких понять, як ARP та NAT.
Vishnu Vivek

1
Додано посилання на ARP та мережеві комутатори. Я не думаю, що NAT не має нічого спільного з MAC-адресами, будучи функцією рівня 3 ...
Білл Мішелл,

@BillMichell: У IPv6 для складання IP може бути використаний MAC або інший локальний ("апаратний") ідентифікатор.
Лучано

Відповідь - спільнота Wiki. Ви, ймовірно, можете відредагувати його, щоб включити цю додаткову інформацію, якщо ви думаєте, що це допоможе відповісти на питання ОП.
Білл Мішелл

Для цього потрібна TL; DR.
AJMansfield

113

Для чого використовуються MAC-адреси?

MAC-адреси - це основи низького рівня, які змушують роботу локальної мережі на основі Ethernet. Локальне означає, що мережеві пристрої підключаються безпосередньо через кабель або через WiFi, або через мережевий концентратор або мережевий комутатор.

Мережеві карти мають унікальну MAC-адресу. Пакети, що надсилаються по ethernet, завжди надходять з MAC-адреси та надсилаються на MAC-адресу. Якщо мережевий адаптер отримує пакет, він порівнює цільову MAC-адресу пакета з власною MAC-адресою адаптера. Якщо адреси збігаються, пакет обробляється, інакше він відкидається.

Є спеціальні MAC-адреси, наприклад, ff: ff: ff: ff: ff: ff, яка є широкомовною адресою та адресована кожному мережевому адаптеру в мережі.

Як працюють IP-адреси та MAC-адреси разом?

IP - це протокол, який використовується на шарі над Ethernet. Іншим протоколом, наприклад, буде IPX. IP дозволяє підключати різні локальні мережі і таким чином формувати корпоративну мережу або глобальний Інтернет.

Коли ваш комп’ютер хоче надіслати пакет на якусь IP-адресу xxxx, тоді перша перевірка полягає в тому, чи адресна адреса знаходиться в тій же IP-мережі, що і сам комп'ютер. Якщо xxxx знаходиться в одній мережі, то IP-адресу призначення можна досягти безпосередньо, інакше пакет потрібно надіслати налаштованому маршрутизатору.

На сьогоднішній день, здається, все погіршилося, тому що зараз у нас є дві IP-адреси: одна - цільова адреса вихідного IP-пакета, інша - IP-пристрій, на який ми повинні надіслати пакет (наступний перехід, або остаточний пункт призначення або маршрутизатор).

Оскільки Ethernet використовує MAC-адреси, відправник повинен отримати MAC-адресу наступного переходу. Існує спеціальний протокол ARP (протокол вирішення адреси), який використовується для цього. Після того, як відправник отримав MAC-адресу наступного скаку, він записує цю цільову MAC-адресу в пакет і відправляє пакет.

Як працює ARP?

ARP сам по собі є протоколом вище Ethernet, наприклад IP або IPX. Коли пристрій хоче знати MAC-адресу для даної IP-адреси, він надсилає пакет на MAC-адресу широкомовної програми із запитом "Хто має IP-адресу" yyyy? " Усі пристрої отримують цей пакет, але лише той, хто має IP-адресу yyyy, відповість пакетом "Це я". Запитуючий пристрій отримує відповідь і тепер знає, що MAC-адреса джерела пакету ARP - це правильна MAC-адреса, яку можна використовувати. Звичайно, результат буде кешований, тому пристрій не потребує щоразу усунення MAC-адреси.

Маршрутизація

Я майже забув згадати: немає маршрутизації на основі MAC-адрес. Ethernet та MAC адреси низького рівня можуть охоплювати лише кожен пристрій в одній мережі (кабельний або бездротовий). Якщо у вас є дві мережі з маршрутизатором, ви не можете мати пристрій у мережі. Надішліть пакет на MAC-адресу пристрою в мережі B. Жоден пристрій у мережі A не має MAC-адресу пристрою в мережі B, пакет на цю MAC-адресу буде відкинутий усіма пристроями в мережі A (також маршрутизатором).

Маршрутизація проводиться на рівні IP. Просто видно, що маршрутизатор просто виконує те, що я описав вище в розділі "Як IP-адреси та MAC-адреси працюють разом?". Маршрутизатор отримає пакети за власну MAC-адресу, але за іншою IP-адресою. Потім він перевірить, чи може він безпосередньо досягти цільової IP-адреси. Якщо так, він відправляє пакет до цілі. В іншому випадку на самому маршрутизаторі також налаштований маршрутизатор вище, який буде налаштований, і він надішле пакет цьому маршрутизатору.

Звичайно, у вас може бути налаштовано кілька маршрутизаторів. На вашому домашньому маршрутизаторі буде налаштований лише один маршрутизатор, який проходить за течією, але в Інтернет-магістралі великі маршрутизатори мають великі таблиці маршрутизації, щоб вони знали найкращі способи для всіх пакетів.

Інші випадки використання MAC-адрес

  1. Мережеві комутатори зберігають список MAC-адрес, які можна побачити на кожному порту, і лише переадресовувати пакети до портів, яким потрібно бачити пакет.

  2. Бездротові точки доступу часто використовують MAC-адреси для контролю доступу. Вони дозволяють отримати доступ лише для відомих пристроїв (MAC-адреса є унікальною та ідентифікує пристрої) з правильною парольною фразою.

  3. DHCP-сервери використовують MAC-адресу для ідентифікації пристроїв та надання деяким пристроям фіксованих IP-адрес.


16
+1 за те, що насправді відповів на питання таким чином, що люди, які ще не знають відповіді, можуть зрозуміти.
пухнастий

Я не можу не відчувати бажання створити дивовижну інфографіку / діаграму якось, спосіб взаємодії MAC / IP досить цікавий!
NRGdallas

1
приємна відповідь лише докладно: MAC-адреси також використовуються для пристроїв, що не належать до Ethernet, і чи описано ви в основному для будь-якого шару зв’язку даних, який використовується із стеком IP
kriss

Варто зауважити про Wi-Fi MAC: Хоча вони, як правило, унікальні і їх можна використовувати для ідентифікації пристроїв, їх легко підробляти і надсилати в чистоту по повітрю. Якщо немає іншого шифрування / автентифікації, використовуваного під час з'єднання, або якщо інші механізми шифрування / аутентифікації слабкі (наприклад: WEP), зловмисник дуже неправдивий, щоб видати себе за авторизований пристрій та приєднатися до мережі.
Іссі

1
@Rick Ви маєте рацію, IP-адреса призначення для з'єднання не змінюється. Але в цитованому абзаці я говорив про пряме призначення пакету - який може бути маршрутизатором, і маршрутизатор може змінитися під час з'єднання. Стосовно вашого другого коментаря я змінив текст на "вихідну MAC-адресу пакету ARP". Я сподіваюся, що це зрозуміліше.
Вернер Гензе

47

MAC-адреса (адреса управління доступом до інформації) взагалі є ідентифікатором пристроїв у мережі. Отже, кожен NIC (контролер мережевого інтерфейсу, знайдений у маршрутизаторі, ПК, мережевому принтері, сервері тощо) має MAC-адреси. Деякі сервери мають вбудовану більш ніж одну мережеву карту і тому мають кілька MAC-адрес. Адреса MAC - 6 байт (6 октетів). Зліва - найзначніший байт, а правий - найменш значущий байт. Як ви бачите на малюнку нижче, перші 3 байти - це організаційно унікальний ідентифікатор . Це вказує на виробника, який виготовив цей пристрій.

Ось перелік організаційно унікального ідентифікатора : Standards.ieee.org

Ось альтернатива вищесказаному: MAC-Vendor-Lookup

Кілька прикладів відомих виробників:

  • 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)

Останні 3 байти (3 октети) випадково призначаються виробником.

Як pjc50 правильно вказав, MAC-адреса в мережі Ethernet допомагає комутаторам вирішити, який пакет куди відправити. Є також широкомовна-MAC-адреса. ff: ff: ff: ff: ff: ff використовується для широкомовної MAC-адреси. Зауважте, що MAC-адресу можна змінити, тому будьте обережні, використовуючи її як визначений ідентифікатор пристрою! MAC-адреса також використовується з протоколом ARP (Address Resolution Protocol). Отже, як це працює, ПК A надсилає запит ARP на ПК B із власною IP-адресою, MAC-адресою, IP-адресою приймача та адресою широкомовної передачі, згаданою вище (ff: ff: ff: ff: ff : ff). Після цього ПК B перевіряє, чи був йому пакет надісланий чи ні. Якщо так, то ПК B надсилає назад свою власну MAC-адресу, IP-адресу, MAC-адресу приймача та IP-адресу приймача. Інші пристрої відкидають пакет.

І ПК, і B зазвичай зберігають успішне з'єднання в так званому ARP-кеші. Те, як ПК зберігає з'єднання, відрізняється від пристрою до пристрою. Якщо ви не знаєте IP-адреси, тоді ви можете отримати IP-адресу за допомогою протоколу зворотної адреси (RARP). За допомогою RARP пристрій зв'язується з центральним клієнтом і запитує його для IP-адреси. Але сьогодні цей метод майже не застосовується.

Наступні технології використовують формат ідентифікатора MAC-48:

  • Ethernet
  • 802.11 бездротові мережі
  • Bluetooth
  • IEEE 802.5 токенове кільце
  • більшість інших мереж IEEE 802
  • ПІІ
  • Банкомат (лише комутовані віртуальні з'єднання, як частина адреси NSAP) Волоконний канал та послідовно приєднаний SCSI (як частина всесвітнього імені)

4
Більш точно , ніж «кожен пристрій (...) є MAC-адресу.», Кожен мережевий адаптер має A MAC - адреса . (Не враховуючи можливості встановлення власної MAC-адреси.) Не всі принтери мають вбудовані мережеві карти, і багато серверів мають більше однієї мережевої картки і, отже, більше однієї MAC-адреси.
CVn

2
Скажімо, PC-1 надсилає пакет на ПК-2. Тепер перемикач лише зчитує MAC-адресу PC-1 і зберігає його в таблиці. Якщо ви хочете отримати більше інформації про те, як це працює, прочитайте це: Як працюють комутатори LAN :)
Meintjes

3
Ще один момент полягає в тому, що MAC-адреса - це те, як NIC вирішує, що відкинути і що надіслати процесору для обробки. Кадр Ethernet, що зустрічається на дроті, має свою кінцеву MAC-адресу XOR'd з MIC-адресою NIC, і якщо результатом є всі 0s, то це кадр, призначений для цього NIC.
bbayles

7
-1: Питання задавали, як використовуються MAC адреси, а не що таке MAC-адреса. Єдина частина вашої відповіді, яка стосується питання, - це список куль в кінці, і він не надто детально описується.
Кевін

4
Зображення зроблено з wikipedia: en.wikipedia.org/wiki/File:MAC-48_Address.svg , малюнки, ліцензовані під творчим спільнотою, повинні бути віднесені їх авторам при використанні.
Étienne

24

Вони будуть використовуватися для передачі пакетів: по мережі Ethernet, існує цілий ряд пристроїв, а також MAC - адреса визначає , який пристрій має приймати пакет. Комутатори Ethernet використовуватимуть його, щоб вибрати, на який порт відправити отриманий пакет.


5
Цікаво зазначити, що Ethernet спочатку був шиною, де всі машини фізично використовували однакові носії (це все ще стосується бездротових мереж). Так що логічно це працює так.
LawrenceC

і все ще стосується мереж, які все ще використовують хаби :)
Doon

відтепер комутатори - це лише засоби (справді вони набули широкого розповсюдження з локальними мережами RJ-45), ми можемо мати і без них IP-мережі (використовуючи концентратори або 802.11)
kriss

7

Забудьте про ієрархію в цьому випадку, це не дуже важливе питання.

MAC-адреса - це адреси для рівня 2 (рівень зв'язку) в моделях ISO / OSI або TCP / IP. IP-адреси мають рівень 3 (мережевий рівень) в тих же моделях.

У мережі рівня 2, наприклад, у загальній мережі Ethernet, існує дотик зіткнення, де все підключене обладнання може приймати всі кадри (дані рівня 2 блоку) з будь-якої кінцевої точки. Але ніхто за межами мережі не може отримати ці кадри. MAC адреси - це адреси в цих доменах.

Пакети - це одиниці даних рівня 3, як правило, IP-пакети. Вони подорожують через один або кілька доменів зіткнення. IP-адреси - це адреси в цьому домені.

Перемикачі - це пристрої рівня 2 та кадри вперед, використовуючи таблиці MAC-адрес. Маршрутизатори - це пристрої рівня 3, і вони пересилають пакети, використовуючи таблиці IP-адрес.


6

Ethernet передбачає, що інший комп'ютер (інший MAC), з яким він хоче поговорити, знаходиться безпосередньо в його мережевому адаптері. IP не робить. IP припускає, що він може досягти будь-якого іншого IP у всьому світі, і що якщо він не може отримати його в поточній підмережі, маршрутизатор буде переносити його туди, незважаючи на NAT. Поняття шлюзів не існує в рівні 2 або в Ethernet.

Якщо у вас є декілька машин, підключених до комутатора, і вам ніколи не потрібно буде торгувати трафіком з іншими мережами / Інтернетом через маршрутизатор, то вам дійсно не потрібно мати IP-версію та працювати. Звичайно, програмі доведеться реалізовувати або надавати свій власний протокол вище рівня 2, оскільки майже всі ОС і програми передбачають, що ви завжди хочете використовувати TCP / IP.

Завжди пам’ятайте, що «Інтернет» в ІР означає «Інтернет-робота», тобто справді це стосується отримання трафіку між мережами більше, ніж в мережі, хоча, очевидно, він може бути (і використовується) і для цього.


Перший абзац - ідеальна відповідь! Освітлюючий!
Milind R

6

MAC-адреса використовується при фізичній передачі. Адаптер Ethernet нічого не знає про IP. Таким чином, адаптер Ethernet використовує MAC-адресу для адреси приймача пакету даних.

Якщо адаптер Ethernet би знав що-небудь про IP, тоді нам доведеться оновити всю нашу прошивку, щоб перейти на новий протокол (наприклад, IPv4 до IPV6).

Також MAC-адреса містить деяку інформацію про виробника в ньому.


3
Маршрутизатори не використовують MAC-адресу для нічого. Вони використовують IP-адреси. Хаби копіюють трафік немодифікований зі своїх портів, але це можна назвати мостиком, оскільки трафік проходить не по іншій мережі, а по одній мережі.
LawrenceC

5

Він використовується, коли ARP (протокол вирішення адреси) для IPv4 або NDP (протокол виявлення сусідів) для IPv6, переводить адреси IP в MAC-адреси для визначення, до якого унікального хоста повинні бути надіслані кадри.


Це досить близько, але воно не охоплює всього використання. Ось так MAC ставиться до TCP / IP, але MAC використовується набагато більше, ніж просто це. Це перша відповідь, яку я не даю -1 на хоча (працюю знизу сторінки вгору).
Марк Хендерсон

@ Марк Хендерсон Дякую за критику. Ну я просто спробував відповісти на питання, How MAC addresses were used in packet transferі тоді я припустив, що це на рівні Ethernet. І так, це проста відповідь, але я відповідаю на рівні, який відповідає моєму власному рівню :)
Jesper Jensen

3

Щоб завершити відповіді інших, я додам, що MAC-адреса є навіть більш важливою для маршрутизаторів, ніж для комутаторів. Що я маю на увазі під критичнішим , що комутатори насправді не потрібні для існування мережі IP. Якщо ви дивитесь на 20 років назад (до RJ-45) Локальні IP-мережі справно працювали без комутаторів, що не перенаправлені Ethernet-мережі, просто підключали пристрої на одному проводі (наприклад, погляньте на технологію X base-T ethernet).

З іншого боку, IP-мережі були винайдені для підтримки маршрутизації та спираються на схеми MAC та IP-адреси.

Маршрутизація пакетів в мережах IP означає, що коли цільова машина не може бути доступна безпосередньо, вона спочатку буде відправлена ​​на іншу машину (шлюз), що наближається до кінцевої цілі IP.

Що стосується заголовків мережевих пакетів, це означає, що пакет, надісланий на шлюз, матиме в якості цілі в заголовку рівня Ethernet MAC-адресу шлюзу, а заголовок рівня IP залишається незмінним.

Також слід помітити, що MAC-адреси зазвичай означають або MAC-48 (фізична адреса пристрою), або EUI-48 (логічна адреса пристрою), або навіть 8-байтні адреси EUI-64, що використовуються у великих мережах. Історично MAC був винайдений Xerox для технології Ethernet і згодом повторно використаний для інших технологій мережевого транспорту (802.11, Bluetooth, FibreChannel, BlueTooth), які потребують ідентифікації пристрою.

Як я вже говорив, ви можете використовувати інший шар-2 замість Ethernet, але більшість використовує MAC-адресу як мережевий ідентифікатор, а основна схема відповідності MAC / IP є справедливою, і ви все ще можете використовувати ARP. Наскільки мені відомо, усі стеки IP покладаються на таблицю відповідностей між MAC-адресами та IP-адресами.

Існують деякі інші види ідентифікаторів вузлів пристроїв для не стеків IP. Наприклад, X.25 не покладається на MAC-адреси, а на віртуальні канали, встановлені на основі з'єднання, або пристрої банкоматів ідентифікуються в мережах банкоматів за допомогою SNPA. Але ні X.25, ні ATM не є стеками IP (і навіть ATM використовує формат MAC-адреси як частини свого SNA, що відповідає еквіваленту IP-адреси для банкоматів).


Маршрутизатори не цікавляться MAC-адресами. Вони дбають про присвоєння підмережі кожному з принаймні 2 NIC, але не дуже про MAC-адреси. Вони пересилають (тобто копіюють) трафік з одного IP в інший, а не з IP в MAC або щось подібне.
LawrenceC

4
@ultrasawblade, ваша заява абсурдна . Якщо маршрутизатор підключений до мережі Ethernet, він повинен зв’язатися за допомогою протоколу Ethernet. IP-пакети будуть інкапсульовані в Ethernet Frame. Це означає, що знати мак-адреси всіх ** ** хостів Ethernet ** абсолютно не потрібно. Пристрій шару 3 не магічно спілкується просто на протоколі 3 рівня, він повинен інкапсулювати протокол рівня 3 всередині протоколу рівня 2, який потім передається через середовище шару 1.
Зоредаче

3
Я не погоджуюся з вашим першим реченням - вони не є більш критичними для маршрутизаторів, ніж комутатори - всі вони мають однакове значення у всій мережі Ethernet.
Марк Хендерсон

1
Ви можете замінити нижній шар 2 чимось зовсім іншим (хоча я не знаю що) і IP все одно буде працювати однаково. Протокол IP (3 рівень) не має значення, чи звертаються окремі хости під MAC або іншою схемою. Звичайно, потрібно підтримувати відображення IP на MAC - але важко дізнатися, чи дійсно ARP "належить" до рівня 3 або рівня 2. Справа в тому, що протокол рівня 2 не повинен бути Ethernet і IP не хвилює / потрібно знати, що таке протокол рівня 2
LawrenceC

2
@ Марк Хендерсон: коли я старий, я пам’ятаю час, коли не було ніяких комутаторів. Вони насправді не є найважливішим елементом обладнання, IP-мережі можуть працювати без комутаторів. Перемикачі просто використовували існуючий макет мережі даних. Якщо у нас зараз їх є всюди, це наслідок технології RJ «точка-точка», яка замінює старі автобуси. Іншими словами: MAC-адреси не були винайдені для роботи комутаторів. З іншого боку, IP мережі були винайдені з метою маршрутизації, отже, зв'язок MAC до IP є критичною.
kriss

2

Подумайте про дні до перемикання (концентратори).

Якщо люди - комп'ютери, то MAC-адреса - це їх ім’я.

Прикидайтеся, що багато людей (комп'ютери) ведуть один і той же телефонний дзвінок. Усі говорять одночасно.

ВИ (один комп’ютер) чуєте ВСІ з цієї балаканини, але ви не знаєте, що вам слід слухати, доки хтось не скаже ваше ім’я (ваша MAC-адреса) на початку речення (пакет).

"FRED, THERE IS ICE CREAM!"

Звичайно, ви також слухаєте пропозиції, надіслані на адресу трансляції . Просто вважайте, що це кричить хтось,

"EVERYONE, THERE IS ICE CREAM!"

Чим більше людей (комп'ютерів) потрапило на конференц-дзвінок, тим більше вам доведеться фільтрувати. Передові технології та комутатори дозволили нам спілкуватися безпосередньо з однією людиною (комп'ютер / MAC), щоб їм не довелося так сильно працювати, щоб відфільтрувати весь цей шум (та звільнити більше пропускної здатності).

IP дуже схожий в основній аналогії, але він має більше функцій і шарів поверх MAC-адреси. Шари 2 та 3 у моделі OSI відповідно.


Вам не потрібно думати про попередньо переключені дні. MAC адреси живі і здорові і використовуються у кожному пакеті, який залишає ваш адаптер Ethernet сьогодні , прямо зараз.
Марк Хендерсон

Дуже правильно. Але це допомагає з аналогією. І НІК все ще ведуть себе так само.
Ренді Джеймс

2

MAC-адреса необхідна, оскільки до "шини" (мережі Ethernet) приєднано декілька адрес. Відправник повинен мати можливість ідентифікувати одержувача, а також ідентифікувати себе одержувачу.

Усі апаратні шини потребують адресації, оскільки декілька відправників та приймачів ділять однаковими проводами, а повідомлення мають надходити до конкретних приймачів, а також ідентифікувати вихідних відправників.

I2C, PCI, Ethernet, ти його називаєш.

У нас є кілька адрес у взаємодії в мережі (IP-адреса та апаратні адреси), оскільки адреса рівня апаратури є локальною лише для певної фізичної мережі. Коли дейтаграма подорожує з мережі в мережу, вона, як правило, зберігає свою мережеву адресу, але вона багато разів змінює адреси апаратних засобів. Під час переходу по деяких мережах він може взагалі не мати апаратної адреси, а в деяких інших може мати апаратну адресу, яка не є MAC Ethernet. (Звичайно, мережеві адреси можна переписати через NAT-шлюз, але апаратні адреси знімаються та замінюються різними, кожен раз, коли пакет перетинає маршрутизатор.)


1

За старих часів мережами були спільні автобуси. Кожен мережевий пристрій, підключений до одного дроту або до концентратора, що означало, що кожен надісланий вами пакет отримував кожен пристрій у мережі.

Програмне забезпечення для мереж було тоді простіше. Кожен пристрій мав MAC-адресу, яка гарантовано була унікальною. Це не потрібно було нічого іншого - все це було так, щоб жодне два пристрої в одній мережі не мали однакової адреси.

Якщо ваш пристрій захотів поговорити з іншим пристроєм, він надішле пакет з MAC-адресою одержувача, і одержувач вибере його з мережі. Усі інші пристрої ігнорували б його - це не було адресовано їх MAC-адресу.

З часом люди приєднували до мережі занадто багато пристроїв, і вони не могли бути в курсі трафіку, тому вони почали розділяти мережі і приєднали б дві мережі з комутаторами. Ці комутатори мали величезні таблиці, в яких говорилося, які MAC адреси де в кожній мережі. Якщо вони побачили пакет в одній мережі, адресований MAC-адресі в іншій мережі, вони скопіювали б повідомлення в іншу мережу. Однак вони не скопіювали б усі повідомлення, лише ті, які потребували переходу до іншої мережі.

Це зменшило перевантаженість і дозволило підключити більше пристроїв до мережі та отримати більше загального трафіку. Це мережа з комутацією пакетів .

Однак це не вирішило всіх проблем і зазнало величезного недоліку - у міру того, як таблиці комутаторів зростали, мережі сповільнювалися. Якщо ви підключили 5000 машин до 50 різних мереж, пов'язаних між собою комутаторами, кожен перемикач повинен був вивчити всі 5000 MAC-адреси та пакети маршрутів на основі цього.

Це не було великою справою, поки люди з різних установ, як-от університети, не хотіли з'єднати свої мережі разом, і потрібні таблиці були б приголомшливими. Відстеження кількох сотень тисяч MAC-адрес сьогодні не здається великою справою, але в 1970-х, коли це відбувалося, комутатори були самими комп'ютерами, з обмеженою пам’яттю та швидкістю, а також відстежували та швидко перемикали пакети на кілька сотня була проблемою.

Рішення йшло в мережу IP та за допомогою маршрутизаторів. Це побудовано поверх комутованої пакетної мережі на основі MAC-адреси. Замість сировинних даних, пакети тепер містять IP-пакет - пакет у пакеті.

Зараз більші мережі підключені до маршрутизаторів. Вони чекають, поки вони побачать пакет зі своєю MAC-адресою, потім вони виймають IP-пакет і вивчають IP-адресу. Потім вони повторно загортають IP-пакет в інший пакет із новим одержувачем MAC-адреси на ньому та надсилають його в нову мережу. Ця MAC-адреса, ймовірно, іншому маршрутизатору в новій мережі, але це також може бути машина з IP-адресою.

У сучасних мережах ви рідко бачите концентратори та шини (за винятком бездротових мереж, де цей носій є притаманним), і замість цього моя машина підключається безпосередньо до комутатора, який вони підключають до маршрутизатора.

Моя машина має різноманітні алгоритми та протоколи, тому вона знає, як налаштована мережа.

Якщо я надішлю IP-пакет на машину в моїй локальній мережі, моя машина помістить його всередині пакета з правильною MAC-адресою. Перемикачі переключать його на правильну мережу локально, і машина, якій призначено, отримає її, оскільки має правильну MAC-адресу. Це дозволить їм вийняти IP-пакет і двічі перевірити, чи призначена також IP-адреса, і діяти відповідно.

Якщо я надішлю IP-пакет, призначений для машини десь в Інтернеті, моя машина знає надсилати його до маршрутизатора, тому він поміщає його всередині пакета з MAC-адресою маршрутизатора. Він знову локально перемикається в моїй мережі, поки він не потрапить у мережу, на якій роутер увімкнений, потім маршрутизатор бере його, витягує IP-пакет, вивчає IP-пакет і, виходячи з його знань в Інтернеті, відправляє його на інший маршрутизатор на інша мережа, загорнувши її в пакет з MAC-адресою для призначеного маршрутизатора або комп'ютера призначення.

Є багато дрібних деталей, які я оглянув, і кілька справді цікавих алгоритмів та протоколів у грі, які змушують все працювати, але це основна історія того, що MAC-адреса робить для нас навіть сьогодні.


1
Ви почали добре, але втратили його посередині, де починаєте говорити про взаємопов’язані мережі. Перемикачі не були поширеними до 90-х, але маршрутизація існувала за 20 років до цього.
Марк Хендерсон

-1

Корінна різниця полягає в тому, що MAC призначається виробником під час виготовлення, тоді як IP-адреса призначається під час з'єднання.

MAC необхідний, оскільки його можна використовувати для ідентифікації пристрою перед підключенням до мережі; однак, оскільки він призначається статично, він в значній мірі розподіляється випадковим чином, тому він не підходить для ефективної маршрутизації через більш ніж одну мережу (для цього потрібно, щоб кожен пристрій на планеті мав величезну таблицю маршрутизації для всіх інших пристроїв на планеті ). Тому IP-адреса необхідна, оскільки вона призначається під час з'єднання, а спосіб її призначення дозволяє більш ефективно маршрутизувати міжміські відстані (з IP-адресою, більшість пристроїв повинні знати лише його суміжні мережі).

Якщо є лише IP-адреса, то пристрої, яким не було призначено IP-адресу, не зможуть вказати, яке повідомлення призначене для них. Як би ви визначили, що цей DHCP призначений для вас, а не хтось інший, який також вимагає призначення адреси приблизно в той же час?

Звичайно, MAC також використовується для інших частин передачі пакетів, але більшість цих застосувань є досить випадковими і можуть бути (принаймні теоретично) замінені на динамічно присвоєний номер (наприклад, IP-адресу).


+1, чому ми не просто продовжували використовувати MAC-адреси.
deed02392

3
Перший абзац технічно правильний, але це не корінна різниця. Корінна різниця полягає в тому, що MAC належить до Ethernet, а IP належить до TCP / IP. Ви можете запускати TCP / IP через декілька протоколів 2 рівня (наприклад, банкомат), і є більше, ніж просто TCP / IP, який працює над Etherhet. Немає такого поняття, як "перед підключенням до мережі", але є "Перш ніж отримати IP-адресу від DHCP". Але MAC все ще використовується після цього - оскільки він сидить на іншому шарі в моделі OSI. Останній абзац прямо невірний - у мережі не існує заміни MAC-адреси.
Марк Хендерсон

@MarkHenderson: Я мою думку про те, що MAC, що належить до Ethernet та IP до TCP / IP, - це в значній мірі історична аварія; теоретично, якби ми переробили цілий стек інтернету з нуля (і ігнорували OSI та сумісність з іншими мережами), можна було б замінити більшість застосувань заводського номера (наприклад, MAC) на динамічно призначений номер (наприклад, IP), за винятком що існує ряд пакетів, які потрібно надіслати / отримати, перш ніж можна отримати динамічно призначений номер, тому необхідний глобально унікальний ідентифікатор, призначений заводу.
Лежи Райан

@MarkHenderson: IMO, кажучи, що нам потрібні MAC і IP, тому що MAC - це шар 2, а IP - шар 3, так само, як сказати "нам це потрібно, тому що ми створили Інтернет таким чином", це не вистачає точки і не дає корисної інформації що б там не було. На що я тут відповідаю, це те, чому і заводський, і динамічно призначений ідентифікатор необхідні через характер проблеми, і що тягне за собою Інтернет-стек без будь-якого (втрата ефективності маршрутизації для відсутності динамічно призначеного ідентифікатора та складності унікальна адресація пристрою перед динамічним призначенням ідентифікатора для жодного ідентифікатора, призначеного заводу).
Лежи Райан

@LieRyan, насправді ми можемо змінити MAC- адресу нашого ПК .......
Pacerier
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.