TCP Fluid Model

 没有数学理论指导的研究,没有意义。本篇主要介绍Tcp拥塞控制中的流模型[1],现在假设,一条链路上只有一个tcp流。

符号含义
W ( t ) W(t) W(t)拥塞窗口
R ( t ) R(t) R(t)RTT
Q ( t ) Q(t) Q(t)网络队列长度
X ( t ) X(t) X(t)发送速率
C C C瓶颈链路带宽

 需要点背景,经典的TCP的拥塞控制算法遵从AIMD原则.TCP在拥塞避免阶段,每收到一个ACK,窗口大小增加 1 W \frac{1}{W} W1,经过一个RTT,窗口大小增加1.这句话用数学公式表示:
d W = 1 R ( t ) d t (1) dW=\frac{1}{R(t)}dt\tag{1} dW=R(t)1dt(1)
 (1)当 X ( t ) < C X(t)<C X(t)<C时,就是发送速率小于网络中的带宽处理能力,不存在排队现象,有如下结论:
W ˙ = 1 R m i n (2) \dot{W}=\frac{1}{R_{min}}\tag{2} W˙=Rmin1(2)
R ( t ) = R m i n (3) R(t)=R_{min}\tag{3} R(t)=Rmin(3)
Q ( t ) = 0 (4) Q(t)=0\tag{4} Q(t)=0(4)
X ( t ) = W ( t ) R m i n (5) X(t)=\frac{W(t)}{R_{min}}\tag{5} X(t)=RminW(t)(5)
 (2)当 X ( t ) > C X(t)>C X(t)>C时,发送速率超出了网络的处理能力,网络中开始出现排队现象,有如下结论:
W ˙ ( t ) = 1 R ( t ) (6) \dot{W}(t)=\frac{1}{R(t)}\tag{6} W˙(t)=R(t)1(6)
R ( t ) = R m i n + Q ( t ) C (7) R(t)=R_{min}+\frac{Q(t)}{C}\tag{7} R(t)=Rmin+CQ(t)(7)
Q = ∫ ( X ( t ) − C ) d t ⇒ Q ˙ ( t ) = X ( t ) − C (8) Q=\int(X(t)-C)dt\Rightarrow\dot{Q}(t)=X(t)-C\tag{8} Q=(X(t)C)dtQ˙(t)=X(t)C(8)
X ( t ) = ( 1 + 1 W ( t ) ) C (9) X(t)=(1+\frac{1}{W(t)})C\tag{9} X(t)=(1+W(t)1)C(9)
 公式(9)不是很明显,按照[1]的说法,发送速率已经超出了瓶颈链路的处理能力,ACK返回的速率 a c k _ r a t e ack\verb|_|rate ack_rate为瓶颈链路的处理能力 C C C,所以 X ( t ) = ( 1 + 1 W ( t ) ) ∗ a c k _ r a t e X(t)=(1+\frac{1}{W(t)})*ack\verb|_|rate X(t)=(1+W(t)1)ack_rate.
 以上几个公式可以说是Tcp研究中的麦克斯韦方程组。
 求解,对(7)求导:
KaTeX parse error: \tag works only in display equations
 根据(6)(10),得到:
1 = W ˙ ( t ) R ( t ) = W ( t ) R ˙ ( t ) ⇒ d ( R ( t ) W ( t ) ) d t = 2 (11) 1=\dot{W}(t){R(t)}=W(t)\dot{R}(t)\Rightarrow\frac{d(R(t)W(t))}{dt}=2\tag{11} 1=W˙(t)R(t)=W(t)R˙(t)dtd(R(t)W(t))=2(11)
 并且,对(12)求导可以得到(11)左边等式的结论,说明在达到瓶颈链路的处理能力后,窗口的增加,带来时延的增加,发送速率并没有增益。
W ( t ) R ( t ) = C (12) \frac{W(t)}{R(t)}=C\tag{12} R(t)W(t)=C(12)
 将(12)带入(11):
C R R ˙ = 1 ⇒ ∫ R m i n R R d R = ∫ 0 t 1 C d t ⇒ R ( t ) = 2 C t + R m i n 2 (13) CR\dot{R}=1\Rightarrow\int_{R_{min}}^{R}{R}dR=\int_{0}^{t}\frac{1}{C}dt\Rightarrow{R(t)=\sqrt{\frac{2}{C}t+R_{min}^{2}}}\tag{13} CRR˙=1RminRRdR=0tC1dtR(t)=C2t+Rmin2 (13)
 (13)代入(12):
