socket缓冲区的影响

来源:互联网 发布:淘宝女士内裤买家秀 编辑:程序博客网 时间:2024/05/17 00:04

       TCP套接字的可用rcvBuf的大小就是TCP通告另一端的窗口大小(滑动窗口),TCP的流量限制措施决定rcvBuf不会溢出;而UDP套接字rcvBuf没有流量限制,因此发送的数据报大小一旦超出rcvBuf的限制,则会被丢弃。

 阻塞与非阻塞

  这取决于用在哪些方面。如果是重要的数据,最好阻塞接收,否则非阻塞,以提高利用率。为了保证数据安全,通常也用阻塞发送。

  一般而言,为了数据安全,可靠,用阻塞操作。 而一些特殊场合,而需要轮询时则采用非阻塞操作。

备注:

MTU: Maxitum Transmission Unit 最大传输单元

网络
MTU字节
超通道
 
65535
16Mb/s令版环(IBM)
17914
4Mb/s令版环(IEEE 802.5)
4464
FDDI
4352
以太网
1500
IEEE 802.2/802.3
1492
X25
576
点对点(低时延)
296

 

下表是用getsockopt获取到的linux平台下socket默认值:(见下表)

sockfd
level(属性分层)
name(属性类型)
value(属性参数),SOCK_STREAM
value(属性参数),SOCK_DGRAM
optlen(属性内存块长度)
 
SOL_SOCKET
 
 
 
 
 
 
SO_KEEPALIVE
0(tcp:2h)
0
sizeof(int)=4
 
 
SO_LINGER
 
 
struct linger
 
 
SO_RVVBUF
87380
110592
4
 
 
SO_SNDBUF
16384
110592
4
 
 
SO_RCVLOWAT
1
1
4
 
 
SO_SNDLOWAT
1
1
4
 
 
SO_RCVTIMEO
0
0
struct timeval
 
 
SO_SNDTIMEO
0
0
struct timeval
 
 
SO_REUSEADDR
0
0
4
 
 
SO_TYPE
1(SOCK_STREAM)
2(SOCK_DGRAM)
4
 
 
 
 
 
 
 
IP_PROTO_TCP
 
 
 
 
 
IP_PROTO_IP
 
 
 
 
 
 
 
 
 
 

MSS: Maxitum Segment Size 最大分段 (以太网1500-40=1460B)
原创粉丝点击