#mermaid-svg-DuR5hoywpt0LkSvo{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-DuR5hoywpt0LkSvo .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-DuR5hoywpt0LkSvo .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-DuR5hoywpt0LkSvo .error-icon{fill:#552222;}#mermaid-svg-DuR5hoywpt0LkSvo .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-DuR5hoywpt0LkSvo .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-DuR5hoywpt0LkSvo .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-DuR5hoywpt0LkSvo .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-DuR5hoywpt0LkSvo .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-DuR5hoywpt0LkSvo .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-DuR5hoywpt0LkSvo .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-DuR5hoywpt0LkSvo .marker{fill:#333333;stroke:#333333;}#mermaid-svg-DuR5hoywpt0LkSvo .marker.cross{stroke:#333333;}#mermaid-svg-DuR5hoywpt0LkSvo svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-DuR5hoywpt0LkSvo p{margin:0;}#mermaid-svg-DuR5hoywpt0LkSvo defs #statediagram-barbEnd{fill:#333333;stroke:#333333;}#mermaid-svg-DuR5hoywpt0LkSvo g.stateGroup text{fill:#9370DB;stroke:none;font-size:10px;}#mermaid-svg-DuR5hoywpt0LkSvo g.stateGroup text{fill:#333;stroke:none;font-size:10px;}#mermaid-svg-DuR5hoywpt0LkSvo g.stateGroup .state-title{font-weight:bolder;fill:#131300;}#mermaid-svg-DuR5hoywpt0LkSvo g.stateGroup rect{fill:#ECECFF;stroke:#9370DB;}#mermaid-svg-DuR5hoywpt0LkSvo g.stateGroup line{stroke:#333333;stroke-width:1;}#mermaid-svg-DuR5hoywpt0LkSvo .transition{stroke:#333333;stroke-width:1;fill:none;}#mermaid-svg-DuR5hoywpt0LkSvo .stateGroup .composit{fill:white;border-bottom:1px;}#mermaid-svg-DuR5hoywpt0LkSvo .stateGroup .alt-composit{fill:#e0e0e0;border-bottom:1px;}#mermaid-svg-DuR5hoywpt0LkSvo .state-note{stroke:#aaaa33;fill:#fff5ad;}#mermaid-svg-DuR5hoywpt0LkSvo .state-note text{fill:black;stroke:none;font-size:10px;}#mermaid-svg-DuR5hoywpt0LkSvo .stateLabel .box{stroke:none;stroke-width:0;fill:#ECECFF;opacity:0.5;}#mermaid-svg-DuR5hoywpt0LkSvo .edgeLabel .label rect{fill:#ECECFF;opacity:0.5;}#mermaid-svg-DuR5hoywpt0LkSvo .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-DuR5hoywpt0LkSvo .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-DuR5hoywpt0LkSvo .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-DuR5hoywpt0LkSvo .edgeLabel .label text{fill:#333;}#mermaid-svg-DuR5hoywpt0LkSvo .label div .edgeLabel{color:#333;}#mermaid-svg-DuR5hoywpt0LkSvo .stateLabel text{fill:#131300;font-size:10px;font-weight:bold;}#mermaid-svg-DuR5hoywpt0LkSvo .node circle.state-start{fill:#333333;stroke:#333333;}#mermaid-svg-DuR5hoywpt0LkSvo .node .fork-join{fill:#333333;stroke:#333333;}#mermaid-svg-DuR5hoywpt0LkSvo .node circle.state-end{fill:#9370DB;stroke:white;stroke-width:1.5;}#mermaid-svg-DuR5hoywpt0LkSvo .end-state-inner{fill:white;stroke-width:1.5;}#mermaid-svg-DuR5hoywpt0LkSvo .node rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-DuR5hoywpt0LkSvo .node polygon{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-DuR5hoywpt0LkSvo #statediagram-barbEnd{fill:#333333;}#mermaid-svg-DuR5hoywpt0LkSvo .statediagram-cluster rect{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-DuR5hoywpt0LkSvo .cluster-label,#mermaid-svg-DuR5hoywpt0LkSvo .nodeLabel{color:#131300;}#mermaid-svg-DuR5hoywpt0LkSvo .statediagram-cluster rect.outer{rx:5px;ry:5px;}#mermaid-svg-DuR5hoywpt0LkSvo .statediagram-state .divider{stroke:#9370DB;}#mermaid-svg-DuR5hoywpt0LkSvo .statediagram-state .title-state{rx:5px;ry:5px;}#mermaid-svg-DuR5hoywpt0LkSvo .statediagram-cluster.statediagram-cluster .inner{fill:white;}#mermaid-svg-DuR5hoywpt0LkSvo .statediagram-cluster.statediagram-cluster-alt .inner{fill:#f0f0f0;}#mermaid-svg-DuR5hoywpt0LkSvo .statediagram-cluster .inner{rx:0;ry:0;}#mermaid-svg-DuR5hoywpt0LkSvo .statediagram-state rect.basic{rx:5px;ry:5px;}#mermaid-svg-DuR5hoywpt0LkSvo .statediagram-state rect.divider{stroke-dasharray:10,10;fill:#f0f0f0;}#mermaid-svg-DuR5hoywpt0LkSvo .note-edge{stroke-dasharray:5;}#mermaid-svg-DuR5hoywpt0LkSvo .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#mermaid-svg-DuR5hoywpt0LkSvo .statediagram-note rect{fill:#fff5ad;stroke:#aaaa33;stroke-width:1px;rx:0;ry:0;}#mermaid-svg-DuR5hoywpt0LkSvo .statediagram-note text{fill:black;}#mermaid-svg-DuR5hoywpt0LkSvo .statediagram-note .nodeLabel{color:black;}#mermaid-svg-DuR5hoywpt0LkSvo .statediagram .edgeLabel{color:red;}#mermaid-svg-DuR5hoywpt0LkSvo #dependencyStart,#mermaid-svg-DuR5hoywpt0LkSvo #dependencyEnd{fill:#333333;stroke:#333333;stroke-width:1;}#mermaid-svg-DuR5hoywpt0LkSvo .statediagramTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-DuR5hoywpt0LkSvo :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} full_bw_reached
inflight ≤ BDP
间隔到期
排水完成 + 驻留时间到
相位循环
STARTUP
DRAIN
PROBE_BW
PROBE_RTT
pacing_gain ≈ 2.89x
cwnd_gain ≈ 2.89x
pacing_gain ≈ 0.35x
cwnd_gain ≈ 2.89x
增益表循环 1.25x/0.75x/8×1.0x
cwnd → 4 segments