本帖最后由 VisualEleven 于 2012-10-09 11:41:28 编辑

解决方案 »

  1.   

    参考 rfc792  echo类型 可以使用 id 和 seq 作匹配检查,也就是 你发出去 某id 和 seq 对方 echo reply的 也一定是一样的id和seq 。除非对方没有以rfc792为标准
      

  2.   

    你可以参考《WinSock网络编程经络》第17章Ping程序实现,摘录书中内容如下:
    ================
    为了计算往返时间,通常在可选数据中保存发送Echo请求的时间戳。ICMP规定:接收者在应答中把标识符、序列号及可选数据返回给发送者。
    /* ICMP 首部 -- RFC 792 */
    24  struct icmp_hdr
    25  {   
    26      unsigned char type;         /* 类型 */
    27      unsigned char code;         /* 代码 */
    28      unsigned short checksum;   /* 校验和 */
    29      unsigned short id;          /* 标识符 */
    30      unsigned short seq;         /* 序列号 */
            
            /* 这之后的不是标准 ICMP 首部, 用于记录时间 */
    31      unsigned long timestamp;
    32  };================
    这里有Ping源码,下载地址:http://download.csdn.net/detail/geoff08zhang/4571358
      

  3.   

    http://blog.csdn.net/qy532846454/article/details/5499094
    楼主看下这个是不是你想要的。
      

  4.   

    http://blog.csdn.net/visualeleven/article/details/5512462
    看这个有帮助没?
      

  5.   

    如果两边的TCP栈是你自己实现的那就可以实现你所说的是吗?如果不是干脆把时间戳放在应用层。