当前位置: 技术问答>linux和unix
TCP连接如何获取当前Sender buffer中已经缓存的数据量
来源: 互联网 发布时间:2016-01-22
本文导语: 为了避免拥塞,我期望获取sender buffer中已经缓存的数据量,可以有选择的丢弃一些不重要的数据,而不是等到buffer满发送失败以后,如何获取? | 用QoS http://publib.boulder.ibm.com/infocenter/iseries/v5...
为了避免拥塞,我期望获取sender buffer中已经缓存的数据量,可以有选择的丢弃一些不重要的数据,而不是等到buffer满发送失败以后,如何获取?
|
用QoS
http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/rzak8/rzak8kickoff.htm
http://publib.boulder.ibm.com/infocenter/iseries/v5r4/index.jsp?topic=/rzak8/rzak8kickoff.htm
|
调buffer大小没有用的,关键在于你用send把数据送进buffer之后,无法把丢弃!TCP会重试很久,而后续的数据无法send,
TCP的这种特性无法满足媒体数据的这种要求!媒体数据的传送通常有两种方法
1、用UDP,用UDP的话很麻烦,需要自己考虑如何确认,重发还是放弃!
2、用支持QoS的TCP
TCP的这种特性无法满足媒体数据的这种要求!媒体数据的传送通常有两种方法
1、用UDP,用UDP的话很麻烦,需要自己考虑如何确认,重发还是放弃!
2、用支持QoS的TCP
|
socketctl/ioctrl应该可以设置,
linux中在proc中还可以设全局的。
linux中在proc中还可以设全局的。
|
你可以把buffer设得小一些,send时如果buffer满的话你通过send的返回值就知道了。