【发布时间】:2013-05-16 18:01:58
【问题描述】:
我熟悉 BSD 套接字,翻阅 sendto 的手册页,我碰到了 MSG_CONFIRM 标志,这对我来说现在很神秘。
描述说:
告诉链接层发生了前向进展:你得到了一个 对方回复成功。如果链路层没有得到 这将定期重新探测邻居(例如,通过单播 ARP)。 仅在 SOCK_DGRAM 和 SOCK_RAW 套接字上有效,目前 仅适用于 IPv4 和 IPv6。
快速浏览 arp 的手册页后,我了解到标记 MSG_CONFIRM 可以防止 ARP 映射 MAC 地址 ↔ 远程机器的 IP 地址被认为是陈旧的。
现在我很困惑,因为我看不出有什么理由我应该不把它写出来,因此,他们为什么不直接在图书馆里强制执行。为什么应用层要处理链接层发生的任何事情。
那么我错过了什么吗?我应该什么时候设置它,还是不设置它?
【问题讨论】: