Linux设置网络缓冲区大小(TCP/UDP)

一、修改套接字socket的缓存大

echo 65536 > /proc/sys/net/core/rmem_max        #收缓冲区最大值
echo 256960 > /proc/sys/net/core/wmem_max        #发缓冲区最大值
echo 65536 > /proc/sys/net/core/rmem_default        #收缓冲区默认值
echo 65536 > /proc/sys/net/core/wmen_default        #发缓冲区默认值

 可通过setsockopt进行设置,可以先通过getsockop获取缓存大小。

int buflen = 4*1024*1024;
设置读缓存大小
if(0!=setsockopt(m_sendUdpSock,SOL_SOCKET,SO_RCVBUF,&buflen,sizeof(buflen)))
{
    return -1;

}
设置写缓存大小
if(0!=setsockopt(m_sendUdpSock,SOL_SOCKET,SO_SNDBUF,&buflen,sizeof(buflen)))
{
    return -1;

}
socklen_t getnumlen=4;
读取写缓存大小
if(0!=getsockopt(g_sendUdpSock,SOL_SOCKET,SO_RCVBUF,&buflen,&getnumlen))
{
    printf("\n%s\n",strerror(errno));
    return -1;
}

二、修改TCP接收/发送缓冲区

三个值分别代表 最小值、 默认值、 最大值

echo "4096 32768 65536" > /proc/sys/net/ipv4/tcp_rmem        #tcp收缓冲区的默认值

echo "4096 65536 256960" > /proc/sys/net/ipv4/tcp_wmem        #tcp发缓冲区默认值

三、修改UDP接收/发送缓冲区 

echo "8388608" > /proc/sys/net/core/rmem_default        #udp接收缓冲区的默认值
echo "8388608" > /proc/sys/net/core/wmem_default        #udp发送缓冲区的默认值

 四、修改网络设备接收队列

设置接收队列的长度为500。

echo 500 > /proc/sys/net/core/netdev_max_backlog

五、TCP重传次数 

设置tcp重传次数为5。

echo 5 > /proc/sys/net/ipv4/tcp_retries2

  • 3
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值