塊70更新所述受控實(shí)體對(duì)應(yīng)的接收令牌桶的令牌數(shù)的步驟可以通過(guò)上面記載的更新方法實(shí)現(xiàn),即獲取當(dāng)前時(shí)間以及所述接收令牌桶最近一次更新令牌數(shù)的時(shí)間,根據(jù)上述兩個(gè)時(shí)間的差值與令牌生成速率的乘積,計(jì)算出新增的令牌數(shù),將所述新增的令牌數(shù)加上最近一次更新令牌數(shù)時(shí)的原有令牌數(shù),從而獲得當(dāng)前時(shí)間的令牌數(shù)。
[0144]所述接收處理模塊80根據(jù)所述接收令牌桶的令牌數(shù)執(zhí)行所述報(bào)文的接收處理。在一個(gè)實(shí)施例中處理的方式為:
[0145]判斷更新后的所述接收令牌桶的令牌數(shù)是否大于所述報(bào)文的長(zhǎng)度,如果大于,則將所述接收令牌桶的令牌數(shù)減去所述報(bào)文的長(zhǎng)度,然后將所述報(bào)文交給對(duì)應(yīng)的受控實(shí)體;否則,對(duì)所述報(bào)文進(jìn)行丟包處理。
[0146]S卩,判斷token數(shù)量是否大于等于報(bào)文長(zhǎng)度。如果token數(shù)量不足,則將該報(bào)文標(biāo)記為紅色,進(jìn)行相應(yīng)的處理,一般為丟包。報(bào)文處理結(jié)束。
[0147]如果token數(shù)量大于等于報(bào)文長(zhǎng)度,則從token里面扣掉報(bào)文長(zhǎng)度,把報(bào)文交還給原有處理流程。
[0148]本發(fā)明的數(shù)據(jù)接收流量控制系統(tǒng)與接收端的主動(dòng)丟包處理技術(shù)結(jié)合,將主動(dòng)丟包的數(shù)量從15%降到了不到1%,從而大大減少了主動(dòng)丟包帶來(lái)的負(fù)面效果,并且使速率控制更準(zhǔn)確,更平滑。
[0149]本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施方式中的全部或部分流程,以及對(duì)應(yīng)的系統(tǒng),是可以通過(guò)計(jì)算機(jī)程序來(lái)指令相關(guān)的硬件來(lái)完成,所述的程序可存儲(chǔ)于一計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),可包括如上述各實(shí)施方式的流程。其中,所述的存儲(chǔ)介質(zhì)可為磁碟、光盤、只讀存儲(chǔ)記憶體(Read-Only Memory,ROM)或隨機(jī)存儲(chǔ)記憶體(RandomAccess Memory, RAM)等。
[0150]以上所述實(shí)施例僅表達(dá)了本發(fā)明的幾種實(shí)施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對(duì)本發(fā)明專利范圍的限制。應(yīng)當(dāng)指出的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本發(fā)明的保護(hù)范圍。因此,本發(fā)明專利的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)接收流量控制方法,其特征在于,包括以下步驟: 獲取向?qū)Χ税l(fā)出的待發(fā)送報(bào)文; 確定本地發(fā)出所述待發(fā)送報(bào)文的受控實(shí)體,獲取所述受控實(shí)體對(duì)應(yīng)的接收令牌桶的令牌數(shù); 根據(jù)所述接收令牌桶的令牌數(shù)設(shè)置所述待發(fā)送報(bào)文中的通知窗口大小字段,調(diào)整通知窗口大??; 將調(diào)整通知窗口大小之后的所述待發(fā)送報(bào)文發(fā)送給對(duì)端。
2.如權(quán)利要求1所述的數(shù)據(jù)接收流量控制方法,其特征在于,確定發(fā)出所述待發(fā)送報(bào)文的受控實(shí)體的步驟包括: 獲取所述待發(fā)送報(bào)文中的接收實(shí)體標(biāo)記字段,根據(jù)所述接收實(shí)體標(biāo)記字段確定發(fā)出所述待發(fā)送報(bào)文的受控實(shí)體; 和/或, 根據(jù)所述待發(fā)送報(bào)文的上下文信息,確定發(fā)出所述待發(fā)送報(bào)文的受控實(shí)體。
3.如權(quán)利要求1所述的數(shù)據(jù)接收流量控制方法,其特征在于,根據(jù)所述接收令牌桶的令牌數(shù)設(shè)置所述待發(fā)送報(bào)文中的通知窗口大小字段的步驟包括: 根據(jù)所述接收令牌桶的令牌數(shù),計(jì)算所述令牌數(shù)的預(yù)設(shè)單調(diào)遞增函數(shù)的取值,根據(jù)所述單調(diào)遞增函數(shù)的取值設(shè)置待發(fā)送報(bào)文中的通知窗口大小字段。
4.如權(quán)利要求3所述的數(shù)據(jù)接收流量控制方法,其特征在于,根據(jù)所述接收令牌桶的令牌數(shù),計(jì)算所述令牌數(shù)的預(yù)設(shè)單調(diào)遞增函數(shù)的取值的步驟包括: 根據(jù)所述接收令牌桶中的令牌數(shù)以及所述接收令牌桶的令牌深度,按照下式計(jì)算所述單調(diào)遞增函數(shù)的取值:new_wnd=window*g(token, depth) 其中,g(token, depth) =token/depth, token為所述接收令牌桶的令牌數(shù),depth為所述接收令牌桶的令牌深度,window為所述通知窗口的最大值。
5.如權(quán)利要求4所述的數(shù)據(jù)接收流量控制方法,其特征在于,計(jì)算出所述通知窗口大小字段的取值之后,進(jìn)一步包括以下步驟: 將所述通知窗口大小字段的取值對(duì)齊到TCP的最大分段長(zhǎng)度的整數(shù)倍。
6.如權(quán)利要求4所述的數(shù)據(jù)接收流量控制方法,其特征在于,計(jì)算出所述通知窗口大小字段的取值之后,進(jìn)一步包括以下步驟: 如果計(jì)算得到的通知窗口大小字段的取值為0,則將所述通知窗口大小字段的取值設(shè)置為等于TCP的最大分段長(zhǎng)度。
7.如權(quán)利要求1至6任意一項(xiàng)所述的數(shù)據(jù)接收流量控制方法,其特征在于,還包括以下步驟: 接收對(duì)端發(fā)送的報(bào)文; 查找接收所述報(bào)文的受控實(shí)體; 更新所述受控實(shí)體對(duì)應(yīng)的接收令牌桶的令牌數(shù); 根據(jù)所述接收令牌桶的令牌數(shù)執(zhí)行所述報(bào)文的接收處理。
8.如權(quán)利要求7所述的數(shù)據(jù)接收流量控制方法,其特征在于,根據(jù)所述接收令牌桶的令牌數(shù)執(zhí)行所述報(bào)文的接收處理的步驟包括: 判斷更新后的所述接收令牌桶的令牌數(shù)是否大于所述報(bào)文的長(zhǎng)度,如果大于,則將所述接收令牌桶的令牌數(shù)減去所述報(bào)文的長(zhǎng)度,然后將所述報(bào)文交給對(duì)應(yīng)的受控實(shí)體;否則,對(duì)所述報(bào)文進(jìn)行丟包處理。
9.一種數(shù)據(jù)接收流量控制系統(tǒng),其特征在于,包括: 發(fā)送報(bào)文獲取模塊,用于獲取向?qū)Χ税l(fā)出的待發(fā)送報(bào)文; 令牌數(shù)獲取模塊,用于確定本地發(fā)出所述待發(fā)送報(bào)文的受控實(shí)體,獲取所述受控實(shí)體對(duì)應(yīng)的接收令牌桶的令牌數(shù); 通知窗口調(diào)整模塊,用于根據(jù)所述接收令牌桶的令牌數(shù)設(shè)置所述待發(fā)送報(bào)文中的通知窗口大小字段,調(diào)整通知窗口大?。? 發(fā)送模塊,用于將調(diào)整通知窗口大小之后的所述待發(fā)送報(bào)文發(fā)送給對(duì)端。
10.如權(quán)利要求9所述的數(shù)據(jù)接收流量控制系統(tǒng),其特征在于: 所述令牌數(shù)獲取模塊獲取所述待發(fā)送報(bào)文中的接收實(shí)體標(biāo)記字段,根據(jù)所述接收實(shí)體標(biāo)記字段確定發(fā)出所述待發(fā)送報(bào)文的受控實(shí)體; 和/或, 所述令牌數(shù)獲取模塊根據(jù)所述待發(fā)送報(bào)文的上下文信息,確定發(fā)出所述待發(fā)送報(bào)文的受控實(shí)體。
11.如權(quán)利要求9所述的數(shù)據(jù)接收流量控制系統(tǒng),其特征在于: 所述通知窗口調(diào)整模塊根據(jù)所述接收令牌桶的令牌數(shù),計(jì)算所述令牌數(shù)的預(yù)設(shè)單調(diào)遞增函數(shù)的取值,根據(jù)所述單調(diào)遞增函數(shù)的取值設(shè)置待發(fā)送報(bào)文中的通知窗口大小字段。
12.如權(quán)利要求11所述的數(shù)據(jù)接收流量控制系統(tǒng),其特征在于: 所述通知窗口調(diào)整模塊根據(jù)所述接收令牌桶中的令牌數(shù)以及所述接收令牌桶的令牌深度,按照下式計(jì)算所述單調(diào)遞增函數(shù)的取值:new_wnd=window*g(token, depth) 其中,g(token, depth) =token/depth, token為所述接收令牌桶的令牌數(shù),depth為所述接收令牌桶的令牌深度,window為所述通知窗口的最大值。
13.如權(quán)利要求12所述的數(shù)據(jù)接收流量控制系統(tǒng),其特征在于: 所述通知窗口調(diào)整模塊還用于在計(jì)算出所述通知窗口大小字段的取值之后,將所述通知窗口大小字段的取值對(duì)齊到TCP的最大分段長(zhǎng)度的整數(shù)倍。
14.如權(quán)利要求12所述的數(shù)據(jù)接收流量控制系統(tǒng),其特征在于: 所述通知窗口調(diào)整模塊還用于在計(jì)算出所述通知窗口大小字段的取值之后,如果計(jì)算得到的通知窗口大小字段的取值為0,則將所述通知窗口大小字段的取值設(shè)置為等于TCP的最大分段長(zhǎng)度。
15.如權(quán)利要求9至14任意一項(xiàng)所述的數(shù)據(jù)接收流量控制系統(tǒng),其特征在于,所述數(shù)據(jù)接收流量控制系統(tǒng)還包括: 接收模塊,用于接收對(duì)端發(fā)送的報(bào)文; 查找模塊,用于查找接收所述報(bào)文的受控實(shí)體; 更新模塊,用于更新所述受控實(shí)體對(duì)應(yīng)的接收令牌桶的令牌數(shù); 接收處理模塊,用于根據(jù)所述接收令牌桶的令牌數(shù)執(zhí)行所述報(bào)文的接收處理。
16.如權(quán)利要求15所述的數(shù)據(jù)接收流量控制系統(tǒng),其特征在于: 所述接收處理模塊判斷更新后的所述接收令牌桶的令牌數(shù)是否大于所述報(bào)文的長(zhǎng)度,如果大于,則將所述接收令牌桶的令牌數(shù)減去所述報(bào)文的長(zhǎng)度,然后將所述報(bào)文交給對(duì)應(yīng)的受控實(shí)體;否則,對(duì)所述報(bào)文進(jìn)行丟包處理。
【專利摘要】本發(fā)明提供一種數(shù)據(jù)接收流量控制方法及其系統(tǒng),包括獲取向?qū)Χ税l(fā)出的待發(fā)送報(bào)文;確定本地發(fā)出所述待發(fā)送報(bào)文的受控實(shí)體,獲取所述受控實(shí)體對(duì)應(yīng)的接收令牌桶的令牌數(shù);根據(jù)所述接收令牌桶的令牌數(shù)設(shè)置所述待發(fā)送報(bào)文中的通知窗口大小字段,調(diào)整通知窗口大??;將調(diào)整通知窗口大小之后的所述待發(fā)送報(bào)文發(fā)送給對(duì)端。通過(guò)根據(jù)所述接收令牌桶的令牌數(shù)設(shè)置發(fā)送到對(duì)端的報(bào)文中的通知窗口大小,因此,發(fā)送端發(fā)送數(shù)據(jù)的速率受到所述通知窗口的限制,減少發(fā)送端發(fā)送速率超過(guò)接收令牌桶的令牌生成速率的情況。通過(guò)發(fā)送端主動(dòng)減少發(fā)送速率來(lái)降低接收端的主動(dòng)丟包,減少數(shù)據(jù)丟包和重傳,提高數(shù)據(jù)傳輸?shù)膸捓寐省?br>【IPC分類】H04L12-807, H04L12-819
【公開(kāi)號(hào)】CN104734985
【申請(qǐng)?zhí)枴緾N201310717514
【發(fā)明人】洪志國(guó)
【申請(qǐng)人】騰訊數(shù)碼(天津)有限公司
【公開(kāi)日】2015年6月24日
【申請(qǐng)日】2013年12月23日
【公告號(hào)】WO2015096692A1