zoukankan      html  css  js  c++  java
  • 网速调控、带宽限制原理探究

    市面上有很多网速调控软件,而其原理不得而知。抓包看了下,记录如下:

    限速后抓包发现多了大量的Client向Server发的TCP Zerowindow包和些许Server向Client发的TCP Keep-Alive包,如图:

    image

    比对发现,限不限速的滑动窗口大小是一样的,总结原理如下:

    1.限速是通过滑动窗口协议控制的,当超过设定的阈值,Client会向Server发TCP Zerowindow包,表示窗口缓冲区已满,此时Server不再向Client传递数据。

    2.不传数据时,Server会向Client发TCP Keep-Alive包保持连接。

    3.当Client再请求数据时会向Server发TCP Window Update包以更新窗口,Server收到后会向Client继续传数据。

    既然没有调控窗口大小,所以如果阈值调得很低,就可能会出现控制连接的数据包比正常业务的数据包还多,如图:

    image

    这也解释了为什么限速为某个定值,实时速度却上下波动。网速调控、带宽限制大致应该都是这个原理。

  • 相关阅读:
    combiner中使用状态模式
    了解Shell
    优秀工具推荐
    linux安装weblogic10.3
    FastDFS上传下载(上)
    java压缩工具类
    06链表
    05数组
    04时间复杂度
    03复杂度
  • 原文地址:https://www.cnblogs.com/btlulu/p/4093436.html
Copyright © 2011-2022 走看看