TWI411268B - 多播封包的發送速度控制方法 - Google Patents
多播封包的發送速度控制方法 Download PDFInfo
- Publication number
- TWI411268B TWI411268B TW99140665A TW99140665A TWI411268B TW I411268 B TWI411268 B TW I411268B TW 99140665 A TW99140665 A TW 99140665A TW 99140665 A TW99140665 A TW 99140665A TW I411268 B TWI411268 B TW I411268B
- Authority
- TW
- Taiwan
- Prior art keywords
- time
- multicast packet
- transmission
- error
- accumulated
- Prior art date
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Description
本發明係關於一種多播封包的發送速度控制方法,特別是一種高精密度的多播封包的發送速度控制方法。
在與網路封包的發送技術相關的領域中,對發送速度進行控制是一個重要的議題。網路資料發送速度的計算方式是資料發送量與發送時間的比值。目前,微軟(Microsoft)的視窗(Windows)系統係使用延時(Sleep)函數控制網路封包的發送速度。延時函數就是在延時過程中不佔用系統資源,但是它的精度太低,大約僅能精確到毫秒級。且實際執行延時函數時的誤差一般會達到10毫秒,因此不適用於需要高速且穩定之發送速度的應用。
而視窗系統亦提供了一種精度能與機器時鐘同步計數器,其能精確到奈秒(ns)級。但是利用此計數器進行延遲的方法需要系統頻繁計數並確認延時時間是否到達,而嚴重佔用中央處理器(central processor unit,CPU)資源,進而影響其他軟體及系統的運行。
也就是說,在傳統上發送多播(multi-cast)等網路封包的發送速度控制中,具有延時精度過低而容易引起發送速度之波動的問題,或是具有需要極度耗費CPU資源的缺點。
為了解決上述問題,在此提供一種多播封包(multi-cast package)的發送速度控制方法,其用於令一網路卡(network interface card,NIC)以一目標速度發送多個多播封包。多播封包的發送速度控制方法包括:依據多播封包的大小以及目標速度計算一標準時間,並記錄一累計誤差時間;發送多播封包之一,並計算發送的多播封包的一發送時間;計算標準時間與發送時間的差值,將標準時間與發送時間的差值記錄為一本次誤差時間,將累計誤差時間與本次誤差時間合計,並將合計結果記錄一預定休眠時間;當預定休眠時間大於一誤差門檻值時,執行以下步驟:休眠預定休眠時間;自休眠中被喚醒,並計算一實際休眠時間;以及計算得到新的累計誤差時間為預定休眠時間減實際休眠時間;以及回到上述「依據多播封包的大小以及目標速度計算標準時間,並記錄累計誤差時間」的步驟,以發送下一個多播封包。
其中在「依據多播封包的大小以及目標速度計算一標準時間,並記錄一累計誤差時間」的步驟之中,另可包括:建立一累計發送時間。而在「發送多播封包之一,並計算發送的多播封包的一發送時間」的步驟之前,多播封包的處理方法另可包括:計算一累計發送時間;以及當累計發送時間大於一累計時間門檻值時,將累計誤差時間以及累計發送時間重設為0。
根據一實施範例,多播封包的發送速度控制方法另可包括:當預定休眠時間不大於一誤差門檻值時,將預定休眠時間
作為新的累計誤差時間。其中發送時間可以是將發送的多播封包發送前後的一系統時間相減得到。
此外,上述之累計時間門檻值可以是1秒(s)。誤差門檻值可以是1毫秒(ms)。實際休眠時間可以是大於10毫秒。
綜上所述,多播封包的發送速度控制方法利用原本為低精度的延時函數,來實現高精度的多播封包的發送速度控制。透過即時將累積誤差時間回饋給延時函數,並定時將其清空的技術,多播封包的發送速度控制方法能夠保證網路資料傳輸的高效穩定又不佔用過多的中央處理器(central processor unit,CPU)資源。
以下在實施方式中詳細敘述本發明之詳細特徵以及優點,其內容足以使任何熟習相關技藝者了解本發明之技術內容並據以實施,且根據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技藝者可輕易地理解本發明相關之目的及優點。
本發明係關於一種多播封包(multi-cast package)的發送速度控制方法,其用於令一網路卡(network interface card,NIC)以一目標速度發送多個多播封包。
請參照「第1圖」,其係為一實施範例之多播封包的發送速度控制方法之流程圖。
多播封包的發送速度控制方法首先依據要傳送之多播封包的大小以及目標速度計算一標準時間,並記錄一累計誤差時間(步驟S110)。其中標準時間為多播封包的大小除以目標速度的商數。接著令網路卡實際以目標速度發送一個多播封包,並計算發送的多播封包的一發送時間(步驟S120)。
發送時間可以是將發送的多播封包發送前後的一系統時間相減得到。更詳細地說,可以在發送多播封包前後讀取包括此網路卡的計算機所維護的系統時間,再將發送前後的時間相減便能得到實際發送此多播封包所花費的發送時間。
接著計算標準時間與發送時間的差值,將標準時間與發送時間的差值記錄為本次誤差時間;將累計誤差時間與本次誤差時間合計,並將合計結果記錄一預定休眠時間(步驟S130)。也就是說,在步驟S130中將累計誤差時間回饋至預定休眠時間,以更靈敏地反應及調整發送速度。
得到預定休眠時間後,判斷預定休眠時間是否大於一誤差門檻值(步驟S140)。根據一實施範例,誤差門檻值可以是1毫秒(ms)。誤差門檻值能夠確實地掌握發送速度的控制的精準度,可依實際發送多播封包的需要設定,在此並不對其做限制。
當預定休眠時間大於誤差門檻值時,令網路卡休眠一預定休眠時間,其中預定休眠時間為累計誤差時間加上本次誤差時間的和(步驟S160)。步驟S160中可透過例如視窗(Windows)
系統的延時(Sleep)函數等應用程式介面(application program interface,API)實作。相對的,當預定休眠時間不大於誤差門檻值時,則可將預定休眠時間作為新的累計誤差時間(步驟S150)。
由步驟S150以及S160可以見悉,多播封包的發送速度控制方法將每次延時產生的本次誤差時間進行保留,而不是丟棄。本次誤差時間並即時回饋至下一次的延時控制中,而能夠動態補償誤差,從而減小延時誤差以及提高控制精度。此外,由於利用這種誤差補償機制,即使縮小測量時間產生的誤差也可以得到有效補償。
網路卡休眠了預定休眠時間之後自休眠中被喚醒,並計算實際休眠時間(步驟S170)。類似地,亦可將網路卡休眠前後的系統時間相減,以得到實際休眠時間。由於Sleep函數的可測精度大於10毫秒,因此一般而言實際休眠時間均會大於10毫秒。
多播封包的發送速度控制方法接著計算預定休眠時間減去實際休眠時間的差值,並將預定休眠時間減去實際休眠時間的差值作為新的累計誤差時間(步驟S180)。且每傳送一個多播封包後都會判斷是否已將全部的多播封包發送完成(步驟S190)。若是,則可結束控制。若否,則回到步驟S110以發送下一個多播封包。
須注意的是,上述之「誤差門檻值」、「實際休眠時間」以
及「累計時間門檻值」所舉例的數值都可依實際發送多播封包的需要設定,在此並不對其做限制。透過調整這些數值,可以設定動態誤差補償的範圍,以及多快可以恢復到目標設定速度等。
請參考「第2圖」,其係為另一實施範例之多播封包的發送速度控制方法之部分流程圖。於本實施範例中,在步驟S110亦可同時建立一累計發送時間。且在實際發送多播封包(步驟S120)之前可執行下述用以重置累計誤差時間。
在每次發送多播封包之前,先計算累計發送時間(步驟S210);也就是計算累計發送時間被建立或是被重置為0到目前已過了多久的時間。接著判斷發送時間是否大於一累計時間門檻值(步驟S220);當大於累計時間門檻值時,將累計誤差時間以及累計發送時間重設為0(步驟S230)。
根據一實施範例,累積誤差門檻值可以是1秒(s)。累積誤差門檻值亦可依實際發送多播封包的需要設定,在此並不對其做限制。由於每隔一段時間便將累積誤差時間重置為0,故能夠保證累積誤差時間在一小段時間內進行動態誤差補償。
請參照「第3圖」,其係為一實施範例之發送速度之曲線圖。由「第3圖」的一發送速度曲線20可以見悉,網路卡剛開始啟動時尚在進行環境的配置等動作而無法快速傳送多播封包。但隨後為了將累積的多播封包即時傳出,變成完全不需執行延時函數,能傳多快就傳多快而達到網路卡的發送速度上
限。但為了調整過快的發送速度,多播封包的發送速度控制方法透過累積誤差時間迅速地將發送速度回復到目標速度。
綜上所述,多播封包的發送速度控制方法即時將累積誤差時間回饋給延時函數,並定時將其清空。因此多播封包的發送速度控制方法能夠保證網路資料傳輸的高效穩定又不佔用過多的中央處理器(central processor unit,CPU)資源。換句話說,多播封包的發送速度控制方法能夠同時達到低資源利用率以及高精度控制的效果。更進一步地,本方法能保證多播資料能高速穩定傳輸,並減少了網路資料傳輸出錯的可能性。
以上較佳具體實施範例之詳述,是希望藉此更加清楚描述本發明之特徵與精神,並非以上述揭露的較佳具體實施範例對本發明之範疇加以限制。相反地,其目的是希望將各種改變及具相等性的安排涵蓋於本發明所欲申請之專利範圍的範疇內。
20‧‧‧發送速度曲線
第1圖係為一實施範例之多播封包的發送速度控制方法之流程圖。
第2圖係為另一實施範例之多播封包的發送速度控制方法之部分流程圖。
第3圖係為一實施範例之發送速度之曲線圖。
Claims (7)
- 一種多播封包的發送速度控制方法,用於令一網路卡以一目標速度發送多個多播封包,該多播封包的發送速度控制方法包括:依據該些多播封包的大小以及該目標速度計算一標準時間,並記錄一累計誤差時間;發送該些多播封包之一,並計算該發送的多播封包的一發送時間;計算該標準時間與該發送時間的差值,將該標準時間與該發送時間的差值記錄為一本次誤差時間,將該累計誤差時間與該本次誤差時間合計,並將合計結果記錄一預定休眠時間;當該預定休眠時間大於一誤差門檻值時,執行以下步驟:休眠該預定休眠時間;自休眠中被喚醒,並計算一實際休眠時間;以及計算該預定休眠時間減去該實際休眠時間的差值,並將該預定休眠時間減去該實際休眠時間的差值作為新的該累計誤差時間;以及回到上述依據該些多播封包的大小以及該目標速度計算一標準時間,並記錄一累計誤差時間的步驟,以發送下一個該多播封包。
- 如請求項第1項所述之多播封包的發送速度控制方法,其中在該「依據該些多播封包的大小以及該目標速度計算一標準時間,並記錄一累計誤差時間」的步驟之中,另包括:建立一累計發送時間;而在該「發送該些多播封包之一,並計算該發送的多播封包的一發送時間」的步驟之前,該多播封包的處理方法另包括:計算該累計發送時間;以及當該累計發送時間大於一累計時間門檻值時,將該累計誤差時間以及該累計發送時間重設為0。
- 如請求項第2項所述之多播封包的發送速度控制方法,其中該累計時間門檻值為1秒。
- 如請求項第1項所述之多播封包的發送速度控制方法,其中該誤差門檻值為1毫秒。
- 如請求項第1項所述之多播封包的發送速度控制方法,另包括:當該預定休眠時間不大於該誤差門檻值時,將該預定休眠時間作為新的該累計誤差時間。
- 如請求項第1項所述之多播封包的發送速度控制方法,其中該發送時間係為將該發送的多播封包發送前後的一系統時間相減得到。
- 如請求項第1項所述之多播封包的發送速度控制方法,其中該實際休眠時間大於10毫秒。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW99140665A TWI411268B (zh) | 2010-11-24 | 2010-11-24 | 多播封包的發送速度控制方法 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| TW99140665A TWI411268B (zh) | 2010-11-24 | 2010-11-24 | 多播封包的發送速度控制方法 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201223200A TW201223200A (en) | 2012-06-01 |
| TWI411268B true TWI411268B (zh) | 2013-10-01 |
Family
ID=46725432
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW99140665A TWI411268B (zh) | 2010-11-24 | 2010-11-24 | 多播封包的發送速度控制方法 |
Country Status (1)
| Country | Link |
|---|---|
| TW (1) | TWI411268B (zh) |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7130668B2 (en) * | 2003-09-01 | 2006-10-31 | Samsung Electronics Co., Ltd. | Method and system for controlling sleep mode in broadband wireless access communication system |
| US7219171B2 (en) * | 2003-12-16 | 2007-05-15 | Intel Corporation | Flow control for digital signal processing to support data stream operations |
| US20070248118A1 (en) * | 2006-04-19 | 2007-10-25 | Nafea Bishara | Adaptive Speed Control for MAC-PHY Interfaces |
| US20090325533A1 (en) * | 2008-06-27 | 2009-12-31 | Abhijit Lele | Method for using an adaptive waiting time threshold estimation for power saving in sleep mode of an electronic device |
| TW201004436A (en) * | 2008-07-11 | 2010-01-16 | Ind Tech Res Inst | A method for forming a device power savings class, a mobile station for wirelee communication and wireless communication |
| TW201019747A (en) * | 2008-09-15 | 2010-05-16 | Qualcomm Inc | Methods and apparatus for optimizing idle mode stand-by time in a multicast system |
-
2010
- 2010-11-24 TW TW99140665A patent/TWI411268B/zh not_active IP Right Cessation
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7130668B2 (en) * | 2003-09-01 | 2006-10-31 | Samsung Electronics Co., Ltd. | Method and system for controlling sleep mode in broadband wireless access communication system |
| US7219171B2 (en) * | 2003-12-16 | 2007-05-15 | Intel Corporation | Flow control for digital signal processing to support data stream operations |
| US20070248118A1 (en) * | 2006-04-19 | 2007-10-25 | Nafea Bishara | Adaptive Speed Control for MAC-PHY Interfaces |
| US20090325533A1 (en) * | 2008-06-27 | 2009-12-31 | Abhijit Lele | Method for using an adaptive waiting time threshold estimation for power saving in sleep mode of an electronic device |
| TW201004436A (en) * | 2008-07-11 | 2010-01-16 | Ind Tech Res Inst | A method for forming a device power savings class, a mobile station for wirelee communication and wireless communication |
| TW201019747A (en) * | 2008-09-15 | 2010-05-16 | Qualcomm Inc | Methods and apparatus for optimizing idle mode stand-by time in a multicast system |
Also Published As
| Publication number | Publication date |
|---|---|
| TW201223200A (en) | 2012-06-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7634589B2 (en) | Method for controlling peripheral adapter interrupt frequency by estimating processor load in the peripheral adapter | |
| US20160212032A1 (en) | Measurement apparatus, communications apparatus, and relay apparatus | |
| CN104219106B (zh) | 终端和利用该终端的网络状态测定系统及方法 | |
| US8918675B2 (en) | Rectifying corrupt sequence values in distributed systems | |
| US8713490B1 (en) | Managing aging of silicon in an integrated circuit device | |
| CN103929276A (zh) | 一种无线体域网的速率自适应方法及系统 | |
| CN102081555A (zh) | 调整时钟中断周期的方法和装置 | |
| TWI411268B (zh) | 多播封包的發送速度控制方法 | |
| US11349586B2 (en) | Time stamping method, time stamping apparatus and program | |
| US20090182534A1 (en) | Accurate measurement and monitoring of computer systems | |
| US8379643B2 (en) | Method for controlling transmission speed of multi-cast packets | |
| US20060143486A1 (en) | System and method to profile an unconstrained power of a processor | |
| CN104601393B (zh) | 排队延迟估计方法及装置 | |
| US9183042B2 (en) | Input/output traffic backpressure prediction | |
| CN102457424B (zh) | 多播封包的发送速度控制方法 | |
| US20220417127A1 (en) | Bandwidth estimation device and bandwidth estimation method | |
| CN114153553A (zh) | 一种虚拟机高可用的控制方法、系统及相关组件 | |
| US20240362144A1 (en) | System and method for monitoring data processing system performance using a digital twin | |
| CN110784478A (zh) | 超时时长的调整方法、装置、设备及计算机可读存储介质 | |
| US10638290B2 (en) | Communication terminal and communication system | |
| JP2011154487A (ja) | コンテンツ有用性管理システム、方法、及びプログラム | |
| CN114629826A (zh) | 一种网络最大带宽估计方法、装置、电子设备及存储介质 | |
| CN104378442A (zh) | 一种减少资源竞争的Trace文件转储方法 | |
| CN115834764B (zh) | 多媒体文件播放方法、装置、计算机设备及存储介质 | |
| CN117834484A (zh) | 应用程序的弱网测试方法及装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |