Получение сообщений об изменении транспортной MTU

Получение сообщений об изменении транспортной MTU

Для получения уведомлений об изменении транспортной MTU приложение может включить параметр сокета IPV6_RECVPATHMTU. Этот флаг разрешает доставку транспортной MTU во вспомогательных данных каждый раз, когда эта величина меняется. Функция recvmsg в этом случае возвратит дейтаграмму нулевой длины, но со вспомогательными данными, в которых будет помещена транспортная MTU. Элемент cmsg_level структуры cmsghdr будет иметь значение IPPROTO_IPV6, элемент cmsg_type будет IPV6_PATHMTU, а первый байт данных будет первым байтом структуры iр6_mtuinfo. Эта структура содержит адрес узла, для которого изменилась транспортная MTU, и новое значение этой величины в байтах.

struct ip6_mtuinfo {

 struct sockaddr_in6 ip6m_addr; /* адрес узла */

 uint32_t            ip6m_mtu;  /* транспортная MTU

                                   в порядке байтов узла */

};

Эта структура определяется включением заголовочного файла <netinet/in.h>.

Данный текст является ознакомительным фрагментом.