Андрей Смирнов
Время чтения: ~20 мин.
Просмотров: 0

Сети для самых маленьких. часть девятая. мультикаст

Теория Broadcast Receivers

Широковещательные приемники — это компоненты в вашем приложении Android, которые прослушивают широковещательные сообщения (или события) из разных точек:

  • Из других приложений
  • Из самой системы
  • Из вашего приложения

Это означает, что они вызываются, когда происходит определенное действие, которое они запрограммированы на прослушивание, например, трансляция (broadcast).

  • Неявная широковещательная трансляция (implicit broadcast) — это такая, которая не предназначена специально для вашего приложения, поэтому она не является эксклюзивной для вашего приложения. Чтобы зарегистрироваться, вам нужно использовать IntentFilter и объявить его в своем манифесте. Вы должны сделать все это, потому что операционная система Android просматривает все объявленные фильтры намерений (IntentFilter) в вашем манифесте и проверяет, есть ли совпадение. Из-за этого поведения неявные широковещательные сообщения не имеют целевого атрибута. Примером неявной трансляции может быть действие входящего SMS-сообщения.
  • Явная трансляция (explicit broadcast) — это то, что предназначено специально для вашего приложения на заранее известном компоненте. Это происходит из-за атрибута target, который содержит имя пакета приложения или имя класса компонента.

Есть два способа объявить приемник:

1.Объявив его в файле AndroidManifest.xml с тегом <receiver> (также называемый статическим способом):

AndroidManifest.xml

<receiver android:name=».YourBrodcastReceiverClass» android:exported=»true»>
<intent-filter>
<!— The actions you wish to listen to, below is an example —>
<action android:name=»android.intent.action.BOOT_COMPLETED»/>
</intent-filter>
</receiver>

1
2
3
4
5
6

<receiver androidname=».YourBrodcastReceiverClass»androidexported=»true»>

<intent-filter>

<!—The actions you wish tolisten to,below isan example—>

<action androidname=»android.intent.action.BOOT_COMPLETED»>

<intent-filter>

<receiver>

Вы заметите, что заявленный широковещательный приемник имеет свойство exported = ”true”. Этот атрибут сообщает получателю, что он может принимать широковещательные сообщения вне области приложения.

2. Или динамически путем регистрации экземпляра с помощью registerReceiver (так называемый зарегистрированный контекст):

public abstract Intent registerReceiver (BroadcastReceiver receiver,
IntentFilter filter);

1
2

publicabstractIntent registerReceiver(BroadcastReceiver receiver,

IntentFilter filter);

Пример II

IGMP

IGMP — Internet Group Management Protocol1.IGMP Membership Report2.(*, 224.2.2.4)(172.16.0.5, 224.2.2.4)OIL — Outbound Interface Listshow ip mroute3.IGMP Query*Дамп отфильтрован по IGMP*General Query*Дамп отфильтрован по IGMP*4.IGMP LeaveGroup Specific Queryтолько*Дамп отфильтрован по IGMP*

И ещё раз

IGMPIGMP ReportIGMP General QueryIGMP Group Sepcific QueryIGMP LeaveQuerier

PIM

PIM — Protocol Independent MulticastCBT version 2 is not, and was not, intended to be backwards compatible with version 1; we do not expect this to cause extensive compatibility problems because we do not believe CBT is at all widely deployed at this stage.

  • PIM Dense Mode (DM)
  • PIM Sparse Mode (SM)

Ethernet

Ethernet frames with a value of 1 in the least-significant bit of the first octet of the destination address are treated as multicast frames and are flooded to all points on the network. This mechanism constitutes multicast at the data link layer. This mechanism is used by IP multicast to achieve one-to-many transmission for IP on Ethernet networks. Modern Ethernet controllers filter received packets to reduce CPU load, by looking up the hash of a multicast destination address in a table, initialized by software, which controls whether a multicast packet is dropped or fully received.

Ethernet multicast is available on all Ethernet networks. Multicasts span the broadcast domain of the network. Multiple Registration Protocol can be used to control Ethernet multicast delivery.

Мультивещание в интернете

В 1995 году была создана международная магистральная сеть для обмена мультивещательным трафиком . На её основе с 1997 до 2008 работала система виртуальных комнат для видео-конференций. Российская точка обмена мультикаст-трафиком Multicast Internet Exchange (Multicast-IX) создана на базе Московского Internet Exchange в 2002 году.

Каждый участник Мультикаст-IX образует собственный PIM домен и может использовать собственный набор Rendezvous Point (RP), отличающийся от RP других участников Multicast IX. Каждый из участников Мультикаст-IX конфигурирует на своем маршрутизаторе PIM RP для своего домена. Попарное взаимодействие между участниками осуществляется путём настройки MBGP/MSDP-сессий.

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

[править] Multicast адреса

Диапазоны адресов:

ДиапазонОписание
224.0.0.0 — 224.0.0.255 Local Network Control Block
224.0.1.0 — 224.0.1.255 Internetwork Control Block
224.0.2.0 — 224.0.255.255 Ad hoc Block
224.1.0.0 — 224.1.255.255 Не назначен
224.2.0.0 — 224.2.255.255 SDP/SAP Block
224.3.0.0 — 231.255.255.255 Не назначен
232.0.0.0 — 232.255.255.255 Source Specific Multicast Block
233.0.0.0 — 233.255.255.255 GLOP Block
234.0.0.0 — 238.255.255.255 Не назначен
239.0.0.0 — 239.255.255.255 Administratively Scoped Block

Популярные зарезервированные адреса:

АдресОписание
224.0.0.0 Base address (reserved)
224.0.0.1 The All Hosts multicast group that contains all systems on the same network segment
224.0.0.2 The All Routers multicast group that contains all routers on the same network segment
224.0.0.5 AllSPFRouters address. Используется для отправки Hello-сообщений всем OSPF-маршрутизаторам.
224.0.0.6 AllDRouters address. Используется для отправки OSPF-сообщений выделенным маршрутизаторам OSPF.
224.0.0.9 RIP версии 2
224.0.0.10 EIGRP-маршрутизаторы
224.0.0.18 VRRP
224.0.0.22 IGMP версии 3
224.0.0.102 HSRP версии 2
224.0.0.251 Multicast DNS address
  • Static
  • Scope-relative — старшие 256 адресов в каждом административном диапазоне адресов зарезервированы для relative assignments.
  • Dynamic

Реализация Broadcast Receivers

Чтобы создать собственный широковещательный приемник, вы должны сначала расширить родительский класс BroadcastReceiver и переопределить обязательный метод onReceive:

MyBroadcastReceiver.java

public void onReceive(Context context, Intent intent) {
//Implement your logic here
}

1
2
3

publicvoidonReceive(Context context,Intent intent){

//Implement your logic here

}

Собрав все вместе, получим:

MyBroadcastReceiver.java

public class MyBroadcastReceiver extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
StringBuilder sb = new StringBuilder();
sb.append(«Action: » + intent.getAction() + «\n»);
sb.append(«URI: » + intent.toUri(Intent.URI_INTENT_SCHEME).toString() + «\n»);
String log = sb.toString();
Toast.makeText(context, log, Toast.LENGTH_LONG).show();

}
}

1
2
3
4
5
6
7
8
9
10
11
12

publicclassMyBroadcastReceiverextendsBroadcastReceiver{

@Override

publicvoidonReceive(Context context,Intent intent){

StringBuilder sb=newStringBuilder();

sb.append(«Action: «+intent.getAction()+»\n»);

sb.append(«URI: «+intent.toUri(Intent.URI_INTENT_SCHEME).toString()+»\n»);

Stringlog=sb.toString();

Toast.makeText(context,log,Toast.LENGTH_LONG).show();

}

}

Если выполняется долгий процесс, система может завершить процесс после возврата метода. Чтобы обойти это, рассмотрите возможность использования или планировщиков заданий (scheduling a job). Вы можете прочитать больше об этом в нижней части этой статьи.

IPv4

224.0.0.0/24

224.0.0.0 — зарезервировано
224.0.0.1 — все системы в подсети, поддерживающие мультикаст. Система включается в группу при инициализации интерфейса. О членстве в этой группе система не сообщает.
224.0.0.2 — все маршрутизаторы в подсети, поддерживающие мультикаст
224.0.0.5, 224.0.0.6 — OSPF
224.0.0.9 — RIPv2
224.0.0.10 — IGRP
224.0.0.13 — PIM
224.0.0.18 — VRRP
224.0.0.19, 224.0.0.20, 224.0.0.21 — IS-IS
224.0.0.22 — IGMP
224.0.0.102 — HSRP
224.0.0.107 — Протокол точного времени (PTP) версия 2
224.0.0.251 — Multicast DNS (Zeroconf)
224.0.0.252 — LLMNR (англ.)
224.0.0.253 — Teredo
и другие

224.0.1.0 по 238.255.255.255

Globally Scoped Addresses

239.0.0.0/8Для частных мультикаст-доменов/организаций (пользовательские адреса). Могут динамически использоваться протоколами.

239.255.255.250 — SSDP.
239.192.152.143 — Local Peer Discovery для BitTorrent.

Application layer

Application layer multicast overlay services are not based on IP multicast or data link layer multicast. Instead they use multiple unicast transmissions to simulate a multicast. These services are designed for application-level group communication. Internet Relay Chat (IRC) implements a single spanning tree across its overlay network for all conference groups. The lesser-known PSYC technology uses custom multicast strategies per conference. Some peer-to-peer technologies employ the multicast concept known as peercasting when distributing content to multiple recipients.

Explicit multi-unicast (Xcast) is another multicast strategy that includes addresses of all intended destinations within each packet. As such, given maximum transmission unit limitations, Xcast cannot be used for multicast groups with many destinations. The Xcast model generally assumes that stations participating in the communication are known ahead of time, so that distribution trees can be generated and resources allocated by network elements in advance of actual data traffic.

I updated and now nothing in OBS is working, what happened?

We are very careful when making updates, and test everything as extensively as we can. OBS updates should leave your settings intact, but it’s possible that something else on your system may have interfered with the update process. Most commonly, updates will cause antivirus and security programs to look closer at OBS. Some can even flag the behavior, falsely, as malicious. Make sure that if you are running an antivirus, the OBS folder is whitelisted. You may need to remove and re-add any .exe files to the whitelist after each update as some products ignore the whitelist if the file has changed since it was added.

Since the OBS Contributors are a small group, we can only test against the hardware and software that we have available. If we do make a mistake with an update, you can bet we’ll be on top of it, honest about it, and correct it as soon as we can. Stop by our Community Chat if you need more assistance.

Broadcast (Широковещание)

Из-за того, что тип передачи broadcast используется для отправки пакетов ко всем хостам в сети, пакеты использую специальный broadcast IP адрес. Когда хост получает пакет, в заголовке которого в качестве адреса получателя указан broadcast адрес, он обрабатывает пакет так, как будто это unicast пакет.

Когда хосту необходимо передать какую-то информацию всем хостам в сети используется способ передачи данных broadcast. Еще когда адрес специальных сервисов (служб) или устройств заранее неизвестен, то для обнаружения также используется broadcast (широковещание).

Примеры, когда используется broadcast передача данных:

  • создание карты принадлежности адресов верхнего уровня к нижним (например, какой IP адрес на конкретном устройстве со своим MAC адресом)
  • запрос адреса (в качестве примера можно взять протокол ARP)
  • протоколы маршрутизации обмениваются информацией о маршрутах (RIP, EIGRP, OSPF)

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

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

В отличие от unicast передачи, где пакеты могут быть маршрутизированы через всю сеть, broadcast пакеты, как правило, ограничиваются локальной сетью. Это ограничение зависит от настройки маршрутизатора, который ограничивает сеть и следит за типом широковещания (broadcast).

Существует два типа broadcast передачи данных: направленное широковещание и ограниченное широковещание.

Направленный broadcast (направленное широковещание)

Направленный broadcast отправляется всем хостам какой-то конкретной сети. Этот тип широковещания удобно использовать для отправки broadcast трафика всем хостам за пределами локальной сети.

Например, хост хочет отправить пакет всем хостам в сети 172.16.5.0/24, но сам хост находится в другой сети. В данном случае хост-отправитель вложит в заголовок пакета в качестве адреса пункта назначения broadcast адрес 172.16.5.255. Хотя маршрутизаторы должны ограничивать (не передавать) направленный широковещательный трафик, их можно настроить на разрешение передачи broadcast трафика.

Ограниченный broadcast (ограниченное широковещание)

Ограниченный broadcast используется для передачи данных всем хостам в локальной сети. В такие пакеты в качестве пункта назначения вставляется IP адрес 255.255.255.255. Маршрутизаторы такой широковещательный трафик не передают. Пакеты, переданные ограниченным broadcast будут распространяться только в локальной сети. По этой причине локальные сети IP также называют широковещательным доменом (broadcast domain). Маршрутизаторы образуют границу для широковещательного домена. Без границы пакеты бы распространялись по всей сети, каждому хосту, уменьшая быстродействие сетевых устройств и забивая пропускную способность каналов связи.

Приведу пример ограниченного broadcast: хост находится внутри сети 172.16.5.0/24 и хочет передать пакет всем хостам в его сети. Используя в качестве пункта назначения IP адрес 255.255.255.255, он отправляет широковещательный пакет. Этот пакет примут и обработают все хосты только в этой локальной сети (172.16.5.0/24).

IGMP

When a receiver joins a multicast group, the multicast routers serving that receiver’s subnet need to know that the receiver has joined so that they can arrange for multicast traffic destined for that group to reach this subnet. The Internet Group Management Protocol (IGMP) is a link-local protocol for IPv4 that communicates this information between receivers and routers. The same role for IPv6 is performed by the Multicast Listener Discovery protocol (MLD).

The basic IGMP mechanism works as follows. When a multicast receiver joins a multicast group it multicasts an IGMP Join message onto the subnet on which it is joining. The local routers receive this join, and cause multicast traffic destined for the group to reach this subnet. Periodically one of the local routers sends a IGMP Query message onto the subnet. If there are multiple multicast routers on the subnet, then one of them is elected as the sole querier for that subnet. In response to an IGMP query, receivers respond by refreshing their IGMP Join. If the join is not refreshed in response to queries, then the state is removed, and multicast traffic for this group ceases to reach this subnet.

There are three different versions of IGMP:

  • IGMP version 1 functions as described above.
  • IGMP version 2 adds support for IGMP Leave messages to allow fast leave from a multicast group.
  • IGMP version 3 adds support for source include and exclude lists, to allow a receiver in indicate that it only wants to hear traffic from certain sources, or not receive traffic from certain sources.

Приручаем multicast +7

  • 07.11.18 01:53


catersplay

#429062

Хабрахабр

2600

Системное администрирование, Сетевые технологии, Блог компании ICL Services

Остановимся на анализе мультикаст-трафика через IGMP-протокол. Рассмотрим реализацию работы протокола IGMP, работы протокола PIM, отправки JOIN-запросов. После анализа проблемы была разработана оптимальная конфигурация сетевого оборудования, эффективная настройка QOS. Данная задача появилась после обнаружения проблемы в сети, такой как прерывание сигнала у клиентов, наличие фризов и прерывание звука. IGMP — Internet Group Management Protocol — это сетевой протокол взаимодействия абонентов мультикаст-трафика и ближайшего к ним сетевого оборудования.
Пользователь имеет подписку на следующую группу IP-адресов: 224.0.0.0 до 239.255.255.255. PIM Protocol реализован в режиме Sparse mode. Это означает, что трафик льется только на ту ветку, в которой есть клиенты, желающие войти в мультикаст-группу. Они отправляют сообщения PIM Join. Если клиенты не отправляют Join, то трафик им отправляться не будет. PIM Sparse Mode включен на двух интерфейсах. В сторону источника мультикаст-трафика и в сторону клиента

На стороне клиента имеет цифровой ресивер или абонентское устройство —IPTV-приставка.
Для справки: dense mode предполагает, что мультикаст-трафик идет до абонента, и неважно, подписывается ли он на определенный канал. Мультикаст идет во все порты, потом, если он не нужен по месту назначения, то отправляется служебный пакет PIM Prune, и трафик перестает идти по этой ветке

IGMP-протокол реализуется в сторону клиента. PIM-протокол устанавливает соседство с другими маршрутизаторами. Для этого применяются служебные сообщения PIM Hello.
В нашей сети применялась вторая версия протокола IGMP.
Абонентское устройство, которое решает получить multicast-трафик, отправляет запрос в сообщении IGMP Membership Report (так называемый репорт).
Если абонентское устройство больше не желает получать мультикаст-трафик, то оно отправляет сообщение IGMP Leave. Эта функция реализована коммутаторах уровня доступа. IGMP Membership Group-Specific Query — повторное сообщение коммутатором в сеть о том, есть ли клиентские устройства, которые будут запрашивать мультикаст-трафик. Если их нет, то передача трафика прекращается.
IGMP snooping реализуется на сетевом оборудовании, отдельного включения функции недостаточно, необходима дополнительная настройка. После включения данной функции управляемые коммутаторы могут анализировать трафик — мультикаст-поток.
Если коммутатор обнаруживает IGMP-пакет, то он вносит порт в список мультикаст-групп. Если от абонента идет сообщение IGMP Leave, то коммутатор удаляет порт из подписчиков групп.
IGMP snooping позволяет предотвращать мультикаст шторм. Если функция IGMP snooping не включена, то оборудование ретранслирует multicast-трафик во все порты, которые находятся в одном VLAN. Это не эффективно, а также способно вызвать проблемы на сетевых устройствах, вынужденных обрабатывать высокий поток данных. Это может загружать CPU-оборудования. IGMP snooping улучшает работу сети.
Однако для того, чтобы получить мультикаст-трафик, нужно реализовать эту функции на стороне клиента. К примеру, если клиент подключен через роутер, то необходимо позаботиться о включении этой функции на роутере.
Проверить корректность работы мультикаст-вещания можно путем анализа трафика через Wireshark, после включения телевидения через VLC-медиаплеер. В настройках VLC указываем, к примеру, udp:@239.255.0.A:5500. Для передачи потока используется UDP протокол, далее идет мультикаст адрес, далее порт.
При разработке QOS учитывалось, что «красить» трафик желательно ближе к ядру сети. Его необходимо красить ближе к Randezvous Point. (Ну это для нашего случая)
На коммутаторах уровня доступа у нас применялись следующие настройки:
Глубокий анализ проблемы, применение средств диагностики и понимание работы протокола IGMP позволяет выработать эффективную и оптимальную конфигурацию мультикаст-трафика в вашей сети.

Основные положения

Когда хост хочет начать получать широковещательный UDP трафик, то он должен принадлежать к группе «UDP multicast group». Контроль для широковещательных групп базируется на протоколе IGMP. Как только хост подписан, весь трафик для этой группы посылается ей используя

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

К счастью в версии ядра Linux 2.6.34 есть возможность «IMGP snooping», которая отслеживает подобные ситуации и по умолчанию присутствует в OpenWrt. Таким образом у вас не будет нежелательного трафика на портах, который не были вами заданы для получения.

Ещё одним важным фактором является так же то, что из-за использования низкого уровня скорости (чтобы все клиенты могли «слушать»), а так же хитрых режимов энергосбережения – широковещание в беспроводных сетях работает не так, как этого от него ожидаешь. Зачастую широковещание бесполезно для IPTV.

Описание

Групповая передача (сверху) в сравнении с однонаправленной передачей. Оранжевыми кругами показаны конечные точки, зелеными — точки маршрутизации.

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

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

Для мультикастных групп зарезервированы адреса как на канальном, так и на сетевом уровнях.

Чтобы технология работала, она должна поддерживаться сервером, клиентом и всеми промежуточными маршрутизаторами. Чтобы коммутаторы посылали пакеты только нужным получателям, они должны поддерживать IGMP snooping (у Cisco есть своя реализация — CGMP), иначе пакеты рассылаются широковещательно. Также нужно иметь в виду, что мультикаст может блокироваться межсетевыми экранами.

