亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

多播封包的發(fā)送速度控制方法

文檔序號:7762884閱讀:628來源:國知局
專利名稱:多播封包的發(fā)送速度控制方法
技術(shù)領(lǐng)域
本發(fā)明關(guān)于一種多播封包的發(fā)送速度控制方法,特別是一種高精密度的多播封包的發(fā)送速度控制方法。
背景技術(shù)
在與網(wǎng)絡封包的發(fā)送技術(shù)相關(guān)的領(lǐng)域中,對發(fā)送速度進行控制是一個重要的議題。網(wǎng)絡數(shù)據(jù)發(fā)送速度的計算方式是數(shù)據(jù)發(fā)送量與發(fā)送時間的比值。目前,微軟 (Microsoft)的窗口(Windows)系統(tǒng)使用延時(Sle印)函數(shù)控制網(wǎng)絡封包的發(fā)送速度。延時函數(shù)就是在延時過程中不占用系統(tǒng)資源,但是它的精度太低,大約僅能精確到毫秒級。且實際執(zhí)行延時函數(shù)時的誤差一般會達到10毫秒,因此不適用于需要高速且穩(wěn)定的發(fā)送速度的應用。而窗口系統(tǒng)亦提供了一種精度能與機器時鐘同步計數(shù)器,其能精確到納秒(ns) 級。但是利用此計數(shù)器進行延遲的方法需要系統(tǒng)頻繁計數(shù)并確認延時時間是否到達,而嚴重占用中央處理器(central processor unit, CPU)資源,進而影響其它軟件及系統(tǒng)的運行。也就是說,在傳統(tǒng)上發(fā)送多播(multi-cast)等網(wǎng)絡封包的發(fā)送速度控制中,具有延時精度過低而容易引起發(fā)送速度的波動的問題,或是具有需要極度耗費CPU資源的缺
點O

發(fā)明內(nèi)容
為了解決上述問題,在此提供一種多播封包(multi-cast package)的發(fā)送速度控制方法,其用于令一網(wǎng)絡卡(network interface card,NIC)以一目標速度發(fā)送多個多播封包。多播封包的發(fā)送速度控制方法包括依據(jù)多播封包的大小以及目標速度計算一標準時間,并記錄一累計誤差時間;發(fā)送多播封包之一,并計算發(fā)送的多播封包的一發(fā)送時間;計算標準時間與發(fā)送時間的差值,將標準時間與發(fā)送時間的差值記錄為一本次誤差時間,將累計誤差時間與本次誤差時間合計,并將合計結(jié)果記錄一預定休眠時間;當預定休眠時間大于一誤差門坎值時,執(zhí)行以下步驟休眠預定休眠時間;自休眠中被喚醒,并計算一實際休眠時間;以及計算得到新的累計誤差時間為預定休眠時間減實際休眠時間;以及回到上述依據(jù)多播封包的大小以及目標速度計算標準時間,并記錄累計誤差時間的步驟,以發(fā)送下一個多播封包。其中在依據(jù)多播封包的大小以及目標速度計算一標準時間,并記錄一累計誤差時間的步驟之中,另可包括建立一累計發(fā)送時間。而在發(fā)送多播封包之一,并計算發(fā)送的多播封包的一發(fā)送時間的步驟之前,多播封包的處理方法另可包括計算一累計發(fā)送時間; 以及當累計發(fā)送時間大于一累計時間門坎值時,將累計誤差時間以及累計發(fā)送時間重設(shè)為 O0根據(jù)一實施范例,多播封包的發(fā)送速度控制方法另可包括當預定休眠時間不大于一誤差門坎值時,將預定休眠時間作為新的累計誤差時間。其中發(fā)送時間可以是將發(fā)送的多播封包發(fā)送前后的一系統(tǒng)時間相減得到。此外,上述的累計時間門坎值可以是1秒(s)。誤差門坎值可以是1毫秒(ms)。實際休眠時間可以是大于10毫秒。綜上所述,多播封包的發(fā)送速度控制方法利用原本為低精度的延時函數(shù),但實現(xiàn)高精度組播控速。透過實時將累積誤差時間回饋給延時函數(shù),并定時將其清空的技術(shù),多播封包的發(fā)送速度控制方法能夠保證網(wǎng)絡數(shù)據(jù)傳輸?shù)母咝Х€(wěn)定又不占用過多的中央處理器 (central processor unit, CPU)資源。


