Многоадресная передача [легко понять]
Многоадресная передача [легко понять]

Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.

Многоадресная передача:

реализуется между отправителем и каждым получателемуказать на многихНажмите сетевое подключение。

Если отправитель передает одни и те же данные нескольким получателям одновременно, ему нужно только сделать копию одного и того же пакета данных. Это повышает эффективность передачи данных. Уменьшает возможность перегрузки магистральной сети.

Разницу между одноадресной, многоадресной и широковещательной передачей можно увидеть на рисунке ниже:

  • Одноадресная рассылка: относится к методу передачи, при котором пакеты передаются по компьютерной сети с одним адресом назначения. Сегодня это наиболее широко используемая сеть. Большинство широко используемых сетевых протоколов или служб используют одноадресную передачу, например, все протоколы на основе TCP.
  • Многоадресная рассылка: Также называется многоадресной рассылкой, Многоадресная или групповая рассылка. Относится к доставке информации группе адресов назначения одновременно. Его стратегия использования является наиболее эффективной, поскольку сообщение необходимо доставить только один раз по каждому сетевому каналу, и сообщение будет удалено только при разветвлении канала.
  • Широковещательная рассылка: относится к методу передачи, при котором при передаче пакета в компьютерной сети адресом назначения являются все устройства в сети. Фактически, упомянутые здесь «все устройства» также ограничены диапазоном, называемым «широковещательным доменом».

Определите, поддерживает ли сетевая карта многоадресную рассылку

При запуске ifconfig в Linux, если информация о сетевой карте содержит UP BROADCAST RUNNING MULTICAST, широковещательная и многоадресная рассылка поддерживаются.

ссылка: http://colobu.com/2014/10/21/udp-and-unicast-multicast-broadcast-anycast

Многоадресный IP-адрес

Многоадресный IP-адрес используется для идентификации IP-группы multicast.

IANA (орган присвоения номеров в Интернете) выделяет адресное пространство класса D для многоадресной IP-адресации, которое находится в диапазоне от 224.0.0.0 до 239.255.255.255.

  • 224.0.0.0~224.0.0.255 — зарезервированные адреса многоадресной рассылки (постоянные групповые адреса), адрес 224.0.0.0 зарезервирован и не выделен, а остальные адреса используются протоколами маршрутизации;
  • 224.0.1.0~224.0.1.255 являются общедоступными адресами многоадресной рассылки и могут использоваться в Интернете;
  • 224.0.2.0~238.255.255.255 — это адрес многоадресной рассылки (временный групповой адрес), доступный пользователям и действительный во всей сети;
  • 239.0.0.0~239.255.255.255 — это адреса многоадресной рассылки локального управления, которые действительны только в пределах определенного локального диапазона. ссылка:http://baike.baidu.com/view/492256.htm

Постоянный адрес многоадресной рассылки:

  • Базовый адрес 224.0.0.0 (зарезервирован)
  • 224.0.0.1 Адреса всех хостов (включая адреса всех маршрутизаторов)
  • 224.0.0.2 Адрес всех многоадресных маршрутизаторов
  • 224.0.0.3 не выделен
  • 224.0.0.4 dvmrprouter
  • 224.0.0.5 все маршрутизаторы OSPF
  • 224.0.0.6 ospf DR/BDR
  • 224.0.0.7-й роутер
  • 224.0.0.8-й хост
  • Маршрутизатор 224.0.0.9 рип-2
  • 224.0.0.10 Маршрутизатор Eigrp
  • 224.0.0.11 Активный агент
  • 224.0.0.12 DHCP-сервер/агент ретрансляции
  • 224.0.0.13 все маршрутизаторы PIM
  • 224.0.0.14 инкапсуляция RSVP
  • 224.0.0.15 все cbt роутеры
  • 224.0.0.16 указывает сбм
  • 224.0.0.17 все сбмс
  • 224.0.0.18 vrrp

Когда Ethernet передает одноадресные IP-сообщения, MAC-адрес назначения использует MAC-адрес получателя. Однако при передаче многоадресных сообщений местом назначения передачи больше не является конкретный получатель, а группа с неопределенными членами, поэтому используется многоадресный MAC-адрес.

Mac-адрес многоадресной рассылки соответствует IP-адресу многоадресной рассылки. IANA (авторитет присвоения номеров в Интернете) предусматривает, что старшие 24 бита многоадресного MAC-адреса — это 0x01005e, а младшие 23 бита MAC-адреса — это младшие 23 бита многоадресного IP-адреса. Поскольку только 23 из последних 28 бит IP-адреса многоадресной рассылки сопоставлены с MAC-адресом, одному и тому же MAC-адресу будет сопоставлено 32 IP-адреса многоадресной рассылки.

механизм членства в группе

Чтобы точно отправлять данные многоадресной рассылки членам группы, необходимо сначала определить, какие хосты и в каких сетях являются членами группы. Только определив расположение участников, вы сможете правильно пересылать многоадресную рассылку. Когда членам группы больше не нужно получать многоадресные рассылки, они должны прекратить отправку многоадресных рассылок членам. Чтобы определить, что членам группы больше не нужно получать многоадресные рассылки, отправитель должен быть явно уведомлен о выходе участников. Определить членство в группе можно двумя способами: запросом и отчетом.

