关于TCP与UDP两种连接方式哪种更快?

Discussion in 'CTP' started by huiyujian, Apr 24, 2012.

  1. 在CTP平台下,有没有人测试过用这两种连接方式哪种更快?
    我测试的结果是TCP的接收数据速度大于UDP,测试方法如下:
    在OnRtnDepthMarketData函数下用下面的代码:

    GetLocalTime( &sys_time );
    cerr<<pDepthMarketData->UpdateTime<<"::"<<sys_time.wSecond*1000+sys_time.wMilliseconds<<endl;

    同一个节点下TCP的程序平均快1ms
    原因不详。
     
  2. 原因不详,坐听楼主分析。
     
  3. 首先,我想请有条件的朋友测试一下,是否跟我的结论一致。
    这样可以排除是否我的代码或测试逻辑有误。

    如果其他人测试的结论和我的一致。
    我能够想到的原因是,TCP和UDP拆包的实现细节对用户是屏蔽的,有可能是因为UDP拆包的实现细节不够优化。
    抛砖引玉,请大家补充
     
  4. 我有点怀疑这个结果,TCP是可靠连接,UDP是不可靠连接,理论上单纯讲速度的话,应该是UDP模式快些的。当然,没有测试过,仅供参考。
     
  5. 确实测试结果和理论是不一致,所以希望哪位大侠也能够测试一下
     
  6. 你的测试方法有问题:
    对于相差1ms的数据,用GetLocalTime这个函数是不合适的,因为GetLocalTime的精度是1ms。
    要得到高精度的结果,用QueryPerformanceFrequency()+QueryPerformanceCounter()比较合适。
     
  7. 问个问题,TCP推行情速度是不是固定的啊,我收到的CTP行情是500ms一条
     
  8. 交易所每0.5秒发布一次行情,CTP不可能比交易所的数据更多。