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

Posted flashboxer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了收集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 --     finack      ->     server
        client <-    finack      --     server
        client --     ack          ->     server

 

技术图片

 

 

 结论:

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

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

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

            第二次中的finack代表服务器没有更多的数据发送,这时会合并四次挥手中的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

   

以上是关于收集TCP端口的访问延迟和丢包率的主要内容,如果未能解决你的问题,请参考以下文章

千兆以太网卡吞吐量和丢包率优化总结

以下是可以查询 Windows TCP 吞吐量和性能的命令

renix如何查看时延和抖动和丢包——网络测试仪实操

markdown 使用TC命令模拟网络延迟和丢包

linux 下使用 tc 模拟网络延迟和丢包

linux 下使用 tc 模拟网络延迟和丢包