比如每次都发的数据包大小都为4K,能优化传输速度吗?
正如磁盘操作每次读写一个页面倍数的数据量可以优化性能

解决方案 »

  1.   

    再UDP中有用,在TCP中几乎无用。
    比如说以太网中的MTU为1500,在UDP中发送一个包的有效数据为10个字节,那么一个包中要有20个字节的IP头,8个字节的UDP头,那么网络发送的有效数据比率为10/(20+8+10),如果发送1500-20-8个字节的有效数据,那么网络发送的有效数据比率为(1500-20-8)/1500,效率那个高一看便知,不过如果发的数据大与1478个字节(有效数据+IP头+UDP头>MTU)的情况下,会分为多个包,那么效率又会变化。
    而,TCP中运行send函数,只将数据放入发送缓存中,当你执行多个send函数,可能这些数据都存放在发送缓存中,而真正发送时系统会自动取一定量的数据:当发送缓存中的数据小与MSS(MSS= MTU-TCP头-IP头)时,取出所有数据组成一个IP包,大与MSS时,取出MSS个数据组成IP包,
      

  2.   

    同意楼上的意见
    需要考虑MTU的值,这是一个优化的极限
      

  3.   

    恩,谢谢大家,特别是naile。