MLD és IGMP Windows Sockets használatával
A Windows-szoftvercsatornák lehetővé teszik az IPv6-on futó csoportos küldésű figyelőfelderítést (MLD) és az IPv4 internetcsoport-kezelési protokollját (IGMP) a csoportos küldésű alkalmazásokhoz a szoftvercsatorna-beállítások és az IOCTL-ek használatával. Ez az oldal ismerteti a csoportos küldési programozást lehetővé tevő szoftvercsatornák beállításait, és ismerteti a használatuk módját. Az egyes szoftvercsatornákra vonatkozó definíciókat a Szoftvercsatorna beállításai lapon találhatja meg.
További információ az IOCTLs csoportos küldésű programozáshoz való használatáról, lásd a Final-State-Based Csoportos küldésű programozás e szakasz későbbi részében.
Windows Vista és újabb rendszereken az IPv6- és IPv4-címeket támogató multicast programozáshoz elérhetők a socket beállítások. Ezek a szoftvercsatorna-beállítások IP-agnosztikusak, és IPv6-on és IPv4-en is használhatók. Az IPv6 esetén ezek a csatlakozási opciók az MLDv2-t használják. IPv4-en ezek a socket opciók az IGMPv3-at használják. Ezek az IP-agnosztikus socket opciók a csoportos üzenetküldéshez preferáltak Windows Vista és újabb verziókon. A Windows Socketek a következő socket lehetőségeket használják:
Csatlakozási opció | Argumentum típusa |
---|---|
MCAST_BLOCK_SOURCE | GROUP_SOURCE_REQ szerkezet |
MCAST_JOIN_GROUP | GROUP_REQ struktúra |
MCAST_JOIN_SOURCE_GROUP | GROUP_SOURCE_REQ szerkezet |
Csoportelhagyás_utasítás | GROUP-REQ struktúra |
MCAST_KILÉPÉS_FORRÁSCSOPORTBÓL | GROUP_SOURCE_REQ szerkezet |
MCAST_UNBLOCK_SOURCE | GROUP_SOURCE_REQ szerkezet |
A multicastinghez szükséges socketbeállítások elérhetők, amelyek csak IPv6-címeket támogatnak. Ezek a socket opciók az MLDv1 vagy az MLDv2 protokollt használják. A használt MLD-verzió a Windows verziójától függ. Az MLDv2 Windows Vista és újabb rendszereken támogatott. A Windows-szoftvercsatornák a következő szoftvercsatorna-beállításokat használják:
Socket beállítás | Argumentum típusa |
---|---|
IPV6_ADD_MEMBERSHIP | ipv6_mreq struktúra |
IPV6_DROP_MEMBERSHIP | ipv6_mreq szerkezet |
Csoportos küldést támogató programozáshoz elérhető egy socket opciók készlet, amely csak IPv4-címeket támogat. Ezek a socket beállítások az IGMPv3 vagy az IGMPv2 protokollt használják. A használt IGMP-verzió a Windows verziójától függ. Az IGMPv3 támogatott Windows Vista és újabb rendszereken. A Windows Socketek a következő socket-beállításokat használják:
Socket opció | Argumentum típusa |
---|---|
IP_ADD_MEMBERSHIP | ip_mreq struktúra |
IP_ADD_SOURCE_MEMBERSHIP | ip_mreq_source szerkezet |
IP_BLOKKOLÁS_FORRÁS | ip_mreq_source szerkezet |
IP_DROP_MEMBERSHIP | ip_mreq struktúra |
Forrás tagsági megszüntetése IP-cím alapján | ip_mreq_source szerkezet |
IP_FORRÁS_FELSZABADÍTÁSA | ip_mreq_source szerkezet |
Ha az IGMPv3 elérhető, a IP_ADD_SOURCE_MEMBERSHIP, IP_BLOCK_SOURCE, IP_DROP_SOURCE_MEMBERSHIP és IP_UNBLOCK_SOURCE lehetőségek hatékonyabban kezelhetők, mivel az útválasztó képes kezelni a szűrést. Ha csak az IGMPv2 érhető el, a gazdagépnek kell kezelnie a szűrést.
Két kategória van, amelyekbe a legtöbb alkalmazás valószínűleg esni fog: bármilyen forrásból és szabályozott forrásból.
- Bármely forrású alkalmazás alapértelmezés szerint elfogadja az összes forrást, így az egyes források szükség szerint ki vannak kapcsolva. Bármely forrásalkalmazásra példa egy videokonferencia-hívás, amely minden címzett számára lehetővé teszi a részvételt.
- szabályozott forrású alkalmazások egy adott listára, például egy internetes rádióállomásra vagy egy jelentős esemény közvetítésére korlátozzák a forrásokat. A socket beállítások használatának folyamata mindegyik esetben kissé eltérő.
Windows Vista és újabb rendszereken a következő lépések vonatkoznak minden forrásalkalmazásra:
- A MCAST_JOIN_GROUP használatával csatlakozhat egy csoporthoz.
- Ha szükséges, a MCAST_BLOCK_SOURCE használatával kapcsoljon ki egy adott forrást.
- Ha szükséges, a MCAST_UNBLOCK_SOURCE használatával engedélyezze újra a letiltott forrást.
- A csoport elhagyásához használd a MCAST_LEAVE_GROUP.
Windows Vista és újabb rendszereken a következő lépések vonatkoznak a szabályozott forrású alkalmazásokra:
- A MCAST_JOIN_SOURCE_GROUP használatával csatlakozhat az egyes csoportokhoz/forráspárokhoz.
- A MCAST_LEAVE_SOURCE_GROUP használatával elhagyhatja az egyes csoportokat/forrásokat, vagy MCAST_LEAVE_GROUP használatával az összes forrást elhagyhatja, ha az összes forrás ugyanazt a csoportcímet használja.
A következő lépések minden forrásalkalmazásra vonatkoznak:
- A IP_ADD_MEMBERSHIP használatával csatlakozhat egy csoporthoz (IPV6_ADD_MEMBERSHIP az IPv6-hoz).
- Ha szükséges, a IP_BLOCK_SOURCE használatával kapcsoljon ki egy adott forrást.
- Ha szükséges, a IP_UNBLOCK_SOURCE használatával engedélyezze újra a letiltott forrást.
- A IP_DROP_MEMBERSHIP használatával lépjen ki a csoportból (IPV6_DROP_MEMBERSHIP az IPv6-hoz).
A szabályozott forrású alkalmazásokra a következő lépések vonatkoznak:
- A IP_ADD_SOURCE_MEMBERSHIP használatával csatlakozzon az egyes csoportokhoz/forráspárokhoz.
- Ha az összes forrás ugyanazt a csoportcímet használja, IP_DROP_SOURCE_MEMBERSHIP hagyhatja el az egyes csoportokat/forrásokat, vagy IP_DROP_MEMBERSHIP használatával hagyhatja el az összes forrást.
A socket beállítások sorrendjének van egy társított szabályrendszere. A multicast foglalat opciókra vonatkozó információkért és a hibaelhárítási információkért lásd a Multicast foglalat opció viselkedéserészt.