¿Por qué debo usar o no usar MSG_CONFIRM?

2 minutos de lectura

¿Por que debo usar o no usar MSG CONFIRM
qdii

Estoy familiarizado con los sockets BSD y hojeo la página de manual de sendtoMe encontré con MSG_CONFIRM bandera, que es bastante misterioso para mí en este momento.

La descripción dice:

Dígale a la capa de enlace que se produjo un avance: obtuvo una respuesta exitosa del otro lado. Si la capa de enlace no obtiene esto, volverá a sondear regularmente al vecino (por ejemplo, a través de un ARP de unidifusión). Solo válido en sockets SOCK_DGRAM y SOCK_RAW y actualmente implementado solo para IPv4 e IPv6.

Después de un rápido vistazo a la página man de arpentiendo que marcar algo MSG_CONFIRM evita que la dirección MAC de asignación ARP ↔ la dirección IP de la máquina remota se considere obsoleta.

Ahora estoy desconcertado porque no puedo ver ninguna razón por la que debería no ponerlo, y por lo tanto, por qué no lo hicieron cumplir directamente en la biblioteca. ¿Por qué se espera que la capa de aplicación se ocupe de cualquier cosa que suceda en la capa de enlace?

Entonces, ¿me perdí de algo? ¿Cuándo debo configurarlo o no configurarlo?

Solo debe establecer la bandera si el datagrama que está enviando es una respuesta directa a un datagrama que acaba de recibir del mismo par.

Si está enviando una solicitud inicial o enviando un datagrama en respuesta a algún otro evento (como una entrada de usuario o un tiempo de espera), entonces debe no selecciona el MSG_CONFIRM bandera.

  • ¿Cuál debería ser el valor predeterminado para la solicitud inicial si no es MSG_CONFIRM?

    – bakalolo

    30 oct 2018 a las 19:24

  • @bakalolo: si no tiene banderas para establecer en una llamada a sendto()solo pasa 0 como el flags parámetro.

    – café

    31 de octubre de 2018 a las 3:01

  • Sería bueno tener una referencia de fuente para la información en esta respuesta.

    – Armali

    7 de noviembre de 2021 a las 17:18

La razón para no enviarlo es en caso de que la dirección mac de la IP cambie con el tiempo. Si constantemente le dice a su sistema que no verifique, continuará enviando a la misma MAC incluso si la dirección IP ya no está allí.

Parece que el caso para enviarlo requiere una situación muy especial en la que puede garantizar cosas sobre el destinatario de sus mensajes. La sobrecarga de una solicitud ARP periódica es muy baja, por lo que los beneficios son extremadamente limitados.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad