Если у моего компьютера есть IP-адрес, зачем ему MAC-адрес?
Если у моего компьютера есть IP-адрес, зачем ему MAC-адрес?
Ответы:
не вдаваясь в модель OSI, уровень TCP и т.д .:
Когда-то были созданы сети: некоторые компьютеры общались друг с другом, чтобы что-то делить. Чтобы сделать это, им нужно знать, с кем разговаривали, а с кем разговаривали. Таким образом, вместо того, чтобы дать каждому компьютеру имя, мы дали им идентификатор. Этот идентификатор называется MAC-адресом, он должен однозначно идентифицировать каждый компьютер.
(Хорошо, определите каждую сетевую карту, но в то время вы могли подумать один MAC-адрес для каждого компьютера).
Не было уникальной спецификации того, как компьютеры будут общаться друг с другом: появилось много протоколов: TCP / IP, IPX / SPX и так далее. Каждый протокол будет определять вещи, как они думали, было в порядке. Например, IPX / SPX будет обращаться к каждому компьютеру, используя MAC-адрес и некоторую дополнительную информацию.
Но протокол TCP / IP был разработан немного по-другому: они решили, что иметь виртуальный адрес, состоящий из 4 байтов (от 0.0.0.0 до 255.255.255.255), было достаточно, и им было еще проще управлять: не имеет значения, все ваши сетевые карты имеют одинаковый MAC-адрес или нет, мы сгруппируем наш компьютер так, чтобы все TCP / IP-адреса, которые начинались с 10.0.xx, были частью технической группы, а те из 10.1.xx - принтерами, и. ..
Таким образом, если TCP / IP-адрес должен соединяться с другим, он просто использует TCP / IP-адрес. Но сетевые устройства должны знать, на какую сетевую карту отправляется это сообщение, поэтому они каким-то образом преобразуют адрес TCP / IP в MAC-адрес.
Почему бы просто не устранить MAC и использовать только TCP / IP?
несколько причин:
MAC-адреса и IP-адреса работают на разных уровнях набора интернет-протоколов . MAC-адреса используются для идентификации машин в одной широковещательной сети на уровне 2, а IP-адреса используются на уровне 3 для идентификации машин в разных сетях.
Даже если у вашего компьютера есть IP-адрес, ему все равно нужен MAC-адрес, чтобы найти другие машины в той же сети (особенно маршрутизатор / шлюз для остальной части сети / интернета), поскольку каждый уровень использует нижележащие уровни. На упомянутой ранее странице вы можете найти несколько хороших диаграмм, подробно объясняющих набор протоколов.
Когда вы поймете, что IP-IP-связь - это на самом деле просто последовательность MAC-MAC-коммуникаций, происходящих на каждом маршрутизаторе, вы поймете, почему оба необходимы.
IP-заголовок пакета, покидающего вашу рабочую станцию и предназначенный для IP-адреса в другой подсети, будет поддерживать исходный IP-адрес и IP-адрес назначения, на данный момент забывая о NAT. [Позже я расскажу о том, что происходит, когда пункт назначения находится в той же подсети.] Заголовок Ethernet содержит ваш MAC-адрес источника и MAC-адрес назначения вашего шлюза по умолчанию. С вашей точки зрения нет никаких сведений о конечном MAC-адресе назначения. Этот первый маршрутизатор будет перезаписывать исходный MAC-адрес для себя, а конечный MAC-адрес - для следующего перехода маршрутизатора и т. Д. До тех пор, пока пакет не поступит на последний маршрутизатор, который напрямую подключен к подсети назначения.
Чтобы сделать простую иллюстрацию, рассмотрим заголовки L2 / L3, когда пакет перемещается из исходного IP (sIP) в IP назначения (dIP), а MAC источника и назначения перезаписываются по пути - fs = first-source и ld = last-destination, а r1-r3 - маршрутизаторы:
fsMAC-r1MAC / sIP-dIP
r1MAC-r2MAC / sIP-dIP
r2MAC-r3MAC / sIP-dIP
r3MAC-ldMAC / sIP-dIP
Любые задействованные коммутаторы L2 не будут изменять MAC-адреса.
Теперь для связи с другим IP-адресом в вашей подсети необходима прямая связь MAC, но для получения этого MAC-адреса требуется протокол ARP, который использует широковещательную передачу в подсети, чтобы найти его. Кстати, именно так ваша рабочая станция получает MAC-адрес шлюза по умолчанию, который должен существовать в вашей подсети.
MAC
это то , что передает сообщение от одного прыжка к другому, в то время как IP отслеживает исходный источник и назначение. Это похоже на почтовое отделение, где я адресую свое письмо бабушке в Фениксе, но почтальон, который забирает его из почтового ящика, заботится только о том, чтобы доставить его в почтовое отделение, а почтовое отделение - только о том, чтобы доставить его в сортировку. центр и т.д ...
Ничто не мешает вам спроектировать сеть, в которой есть только IP-адреса для L2 и L3. Затем «коммутатор Ethernet» изучит SIP-адрес входящих пакетов и перенаправит его на DIP-адрес.
Однако эта сеть будет поддерживать IP только тогда, когда появится следующее поколение IPvX, оно не будет работать, так как «коммутатор Ethernet» не может поддерживать этот протокол. Вы также не могли запускать различные другие протоколы, такие как IPX и AppleTalk, или какой-то новый протокол, который вы разрабатываете и тестируете у себя дома.
Уровни абстракции увеличивают скорость разработки и стимулируют инновации, поскольку вам не нужно перестраивать весь дом, чтобы изменить окно.
Теперь вы могли бы запустить те же коммутаторы Ethernet и перенести вашу сеть между IPX на IPv4 на IPv6, не затрагивая вашу локальную сеть.
IP-адрес и MAC-адрес служат различным (но важным) целям:
MAC-адрес получает кадр от одного сетевого адаптера к следующему. IP-адрес получает пакет с одного компьютера на сервер
Итак, учитывая следующее:
Source Computer <---> RouterA <---> RouterB <---> Destination Server
То, что направляет пакет от «источника» к «месту назначения», - это IP-адрес. Но то, что получает пакет от исходного компьютера к RouterA, а затем от RouterA к RouterB, а затем от RouterB к месту назначения, это MAC-адреса.
Вы можете видеть отношения на этой иллюстрации:
Протокол IP обеспечивает основу для поддержки понятия подсетей и маршрутизации . Это означает, что IP не предполагает, что ваш пункт назначения находится в той же сети - если это не так, ваш трафик должен быть перенаправлен через промежуточное устройство, такое как маршрутизатор. IP имеет поля TTL / Hop Limit и такие, которые поддерживают это.
Ethernet предполагает, что конечный MAC-адрес напрямую доступен, когда данные отправляются из его интерфейса. Первоначально Ethernet был разработан, когда наиболее распространенный способ подключения компьютеров в сети - это топология физической шины. Несмотря на то, что почти весь трафик проводного Ethernet теперь коммутируется, логически он все еще работает как топология шины. Таким образом, основное предположение для Ethernet состоит в том, что узел с MAC-адресом назначения физически находится в той же сети. Там нет такого предположения с IP.
Я полагаю, что вы могли бы «взломать» Ethernet для создания подсетей и маршрутизации, но вы могли бы также разработать протокол, который не основывается на низкоуровневых деталях и предположениях Ethernet, и именно поэтому у нас есть IP.
Чтобы быть максимально простым:
Mac Address является физический или виртуальный адрес вашей сетевой карты или сетевого интерфейса. С точки зрения компьютера, это физический адрес сетевой карты этого компьютера. Он используется для передачи информации на этот компьютер на уровне 2 модели OSI.
IP - адрес требуется на уровне 3. Вы требуете , чтобы взаимодействовать с компьютерами в разных подсетях и devices.The IP Address проверяет « где» устройство находится в сети.
В IP - адрес и MAC - адрес используются в тандеме. Протокол разрешения адресов используется, чтобы связать их вместе путем преобразования IP-адресов в адреса Mac на канальном уровне в одной сети.
Вы также можете проверить здесь для более подробного объяснения.
MAC-адрес представляет собой аппаратные единицы, которые он собрал, он постоянен, и различные системы в нашей сети, изготовленные различными поставщиками, имеют очень разный диапазон адресов Mac, поэтому их трудно организовать как сеть. Но используя IP-адреса, мы можем расположить устройства в нашем сеть в arange, которая является одновременными адресами. Также мы не можем отправлять наши MAC-адреса во внешние сети
Начнем с того, что это очень хороший вопрос, затрагивающий основные основы сети. Суть в том, что нам не нужен MAC-адрес для обеспечения возможности подключения. Теоретически, сеть может быть построена с использованием только IP-адресов! Однако некоторые практические трудности могут возникнуть из-за использования такой схемы. Если вы планируете вручную назначить IP-адрес каждому сетевому устройству, вы можете избежать основных ловушек. Однако, если вам нужно автоматически назначать IP-адреса, например, когда слишком много сетевых узлов для администрирования вручную, нет никакого способа убедиться, что каждому узлу присвоен только один IP-адрес или заранее определенное их количество, потому что вы не может отличить одно от другого, если только объект распределения адресов не может однозначно и однозначно идентифицировать запрашивающее устройство, например по его MAC-адресу, который считается уникальным для любого устройства в локальной сети. Такое неидентифицируемое устройство может многократно запрашивать дополнительные IP-адреса и, в конечном итоге, наносить ущерб жизнеспособности сети. Возвращаясь к этой теме, все, что вам нужно для создания сети, работающей только по IP, - это позволить канальному уровню адаптера сетевого интерфейса проходить через любой фрейм данных, который он получает, непосредственно к сетевому уровню, независимо от типа сопоставимого MAC-адреса, где он может фильтроваться по IP-адресу назначения, а не на уровне данных. Просто чтобы проиллюстрировать концепцию, предположим, что сеть создается путем соединения портов UART RS-232: в этом случае устройства UART не имеют MAC-адресов или каких-либо других уникальных идентификаторов, однако вы можете построить локальную сеть, используя UART и IP-адреса. в одиночестве, при условии установки соответствующих драйверов UART. Надеюсь, что этот отрывок дал вам некоторое представление о предмете.