私は BSD ソケットに精通しており、 のマニュアル ページをめくるとsendto
、フラグにぶつかりましたMSG_CONFIRM
。これは、現時点では非常に不思議です。
説明には次のように書かれています。
進行状況が発生したことをリンク層に伝えます。反対側から成功した応答がありました。リンク層がこれを取得しない場合、定期的に近隣を再プローブします (たとえば、ユニキャスト ARP を介して)。SOCK_DGRAM および SOCK_RAW ソケットでのみ有効で、現在 IPv4 および IPv6 に対してのみ実装されています。
のマニュアル ページをざっと見てみると、arp
何かにフラグを立てることMSG_CONFIRM
で、リモート マシンの ARP マッピング MAC アドレス ↔ IP アドレスが古いと見なされるのを防ぐことがわかりました。
私はそれを入れるべきではない理由が見当たらないので、今私は戸惑っています。アプリケーション層は、リンク層で発生するすべてのことを処理する必要があるのはなぜですか。
それで、私は何かを見逃しましたか?いつ設定する必要がありますか、または設定しないでください。