多次测试发现,连接上头4个请求里,时间延迟比较明显,而再往后则几乎没有延迟,每个请求都是客户端发送一个简单报文,服务端返回一个约10k数据,客户端收到后再请求另外数据包,连续试,只要是通过网络,就有头4个请求延迟(一次往返费时长点)的现象。
请指点!

解决方案 »

  1.   

    呵呵,大伙踊跃点来分析到底问题在何处,其实我想这个放得广一点就是怎么提高tcp的传输效率
      

  2.   

    1、因为TCP的“慢启动”机制,“拥塞窗口”的变化呈“指数退避”。
    2、可能开始的4个报文丢失了,TCP使用了超时重发机制,所以时间延长了。
      

  3.   

    回复人: tangrh(阿唐) ( ): 
       呵呵,大伙踊跃点来分析到底问题在何处,其实我想这个放得广一点就是怎么提高tcp的传输效率
      
    ===================================
    TCP的传输效率以及每个TCP报文的大小,你几乎无法控制。
    TCP标准和协议栈的实现中已经充分考虑了提高吞吐量的问题。
    这方面已经有很好理论算法和实践经验,都集成到TCP/IP协议栈中了。实际上,不是发送得越快吞吐量就越大的。如果发送过快,网络会发生拥塞,结果是抱文丢失了,必须超时重传来保证可靠传输。这样就增加了时延和带宽占用,引起网络恶化。TCP使用了“慢启动”和“拥塞避免”算法来使传输的吞吐量达到较好的效果。
      

  4.   

    呵呵,谢谢footway的关注,我这个提高tcp的传输效率是指提高我们自己程序的传输效率,而非下层tcp协议栈的效率,这个咱也没有办法去控制,现在假设的是网络也没有拥堵,全部正常,在编写程序的过程中有哪些值得留意的地方,在注意了这些细节后tcp程序的效率达到顶点而且非常稳定,我主要是基于这个目的