Параметры net.core.wmem_defaultи wmem_maxуправляют начальным и максимальным размерами буферов сокетов TX в байтах. В то время как сама очередь представляет собой просто связанный список skbуказателей, ядро также отслеживает общий размер байтов, потребляемых символами, по skbмере их добавления и удаления из буфера сокетов. wmem_defaultSysctl устанавливает по умолчанию первоначального потолка для новых гнезд ( net/core/sock.c:sock_init_data()). Приложениям разрешено увеличивать размер буферов своих сокетов, и wmem_maxэто предел для этой функциональности ( net/core/sock.c:sock_setsockopt()).
Когда пакет был удален из буфера сокета и проходит через стек сетей ядра, он помещается в очередь передачи для интерфейса, который ожидает загрузки на сам NIC. txqueuelenНабор по ifconfigили ipкомандам количество кадров , разрешенных для ядра очереди передачи для массового обслуживания дисциплины ( net/sched/sch_generic.c:pfifo_fast_enqueue()).
Наконец, ethtool -Gиспользует ioctl для установки количества записей звонка для кольцевого буфера на самой сетевой плате.