1

В одной из программ, которые я пишу, мне нужно найти несколько хостов в сети. Я не знаю, сколько их будет, и возможно, что сеть будет больше, чем класс C.

Кто-то предложил мне посмотреть трансляцию на уровне MAC, но при поиске в Google информации не так много. Может кто-нибудь объяснить, как это работает или где я могу найти больше информации об этом?

1 ответ1

3

В сети у вас есть уровни модели OSI:

  1. физический
  2. Канал передачи данных (уровень MAC)
  3. Сеть (уровень IP)
  4. Транспорт (уровень TCP)
  5. и т.п.

Уровень канала передачи данных и уровень сети оба разбиты на сегменты вашим маршрутизатором. Это означает, что вы можете осуществлять широковещательную рассылку всем хостам в вашей VLAN (обычно в одной подсети) на уровне 2 или 3. Например, если у вас есть 4 компьютера, подключенных к одному коммутатору в одном и том же vlan, и в диапазоне IP 192.168.1.0/24 вы можете отправить пакет, который будет транслироваться на все 4 компьютера, одним из следующих способов:

  • Уровень 2: Отправить фрейм по MAC-адресу ff: ff: ff: ff: ff: ff
  • Уровень 3. Отправка IP-пакета на IP-адрес 192.168.1.255.

Если вы планируете использовать TCP или UDP, я бы пошел с трансляцией уровня 3. Если вы планируете подключаться к компьютерам, у которых нет IP-адресов, перейдите на второй уровень.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .