Как MAC-адреса, найденные в пакетах Ethernet, связаны с пакетами TCP / IP? - PullRequest
0 голосов
/ 28 декабря 2018

Я занимался в лаборатории и написал программу на C, которая читает все AF_PACKET SOCK_RAW пакеты, то есть кадры Ethernet уровня 2 OSI.Программа записывает содержимое заголовка Ethernet (MAC-адреса), заголовка IP, заголовка TCP и т. Д.

Это подняло вопрос - если уровень Ethernet является самым низким перед физическим уровнем, какMAC-адреса разрешены на уровне ниже уровня IP-адреса?Например, если моя машина в Калифорнии отправляет пакеты TCP / IP на ваши в Нью-Йорке, соответствуют ли MAC-адреса в заголовках Ethernet нашим фактическим MAC-адресам или только MAC-адресам между нашими отдельными компьютерами и их соответствующими маршрутизаторами?

Мне известно, что есть транзакция, в которой машина идентифицирует себя через MAC-адрес маршрутизатора и получает IP-адрес, но каждый отдельный пакет Ethernet имеет MAC-адрес источника и назначения, и я запутался в том, чтос какими машинами соотносятся эти MAC-адреса, потому что моя машина не может иметь MAC-адрес вашей машины до того, как сначала свяжется с вашей машиной по IP-адресу.

1 Ответ

0 голосов
/ 29 декабря 2018

Они просто не связаны.MAC-адрес обычно поставляется с аппаратным устройством, и IP-адрес выбирается сетевым администратором (или сетевым провайдером).

Для преобразования одного в другой используются два сетевых протокола:

  • ARP ((A) ddress (R) esolution (P) rotocol) - протокол обязательной реализации почти в каждой установке на основе Ethernet.Это позволяет вам получить соответствующий MAC-адрес для IP-адреса локальной сети высокого уровня.Он основан на широковещании и обычно используется, когда вы не знаете (пока) сетевой адрес хоста, подключенного к локальной сети.Для удаленных хостов вам не нужен их mac-адрес, но адрес шлюза, который направляет пакеты к этим целям.
  • RARP ((R) everse ARP) устанавливается не так часто.Это позволяет получить IP-адрес от MAC-адреса.Обычно это реализуется в сетях, где реализована автоматическая настройка.Обычно вы используете его для получения вашего собственного IP-адреса (обычно есть простой способ получить ваш аппаратный MAC-адрес, но не существует такого простого способа получить ваш IP-адрес, если вы не сохранили его в постоянном хранилище)Этот протокол используется очень редко, так как он был заменен протоколами DHCP или BOOTP, которые позволяют не только получать IP-адрес, но и больше параметров.

R / ARP обычно работает так же(оба протокола): запрашивающий хост транслирует пакет запроса с известной частью заполненного отображения, а неизвестная часть не заполнена в локальную сеть, и хостом, который имеет запрошенный адрес (или сервер (ы) в случае RARP, какэтот протокол используется в целях конфигурации) отвечает на запрос.

Чтобы не использовать этот дорогостоящий протокол (широковещательная рассылка перемещает большую активность в сети, поскольку обычно все узлы получают уведомление о широковещательной рассылке и делают некоторыеобработка от его имени) клиентское программное обеспечение ARP обычно поддерживает кеш-таблицусопоставление между MAC-адресами и IP-адресами, что позволяет избежать повторной трансляции в случае, если запись активна (записи имеют время для прямой записи, поэтому их необходимо обновить, обычно 15 минут).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...