现在的位置: 首页 > 综合 > 正文

LINUX 下tcp 和 udp 套接字收发缓冲区的大小决定规则 . LINUX 下tcp 和 udp 套接字收发缓冲区的大小决定规则

2013年02月09日 ⁄ 综合 ⁄ 共 1817字 ⁄ 字号 评论关闭

const int udp_recvbufsize = 384 * 1024 ;
int result = ::setsockopt(m_hSocket, SOL_SOCKET, SO_RCVBUF, 
  (char*)&udp_recvbufsize, sizeof(int));
// 如果是由于你发送的速率较高而引起的,如500kbit/s, 那么设置大点的UDP缓冲区是比较有效的.

 

LINUX 下tcp 和 udp 套接字收发缓冲区的大小决定规则

分类:
网络编程
LINUX

413人阅读
评论(0)
收藏
举报

1. tcp 收发缓冲区默认值 

[root@qljt core]# cat /proc/sys/net/ipv4/tcp_rmem 
4096    87380   4161536

87380  :tcp接收缓冲区的默认值

 

[root@qljt core]# cat /proc/sys/net/ipv4/tcp_wmem
4096    16384   4161536

16384  : tcp 发送缓冲区的默认值

 

2. tcp 或udp收发缓冲区最大值

[root@qljt core]# 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@qljt core]# cat /proc/sys/net/core/wmem_max 
131071

131071:tcp 或 udp 发送缓冲区最大可设置值得一半

跟上面同一个道理

 

3. udp收发缓冲区默认值

[root@qljt core]# cat /proc/sys/net/core/rmem_default  
111616:udp接收缓冲区的默认值

 

[root@qljt core]# cat /proc/sys/net/core/wmem_default
111616

111616:udp发送缓冲区的默认值

 

4. tcp 或udp收发缓冲区最小值

tcp 或udp接收缓冲区的最小值为 256 bytes,由内核的宏决定;

tcp 或udp发送缓冲区的最小值为 2048 bytes,由内核的宏决定

 

1. tcp 收发缓冲区默认值 

[root@qljt core]# cat /proc/sys/net/ipv4/tcp_rmem 
4096    87380   4161536

87380  :tcp接收缓冲区的默认值

 

[root@qljt core]# cat /proc/sys/net/ipv4/tcp_wmem
4096    16384   4161536

16384  : tcp 发送缓冲区的默认值

 

2. tcp 或udp收发缓冲区最大值

[root@qljt core]# 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@qljt core]# cat /proc/sys/net/core/wmem_max 
131071

131071:tcp 或 udp 发送缓冲区最大可设置值得一半

跟上面同一个道理

 

3. udp收发缓冲区默认值

[root@qljt core]# cat /proc/sys/net/core/rmem_default  
111616:udp接收缓冲区的默认值

 

[root@qljt core]# cat /proc/sys/net/core/wmem_default
111616

111616:udp发送缓冲区的默认值

 

4. tcp 或udp收发缓冲区最小值

tcp 或udp接收缓冲区的最小值为 256 bytes,由内核的宏决定;

tcp 或udp发送缓冲区的最小值为 2048 bytes,由内核的宏决定

抱歉!评论已关闭.