자체 IP 서브넷이 아닌 다른 서브넷으로의 직접 브로드캐스트는 소켓이 종료될 때까지 수신됩니다. 이유는 무엇입니까?

자체 IP 서브넷이 아닌 다른 서브넷으로의 직접 브로드캐스트는 소켓이 종료될 때까지 수신됩니다. 이유는 무엇입니까?

내 두 호스트는 동일한 이더넷 세그먼트에 있습니다. 주인10.1.0.1/16님은 호스트 입니다이다 10.1.0.2/16.방향이 지정된 UDP 브로드캐스트를 보내고 10.1.255.255UDP 수신 소켓에 바인딩되어 있습니다 INADDR_ANY.그들을 받습니다.

IP 구성을 변경한 후10.0.0.1/16다른 IP 서브넷에 속하고 에 브로드캐스팅을 시작하도록 10.0.255.255합니다 . 아직도 받고 있다이번 방송.

청취 애플리케이션을 다시 시작하면, "잘못된" 서브넷으로의 이러한 브로드캐스트는더 이상 소켓에서 수신되지 않습니다..

질문: 왜 네트워킹 스택이유니캐스트가 아닌 패킷을 삭제하지 않습니다.또는 다음의 서브넷으로 브로드캐스트하지 않음, 소켓이 종료될 때까지?

나는 RFC1122를 안다라고:

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

나는 신청서가배상감독자체 서브넷으로 브로드캐스트하려는 의도로 브로드캐스트하는 경우 "should" 절을 따르지 않습니다. 하지만 내 질문은 왜UDP 소켓이 살아 있는 한 삭제되지 않습니다.

Linux 커널 4.4 및 3.13에서 이 동작을 관찰했습니다.

관련 정보