Всем привет, мы снова встретились, я ваш друг Цюаньчжаньцзюнь.
реализуется между отправителем и каждым получателемуказать на многихНажмите сетевое подключение。
Если отправитель передает одни и те же данные нескольким получателям одновременно, ему нужно только сделать копию одного и того же пакета данных. Это повышает эффективность передачи данных. Уменьшает возможность перегрузки магистральной сети.
Разницу между одноадресной, многоадресной и широковещательной передачей можно увидеть на рисунке ниже:
При запуске ifconfig в Linux, если информация о сетевой карте содержит UP BROADCAST RUNNING MULTICAST, широковещательная и многоадресная рассылка поддерживаются.
ссылка: http://colobu.com/2014/10/21/udp-and-unicast-multicast-broadcast-anycast
Многоадресный IP-адрес используется для идентификации IP-группы multicast.
IANA (орган присвоения номеров в Интернете) выделяет адресное пространство класса D для многоадресной IP-адресации, которое находится в диапазоне от 224.0.0.0 до 239.255.255.255.
Постоянный адрес многоадресной рассылки:
Когда 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
MulticastSocket — это (UDP) DatagramSocket с дополнительной функциональностью присоединения к «группе» других хостов многоадресной рассылки в Интернете.
Вы можете присоединиться к группе многоадресной рассылки, сначала создав MulticastSocket с нужным портом, а затем вызвав метод joinGroup(InetAddress groupAddr):
Пример кода взят из:
Мониторинг через Запросы многоадресной рассылки Wireshark можно выполнять с помощью Условия фильтра ниже
(eth.dst[0]&1)
Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/167030.html Исходная ссылка: https://javaforall.cn