Multihoming y PGM

Se debe tener en cuenta especial a remitentes o receptores PGM multihomed. En esta página se describen las consideraciones y se proporcionan directrices para los procedimientos de programación recomendados.

Remitente PGM de host múltiple

Cuando una aplicación no puede especificar una interfaz al llamar a la función connect , se usa la primera interfaz disponible. Si no hay ninguna interfaz disponible, se produce un error en la conexión .

Cuando una aplicación especifica una interfaz mediante la opción de socket RM_SET_SEND_IF , se realiza un intento de enlace implícitamente a esa interfaz mediante TCP/IP y se produce un error si TCP/IP produce un error en la solicitud de enlace . Si la interfaz se establece mediante RM_SET_SEND_IF varias veces, solo se aplica el último conjunto de interfaz correctamente.

Windows Sockets mantiene qué interfaz se establece y, si esa interfaz desaparece, la sesión se desconecta.

Receptor PGM de host múltiple

Cuando una aplicación no puede especificar una interfaz al llamar a la función de escucha , se usa la interfaz predeterminada. Si no hay ninguna interfaz disponible, se produce un error en el enlace .

Cuando una aplicación especifica una o varias interfaces en las que se va a escuchar, mediante RM_ADD_RECEIVE_IF, Windows Sockets intenta enlazar a la interfaz o interfaces solicitadas mediante TCP/IP. Cualquier error de TCP/IP hace que se produzca un error en esta solicitud. A diferencia del caso del remitente PGM, agregar una interfaz de recepción varias veces da lugar a que las escuchas se publiquen en todas las interfaces agregadas correctamente. Use la opción de socket RM_DEL_RECEIVE_IF para detener la escucha en una interfaz.

Windows Sockets no mantiene el estado sobre varias interfaces de escucha especificadas y, en su lugar, se basa en TCP/IP para hacerlo. Sin embargo, una vez que una sesión está en curso, Windows Sockets realiza un seguimiento de la interfaz entrante de esa sesión y, si esa interfaz desaparece, Windows Sockets desconecta la sesión.