Вы можете пакетировать необработанные пакеты, но не протоколы более высокого уровня.Низкоуровневый API предназначен для таких утилит, как Wireshark.
В Linux вы можете модифицировать ядро для реализации API sendmmsg()
, аналогичного recvmmsg()
, но когда я это сделал, я зарегистрировал потерю производительности только из-за того, какгромоздкий интерфейс, который на самом деле должен использовать.
База пользователей такого API довольно ограничена, так как если вы действительно хотите высокую производительность, просто перейдите на InfiniBand или используйте API сокетов пользовательского пространства, предоставляемый Solarflare (OpenOnload) или Mellanox, который зависитна их интерфейсах 10 GigE RDMA через Ethernet.