udp之关于linux udp收发包缓冲区大小 | 您所在的位置:网站首页 › 接收缓冲区一般设为多大 › udp之关于linux udp收发包缓冲区大小 |
1、修订单个socket的缓冲区大小:通过setsockopt使用SO_RCVBUF来设置接收缓冲区,该参数在设置的时候不会与rmem_max进行对比校验,但是如果设置的大小超过rmem_max的话,则超过rmem_max的部分不会生效;2、修订linux系统udp缓冲区大小:通过rmem_max来设置系统中udp缓存的上限,该值可通过如下方式查看:root@ubuntu:/mnt/hgfs/vm-shared/socket# cat /proc/sys/net/core/rmem_max131071通过如下方式进行修订:root@ubuntu:/mnt/hgfs/vm-shared/socket# vi /etc/sysctl.conf在文件/etc/sysctl.conf中新增如下信息:rmem_max=MAX需要注意的这里设置的rmem_max参数是整个系统的大小,不是单个socket的大小。修订后的大小可以通过如下命令查看:root@ubuntu:/mnt/hgfs/vm-shared/socket# sysctl -a | grep rmem_max net.core.rmem_max = 131071
1. tcp 收发缓冲区默认值 [root@ www.linuxidc.com]# cat /proc/sys/net/ipv4/tcp_rmem 4096 87380 4161536 87380 :tcp接收缓冲区的默认值 [root@ www.linuxidc.com]# cat /proc/sys/net/ipv4/tcp_wmem 4096 16384 4161536 16384 : tcp 发送缓冲区的默认值 2. tcp 或udp收发缓冲区最大值 [root@ www.linuxidc.com]# cat /proc/sys/net/core/rmem_max 131071 131071:tcp 或 udp 接收缓冲区最大可设置值的一半。 也就是说调用 setsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen); 时rcv_size 如果超过 131071,那么 getsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen); 去到的值就等于 131071 * 2 = 262142 [root@ www.linuxidc.com]# cat /proc/sys/net/core/wmem_max 131071 131071:tcp 或 udp 发送缓冲区最大可设置值得一半。 跟上面同一个道理 3. udp收发缓冲区默认值 [root@ www.linuxidc.com]# cat /proc/sys/net/core/rmem_default 111616:udp接收缓冲区的默认值 [root@ www.linuxidc.com]# cat /proc/sys/net/core/wmem_default 111616 111616:udp发送缓冲区的默认值 4. tcp 或udp收发缓冲区最小值 tcp 或udp接收缓冲区的最小值为 256 bytes,由内核的宏决定; tcp 或udp发送缓冲区的最小值为 2048 bytes,由内核的宏决定 |
CopyRight 2018-2019 实验室设备网 版权所有 |