Чи можу я створити мережу Ethernet без використання IP-адреси


14

Як я розумію з моделі ISO-OSI, MAC-адреси працюють на іншому шарі, ніж IP-адреси. Це мені зрозуміло.

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


Мої запитання такі:

  1. Не вдалося Ethernet використовувати IP-адреси для надсилання повідомлень? Я не кажу, що це повинно, я просто запитую, чи міг би це зробити.
  2. Оскільки Ethernet використовує MAC-адреси для зв'язку, чи можу я створити мережу Ethernet, де пристрої не мали б IP-адреси, а лише MAC-адресу?

За визначенням, мережа Ethernet - це мережа, де пристрої не мають IP-адрес. Мережа TCP / IP, як ви зазначаєте, - це зовсім інша річ, і IP не байдуже, чи працює вона над IEEE 802.3, 802.11 або 802.5.
miken32

Відповіді:


5

Чи міг Ethernet використовувати IP-адреси замість власних адрес рівня-посилання даних? Звичайно, ні, якщо він хотів бути агностиком щодо того, який протокол шару-3 він використовував.

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

Спочатку Ethernet був розроблений Боб Меткалфе та ін. В Xerox PARC, щоб бути агностиком на мережевому рівні, оскільки їх мета була не лише доступом до TCP / IP, але і для власного стека / набору протоколів Xerox мережевих мереж.

DEC (Digital Equipment Corporation) стала ще одним раннім користувачем, використовуючи його в першу чергу для їх стеки / пакету протоколів DECnet.

В кінці 80-х - на початку 90-х було багато конкуруючих наборів протоколів LAN (усі повністю незалежні від TCP / IP), що працювали на корпоративних мережах Ethernet. Крім XNS та DECnet, були AppleTalk Apple (EtherTalk), IPX Novell, Banyan VINES, NetBEUI, DLC / LLC, IBM SNA, OSI / ISO та інші, які я забув.

Отже, так, ви можете використовувати Ethernet без IP-адреси. Багато корпоративних мереж робили це у 80-х та 90-х.

Оскільки Ethernet був розроблений так, щоб не було байдуже, який протокол Layer-3 (Network Layer) працює на ньому, цим корпоративним локальним мережам було досить легко підтримувати суміші різного обладнання постачальників, і для цих локальних мереж було досить легко додати IPv4 підтримка, коли Інтернет вийшов з середини до кінця 90-х, і нам було відносно легко додати підтримку IPv6.


1
Дякуємо, що надали відповідь, у якій ви ставите речі в контекст! Хочеться, щоб ви трохи розширили і другу частину запитання. Чи можна було б створити робочу мережу на базі Ethernet без використання протоколів мережевого рівня? Якщо я встановлюю перехресне кабельне з'єднання Ethernet до іншого хоста, чому мені потрібно використовувати IP-адреси для зв'язку з цим хостом? Чи можна використовувати TCP через MAC замість TCP через IP?
jj_

4

Оскільки Ethernet використовує MAC-адреси для зв'язку, чи можу я створити мережу Ethernet, де пристрої не мали б IP-адреси, а лише MAC-адресу?

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

Як правило, MAC-адреси у вашій мережі не відповідають жодній схемі. Вони випалюються в апараті виробником. Вони довгі і об'ємні. Зараз у мене шахта C8-60-00-CA-4B-9A. Комп'ютер поруч зі мною 00-40-F4-48-1B-88.

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

Це величезна проблема, тому ви, мабуть, придумаєте спосіб, коли машини в мережі автоматично відкриють MAC-адреси один одного, використовуючи широкомовні пакети. Тоді ви дасте їм спосіб ідентифікувати себе з якоюсь значущою адресою, тому вам доведеться вводити команди типу "telnet C8-60-00-CA-4B-9A".

Виявляється, це саме те, що робить IP - це спосіб використовувати значущі числа для адреси хостів у мережі, а не жорстке кодування MAC-адрес. Додайте в DNS поверх IP-адреси, і ви можете ввести команду типу "веб-сервер telnet".

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

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

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

Для того, щоб це фактично працювало, далі вам також доведеться зламати код у вашому мережевому стеку, щоб фактично використовувати цю систему. В основному ви вирвете все, що стосується ARP (метод IP використовує для перекладу IP-адрес у MAC-адресу). Ви вирвете частини, які створюють / читають заголовки IP. Замість цього, ви заміните все це дуже простим кодом, який, даючи пакет IP, який буде надісланий хосту за адресою wxyz, будує Ethernet-кадр з адресою DEST, встановленою на 00-00-wxyz.

