Почему я должен использовать или не использовать MSG_CONFIRM?
Я знакомлюсь с сокетами BSD и перелистываю справочную страницуsendto
Я наткнулся наMSG_CONFIRM
флаг, который для меня довольно загадочный на данный момент.
В описании сказано:
Сообщите канальному слою, что продвижение вперед произошло: вы получили успешный ответ с другой стороны. Если канальный уровень не получает этого, он будет регулярно перепроверять соседа (например, через одноадресный ARP). Действителен только для сокетов SOCK_DGRAM и SOCK_RAW и в настоящее время реализован только для IPv4 и IPv6.
После быстрого просмотра справочной страницыarp
Я понимаю что помечает что тоMSG_CONFIRM
предотвращает сопоставление MAC-адреса ARP ↔ IP-адрес удаленного компьютера как устаревший.
Теперь я озадачен, потому что я не вижу никакой причины, почему я долженне и, следовательно, почему они не применяли это непосредственно в библиотеке. Почему прикладной уровень должен иметь дело со всем, что происходит там, на канальном уровне?
Так я что-то пропустил? когда мне устанавливать или не устанавливать?