STP

простых циклов

  • идентификатор отправителя (Bridge ID)
  • идентификатор корневого свича (Root Bridge ID)
  • идентификатор порта, из которого отправлен данный пакет (Port ID)
  • стоимость маршрута до корневого свича (Root Path Cost)

01-80-c2-00-00-00

Роли портов

корневым портом (Root port)

  1. Корневой свич посылает BPDU с полем Root Path Cost, равным нулю
  2. Ближайший свич смотрит на скорость своего порта, куда BPDU пришел, и добавляет стоимость согласно таблице
    Скорость портаСтоимость STP (802.1d)
    10 Mbps100
    100 Mbps19
    1 Gbps4
    10 Gbps2
  3. Далее этот второй свич посылает этот BPDU нижестоящим коммутаторам, но уже с новым значением Root Path Cost, и далее по цепочке вниз

Designated

Состояния портов

  • блокировка (blocking): блокированный порт не шлет ничего. Это состояние предназначено, как говорилось выше, для предотвращения петель в сети. Блокированный порт, тем не менее, слушает BPDU (чтобы быть в курсе событий, это позволяет ему, когда надо, разблокироваться и начать работать)
  • прослушивание (listening): порт слушает и начинает сам отправлять BPDU, кадры с данными не отправляет.
  • обучение (learning): порт слушает и отправляет BPDU, а также вносит изменения в CAM- таблицу, но данные не перенаправляет.
  • перенаправление\пересылка (forwarding): этот может все: и посылает\принимает BPDU, и с данными оперирует, и участвует в поддержании таблицы mac-адресов. То есть это обычное состояние рабочего порта.
  • отключен (disabled): состояние administratively down, отключен командой shutdown. Понятное дело, ничего делать не может вообще, пока вручную не включат.

автонастройки.

Виды STP

коммутацииCSTPVSTPVST+

RSTP

RSTP

STP (802.1d)RSTP (802.1w)
В уже сложившейся топологии только корневой свич шлет BPDU, остальные ретранслируютВсе свичи шлют BPDU в соответствии с hello-таймером (2 секунды по умолчанию)
Состояния портов
— блокировка (blocking)
— прослушивание (listening)
— обучение (learning)
— перенаправление\пересылка (forwarding)
— отключен (disabled)
— отбрасывание (discarding), заменяет disabled, blocking и listening
— learning
— forwarding
Роли портов
— корневой (root), участвует в пересылке данных, ведет к корневому свичу
— назначенный (designated), тоже работает, ведет от корневого свича
— неназначенный (non-designated), не участвует в пересылке данных
— корневой (root), участвует в пересылке данных
— назначенный (designated), тоже работает
— дополнительный (alternate), не участвует в пересылке данных
— резервный (backup), тоже не участвует
Механизмы работы
Использует таймеры:
Hello (2 секунды)
Max Age (20 секунд)
Forward delay timer (15 секунд)
Использует процесс proposal and agreement (предложение и соглашение)
Свич, обнаруживший изменение топологии, извещает корневой свич, который, в свою очередь, требует от всех остальных очистить их записи о текущей топологии в течение forward delay timerОбнаружение изменений в топологии влечет немедленную очистку записей
Если не-корневой свич не получает hello- пакеты от корневого в течение Max Age, он начинает новые выборыНачинает действовать, если не получает BPDU в течение 3 hello-интервалов
Последовательное прохождение порта через состояния Blocking (20 сек) — Listening (15 сек) — Learning (15 сек) — ForwardingБыстрый переход к Forwarding для p2p и Edge-портов

Основные протоколы построения деревьев мультивещания

Внутри звена: IGMP (Internet Group Management Protocol) в IPV4 и Multicast Listener Discovery в IPv6.

Интрадоменный () протокол: BGMP ()

Интердоменные протоколы:

плотный режим (dense mode):

DVMRP (Distance Vector Multicast Routing Protocol)
MOSPF (Multicast Open Shortest Path First)
PIM-DM (Protocol Independent Multicast — dense mode)

редкий режим (sparse mode):

CBT ()
PIM-SM (Protocol Independent Multicast — sparse mode)

В сетях с подвижными узлами:

MoM (Mobile Multicast)
MMA (Multicast by Multicast Agent)
MRMP ()

(explicit multi-unicast) — особый протокол мультивещания не использующий мультикастные группы. Хорошо работает в небольших группах.

[править] Создание сетевого интерфейса

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

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

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

Не путайте интерфейсы и
устройства системы. Интерфейсам не соответствуют
никакие специальные файлы в каталоге /dev

Вновь созданный интерфейс является ненастроенным: он выключен и к нему не
привязан никакой IP-адрес. Для того чтобы ввести интерфейс в работу, нужно
провести его настройку и включить (поднять) его при помощи команды
ifconfig.

При настройке интерфейса обычно настраиваются следующие параметры:

  • IP-адрес должен быть указан обязательно, поскольку без него использование интерфейса неосуществимо;
  • Сетевая маска должна указываться в том случае, если она отличается от той, которая соответствует классу IP-адреса;
  • Широковещательный адрес указывается в том случае, если он отличается от широковещательного адреса, вычисляемого на основе значений IP-адреса и сетевой маски.

Эти параметры задаются одной командой, которая при этом, как правило, сразу и включает интерфейс.

# ifconfig eth0 192.168.1.1 up
# ifconfig eth1 10.0.0.1 netmask 255.255.255.0 up

[править] Дополнительная информация

Сетевой уровень

Основные понятия
Сетевой интерфейс | IP | IP-адрес | Маска подсети | Широковещательный адрес | Маршрут | IPv6 Маршрутизация | Форвардинг | Таблица маршрутизации | Шлюз по умолчанию Маршрутизация в Linux | Маршрутизация в FreeBSD | Маршрутизация в Cisco
Динамическая маршрутизация
Протоколы: RIP | OSPF | EIGRP | BGP | IS-IS
Демоны: Quagga | GNU Zebra | XORP | bird | OpenBGPD | OpenOSPFD | MRT (заброшен)
Устройства: Cisco Router | ProCurve Router | Vyatta
Отказоустойчивость
Протоколы: CARP| HSRP | VRRP | XRRP | GLBP
Реализация: CARP в OpenBSD | CARP в FreeBSD | UCARP | HSRP в Cisco | VRRP в Cisco | VRRP в ProCurve | XRRP в ProCurve

Выбор RP

ip pim rp-address X.X.X.Xshow ip pim rpКлиент 2Bootstrapshow ip mrouteC-RP

BSR — BootStrap RouterC-BSR

BootStrap Message (BSM)Candidte-RP-Advertisementgroup-to-RP mappingRP-Setсамостоятельно

Завершая главу PIM SM, давайте ещё раз отметим важнейшие моменты

  1. Должна быть обеспечена обычная юникастовая связность с помощью IGP или статических маршрутов. Это лежит в основе алгоритма RPF.
  2. Дерево строится только после появления клиента. Именно клиент инициирует построение дерева. Нет клиента — нет дерева.
  3. RPF помогает избежать петель.
  4. Все маршрутизаторы должны знать о том, кто является RP — только с её помощью можно построить дерево.
  5. Точка RP может быть указана статически, а может выбираться автоматически с помощью протокола BootStrap.
  6. В первой фазе строится RPT — дерево от клиентов до RP — и Source Tree — дерево от источника до RP. Во второй фазе происходит переключение с построенного RPT на SPT — кратчайший путь от получателя до источника.

MDT — Multicast Distribution TreeSPT — Shortest Path Tree(S, G)Source TreeRPT — Rendezvous Point Tree(*, G)Shared TreeHelloJoin (*, G)Join (S, G)Prune (*, G)Prune (S, G)RegisterRegister-StopBootstrapAssertCandidate-RP-AdvertisementRP-Reachable*Есть и другие типы сообщений в PIM, но это уже детали*

Рейтинг автора
5
Материал подготовил
Максим Иванов
Наш эксперт
Написано статей
129
Ссылка на основную публикацию
Похожие публикации