NIC驱动程序是否更改了不同套接字缓冲区大小的描述符环算

时间:2016-02-13 21:53:30

标签: sockets linux-kernel linux-device-driver

enter image description here

如果我将套接字缓冲区大小设置为特定的最大值,则 这会影响网卡使用其描述符环的方式吗?

int option = 4800;
setsockopt(socket_id, SOL_SOCKET, SO_RCVBUF, (char *)&nSocketOption, sizeof(nSocketOption);  

根据我决定设置套接字缓冲区大小,环的扇区是否有不同的大小?

我问的原因是因为我在同一个套接字上收到多条消息。在丢弃数据包之前,大小为4,800字节,应该能够容纳大约25条消息。大小为4,800会导致最小的消息被处理的频率与其发送频率相同(大约每秒17次)。但是当我将套接字缓冲区大小更改为4,799时,我的所有小数据包都会被丢弃。

我认为这是由于网卡处理因缓冲区大小而异 这是一个公平的假设吗?

0 个答案:

没有答案