專利名稱:利用rtp和rtcp協(xié)議動態(tài)發(fā)送數(shù)據(jù)包的方法
技術領域:
本發(fā)明申請涉及數(shù)據(jù)包發(fā)送,尤其涉及使用標準協(xié)議的國際協(xié)議(international Protocol,IP)網(wǎng)絡中的實時數(shù)據(jù)或近似實時數(shù)據(jù)的發(fā)送。
背景技術:
實時傳輸協(xié)議(RTP)廣泛應用于在IP網(wǎng)絡中實時或者近似實時數(shù)據(jù)的發(fā)送,伴隨該協(xié)議的是協(xié)議名為實時傳輸控制協(xié)議(RTCP)的協(xié)議,用于監(jiān)視發(fā)送,在前向發(fā)送方向或作為一個從接收方返回發(fā)送方的反饋,收集統(tǒng)計信息和發(fā)送控制數(shù)據(jù)。
RTP通常通過兩個準則限制反饋量第一,為RTCP分配的RTP會話帶寬有一個確定百分比(建議為5%),所有接收方分享這個帶寬,并從這個值中計算時間間隔,在這個間隔中它們發(fā)送反饋;第二準則是發(fā)送兩個反饋的時間間隔必須至少有5秒鐘(5秒鐘作為建議值)。
對于大型多點傳輸組群,這些準則將使RTP穩(wěn)定和可用,它對于單點或小型多點傳輸來說不是最佳的。在這些群組中,每個使用者得益于更多反饋并將被發(fā)送。問題已經(jīng)被認同并且一個新的RTP協(xié)議被標準化。根據(jù)新協(xié)議,在發(fā)送兩個反饋之間的間隔必須是至少5秒鐘的準則被省略,這樣接收方依靠會話參數(shù)能發(fā)送更多反饋。不能超過分配RTCP會話帶寬的準則仍然有效。
如上述討論,分配給RTCP的用于發(fā)送控制數(shù)據(jù)的RTP帶寬的百分比通常固定到一個建議值5%,然而,一個目前標準化的方案是改變這個百分比為其它值,比特速率也可以被設置為零使RTCP反饋關閉。
另外在網(wǎng)絡鏈路參數(shù)中,如一無線鏈路上的包丟失速率隨時間有很大的改變,因此,對于確定的時間間隔來說,設置RTP帶寬可能會工作很好,但是在此之后,發(fā)送的性能和效果,將隨鏈路條件的變化而惡化。
發(fā)明內(nèi)容
本發(fā)明目的是提供一種利用RTP和RTCP協(xié)議并且可增加發(fā)送效率的發(fā)送數(shù)據(jù)包的方法。
這個目的通過如權利要求1的方法來達到,本方法的最佳實施例相應于各個從屬權利要求。
本發(fā)明基于如下考慮,一個特定媒體會話的具體環(huán)境,對RTCP帶寬來說允許更大的靈活性。由于每個會話的控制數(shù)據(jù)(control data per se)不會增加媒體流的質量,故必須最佳化用于媒體數(shù)據(jù)包的發(fā)送的RTP帶寬,而不需使用一個用于控制數(shù)據(jù)發(fā)送的固定數(shù)。另一方面,媒體數(shù)據(jù)包的發(fā)送需要確定數(shù)量的控制數(shù)據(jù)被發(fā)送。根據(jù)傳統(tǒng)分配一個固定RTP帶寬百分比的方案,RTCP帶寬或者由于在兩個連續(xù)RTCP包之間的最小間隔為5秒鐘,因而太低或者又超過需要。
例如,在一個單點媒體會話中,分配給RTCP的5%的RTP會話帶寬導致在一個用于控制數(shù)據(jù)包的發(fā)送時間間隔只有幾毫秒。結果,分配的帶寬被浪費,并且特別對于帶寬是寶貴資源的鏈路,如無線鏈路,發(fā)送效率大大降低了。另一方面,尤其是,無線鏈路需要一個快速反饋,如使編解碼器適應變化的鏈路條件和發(fā)送媒體數(shù)據(jù)包所需的到發(fā)送者的信號。
本發(fā)明的方法集中在測量一個用于單獨媒體會話的網(wǎng)絡鏈路的相關特征并從這個測量值中計算最佳RTCP帶寬的想法上。然后計算帶寬用于控制數(shù)據(jù)包的發(fā)送,而媒體數(shù)據(jù)包通過使用剩余的有效帶寬發(fā)送。這樣,獲得對于媒體數(shù)據(jù)包發(fā)送具有最高效率的最佳化帶寬分配,并且RTCP帶寬的分配在一種充分方式中以合適的速率提供控制數(shù)據(jù)。因此,對于各自不同的鏈路,不同最佳帶寬分配使能夠獲得最高效率發(fā)送。
進一步地,通過連續(xù)測量網(wǎng)絡鏈路的相關特征,發(fā)送信道的狀態(tài)和它的環(huán)境可以被確定,并且RTCP帶寬相應的發(fā)生動態(tài)改變,這樣,發(fā)送系統(tǒng)可以在控制數(shù)據(jù)的數(shù)量和鏈路發(fā)送效率之間取一個最佳折衷連續(xù)地實現(xiàn)操作。
根據(jù)一個較佳實施例,測量相關網(wǎng)絡鏈路特征的步驟包括測量每個時間間隔中所發(fā)送的數(shù)據(jù)包的數(shù)量。
根據(jù)一個進一步較佳實施例,為了確定鏈路的質量,測量在確定的時間間隔中丟失的數(shù)據(jù)包數(shù)與發(fā)送的數(shù)據(jù)包數(shù)之比。
作為進一步更好的實施例,將對數(shù)據(jù)包從一服務器發(fā)送到一客戶端、并返回服務器所花費的時間的測量、作為用于網(wǎng)絡鏈路往返時間的測量。進一步最好是在確定擁塞狀態(tài)下測量網(wǎng)絡鏈路特征。
最好是,為了允許系統(tǒng)以一個最佳RTCP帶寬連續(xù)運行,所有不相關特征的測量以有規(guī)律的間隔周期性的展開。有利地,最佳RTCP帶寬作為一個反饋信號指示從一客戶發(fā)送到一服務器上。
最好是,本發(fā)明方法進一步包括,計算在兩個連續(xù)控制數(shù)據(jù)包的發(fā)送之間的最佳反饋間隔的步驟。
圖1顯示了一個作為一個序列步驟說明本發(fā)明較好實施例的流程圖。
具體實施例方式
接下來,本發(fā)明將參考圖1作詳細描述,圖1顯示了一個作為一個序列步驟說明本發(fā)明較好實施例的流程圖。
如圖1顯示,在一個媒體會話的開始,必須確定網(wǎng)絡鏈路相關特征的測量結果是否存在。如果仍沒有樣值可用,在步驟100作出假定和猜測。
在步驟101,應用程序(application)必須選擇哪種反饋是必須的,新的RTP協(xié)議通常不限定一個確定的反饋類型。常規(guī)狀態(tài)的報告,負的或正的確認可以作為例子提供。
常規(guī)狀態(tài)的報告通常被用于發(fā)送方評估網(wǎng)絡條件和隨后來修改發(fā)送參數(shù)。示例可能是擁塞控制算法,需要被通知網(wǎng)絡數(shù)據(jù)包丟失率,典型地在每個返回時間中至少通知一次。
負確認(NACK)在發(fā)送被用于方調(diào)用誤差恢復特征。這可能意味著重新發(fā)送或改變編碼參數(shù),例如以使新的數(shù)據(jù)獨立于丟失的數(shù)據(jù)可用。
正確認(ACK)被典型地用于提高編碼或發(fā)送的效率,如果發(fā)送方了解接收數(shù)據(jù),它可以用這個作為下個數(shù)據(jù)編碼的參考。
作為上述描述的事件既可以獨立,也可以以任意組合形式被采用。反饋也可以以獨立或組合形式被采用。一個典型例子是關于被測量的數(shù)據(jù)包丟失率的常規(guī)反饋,它是發(fā)送方的擁塞控制算法和用于所有丟失數(shù)據(jù)包請求丟失數(shù)據(jù)重傳的負確認所需的。
圖1中下一步驟102請求測量所需的輸入?yún)?shù),該參數(shù)用于最佳RTCP帶寬百分比的計算。因為網(wǎng)絡鏈路特征隨時間發(fā)生變化,這些測量值必須周期性的重復。所做的測量依賴于反饋的類型??梢垣@得用于上述各種反饋類型的最優(yōu)化RTCP帶寬的通常測量,包括(沒有窮舉)如包速率包速率是每個時間間隔發(fā)送的數(shù)據(jù)包數(shù),這個參數(shù)可以在現(xiàn)有技術中獲得,但是,也可能是可變的。示例可以是一個服務器根據(jù)隨著時間變化的網(wǎng)絡擁塞狀態(tài)調(diào)整發(fā)送包速率??蛻敉ㄟ^計算每個時間間隔的數(shù)據(jù)包數(shù)來測量包速率。由于從服務器到客戶的發(fā)送路徑上可能有數(shù)據(jù)包丟失,測量值應該周期重復并且應該采用一些測量值的平均值。一種典型處理的方法是采用流動平均(running average),也就是計算pr_new=(1/w*pr_m)+((w-1)/w*pr_old)這里pr_new是指新的平均包速率,pr_old指最后的平均包速率,pr_m是當前測試的包速率的抽樣,w是確定在平均過程中新測量值的影響的加權因子。
數(shù)據(jù)包丟失速率數(shù)據(jù)包丟失速率定義為在一個確定時間間隔中丟失數(shù)據(jù)包數(shù)除以發(fā)送的數(shù)據(jù)包數(shù)。因為數(shù)據(jù)包丟失速率隨著時間經(jīng)常有大的變化,如依賴于鏈路條件,故為測量而選擇的時間間隔對于一個正確的抽樣是至關緊要的。典型值是每一往返時間或多個往返時間一次。
往返時間(RTT)往返時間定義為一個數(shù)據(jù)包從服務器到客戶并返回服務器所花費的時間。這個值隨著時間也有很大變動,并依賴于網(wǎng)絡狀態(tài)、如擁塞和其它情況。典型地往返時間的測量同樣基于所描述的用于包速率的流動平均算法。
如前面所述,如果媒體會話還沒有開始,但是要被建立,則仍然沒有可用的測量值,所以,必須對值作出假定,典型地,這些值能被估計為正確的等級次序。
作為下一步驟103,執(zhí)行在兩個反饋發(fā)送之間的間隔的計算。反饋間隔依賴上述的測量值,同時依賴于反饋的類型。如果需要常規(guī)反饋,如每個往返時間(RTT)一次,則最大的反饋間隔可以很容易的被估算為RTT,如果要報告確定事件,如數(shù)據(jù)包接收或數(shù)據(jù)包丟失,則必須計算在這些事件之間的平均間隔。在ACK的情況下,這就是數(shù)據(jù)包中間的到達時間,是1/包速率;在NACK的情況下,它是數(shù)據(jù)包中間到達時間除以平均數(shù)據(jù)包丟失速率。
RTCP協(xié)議保證在間隔期間內(nèi)的短時期的變化可以得到補償,只要長期間平均中間事件時間非常穩(wěn)定。
為了正確計算所需的RTCP帶寬(步驟104),最好知道反饋數(shù)據(jù)包的大小。對于大多數(shù)應用,數(shù)據(jù)包大小在會話期間是固定的,它也可能是可變的,如在丟失事件的情況下,在一個反饋數(shù)據(jù)包里可能要報告不只一個丟失事件。因此,應該采用反饋數(shù)據(jù)包大小的平均值。
設反饋包的大小為s_fb[bit],反饋速率為r_fb[1/s],則所需平均RTCP帶寬(以比特/秒為單位)可以通過bw_rtcp=s_fb*r_fb計算出來。
RTP會話帶寬bw_rtp對于會話期間是固定的。RTCP帶寬百分比的計算結果在步驟105通過f_rtcp=bw_rtcp/bw_rtp得到。
在下一步驟106中,將新計算的帶寬百分比與先前各個值相比較,如果比較顯示一個很大不同,則新帶寬百分比如步驟107顯示的那樣,以信號的形式發(fā)送給發(fā)送方。
新RTCP帶寬百分比值的信號指示可以與一些開銷相聯(lián)系。它可能需要結束現(xiàn)存的會話和隨后開始一個新的具有新的RTCP帶寬百分比的會話。然而切換中發(fā)生的變化可以盡可能的好。
必須去考慮,確定是否信號發(fā)送新帶寬百分比值。如果與先前值沒有出現(xiàn)很大不同,就不值得付出努力。反饋路徑是非確定狀態(tài),這意味著用于事件的反饋無論如何沒有得到保證。僅僅增加了及時發(fā)送反饋的可能性概率。因此要權衡利弊是否信號發(fā)送新的值。
在確定改變此百分比和利用現(xiàn)存的信令協(xié)議的情況下,需要下述做法如果沒有完成會話建立,則帶寬百分比隨著會話描述協(xié)議SDP被信號發(fā)送。如果一個會話已經(jīng)建立,則必須通過發(fā)送一個RTCP BYE消息來結束會話,并建立一個新的會話,其中RTCP帶寬被SDP信號發(fā)送。其它信號發(fā)送計算的RTCP帶寬百分比的可能性是存在的。
在步驟101-107已經(jīng)完成之后,它們被周期地重復。通過執(zhí)行這些步驟,一個最佳帶寬百分比值在整個會話中被連續(xù)使用。變化的信道環(huán)境狀態(tài)通過對RTCP帶寬百分比的有規(guī)律的測量,修正和動態(tài)的變化得以補償,而對于RTCP帶寬的靜態(tài)調(diào)整,在會話開始時計算的百分比是基于猜測值和已知參數(shù),而不是測量值。在后面情況中,RTCP帶寬在會話期間沒有變化,導致不正確的值和低性能。這些缺點被相應于在會話進行期間的變化而動態(tài)的新計算得以補償。
權利要求
1.一種發(fā)送數(shù)據(jù)包的方法,特別是在互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)絡中使用用于媒體數(shù)據(jù)產(chǎn)品的實時協(xié)議(RTP)和用于控制數(shù)據(jù)包的實時控制協(xié)議(RTCP)發(fā)送實時和近似實時數(shù)據(jù),每個協(xié)議被分配一個可用發(fā)送寬帶百分比,該方法包括下面步驟測量網(wǎng)絡鏈路的相關特征,從這個測量值中計算一個最佳RTCP帶寬,和利用這個最佳化的RTCP帶寬發(fā)送控制數(shù)據(jù)包。
2.如權利要求1所述方法,其中所述測量相關網(wǎng)絡鏈路特征的步驟包括測量每個時間間隔發(fā)送的數(shù)據(jù)包數(shù)。
3.如權利要求1所述方法,其中所述測量相關網(wǎng)絡鏈路特征的步驟包括確定在發(fā)送中的丟失數(shù)據(jù)包數(shù)。
4.如權利要求1所述方法,其中所述測量相關網(wǎng)絡鏈路特征的步驟包括確定從服務器發(fā)送數(shù)據(jù)包到客戶端并返回服務器所花費的時間。
5.如權利要求1所述的方法,其中所述測量相關網(wǎng)絡鏈路特征的步驟包括確定所述IP網(wǎng)絡的擁塞狀態(tài)。
6.如權利要求1所述的方法,其中所述相關網(wǎng)絡鏈路特征的測量在有規(guī)則的間隔中被周期性地影響。
7.如權利要求1所述的方法,其中所述最佳化的RTCP帶寬作為反饋從客戶信號發(fā)送到服務器。
8.如權利要求1所述的方法,其中所述控制數(shù)據(jù)包是規(guī)則狀態(tài)報告,發(fā)送事件的正或負確認之一。
9.如權利要求1所述的方法,進一步包括計算在兩個連續(xù)控制數(shù)據(jù)包的發(fā)送之間最佳反饋間隔的步驟。
10.如權利要求1所述的方法,其中所述計算最佳化RTCP帶寬的步驟包括確定所述控制數(shù)據(jù)包平均速率的步驟。
11.如權利要求1所述的方法,其中所述計算最佳化RTCP帶寬的步驟包括確定所述控制數(shù)據(jù)包大小的步驟。
全文摘要
一種發(fā)送數(shù)據(jù)包的方法,特別是在互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)絡中利用用于媒體數(shù)據(jù)產(chǎn)品的實時協(xié)議(RTP)和用于控制數(shù)據(jù)包的實時控制協(xié)議(RTCP)發(fā)送實時和近似實時數(shù)據(jù)的方法。為每個協(xié)議分配一個可用發(fā)送帶寬百分比。本方法包括測量相關網(wǎng)絡鏈路特征的步驟,從這個測量值中計算最佳RTCP帶寬的步驟以及采用這個最佳RTCP帶寬發(fā)送控制數(shù)據(jù)包的步驟。
文檔編號H04L1/20GK1438793SQ0312060
公開日2003年8月27日 申請日期2003年2月13日 優(yōu)先權日2002年2月13日
發(fā)明者卡斯滕·伯邁斯特, 羅爾夫·哈肯伯格, 宮崎秋弘 申請人:松下電器產(chǎn)業(yè)株式會社