欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種網(wǎng)口流量控制的方法

文檔序號:7696832閱讀:749來源:國知局
專利名稱:一種網(wǎng)口流量控制的方法
技術(shù)領(lǐng)域
本發(fā)明涉及數(shù)據(jù)傳輸中的流量控制領(lǐng)域,特別是指一種網(wǎng)口流量控制的方法。
背景技術(shù)
IEEE802.3x協(xié)議規(guī)定了一個控制以太網(wǎng)媒體接入控制(MAC)的通用體系結(jié)構(gòu)框架,該協(xié)議具有靈活的擴展性,根據(jù)它的定義,MAC控制子層接收到發(fā)送流控幀的命令之后,就構(gòu)造出標準的流控幀。
圖1所示為標準流控幀的格式。流控幀中包含了目的硬件地址(Mac地址)、源Mac地址、類型碼、控制操作碼、暫停時間以及保留部分。圖中左側(cè)的字節(jié)數(shù)是指上述每一部分在流控幀中所占的字節(jié)數(shù)。流控幀中的類型碼表示該數(shù)據(jù)幀的類型,標準以太網(wǎng)協(xié)議定義流控幀的類型是0x8808;控制操作碼通常為0x0001;流控幀中的暫停時間是指接收方自收到流控幀起,發(fā)送方就暫停發(fā)數(shù)據(jù)幀的時間參數(shù),該參數(shù)是2字節(jié)的無符號整型值,即接收方請求發(fā)送方停止發(fā)送數(shù)據(jù)幀的時間長度;剩下的46字節(jié)保留使用,用戶可自由定義使用,通常為00。
在上述流控方案中最重要的是暫停時間,該時間度量是以512比特時間為增量,在通常情況下,網(wǎng)口的帶寬與暫停時間的取值范圍相對固定,其對應(yīng)關(guān)系如表1所示

表1
在實際應(yīng)用中,由于發(fā)送方接收到來自接收方流控幀的時間受傳輸速率、MAC芯片的接收緩沖區(qū)空間、傳輸介質(zhì)長度、對方響應(yīng)時間等多種因素的限制,因此,不同的設(shè)備處理流控幀所需要的時間是不一樣的。經(jīng)實驗發(fā)現(xiàn),即使在同一設(shè)備與不同設(shè)備對接時,暫停時間響應(yīng)生效的時間也有可能相差5-10倍。這是因為發(fā)送方對所接收的報文譯碼越慢,在流控幀起作用之前發(fā)送端發(fā)出的報文就越多,所以對于不同的設(shè)備,使用的暫停時間應(yīng)該是不同的,即使是相同的設(shè)備在不同的使用環(huán)境下,該暫停時間的具體數(shù)值也可能不同,應(yīng)該根據(jù)具體使用情況而確定。
因此,現(xiàn)有技術(shù)的流量控制技術(shù)存在以下缺點1)現(xiàn)有的流控技術(shù)主要是依靠硬件實現(xiàn)的,使用上很不方便。在硬件設(shè)計時需打開流控使能信號等相關(guān)的幾個信號,以備應(yīng)用。如果在前期的安裝調(diào)試工作中,沒有對硬件進行預(yù)先設(shè)置,而到了后期又有使用該流控功能的需求,則需要修改單板硬件。而且該流控功能還需要對端設(shè)備的支持,如果對端設(shè)備在硬件設(shè)計上不支持本端設(shè)備的流控功能,即對端設(shè)備根本無法實現(xiàn)發(fā)送或解析流控幀,則對網(wǎng)口實現(xiàn)流控就非常困難。
2)流控的精確度即流控的粒度不好控制。由于現(xiàn)有技術(shù)中網(wǎng)口的流控技術(shù)主要是依靠硬件實現(xiàn),如果想把流量控制在一理想的范圍內(nèi),就必須選用合適的暫停時間,而暫停時間和對端設(shè)備,傳輸速度,MAC芯片的接收緩沖區(qū)空間大小以及對方響應(yīng)時間等都密切相關(guān),因此在與不同的設(shè)備對接時需要有經(jīng)驗的人在現(xiàn)場調(diào)試設(shè)置該暫停時間,而且該暫停時間的設(shè)置還沒有規(guī)律可遵循,只能憑人工經(jīng)驗多次設(shè)置調(diào)試。

發(fā)明內(nèi)容
有鑒于此,本發(fā)明提供一種網(wǎng)口流量控制的方法,以擺脫對對端設(shè)備的依賴性,并且可以方便靈活地控制流控的粒度。
為達到上述目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的一種網(wǎng)口流量控制的方法,該方法包括以下步驟
a、在網(wǎng)口總的中斷處理中,將中斷次數(shù)與預(yù)先設(shè)定的中斷次數(shù)閾值相比較,如果中斷次數(shù)大于或等于中斷次數(shù)閾值,則關(guān)閉網(wǎng)口中斷,停止收數(shù)據(jù)包或發(fā)數(shù)據(jù)包,直到執(zhí)行步驟b,否則執(zhí)行步驟c;b、在定時中斷處理中,打開已關(guān)閉的網(wǎng)口中斷,繼續(xù)收數(shù)據(jù)包或發(fā)數(shù)據(jù)包;c、退出網(wǎng)口總的中斷處理。
較佳地,步驟a所述的網(wǎng)口中斷為接收中斷,或發(fā)送中斷,或接收中斷和發(fā)送中斷。
較佳地,步驟a所述的網(wǎng)口總的中斷處理進一步包括以下步驟a1、讀取當前的中斷狀態(tài)寄存器;a2、判斷網(wǎng)口中斷類型,如果是接收中斷,則進行接收中斷處理后,直接執(zhí)行步驟a3,如果是發(fā)送中斷,則進行發(fā)送中斷處理后,執(zhí)行步驟a3;a3、判斷中斷次數(shù)是否大于或等于預(yù)先設(shè)定的中斷次數(shù)閾值,如果是執(zhí)行步驟a4,否則結(jié)束網(wǎng)口總的中斷處理;a4、設(shè)置相應(yīng)網(wǎng)口芯片的控制寄存器關(guān)閉相應(yīng)的網(wǎng)口中斷,并設(shè)置網(wǎng)口中斷標志位為關(guān)閉狀態(tài)。
較佳地,所述的進行接收中斷處理進一步包括以下步驟1)、從接收緩沖區(qū)中取出發(fā)送來的數(shù)據(jù)包;2)、封裝該數(shù)據(jù)包后,送給鏈路層處理;3)、累加接收中斷次數(shù);4)、修改統(tǒng)計計數(shù)。
較佳地,所述的進行發(fā)送中斷處理進一步包括以下步驟1’)、將待發(fā)送的數(shù)據(jù)包存入發(fā)送緩沖區(qū)中;2’)、設(shè)置網(wǎng)口芯片的發(fā)送控制位,把數(shù)據(jù)包發(fā)送到物理鏈路層;3’)、累加發(fā)送中斷次數(shù);4’)、修改統(tǒng)計計數(shù)。
較佳地,所述修改統(tǒng)計計數(shù)之前進一步包括判斷中斷次數(shù)是否大于或等于清狗閾值,如果是,進行清狗處理,否則直接修改統(tǒng)計計數(shù)。
較佳地,所述的清狗處理進一步包括判斷看門狗是否打開,如果是,執(zhí)行一次清狗操作,否則直接退出清狗處理步驟。
較佳地,步驟b所述的定時中斷是指系統(tǒng)中的單位計量時間中斷。
較佳地,所述步驟b進一步包括判斷網(wǎng)口中斷標志位狀態(tài),如果網(wǎng)口中斷是關(guān)閉狀態(tài),則設(shè)置相應(yīng)網(wǎng)口芯片的控制寄存器以打開已關(guān)閉的網(wǎng)口中斷,將網(wǎng)口中斷標志位設(shè)置為打開狀態(tài),并重新累計中斷次數(shù),如果網(wǎng)口中斷是打開狀態(tài),則直接重新累計中斷次數(shù)。
較佳地,該方法進一步包括控制臺通過修改中斷次數(shù)閾值的控制命令修改中斷次數(shù)閥值。
較佳地,該方法進一步包括根據(jù)CPU的占用率,修改中斷次數(shù)閥值。
應(yīng)用本發(fā)明,以中斷的產(chǎn)生次數(shù)來控制網(wǎng)口的流量,同時充分利用系統(tǒng)的單位計量時間的中斷(TICK中斷)來控制網(wǎng)口中斷的打開和關(guān)閉,使得軟件的修改和設(shè)計非常簡單,另外通過在控制臺增加命令以改變中斷次數(shù)閾值,使流控精確度可進行靈活的調(diào)整。與此同時,在網(wǎng)口的中斷處理中增加清狗處理,充分地保證了系統(tǒng)在異常情況下能夠安全工作,而且在執(zhí)行清狗操作時增加判斷條件,充分保證了系統(tǒng)的穩(wěn)定性和健壯性。由于擺脫了對對端設(shè)備的依賴性,本發(fā)明可以獨立運行,也可以和對端配合運行。


