ソケットがシャットダウンするまで、自身の IP サブネット以外へのダイレクト ブロードキャストが受信されます。なぜでしょうか。

ソケットがシャットダウンするまで、自身の IP サブネット以外へのダイレクト ブロードキャストが受信されます。なぜでしょうか。

2台のホストは同じイーサネットセグメント上に存在します。ホスト10.1.0.1/16、ホストB10.1.0.2/16にUDPブロードキャストを送信し、に10.1.255.255バインドされたUDPリスニングソケットを送信しますINADDR_ANYB受け取ります。

IP設定を変更した後10.0.0.1/16異なるIPサブネットに属し、10.0.255.255同じソケットを にブロードキャストし始めるようにB まだ受け取るこの放送。

リスニングアプリケーションを再起動するとB、これらの「間違った」サブネットへのブロードキャストはソケットで受信されなくなりました

質問:なぜネットワークスタックがBパケットをドロップしないので、ユニキャストでもBサブネットへのブロードキャストもBソケットがシャットダウンするまで?

RFC1122は知っています言う:

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

私は、送信監督された自身のサブネットにブロードキャストする意図でブロードキャストすることは、「すべき」節に従わない。しかし、私の質問はなぜBUDP ソケットが存続している限り、それらはドロップされません。

この動作は Linux カーネル 4.4 および 3.13 で確認されました。

関連情報