W ( t ) = C R ( t ) = 2 C ∗ t + ( C R m i n ) 2 = 2 C ∗ t + ( W ( 0 ) ) 2 (14) W(t)=CR(t)=\sqrt{2C*t+(CR_{min})^{2}}=\sqrt{2C*t+(W(0))^{2}}\tag{14} W(t)=CR(t)=2Ct+(CRmin)2 =2Ct+(W(0))2 (14)
Q ˙ ( t ) = C W ( t ) = W ˙ ( t ) ⇒ Q ( t ) = W ( t ) − W ( 0 ) (15) \dot{Q}(t)=\frac{C}{W(t)}=\dot{W}(t)\Rightarrow{Q(t)=W(t)-W(0)}\tag{15} Q˙(t)=W(t)C=W˙(t)Q(t)=W(t)W(0)(15)
X ( t ) = C + 1 R ( t ) (16) X(t)=C+\frac{1}{R(t)}\tag{16} X(t)=C+R(t)1(16)
 而且,还可以得到:
Q ˙ ( t ) = C W ( t ) = 1 R ( t ) = W ˙ ( t ) (17) \dot{Q}(t)=\frac{C}{W(t)}=\frac{1}{R(t)}=\dot{W}(t)\tag{17} Q˙(t)=W(t)C=R(t)1=W˙(t)(17)

 推广到多条流:

符号含义
W i ( t ) W_{i}(t) Wi(t)第i个tcp流拥塞窗口
R i ( t ) R_{i}(t) Ri(t)第i个tcp流RTT
Q ( t ) Q(t) Q(t)网络队列长度
X ( t ) X(t) X(t)所有数据流发送速率和
X i ( t ) X_{i}(t) Xi(t)第i个tcp流发送速率
C C C瓶颈链路带宽
Y i ( t ) Y_{i}(t) Yi(t)第i个tcp流返回ack的速率

W i ˙ ( t ) = 1 R i ( t ) (18) \dot{W_{i}}(t)=\frac{1}{R_{i}(t)}\tag{18} Wi˙(t)=Ri(t)1(18)
R i ( t ) = R i , m i n + Q ( t ) C (19) R_{i}(t)=R_{i,min}+\frac{Q(t)}{C}\tag{19} Ri(t)=Ri,min+CQ(t)(19)
Q ˙ ( t ) = X ( t ) − C ⇒ Q ˙ ( t ) = − C + N R i ( T ) W i ( t ) (20) \dot{Q}(t)=X(t)-C\Rightarrow \dot{Q}(t)=-C+\frac{N}{R_{i}(T)}W_{i}(t)\tag{20} Q˙(t)=X(t)CQ˙(t)=C+Ri(T)NWi(t)(20)
X i ( t ) = ( 1 + 1 W i ( t ) ) Y i ( t ) (21) X_{i}(t)=(1+\frac{1}{W_{i}(t)})Y_{i}(t)\tag{21} Xi(t)=(1+Wi(t)1)Yi(t)(21)
 根据(17)可以得到:
Q ˙ ( t ) = ∑ i = 1 N 1 R i ( t ) = ∑ i = 1 N 1 R i , m i n + Q ( t ) C (22) \dot{Q}(t)=\sum_{i=1}^N\frac{1}{R_{i}(t)}=\sum_{i=1}^N\frac{1}{R_{i,min}+\frac{Q(t)}{C}}\tag{22} Q˙(t)=i=1NRi(t)1=i=1NRi,min+CQ(t)1(22)
 公式(22)还有另外的表达形式,参考[2].
[1]A Note on Tcp Fluid Model
[2]Hollot C V, Misra V, Towsley D, et al. Analysis and design of controllers for AQM routers supporting TCP flows[J]. IEEE Transactions on automatic control, 2002, 47(6): 945-959.

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
Fluid Flux V1.0和V1.1是兼容UE4和UE5的流体模拟插件。它提供了强大的流体模拟功能,并附带简单的使用教程。这个插件可以在虚幻引擎中实现真实的流体效果,使游戏或模拟中的水体、液体等元素更加逼真。除了基本的流体模拟功能外,它还提供了一些进阶用法,例如自定义查看淹没情况等。另外,插件中的BP_FluxModifierSourceActor是一个可以持续产生流体的蓝图角色,相关参数可以在Actor的Component中进行设置,当参数值为-1时,它可以无限产生流体。总的来说,Fluid Flux是一个强大且灵活的流体模拟插件,可以帮助开发者实现各种流体效果。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Fluid Flux V1.0、V1.1 兼容UE4、UE5最强の流体模拟插件,带使用教程](https://download.csdn.net/download/qq_30652949/86245056)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [UE5_Fluid Flux插件的使用](https://blog.csdn.net/zhaozhaozhaozha/article/details/131311261)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [UE4 - 河流流体插件Fluid Flux](https://blog.csdn.net/DoomGT/article/details/126046966)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值