收集TCP端口的访问延迟和丢包率

需求:

    找一款工具可以对TCP 80端口 收集 访问延迟和丢包率

找到的工具:

    1、Hping :  http://www.hping.org/

    2、paping : https://docs.azure.cn/zh-cn/articles/azure-operations-guide/virtual-network/aog-virtual-network-tcp-psping-paping-connectivity

需要了解的知识:

    TCP的flags:

        fin   syn   rst   push   ack   urg   xmas   ymas

    TCP的三次握手:

        1 client   --      syn          ->  server
        2 client   <-     syn+ack   --  server
        3 client   --      ack          ->  server
    
    TCP的四次挥手:
        1 client   --      fin           ->  server
        2 client   <-     ack          --  server
        3 client   <-     fin            --  server
        4 client   --     ack           -> server
 

    知识参考:

        1、https://en.wikipedia.org/wiki/Transmission_Control_Protocol 

        2、http://www.ruanyifeng.com/blog/2017/06/tcp-protocol.html

 

对比:

    Hping数据包:

        client   --      syn          ->      server
        client   <-     syn+ack   --      server
        client   --     rst             ->      server

 

 

 

    Paping数据包:

        client --     syn          ->     server
        client <-    syn+ack   --     server
        client --     ack          ->     server
        client --     fin\ack      ->     server
        client <-    fin\ack      --     server
        client --     ack          ->     server

 

 

 

 结论:

    1、Hping 的tcp模式下不会建立真正的socket连接,client收到syn+ack后,内核会回复RST

    2、Paping会完成三次握手和四次挥手,它的四次挥手只用了三次包,分别有两次fin\ack

            第一次中的fin\ack代表client已收到发送的数据包,并希望关闭会话。

            第二次中的fin\ack代表服务器没有更多的数据发送,这时会合并四次挥手中的2和3步骤

    3、Paping可以满足需求

               

 PS: 四次挥手中,不管是三包还是四包,一方发送fin表示半关闭,双发都发出了fin,并且收到了fin的ack,表示关闭,

 

参考:

    https://ktflash.gitbooks.io/ceh_v9/32_ceh_scanning_methodology_-_check_for_open_ports.html

    http://www.radarhack.com/dir/papers/hping2_v1.5.pdf

    http://www.hping.org/manpage.html

   

posted @ 2020-07-08 14:41  丁壮  阅读(1261)  评论(0编辑  收藏  举报