unix socket 的缓冲区大小

1 默认大小

tcp  : cat /proc/sys/net/ipv4/tcp_rmem 

4096    87380   4161536

其中 87380为默认接收缓冲的大小

cat /proc/sys/net/ipv4/tcp_wmem

4096    16384   4161536

其中16384为默认发送缓冲的大小


  udp:cat /proc/sys/net/core/rmem_default 

212992

UDP 默认接收缓冲大小为212992

cat /proc/sys/net/core/wmem_default 

212992

UDP 默认发送缓冲大小为212992


2 最大缓冲区大小

cat /proc/sys/net/core/rmem_max 

131071

tcp,udp最大接收缓冲区大小为131072*2


cat /proc/sys/net/core/wmem_max 

131071

tcp,udp最大发送缓冲区大小为131072*2


3 最小缓冲区大小

由内核宏定义:2288 B


4 设定缓冲区大小

用setsockopt(s, SOL_SOCKET, SO_RCVBUF, &rcv_size, &optlen),自定义缓冲区大小

注意,设定的结果是rcv_size*2 ; 然后在用rcv_size*2 与最大值,最小值进行比较,

如果超过最大值,则取最大值 131071*2

如果小于最小值,则取最小值2288

否则,取rcv_size*2





        

你可能感兴趣的:(unix,network,program)