Задание и получение класса трафика

We use cookies. Read the Privacy and Cookie Policy

Задание и получение класса трафика

Объект вспомогательных данных IPV6_TCLASS задает класс трафика для дейтаграммы. Элемент cmsg_level структуры cmsghdr, содержащей эти данные, будет равен IPPROTO_IPV6, элемент cmsg_type будет равен IPV6_TCLASS, а первый байт данных будет первым байтом целочисленного (4-байтового) значения класса трафика (см. рис. 22.5). Согласно разделу А.3, класс трафика состоит из полей DSCP и ECN. Эти поля должны устанавливаться одновременно. Ядро может маскировать или игнорировать указанное пользователем значение, если ему это нужно (например, если ядро реализует ECN, оно может установить биты ECN равными какому-либо значению, игнорируя два бита, указанных с параметром IPV6_TCLASS). Класс трафика обычно лежит в диапазоне 0–255. Значение -1 говорит ядру о необходимости использовать значение по умолчанию.

Чтобы задать класс трафика для пакета, нужно отправить вспомогательные данные вместе с этим пакетом. Чтобы задать класс трафика для всех пакетов, отправляемых через сокет, необходимо использовать параметр сокета IPV6_TCLASS (раздел 27.7). Класс трафика для принятого пакета возвращается функцией recvmsg во вспомогательных данных, только если приложение включило параметр сокета IPV6_RECVTCLASS.

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