Las transmisiones dirigidas a otras subredes que no sean la propia IP se reciben hasta que se apaga el socket. ¿Por qué?

Las transmisiones dirigidas a otras subredes que no sean la propia IP se reciben hasta que se apaga el socket. ¿Por qué?

Mis dos hosts residen en el mismo segmento de Ethernet. AnfitriónAes 10.1.0.1/16, anfitriónBes 10.1.0.2/16.Aenvía transmisiones UDP dirigidas a 10.1.255.255un socket de escucha UDP vinculado INADDR_ANYaBlos recibe.

Después de cambiar la configuración de IP enApara 10.0.0.1/16que pertenezca a una subred IP diferente y comience a transmitir a 10.0.255.255ese mismo socket enB todavía recibeesta transmisión.

Si reinicio la aplicación de escucha enB, estas transmisiones a una subred "incorrecta" sonya no es recibido por el socket.

Pregunta: ¿por qué la pila de redes deBno descarta el paquete, que no es un unicast paraBni una transmisión a la subred deB, hasta que se apague el socket?

Sé que RFC1122dice:

Hosts SHOULD use the Limited Broadcast address to broadcast to a connected network.

Entiendo que la solicitud enAenviandodirigidoLas transmisiones con la intención de transmitir a la propia subred no siguen la cláusula "debería". Pero mi pregunta es por quéBno los descarta mientras el socket UDP esté activo.

Observé este comportamiento en los kernels de Linux 4.4 y 3.13.

información relacionada