
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.255
un socket de escucha UDP vinculado INADDR_ANY
aBlos recibe.
Después de cambiar la configuración de IP enApara 10.0.0.1/16
que pertenezca a una subred IP diferente y comience a transmitir a 10.0.255.255
ese 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.