Я читаю о TCP / IP и других связанных протоколах и технологиях. MAC-адреса описываются как (разумно :) уникальные и имеющие большое пространство возможностей (несколько сотен триллионов), а также назначаются всем сетевым интерфейсам. Каковы исторические и технические причины использования адресов IPv4 или IPv6 вместо MAC-адресов для межсетевого взаимодействия?
Я упускаю что-то фундаментальное или это просто глупая причина (например, создание на основе устаревших технологий)?
MAC-адрес может быть уникальным, но в номере нет ничего особенного, что указывало бы на его местонахождение. MAC 00-00-00-00-00-00
может быть на другой стороне планеты от 00-00-00-00-00-01
.
IP - это произвольная схема нумерации, наложенная иерархическим образом на группу компьютеров, чтобы логически различать их как группу (вот что такое подсеть). Отправка сообщений между этими группами осуществляется с помощью таблиц маршрутизации, которые сами разделены на несколько уровней, поэтому нам не нужно отслеживать каждую отдельную подсеть. Например, 17.x.x.x
находится в сети Apple. Оттуда Apple будет знать, где расположена каждая из тысяч ее подсетей и как к ним добраться (никому больше не нужно знать эту информацию, им просто нужно знать, что все идет к Apple).
Это также довольно легко связать с другой парой систем. У вас есть государственный идентификационный номер, зачем вам почтовый адрес, если этот идентификационный номер уже уникален только для вас? Вам нужен почтовый адрес, потому что это произвольная система, которая описывает, куда вам следует направить уникальный адрес для связи.
Потому что таблицы маршрутизации станут невероятно большими.
IP-адреса распределяются иерархически, поэтому маршрутизатор может группировать маршруты по адресным префиксам. Количество автономных систем, представленных в сети сейчас, достаточно разумно, чтобы поместиться в сегодняшнее оборудование.
С другой стороны, распределение MAC-адресов по сети является случайным и совершенно не связано с топологией. Группировка маршрутов была бы невозможна, каждый маршрутизатор должен был бы отслеживать маршруты для каждого отдельного устройства, которое ретранслирует трафик через него. Это то, что делают коммутаторы уровня 2, и они не масштабируются далеко за пределами определенного количества хостов.
Мир не работает исключительно через Ethernet (по крайней мере, исторически). Уровень IP не зависит от нижележащего аппаратного уровня.
Узлы PPP не имеют адресов Mac. Также нет arcnet, token ring, fddi, hppi. Эти другие стандарты могут быть не столь актуальны сегодня, но Ethernet может быть заменен другими технологиями в будущем, и он будет прозрачным для уровня IP.
Существует более продолжительное обсуждение того, как мы продолжаем изобретать новые аппаратные протоколы и называть их Ethernet, но я отвлекся ...
В дополнение к иерархической маршрутизации IP-адресов, их отделение от MAC-адресов позволяет вам менять сетевую карту или весь компьютер, сохраняя тот же IP-адрес (и, следовательно, логическую топологию сети).
Эта абстракция позволяет создавать более гибкие и удобные в обслуживании сети.
Взгляните на Модель OSI: http://en.wikipedia.org/wiki/OSI_model
Это объясняет, почему нет смысла принимать решения, основанные на концепции уровня 3, на основе физического механизма уровня 2.
Современные сети разбиты на множество разных уровней, чтобы обеспечить непрерывное общение. Ваша сетевая карта (к которой обращается MAC-адрес [физический адрес]) должна отвечать только за связь с узлами в своей физической сети.
Связь, которую вам разрешено осуществлять с вашим MAC-адресом, будет ограничена другими устройствами, которые находятся в физическом контакте с вашей машиной. Например, в Интернете вы не подключены физически к каждой машине. Вот почему мы используем механизм TCP / IP (уровень 3, логический адрес), когда нам нужно связаться с машиной, к которой мы физически не подключены.
b0fh прав - но еще и потому, что MAC-адреса не всегда уникальны.
См., Например, в сценариях виртуализации. Здесь несколько хостов могут обслуживать виртуальные машины с одинаковыми MAC-адресами.
Таблицы маршрутизации для MAC-адресов потребуются почти каждому устройству с указанным MAC-адресом. Маршрутизация в Интернет для IP - это одна запись 0.0.0.0/0. Для классов сетей они разбиваются на 10.0.0.0/8 172.16.0.0/16 и 192.168.0.0/24. Многие из них могут быть объединены, например 172.16.0.0/12 и 192.168.0.0/16, что дополнительно уменьшит размер таблицы маршрутизации.
Маршруты ищутся в обратном порядке по количеству единиц в их маске. Это делает маршрутизацию на 192.168.100.0/24 работающей, когда есть маршрут для 192.168.0.0/16, а другой - для 0.0.0.0/0 (маршрут по умолчанию).
РЕДАКТИРОВАТЬ: Первоначально диапазон IP-адресов был разбит на несколько классов; A, B и C являются наиболее значимыми. Класс A составляет первую половину диапазона адресов, диапазон B - следующий квартал, а диапазон C - следующие восемь диапазонов. Эти классы имели маски 8, 16 и 24 бита соответственно. Позже от строгого использования этих масок отказались, и адреса были распределены по разным размерам.
Размер выделения всегда равен степени 2, и самый низкий и самый высокий адрес в каждом распределении зарезервированы. Каждое выделение также будет иметь адрес для маршрутизатора. Часто это самый низкий или самый высокий незарезервированный адрес. Наименьшее практическое выделение - это адрес / 30.
IPv6 использует ту же форму выделения с / 64 наименьшим распределением, которое может появиться в Интернете. Как правило, Интернет-провайдеру предоставляется гораздо больший объем памяти, а это все, о чем маршрутизаторы Интернета должны знать. Ожидаемые распределения указаны в RFC. Интернет-провайдеру необходимо знать, как маршрутизировать свою собственную подсеть и какие адреса маршрутизировать к каким маршрутизаторам межсоединения. Это значительно проще, чем знать, как маршрутизировать каждый MAC-адрес.
Я думаю, что основная мысль, которую они пытаются донести, заключается в том, что MAC-адреса определяются поставщиками, поэтому нет согласованной схемы адресации, которой можно было бы придерживаться в локальной подсети из-за огромного количества производителей, которые делают интерфейсы.
MAC-адреса используются, когда адрес назначения находится в локальной подсети (например, 192.168.0.x). Когда трафик не соответствует локальной подсети, компьютер обращается к таблице маршрутизации. Как правило, таблица маршрутизации сообщает любому трафику, который не соответствует локальной подсети (0.0.0.0), направляться на локальный шлюз, после чего вся принадлежность к MAC-адресам полностью удаляется. Единственный способ глобального использования MAC-адресов - это иметь одну огромную плоскую подсеть, которая была бы совершенно неработоспособной.
MAC-адрес может быть одинаковым на разных адаптерах Ethernet на одной машине. У SUN был один уникальный MAC-адрес для каждой машины. Таким образом, карты Ethernet для компьютеров SUN не имели уникального MAC-адреса, в отличие от машины.
Поэтому, когда вы подключили машину к двум разным сетям, у нее был одинаковый MAC-адрес в обеих сетях.
MAC-адреса - это адреса канального уровня (2n) в Модель ISO / OSI и Модель TCP / IP. Это означает, что MAC-адреса используются для соединения узлов внутри локальной сети (точка-точка). IP-адреса - это адреса сетевого уровня (3-го) внутри Интернета (от конца до конца).
Оба адреса используются только на своем уровне и не предназначены для использования вне его.
MAC-адрес целевого IP-адреса полезен только для доставки пакетов в пределах одного локального широковещательного домена.
Здесь люди заявили, что проблема использования MAC-адресов вместо адресов IPv4 - это маршрутизация, потому что таблицы маршрутизации будут расти, однако это предполагает наличие маршрутизаторов IPv4. Можно иметь небольшие таблицы маршрутизации, и если вам интересно, как это сделать, поищите маршрутизацию в плоском пространстве имен. Одна из статей, описывающих эту технику, такова: http://www.cs.uiuc.edu/~caesar/papers/rofl.pdf
Насколько я помню, MAC-адреса на самом деле являются адресами Ethernet. Адреса Ethernet делятся на две части: часть поставщика, которая идентифицирует продавца карты Ethernet, и часть адреса, которая назначается поставщиком. Сделать их уникальными - дело производителя.
Таким образом, 48-битное адресное пространство MAC не используется ни эффективно, ни, как уже упоминалось несколько раз выше, иерархически.
Адрес предназначен для уникальных адресов в локальной сети CSMA.
По крайней мере, насколько я помню.
IP-адреса предназначены для более широкого масштабирования и решения другой проблемы.