圖1為一實施范例的多播封包的發(fā)送速度控制方法的流程圖;圖2為另一實施范例的多播封包的發(fā)送速度控制方法的部分流程圖;圖3為一實施范例的發(fā)送速度的曲線圖。其中,附圖標記20發(fā)送速度曲線
具體實施例方式以下在實施方式中詳細敘述本發(fā)明的詳細特征以及優(yōu)點,其內(nèi)容足以使任何本領(lǐng)域的技術(shù)人員了解本發(fā)明的技術(shù)內(nèi)容并據(jù)以實施,且根據(jù)本說明書所公開的內(nèi)容、權(quán)利要求保護范圍及附圖,任何本領(lǐng)域的技術(shù)人員可輕易地理解本發(fā)明相關(guān)的目的及優(yōu)點。本發(fā)明關(guān)于一種多播封包(multi-cast package)的發(fā)送速度控制方法,其用于令一網(wǎng)絡卡(network interface card, NIC)以一目標速度發(fā)送多個多播封包。請參照圖1,為一實施范例的多播封包的發(fā)送速度控制方法的流程圖。多播封包的發(fā)送速度控制方法首先依據(jù)要傳送的多播封包的大小以及目標速度計算一標準時間,并記錄一累計誤差時間(步驟S110)。其中標準時間為多播封包的大小除以目標速度的商數(shù)。接著另網(wǎng)絡卡實際以目標速度發(fā)送一個多播封包,并計算發(fā)送的多播封包的一發(fā)送時間(步驟S120)。發(fā)送時間可以是將發(fā)送的多播封包發(fā)送前后的一系統(tǒng)時間相減得到。更詳細地說,可以在發(fā)送多播封包前后讀取包括此網(wǎng)絡卡的計算器所維護的系統(tǒng)時間,再將發(fā)送前后的時間相減便能得到實際發(fā)送此多播封包所花費的發(fā)送時間。接著計算標準時間與發(fā)送時間的差值,將標準時間與發(fā)送時間的差值記錄為本次誤差時間;將累計誤差時間與本次誤差時間合計,并將合計結(jié)果記錄一預定休眠時間(步驟S130)。也就是說,在步驟S130中將累計誤差時間回饋至預定休眠時間,以更靈敏地反應及調(diào)整發(fā)送速度。得到預定休眠時間后,判斷預定休眠時間是否大于一誤差門坎值(步驟S140)。根據(jù)一實施范例,誤差門坎值可以是1毫秒(ms)。誤差門坎值能夠確實地掌握發(fā)送速度的控制的精準度,可依實際發(fā)送多播封包的需要設(shè)定,在此并不對其做限制。當預定休眠時間大于誤差門坎值時,令網(wǎng)絡卡休眠一預定休眠時間,其中預定休眠時間為累計誤差時間加上本次誤差時間的和(步驟S160)。步驟S160中可透過例如窗口(Windows)系統(tǒng)的延時(Sle印)函數(shù)等應用程序接口(application program interface, API)實作。相對的,當預定休眠時間不大于誤差門坎值時,則可將預定休眠時間作為新的累計誤差時間(步驟S150)。由步驟S150以及S160可以見悉,多播封包的發(fā)送速度控制方法將每次延時產(chǎn)生的本次誤差時間進行保留,而不是丟棄。本次誤差時間并實時回饋至下一次的延時控制中, 而能夠動態(tài)補償誤差,從而減小延時誤差以及提高控制精度。此外,由于利用這種誤差補償機制,即使縮小測量時間產(chǎn)生的誤差也可以得到有效補償。網(wǎng)絡卡休眠了預定休眠時間之后自休眠中被喚醒,并計算實際休眠時間(步驟 S170)。類似地,亦可將網(wǎng)絡卡休眠前后的系統(tǒng)時間相減,以得到實際休眠時間。由于Sle印函數(shù)的可測精度大于10毫秒,因此一般而言實際休眠時間均會大于10毫秒。多播封包的發(fā)送速度控制方法接著計算預定休眠時間減去實際休眠時間的差值, 并將預定休眠時間減去實際休眠時間的差值作為新的累計誤差時間(步驟S180)。且每傳送一個多播封包后都會判斷是否已將全部的多播封包發(fā)送完成(步驟S190)。若是,則可結(jié)束控制。若否,則回到步驟SllO以發(fā)送下一個多播封包。須注意的是,上述的“誤差門坎值”、“實際休眠時間”以及“累計時間門坎值”所舉例的數(shù)值都可依實際發(fā)送多播封包的需要設(shè)定,在此并不對其做限制。透過調(diào)整這些數(shù)值, 可以設(shè)定動態(tài)誤差補償?shù)姆秶约岸嗫炜梢曰謴偷侥繕嗽O(shè)定速度等。請參考圖2,為另一實施范例的多播封包的發(fā)送速度控制方法的部分流程圖。于本實施范例中,在步驟SllO亦可同時建立一累計發(fā)送時間。且在實際發(fā)送多播封包(步驟 S120)之前可執(zhí)行下述用以重置累計誤差時間。在每次發(fā)送多播封包之前,先計算累計發(fā)送時間(步驟S210);也就是計算累計發(fā)送時間被建立或是被重置為0到目前已過了多久的時間。接著判斷發(fā)送時間是否大于一累計時間門坎值(步驟S220);當大于累計時間門坎值時,將累計誤差時間以及累計發(fā)送時間重設(shè)為0 (步驟S230)。根據(jù)一實施范例,累積誤差門坎值可以是1秒(S)。累積誤差門坎值亦可依實際發(fā)送多播封包的需要設(shè)定,在此并不對其做限制。由于每隔一段時間便將累積誤差時間重置為0,故能夠保證累積誤差時間在一小段時間內(nèi)進行動態(tài)誤差補償。請參照圖3,為一實施范例的發(fā)送速度的曲線圖。由圖3的一發(fā)送速度曲線20可以見悉,網(wǎng)絡卡剛開始啟動時尚在進行環(huán)境的配置等動作而無法快速傳送多播封包。但隨后為了將累積的多播封包實時傳出,變成完全不需執(zhí)行延時函數(shù),能傳多快就傳多快而達到網(wǎng)絡卡的發(fā)送速度上限。但為了調(diào)整過快的發(fā)送速度,多播封包的發(fā)送速度控制方法透過累積誤差時間迅速地將發(fā)送速度回復到目標速度。綜上所述,多播封包的發(fā)送速度控制方法實時將累積誤差時間回饋給延時函數(shù), 并定時將其清空。因此多播封包的發(fā)送速度控制方法能夠保證網(wǎng)絡數(shù)據(jù)傳輸?shù)母咝Х€(wěn)定又不占用過多的中央處理器(central processor unit,CPU)資源。換句話說,多播封包的發(fā)送速度控制方法能夠同時達到低資源利用率以及高精度控制的效果。更進一步地,本方法能包括此網(wǎng)絡卡的多播服務器的壓力,而保證多播數(shù)據(jù)能高速穩(wěn)定傳輸,并減少了網(wǎng)絡數(shù)據(jù)傳輸出錯的可能性。以上較佳具體實施范例,是用于更加清楚的描述本發(fā)明的特征與精神,并非以上述公開的較佳具體實施范例對本發(fā)明的范疇加以限制。相反地,各種改變及具相等性的變形方案皆涵蓋于本發(fā)明的專利保護范圍內(nèi)。
權(quán)利要求
1.一種多播封包的發(fā)送速度控制方法,用于令一網(wǎng)絡卡以一目標速度發(fā)送多個多播封包,其特征在于,該多播封包的發(fā)送速度控制方法包括依據(jù)該些多播封包的大小以及該目標速度計算一標準時間,并記錄一累計誤差時間; 發(fā)送該些多播封包之一,并計算該發(fā)送的多播封包的一發(fā)送時間; 計算該標準時間與該發(fā)送時間的差值,將該標準時間與該發(fā)送時間的差值記錄為一本次誤差時間,將該累計誤差時間與該本次誤差時間合計,并將合計結(jié)果記錄一預定休眠時間;當該預定休眠時間大于一誤差門坎值時,執(zhí)行以下步驟 休眠該預定休眠時間;自休眠中被喚醒,并計算一實際休眠時間;以及計算該預定休眠時間減去該實際休眠時間的差值,并將該預定休眠時間減去該實際休眠時間的差值作為新的該累計誤差時間;以及回到上述依據(jù)該些多播封包的大小以及該目標速度計算一標準時間,并記錄一累計誤差時間的步驟,以發(fā)送下一個該多播封包。
2.如權(quán)利要求1所述的多播封包的發(fā)送速度控制方法,其特征在于,在該依據(jù)該些多播封包的大小以及該目標速度計算一標準時間,并記錄一累計誤差時間的步驟之中,還包括建立一累計發(fā)送時間;而在該發(fā)送該些多播封包之一,并計算該發(fā)送的多播封包的一發(fā)送時間的步驟之前,該多播封包的處理方法還包括計算該累計發(fā)送時間;以及當該累計發(fā)送時間大于一累計時間門坎值時,將該累計誤差時間以及該累計發(fā)送時間重設(shè)為0。
3.如權(quán)利要求2所述的多播封包的發(fā)送速度控制方法,其特征在于,該累計時間門坎值為1秒。
4.如權(quán)利要求1所述的多播封包的發(fā)送速度控制方法,其特征在于,該誤差門坎值為1毫秒。
5.如權(quán)利要求1所述的多播封包的發(fā)送速度控制方法,其特征在于,另包括當該預定休眠時間不大于該誤差門坎值時,將該預定休眠時間作為新的該累計誤差時間。
6.如權(quán)利要求1所述的多播封包的發(fā)送速度控制方法,其特征在于,該發(fā)送時間為將該發(fā)送的多播封包發(fā)送前后的一系統(tǒng)時間相減得到。
7.如權(quán)利要求1所述的多播封包的發(fā)送速度控制方法,其特征在于,該實際休眠時間大于10毫秒。
全文摘要
本發(fā)明公開了一種多播封包的發(fā)送速度控制方法,包括計算標準時間,并記錄累計誤差時間;發(fā)送多播封包,并計算發(fā)送的多播封包的發(fā)送時間;計算標準時間與發(fā)送時間的差值,將差值記錄為本次誤差時間,將累計誤差時間與本次誤差時間合計,并將合計結(jié)果記錄預定休眠時間;當預定休眠時間大于誤差門坎值時,執(zhí)行以下步驟休眠預定休眠時間;自休眠中被喚醒,并計算實際休眠時間;以及計算得到新的累計誤差時間為預定休眠時間減實際休眠時間;以及回到最初的步驟,以發(fā)送下一個多播封包。
文檔編號H04L12/56GK102457424SQ20101051653
公開日2012年5月16日 申請日期2010年10月19日 優(yōu)先權(quán)日2010年10月19日
發(fā)明者李連成, 陳志豐 申請人:英業(yè)達股份有限公司, 英業(yè)達集團(天津)電子技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1