用于pots設(shè)備的數(shù)據(jù)流量控制方法及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及數(shù)據(jù)傳輸領(lǐng)域,具體涉及一種用于POTS設(shè)備的數(shù)據(jù)流量控制方法及 系統(tǒng)。
【背景技術(shù)】
[0002] 對(duì)于傳輸設(shè)備而言,例如P0TS(PlainOldTelephoneService模擬電話業(yè)務(wù)) 設(shè)備,單位時(shí)間內(nèi)(一般為IS)允許PPP傳遞的最大數(shù)據(jù)流量為15Kbit;若POTS設(shè)備的 (PU時(shí)間片為100ms,則每個(gè)CPU時(shí)間片能傳遞的數(shù)據(jù)量不能超過15000bit(約為1875個(gè) 字節(jié),15000/8)。若POTS設(shè)備每個(gè)時(shí)間片(單位時(shí)間)發(fā)送的數(shù)據(jù)流量超過MTU(Maximum TransmissionUnit,最大傳輸單元)的數(shù)據(jù)流量(即最大數(shù)據(jù)流量),不僅會(huì)造成數(shù)據(jù)堵塞 和丟失,難以確保數(shù)據(jù)傳遞的正確和穩(wěn)定性,而且會(huì)造成網(wǎng)上流量振蕩,難以有效利用網(wǎng)絡(luò) 帶寬。
【發(fā)明內(nèi)容】
[0003] 針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種用于POTS設(shè)備的數(shù)據(jù) 流量控制方法及系統(tǒng)。本發(fā)明能夠?qū)TPPP數(shù)據(jù)包進(jìn)行延時(shí),進(jìn)而能夠避免單位時(shí)間傳輸 的數(shù)據(jù)流量超過MTU,不僅難以造成數(shù)據(jù)擁塞和數(shù)據(jù)丟失,不會(huì)影響ETPPP數(shù)據(jù)包的解析和 轉(zhuǎn)發(fā);而且能夠自適應(yīng)各種類型的數(shù)據(jù)通道,具備一定的擴(kuò)展性。
[0004] 為達(dá)到以上目的,本發(fā)明提供的用于POTS設(shè)備的數(shù)據(jù)流量控制方法,包括以下步 驟:
[0005] Sl:中央控制單元CXU上的網(wǎng)絡(luò)協(xié)議組開發(fā)的通用網(wǎng)絡(luò)處理平臺(tái)VNPP協(xié)議棧,通 過網(wǎng)絡(luò)管理單元NMU提供的接口,獲取管理通信信道MCC端口,NMU將MCC端口映射至模擬 電話業(yè)務(wù)POTS設(shè)備上相應(yīng)單盤的槽位,轉(zhuǎn)到步驟S2 ;
[0006] S2 :NMU根據(jù)槽位信息和對(duì)應(yīng)的單盤配置,獲取單盤類型,NMU根據(jù)單盤類型向 VNPP協(xié)議棧返回MCC端口的端口速率,轉(zhuǎn)到步驟S3 ;
[0007] S3 :VNPP協(xié)議棧將每個(gè)MCC端口需要發(fā)送的數(shù)據(jù)包組成發(fā)包隊(duì)列,VNPP協(xié)議棧為 每個(gè)MCC端口設(shè)定相應(yīng)的單位周期tick和最大發(fā)送長(zhǎng)度max_byte_per_tick,每個(gè)MCC端 口的發(fā)包隊(duì)列在tick內(nèi)發(fā)出的數(shù)據(jù)包的總長(zhǎng)度大于等于max_byte_per_tick,轉(zhuǎn)到步驟 S4 ;
[0008] S4 :VNPP協(xié)議棧需要發(fā)送ETPPP數(shù)據(jù)包時(shí),VNPP協(xié)議棧在tick內(nèi),判斷MCC端口的 發(fā)包隊(duì)列中需要轉(zhuǎn)發(fā)的包長(zhǎng),與已轉(zhuǎn)發(fā)的包長(zhǎng)之和是否未超過max_byte_per_tick,若是, 轉(zhuǎn)發(fā)當(dāng)前包;否則停止發(fā)送發(fā)包隊(duì)列中剩余的ETPPP數(shù)據(jù)包,包括當(dāng)前包,直至本次tick結(jié) 束。
[0009] 在上述技術(shù)方案的基礎(chǔ)上,步驟S4具體包括以下步驟:
[0010]S401 :VNPP協(xié)議棧設(shè)置收取ETPPP數(shù)據(jù)包的等待時(shí)間,轉(zhuǎn)到步驟S402 ;
[0011] S402 :VNPP協(xié)議棧在等待時(shí)間內(nèi),判斷以太網(wǎng)是否發(fā)送ETPPP數(shù)據(jù)包,若是,轉(zhuǎn)到 步驟S403,否則將MCC端口設(shè)置為睡眠狀態(tài),重新執(zhí)行步驟S402 ;
[0012] S403 :VNPP協(xié)議棧判斷需要發(fā)送ETPPP數(shù)據(jù)包的MCC端口是否有效,若是,轉(zhuǎn)到步 驟S404,否則返回錯(cuò)誤,結(jié)束;
[0013] S404 :VNPP協(xié)議棧判斷當(dāng)前MCC端口的發(fā)包隊(duì)列是否為空,若是,VNPP協(xié)議棧從以 太網(wǎng)提取ETPPP數(shù)據(jù)包,轉(zhuǎn)到步驟S405,否則將空閑變量counter加1,重新執(zhí)行步驟S401 ;
[0014]S405 :VNPP協(xié)議棧判斷當(dāng)前ETPPP數(shù)據(jù)包是否有效,若是,轉(zhuǎn)到步驟S406,否則將 counter加1,重新執(zhí)行步驟S401 ;
[0015] S406 :VNPP協(xié)議棧在tick內(nèi),判斷當(dāng)前ETPPP數(shù)據(jù)包的包長(zhǎng),與已轉(zhuǎn)發(fā)的包長(zhǎng)之 和是否未超過max_byte_per_tick,若是,轉(zhuǎn)到步驟S407,否則確定需要延時(shí)發(fā)送下一個(gè) ETPPP數(shù)據(jù)包,轉(zhuǎn)到步驟S408;
[0016] S407 :發(fā)送當(dāng)前ETPPP數(shù)據(jù)包,將當(dāng)前ETPPP數(shù)據(jù)包的包長(zhǎng)加入已轉(zhuǎn)發(fā)的包長(zhǎng),轉(zhuǎn) 到步驟S408 ;
[0017]S408:判斷任務(wù)是否需要繼續(xù)進(jìn)行,若是,重新執(zhí)行步驟S401,否則結(jié)束。
[0018] 在上述技術(shù)方案的基礎(chǔ)上,步驟Sl中所述NMU將MCC端口映射至POTS設(shè)備上相 應(yīng)單盤的槽位,具體包括以下步驟:NMU通過MCC端口號(hào),計(jì)算POTS設(shè)備上MCC所在單盤的 槽位后,NMU將MCC端口映射至該槽位。
[0019] 在上述技術(shù)方案的基礎(chǔ)上,步驟S2中所述NMU根據(jù)槽位信息和對(duì)應(yīng)的單盤配置, 獲取單盤類型,具體包括以下步驟:判斷是否存在與槽位信息對(duì)應(yīng)的單盤配置,若是,NMU 輪詢已配置單盤列表,匹配與當(dāng)前MCC端口對(duì)應(yīng)的單盤;否則NMU輪詢實(shí)際在位的單盤列 表,匹配與當(dāng)前MCC端口對(duì)應(yīng)的單盤。
[0020] 在上述技術(shù)方案的基礎(chǔ)上,步驟S2中所述NMU根據(jù)單盤類型向VNPP協(xié)議棧返回 MCC端口的端口速率,具體包括以下步驟:NMU通過單盤類型的單盤速率的接口函數(shù),計(jì)算 得到與該單盤類型對(duì)應(yīng)的MCC端口的端口速率后,向VNPP協(xié)議棧返回該端口速率。
[0021] 在上述技術(shù)方案的基礎(chǔ)上,所述MCC端口的數(shù)量為4個(gè),端口名稱分別為2m、512k、 2. 5G和 10G,2m的MCC通道速率為 2m/s,tick為 10ms,max_byte_per_tick為 2500 個(gè)字節(jié); 512k的MCC通道速率為 512k/s,tick為 30ms,max_byte_per_tick為 1640 個(gè)字節(jié);2. 5G的 MCC通道速率為I. 3m/s,tick為 40ms,max_byte_per_tick為 1640 個(gè)字節(jié);IOG的MCC通 道速率為I. 3m/s,tick為 10ms,max_byte_per_tick為 1640 個(gè)字節(jié)。
[0022] 本發(fā)明提供的實(shí)現(xiàn)上述方法的用于POTS設(shè)備的數(shù)據(jù)流量控制系統(tǒng),包括MCC端口 獲取模塊、端口速率計(jì)算模塊、發(fā)包周期長(zhǎng)度設(shè)置模塊和數(shù)據(jù)包發(fā)送模塊;
[0023] 所述MCC端口獲取模塊用于:控制中央控制單元CXU上的網(wǎng)絡(luò)協(xié)議組開發(fā)的通用 網(wǎng)絡(luò)處理平臺(tái)VNPP協(xié)議棧,通過網(wǎng)絡(luò)管理單元NMU提供的接口,獲取管理通信信道MCC端 口,NMU將MCC端口映射至模擬電話業(yè)務(wù)POTS設(shè)備上相應(yīng)單盤的槽位,向端口速率計(jì)算模 塊發(fā)送端口速率計(jì)算信號(hào);
[0024] 所述端口速率計(jì)算模塊用于:收到端口速率計(jì)算信號(hào)后,控制NMU根據(jù)槽位信息 和對(duì)應(yīng)的單盤配置,獲取單盤類型,NMU根據(jù)單盤類型向VNPP協(xié)議棧返回MCC端口的端口 速率,向發(fā)包周期長(zhǎng)度設(shè)置模塊發(fā)送周期長(zhǎng)度設(shè)置信號(hào);
[0025] 所述發(fā)包周期長(zhǎng)度設(shè)置模塊用于:收到發(fā)包周期長(zhǎng)度設(shè)置信號(hào)后,控制VNPP協(xié)議 棧將每個(gè)MCC端口需要發(fā)送的數(shù)據(jù)包組成發(fā)包隊(duì)列,VNPP協(xié)議棧為每個(gè)MCC端口設(shè)定相應(yīng) 的單位周期tick和最大發(fā)送長(zhǎng)度max_byte_per_tick,每個(gè)MCC端口的發(fā)包隊(duì)列在tick內(nèi) 發(fā)出的數(shù)據(jù)包的總長(zhǎng)度大于等于max_byte_per_tick,向數(shù)據(jù)包發(fā)送模塊發(fā)送數(shù)據(jù)包發(fā)送 信號(hào);
[0026] 所述數(shù)據(jù)包發(fā)送模塊用于:收到數(shù)據(jù)包發(fā)送信號(hào)后,若VNPP協(xié)議棧需要發(fā)送 ETPPP數(shù)據(jù)包,控制VNPP協(xié)議棧在tick內(nèi),判斷MCC端口的發(fā)包隊(duì)列中需要轉(zhuǎn)發(fā)的包長(zhǎng),與 已轉(zhuǎn)發(fā)的包長(zhǎng)之和是否未超過max_byte_per_tick,若是,轉(zhuǎn)發(fā)當(dāng)前包;否則停止發(fā)送發(fā)包 隊(duì)列中剩余的ETPPP數(shù)據(jù)包,包括當(dāng)前包,直至本次tick結(jié)束。
[0027] 與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:
[0028] 本發(fā)明發(fā)送ETPPP數(shù)據(jù)包時(shí),利用系統(tǒng)定時(shí)器設(shè)定時(shí)間間隔,本發(fā)明將當(dāng)前ETPPP 數(shù)據(jù)包發(fā)送至以太網(wǎng)驅(qū)動(dòng)后,會(huì)計(jì)算發(fā)送的ETPPP數(shù)據(jù)包數(shù)據(jù)總長(zhǎng)度,若需要發(fā)送包的包 長(zhǎng)與已轉(zhuǎn)發(fā)的包長(zhǎng)之和未超過最大發(fā)送長(zhǎng)度(MTU),則可以直接發(fā)送下一個(gè)ETPPP數(shù)據(jù)包, 否則增加發(fā)送延時(shí),將下一個(gè)ETPPP數(shù)據(jù)就暫暫時(shí)留在發(fā)送隊(duì)列中,等待再次發(fā)送。
[0029] 因此,與現(xiàn)有技術(shù)中造成數(shù)據(jù)堵塞和丟失相比,本發(fā)明能夠?qū)TPPP數(shù)據(jù)包進(jìn)行 延時(shí),進(jìn)而能夠避免單位時(shí)間傳輸?shù)臄?shù)據(jù)流量超過MTU,不僅難以造成數(shù)據(jù)擁塞和數(shù)據(jù)丟 失,而且當(dāng)單個(gè)和多個(gè)ETPPP數(shù)據(jù)包大于MTU時(shí),本發(fā)明才會(huì)起控制作用,不會(huì)影響ETPPP 數(shù)據(jù)包的解析和轉(zhuǎn)發(fā)。
[0030] 與此同時(shí),本發(fā)明還具備一定的擴(kuò)展性,能夠自適應(yīng)各種類型的數(shù)據(jù)通道,不僅可 以在MCC通道上,而且可以在OSC數(shù)據(jù)通道上進(jìn)行數(shù)據(jù)的流量控制。
【附圖說明】
[0031] 圖1為VNPP協(xié)議棧的MCC通道收發(fā)OSPFETPPP數(shù)據(jù)包的流程圖;
[0032] 圖2為本發(fā)明實(shí)施例中用于POTS設(shè)備的數(shù)據(jù)流量控制方法的流程圖;
[0033] 圖3為本發(fā)明實(shí)施例中VNPP協(xié)議棧根據(jù)各端口的速率進(jìn)行流量控制的流程示意 圖;
[0034] 圖4為本發(fā)明實(shí)施例中步驟S4的流程圖。
【具體實(shí)施方式】
[0035] 以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。
[0036] 首先介紹本發(fā)明中用于POTS設(shè)備的數(shù)據(jù)流量控制方法的原理為QOS(Qualityof Service,服務(wù)質(zhì)量)流量評(píng)估、令牌桶與流量監(jiān)管,下面先分別進(jìn)行介紹。
[0037] 令牌桶
[0038] 令牌桶可以看作是一個(gè)存放一定數(shù)量令牌的容器,系統(tǒng)按設(shè)定的速度向桶中放置 令牌,當(dāng)令牌桶中的令牌滿時(shí),多出的令牌溢出,令牌桶中令牌不再增加。
[0039] QOS流量評(píng)估與令牌桶
[0040] 每到達(dá)一個(gè)報(bào)文時(shí),會(huì)使用令牌桶評(píng)估流量規(guī)格,其過程為:判斷令牌桶中的令牌 數(shù)量是否足夠滿足報(bào)文的轉(zhuǎn)發(fā),若是則流量遵守或符合當(dāng)前規(guī)格,否則稱為流量不符合或 流量超標(biāo)。
[0041] 評(píng)估流量時(shí)令牌桶的參數(shù)包括:
[0042] 平均速率:向桶中放置令牌的速率,即允許的流量的平均速度,平均速率通常配置 為CIR0
[0043] 突發(fā)尺寸:令牌桶的容量,即每次突發(fā)所允許的最大的流量尺寸;突發(fā)尺寸通常 配置為CBS,突發(fā)尺寸必須大于最大報(bào)文長(zhǎng)度。
[0044] 流量監(jiān)管
[0045] 流量監(jiān)管的典型應(yīng)用是監(jiān)督進(jìn)入網(wǎng)絡(luò)的某一流量的規(guī)格,把它限制在一個(gè)合理的 范圍內(nèi),或?qū)Τ龅牟糠至髁窟M(jìn)行"懲罰",以保護(hù)網(wǎng)絡(luò)資源和運(yùn)營(yíng)商的利益。例如可以限制 HTTP報(bào)文不能占用超過50%的網(wǎng)絡(luò)帶寬,若發(fā)現(xiàn)某個(gè)連接的流量超標(biāo),流量監(jiān)管可以選擇 丟棄報(bào)文,或重新設(shè)置報(bào)文的優(yōu)先級(jí)。
[0046] 進(jìn)一步,由于NMU(網(wǎng)絡(luò)管理單元)使用VNPP(網(wǎng)絡(luò)協(xié)議組開發(fā)的通用網(wǎng)絡(luò)處理平 臺(tái))協(xié)議棧與其他網(wǎng)元通信,因此發(fā)明中用于POTS設(shè)備的數(shù)據(jù)流量控制方法需要基于VNPP 協(xié)議棧模塊對(duì)ETPPP(端口名稱,使用以太網(wǎng)承載的MCC數(shù)據(jù)通道,MCC為管理通信信道)數(shù) 據(jù)包轉(zhuǎn)發(fā)速率的控制處理。
[0047] 圖1為VNPP協(xié)議棧的MCC數(shù)據(jù)通道收發(fā)OSPF(開放式最短路徑優(yōu)先)ETPPP數(shù)據(jù) 包時(shí),在接口驅(qū)動(dòng)層、數(shù)