发明名称 一种基于连续报文标记的多路径TCP拥塞控制方法
摘要 本发明为一种基于连续报文标记的多路径TCP拥塞控制方法,当缓存队列长度大于标记阈值K时,交换机在输出报文加拥塞标记;接收方服务器通过确认报文反馈拥塞标记,发送方服务器接收到确认报文按有无标记更新确认报文矩阵M<sub>Ti</sub>,计算T时段内该矩阵变化量之和<img file="DDA0000708846580000011.GIF" wi="160" he="152" />当此值大于拥塞阈值θ,计算拥塞因子α,并按α成比例地减小拥塞窗口,α≤1/2,发送报文的拥塞窗口已减标志位置位;<img file="DDA0000708846580000012.GIF" wi="128" he="144" />不大于θ或接收到确认报文无拥塞标记,根据联合增长算法增大拥塞窗口。本发明路径的拥塞状态信息在一个RTT内准确反馈给发送方,根据拥塞程度按比例有约束地减小拥塞窗口,充分利用各链路,保证多路径传输的实施,适用于多路径架构的数据中心网络。
申请公布号 CN104796350A 申请公布日期 2015.07.22
申请号 CN201510214548.0 申请日期 2015.04.29
申请人 广西大学 发明人 叶进;张智卫
分类号 H04L12/803(2013.01)I;H04L12/807(2013.01)I;H04L12/841(2013.01)I 主分类号 H04L12/803(2013.01)I
代理机构 桂林市持衡专利商标事务所有限公司 45107 代理人 欧阳波
主权项 一种基于连续报文标记的多路径TCP拥塞控制方法,其特征为具体步骤如下:Ⅰ、交换机加拥塞标记交换机用随机早期检测对其即将输出的TCP报文缓存队列的长度进行检测,如果瞬时缓存队列长度大于标记阈值K,则对当前即将输出的报文加拥塞标记,否则,不执行任何标记操作;Ⅱ、接收方服务器反馈拥塞标记当接收方服务器接收到标记了拥塞的报文时,在该报文的确认报文上加拥塞标记反馈给发送方服务器;Ⅲ、发送方服务器对拥塞窗口的处理Ⅲ‑1、接收确认报文在第i时刻发送方服务器的一个子流接收到s个确认报文,当发送方服务器有n个子流,某子流r接收到新的确认报文时,更新该子流接收到的确认报文数,并记录到多路径传输控制协议连接的确认报文矩阵M<sub>Ti</sub>中:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msub><mi>M</mi><mi>Ti</mi></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>m</mi><mn>11</mn></msub></mtd><mtd><msub><mi>m</mi><mn>12</mn></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>m</mi><mrow><mn>1</mn><mi>j</mi></mrow></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>m</mi><mrow><mn>1</mn><mi>s</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mi>m</mi><mn>21</mn></msub></mtd><mtd><msub><mi>m</mi><mn>22</mn></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>m</mi><mrow><mn>2</mn><mi>j</mi></mrow></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>m</mi><mrow><mn>2</mn><mi>s</mi></mrow></msub></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><msub><mi>m</mi><mrow><mi>r</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>m</mi><mrow><mi>r</mi><mn>2</mn></mrow></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>m</mi><mi>rj</mi></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>m</mi><mi>rs</mi></msub></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd><mtd></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><msub><mi>m</mi><mrow><mi>n</mi><mn>1</mn></mrow></msub></mtd><mtd><msub><mi>m</mi><mrow><mi>n</mi><mn>2</mn></mrow></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>m</mi><mi>nj</mi></msub></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><msub><mi>m</mi><mi>ns</mi></msub></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000708846550000011.GIF" wi="935" he="535" /></maths>m<sub>rj</sub>表示第r条子流当前接收到的第j个确认报文,若该确认报文包含拥塞标记位,则m<sub>rj</sub>=1;否则,即该确认报文不包含拥塞标记位,m<sub>rj</sub>=0;矩阵M<sub>Ti</sub>的项数r×s表示该发送方服务器n个子流接收到的确认报文总数;某一时刻i,当发送方服务器的某个子流接收到确认报文时,首先判断是否为有拥塞标记的确认报文,若该确认报文无拥塞标记,m<sub>rj</sub>=0;更新该子流接收到的确认报文数,并记录到确认报文矩阵M<sub>Ti</sub>;直接进入步骤Ⅲ‑32;若该确认报文有拥塞标记,停止增大该子流的拥塞窗口,m<sub>rj</sub>=1;更新该子流当前接收到的确认报文数,并记录到确认报文矩阵M<sub>Ti</sub>中;进入下一步骤进入步骤Ⅲ‑2;Ⅲ‑2、计算确认报文矩阵变化量计算统计时间T时段内p个时刻相邻两个时间点所记录的确认报文矩阵变化量之和;此值若大于设定的拥塞阈值θ,即拥塞标记报文数增大时,判定拥塞程度增高,进入步骤Ⅲ‑31;此值若等于或小于设定的拥塞阈值θ,判定当前路径状况良好,进入步骤Ⅲ‑32;所述拥塞阈值θ为大于0的任意数;由发送方服务器设定;由第i‑1时刻到第i时刻内、确认报文矩阵的变化量△<sub>i</sub>=M<sub>Ti</sub>‑M<sub>T(i‑1)</sub>,并统计T时段内p个时刻确认报文矩阵变化量之和<img file="FDA0000708846550000021.GIF" wi="165" he="143" />p是可调节参数,1≤p≤5;若<img file="FDA0000708846550000022.GIF" wi="246" he="144" />成立,即拥塞标记确认报文数增大,则判定拥塞程度增高,,进入步骤Ⅲ‑31;若<img file="FDA0000708846550000023.GIF" wi="243" he="143" />成立,则认为当前路径状况良好,进入步骤Ⅲ‑32;Ⅲ‑3、拥塞程度的判定和拥塞窗口的调整Ⅲ‑31、减小拥塞窗口计算拥塞因子<img file="FDA0000708846550000024.GIF" wi="283" he="214" />调整拥塞窗口值为W′<sub>r</sub>=W<sub>r</sub>(1‑α);Ⅲ‑32、增大拥塞窗口根据联合增长算法增大拥塞窗口;Ⅲ‑321、若当前拥塞窗口小于慢启动门限值φ,则直接将当前拥塞窗口更新为W′<sub>r</sub>=W<sub>r</sub>+1,慢启动门限值φ采用主机的网络协议栈默认值;Ⅲ‑322、若当前拥塞窗口等于慢启动门限值φ,进入拥塞避免阶段,根据联合增长算法的子流耦合思想,计算各子流的拥塞窗口值之和<img file="FDA0000708846550000031.GIF" wi="344" he="155" />将当前拥塞窗口值更新为W′<sub>r</sub>=W<sub>r</sub>+min(β/W<sub>total</sub>,1/W<sub>r</sub>),其中,<img file="FDA0000708846550000032.GIF" wi="550" he="164" />式中rtt<sub>r</sub>为某个子流r的数据往返时间。
地址 530004 广西壮族自治区南宁市大学东路100号广西大学计算机学院