Объединение пакетов UDP в цепочку

Если размер дейтаграммы UDP превышает размер MTU, то протокол IP разбивает дейтаграммы на фрагменты, соответствующие размеру MTU. Интерфейсы Ethernet поддерживают функцию объединения пакетов UPD в цепочку. По умолчанию в операционной системе AIX эта функция включена.

С помощью объединения пакетов UDP в цепочку IP может создать цепочку, состоящую из всех фрагментов, и передать ее драйверу устройства Ethernet в одном вызове. Такой подход позволяет повысить производительность за счет уменьшения числа вызовов ARP и различных уровней интерфейса и драйвера. При этом в среде SMP уменьшается число вызовов lock и unlock. Кроме того, повышается эффективность кэширования циклов исходного кода. Указанные изменения приводят к снижению нагрузки на CPU отправляющей системы.

Значение опции объединения пакетов UDP в цепочку можно просмотреть с помощью команды ifconfig. В приведенном ниже примере показан вывод команды ifconfig для интерфейса en0, где флаг CHAIN указывает на то, что объединение пакетов в цепочку применяется:
# ifconfig en0
en0: flags=5e080863,80<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD,PSEG,CHAIN>
         inet 192.1.6.1 netmask 0xffffff00 broadcast 192.1.6.255
         tcp_sendspace 65536 tcp_recvspace 65536 tcp_nodelay 1
Для того чтобы выключить объединение пакетов в цепочку, выполните следующую команду:

# ifconfig en0 -pktchain

# ifconfig en0
en0: flags=5e080863,80<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD,PSEG>
         inet 192.1.6.1 netmask 0xffffff00 broadcast 192.1.6.255
         tcp_sendspace 65536 tcp_recvspace 65536 tcp_nodelay 1
Для того чтобы повторно включить объединение пакетов в цепочку, выполните следующую команду:

# ifconfig en0 pktchain

# ifconfig en0
en0: flags=5e080863,80<UP,BROADCAST,NOTRAILERS,RUNNING,SIMPLEX,MULTICAST,GROUPRT,64BIT,CHECKSUM_OFFLOAD,PSEG,CHAIN>
         inet 192.1.6.1 netmask 0xffffff00 broadcast 192.1.6.255
         tcp_sendspace 65536 tcp_recvspace 65536 tcp_nodelay 1