圖1為現(xiàn)有技術(shù)中標準流控幀的格式;圖2為網(wǎng)口總的中斷處理步驟的流程圖;圖3為接收中斷處理步驟的流程圖;圖4為清狗處理具體操作步驟的流程圖;圖5為TICK中斷處理中所增加的流量控制步驟的流程圖。
具體實施例方式
為使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下參照附圖并舉實施例,對本發(fā)明做進一步詳細說明。
通常以太網(wǎng)口的收發(fā)數(shù)據(jù)都是通過中斷來實現(xiàn)的,硬件接收到一個數(shù)據(jù)包就產(chǎn)生一次接收中斷,在接收中斷處理的過程中,把對端發(fā)來的數(shù)據(jù)從接收緩沖區(qū)中取出,并把中斷統(tǒng)計計數(shù)記錄在軟件中;同樣地,在發(fā)送數(shù)據(jù)時,一旦成功設(shè)置了相關(guān)的發(fā)送寄存器,數(shù)據(jù)就被送到物理鏈路上,每次發(fā)送數(shù)據(jù)時也會產(chǎn)生一次發(fā)送中斷,同時中斷統(tǒng)計計數(shù)記錄也在軟件中。本發(fā)明利用以太網(wǎng)口的收發(fā)數(shù)據(jù)都是通過中斷來實現(xiàn)的特點,通過控制收發(fā)中斷的次數(shù),來控制收發(fā)中斷的開閉,從而控制數(shù)據(jù)包的收發(fā),進而實現(xiàn)對網(wǎng)口的流量的控制。在系統(tǒng)的每個單位計量時間(TICK)中斷,判斷是否有關(guān)閉的網(wǎng)口中斷,如果有,則打開相應(yīng)的已關(guān)閉的中斷,繼續(xù)收發(fā)數(shù)據(jù)包,并重新開始計數(shù)。例如,系統(tǒng)設(shè)置每秒鐘100個TICK,即每個TICK就是10毫秒;這表示系統(tǒng)每隔10毫秒就調(diào)用TICK中斷處理一次,打開已關(guān)閉的網(wǎng)口中斷。
系統(tǒng)可以只限制接收中斷,實現(xiàn)對本端網(wǎng)口的流量控制,或只限制發(fā)送中斷,實現(xiàn)對對端網(wǎng)口的流量控制,也可以同時限制本端網(wǎng)口的接收中斷和發(fā)送中斷,既對本端網(wǎng)口實現(xiàn)流量控制,又對對端網(wǎng)口實現(xiàn)流量控制。對于收發(fā)數(shù)據(jù)包的統(tǒng)計計數(shù)由軟件來完成的網(wǎng)口,都適用于本發(fā)明。
本實施例以接收中斷為例具體介紹該方案的實現(xiàn)過程。
在網(wǎng)口總的中斷處理中,增設(shè)判斷網(wǎng)口接收中斷次數(shù)IntTimes是否大于或等于預(yù)先設(shè)定的中斷次數(shù)閾值LAN_INT_TIMES的步驟,來實現(xiàn)對本端網(wǎng)口的流量控制。中斷次數(shù)閾值的設(shè)置原則是在保證CPU占用率為70%-75%的前提下,設(shè)置中斷次數(shù)閾值。如果該閾值設(shè)置偏低,將導(dǎo)致效率低下資源浪費,如果該閾值設(shè)置偏高將造成單板業(yè)務(wù)繁忙,使CPU占用率過高,而影響其它任務(wù)的運行。為了方便該閾值的調(diào)整,可以在控制臺增加一個簡單的閾值控制命令如set flow-ctrl value,根據(jù)需要來修改已設(shè)置閾值的大小,這就使每次修改該中斷次數(shù)閾值參數(shù)時更加方便靈活。
圖2所示為網(wǎng)口總的中斷處理步驟的流程圖。
步驟201,讀取當前的中斷狀態(tài)寄存器;步驟202,判斷網(wǎng)口中斷類型,如果是接收中斷,則執(zhí)行步驟203,如果是發(fā)送中斷,則執(zhí)行步驟204;步驟203,進行接收中斷處理后,直接執(zhí)行步驟205;步驟204,進行發(fā)送中斷處理后,執(zhí)行步驟205;步驟205,判斷網(wǎng)口中斷次數(shù)IntTimes是否大于或等于預(yù)先設(shè)定的中斷次數(shù)閾值LAN_INT_TIMES,如果是執(zhí)行步驟206,否則執(zhí)行步驟208;步驟206,設(shè)置網(wǎng)口芯片的控制寄存器,關(guān)閉中斷,不再響應(yīng)中斷的處理;步驟207,設(shè)置中斷標志位為關(guān)閉狀態(tài),即設(shè)置NetFlag=1,表示中斷已關(guān)閉;步驟208,結(jié)束網(wǎng)口總的中斷處理。
在網(wǎng)口的接收中斷處理中,設(shè)置并累加中斷次數(shù)IntTimes,即當接收到的數(shù)據(jù)封裝完畢送給鏈路層后,使中斷次數(shù)IntTimes的值加一。同時,為了預(yù)防單板業(yè)務(wù)繁忙時CPU一直在處理網(wǎng)口的中斷,使CPU占用率太高沒有時間去清狗,造成看門狗超時使單板復(fù)位,所以增加清狗的步驟;在單板出現(xiàn)異常需要看門狗復(fù)位時,因網(wǎng)口不斷有數(shù)據(jù)的收發(fā),而使清狗操作不斷的執(zhí)行,致使看門狗不能進入單板復(fù)位狀態(tài),因此,在網(wǎng)口的接收中斷處理中增加判斷中斷次數(shù)閾值是否大于或等于已設(shè)定的清狗閾值的步驟。
圖3所示為接收中斷處理步驟的流程圖。
步驟301,從接收緩沖區(qū)中取出發(fā)送來的數(shù)據(jù)包;步驟302,封裝該數(shù)據(jù)包后,送給鏈路層處理;步驟303,設(shè)置并累加接收中斷次數(shù);步驟304,判斷該中斷次數(shù)IntTimes的值是否大于或等于清狗閾值,如果是執(zhí)行步驟305,否則直接執(zhí)行步驟306;
步驟305,進行清狗處理SetWatchdog();步驟306,修改接收統(tǒng)計計數(shù)。
圖4所示為清狗處理具體操作步驟的流程圖。在清狗處理中,步驟401,判斷看門狗是否打開,如果是,執(zhí)行步驟402,執(zhí)行一次清狗操作,否則直接退出清狗處理步驟。
由于TICK是系統(tǒng)中用于計量時間的單位,通常系統(tǒng)每隔10毫秒就調(diào)用TICK中斷一次。該中斷主要用于處理系統(tǒng)中需要定時處理的事情,處理完畢后,就跳出此中斷。
在系統(tǒng)的TICK中斷處理中,增設(shè)流量控制步驟Lan_Flow_ctrl(),以打開當前已關(guān)閉的接收中斷,并將中斷次數(shù)IntTimes的值清零,重新開始計數(shù)。
圖5所示為TICK中斷處理中所增加流量控制步驟的流程圖。
步驟501,判斷網(wǎng)口接收中斷標志位是否為關(guān)閉狀態(tài),即NetFlag的值是否為1,如果是執(zhí)行步驟502,否則直接執(zhí)行504;步驟502,打開網(wǎng)口接收中斷;步驟503,設(shè)置網(wǎng)口接收中斷標志位的值為打開中斷狀態(tài),即設(shè)置NetFlag=0;步驟504,將中斷次數(shù)的值清零,重新開始計數(shù),即設(shè)置IntTimes=0。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種網(wǎng)口流量控制的方法,其特征在于該方法包括以下步驟a、在網(wǎng)口總的中斷處理中,將中斷次數(shù)與預(yù)先設(shè)定的中斷次數(shù)閾值相比較,如果中斷次數(shù)大于或等于中斷次數(shù)閾值,則關(guān)閉網(wǎng)口中斷,停止收數(shù)據(jù)包或發(fā)數(shù)據(jù)包,直到執(zhí)行步驟b,否則執(zhí)行步驟c;b、在定時中斷處理中,打開已關(guān)閉的網(wǎng)口中斷,繼續(xù)收數(shù)據(jù)包或發(fā)數(shù)據(jù)包;c、退出網(wǎng)口總的中斷處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于步驟a所述的網(wǎng)口中斷為接收中斷,或發(fā)送中斷,或接收中斷和發(fā)送中斷。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于步驟a所述的網(wǎng)口總的中斷處理進一步包括以下步驟a1、讀取當前的中斷狀態(tài)寄存器;a2、判斷網(wǎng)口中斷類型,如果是接收中斷,則進行接收中斷處理后,直接執(zhí)行步驟a3,如果是發(fā)送中斷,則進行發(fā)送中斷處理后,執(zhí)行步驟a3;a3、判斷中斷次數(shù)是否大于或等于預(yù)先設(shè)定的中斷次數(shù)閾值,如果是執(zhí)行步驟a4,否則結(jié)束網(wǎng)口總的中斷處理;a4、設(shè)置相應(yīng)網(wǎng)口芯片的控制寄存器關(guān)閉相應(yīng)的網(wǎng)口中斷,并設(shè)置網(wǎng)口中斷標志位為關(guān)閉狀態(tài)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于所述的進行接收中斷處理進一步包括以下步驟1)、從接收緩沖區(qū)中取出發(fā)送來的數(shù)據(jù)包;2)、封裝該數(shù)據(jù)包后,送給鏈路層處理;3)、累加接收中斷次數(shù);4)、修改統(tǒng)計計數(shù)。
5.根據(jù)權(quán)利要求3所述的方法,其特征在于所述的進行發(fā)送中斷處理進一步包括以下步驟1’)、將待發(fā)送的數(shù)據(jù)包存入發(fā)送緩沖區(qū)中;2’)、設(shè)置網(wǎng)口芯片的發(fā)送控制位,把數(shù)據(jù)包發(fā)送到物理鏈路層;3’)、累加發(fā)送中斷次數(shù);4’)、修改統(tǒng)計計數(shù)。
6.根據(jù)權(quán)利要求4或5所述的方法,其特征在于所述修改統(tǒng)計計數(shù)之前進一步包括判斷中斷次數(shù)是否大于或等于清狗閾值,如果是,進行清狗處理,否則直接修改統(tǒng)計計數(shù)。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于所述的清狗處理進一步包括判斷看門狗是否打開,如果是,執(zhí)行一次清狗操作,否則直接退出清狗處理步驟。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于步驟b所述的定時中斷是指系統(tǒng)中的單位計量時間中斷。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于所述步驟b進一步包括判斷網(wǎng)口中斷標志位狀態(tài),如果網(wǎng)口中斷是關(guān)閉狀態(tài),則設(shè)置相應(yīng)網(wǎng)口芯片的控制寄存器以打開已關(guān)閉的網(wǎng)口中斷,將網(wǎng)口中斷標志位設(shè)置為打開狀態(tài),并重新累計中斷次數(shù),如果網(wǎng)口中斷是打開狀態(tài),則直接重新累計中斷次數(shù)。
10.根據(jù)權(quán)利要求1所述的方法,其特征在于該方法進一步包括控制臺通過修改中斷次數(shù)閾值的控制命令修改中斷次數(shù)閥值。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于該方法進一步包括根據(jù)CPU的占用率,修改中斷次數(shù)閥值。
全文摘要
本發(fā)明提供了一種網(wǎng)口流量控制的方法,該方法包括以下步驟a.在網(wǎng)口總的中斷處理中,將中斷次數(shù)與預(yù)先設(shè)定的中斷次數(shù)閾值相比較,如果中斷次數(shù)大于或等于中斷次數(shù)閾值,則關(guān)閉網(wǎng)口中斷,停止收數(shù)據(jù)包或發(fā)數(shù)據(jù)包,直到執(zhí)行步驟b,否則執(zhí)行步驟c;b.在定時中斷處理中,打開已關(guān)閉的網(wǎng)口中斷,繼續(xù)收數(shù)據(jù)包或發(fā)數(shù)據(jù)包;c.退出網(wǎng)口總的中斷處理。應(yīng)用本發(fā)明,通過控制中斷產(chǎn)生的次數(shù)來控制網(wǎng)口的流量,進而根據(jù)實際需要實現(xiàn)對流控粒度的靈活調(diào)整。同時,在網(wǎng)口中斷處理中增加清狗處理,以充分保證系統(tǒng)在異常情況下能夠安全工作。
文檔編號H04L12/08GK1509011SQ0215801
公開日2004年6月30日 申請日期2002年12月20日 優(yōu)先權(quán)日2002年12月20日
發(fā)明者朱克楚 申請人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
佛教| 西青区| 桂平市| 渝中区| 河北省| 都江堰市| 云林县| 噶尔县| 安陆市| 湖南省| 阳城县| 易门县| 东光县| 新河县| 镇康县| 郁南县| 清苑县| 深州市| 图木舒克市| 仙游县| 石首市| 庆云县| 时尚| 舒兰市| 原平市| 贵定县| 恩施市| 巧家县| 广汉市| 闵行区| 息烽县| 柳河县| 巫溪县| 竹北市| 桦川县| 邵阳县| 津市市| 西平县| 贺兰县| 华安县| 青龙|