專利名稱:用于處理對等網(wǎng)絡(luò)中的損壞路徑的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及移動通信領(lǐng)域,并且更具體地,涉及移動對等流傳輸。
背景技術(shù):
本部分旨在提供在權(quán)利要求書中記載的本發(fā)明的背景或者上下文。這里的描述可以包括能夠探求的概念,但是這些概念并不必然是先前已經(jīng)設(shè)想或者探求的概念。因此除非在此另行指明,否則在本部分中描述的內(nèi)容并非是對于在本申請中的說明書和權(quán)利要求書的現(xiàn)有技術(shù)、也并不因為被包含在本節(jié)中而被承認(rèn)為現(xiàn)有技術(shù)。對等(P2P)正成為用于通過因特網(wǎng)向移動設(shè)備分發(fā)內(nèi)容的潛在顛覆性技術(shù)。其通
過減少對集中式服務(wù)器的需求來向傳統(tǒng)的、基于客戶端-服務(wù)器的方式提供了備選解決方案。在已經(jīng)公知的P2P文件共享之后,更新近的實時P2P流傳輸正變得流行。實時P2P流傳輸具有多種優(yōu)點(diǎn),其支持針對最終用戶以及價值鏈中的其他參與者(Player)的新應(yīng)用和商業(yè)模式。例如,P2P流傳輸技術(shù)允許移動設(shè)備的最終用戶通過因特網(wǎng)廣播其擁有的內(nèi)容。這種任務(wù)可以實時完成而無需特別的基礎(chǔ)設(shè)施,因為用戶的設(shè)備連同網(wǎng)絡(luò)中的所有其他對等點(diǎn)(peer)共同形成了基礎(chǔ)設(shè)施。此外,不同于仍然需要專用服務(wù)器的現(xiàn)有的內(nèi)容分發(fā)技術(shù),在P2P流傳輸網(wǎng)絡(luò)中可以不再需要服務(wù)器,因為每個對等點(diǎn)可以向其他對等點(diǎn)發(fā)出數(shù)據(jù)。這些分布式特性使實時P2P流傳輸成為了固有可擴(kuò)展的技術(shù),其允許從包括最終用戶的內(nèi)容提供者分發(fā)空前數(shù)量的內(nèi)容。此外,實時P2P流傳輸具有成為廣播世界中的顛覆性技術(shù)的潛力,因為網(wǎng)絡(luò)中的每個對等點(diǎn)可以成為獨(dú)立的廣播器。這在從目前激增的用戶生成的內(nèi)容角度考慮時尤其如此。內(nèi)容的現(xiàn)場流傳輸和視頻點(diǎn)播(VoD)流傳輸是可以有效利用P2P流傳輸?shù)膬煞N示例應(yīng)用。使用現(xiàn)場流傳輸,用戶通常從P2P網(wǎng)絡(luò)中的對等點(diǎn)接收諸如體育賽事之類的進(jìn)行中事件。用戶由此可以在初始緩沖延遲之后開始觀看直播。此外,現(xiàn)場流傳輸情景中的所有對等點(diǎn)消費(fèi)相同時間幀中的內(nèi)容。使用VoD流傳輸,用戶可以從目錄中請求期望的視頻,并且在與內(nèi)容的初始緩沖相關(guān)聯(lián)的延遲之后,該用戶可以從頭開始觀看所請求的視頻。從設(shè)備制造和使用的觀點(diǎn)來看,現(xiàn)場和VoD P2P流傳輸應(yīng)用具有多種重要的益處。例如,與等待下載完整的文件形成對照,用戶可以僅在與內(nèi)容的緩沖相關(guān)聯(lián)的短暫延遲之后觀看所選擇的節(jié)目。這一特征還減少了設(shè)備存儲器要求,并且允許將存儲器資源向其他應(yīng)用分配,這一特征對于具有相對較小的內(nèi)部存儲器的移動設(shè)備而言尤其有益。用戶體驗和實時P2P流傳輸服務(wù)的性能高度依賴于源對等點(diǎn)處的內(nèi)容可用性。然而,P2P流傳輸環(huán)境中的對等點(diǎn)當(dāng)前并不能有效地評估位于該P(yáng)2P流傳輸網(wǎng)絡(luò)中的其他對等點(diǎn)處的期望的內(nèi)容的可用性。
發(fā)明內(nèi)容
在本發(fā)明的一個方面中,一種方法,包括(a)檢測對等網(wǎng)絡(luò)中部分(partial)數(shù)據(jù)包流中的包丟失;(b)向發(fā)出對應(yīng)于該包丟失的該部分?jǐn)?shù)據(jù)包流的一個或多個發(fā)送對等點(diǎn)發(fā)信令通知對丟失包的指示;(C)在滿足閾值參數(shù)而沒有接收到丟失包之后,向一個或多個候選對等點(diǎn)發(fā)信令通知用于重傳該丟失包的請求,該候選對等點(diǎn)是未發(fā)出該部分?jǐn)?shù)據(jù)包流的對等點(diǎn);以及(d)通過該候選對等點(diǎn)之一接收該丟失包。在一個實施方式中,滿足閾值參數(shù)為閾值時間段的期滿。在一個實施方式中,該方法還包括發(fā)信令通知一個或多個下游對等點(diǎn)已經(jīng)向源對等點(diǎn)發(fā)信令通知了該包丟失的指示。在一個實施方式中,該方法還包括,在接收到重傳的丟失包時,向在檢測到該包丟失之前處于上游的一個或多個對等點(diǎn)發(fā)信令通知接收到該丟失包的指示。在一個實施方式中,通過實時傳輸協(xié)議(RTP)接收該部分?jǐn)?shù)據(jù)包流。(b)中的發(fā)信令通知可以使用RTP控制協(xié)議(RTCP)。(c)中的發(fā)信令通知可以使用實時流傳輸協(xié)議(RTSP)。(c)中的使用實時流傳輸協(xié)議(RTSP)的發(fā)信令通知可以包括建立與候選對等點(diǎn)的RTP會話。在本發(fā)明的另一方面中,一種裝置,包括處理器和通信地連接到該處理器的存儲器單元。該存儲器單元包括(a)用于檢測對等網(wǎng)絡(luò)中部分?jǐn)?shù)據(jù)包流中的包丟失的計算機(jī)代碼;(b)用于向發(fā)出對應(yīng)于該包丟失的該部分?jǐn)?shù)據(jù)包流的一個或多個發(fā)送對等點(diǎn)發(fā)信令通知對丟失包的指示的計算機(jī)代碼;(C)用于在閾值時間段期滿而沒有接收到丟失包之后,向一個或多個候選對等點(diǎn)發(fā)信令通知用于重傳該丟失包的請求的計算機(jī)代碼,該候選對等點(diǎn)是未發(fā)出該部分?jǐn)?shù)據(jù)包流的對等點(diǎn);以及(d)用于通過該候選對等點(diǎn)之一接收該丟失包的計算機(jī)代碼。在本發(fā)明的另一方面中,一種計算機(jī)程序產(chǎn)品,體現(xiàn)在計算機(jī)可讀介質(zhì)上并且包括(a)用于檢測對等網(wǎng)絡(luò)中部分?jǐn)?shù)據(jù)包流中的包丟失的計算機(jī)代碼;(b)用于向發(fā)出對應(yīng)于該包丟失的該部分?jǐn)?shù)據(jù)包流的一個或多個發(fā)送對等點(diǎn)發(fā)信令通知對丟失包的指示的計算機(jī)代碼;(C)用于在閾值時間段期滿而沒有接收到丟失包之后,向一個或多個候選對等點(diǎn)發(fā)信令通知用于重傳該丟失包的請求的計算機(jī)代碼,該候選對等點(diǎn)是未發(fā)出該部分?jǐn)?shù)據(jù)包流的對等點(diǎn);以及(d)用于通過該候選對等點(diǎn)之一接收該丟失包的計算機(jī)代碼。通過連同隨附附圖的以下詳細(xì)描述,本發(fā)明的各種實施方式的這些和其他優(yōu)點(diǎn)與特征連同其操作的組織和方式將變得明顯。
參考隨附的附圖描述本發(fā)明的實施方式,其中圖I是示例性P2P布置的示意圖;圖2是使用RTCP的示例性重傳的示意圖;圖3是使用RTSP的示例性重傳的示意圖;圖4是用于恢復(fù)部分RTP會話的損壞流傳輸路徑的信令的示意圖;圖5是圖示了根據(jù)本發(fā)明的實施方式的重傳過程的流程圖;圖6是可以供本發(fā)明的各種實施方式實現(xiàn)于其中的系統(tǒng)的概觀圖;圖7圖示了可以根據(jù)本發(fā)明的各種實施方式使用的示例性電子設(shè)備的透視圖;以及
圖8是可以包括在圖7的電子設(shè)備中的電路的示意圖。
具體實施例方式在以下描述中,出于說明而非限制的目的闡明了細(xì)節(jié)與描述,以便提供對本發(fā)明的徹底理解。然而,對于本領(lǐng)域技術(shù)人員而言,很明顯地,本發(fā)明可以在脫離這些細(xì)節(jié)和描述的其他實施方式中實踐。在傳統(tǒng)的基于實時協(xié)議(RTP) /RTP控制協(xié)議(RTCP)的流傳輸應(yīng)用中,一個或多個接收器連接到單個發(fā)送器。雖然在多方電話會議的情況中可能存在多個服務(wù)器,但特定RTP會話的接收器僅從單個發(fā)送器獲取數(shù)據(jù)。在此類應(yīng)用中,發(fā)送器和接收器之間的網(wǎng)絡(luò)路徑中的故障可能導(dǎo)致包丟失。某些機(jī)制可用于丟失包的重傳。一個過程包括由接收器發(fā)信令通知該丟失以及由發(fā)送器重傳丟失包。向發(fā)送器發(fā)信令通知包丟失的一個方法是使用通用否定應(yīng)答(NACK)RTCP消息。在此類分布式對等(P2P)流傳輸應(yīng)用中,可以使用例如可伸縮視頻編碼(SVC)或者多描述編碼(MDC)將單個媒體流分解為更小的子流。在一個系統(tǒng)中,單個RTP會話(即,媒體流)被分解為更小的部分RTP會話。這些方法允許由多個發(fā)送器同時發(fā)出單個媒體流(如音頻或視頻分量)。因此,每個正在消費(fèi)媒體流的對等點(diǎn)同時也可以向其他對等點(diǎn)發(fā)出媒體流的子流。由于對等點(diǎn)可以隨意加入或離開服務(wù),因此作為子流向接收器發(fā)送的流可能被暫時中斷,從而在對等系統(tǒng)中引出包丟失的另一原因。因此,在多發(fā)送器對等環(huán)境中,可能導(dǎo)致經(jīng)歷包丟失的原因可以包括I.網(wǎng)絡(luò)故障這是“傳統(tǒng)的”基于RTP/RTCP的媒體流傳輸中的包丟失的原因,其中可能沿著無線網(wǎng)絡(luò)的路徑丟失包。通常,在丟失包的猝發(fā)之后重新開始常規(guī)的包接收。2.對等點(diǎn)擾動(churn):這種原因是對等環(huán)境中獨(dú)有的,其中覆蓋網(wǎng)絡(luò)中的對等點(diǎn)按照動態(tài)方式(即,對等點(diǎn)擾動)到達(dá)和離開。這種原因由于發(fā)送器的突然的、不受控制的和意外的消失(例如,由于對等點(diǎn)故障或者對等點(diǎn)撤銷)而發(fā)生,因而在接收對等點(diǎn)處丟失包。在接收對等點(diǎn)檢測到包丟失時,接收對等點(diǎn)可能不知道哪個以上情況導(dǎo)致了所經(jīng)歷的包丟失。因此,如上所述,傳統(tǒng)的基于RTCP的信令解決方案無法勝任在對等情況中發(fā)信令通知丟失包。當(dāng)發(fā)送器完全離開網(wǎng)絡(luò)時,保持發(fā)送通用NACK RTCP消息以發(fā)信令通知丟失包是無意義的,因為它們永遠(yuǎn)不能被離開的發(fā)送器接收到。由于“有效”發(fā)送器不再可達(dá),因此接收器不知道向哪個發(fā)送器尋址重傳請求。此外,重傳方法應(yīng)當(dāng)是可擴(kuò)展的。參照圖I,其示意性地圖示了示例性P2P布置。如圖I中所示,一旦單個連接102變得暫時不可用(如由X指示),則隔離區(qū)域104中的所有對等點(diǎn)可以開始發(fā)信令通知包丟失或者顯式地開始請求重傳。這可以在沿著回到源對等點(diǎn)108 (例如,原始源)的對等點(diǎn)(例如,對等點(diǎn)106)離開覆蓋網(wǎng)絡(luò)時發(fā)生。在這種情況下,直接從離開對等點(diǎn)106進(jìn)行接收的對等點(diǎn)(例如,對等點(diǎn)110)以及所有其他下游對等點(diǎn)(例如,對等點(diǎn)112)可以開始請求重傳同一數(shù)據(jù)。
貫穿系統(tǒng),對重傳請求的此類傳播和擴(kuò)散是不希望的并且應(yīng)當(dāng)被避免(或至少進(jìn)行控制),以便允許解決方案擴(kuò)展到更大的網(wǎng)絡(luò)規(guī)模。本發(fā)明的實施方式提供了可擴(kuò)展機(jī)制以在基于對等的網(wǎng)絡(luò)(特別是那些基于RTP/RTCP和RTSP協(xié)議的網(wǎng)絡(luò))中請求對丟失包的重傳。在此方面,本發(fā)明的實施方式涉及如何發(fā)信令通知包丟失以及如何維持可擴(kuò)展性??梢允褂酶鞣N機(jī)制來實現(xiàn)實際的重傳?;赗TCP的通用NACK消息用于在傳統(tǒng)的流傳輸應(yīng)用中從接收器向發(fā)送器發(fā)信令通知包丟失。現(xiàn)在參照圖2,其圖示了出于此目的在對等環(huán)境中使用RTCP的各種方法。在圖2中,對等點(diǎn)Y分別從“音頻”對等點(diǎn)、“視頻0”對等點(diǎn)和“視頻I”對等點(diǎn)接收音頻、視頻部分0和視頻部分I。在此示例中,對等點(diǎn)Y檢測到來自“視頻0”對等點(diǎn)的包丟失。使用RTCP,對等點(diǎn)Y可以按照以下方式使用RTCP向其他對等點(diǎn)發(fā)信令通知包丟失(I)常規(guī)RTCP :可以發(fā)送通用NACK RTCP接收器報告(RR)。在這種情況下,RTCPRR用于向預(yù)期從其中獲取丟失包的發(fā)送對等點(diǎn)發(fā)信令通知該丟失。這可以被認(rèn)為是常規(guī)操作。(2)擴(kuò)展RTCP :RTCP可以用于向不是首先發(fā)出缺失包的對等點(diǎn)發(fā)信令通知丟失。然而,接收該RTCP消息的對等點(diǎn)已經(jīng)正在從相同的RTP會話中發(fā)出不同的部分。這將原始RTP/RTCP規(guī)范的范圍擴(kuò)展到超出其常規(guī)使用的范圍。(3)RTSP+RTCP :由于RTCP只能用于存在RTP連接的情況,以及由于預(yù)先沒有建立媒體流,因此RTSP必須用于在對等點(diǎn)之間建立RTP會話。在這種情況下,提供RTP流的唯一目的在于重傳丟失包。然而,出于此目的而使用RTSP報頭字段來發(fā)信令通知丟失包可能更加合適??傮w而言,RTCP僅適合于在發(fā)送對等點(diǎn)仍然可用時(即,至少一個RTP會話仍在進(jìn)行中)請求重傳數(shù)據(jù)。否則,將必須使用RTSP建立新的流。此外,RTCP已經(jīng)存在于大多數(shù)實現(xiàn)中。因此,這種發(fā)信令通知包丟失的方式與當(dāng)前的規(guī)范兼容。由于連同常規(guī)RTCP接收器報告一同發(fā)送通用NACK消息(例如,在復(fù)合RTCP消息中),因此開銷量很小。備選地,RTSP PLAY方法可以用于請求重傳丟失包。根據(jù)本發(fā)明的實施方式,提供了例如針對RTSP I. 0 (新報頭字段)和RTSP 2. 0 (對現(xiàn)有范圍報頭字段的擴(kuò)展)的報頭字段擴(kuò)展以使其成為可能?,F(xiàn)在參照圖3,其圖示了與以上關(guān)于圖2所描述的配置相同的配置。在圖3中,對等點(diǎn)Y已經(jīng)經(jīng)歷了來自“視頻0”對等點(diǎn)(源)的包丟失并且正在請求經(jīng)由RTSP按照以下方式從備選對等點(diǎn)的對丟失包的重傳。(I)RTSP PLAY :這是已經(jīng)預(yù)先使用RTSP建立了適合的媒體流的情況??梢灾苯酉?qū)Φ赛c(diǎn)發(fā)送PLAY消息。(2)RTSP SETUP+RTSP PLAY :這種情況是選擇了沒有正發(fā)出可以用于重傳的適合的媒體流的新對等點(diǎn)。RTSP SETUP首先用于創(chuàng)建對等點(diǎn)之間的連接,并且PLAY隨后用于請求丟失包。為了加速重新連接過程,可以使用所謂的“流水線(pipelining) ”來組合RTSP SETUP消息和PLAY消息。對于“流水線”的附加細(xì)節(jié),可以參考IETE RFC2326bis,“Real Time Streaming Protocol 2. 0 (實時流傳輸協(xié)議 2. 0) ”(RTSP)draft-ietf-mmusic-rfc2326bis以及第三代合作伙伴計劃;技術(shù)規(guī)范組服務(wù)和系統(tǒng)方面;透明對等包交換流傳輸服務(wù)(PSS);協(xié)議和編解碼器(版本8)。關(guān)于之前描述的RTCP方法,基于RTSP的方法在消息開銷和延遲方面導(dǎo)致更大的影響。因此,以上方式當(dāng)前都不合適,因為當(dāng)前的報頭字段句法不允許請求對單獨(dú)包或者有限包集合范圍的回放(或者重傳)。當(dāng)前的報頭字段句法允許基于時間的范圍,但這些不足以唯一地對單個包進(jìn)行尋址。然而,可以使用簡單的擴(kuò)展來克服這種限制。以下描述一種此類擴(kuò)展。根據(jù)本發(fā)明的實施方式,可以實現(xiàn)兩階段過程以便允許在存在網(wǎng)絡(luò)故障和/或未預(yù)期的對等點(diǎn)擾動的情況下對丟失包進(jìn)行可擴(kuò)展的和有效的重傳。本發(fā)明的實施方式旨在使用現(xiàn)有的機(jī)制并且向當(dāng)前規(guī)范添加擴(kuò)展,以處理例如當(dāng)對等點(diǎn)已經(jīng)離開網(wǎng)絡(luò)并且因而無
法重傳丟失包時的情況。在多個對等點(diǎn)由于單一原因(例如,故障或離開的對等點(diǎn))而同時請求丟失包的情況中,可擴(kuò)展性優(yōu)選地用于放置重傳請求的行波傳送(ripple-through)效應(yīng)(或者雪崩)。根據(jù)本發(fā)明的實施方式,重傳過程可以包括兩個階段。在第一階段中,可以按照常規(guī)和擴(kuò)展的方式使用RTCP以向發(fā)送對等點(diǎn)發(fā)信令通知包丟失。發(fā)送器繼而可以向相應(yīng)的對等點(diǎn)重傳發(fā)信令通知的丟失包。在第二階段中,在超過某個超時值0;)的情況下,RTSP可以用于建立新連接以及使用RTSP PLAY方法的擴(kuò)展版本來獲取丟失包。在各種實施方式中,雖然可以預(yù)定超時值0;),但其也可以取決于各種參數(shù)而變化。此外,對“未決重傳請求”和“已解決包丟失”的特殊信令可以用于促進(jìn)可擴(kuò)展性。在下文中描述根據(jù)本發(fā)明的實施方式的兩階段過程的示例實現(xiàn)。階段I :基于RTCP的重傳響應(yīng)于檢測到包丟失,接收對等點(diǎn)可以使用RTCP接收器報告(RR)消息向發(fā)送器發(fā)信令通知包丟失。在此方面,接收對等點(diǎn)并不顯式請求重傳;其僅向發(fā)送對等點(diǎn)發(fā)信令通知丟失了哪些包。發(fā)送對等點(diǎn)繼而可以決定如何響應(yīng)這一信息。可以使用針對RTCP反饋(RTP/AVPF)簡檔的RTP擴(kuò)展音頻視頻簡檔的通用NACK消息實現(xiàn)由接收對等點(diǎn)進(jìn)行的發(fā)信令通知。對于RTP/AVPF的附加細(xì)節(jié),可以參考RFC 4585。如圖2中所示,可以按照多種方式實現(xiàn)從接收對等點(diǎn)進(jìn)行的發(fā)信令通知。可以向期待缺失包的對等點(diǎn)回發(fā)信令通知包丟失。在圖2中,這種選項被稱為“常規(guī)”。這種選項類似于用于發(fā)信令通知包丟失的通用NACK消息的常規(guī)操作。在一個實施方式中,可以取代“常規(guī)”選項或者除“常規(guī)”選項之外向發(fā)出來自同一 RTP會話的不同部分流(例如,同一音頻或視頻媒體的子流)的其他對等點(diǎn)發(fā)送類似的RTCP接收器報告。在圖2中,這被稱為“擴(kuò)展”選項。階段2 :基于RTSP的重傳如果在某個重新連接閾值I;內(nèi)沒有接收到已經(jīng)由接收對等點(diǎn)發(fā)信令通知為丟失的包,則接收對等點(diǎn)可以使用智能對等點(diǎn)選擇算法選擇備選源對等點(diǎn)。在一個實施方式中,如以下更詳細(xì)討論的那樣,超時值I;可以例如基于網(wǎng)絡(luò)和緩沖延遲。被發(fā)送重傳請求的候選備選源對等點(diǎn)可以是已經(jīng)正向接收對等點(diǎn)發(fā)出同一服務(wù)的其他媒體流的對等點(diǎn)。例如,參照圖3,候選備選源對等點(diǎn)可以是“音頻”對等點(diǎn),從其可以接收服務(wù)的音頻流。在其他實施方式中,候選備選源對等點(diǎn)可以是完全不同的對等點(diǎn),諸如圖3的對等點(diǎn)X。在階段2中,候選對等點(diǎn)是已經(jīng)正發(fā)出來自同一 RTP會話的其他部分的對等點(diǎn)之外的其他對等點(diǎn);此類對等點(diǎn)應(yīng)當(dāng)被認(rèn)為位于上述階段I中。使用SETUP和RTSPPLAY方法通過建立新的RTP連接來顯式地請求來自備選源對等點(diǎn)的重傳。根據(jù)本發(fā)明的某些實施方式,如下所述,可以將PLAY方法的報頭字段擴(kuò)展為允許對單獨(dú)的丟失包和丟失包范圍的請求。如果使用RTSP,則備選連接可以被永久建立(例如,開放式的,在穿過備選連接之后重新開始常規(guī)的回放操作)或者僅用于獲取丟失包。如果永久建立,則丟棄舊的現(xiàn)有連接并且回放使用新的源對等點(diǎn)重新開始。重新開始回放可以在已經(jīng)接收到單獨(dú)的丟失包之后發(fā)生。如果備選連接僅用于獲取丟失包,則可以在已經(jīng)接收到丟失包之后使用TEARD0WN(拆除)方法拆除連接。在本發(fā)明的某些實施方式中,可以通過出于在其他對等點(diǎn)故障的情況下請求重傳
丟失包的目的保持打開備份RTSP連接來改善重傳的速度。因此,在此方面,除了重傳丟失包之外,穿過備份RTSP連接沒有發(fā)生實際的流傳輸。這允許更快的錯誤恢復(fù),因為從重傳過程除去了 SETUP時間以及由此的一個往返時間。注意,類似的性能改善也可以通過如在RTSP 2. 0和3GPP PSS中描述的對RTSPSETUP和PLAY方法進(jìn)行流水線處理來實現(xiàn)。現(xiàn)在參照圖4,本發(fā)明的實施方式提供了一種發(fā)信令通知機(jī)制,其避免了處于損壞路徑中故障點(diǎn)下游的多個對等點(diǎn)發(fā)信令通知丟失包。在對等流傳輸環(huán)境中,該路徑被認(rèn)為是在圖4的圖表中,從圖表的根處的原始源對等點(diǎn)(對等點(diǎn)A)到圖表的葉子處的最后對等點(diǎn)(例如,對等點(diǎn)E)的線的序列。根據(jù)本發(fā)明的實施方式,信令可以包括對針對在圖4的圖表中的下游重傳(在數(shù)據(jù)流從原始源到葉子的方向上)的未決請求的指示。因此,在缺少包時(例如,在丟失包的情況下),可以發(fā)送信息以向接收對等點(diǎn)指示發(fā)送器知道丟失。此外,本發(fā)明的實施方式可以在上游方向上(在數(shù)據(jù)流的相反方向上,從圖表的葉子到原始源)提供對恢復(fù)的包的信令。這種上游信令可以用于有效地重新連接到其他對等點(diǎn)并且發(fā)信令通知已經(jīng)解決了損壞路徑問題。在圖4中圖示了上述上游和下游信令的示例。圖4圖示了網(wǎng)絡(luò)中表示特定部分RTP會話(由圖4中的實線圖示)的遞送流的圖表。在圖4的圖示中,對等點(diǎn)B發(fā)生故障并且使得下游對等點(diǎn)C、D、E和H經(jīng)歷包丟失。相同的包丟失也可以由對等點(diǎn)B和對等點(diǎn)C之間的故障網(wǎng)絡(luò)鏈路引起。隨著包丟失,對等點(diǎn)C、D、E和H可以開始請求重傳,并且因此用同一丟失包的冗余重傳充滿了(flood)網(wǎng)絡(luò)。因此,可能會危及系統(tǒng)的效率和可擴(kuò)展性。根據(jù)本發(fā)明的實施方式,對等點(diǎn)可以向下游發(fā)信令通知未決重傳請求并且可以向上游發(fā)信令通知恢復(fù)丟失包。在圖4的示例中,一旦其傳送重傳請求,則對等點(diǎn)C可以沿著由對等點(diǎn)D、E和H限定的路徑向下游傳遞未決重傳請求,從而消除來自下游對等點(diǎn)D、E和H的可能的獨(dú)立重傳請求。在一個實施方式中,如下文更詳細(xì)描述的那樣,這通過使用RTCP接收器報告的擴(kuò)展實現(xiàn)。當(dāng)接收對等點(diǎn)經(jīng)歷包丟失時,接收對等點(diǎn)可以在其推斷出包丟失并且發(fā)送用于重傳的請求之前,等待一段時間,該段時間可以是預(yù)定的、隨機(jī)的或者基于其他因素。這種下游信令減少了特定對等點(diǎn)檢測包丟失所花費(fèi)的時間,因為在缺少包的情況下,信令可用于指示包的丟失。因此,下游對等點(diǎn)在推斷出在上游某處已經(jīng)丟失了包之前可以不需要等待一段時間。這也可以幫助減少恢復(fù)時間,因為可能在更早的階段采取錯誤恢復(fù)措施。當(dāng)對等點(diǎn)發(fā)現(xiàn)未決上游重傳請求時,其可以(I)等待,直到從發(fā)送對等點(diǎn)接收到丟失包;或者(2)選擇采取其自己的錯誤恢復(fù)措施。在情況(I)中,一旦上游對等點(diǎn)已經(jīng)找到備選源或者原始發(fā)送對等點(diǎn)已經(jīng)從問題狀況中恢復(fù),則下游對等點(diǎn)可以接收丟失包。在情況(2)中,下游對等點(diǎn)可以利用從所發(fā)送的未決重傳請求獲取的知識先行嘗試找到其他對等點(diǎn)源。一旦沿著圖表的路徑的任何對等點(diǎn)已經(jīng)通過重新連接到可信賴對等點(diǎn)而成功恢復(fù)丟失包,則其可以向上游和下游兩者發(fā)信令通知該恢復(fù)。這改善了對等系統(tǒng)的自恢復(fù)能力。因此,根據(jù)本發(fā)明的實施方式,對等網(wǎng)絡(luò)的覆蓋可以通過在圖表中建立新的路徑、由協(xié)調(diào)努力的分布對等點(diǎn)來共同地重新組織。再次參照圖4,這由對等點(diǎn)D在發(fā)送對等點(diǎn)C解決問題之前發(fā)現(xiàn)備選源對等點(diǎn)F示出。在從對等點(diǎn)D接收到對新源對等點(diǎn)的信令時,對等點(diǎn)C可以推選交換角色并且使用對等點(diǎn)D作為用于這個特定部分RTP會話的新的源對等點(diǎn)。因此,所涉及的對等點(diǎn)共同構(gòu)造出新的流傳輸圖表(由圖4中的虛線指示)。根據(jù)本發(fā)明的其他實施方式,代替對未決重傳請求和恢復(fù)的包的顯式信令,發(fā)送對等點(diǎn)也可以選擇選擇性地忽略來自接收對等點(diǎn)的發(fā)信令通知的包丟失。這也可以防止貫穿對等系統(tǒng)的對丟失包的大規(guī)模(冗余)重傳。然而,由于在發(fā)送對等點(diǎn)和接收對等點(diǎn)之間沒有發(fā)生顯式信令,因此相比于上面描述的信令,這被預(yù)計為是效率和可擴(kuò)展性更低的備選。在圖5的流程圖中詳細(xì)描繪了包括對未決重傳和恢復(fù)的包的信令的兩階段過程的操作。在塊502處,對等點(diǎn)按照常規(guī)方式接收RTP包。在塊504處,接收對等點(diǎn)可以確定包已經(jīng)丟失。在此方面,如下所述,如果在一段預(yù)定時間中在特定部分流中沒有接收到包,則可以檢測到包丟失。如果沒有檢測到包丟失,則過程返回塊502并且繼續(xù)接收RTP包。如果在塊504處檢測到包丟失,則過程進(jìn)行到塊506并且進(jìn)入兩階段恢復(fù)過程的第一階段。在塊506處,可以確定接收對等點(diǎn)是否處于活動模式。如上所述,在此方面,對等點(diǎn)可以等到流路徑問題被解決,或者備選地,先行尋求解決該問題。如果對等點(diǎn)沒有處于先行模式(pro-active mode),則過程進(jìn)行到塊508并且等待一段時間以允許路徑問題得到解決。在經(jīng)過該段時間之后,過程進(jìn)行到塊510并且確定是否做出了對用于重傳的上游請求的指示。如果已經(jīng)接收到這個指示,則過程進(jìn)行到塊512并且等待一段時間以允許上游對等點(diǎn)獲取丟失包并且繼而進(jìn)行到塊514。在塊514處,如果確定已經(jīng)接收到丟失包,則過程返回塊502并且繼續(xù)或重新開始接收流。如果在塊514處確定尚未接收到丟失包,則過程返回塊512并且再次等待該段時間。另一方面,如果在510處,確定尚未做出用于重傳的上游請求,則過程進(jìn)行到塊516。類似地,如果在塊506處,確定對等點(diǎn)處于先行模式,則過程進(jìn)行到塊516。在塊516處,如上所述,對等點(diǎn)使用RTCP發(fā)信令通知下游對等點(diǎn)對丟失包的指示。類似地,在518處,該對等點(diǎn)向上游對等點(diǎn)發(fā)信令通知一個指示,即已經(jīng)發(fā)送了丟失包的指示并且因此發(fā)送了針對重傳的請求。因此,對等網(wǎng)絡(luò)未被用于重傳的請求充滿。對等點(diǎn)繼而等待一段時間(塊520)并且確定是否已經(jīng)接收到丟失包(塊522)。如果已經(jīng)接收到包,則過程返回塊502并且繼續(xù)或重新開始接收RTP包。另一方面,如果在塊522處確定尚未接收到丟失包,則確定閾值時間段是否已經(jīng)期滿(塊524)。如果該閾值時間段尚未期滿,則過程重復(fù)塊520和塊522。如果該閾值時間段已經(jīng)期滿,則過程進(jìn)入兩階段過程的第二階段。在第二階段中,如上所述,對等點(diǎn)使用RTSP發(fā)送用于重傳的請求(塊526)。在塊528處,確定是否已經(jīng)接受了 RTSP連接。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,盡管參考圖5描述的實施方式使用RTSP用于信令,但也可以使用其他信令機(jī)制,并且它們也被預(yù)期為在本發(fā)明的范圍內(nèi)。如果沒有接受該連接,則過程返回塊526,直到該連接被接受。一旦該連接被接受,則對等點(diǎn)等待(塊530)并且確定是否已經(jīng)接收了丟失包(塊532)。一旦丟失包被接收,則
該對等點(diǎn)向上游對等點(diǎn)和下游對等點(diǎn)發(fā)信令通知對恢復(fù)的指示(塊534)。過程繼而返回塊502并且繼續(xù)或重新開始接收RTP包。在某些實施方式中,提供附加的可擴(kuò)展性機(jī)制以避免上游重傳請求的超載。在此方面,用于發(fā)送對等點(diǎn)在數(shù)據(jù)流傳輸路徑中的位置成比例的延遲對重傳請求(或上游包丟失信令)的傳遞進(jìn)行延遲,并且該傳遞具有附加的隨機(jī)分量。在一個實施方式中,用于發(fā)送請求的延遲可以如下限定
ip =當(dāng)前對等物位置
最大路徑深度眶其中a是從0和I之間選擇的隨機(jī)數(shù)。a的隨機(jī)性質(zhì)用以使在路徑的相同等級中的對等點(diǎn)之間的延遲需求多樣化。在上面的方程式中,“當(dāng)前對等點(diǎn)位置”是對等點(diǎn)在路徑中從原始源對等點(diǎn)起的位置。例如,在圖4的實線路徑中,針對對等點(diǎn)C的當(dāng)前對等點(diǎn)位置為2 (A到B到C);而最大路徑深度為4 (A到B到C到D到E)。此外,Dmax是用于恢復(fù)包的最大可允許延遲。這種補(bǔ)償機(jī)制可以是圖5中的延遲構(gòu)建塊(塊508)的一部分。如上所述,根據(jù)本發(fā)明的實施方式,利用兩階段過程解決與由于意外損壞流傳輸路徑導(dǎo)致的丟失包有關(guān)的問題。在一個實施方式中,從第一階段向第二階段的轉(zhuǎn)變基于重新連接閾值I;的期滿。在一個實施方式中,可以如在以下段落中描述的那樣計算這一閾值的下邊界。在丟失包不位于部分流的末端的情況中,在同一部分流的包分組之間無需等待。屬于同一部分流的兩個包分組之間的時間由以下限定部分尺寸(以毫秒為單位)* (部分的數(shù)目-I)。然而,如果包是包分組中的最后包,則應(yīng)當(dāng)向上述值添加常規(guī)網(wǎng)絡(luò)延遲值??梢酝ㄟ^例如RTSP請求響應(yīng)配對或者由另一對等點(diǎn)發(fā)送的信息計算網(wǎng)絡(luò)延遲值。此外,應(yīng)當(dāng)添加附加時間值,以避免用重傳請求超載網(wǎng)絡(luò)。最小閾值的值=[部分尺寸(以毫秒為單位)*(部分的數(shù)目-I)+計算出的網(wǎng)絡(luò)延遲(通過RTSP消息)]+[給予對等點(diǎn)以修補(bǔ)它們的缺失數(shù)據(jù)部分的時間]這個最小閾值的值可以用于確定重傳的第一階段何時開始(例如,使用RTCP來發(fā)信令通知包丟失)。這個最小閾值充當(dāng)用于用作從第一階段(例如,RTCP)向第二階段(例如,RTSP)轉(zhuǎn)變的值的下邊界。因此,該最小值充當(dāng)用于從常規(guī)向第一階段轉(zhuǎn)變的基礎(chǔ)以及用于向第二階段轉(zhuǎn)變的最小值。在此方面,使用一個第二值用于確定在最小閾值之后向第二階段的實際轉(zhuǎn)變。這個代表用于從第一階段向第二階段轉(zhuǎn)變的閾值的第二值確保用于允許基于RTCP的重傳(例如,第一階段)生效的附加等待時間。在使用部分RTP會話的情況中使用這些值。在按照不同方式(例如,使用SVC或MDC)劃分流傳輸數(shù)據(jù)的情況中,可以應(yīng)用類似的考慮。根據(jù)本發(fā)明的實施方式,可以通過包括缺失包的序列號“包范圍(Packet-Range) ”報頭字段擴(kuò)展RTSP PLAY消息。根據(jù)一個實施方式,以下按照ABNF格式示出了“包范圍”報頭字段值的格式。包范圍=“包范圍” “ ” I*范圍分類符范圍分類符=I氺DIGIT[“-,,[1*DIGIT]] “ ; ”以下示出在成功的重傳請求中發(fā)送的示例消息??梢詫TSP方法擴(kuò)展為包括在‘需求(Require) ’報頭字段中的附加‘RTP2P_vl’特征標(biāo)記。這個特征標(biāo)記使得接收對等點(diǎn)能夠檢測需要用于實時P2P擴(kuò)展的支持。附加地,RTSP消息可以包括‘對等點(diǎn)Id(Peer-Id) ’報頭字段以指示消息源。PLAY rtsp://192.168.0.2:8555/87/0 RTSP/1. 0CSeq :327750Require :RTP2P_vlPacket-Range 13300-13313 ; 13589 ;Peer-Id :431RTSP/1. 0 2000KCSeq :327750Peer-Id :430根據(jù)本發(fā)明的實施方式,用于發(fā)信號通知未決重傳請求和恢復(fù)的包丟失的消息格式可以具有多種格式。以下描述了兩種示例實施方式。該兩種實施方式中的每個實施方式包括公共包格式部分,并且每個實施方式包括不同的報告塊格式。通用部分格式可以如下
權(quán)利要求
1.一種方法,包括 (a)檢測對等網(wǎng)絡(luò)中部分?jǐn)?shù)據(jù)包流中的包丟失; (b)向發(fā)出對應(yīng)于所述包丟失的所述部分?jǐn)?shù)據(jù)包流的一個或多個發(fā)送對等點(diǎn)發(fā)信令通知對丟失包的指示; (C)在滿足閾值參數(shù)而沒有接收到丟失包之后,向一個或多個候選對等點(diǎn)發(fā)信令通知用于重傳所述丟失包的請求,所述候選對等點(diǎn)是未發(fā)出所述部分?jǐn)?shù)據(jù)包流的對等點(diǎn);以及(d)通過所述候選對等點(diǎn)之一接收所述丟失包。
2.根據(jù)權(quán)利要求I所述的方法,其中所述滿足閾值參數(shù)是閾值時間段的期滿。
3.根據(jù)權(quán)利要求I所述的方法,還包括 向一個或多個下游對等點(diǎn)發(fā)信令通知已經(jīng)向源對等點(diǎn)發(fā)信令通知了所述包丟失的指示 o
4.根據(jù)權(quán)利要求I所述的方法,還包括 當(dāng)接收到重傳的丟失包時,向在檢測到所述包丟失之前處于上游的一個或多個對等點(diǎn)發(fā)信令通知接收所述丟失包的指示。
5.根據(jù)權(quán)利要求I所述的方法,其中通過實時傳輸協(xié)議(RTP)接收所述部分?jǐn)?shù)據(jù)包流。
6.根據(jù)權(quán)利要求5所述的方法,其中(b)中的所述發(fā)信令通知使用RTP控制協(xié)議(RTCP)。
7.根據(jù)權(quán)利要求5所述的方法,其中(c)中的所述發(fā)信令通知使用實時流傳輸協(xié)議(RTSP)。
8.根據(jù)權(quán)利要求7所述的方法,其中(c)中的使用實時流傳輸協(xié)議(RTSP)的所述發(fā)信令通知包括建立與候選對等點(diǎn)的RTP會話。
9.一種裝置,包括 處理器;以及 存儲器單元,其通信地連接到所述處理器并且包括 (a)用于檢測對等網(wǎng)絡(luò)中部分?jǐn)?shù)據(jù)包流中的包丟失的計算機(jī)代碼; (b)用于向發(fā)出對應(yīng)于所述包丟失的所述部分?jǐn)?shù)據(jù)包流的一個或多個發(fā)送對等點(diǎn)發(fā)信令通知對丟失包的指示的計算機(jī)代碼; (C)用于在滿足閾值參數(shù)而沒有接收到丟失包之后,向一個或多個候選對等點(diǎn)發(fā)信令通知用于重傳所述丟失包的請求的計算機(jī)代碼,所述候選對等點(diǎn)是未發(fā)出所述部分?jǐn)?shù)據(jù)包流的對等點(diǎn);以及 (d)用于通過所述候選對等點(diǎn)之一接收所述丟失包的計算機(jī)代碼。
10.根據(jù)權(quán)利要求9所述的裝置,其中所述滿足閾值參數(shù)是閾值時間段的期滿。
11.根據(jù)權(quán)利要求9所述的裝置,其中所述存儲器單元還包括 用于向一個或多個下游對等點(diǎn)發(fā)信令通知已經(jīng)向源對等點(diǎn)發(fā)信令通知了所述包丟失的指示的計算機(jī)代碼。
12.根據(jù)權(quán)利要求9所述的裝置,其中所述存儲器單元還包括 用于當(dāng)接收到重傳的丟失包時,向在檢測到所述包丟失之前處于上游的一個或多個對等點(diǎn)發(fā)信令通知接收所述丟失包的指示的計算機(jī)代碼。
13.根據(jù)權(quán)利要求9所述的裝置,其中通過實時傳輸協(xié)議(RTP)接收所述部分?jǐn)?shù)據(jù)包流。
14.根據(jù)權(quán)利要求13所述的裝置,(b)中的所述發(fā)信令通知使用RTP控制協(xié)議(RTCP)。
15.根據(jù)權(quán)利要求13所述的裝置,(c)中的所述發(fā)信令通知使用實時流傳輸協(xié)議(RTSP)。
16.根據(jù)權(quán)利要求15所述的裝置,其中(c)中的使用實時流傳輸協(xié)議(RTSP)的所述發(fā)信令通知包括建立與候選對等點(diǎn)的RTP會話。
17.一種計算機(jī)程序產(chǎn)品,體現(xiàn)在計算機(jī)可讀介質(zhì)上,包括 (a)用于檢測對等網(wǎng)絡(luò)中部分?jǐn)?shù)據(jù)包流中的包丟失的計算機(jī)代碼; (b)用于向發(fā)出對應(yīng)于所述包丟失的所述部分?jǐn)?shù)據(jù)包流的一個或多個發(fā)送對等點(diǎn)發(fā)信令通知對丟失包的指示的計算機(jī)代碼; (C)用于在滿足閾值參數(shù)而沒有接收到丟失包之后,向一個或多個候選對等點(diǎn)發(fā)信令通知用于重傳所述丟失包的請求的計算機(jī)代碼,所述候選對等點(diǎn)是未發(fā)出所述部分?jǐn)?shù)據(jù)包流的對等點(diǎn);以及 (d)用于通過所述候選對等點(diǎn)之一接收所述丟失包的計算機(jī)代碼。
18.根據(jù)權(quán)利要求17所述的計算機(jī)程序產(chǎn)品,其中所述滿足閾值參數(shù)是閾值時間段的期滿。
19.根據(jù)權(quán)利要求17所述的計算機(jī)程序產(chǎn)品,還包括 用于向一個或多個下游對等點(diǎn)發(fā)信令通知已經(jīng)向源對等點(diǎn)發(fā)信令通知了所述包丟失的指示的計算機(jī)代碼。
20.根據(jù)權(quán)利要求17所述的計算機(jī)程序產(chǎn)品,還包括 用于當(dāng)接收到重傳的丟失包時,向在檢測所述包丟失之前處于上游的一個或多個對等點(diǎn)發(fā)信令通知接收所述丟失包的指示的計算機(jī)代碼。
全文摘要
一種方法,包括(a)檢測對等網(wǎng)絡(luò)中部分?jǐn)?shù)據(jù)包流中的包丟失;(b)向發(fā)出對應(yīng)于該包丟失的該部分?jǐn)?shù)據(jù)包流的一個或多個發(fā)送對等點(diǎn)發(fā)信令通知對丟失包的指示;(c)在閾值時間段期滿而沒有接收到丟失包之后,向一個或多個候選對等點(diǎn)發(fā)信令通知用于重傳該丟失包的請求,該候選對等點(diǎn)是未發(fā)出該部分?jǐn)?shù)據(jù)包流的對等點(diǎn);以及(d)通過該候選對等點(diǎn)之一接收該丟失包。
文檔編號H04L1/18GK102804727SQ201080027147
公開日2012年11月28日 申請日期2010年5月19日 優(yōu)先權(quán)日2009年6月24日
發(fā)明者J·P·范加賽爾, I·鮑阿齊齊, I·D·D·科希奧, J·佩爾托塔洛, M·A·J·索科, L·I·瓦塔莫伊南 申請人:諾基亞公司