Запрос означает, что маршрутизатор отправляет в сеть сообщение с запросом, хочет ли хост присоединиться к группе. Если хост отвечает, маршрутизатор может запросить вышестоящий маршрутизатор перенаправить многоадресный трафик в эту подсеть. Если ни один хост не отвечает, тогда. запросите восходящий маршрутизатор прекратить пересылку на него многоадресного трафика.

Согласно отчету, хосту не нужно ждать запроса маршрутизатора, он может заранее запросить маршрутизатор о присоединении к определенной группе. При выходе он также должен отправить маршрутизатору сообщение о выходе, чтобы запретить маршрутизатору пересылать многоадресный трафик. к этому.

В сети для определения членов группы необходимо использовать протокол IGMP (протокол управления группами Интернета). IGMP работает между маршрутизаторами и хостами, поскольку, когда отправитель многоадресной рассылки и члены группы используются разные сети, Маршрутизатор необходим для пересылки многоадресных данных. Затем маршрутизатор должен подтвердить, есть ли члены группы в сети с прямым подключением. Он может использовать запросы и отчеты для обнаружения членов группы, которые могут выполнить такую ​​работу.

ссылка:http://www.china-ccie.com/ccie/lilun/Multicast/Multicast.html

Время жизни многоадресного пакета

Когда вы отправляете сообщение в группу многоадресной рассылки, все предполагаемые получатели для этого хоста и порта получат сообщение (в течение срока действия пакета, см. ниже). Сокет не обязательно должен быть членом группы многоадресной рассылки, чтобы отправлять ему сообщения.

Большинство многоадресных пакетов имеют низкий TTL: все IP-пакеты имеют «время жизни» или TTL. В отличие от записей DNS, TTL определяет максимальное количество раз, которое пакет должен пройти через сеть, прежде чем достигнет пункта назначения. Одноадресным пакетам обычно разрешается проходить через 30 сетей (т. е. маршрутизироваться или «перепрыгивать» через 29 маршрутов), а прохождение сети обычно занимает менее 15 «прыжков», поэтому ограничение в 30 часто используется, когда сеть плохо настроена. Убить пакет данных. Однако многие программы при многоадресной рассылке устанавливают для TTL очень низкое значение, обычно 0 (чтобы сообщение не покидало собственное устройство).

Установка значения 1 означает, что он может отправлять сообщения только на компьютеры в локальной сети, а установка значения 2 означает, что он может проходить только по одному маршруту. Существует очень мало приложений, которые хотят отправлять многоадресные рассылки на неизвестные устройства во всей сети кампуса, не говоря уже о всей сети.

На многих маршрутах установлены высокие пороговые значения TTL. Многие сетевые маршрутизаторы, особенно маршруты WAN и маршруты интернет-шлюзов, имеют высокие пороговые значения TTL, поэтому они не будут отправлять многоадресные пакеты с низким TTL (например, 15). Это предотвращает утечки многоадресной рассылки из локальной сети.

Маршрутизаторы обычно настроены так, чтобы вообще не отправлять многоадресные рассылки, отправлять только определенные адреса или блокировать многоадресные пакеты.

Всякий раз, когда многоадресный маршрутизатор пересылает многоадресный пакет, значение TTL в пакете уменьшается на 1. Если TTL пакета уменьшается до 0, маршрутизатор отбрасывает пакет. Значение TTL определяет максимальное количество маршрутизаторов многоадресной рассылки, через которые могут проходить данные многоадресной рассылки. Например, если значение TTL равно 0, многоадресная рассылка может распространяться только между несколькими сокетами локального хоста, но не может распространяться на «сетевой кабель», если значение TTL равно 1 (значение по умолчанию), многоадресные данные встречаются с сначала маршрутизатор будет «безжалостно» им отброшен и не будет допущен к передаче за пределы локальной сети, то есть только члены группы мультикаста внутри одной сети смогут получать мультикаст-данные.

JavaЭта часть документассылка:http://udn.yyuap.com/doc/jdk6-api-zh/java/net/MulticastSocket.html

Пример многоадресной рассылки Java

MulticastSocket — это (UDP) DatagramSocket с дополнительной функциональностью присоединения к «группе» других хостов многоадресной рассылки в Интернете.

Вы можете присоединиться к группе многоадресной рассылки, сначала создав MulticastSocket с нужным портом, а затем вызвав метод joinGroup(InetAddress groupAddr):

Пример кода взят из:

http://colobu.com/2014/10/21/udp-and-unicast-multicast-broadcast-anycast/#0-tsina-1-67000-397232819ff9a47a7b7e80a40613cfe1

Мониторинг через Wireshark

Мониторинг через Запросы многоадресной рассылки Wireshark можно выполнять с помощью Условия фильтра ниже

Язык кода:javascript
копировать
(eth.dst[0]&1) 

Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/167030.html Исходная ссылка: https://javaforall.cn

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose