Multidifusión en comunicación de red de multidifusión
La tecnología de multidifusión IP (también llamada multidifusión o multidifusión) es una tecnología que permite que uno o más hosts (fuentes de multidifusión) envíen un único paquete de datos a múltiples hosts (a la vez, simultáneamente) Tecnología de red TCP/IP . La multidifusión, como comunicación punto a multipunto, es uno de los métodos eficaces para ahorrar ancho de banda de la red. En la aplicación de transmisión de audio/video en red, cuando la señal de un nodo necesita transmitirse a múltiples nodos, ya sea mediante comunicación o transmisión repetida punto a punto, desperdiciará seriamente el ancho de banda de la red. Solo la multidifusión es la mejor opción. La multidifusión permite que una o más fuentes de multidifusión envíen paquetes de datos solo a un grupo de multidifusión específico, y solo los hosts que se unan al grupo de multidifusión pueden recibir los paquetes de datos. Actualmente, la tecnología de multidifusión IP se utiliza ampliamente en transmisiones de audio/vídeo en red, AOD/VOD, videoconferencias en línea, educación a distancia multimedia, tecnología "push" (como cotizaciones de bolsa, etc.) y juegos de realidad virtual.
Algunas aplicaciones tienen tales requisitos: algunos procesos distribuidos en varios lugares deben trabajar juntos en un grupo, y los procesos del grupo generalmente necesitan enviar mensajes a todos los demás miembros. Es decir, existe una forma de enviar mensajes a algunos grupos bien definidos cuyos miembros son grandes pero pequeños en comparación con el tamaño de toda la red. El envío de mensajes a un grupo de este tipo se denomina multidifusión o, para abreviar, multidifusión.
1. Introducción a la tecnología de multidifusión IP
1. Dirección IP de multidifusión y grupo de multidifusión
La comunicación de multidifusión IP debe depender de la dirección IP de multidifusión. En IPv4 es una dirección IP de Clase D que va de 224.0.0.0 a 239.255.255.255 y se divide en tres categorías. : dirección de multidifusión de enlace local, dirección de multidifusión reservada y dirección de multidifusión de derechos administrativos. Entre ellos, el rango de direcciones de multidifusión del enlace local es 224.0.0.0 ~ 224.0.0.255, que es una dirección reservada para protocolos de enrutamiento y otros fines. El enrutador no reenvía paquetes IP que pertenecen a este rango; la dirección de multidifusión reservada es 224.0.1.0. ~ 238.255.255.255, que se puede usar globalmente (como Internet) o protocolos de red; la dirección de multidifusión de derechos administrativos es 239.0.0.0 ~ 239.255.255.255, que se puede usar dentro de la organización. y no se puede utilizar en Internet. Puede limitar el rango de transmisión múltiple.
Todos los hosts que utilizan la misma dirección IP de multidifusión para recibir paquetes de multidifusión forman un grupo de hosts, también llamado grupo de multidifusión. Los miembros de un grupo de multidifusión pueden cambiar en cualquier momento. Un anfitrión puede unirse o abandonar un grupo de multidifusión en cualquier momento. El número de miembros del grupo de multidifusión y su ubicación geográfica no están limitados. Además, los hosts que no pertenecen a un grupo de multidifusión también pueden enviar paquetes de datos al grupo de multidifusión.
2. Soporte de hardware para la tecnología de multidifusión IP
Para realizar la comunicación de multidifusión IP, los enrutadores, concentradores, conmutadores y hosts entre fuentes y receptores de multidifusión deben admitir multidifusión IP. Actualmente, la tecnología de multidifusión IP cuenta con un amplio respaldo por parte de los fabricantes de hardware y software.
(1) Host
Las plataformas que admiten comunicación de multidifusión IP incluyen Windows CE 2.1, Windows 95, Windows 98, Windows NT 4 y Windows 2000, etc. Hosts que ejecutan estos sistemas operativos Ambos puede realizar comunicación de multidifusión IP. Además, casi todas las tarjetas de red de nueva producción admiten multidifusión IP.
(2) Hubs y conmutadores
En la actualidad, la mayoría de los concentradores y conmutadores simplemente tratan los datos de multidifusión como transmisiones para enviar y recibir, pero algunos conmutadores de gama media y alta brindan soporte para Soporte de transmisión de datos de multidifusión IP. Por ejemplo, la función de filtrado de multidifusión 802.1p o IGMP se puede habilitar en el conmutador 3COM SuperStack 3 Switch 3300 para reenviar paquetes de multidifusión solo para los puertos que han detectado paquetes IGMP.
(3) Enrutador
La comunicación de multidifusión requiere que todos los enrutadores entre el nodo de origen de multidifusión y el nodo de destino brinden soporte para el Protocolo de administración de grupos de Internet (IGMP) y el protocolo de enrutamiento de multidifusión (como como PIM, DVMRP, etc.).
Cuando un host quiere unirse a un grupo de multidifusión, enviará un mensaje IGMP "Informe de membresía del host" para notificar al enrutador de multidifusión.
Cuando un enrutador de multidifusión recibe datos destinados a ese grupo de multidifusión, los reenvía a todos los hosts de multidifusión. El enrutador de multidifusión también enviará periódicamente mensajes IGMP de "consulta de miembro del host" para consultar la subred en busca de hosts de multidifusión. Si se descubre que un grupo de multidifusión no tiene miembros, dejará de reenviar los datos del grupo de multidifusión. Además, cuando un host que admite IGMP v2 (como una computadora con Windows 98/2000) sale de un grupo de multidifusión, también enviará un mensaje IGMP de "abandono de grupo" al enrutador para notificarle que deje de reenviar datos de multidifusión. grupo. Pero sólo cuando todos los hosts de la subred salgan de un grupo de multidifusión, el enrutador dejará de reenviar datos para el grupo de multidifusión a la subred.
Utilizando protocolos de enrutamiento de multidifusión, los enrutadores pueden establecer tablas de enrutamiento de multidifusión desde los nodos de origen de multidifusión a todos los nodos de destino, reenviando así paquetes de datos de multidifusión entre subredes. Por ejemplo, PIM (Protocol Independent Multicast) es un protocolo de enrutamiento de multidifusión que viene en dos tipos: modo disperso y modo denso. Tomando el enrutador Cisco 2621 como ejemplo, las configuraciones básicas para habilitar la función de reenvío de multidifusión IP son las siguientes:
c2621(config)# ip multicast-routing habilita la multidifusión IP para convertir el enrutador en un enrutador de multidifusión
c2621(config)# int f0/0 Configurar el puerto Fast Ethernet 0
c2621(config-if)# ip pim en modo denso (o modo disperso) inicia PIM y activa el Protocolo IGMP
c2621(config-if)# int f0/1 Configurar el puerto Fast Ethernet 1
c2621(config-if)# ip pim modo denso (o modo disperso)
2. Métodos de programación para aplicaciones de multidifusión IP
En aplicaciones prácticas, los programadores generalmente necesitan compilar sus propias aplicaciones de red subyacentes para realizar comunicaciones subyacentes en Internet, como la implementación específica de Función de comunicación IP multidifusión. La compilación de aplicaciones de red subyacentes generalmente requiere la ayuda de interfaces de programación de comunicación de datos de red, y las interfaces de programación de red proporcionadas en diferentes sistemas operativos son diferentes. Por ejemplo, la interfaz de programación de red en el entorno de Microsoft Windows es Windows Sockets (Windows Socket (Winsock para abreviar). ).
Winsock proporciona interfaces de programación bajo varios protocolos de comunicación, incluidos TCP/IP, IPX, etc. Las diferentes versiones de Windows admiten diferentes versiones de Winsock. Las primeras versiones, como Windows 95, solo admiten programación en Winsock1.1 (16 bits) (puede instalar paquetes de software relevantes para admitir Winsock2.0), mientras que Windows98, Windows NT4 .0, Windows 2000. admite directamente Winsock2.0 (32 bits). Winsock2.0 es una extensión de Winsock1.1. Además de ser compatible con la API de Winsock1.1, también define un conjunto de API independientes del protocolo que pueden admitir multidifusión de IP.
Los pasos generales para implementar la multidifusión IP usando Winsock 2.0 son los siguientes:
1. Inicialice los recursos de Winsock
Antes de usar Winsock, debe llamar a la función WSAStartup() para inicializar la DLL de Windows Sockets. Permite que una aplicación o DLL especifique la versión requerida por la API de Windows Sockets.
2. Crear un socket
Llame a la función WSASocket() para crear un socket usando el protocolo UDP. Es el socket de inicialización para unirse al grupo de multidifusión, y los datos futuros se envían y reciben en este socket. interfaz.
Para la comunicación de multidifusión IP, el parámetro dwFlags se puede configurar en la suma de bits de WSA_FLAG_MULTIPOINT_C_LEAF, WSA_FLAG_MULTIPOINT_D_LEAF y WSA_FLAG_OVERLAPPED, lo que indica que la comunicación de multidifusión IP no tiene raíz en el nivel de control y en el nivel de datos. Solo existen nodos hoja, y se pueden agregar a ellos. cualquiera. Grupo de multidifusión, y los datos enviados desde un nodo hoja se entregan a cada nodo hoja (incluido él mismo) el socket creado tiene propiedades superpuestas;
3. Establecer opciones de socket
Llame a la función setsockopt() para configurar la opción SO_REUSEADDR para que el socket permita vincularlo a una dirección que ya está en uso.
4. Vincular el socket
Llame a la función bind() para vincular el socket, conectando así el socket creado con la dirección local y el puerto local. Para la comunicación de multidifusión, normalmente se utiliza el mismo puerto para enviar y recibir datos.
5. Establecer el modo del socket de multidifusión
El código de comando SIO_MULTICAST_LOOP de la función WSAIoctl() se utiliza para permitir o deshabilitar si el tráfico de comunicación enviado cuando la comunicación de multidifusión también se puede recibir en el mismo socket (es decir, multidifusión devoluciones). Vale la pena señalar que en Windows 95/98/NT 4, el retorno de multidifusión está permitido de forma predeterminada, pero no se puede deshabilitar; de lo contrario, se producirá un error solo en Windows 2000 o superior, el retorno de multidifusión se puede configurar para permitir/deshabilitar.
El código de comando SIO_MULTICAST_SCOPE de la función WSAIoctl() se utiliza para establecer el rango de propagación de multidifusión, es decir, el tiempo de supervivencia TTL. Siempre que un enrutador de multidifusión reenvía un paquete de multidifusión, el valor TTL del paquete se reduce en 1. Si el TTL del paquete se reduce a 0, el enrutador descarta el paquete. El valor de TTL determina la cantidad máxima de enrutadores de multidifusión por los que pueden pasar los datos de multidifusión. Por ejemplo, si el valor TTL es 0, la multidifusión solo se puede propagar entre varios sockets del host local, pero no se puede propagar al "cable de red". Si el valor TTL es 1 (valor predeterminado), los datos de multidifusión encuentran el; primero Un enrutador será descartado "sin piedad" y no se le permitirá transmitir fuera de la red local, es decir, solo los miembros del grupo de multidifusión dentro de la misma red pueden recibir datos de multidifusión.
Multidifusión en C#
En C#, una instancia de proxy general (lo que significa que un proxy solo puede llamar a un método) se asigna de forma predeterminada a un objeto de la clase Delegate, por lo que la palabra clave delegada es usualmente usado Para definir un proxy, use el nuevo operador para crear una instancia de proxy y luego use los métodos y propiedades de la clase Delegate para administrar la instancia de proxy.
La clase MulticastDelegate se utiliza para admitir múltiples agentes y su lista de llamadas puede tener agentes con múltiples métodos.
Múltiples agentes se refieren a un grupo de agentes que forman una colección. Un objeto de la clase MuticastDelegate administra esta colección de agentes. Esta colección de agentes se utiliza para ejecutar múltiples métodos.