Короче говоря, нет ... вам не нужны IP-адреса для подключения компьютеров в одной сети. Есть несколько примеров таких протоколов, как: IPX или Banyan.
Проблема с использованием аппаратных адресов лучше всего описывается так:
Представьте на мгновение, что компьютеры - это люди в комнате ... (все приклеены к одному месту и не могут передвигаться) Если Боб хочет поговорить с Сьюзи ... он кричит "Эй, Сьюзи" ... и Сьюзи отвечает ... и начинается разговор. Отлично верно? Конечно ... в небольшом масштабе это работает довольно хорошо и фактически регулярно используется в некоторых сетевых протоколах между двумя (или несколькими) устройствами. (Многие протоколы с высоким I/O используют не IP
протоколы, потому что они намного "проще" и точно настроены для этой задачи.) Интернет (как мы его знаем сегодня) - это не просто 2 ... или несколько человек, говорящих друг с другом напрямую. Интернет буквально МИЛЛИАРДЫ устройств. Если бы они все были помещены в одну "комнату" (сегмент сети) ... Представь, что случится, если Боб захочет поговорить с Сьюзи. Боб будет кричать "Эй, Сьюзи!"... и голос Боба будет потерян в толпе. (Строительство комнаты для МИЛЛИАРДОВ людей одинаково смешно.)
По этой причине сети segmented
на "меньшие комнаты", которые позволяют людям, находящимся в одном и том же segment
(комнате), общаться напрямую друг с другом, но людям за пределами комнаты необходим какой-то router
для передачи сообщений из одной комнаты в Следующая комната. Но огромное количество комнат означает, что вам нужна какая-то схема адресации, чтобы различные routers
в середине знали, как передать сообщение от Боба к Сьюзи. С помощью протокола IP они назначают subnet
для каждой "комнаты", а маршрутизаторам говорят, как передать сообщение из одной комнаты в другую. Например, если адрес Боба - 1.1.1.1, адрес Сьюзи - 2.2.2.2, а subnet
Боба - 1.1.1.0/24 (это означает, что первые 3 байта его адреса должны совпадать, чтобы он находился в его комнате), Боб должен передать его сообщение router
чтобы его можно было передать в "комнату Сьюзи" *. Боб знает, что его router
- 1.1.1.2, поэтому он передает сообщение router
, и маршрутизатор передает его другим маршрутизаторам посередине, пока сообщение не будет передано маршрутизатору Сьюзи в 2.2.2.1, который передает сообщение непосредственно Сьюзи. ... и Сьюзи может отправить ответ Бобу таким же образом.
Компьютеры в одной и той же subnet
действительно взаимодействуют друг с другом напрямую, используя MAC-адрес. На самом деле он начинается с отправки запроса ARP
(ARP = Address Resolution Protocol), что означает, что он выкрикивает: «У кого есть адрес XXXX?«... и тот, кто имеет этот адрес, отвечает, и с этого момента они продолжают напрямую общаться друг с другом.
(Я могу продолжить эту аналогию и объяснить гораздо больше о том, как работает Интернет, если вы действительно заинтересованы.)