擁塞控制方法、設(shè)備及系統(tǒng)的制作方法
【專利摘要】本發(fā)明實(shí)施例提供一種擁塞控制方法、設(shè)備及系統(tǒng)。該擁塞控制方法包括:源端設(shè)備通過(guò)第一端口接收宿端設(shè)備發(fā)送的本地防擁塞應(yīng)答消息,其中,所述本地防擁塞應(yīng)答消息是所述宿端設(shè)備在確定所述宿端設(shè)備中與所述第一端口對(duì)應(yīng)的第二端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度超過(guò)閾值后發(fā)送的;所述源端設(shè)備對(duì)需通過(guò)所述第一端口發(fā)往所述第二端口的數(shù)據(jù)包進(jìn)行暫緩發(fā)送。本發(fā)明實(shí)施例實(shí)現(xiàn)了對(duì)CCN網(wǎng)絡(luò)中節(jié)點(diǎn)的數(shù)據(jù)包進(jìn)行及時(shí)準(zhǔn)確地逐跳擁塞控制。
【專利說(shuō)明】擁塞控制方法、設(shè)備及系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明實(shí)施例涉及無(wú)線通信技術(shù),尤其涉及一種擁塞控制方法、設(shè)備及系統(tǒng)。
【背景技術(shù)】
[0002] 內(nèi)容為中心網(wǎng)絡(luò)(Content Centric Networking,簡(jiǎn)稱CCN)認(rèn)為未來(lái)網(wǎng)絡(luò)應(yīng)該以 直接基于內(nèi)容的命名和路由為基礎(chǔ)。作為CCN的一個(gè)公共的準(zhǔn)則,內(nèi)容是由其名字進(jìn)行唯 一辨識(shí)、路由以及獲取的,而與內(nèi)容的位置無(wú)關(guān)。
[0003] 目前對(duì)CCN網(wǎng)絡(luò)的傳輸控制機(jī)制研究較少。CCN網(wǎng)絡(luò)采用依靠用戶請(qǐng)求驅(qū)動(dòng)模式 的流控協(xié)議,這種流控協(xié)議基于連續(xù)的包請(qǐng)求,觸發(fā)連續(xù)的數(shù)據(jù)包獲取。由于CCN網(wǎng)絡(luò)中節(jié) 點(diǎn)具備緩存功能,所以請(qǐng)求者接收到的數(shù)據(jù)可能來(lái)自數(shù)據(jù)源處,也可能來(lái)自請(qǐng)求路徑上某 些節(jié)點(diǎn)的緩存。這樣相同內(nèi)容的數(shù)據(jù)包便以多種多樣的方式被接收,例如,從多個(gè)不同的節(jié) 點(diǎn),以不同的往返時(shí)間(Round Trip Time,簡(jiǎn)稱RTT)被接收。這樣CCN網(wǎng)絡(luò)節(jié)點(diǎn)就會(huì)容易 出現(xiàn)大量的突發(fā)流量,CCN網(wǎng)絡(luò)節(jié)點(diǎn)上的緩存區(qū)被突發(fā)數(shù)據(jù)包填滿了,再出現(xiàn)的數(shù)據(jù)包只能 被丟棄,造成嚴(yán)重的網(wǎng)絡(luò)擁塞。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明實(shí)施例提供一種擁塞控制方法、設(shè)備及系統(tǒng),以解決CCN網(wǎng)絡(luò)節(jié)點(diǎn)出現(xiàn)大 量的突發(fā)流量時(shí),對(duì)CCN網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行及時(shí)準(zhǔn)確的擁塞控制。
[0005] 第一方面,本發(fā)明實(shí)施例提供一種擁塞控制方法,包括:源端設(shè)備通過(guò)第一端口接 收宿端設(shè)備發(fā)送的本地防擁塞應(yīng)答消息,其中,所述本地防擁塞應(yīng)答消息是所述宿端設(shè)備 在確定所述宿端設(shè)備中與所述第一端口對(duì)應(yīng)的第二端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng) 度超過(guò)閾值后發(fā)送的;
[0006] 所述源端設(shè)備對(duì)需通過(guò)所述第一端口發(fā)往所述第二端口的數(shù)據(jù)包進(jìn)行暫緩發(fā)送。
[0007] 結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述源端設(shè)備對(duì)需通過(guò) 所述第一端口發(fā)往所述第二端口的數(shù)據(jù)包進(jìn)行暫緩發(fā)送,包括:
[0008] 所述源端設(shè)備將所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)設(shè)置為防擁塞狀態(tài);
[0009] 當(dāng)所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)為防擁塞狀態(tài)時(shí),所述源端設(shè)備獲取待 定數(shù)據(jù)包表PCT中需通過(guò)所述第一端口發(fā)往所述第二端口的所述數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間 TTL,在到達(dá)所述TTL時(shí),通過(guò)所述第一端口向所述第二端口發(fā)送所述數(shù)據(jù)包,其中,所述生 存時(shí)間,是指從所述宿端設(shè)備接收的所述數(shù)據(jù)包的請(qǐng)求包的生存時(shí)間。
[0010] 結(jié)合第一方面、第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的 實(shí)現(xiàn)方式中,所述方法還包括:
[0011] 所述源端設(shè)備通過(guò)所述第一端口接收所述宿端設(shè)備通過(guò)所述第二端口發(fā)送的本 地正常應(yīng)答消息,其中,所述本地正常應(yīng)答消息是所述宿端設(shè)備在確定所述第二端口的端 口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度沒(méi)有超過(guò)閾值且向所述第一端口發(fā)送過(guò)所述本地防擁塞應(yīng) 答消息而發(fā)送的;
[0012] 所述源端設(shè)備將所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)恢復(fù)為正常發(fā)送狀態(tài)。
[0013] 結(jié)合第一方面的第一、第二種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn) 方式中,所述方法還包括:
[0014] 所述源端設(shè)備通過(guò)所述第一端口接收所述宿端設(shè)備通過(guò)所述第二端口發(fā)送的請(qǐng) 求包,若本地存儲(chǔ)有與所述請(qǐng)求包對(duì)應(yīng)的數(shù)據(jù)包,則檢測(cè)所述第一端口的端口發(fā)送隊(duì)列中 緩存數(shù)據(jù)的長(zhǎng)度是否超過(guò)閾值,若超過(guò),則將所述數(shù)據(jù)包的信息、所述數(shù)據(jù)包對(duì)應(yīng)的生存時(shí) 間TTL,以及所述第一端口的端口信息存儲(chǔ)到所述待定數(shù)據(jù)包表PCT中;若沒(méi)有超過(guò),則檢 測(cè)所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)是否為所述防擁塞狀態(tài),若是,則將所述數(shù)據(jù)包的 信息、所述數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL,以及所述第一端口的端口信息存儲(chǔ)到所述PCT中; 若不是,則直接將所述數(shù)據(jù)包存儲(chǔ)到所述第一端口的端口發(fā)送隊(duì)列中。
[0015] 第二方面,本發(fā)明實(shí)施例提供一種源端設(shè)備,包括:
[0016] 消息接收模塊,用于通過(guò)第一端口接收宿端設(shè)備發(fā)送的本地防擁塞應(yīng)答消息,其 中,所述本地防擁塞應(yīng)答消息是所述宿端設(shè)備在確定所述宿端設(shè)備中與所述第一端口對(duì)應(yīng) 的第二端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度超過(guò)閾值后發(fā)送的;
[0017] 發(fā)送隊(duì)列緩存管理模塊,用于將需通過(guò)所述第一端口發(fā)往所述第二端口的數(shù)據(jù)包 進(jìn)行暫緩發(fā)送。
[0018] 結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述發(fā)送隊(duì)列緩存管理 模塊具體用于:
[0019] 將所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)設(shè)置為防擁塞狀態(tài);
[0020] 當(dāng)所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)為防擁塞狀態(tài)時(shí),獲取待定數(shù)據(jù)包表PCT 中需通過(guò)所述第一端口發(fā)往所述第二端口的所述數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL,在到達(dá)所述 TTL時(shí),通過(guò)所述第一端口向所述第二端口發(fā)送所述數(shù)據(jù)包,其中,所述生存時(shí)間,是指從所 述宿端設(shè)備接收的所述數(shù)據(jù)包的請(qǐng)求包的生存時(shí)間。
[0021] 結(jié)合第二方面、第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的 實(shí)現(xiàn)方式中,所述消息接收模塊,還用于通過(guò)所述第一端口接收所述宿端設(shè)備通過(guò)所述第 二端口發(fā)送的本地正常應(yīng)答消息,其中,所述本地正常應(yīng)答消息是所述宿端設(shè)備在確定所 述第二端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度沒(méi)有超過(guò)閾值且向所述第一端口發(fā)送過(guò)所 述本地防擁塞應(yīng)答消息而發(fā)送的;
[0022] 所述發(fā)送隊(duì)列緩存管理模塊,還用于將所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)恢復(fù) 為正常發(fā)送狀態(tài)。
[0023] 結(jié)合第二方面的第一、二種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方 式中,所述消息接收模塊,還用于通過(guò)所述第一端口接收所述宿端設(shè)備通過(guò)所述第二端口 發(fā)送的請(qǐng)求包;相應(yīng)地,所述源端設(shè)備還包括:
[0024] 處理模塊,用于若本地存儲(chǔ)有與所述請(qǐng)求包對(duì)應(yīng)的數(shù)據(jù)包,則檢測(cè)所述第一端口 的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度是否超過(guò)閾值,若超過(guò),則將所述數(shù)據(jù)包的信息、所述數(shù) 據(jù)包對(duì)應(yīng)的生存時(shí)間TTL,以及所述第一端口的端口信息存儲(chǔ)到所述待定數(shù)據(jù)包表PCT中; 若沒(méi)有超過(guò),則檢測(cè)所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)是否為所述防擁塞狀態(tài),若是,則 將所述數(shù)據(jù)包的信息、所述數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL,以及所述第一端口的端口信息存儲(chǔ) 到所述PCT中;若不是,則直接將所述數(shù)據(jù)包存儲(chǔ)到所述第一端口的端口發(fā)送隊(duì)列中。
[0025] 第三方面,本發(fā)明實(shí)施例提供一種網(wǎng)絡(luò)系統(tǒng),包括至少一個(gè)源端設(shè)備,以及至少一 個(gè)宿端設(shè)備;
[0026] 所述宿端設(shè)備,用于在確定所述宿端設(shè)備中與所述第一端口對(duì)應(yīng)的第二端口的端 口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度超過(guò)閾值后發(fā)送地防擁塞應(yīng)答消息;
[0027] 所述源端設(shè)備,用于通過(guò)第一端口接收所述宿端設(shè)備發(fā)送的本地防擁塞應(yīng)答消 息,將需通過(guò)所述第一端口發(fā)往所述第二端口的數(shù)據(jù)包進(jìn)行暫緩發(fā)送。
[0028] 結(jié)合第三方面,在第三方面的第一種可能的實(shí)現(xiàn)方式中,所述源端設(shè)備,用于將需 通過(guò)所述第一端口發(fā)往所述第二端口的數(shù)據(jù)包進(jìn)行暫緩發(fā)送,具體為:
[0029] 所述源端設(shè)備,用于將所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)設(shè)置為防擁塞狀態(tài), 當(dāng)所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)為防擁塞狀態(tài)時(shí),獲取待定數(shù)據(jù)包表PCT中需通過(guò) 所述第一端口發(fā)往所述第二端口的所述數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL,在到達(dá)所述TTL時(shí),通 過(guò)所述第一端口向所述第二端口發(fā)送所述數(shù)據(jù)包,其中,所述生存時(shí)間,是指從所述宿端設(shè) 備接收的所述數(shù)據(jù)包的請(qǐng)求包的生存時(shí)間。
[0030] 結(jié)合第三方面、第三方面的第一種可能的實(shí)現(xiàn)方式,在第三方面的第二種可能的 實(shí)現(xiàn)方式中,所述宿端設(shè)備,還用于在確定所述第二端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng) 度沒(méi)有超過(guò)閾值且向所述第一端口發(fā)送過(guò)所述本地防擁塞應(yīng)答消息,發(fā)送本地正常應(yīng)答消 息;
[0031 ] 所述源端設(shè)備,還用于通過(guò)所述第一端口接收所述宿端設(shè)備通過(guò)所述第二端口發(fā) 送的所述本地正常應(yīng)答消息,將所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)恢復(fù)為正常發(fā)送狀 態(tài)。
[0032] 結(jié)合第三方面的第一、二種可能的實(shí)現(xiàn)方式,在第三方面的第三種可能的實(shí)現(xiàn)方 式中,所述宿端設(shè)備,還用于通過(guò)所述第二端口發(fā)送請(qǐng)求包;
[0033] 所述源端設(shè)備,還用于通過(guò)所述第一端口接收所述宿端設(shè)備發(fā)送的所述請(qǐng)求包, 若本地存儲(chǔ)有與所述請(qǐng)求包對(duì)應(yīng)的數(shù)據(jù)包,則檢測(cè)所述第一端口的端口發(fā)送隊(duì)列中緩存數(shù) 據(jù)的長(zhǎng)度是否超過(guò)閾值,若超過(guò),則將所述數(shù)據(jù)包的信息、所述數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL, 以及所述第一端口的端口信息存儲(chǔ)到所述待定數(shù)據(jù)包表PCT中;若沒(méi)有超過(guò),則檢測(cè)所述 第一端口的端口發(fā)送隊(duì)列的狀態(tài)是否為所述防擁塞狀態(tài),若是,則將所述數(shù)據(jù)包的信息、所 述數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL,以及所述第一端口的端口信息存儲(chǔ)到所述PCT中;若不是, 則直接將所述數(shù)據(jù)包存儲(chǔ)到所述第一端口的端口發(fā)送隊(duì)列中。
[0034] 本發(fā)明實(shí)施例擁塞控制方法、設(shè)備及系統(tǒng),宿端設(shè)備若在確定第二端口的端口發(fā) 送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度超過(guò)閾值后,則向源端設(shè)備中與第二端口對(duì)應(yīng)的第一端口發(fā)送本 地防擁塞應(yīng)答消息,通知源端設(shè)備此時(shí)宿端設(shè)備處于擁塞狀態(tài),停止接收源端設(shè)備向第二 端口發(fā)送的數(shù)據(jù)包,則源端設(shè)備接收宿端設(shè)備發(fā)送的本地防擁塞應(yīng)答消息,源端設(shè)備將與 第二端口對(duì)應(yīng)的第一端口的端口發(fā)送隊(duì)列的狀態(tài)設(shè)置為防擁塞狀態(tài),源端設(shè)備在防擁塞狀 態(tài)下對(duì)需通過(guò)第一端口發(fā)往第二端口的數(shù)據(jù)包進(jìn)行暫緩發(fā)送,實(shí)現(xiàn)了在CCN網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備 出現(xiàn)大量數(shù)據(jù)包流量時(shí),及時(shí)地進(jìn)行逐跳地?fù)砣刂?,解決了 CCN網(wǎng)絡(luò)節(jié)點(diǎn)中出現(xiàn)大量突 發(fā)數(shù)據(jù)包流量時(shí),會(huì)造成嚴(yán)重的網(wǎng)絡(luò)擁塞的問(wèn)題。
【專利附圖】
【附圖說(shuō)明】
[0035] 為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā) 明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以 根據(jù)這些附圖獲得其他的附圖。
[0036] 圖1為本發(fā)明擁塞控制方法實(shí)施例一的流程圖;
[0037] 圖2為本發(fā)明擁塞控制方法實(shí)施例二的流程圖;
[0038] 圖3為本發(fā)明擁塞控制方法實(shí)施例三的流程圖;
[0039] 圖4為本發(fā)明擁塞控制方法實(shí)施例四的流程圖;
[0040] 圖5為圖4所示實(shí)施例的的源端設(shè)備的功能示意圖;
[0041] 圖6為本發(fā)明擁塞控制方法實(shí)施例五的流程圖;
[0042] 圖7為圖6所示實(shí)施例的的宿端設(shè)備的功能示意圖;
[0043] 圖8為本發(fā)明擁塞控制源端設(shè)備實(shí)施例一的結(jié)構(gòu)示意圖;
[0044] 圖9為本發(fā)明擁塞控制源端設(shè)備實(shí)施例四的結(jié)構(gòu)示意圖;
[0045] 圖10為本發(fā)明CCN網(wǎng)絡(luò)系統(tǒng)實(shí)施例一的結(jié)構(gòu)示意圖;
[0046] 圖11為本發(fā)明CCN網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備實(shí)施例的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0047] 為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例 中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是 本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員 在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0048] 圖1為本發(fā)明擁塞控制方法實(shí)施例一的流程圖。本實(shí)施例的執(zhí)行主體為CCN網(wǎng)絡(luò) 節(jié)點(diǎn)中的源端設(shè)備,該設(shè)備可以通過(guò)軟件和/或硬件實(shí)現(xiàn)。本實(shí)施例的方案應(yīng)用在CCN網(wǎng) 絡(luò)節(jié)點(diǎn)中,能夠在CCN網(wǎng)絡(luò)節(jié)點(diǎn)出現(xiàn)大量突發(fā)流量時(shí),對(duì)CCN網(wǎng)絡(luò)節(jié)點(diǎn)進(jìn)行及時(shí)準(zhǔn)確的擁塞 控制。如圖1所示,本實(shí)施例的方法可以包括 :
[0049] 步驟101、源端設(shè)備通過(guò)第一端口接收宿端設(shè)備發(fā)送的本地防擁塞應(yīng)答消息。
[0050] CCN網(wǎng)絡(luò)本質(zhì)是點(diǎn)到多點(diǎn)的網(wǎng)絡(luò),CCN網(wǎng)絡(luò)依靠用戶請(qǐng)求驅(qū)動(dòng)模式的流控協(xié)議,這 種流控協(xié)議基于連續(xù)的包請(qǐng)求,觸發(fā)連續(xù)的數(shù)據(jù)包獲取,CCN網(wǎng)絡(luò)節(jié)點(diǎn)同時(shí)既可作為源端設(shè) 備也可作為宿端設(shè)備。由于CCN網(wǎng)絡(luò)節(jié)點(diǎn)具備緩存功能,所以宿端設(shè)備接收到的數(shù)據(jù)包可 能來(lái)至數(shù)據(jù)源處,也可能來(lái)至請(qǐng)求路徑上某些網(wǎng)絡(luò)節(jié)點(diǎn)的緩存,也即宿端設(shè)備接收到的數(shù) 據(jù)包可能來(lái)至多個(gè)不同的源端設(shè)備。
[0051] 具體地,所述本地防擁塞應(yīng)答消息是所述宿端設(shè)備在確定所述宿端設(shè)備中與所述 第一端口對(duì)應(yīng)的第二端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度超過(guò)閾值后發(fā)送的,說(shuō)明此時(shí) 第二端口的端口發(fā)送隊(duì)列緩存已經(jīng)被數(shù)據(jù)包填滿了,處于擁塞狀態(tài),則向源端設(shè)備中與第 二端口對(duì)應(yīng)的第一端口發(fā)送本地防擁塞應(yīng)答消息消息,此時(shí)源端設(shè)備的第一端口暫緩向?qū)?應(yīng)的宿端設(shè)備的第二端口發(fā)送數(shù)據(jù)包。
[0052] 步驟102、源端設(shè)備對(duì)需通過(guò)第一端口發(fā)往第二端口的數(shù)據(jù)包進(jìn)行暫緩發(fā)送。
[0053] 具體地,源端設(shè)備中與第二端口對(duì)應(yīng)的第一端口接收到宿端設(shè)備發(fā)送的本地防擁 塞應(yīng)答消息消息后,說(shuō)明此時(shí)宿端設(shè)備已經(jīng)處于擁塞狀態(tài),則源端設(shè)備將與第二端口對(duì)應(yīng) 的第一端口的端口發(fā)送隊(duì)列的狀態(tài)設(shè)置為防擁塞狀態(tài),此時(shí)對(duì)需通過(guò)第一端口發(fā)往第二端 口的數(shù)據(jù)包進(jìn)行暫緩發(fā)送,這樣就會(huì)減少宿端設(shè)備的數(shù)據(jù)包流量。
[0054] 需要說(shuō)明的是,本實(shí)施例中的宿端設(shè)備同時(shí)也可作為源端設(shè)備,源端設(shè)備同時(shí)也 可作為宿端設(shè)備。
[0055] 本實(shí)施例,宿端設(shè)備若在確定第二端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度超過(guò)閾 值后,則向源端設(shè)備中與第二端口對(duì)應(yīng)的第一端口發(fā)送本地防擁塞應(yīng)答消息消息,通知源 端設(shè)備此時(shí)宿端設(shè)備處于擁塞狀態(tài),停止接收源端設(shè)備向第二端口發(fā)送的數(shù)據(jù)包,則源端 設(shè)備將與第二端口對(duì)應(yīng)的第一端口的端口發(fā)送隊(duì)列的狀態(tài)設(shè)置為防擁塞狀態(tài),源端設(shè)備在 防擁塞狀態(tài)下對(duì)需通過(guò)第一端口發(fā)往第二端口的數(shù)據(jù)包進(jìn)行暫緩發(fā)送,實(shí)現(xiàn)了在CCN網(wǎng)絡(luò) 節(jié)點(diǎn)設(shè)備出現(xiàn)大量數(shù)據(jù)包流量時(shí),進(jìn)行擁塞控制,解決了 CCN網(wǎng)絡(luò)節(jié)點(diǎn)中出現(xiàn)大量突發(fā)數(shù) 據(jù)包流量時(shí),會(huì)造成嚴(yán)重的網(wǎng)絡(luò)擁塞的問(wèn)題。
[0056] 圖2為本發(fā)明擁塞控制方法實(shí)施例二的流程圖,如圖2所示,在圖1所示的方法實(shí) 施例一中源端設(shè)備在防擁塞狀態(tài)下對(duì)需通過(guò)第一端口發(fā)往第二端口的數(shù)據(jù)包進(jìn)行暫緩發(fā) 送,具體可以通過(guò)以下方式實(shí)現(xiàn):
[0057] 步驟201、源端設(shè)備將第一端口的端口發(fā)送隊(duì)列的狀態(tài)設(shè)置為防擁塞狀態(tài)。
[0058] 步驟202、當(dāng)?shù)谝欢丝诘亩丝诎l(fā)送隊(duì)列的狀態(tài)為防擁塞狀態(tài)時(shí),源端設(shè)備獲取待定 數(shù)據(jù)包表(Pending Content Table,簡(jiǎn)稱PCT)中需通過(guò)第一端口發(fā)往第二端口的數(shù)據(jù)包對(duì) 應(yīng)的生存時(shí)間(Time To Live,簡(jiǎn)稱TTL)。
[0059] 具體地,PCT中存儲(chǔ)有數(shù)據(jù)包對(duì)應(yīng)的TTL,其中,生存時(shí)間TTL,是指從所述宿端 設(shè)備接收的所述數(shù)據(jù)包的請(qǐng)求包的生存時(shí)間。請(qǐng)求包的TTL例如是存儲(chǔ)在待定請(qǐng)求包表 (Pending Interest Table,簡(jiǎn)稱PIT)中,而PIT為了限制PIT緩存信息數(shù)量,其中的請(qǐng)求 包都攜帶TTL,超時(shí)的請(qǐng)求包信息會(huì)從PIT表中清除,這樣后續(xù)再到來(lái)的相應(yīng)的數(shù)據(jù)包就會(huì) 被丟棄。
[0060] 步驟203、在到達(dá)TTL時(shí),源端設(shè)備通過(guò)第一端口向第二端口發(fā)送數(shù)據(jù)包。
[0061] 具體地,在到達(dá)TTL時(shí),源端設(shè)備必須通過(guò)第一端口向第二端口發(fā)送數(shù)據(jù)包,無(wú)論 此時(shí)宿端設(shè)備的第二端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度是否超過(guò)閾值,也即無(wú)論宿端 設(shè)備的第二端口是否處于擁塞狀態(tài),否則超過(guò)TTL時(shí),PCT中的記錄會(huì)被刪除。
[0062] 本實(shí)施例,通過(guò)源端設(shè)備將第一端口的端口發(fā)送隊(duì)列的狀態(tài)設(shè)置為防擁塞狀態(tài), 當(dāng)?shù)谝欢丝诘亩丝诎l(fā)送隊(duì)列的狀態(tài)為防擁塞狀態(tài)時(shí),源端設(shè)備獲取PCT中欲通過(guò)第一端口 發(fā)往第二端口的數(shù)據(jù)包對(duì)應(yīng)的TTL,在到達(dá)TTL時(shí),源端設(shè)備通過(guò)第一端口向第二端口發(fā)送 數(shù)據(jù)包,保證數(shù)據(jù)包在其生存時(shí)間內(nèi)發(fā)往第二端口,以免在源端設(shè)備中丟包。
[0063] 圖3為本發(fā)明擁塞控制方法實(shí)施例三的流程圖,在圖1、2所示的方法實(shí)施例基礎(chǔ) 上,進(jìn)一步地,本實(shí)施例的方法還包括:
[0064] 步驟301、源端設(shè)備通過(guò)第一端口接收宿端設(shè)備通過(guò)第二端口發(fā)送的本地正常應(yīng) 答消息。
[0065] 具體地,本地正常應(yīng)答消息是宿端設(shè)備在確定第二端口的端口發(fā)送隊(duì)列中緩存數(shù) 據(jù)的長(zhǎng)度沒(méi)有超過(guò)閾值且向第一端口發(fā)送過(guò)本地防擁塞應(yīng)答消息而發(fā)送的。
[0066] 步驟302、源端設(shè)備將第一端口的端口發(fā)送隊(duì)列的狀態(tài)恢復(fù)為正常發(fā)送狀態(tài)。
[0067] 本實(shí)施例,宿端設(shè)備在確定第二端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度沒(méi)有超過(guò) 閾值后,并且曾向源端設(shè)備中與第二端口對(duì)應(yīng)的第一端口發(fā)送過(guò)本地防擁塞應(yīng)答消息消 息,則宿端設(shè)備向源端設(shè)備中與第二端口對(duì)應(yīng)的第一端口發(fā)送本地正常應(yīng)答消息消息,通 知源端設(shè)備此時(shí)宿端設(shè)備處于非擁塞狀態(tài)可以接收數(shù)據(jù)包,源端設(shè)備將第一端口的端口發(fā) 送隊(duì)列的狀態(tài)恢復(fù)為正常發(fā)送狀態(tài),能夠及時(shí)的防止源端設(shè)備擁塞的發(fā)生。
[0068] 圖4為本發(fā)明擁塞控制方法實(shí)施例四的流程圖。圖5為圖4所示實(shí)施例的源端設(shè) 備的功能示意圖。本實(shí)施例的執(zhí)行主體為CCN網(wǎng)絡(luò)節(jié)點(diǎn)中的源端設(shè)備,該設(shè)備可以通過(guò)軟 件和/或硬件實(shí)現(xiàn)。本實(shí)施例的方案應(yīng)用在CCN網(wǎng)絡(luò)節(jié)點(diǎn)中。如圖4、5所示,在圖1、2所 示的方法實(shí)施例基礎(chǔ)上,進(jìn)一步地,本實(shí)施例的方法可以包括:
[0069] 步驟401、源端設(shè)備通過(guò)第一端口接收宿端設(shè)備發(fā)送的請(qǐng)求包。
[0070] 步驟402、檢測(cè)本地存儲(chǔ)中是否有與請(qǐng)求包對(duì)應(yīng)的數(shù)據(jù)包,若是,則轉(zhuǎn)步驟403 ;若 否,則后續(xù)請(qǐng)求包的處理流程與現(xiàn)有的CCN網(wǎng)絡(luò)節(jié)點(diǎn)處理流程一樣。
[0071] 具體地,如圖5所示,例如可以檢測(cè)CS中是否有與請(qǐng)求包對(duì)應(yīng)的數(shù)據(jù)包,后續(xù)請(qǐng)求 包的處理流程如圖4虛線框內(nèi)的流程與現(xiàn)有的CCN網(wǎng)絡(luò)節(jié)點(diǎn)處理流程一樣,所涉及到的功 能模塊如圖5中所示,此處不再贅述。
[0072] 步驟403、檢測(cè)第一端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度是否超過(guò)閾值,若是, 則轉(zhuǎn)步驟405 ;若否,則轉(zhuǎn)步驟404。
[0073] 具體地,從哪個(gè)端口接收到請(qǐng)求包,相應(yīng)的數(shù)據(jù)包就從哪個(gè)端口發(fā)送出去,這時(shí)就 要檢測(cè)第一端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度是否超過(guò)閾值,判斷是否處于擁塞狀 態(tài),如果處于擁塞狀態(tài)則轉(zhuǎn)步驟405。
[0074] 步驟404、檢測(cè)第一端口的端口發(fā)送隊(duì)列的狀態(tài)是否為防擁塞狀態(tài),若是,則轉(zhuǎn)步 驟405 ;若否,則轉(zhuǎn)步驟406。
[0075] 具體地,檢測(cè)到第一端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度沒(méi)有超過(guò)閾值,則檢 測(cè)第一端口的端口發(fā)送隊(duì)列的狀態(tài)是否為防擁塞狀態(tài),如果不是防擁塞狀態(tài),則直接將數(shù) 據(jù)包存儲(chǔ)到第一端口的端口發(fā)送隊(duì)列中并發(fā)送出去,否則轉(zhuǎn)步驟405。
[0076] 步驟405、將數(shù)據(jù)包的信息、數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL,以及第一端口的端口信 息存儲(chǔ)到PCT中。
[0077] 具體地,如果第一端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度超過(guò)閾值處于擁塞狀 態(tài),就要把相應(yīng)的數(shù)據(jù)包的信息存儲(chǔ)在PCT中,此時(shí)對(duì)數(shù)據(jù)包不做處理,返回步驟401中,后 續(xù)如果檢測(cè)獲知此端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度沒(méi)有超過(guò)閾值,再把數(shù)據(jù)包存儲(chǔ) 到此端口的端口發(fā)送隊(duì)列中,并執(zhí)行步驟404,否則超過(guò)數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL,則刪 除PCT中的記錄。如果處于防擁塞狀態(tài),則將數(shù)據(jù)包的信息、數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL,以 及第一端口的端口信息存儲(chǔ)到PCT中,并把數(shù)據(jù)包存儲(chǔ)到第一端口的端口發(fā)送隊(duì)列中,對(duì) 數(shù)據(jù)包做暫緩發(fā)送處理,如圖2所示實(shí)施例中所述。
[0078] PCT的結(jié)構(gòu)例如可以是如下的表結(jié)構(gòu):
[0079] 表 PCT
[0080]
【權(quán)利要求】
1. 一種擁塞控制方法,其特征在于,包括: 源端設(shè)備通過(guò)第一端口接收宿端設(shè)備發(fā)送的本地防擁塞應(yīng)答消息,其中,所述本地防 擁塞應(yīng)答消息是所述宿端設(shè)備在確定所述宿端設(shè)備中與所述第一端口對(duì)應(yīng)的第二端口的 端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度超過(guò)閾值后發(fā)送的; 所述源端設(shè)備對(duì)需通過(guò)所述第一端口發(fā)往所述第二端口的數(shù)據(jù)包進(jìn)行暫緩發(fā)送。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述源端設(shè)備對(duì)需通過(guò)所述第一端口發(fā) 往所述第二端口的數(shù)據(jù)包進(jìn)行暫緩發(fā)送,包括: 所述源端設(shè)備將所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)設(shè)置為防擁塞狀態(tài); 當(dāng)所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)為防擁塞狀態(tài)時(shí),所述源端設(shè)備獲取待定數(shù) 據(jù)包表PCT中需通過(guò)所述第一端口發(fā)往所述第二端口的所述數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL, 在到達(dá)所述TTL時(shí),通過(guò)所述第一端口向所述第二端口發(fā)送所述數(shù)據(jù)包,其中,所述生存時(shí) 間,是指從所述宿端設(shè)備接收的所述數(shù)據(jù)包的請(qǐng)求包的生存時(shí)間。
3. 根據(jù)權(quán)利要求1或2所述的方法,其特征在于,所述方法還包括: 所述源端設(shè)備通過(guò)所述第一端口接收所述宿端設(shè)備通過(guò)所述第二端口發(fā)送的本地正 常應(yīng)答消息,其中,所述本地正常應(yīng)答消息是所述宿端設(shè)備在確定所述第二端口的端口發(fā) 送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度沒(méi)有超過(guò)閾值且向所述第一端口發(fā)送過(guò)所述本地防擁塞應(yīng)答消 息而發(fā)送的; 所述源端設(shè)備將所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)恢復(fù)為正常發(fā)送狀態(tài)。
4. 根據(jù)權(quán)利要求2或3所述的方法,其特征在于,所述方法還包括: 所述源端設(shè)備通過(guò)所述第一端口接收所述宿端設(shè)備通過(guò)所述第二端口發(fā)送的請(qǐng)求包, 若本地存儲(chǔ)有與所述請(qǐng)求包對(duì)應(yīng)的數(shù)據(jù)包,則檢測(cè)所述第一端口的端口發(fā)送隊(duì)列中緩存數(shù) 據(jù)的長(zhǎng)度是否超過(guò)閾值,若超過(guò),則將所述數(shù)據(jù)包的信息、所述數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL, 以及所述第一端口的端口信息存儲(chǔ)到所述待定數(shù)據(jù)包表PCT中;若沒(méi)有超過(guò),則檢測(cè)所述 第一端口的端口發(fā)送隊(duì)列的狀態(tài)是否為所述防擁塞狀態(tài),若是,則將所述數(shù)據(jù)包的信息、所 述數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL,以及所述第一端口的端口信息存儲(chǔ)到所述PCT中;若不是, 則直接將所述數(shù)據(jù)包存儲(chǔ)到所述第一端口的端口發(fā)送隊(duì)列中。
5. -種源端設(shè)備,其特征在于,包括: 消息接收模塊,用于通過(guò)第一端口接收宿端設(shè)備發(fā)送的本地防擁塞應(yīng)答消息,其中,所 述本地防擁塞應(yīng)答消息是所述宿端設(shè)備在確定所述宿端設(shè)備中與所述第一端口對(duì)應(yīng)的第 二端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度超過(guò)閾值后發(fā)送的; 發(fā)送隊(duì)列緩存管理模塊,用于將需通過(guò)所述第一端口發(fā)往所述第二端口的數(shù)據(jù)包進(jìn)行 暫緩發(fā)送。
6. 根據(jù)權(quán)利要求5所述的源端設(shè)備,其特征在于,所述發(fā)送隊(duì)列緩存管理模塊具體用 于: 將所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)設(shè)置為防擁塞狀態(tài); 當(dāng)所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)為防擁塞狀態(tài)時(shí),獲取待定數(shù)據(jù)包表PCT中需 通過(guò)所述第一端口發(fā)往所述第二端口的所述數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL,在到達(dá)所述TTL 時(shí),通過(guò)所述第一端口向所述第二端口發(fā)送所述數(shù)據(jù)包,其中,所述生存時(shí)間,是指從所述 宿端設(shè)備接收的所述數(shù)據(jù)包的請(qǐng)求包的生存時(shí)間。
7. 根據(jù)權(quán)利要求5或6所述的源端設(shè)備,其特征在于, 所述消息接收模塊,還用于通過(guò)所述第一端口接收所述宿端設(shè)備通過(guò)所述第二端口發(fā) 送的本地正常應(yīng)答消息,其中,所述本地正常應(yīng)答消息是所述宿端設(shè)備在確定所述第二端 口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度沒(méi)有超過(guò)閾值且向所述第一端口發(fā)送過(guò)所述本地防 擁塞應(yīng)答消息而發(fā)送的; 所述發(fā)送隊(duì)列緩存管理模塊,還用于將所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)恢復(fù)為正 常發(fā)送狀態(tài)。
8. 根據(jù)權(quán)利要求6或7所述的源端設(shè)備,其特征在于,所述消息接收模塊,還用于通過(guò) 所述第一端口接收所述宿端設(shè)備通過(guò)所述第二端口發(fā)送的請(qǐng)求包;相應(yīng)地,所述源端設(shè)備 還包括: 處理模塊,用于若本地存儲(chǔ)有與所述請(qǐng)求包對(duì)應(yīng)的數(shù)據(jù)包,則檢測(cè)所述第一端口的端 口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度是否超過(guò)閾值,若超過(guò),則將所述數(shù)據(jù)包的信息、所述數(shù)據(jù)包 對(duì)應(yīng)的生存時(shí)間TTL,以及所述第一端口的端口信息存儲(chǔ)到所述待定數(shù)據(jù)包表PCT中;若沒(méi) 有超過(guò),則檢測(cè)所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)是否為所述防擁塞狀態(tài),若是,則將所 述數(shù)據(jù)包的信息、所述數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL,以及所述第一端口的端口信息存儲(chǔ)到所 述PCT中;若不是,則直接將所述數(shù)據(jù)包存儲(chǔ)到所述第一端口的端口發(fā)送隊(duì)列中。
9. 一種網(wǎng)絡(luò)系統(tǒng),其特征在于,包括至少一個(gè)源端設(shè)備,以及至少一個(gè)宿端設(shè)備: 所述宿端設(shè)備,用于在確定所述宿端設(shè)備中與所述第一端口對(duì)應(yīng)的第二端口的端口發(fā) 送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度超過(guò)閾值后發(fā)送地防擁塞應(yīng)答消息; 所述源端設(shè)備,用于通過(guò)第一端口接收所述宿端設(shè)備發(fā)送的本地防擁塞應(yīng)答消息,將 需通過(guò)所述第一端口發(fā)往所述第二端口的數(shù)據(jù)包進(jìn)行暫緩發(fā)送。
10. 根據(jù)權(quán)利要求9所述的網(wǎng)絡(luò)系統(tǒng),其特征在于,所述源端設(shè)備,用于將需通過(guò)所述 第一端口發(fā)往所述第二端口的數(shù)據(jù)包進(jìn)行暫緩發(fā)送,具體為: 所述源端設(shè)備,用于將所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)設(shè)置為防擁塞狀態(tài),當(dāng)所 述第一端口的端口發(fā)送隊(duì)列的狀態(tài)為防擁塞狀態(tài)時(shí),獲取待定數(shù)據(jù)包表PCT中需通過(guò)所述 第一端口發(fā)往所述第二端口的所述數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL,在到達(dá)所述TTL時(shí),通過(guò)所 述第一端口向所述第二端口發(fā)送所述數(shù)據(jù)包,其中,所述生存時(shí)間,是指從所述宿端設(shè)備接 收的所述數(shù)據(jù)包的請(qǐng)求包的生存時(shí)間。
11. 根據(jù)權(quán)利要求9或10所述的網(wǎng)絡(luò)系統(tǒng),其特征在于, 所述宿端設(shè)備,還用于在確定所述第二端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的長(zhǎng)度沒(méi)有超 過(guò)閾值且向所述第一端口發(fā)送過(guò)所述本地防擁塞應(yīng)答消息,發(fā)送本地正常應(yīng)答消息; 所述源端設(shè)備,還用于通過(guò)所述第一端口接收所述宿端設(shè)備通過(guò)所述第二端口發(fā)送的 所述本地正常應(yīng)答消息,將所述第一端口的端口發(fā)送隊(duì)列的狀態(tài)恢復(fù)為正常發(fā)送狀態(tài)。
12. 根據(jù)權(quán)利要求10或11所述的網(wǎng)絡(luò)系統(tǒng),其特征在于, 所述宿端設(shè)備,還用于通過(guò)所述第二端口發(fā)送請(qǐng)求包; 所述源端設(shè)備,還用于通過(guò)所述第一端口接收所述宿端設(shè)備發(fā)送的所述請(qǐng)求包,若本 地存儲(chǔ)有與所述請(qǐng)求包對(duì)應(yīng)的數(shù)據(jù)包,則檢測(cè)所述第一端口的端口發(fā)送隊(duì)列中緩存數(shù)據(jù)的 長(zhǎng)度是否超過(guò)閾值,若超過(guò),則將所述數(shù)據(jù)包的信息、所述數(shù)據(jù)包對(duì)應(yīng)的生存時(shí)間TTL,以及 所述第一端口的端口信息存儲(chǔ)到所述待定數(shù)據(jù)包表PCT中;若沒(méi)有超過(guò),則檢測(cè)所述第一 端口的端口發(fā)送隊(duì)列的狀態(tài)是否為所述防擁塞狀態(tài),若是,則將所述數(shù)據(jù)包的信息、所述數(shù) 據(jù)包對(duì)應(yīng)的生存時(shí)間TTL,以及所述第一端口的端口信息存儲(chǔ)到所述PCT中;若不是,則直 接將所述數(shù)據(jù)包存儲(chǔ)到所述第一端口的端口發(fā)送隊(duì)列中。
【文檔編號(hào)】H04L12/861GK104283808SQ201310277336
【公開(kāi)日】2015年1月14日 申請(qǐng)日期:2013年7月3日 優(yōu)先權(quán)日:2013年7月3日
【發(fā)明者】戈文敏, 嚴(yán)哲峰, 王戎 申請(qǐng)人:華為技術(shù)有限公司