Multicast - skupinová adresa

Základní idea multicastu je taková, že jedna informace je určena více rozhraním, ale teče každým kusem linky pouze jednou. Používá se nejčastěji pro šíření zvukového či obrazového signálu, videokonference a podobně. Je použitelný také jako náhrada broadcastových adres v IPv4.

Skupinové adresy jsou podle definice IPv6 dvou druhů – stálé a dočasné. Stálé jsou přiřazeny oficiální autoritou a mají dosah po celém Internetu. Dočasné adresy mají dosah pouze v předem stanovené oblasti a nemají globální platnost.

Adresy začínají osmi jedničkovými bity, v šestnáctkovém zápisu adresy FF::/10, což je identifikátor skupinových adres. Dalších osm bitů je používáno pro definici dosahu platnosti adresy a různé příznaky. Zbývajících 112 bitů slouží jako identifikátor multicastové skupiny, které adresa patří. V současné době je přiřazováno jako identifikátor skupiny pouze nejnižších 32 bitů adresy, zbylé bity jsou rezervovány pro pozdější použití.

Multicast

Druhý bajt adresy je rozdělen na poloviny. První polovina má významný pouze bit T. Pokud má hodnotu 0, je multicast přiřazen trvale, pokud má hodnotu 1, pak se jedná o dočasné přiřazení. Druhá polovina druhého bajtu specifikuje požadovaný dosah. Nabývá např. hodnot:

  • 1 - multicast v rámci lokálního uzlu (node/interface-local)
  • 2 - multicast v rámci fyzického segmentu (link-local)
  • 5 - multicast v rámci sítě (site-local)
  • 8 - multicast v rámci firmy (organization-local)
  • E - globální multicast
Příklady adres (na místě x je hodnota podle požadovaného dosahu):
  • FF0x::1 – multicast pro všechny zařízení (all host = náhrada za broadcast)
  • FF0x::2 – multicast pro všechny směrovače (all routers)
  • FF0x::9 – multicast pro všechny směrovače provozující protokol RIP
  • FF02::B - mobilní agenti
  • FF0x::101 - Network Time Protocol (NTP)
  • FF0x::10B - IETF-1-AUDIO
  • FF0x::10C - IETF-1-VIDEO
  • FF0x::117 - XINGTV

Pokud je jedna multicast skupina rozdělena přes více sítí, vytvoří se distribuční strom, který zajistí doručení paketu každému členu skupiny. Routery používají pro vytvoření stromu speciální protokoly (viz. dále). Tyto protokoly dynamicky vytvářejí distribuční strom, který zajistí doručení dat každému účastníkovi multicast skupiny.

Příjemci multicastového vysílání se musí (stejně jako v IPv4) nejprve registrovat. Protokol MLD (Multicast Listener Discovery,) je považován za podprotokol ICMP, i když je specifikován samostatným dokumentem RFC 2710. Jeho účelem je objevovat okolní uzly, které by rády dostávaly multicastové pakety pro určitou skupinu (multicastovou adresu). Takovéto uzly jsou nazývány posluchači. Získané informace o posluchačích jsou pak poskytnuty protokolu směrujícímu multicastové pakety (pro IPv4 by to byly například MOSPF - Multicast Open Shortest Path First, DVMRP - Distance Vector Multicast Routing Protocol nebo PIM - Protocol Independent Multicast, pro IPv6 jsou ve stadiu příprav). MLD bude využíván zejména směrovači pro zjištění zájmu o odběr multicastu přímo připojených koncových uzlů.

Dalším z možných využití multicastu v IPv6 je ND (Neighbor Discovery). V tomto případě došlo ke konfliktu, kdy pro autokonfiguraci má uzel vstoupit do skupiny, ale nemá adresu odesílatele, kterou požaduje MLD. Tento problém řeší RFC 3590, který povoluje použití nespecifikované adresy v odesilateli MLD zpráv během detekce duplicit (Multicast Listener Query). Po získání adresy se uzel přeregistruje.

MLD je odvozen z IGMPv2 - Internet Group Management Protocol, který zajišťuje "vyhledávání" zájemců o multicastové vysílaní v IPv4.

Rozdíly oproti IPv4:
  • Podpora multicastu je povinnou součástí.
  • Multicast FF0x::1 v IPv6 nahrazuje broadcast z IPv4.
  • Dá se lehce určit dosah multicastu.
  • Existují multicastové adresy s pevně daným významem.