如何来理解提供给TCP Client作小包组大包用的发送缓冲区的价值?

25 views
Skip to first unread message

asdf asdf

unread,
Mar 6, 2006, 8:31:50 AM3/6/06
to ACE...@googlegroups.com
基于TCP连接的数据通信是一种可靠的数据通信,一但建立连接数据传输的可靠性就由
TCP来保障,不知我的理解有无问题.

>From: "candid Qiu" <can...@gmail.com>
>Reply-To: ACE...@googlegroups.com
>To: ACE...@googlegroups.com
>Subject: 提供给TCP Client作小包组大包用的发送缓冲区
>Date: Wed, 1 Mar 2006 17:44:33 +0800
>
>1、特性:
> 1)超时立即发送
> 2)多个缓冲区,减少读和写的冲突
> 3)接口简单,只用5个接口
>
>2、总结:
> 通过测试,得出结论为:小包组大包能提高性能,但是需要分清情况。
>如果数据的发送是ping-pang形式的,则最好不要用组包的方式,因为每次都可能超时
,而超时现在能设计的最小Sleep(),window上就100ms,unix上50ms(对么?)
>
>3、使用情况:
> 如果在处理一个包的时候,需要多次发送数据,而数据量又比较小,则最好使用
组包。注意,应该测试分析数据的大小后才决定设置最小发送数据的长度。
>
>
>源程序中我没有提供timer的代码,需要可以自己实现一下。
>
>请提建议和bug!


><< ClientContainer.rar >>

_________________________________________________________________
免费下载 MSN Explorer: http://explorer.msn.com/lccn

邱戈川

unread,
Mar 6, 2006, 7:59:48 PM3/6/06
to 基于ACE和SpiderMonkey的SMS虚拟运营系统
tcp建立后不就一定是可靠的,有可能传输中会出错,所以需要对数据进行校验

不过这个很难模拟
ACE中对于消息发送已经有了缓冲发送机制

如果设置了tcp即时发送,但是又避免发送太频繁,这就需要自己处理

tcp保证传输数据的先后,但是错包还是有可能的
所以对于tcp的流组成包时都要校验

时代过客

unread,
Mar 12, 2006, 9:51:15 PM3/12/06
to 基于ACE和SpiderMonkey的SMS虚拟运营系统
得出结论为:小包组大包能提高性能,但是需要分清情况。
======================
个人同意!

tcp建立后不就一定是可靠的,有可能传输中会出错,所以需要对数据进行校验

========================================
在我的项目中没发现过这样的情况,我觉得TCP是可靠的.一般TCP上的校验是为了安全着想,比如说防止别人恶意修改数据包某一值项,
而通常会在一些敏感的数据包里添加一个对前面字段进行校验的字段,而UDP上的校验多数就是为了可靠传输而做的.

Reply all
Reply to author
Forward
0 new messages