socket缓冲区的影响

       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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值