Вам також знадобиться спосіб вказати одержувачеві пакету, для якого протоколу (UDP, TCP) він призначений. Ви, ймовірно, могли вставити це десь у заголовку Ethernet, замінивши наявне поле. Може використовувати один із перших двох байтів вихідної адреси? Це не вплине на можливість призначення машин прийому, але може зіпсувати деякі комутатори. Ви також можете додати протокол до початку або в кінці кадру Ethernet і збільшити розмір корисної навантаження на одну - але це починає пахнути IP-заголовком.

То що б у вас все це працювало?

По-перше, це заощадить накладні витрати на пошук у таблиці ARP на кожному вихідному пакеті. Це, мабуть, порядку лише мікросекунд.

Ви зберігаєте роботу обчислень контрольних сум заголовків IP та пам'яті, необхідної для їх зберігання. Це, мабуть, не суттєво для сучасного обладнання.

Ви зберігаєте 16 байт у кожному пакеті мережі, оскільки не було б заголовків IP. Це може скластися залежно від програми.

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

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


1

Не вдалося Ethernet використовувати IP-адреси для надсилання повідомлень? Я не кажу, що це повинно, я просто запитую, чи міг би це зробити

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

Оскільки Ethernet використовує MAC-адреси для зв'язку, чи можу я створити мережу Ethernet, де пристрої не мали б IP-адреси, а лише MAC-адресу?

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

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


0
> Couldn't Ethernet make use of IP addresses to send messages? I'm not
> saying it should, I'm just asking if it could have chosen to do so.

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

> As Ethernet uses MAC addresses for communication, could I create an
> Ethernet network where devices would not have an IP address, just a
> MAC address?

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

Від WikiPedia , Транспортний рівень контролює надійність заданої ланки через контроль потоку, сегментацію / десегментацію та контроль помилок. Деякі протоколи орієнтовані на стан та з'єднання. Це означає, що транспортний шар може відслідковувати сегменти і повторно передавати ті, що виходять з ладу. Транспортний рівень також забезпечує підтвердження успішної передачі даних і передає наступні дані, якщо помилок не сталося.

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


MAC-адресу, безумовно, можна змінити. Мій (давно померлий) ПК протягом багатьох років використовував MAC зі зламаної картки Ethernet, оскільки мій провайдер ADSL прив’язав її та зарядив її змінити (а також зайняло кілька днів).
vonbrand

0

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

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

Якщо ви хочете такі речі, як обмін повідомленнями 1: 1, вам знадобиться ще один протокол поверх кадрів Ethernet, щоб обробляти все це для вас. Для цього часто використовується протокол "точка до точки" (PPP), через Ethernet це відоме як PPPoE. PPPoE дає вам автентифікацію та шифрування, як дуже хороші ідеї в широкомовної мережі.

Але без якоїсь форми інформації про маршрутизацію ви можете спілкуватися лише з вузлами в локальній мережі. Як тільки ви почнете використовувати інформацію про маршрутизацію для передачі повідомлень (наприклад, в Інтернет), вам потрібна певна форма протоколу маршрутизації, наприклад, IP або IPX. І ви, ймовірно, хочете також контролювати передачу (TCP) ...


0

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

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

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

IP або Інтернет-протокол та Ethernet вирішують різні проблеми: Ethernet забезпечує зв’язок на рівні локальної мережі та лише в одній локальній мережі, він не переймається тим, до яких інших мереж LAN може бути підключений через маршрутизатор. В той час, як ІР стосується роботи в Інтернеті і, таким чином, є LAN-агностиком. Отже, чи міг Ethernet використовувати IP-адреси замість MAC-адрес? Звичайно, але це насправді нічого не отримує від вас, оскільки ці повідомлення все одно обмежуватимуться локальною мережею.

Як відповідь на ваше друге запитання, така ситуація існує в різний час у локальній мережі Ethernet, яка використовує протокол конфігурації динамічного хоста (DHCP) для розподілу IP-адреси. Коли новий хост підключиться до локальної мережі, він не має IP-адреси, тому він відправляє широкомовний Ethernet-кадр на всі пристрої та чекає відповіді від DHCP-сервера. На даний момент клієнт не знає ні MAC-адреси сервера DHCP, ні його IP-адреси, отже, трансляцію. Отримавши запит, сервер тепер знає MAC-адресу клієнта, і тому він може правильно адресувати відповідь.

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