亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種封包低延遲傳輸方法

文檔序號:10515391閱讀:393來源:國知局
一種封包低延遲傳輸方法
【專利摘要】本發(fā)明公開了一種封包低延遲傳輸方法,程序以低延遲方式自一傳送端傳送數(shù)據(jù)至一接收端程序。
【專利說明】
-種封包低延遲傳輸方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明關(guān)于一種即時(shí)媒體的傳輸協(xié)議,特別是一種互動(dòng)式即時(shí)媒體的傳輸協(xié)議。
【背景技術(shù)】
[0002] 網(wǎng)絡(luò)應(yīng)用程序憑借傳輸層協(xié)議W經(jīng)由網(wǎng)絡(luò)傳送數(shù)據(jù)。不同的應(yīng)用程序?qū)λ鰝鬏?層具有不同的請求,而延遲對于網(wǎng)絡(luò)通訊是為一挑戰(zhàn)。
[0003] 端點(diǎn)對端點(diǎn)延遲由數(shù)個(gè)因素所構(gòu)成。部分延遲為傳送端內(nèi)的多個(gè)元件產(chǎn)生,例如 發(fā)送緩沖區(qū)和塞塞控制元件。其他延遲則來自于接收端內(nèi)的元件,例如是一接收緩沖區(qū)。還 有其他延遲來自于網(wǎng)絡(luò)路徑,例如網(wǎng)絡(luò)路徑上的緩沖區(qū)和物理傳播延遲。更特別的是,點(diǎn)對 點(diǎn)延遲可包括:1)于一發(fā)送緩沖器的排隊(duì)延遲中,讓數(shù)據(jù)停留在一發(fā)送緩沖器直到發(fā)送開 始。此延遲產(chǎn)生于當(dāng)發(fā)送數(shù)據(jù)的速率低于該數(shù)據(jù)速率時(shí)。一大量發(fā)送緩沖器具大量的排隊(duì) 延遲。2)延遲數(shù)據(jù)被發(fā)送的所需時(shí)間。此延遲會(huì)被該傳送端其多個(gè)塞塞控制元件的運(yùn)行所 影響,W在某些情況下降低該發(fā)送速率來緩解塞塞。3)傳播延遲,經(jīng)由該網(wǎng)絡(luò)路徑于無塞塞 情況下傳送一封包的時(shí)間延遲(包括因光在傳輸介質(zhì)中速度有限的延遲)。4)于網(wǎng)絡(luò)緩沖器 的排隊(duì)延遲。此延遲發(fā)生在當(dāng)產(chǎn)生的流量超過網(wǎng)絡(luò)容量。5)重傳延遲,封包遺失回復(fù)的時(shí)間 延遲。6)前端化ead-of-line,冊L)阻塞延遲,具依序傳遞的請求,而新數(shù)據(jù)會(huì)被舊數(shù)據(jù)阻塞 的時(shí)間延遲。
[0004] 該些延遲組件由傳輸協(xié)議中的兩個(gè)模塊來決定。第一個(gè)是塞塞控制,調(diào)節(jié)數(shù)據(jù)發(fā) 送至該網(wǎng)絡(luò)的速率。塞塞控制影響該發(fā)送緩沖器中的排隊(duì)延遲、發(fā)送延遲W及于該網(wǎng)絡(luò)中 的排隊(duì)延遲。第二個(gè)是錯(cuò)誤控制,用W提供可靠性。錯(cuò)誤控制影響該重傳延遲W及前端阻塞 延遲。
[0005] 用戶數(shù)據(jù)通訊協(xié)議(UDP)與傳輸控制協(xié)議(Transmission Conhol Protocol, TCP)廣泛使用于因特網(wǎng)的標(biāo)準(zhǔn)化傳輸協(xié)議。UDP并不提供塞塞控制,其數(shù)據(jù)是即時(shí)發(fā)送。TCP 是使用最廣泛的傳輸協(xié)議,提供塞塞控制W回應(yīng)可用頻寬的改變。TCP亦提供可靠性(封包 遺失的回復(fù))。

【發(fā)明內(nèi)容】

[0006] 用戶數(shù)據(jù)通訊協(xié)議與傳輸控制協(xié)議均具有互動(dòng)式即時(shí)媒體傳輸?shù)南拗?。若UDP未 降低該發(fā)送速率來回應(yīng)塞塞,即會(huì)有較高的封包遺失,且在網(wǎng)絡(luò)緩沖器中會(huì)有高排隊(duì)延遲。 高封包遺失將會(huì)降低影像的品質(zhì)。然而,TCP并不適合互動(dòng)式即時(shí)媒體。即使僅發(fā)生一次性 塞塞,TCP會(huì)積極地降低其發(fā)送速率來回應(yīng),其會(huì)增加該發(fā)送延遲且造成影像顫抖。TCP使用 一基于遺失的塞塞控制程序W于一路徑上排滿直到產(chǎn)生遺失為止,造成最大延遲。即使部 分?jǐn)?shù)據(jù)重要性不高或是無法及時(shí)使用,TCP的可靠性仍會(huì)強(qiáng)迫不同重要性的數(shù)據(jù)都被接收。 TCP使用一固定大小的發(fā)送緩沖器,使應(yīng)用程序在無法在可用頻寬下降時(shí)快速做出反應(yīng)。雖 然可W使用較小的發(fā)送緩沖器限制該延遲,但會(huì)影響到傳輸量。
[0007] 互動(dòng)式即時(shí)媒體應(yīng)用程序需要低延遲W及一平滑發(fā)送速率。此些應(yīng)用程序需要一 中間層級的可靠性,w被稱為"部分可靠性"。所需要的是,一支持即時(shí)互動(dòng)媒體的請求,包 括于該網(wǎng)絡(luò)中的較低延遲、于該發(fā)送緩沖器中的較低延遲、一平滑發(fā)送速率W及部分可靠 性。
[0008] 本發(fā)明的實(shí)施例提供一應(yīng)用層傳輸協(xié)議來支持即時(shí)互動(dòng)媒體的請求。在一較佳實(shí) 施例,提供塞塞控制、發(fā)送緩沖器的動(dòng)態(tài)管理、訊息丟棄與錯(cuò)誤控制的技術(shù)。
[0009] 較佳的塞塞控制技術(shù)基于延遲的技術(shù),與TCP的基于遺失的塞塞控制相反?;谘?遲的技術(shù)是提供一平滑發(fā)送速率并降低網(wǎng)絡(luò)緩沖器的排隊(duì)延遲。
[0010] 于該發(fā)送緩沖器的排隊(duì)延遲是藉由計(jì)算于一新訊息被請求發(fā)送的該當(dāng)前發(fā)送緩 沖器排隊(duì)延遲來控制,W及藉由比較該口檻值與該當(dāng)前排隊(duì)延遲來控制。若該延遲超過該 口檻值,該新的訊息即不會(huì)置入該發(fā)送緩沖器。
[0011] 訊息丟棄程序用W確使過舊的訊息會(huì)被丟棄,不會(huì)造成排隊(duì)延遲的增加。當(dāng)影格 被丟棄時(shí),會(huì)藉由發(fā)送一頻帶外(out of band)請求至一影像編碼器W發(fā)送一新的影像關(guān) 鍵影格,來降低畫面失真的發(fā)生。
[0012] 較佳的錯(cuò)誤控制技術(shù)僅于該接收端應(yīng)用基于間隙的遺失檢測,均與TCP與UDP在該 接收端實(shí)行基于間隙的遺失檢測W及在該傳送端實(shí)行基于計(jì)時(shí)器的檢測相反。此方法與即 時(shí)媒體應(yīng)用程序的規(guī)則數(shù)據(jù)產(chǎn)生W及高封包速率的特點(diǎn)相匹配,在基于間隙的檢測條件下 通常實(shí)行的特別好。其可避免基于計(jì)時(shí)器的方法的問題,該問題是因不準(zhǔn)確的往返時(shí)間 (RTT,Round Trip Time)估計(jì)所引起的。
【附圖說明】
[0013] 圖1是依據(jù)本發(fā)明一實(shí)施例的一分散式客戶端-服務(wù)器電腦系統(tǒng)支持互動(dòng)式即時(shí) 媒體應(yīng)用程序的方塊圖。
[0014] 圖2是依據(jù)本發(fā)明一實(shí)施例的一應(yīng)用層傳輸協(xié)議與其他協(xié)議層間的協(xié)議層圖。
[0015] 圖3是依據(jù)本發(fā)明一實(shí)施例的應(yīng)用于一應(yīng)用層傳輸協(xié)議的傳送端與接收端的高層 方塊圖。
[0016] 圖4繪示依據(jù)本發(fā)明一實(shí)施例的用W塞塞控制與錯(cuò)誤控制的封包結(jié)構(gòu)圖。
[0017] 圖5是依據(jù)本發(fā)明一實(shí)施例的一塞塞控制程序的流程圖。
[0018] 圖6是依據(jù)本發(fā)明一實(shí)施例的在一動(dòng)態(tài)發(fā)送緩沖器的排隊(duì)延遲的控制流程圖。
[0019] 圖7是依據(jù)本發(fā)明一實(shí)施例的于一接收端的訊息丟棄的運(yùn)作流程圖。
[0020] 圖8是依據(jù)本發(fā)明的一實(shí)施例的應(yīng)用于一關(guān)鍵影格請求程序的傳送端與接收端的 一高層方塊圖。
[0021] 圖9是依據(jù)本發(fā)明一實(shí)施例的對丟棄的影像影格的一關(guān)鍵影格請求的時(shí)序圖。
[0022] 圖10是依據(jù)本發(fā)明一實(shí)施例的一訊息丟棄機(jī)制的時(shí)序圖。
[0023] 圖11是依據(jù)本發(fā)明一實(shí)施例的于該接收端遺失回復(fù)的流程圖。
[0024] 圖12是依據(jù)本發(fā)明一實(shí)施例的對一遺失回復(fù)協(xié)議的一時(shí)序圖。
[00劇其中,附圖標(biāo)記:
[00%] 1000:電腦系統(tǒng)
[0027] 101:服務(wù)器電腦
[002引 102:網(wǎng)絡(luò)
[0029] 103:用戶裝置
[0030] 110、120:中央處理單元
[0031] 111、121:儲(chǔ)存裝置
[0032] 112、122:記憶體
[0033] 131:電腦程序產(chǎn)品
[0034] 300:傳送端
[0035] 301:接收端
[0036] 401: IP標(biāo)頭
[0037] 410:數(shù)據(jù)封包
[003引 411:封包序列
[0039] 412:訊息區(qū)塊序列
[0040] 413:訊息序列
[0041] 414:丟棄訊息序列
[0042] 415:NACK 序列
[0043] 416:RTT
[0044] 417:時(shí)間戳值
[0045] 418:TTL
[0046] 420:ACK 封包
[0047] 421:回波序列
[004引 422:累計(jì)ACK
[0049] 423:塞塞事件率
[(K)加]424:接收速率 [0化1] 430:NACK 封包
[0052] 431:NACK 序列
[0053] 432:遺失塊
[0化4] 510-515、520-525:步驟
[0化5] 610-650:步驟
[0化6] 710-770:步驟
[0057] 812、822:TCP 構(gòu)件
[0化引 815:影像編碼器
[0059] 823:用程序傳輸協(xié)議模塊
[0060] 824:影像接收端
[0061] 911-918、941-942、961-966:步驟
[0062] 910:影像編碼器
[0063] 920:影像傳送端
[0064] 930:傳輸協(xié)議構(gòu)件 [00化]940:傳輸協(xié)議構(gòu)件
[0066] 950:影像接收端
[0067] 960:影像解碼器
[0068] 1030:傳送端
[0069] 1031-1039:步驟
[0070] 1040:接收端
[0071] 1050:應(yīng)用程序
[0072] 1110-1120:步驟
[0073] 1200:傳送端
[0074] 1201:接收端
[00 巧]1210-1226、1260-1272:步驟
【具體實(shí)施方式】
[0076] 為能讓本領(lǐng)域的技術(shù)人員了解本發(fā)明的技術(shù)內(nèi)容,特舉較佳具體實(shí)施例說明如 下。
[0077] 本發(fā)明的實(shí)施例針對互動(dòng)式即時(shí)媒體提出一傳輸協(xié)議。
[0078] 圖1是依據(jù)本發(fā)明一實(shí)施例的一分散式客戶端-服務(wù)器電腦系統(tǒng)支持互動(dòng)式即時(shí) 媒體應(yīng)用程序的方塊圖。電腦系統(tǒng)1000包括一或多個(gè)服務(wù)器電腦101與一或多個(gè)配設(shè)在一 電腦程序產(chǎn)品131的用戶裝置103。電腦程序產(chǎn)品131可提供在一暫時(shí)性或非暫時(shí)性電腦可 讀取媒體;然而,在一特定實(shí)施例中,提供在一非暫時(shí)性電腦可讀取媒體,例如,永久性的 (即,非易失性)儲(chǔ)存裝置、揮發(fā)性記憶體(例如,隨機(jī)存取記憶體)或是多種其他已知的非暫 時(shí)性電腦可讀取媒體。
[0079] 用戶裝置103包括中央處理單元(CPU) 120,記憶體122與儲(chǔ)存裝置121。用戶裝置 103亦包括一輸入與輸出(I/O)次系統(tǒng)(未繪示于圖中)(例如包括,一顯示器或一觸控顯示 器、鍵盤、方向按鍵(d-pad)、一軌跡球、觸控板、操縱桿、麥克風(fēng)、與/或其他用戶界面裝置與 相關(guān)的控制器電路與/或軟件)。用戶裝置103可包括任一型式的可提供媒體內(nèi)容的電子裝 置。例如包括桌上型電腦與可攜式電子裝置,像是行動(dòng)電話、智能型手機(jī)、多媒體播放器、電 子閱讀器、平板電腦/觸控板、筆記型電腦或膝上型電腦、智能電視、智能手表、頭盎顯示器 W及其它通訊設(shè)備。
[0080] 服務(wù)器電腦101包括中央處理單元CPU110,儲(chǔ)存裝置111與記憶體112m及可包括 一未繪示的I/O次系統(tǒng))。服務(wù)器電腦101為可承載電腦產(chǎn)品131W與一或多個(gè)客戶端電腦進(jìn) 行通訊的任何計(jì)算裝置,例如,通過網(wǎng)絡(luò)的用戶裝置103;例如,網(wǎng)絡(luò)102(例如,因特網(wǎng))。服 務(wù)器電腦101經(jīng)由因特網(wǎng)來與一或多個(gè)客戶端電腦進(jìn)行通訊,且可應(yīng)用例如是因特網(wǎng)協(xié)議 集(Internet protocol suite,TCP/IP),超文件傳輸協(xié)議(Hypertext Transfer Protocol ,ΗΤΤΡ)或HTTPS(SS^based HTTP),即時(shí)傳訊協(xié)議(instant-messaging protocols),或其他協(xié)議。
[0081] 記憶體112與122可包括任一已知電腦記憶體裝置。儲(chǔ)存裝置111與121可包括任一 已知電腦儲(chǔ)存裝置。
[0082] 盡管未繪出,記憶體112與122與/或儲(chǔ)存裝置111與121亦可包括任一可分別被服 務(wù)器電腦101與用戶裝置103存取的數(shù)據(jù)儲(chǔ)存設(shè)備,例如是任一可刪除或攜帶的記憶體,(例 如,快閃記憶體或外接硬盤裝置),或任一藉由第Ξ方承載的數(shù)據(jù)儲(chǔ)存裝置(例如,云端儲(chǔ)存 裝置),在此不做任何限制。
[0083] -或多個(gè)用戶裝置103與一或多個(gè)服務(wù)器電腦101經(jīng)由該網(wǎng)絡(luò)102存取與進(jìn)行通 訊。網(wǎng)絡(luò)102包括一有線或無線連接,包括一廣域網(wǎng)絡(luò)(WANs)與蜂巢式(cellular)網(wǎng)絡(luò)或任 一其他型式的用于與裝置間通訊的電腦網(wǎng)絡(luò)。
[0084] 在該繪示的實(shí)施例中,電腦程序產(chǎn)品131實(shí)際表示電腦程序產(chǎn)品或分別用于服務(wù) 器101與用戶裝置103執(zhí)行的部分電腦程序產(chǎn)品。電腦程序產(chǎn)品131的一部分載于裝置103的 記憶體122 W生成并發(fā)送ACK與NACK封包W回應(yīng)自服務(wù)器101接收的數(shù)據(jù)封包,該ACK、NACK 與數(shù)據(jù)封包與于此進(jìn)一步說明的本發(fā)明請求的協(xié)議相符合。電腦程序產(chǎn)品131的一部分載 于服務(wù)器101的記憶體112, W應(yīng)用于ACK與NACK數(shù)據(jù)封包接收的資訊來有效控制數(shù)據(jù)封包 的排隊(duì)與發(fā)送,W符合于此進(jìn)一步說明的本發(fā)明請求的協(xié)議。
[0085] 圖2是依據(jù)本發(fā)明一實(shí)施例的一應(yīng)用層傳輸協(xié)議250與其他協(xié)議層間的協(xié)議層圖。 一般而言,在因特網(wǎng)與應(yīng)用標(biāo)準(zhǔn)化因特網(wǎng)協(xié)議集的網(wǎng)絡(luò)中,傳輸層駐留在該網(wǎng)絡(luò)層230(IP layer)上方與該應(yīng)用程序?qū)?60下方。傳輸層協(xié)議所提供的服務(wù)包括塞塞控制、可靠性(錯(cuò) 誤控制)與有序傳遞。使用在因特網(wǎng)的標(biāo)準(zhǔn)化傳輸層協(xié)議包括傳輸控制協(xié)議(TCP)與用戶數(shù) 據(jù)通訊協(xié)議(UDP)240。如所述,TCP或UDP無法完全滿足互動(dòng)式即時(shí)媒體應(yīng)用程序的請求。
[0086] 本發(fā)明一較佳實(shí)施例是對互動(dòng)式即時(shí)媒體提供一基于UDP的應(yīng)用程序分層傳輸協(xié) 議。如圖2所示,在此實(shí)施例中,互動(dòng)式即時(shí)媒體傳輸協(xié)議應(yīng)用于因特網(wǎng)堆找的應(yīng)用程序?qū)樱?并應(yīng)用于該傳輸層的一底層標(biāo)準(zhǔn)化UDP協(xié)議的服務(wù)。此實(shí)施例的優(yōu)點(diǎn)是,其可憑借該標(biāo)準(zhǔn)化 UDP協(xié)議來進(jìn)行基本的傳輸層服務(wù)W及集中于該應(yīng)用層傳輸協(xié)議W特別針對互動(dòng)式即時(shí)媒 體的需求提供服務(wù)。
[0087] 在其他實(shí)施例中,該互動(dòng)式即時(shí)媒體傳輸協(xié)議可被視為一單層(monolithic layer)3傳輸協(xié)議。在此實(shí)施例中,該互動(dòng)式即時(shí)媒體傳輸協(xié)議提供除了互動(dòng)式即時(shí)媒體需 求的專用服務(wù)外的基本的傳輸層服務(wù)(例如是一般UDP所提供)。此實(shí)施例的優(yōu)點(diǎn)可包括較 佳效率與降低處理時(shí)間。
[0088] 圖3是依據(jù)本發(fā)明一實(shí)施例的應(yīng)用于一應(yīng)用層傳輸協(xié)議的傳送端與接收端的高層 方塊圖。如圖3繪示,該互動(dòng)式即時(shí)媒體傳輸協(xié)議包括兩個(gè)主要構(gòu)件,為一傳送端300與一接 收端301。該傳送端透過一網(wǎng)絡(luò)發(fā)送數(shù)據(jù)封包至該接收端,系正常(于不存在錯(cuò)誤或封包遺 失情況)接收所發(fā)送的數(shù)據(jù)封包。該接收端發(fā)送確認(rèn)(acknowledgement,ACK)封包至該傳送 端W確認(rèn)成功接收數(shù)據(jù)封包,或發(fā)送否定確認(rèn)(negative ACKnowledgement,NACK)封包至 該傳送端W通知該傳送端封包遺失。
[0089] 如圖3所示的自該接收端側(cè)的該應(yīng)用程序至該傳送端側(cè)的該應(yīng)用程序的一"頻帶 夕K'數(shù)據(jù)路徑。此數(shù)據(jù)路徑例如可作為一 TCP連接的應(yīng)用。該頻帶外數(shù)據(jù)路徑例如可被使用 于,通知該發(fā)送應(yīng)用程序進(jìn)行訊息丟棄,其已發(fā)生于部分的訊息丟棄程序(如下所述)。
[0090] 在一些實(shí)施例中,傳送端300與發(fā)送即時(shí)媒體資訊的構(gòu)件相關(guān)聯(lián),即時(shí)媒體資訊例 如是影像與音頻串流。傳送端300例如可與一服務(wù)器電腦相關(guān)聯(lián),其例如是圖1繪示的服務(wù) 器電腦101。服務(wù)器電腦101例如可為一游戲云端服務(wù)器。傳送端300可視為于服務(wù)器電腦 101運(yùn)行的軟件,或一硬體與軟件的組合。
[0091] 在一些實(shí)施例中,接收端301可與接收即時(shí)媒體資訊的一構(gòu)件相關(guān)聯(lián),即時(shí)媒體資 訊例如是影像與音頻串流。例如,如圖1所示,接收端301可被視為與用戶裝置103相關(guān)聯(lián)。用 戶裝置103可例如為一 PC,智能型手機(jī),或智能電視。接收端301可視為于運(yùn)行于用戶裝置 103的軟件,或一硬體與軟件的組合。
[0092] 在一些實(shí)施例中,服務(wù)器電腦101可包括一或多個(gè)傳送端300的實(shí)例與一或多個(gè)接 收端301的實(shí)例。在一些實(shí)施例中,客戶端裝置103可包括一或多個(gè)傳送端300的實(shí)例與一或 多個(gè)接收端301的實(shí)例。
[0093] 在本發(fā)明互動(dòng)式即時(shí)媒體傳輸協(xié)議的一較佳實(shí)施例中,其可被用W自客戶端裝置 103發(fā)送控制資訊至服務(wù)器電腦101,且亦自服務(wù)器電腦101傳遞串流音頻與/或影像至客戶 端裝置103。
[0094] 數(shù)據(jù)封包410、ACK封包420與NACK封包430的結(jié)構(gòu)詳細(xì)繪示于圖4中。
[00M] -數(shù)據(jù)封包410輸送數(shù)據(jù)(未繪示)至一應(yīng)用程序,或自一應(yīng)用程序輸送數(shù)據(jù)。例 如,數(shù)據(jù)封包410可輸送一"訊息區(qū)塊"的數(shù)據(jù),"訊息區(qū)塊"為一訊息的部分。訊息是可被一 應(yīng)用程序處理的最小數(shù)據(jù)單元,只有當(dāng)整個(gè)訊息被接收到才能被應(yīng)用程序處理,不完整的 訊息是無法被處理的。一訊息可例如為一影像影格或一音頻影格。一訊息可被劃分至多個(gè) 訊息區(qū)塊,且每一訊息區(qū)塊透過一 UDP數(shù)據(jù)封包發(fā)送。所有屬于同一訊息的多個(gè)數(shù)據(jù)封包具 有相同的訊息序號。該塞塞控制協(xié)議僅著重封包遺失,其可用來計(jì)算該允許發(fā)送速率。
[0096] 每一個(gè)數(shù)據(jù)封包410、ACK封包420與NACK封包430包括一般的網(wǎng)絡(luò)通訊協(xié)議地址標(biāo) 頭(IP標(biāo)頭)401與一般的用戶數(shù)據(jù)訊息協(xié)定標(biāo)頭(UDP標(biāo)頭)402W及現(xiàn)將說明的附加標(biāo)頭資 訊。
[0097] 封包序列411為該數(shù)據(jù)封包410的序號。封包序號411于每一數(shù)據(jù)封包增加遞增一 次,且用于該塞塞控制協(xié)議(如下所述)的遺失檢測。
[0098] 訊息區(qū)塊序列412為一訊息區(qū)塊的該序號,其為每一訊息區(qū)塊遞增。訊息區(qū)塊序列 412用于訊息的重新組合與遺失回復(fù)。
[0099] 訊息序列413為此訊息區(qū)塊所屬的該訊息的序號。
[0100] 丟棄訊息序列414被用于該訊息丟棄特性,W通知該接收端丟棄早于此序列的多 個(gè)訊息。
[0101] 每一個(gè)重傳的數(shù)據(jù)封包具有一 NACK序列415,對應(yīng)相關(guān)聯(lián)的NACK請求的序號。NACK 序列415用于重傳數(shù)據(jù)封包的遺失檢測與回復(fù)。
[0102] RTT416為一估計(jì)的往返時(shí)間。RTT416用W決定在該塞塞控制協(xié)議的塞塞間隔。
[0103] 時(shí)間戳值417記錄此封包的發(fā)送時(shí)間。時(shí)間戳值417用于計(jì)算該塞塞控制協(xié)議的排 隊(duì)延遲。
[0104] TTL418為此訊息應(yīng)保留于該接收緩沖器的剩余時(shí)間,應(yīng)用于訊息丟棄特性中。
[0105] 本發(fā)明實(shí)施例的自該接收端發(fā)送至該傳送端的ACK封包420用W提供部分的該塞 塞控制協(xié)議的反饋。
[0106] 回波序列421是所接收的數(shù)據(jù)封包的最大序號,其用W計(jì)算在該塞塞控制協(xié)議的 往返時(shí)間(RTT)。
[0107] 累計(jì)ACK422是一訊息區(qū)塊序號,且標(biāo)示出早于此訊息區(qū)塊序號的所有訊息區(qū)塊已 被接收。
[0108] 塞塞事件率423藉由該接收端計(jì)算,且用于在該塞塞控制協(xié)議中的允許發(fā)送速率 的計(jì)算。
[0109] 接收速率424藉由該接收端來量測,且用于在該塞塞控制協(xié)議中的允許發(fā)送速率 的計(jì)算。
[0110] NACK封包430藉由該接收端來發(fā)送W請求遺失訊息區(qū)塊的重傳。一 NACK封包可具 有一或多個(gè)NACK請求。每一個(gè)NACK請求有一序號,其對應(yīng)一遺失訊息區(qū)塊。
[0111] 在此NACK封包中,NACK序列431為該些NACK請求的最小序號。此序號可協(xié)助檢測重 復(fù)的NACK請求與已重傳數(shù)據(jù)封包的遺失。
[0112] 多個(gè)遺失塊,例如是遺失塊432,指出該些訊息區(qū)塊的一連續(xù)序號范圍。
[0113] 實(shí)行于本發(fā)明實(shí)施例的各種方法其數(shù)據(jù)封包、ACK封包與NACK封包的使用將在下 文中做詳細(xì)說明。
[0114] 如上所述,本發(fā)明的傳輸協(xié)議是藉由數(shù)種方法來共同達(dá)成即時(shí)互動(dòng)媒體所要求的 低延遲。
[0115] 具體地說,本發(fā)明將公開塞塞控制、發(fā)送緩沖器排隊(duì)延遲的控制、在該接收端的訊 息丟棄與錯(cuò)誤控制的方法。每一個(gè)方法將參照相應(yīng)的附圖依序說明。
[0116] 值得注意的是,當(dāng)該些方法用于一起作業(yè)W滿足即時(shí)互動(dòng)媒體的該延遲請求時(shí), 一些實(shí)施例中的方法可各自使用,或進(jìn)行各式組合,或W其他協(xié)議或方法來組合。
[0117] 塞塞控制。圖5描述關(guān)于本發(fā)明一較佳實(shí)施例的一塞塞控制程序。一般而言,較佳 的塞塞控制方法基于延遲,而非TCP的基于遺失的塞塞控制。該基于延遲的方法提供多個(gè)優(yōu) 點(diǎn),例如是一平滑發(fā)送速率與在網(wǎng)絡(luò)緩沖器的較低排隊(duì)延遲。
[0118] 于圖5中,于該接收端的步驟描述于該圖式的右手邊,而于該傳送端的步驟描述于 該圖式的左手邊。起始于該圖的右上方,數(shù)據(jù)封包抵達(dá)該接收端,每一個(gè)數(shù)據(jù)封包包括一序 號與一時(shí)間戳值。于步驟520,進(jìn)行遺失檢測。在序號的一中斷系標(biāo)示出封包遺失。于步驟 521,該時(shí)間戮值可用W量測相對單向排隊(duì)延遲。封包的高遺失,增加了排隊(duì)延遲而視為塞 塞的指示。于步驟522,塞塞間隔(塞塞事件間的時(shí)間周期)系接著定義。于步驟524,計(jì)算一 加權(quán)平均后的塞塞間隔。該塞塞間隔的倒數(shù)是該塞塞事件率。于步驟525,生成具有該塞塞 事件率、接收速率W及所接受的最新的序號的一ACK封包,且每一RTTbound trip time)發(fā) 送回該傳送端。該ACK封包中發(fā)回的該序號稱為一"回波序號",用W計(jì)算RTT。
[0119] 用W計(jì)算該加權(quán)平均塞塞事件率的一加權(quán)平均濾波器使所量測的塞塞事件率能 平滑地改變,有助于一平滑發(fā)送速率。
[0120] 于該傳送端中,該回波序號接著用于RTT的計(jì)算。于該傳送端,RTT樣本于步驟510 中接收,而于步驟511中,進(jìn)行一"平滑化"RTT的計(jì)算。于步驟512,該"平滑化"RTT與該塞塞 事件率被一TCP傳輸量方程式用來計(jì)算該允許發(fā)送速率,而于步驟513中輸出。亦即,該當(dāng)前 接收速率被監(jiān)測。較佳地,該允許發(fā)送速率被限制為不超過兩倍的接收速率。于步驟515,對 發(fā)出的封包進(jìn)行排程,且依據(jù)該允許發(fā)送速率進(jìn)行發(fā)送。
[0121] 在一較佳實(shí)施例中,該TCP傳輸量方程式于RF巧348章節(jié)3.1中規(guī)定。此方程式為:
[0122]
[0123] 其中;
[0124] X_Bps為位元組/秒(bytes/s)為單位的TCP平均傳輸速率
[0125] s為W位元組(bytes)為單位的數(shù)據(jù)段長度值(不包含IP與傳輸協(xié)議標(biāo)頭)。
[01%] R為W秒(seconds)為單位的往返時(shí)間。
[0127] P為介于0與1.0之間的遺失事件率,即遺失事件的數(shù)量與所傳送的封包數(shù)量之比。
[0128] t_RT〇W秒(seconds)為單位的該TCP重傳逾時(shí)値。
[0129] b由單個(gè)TCP的確認(rèn)應(yīng)答的最大封包數(shù)量。
[0130] 在一較佳實(shí)施例,該塞塞控制方法基本上符合壯low,如Internet-Draft化aft- ohanlon-rmcat-df low-02 戶/f 述。
[0131] 動(dòng)態(tài)發(fā)送緩沖器。圖6描述于該發(fā)送緩沖器的排隊(duì)延遲控制方法。此方法藉由減少 在該發(fā)送緩沖器的排隊(duì)延遲W有助于減少點(diǎn)對點(diǎn)延遲。
[0132] 于步驟610,該應(yīng)用程序生成一訊息(例如,一影像編碼器生成一影像影格)。于步 驟620,該應(yīng)用程序請求發(fā)送該訊息。于步驟630,計(jì)算該發(fā)送緩沖器的排隊(duì)延遲。自該應(yīng)用 程序的觀點(diǎn)來看,此為新訊息需要等待直到所有待定數(shù)據(jù)被發(fā)送的時(shí)間。此延遲時(shí)間等于 待定數(shù)據(jù)大小除W該當(dāng)前發(fā)送速率(如上述的該塞塞控制方法)。待定數(shù)據(jù)包括尚未發(fā)送的 待定封包W及從NACK請求的待定重傳。
[0133] 于步驟640,比較所計(jì)算的排隊(duì)延遲與一預(yù)設(shè)的口檻值。如該延遲未超過該口檻 值,則于步驟650中,該新訊息排隊(duì)進(jìn)入該發(fā)送緩沖器。如所計(jì)算的排隊(duì)延遲超過該口檻值, 該新訊息不附加至該發(fā)送緩沖器,而該應(yīng)用程序必須回到步驟620重新執(zhí)行。在一實(shí)施例 中,該應(yīng)用程序會(huì)被明確告知再次執(zhí)行的需求。
[0134] 訊息丟棄。圖7-10描述該接收端中的訊息丟棄。此方法藉由減少新數(shù)據(jù)被舊數(shù)據(jù) 阻塞的時(shí)間量而有助于減少點(diǎn)對點(diǎn)的延遲。該方法讓應(yīng)用程序在一訊息允許嘗試傳輸或重 傳的時(shí)間上指定一時(shí)間限制。
[0135] 二個(gè)機(jī)制用于該接收端W檢測未在一指定的時(shí)間限制內(nèi)接收的訊息。該第一機(jī)制 在每一個(gè)數(shù)據(jù)封包的一訊息丟棄序列欄,通知該接收端丟棄所有早于該序列的訊息。亦請 參閱圖4數(shù)據(jù)封包的欄位設(shè)計(jì)。未在一指定時(shí)間限制內(nèi)確認(rèn)的一 ACK訊息會(huì)接著由該發(fā)送緩 沖器移除,且該訊息丟棄序號會(huì)在一新的數(shù)據(jù)封包中進(jìn)行更新。針對被移除的訊息的重傳 請求則會(huì)被忽略。該第二機(jī)制在每一個(gè)數(shù)據(jù)封包("存留時(shí)間"(time-to-live)或"TTL"欄 位,請見圖4)的一時(shí)間限制欄,其允許該接收端來決定該訊息應(yīng)停留在該接收緩沖器的時(shí) 間。超過該指定時(shí)間限制的訊息會(huì)自該接收緩沖器移除(丟棄)。
[0136] 于互動(dòng)式即時(shí)媒體應(yīng)用程序中,可指定特別是影像影格的時(shí)間限制。對于delta影 格,該時(shí)間限制基于影格-速率??蛇x擇地,該影格具有每秒A*1000/影格的一時(shí)間限制,其 中A為一常數(shù)。可選擇地,該限制可依據(jù)一影格間隔。于此,針對該第i影格的該時(shí)間限制為 B*(t(i)-T(I-l),其中t(i)為該第i影格的發(fā)送時(shí)間,而B為一常數(shù)。對于關(guān)鍵影格(內(nèi)視影 格),會(huì)指定一較高限制。對于影像影格,丟棄的影格會(huì)造成的后的影像失真,并持續(xù)至下一 關(guān)鍵影格被接收。當(dāng)關(guān)鍵影格間的時(shí)間過大,此可產(chǎn)生一不良的用戶經(jīng)驗(yàn)。為進(jìn)行修正,可 發(fā)送一通知至頻帶外給該編碼器W請求一關(guān)鍵影格,而停止該影像失真的影像。
[0137] 一般而言,關(guān)于丟棄訊息的通知為例如可藉由使用一 TCP連接來發(fā)送至一頻帶外 的應(yīng)用程序。
[0138] 接著,該訊息丟棄方法將參照圖7來做更詳細(xì)的說明。于步驟710,于該接收端接收 一數(shù)據(jù)封包,該數(shù)據(jù)封包具有在該丟棄訊息序列欄中的一序號值。于步驟720,丟棄該接收 緩沖器中早于該丟棄訊息序號的所有訊息。于步驟730,若無封包未接收的訊息,則該過程 終止。若有至少一封包未接收的訊息,于步驟740中,確認(rèn)具有封包未被接收的該最早訊息 M。于步驟750,若訊息Μ的該時(shí)間限制不可用,則該過程終止。若可取得訊息Μ的該時(shí)間限制, 則進(jìn)行步驟760。于步驟760,若訊息Μ尚未于該接收緩沖器中超過所指定的時(shí)間限制,則該 過程終止。若訊息Μ已于該接收緩沖器中超過所指定的時(shí)間限制,接運(yùn)進(jìn)行步驟770,丟棄訊 息Μ。在一實(shí)施例(未繪示)中,該應(yīng)用程序會(huì)經(jīng)由一頻帶外通知來接著明確告知該訊息丟 棄。
[0139] 圖8是依據(jù)本發(fā)明的一實(shí)施例的應(yīng)用于一關(guān)鍵影格請求程序的傳送端與接收端的 一高層方塊圖。如圖8所示,接收端側(cè)的應(yīng)用程序傳輸協(xié)議模塊823系配置W通知影像接收 端824-訊息丟棄事件。在一些實(shí)施例中,影像接收端824接著配置W請求影像編碼器815來 發(fā)送一新的影像影格,例如是一關(guān)鍵影格。對一影像影格(例如是一關(guān)鍵影格)的該請求可 被發(fā)送,在一些實(shí)施例中,經(jīng)由一維持于傳送端側(cè)的TCP構(gòu)件812與接收端側(cè)的TCP構(gòu)件822 間的TCP連接。該關(guān)鍵影格請求程序可被用于停止由丟棄訊息(影像影格)引起的影像失真 痕跡。
[0140] 圖9是依據(jù)本發(fā)明一實(shí)施例的對丟棄的影像影格的一關(guān)鍵影格請求的時(shí)序圖。
[0141] 于圖9的步驟911,影像編碼器910對一影像關(guān)鍵影格編碼W經(jīng)由影像傳送端920傳 輸。該關(guān)鍵影格會(huì)接著經(jīng)一網(wǎng)絡(luò)利用傳送端側(cè)的傳輸協(xié)議構(gòu)件930的該服務(wù)與傳輸協(xié)議構(gòu) 件940的接收端側(cè)來發(fā)送。該關(guān)鍵影格接著被影像接收端950接收,并送交至影像解碼器 960,其解碼于步驟961W顯示于例如是,一電視、行動(dòng)裝置或游戲機(jī)。接著,于步驟912,一 del化影格(由前一個(gè)關(guān)鍵影格編碼的影像編碼差分)同樣地被編碼與發(fā)送。一第二delta影 格被編碼并發(fā)送于步驟913。然而,下一個(gè)delta影格,則發(fā)送于步驟914,且于步驟941中通 過該接收端側(cè)的傳輸協(xié)議構(gòu)件940來被丟棄。于步驟942,傳輸協(xié)議構(gòu)件940通知丟棄該影像 接收端950的影格。同時(shí),于步驟964,一影像的影像失真起始于該接收端。于步驟917,影像 編碼器910根據(jù)影像接收端950的請求(請求W反向的虛線箭頭標(biāo)示出)對一新關(guān)鍵影格編 碼。于步驟918,發(fā)送該新的關(guān)鍵影格,且于步驟966中被影像解碼器960接收,從而停止該影 像的影像失真。
[0142] 接著,將參照圖10的時(shí)序圖來對一訊息丟棄作詳細(xì)說明。
[0143] 于步驟1031,傳送端1030發(fā)送包括一訊息區(qū)塊的訊息1至接收端1140,并轉(zhuǎn)送該訊 息至應(yīng)用程序1050。
[0144] 于步驟1032,傳送端1030發(fā)送訊息2的一第一訊息區(qū)塊至接收端1040,其保持于在 該接收緩沖器。
[0145] 于步驟1033,傳送端1030發(fā)送訊息2的一第二訊息區(qū)塊,但此訊息區(qū)塊為遺失。
[0146] 于步驟1034,傳送端1030發(fā)送訊息3的一第一訊息區(qū)塊。此數(shù)據(jù)封包包括一訊息丟 棄欄,具有數(shù)值1,意指保持在該接收緩沖器的具一早期訊息丟棄欄的任何訊息其任一封包 應(yīng)被丟棄。
[0147] 同時(shí),于步驟1035,順利地發(fā)送與接收訊息3的該第二訊息區(qū)塊,且訊息3會(huì)轉(zhuǎn)送至 該應(yīng)用程序。
[0148] 于步驟1036,順利地發(fā)送與接收訊息4的一第一訊息區(qū)塊。此數(shù)據(jù)封包包括一訊息 丟棄欄,具有數(shù)值2,意指訊息2不應(yīng)被保持在該接收緩沖器,且應(yīng)被丟棄。針對訊息4的該 TTL計(jì)時(shí)器將啟動(dòng),且將于100ms之后到期。
[0149] 于步驟1037,發(fā)送訊息4的一第二訊息區(qū)塊,但其為遺失。訊息4為具一時(shí)間單位值 為100的TTL欄。當(dāng)此時(shí)間到期,訊息4為自該接收緩沖器丟棄,且發(fā)送一通知至該應(yīng)用程序。
[0150] 于步驟1038,順利地發(fā)送與接收包括一訊息區(qū)塊的訊息5。訊息5被保持W等待訊 息4,且未立即應(yīng)用至該應(yīng)用程序。若該訊息尚未被接收,針對訊息4的該TTL計(jì)時(shí)器將會(huì)到 期。訊息接著會(huì)被丟棄,且發(fā)送一通知至該應(yīng)用程序。訊息5會(huì)接著應(yīng)用至該應(yīng)用程序。
[0151] 于步驟1039,發(fā)送與接收訊息6的一訊息區(qū)塊。此訊息具有數(shù)值4的訊息丟棄設(shè)定, 但未有一早期訊息序號在該緩沖器中,故未有丟棄作業(yè)。
[0152] 錯(cuò)誤控制。該錯(cuò)誤控制方法(遺失回復(fù)協(xié)議)依據(jù)于該接收端中的基于間隙的遺失 檢測。參考圖11與12。當(dāng)該些遺失被檢測出(基于序號中斷),發(fā)送一 NACK封包來請求該傳送 端重傳該遺失的封包。一 NACK封包載有該遺失的封包的序號范圍W及該NACK請求的一序 號,依此NACK的遺失封包遞增。當(dāng)該傳送端接收該NACK,查驗(yàn)是否為一重復(fù)的請求,且接著 重傳該遺失的數(shù)據(jù)封包。每一個(gè)重傳的數(shù)據(jù)封包載有一NACK序號,藉由每一個(gè)重傳封包遞 增。該接收端可查驗(yàn)在該數(shù)據(jù)封包中的NACK序號的該間隙W檢測重傳的封包的遺失。若重 傳封包再次遺失,會(huì)發(fā)送具一新的NACK序號的一新的NACK請求。
[0153] 圖11是依據(jù)本發(fā)明一實(shí)施例的于該接收端遺失回復(fù)的流程圖。圖11包括兩種主要 方法:1)發(fā)送于第一次的多個(gè)訊息區(qū)塊(或數(shù)據(jù)封包)的遺失檢測(參考下方虛線框中的多 個(gè)步驟);與2)重傳多個(gè)訊息區(qū)塊(數(shù)據(jù)封包)的遺失檢測(參考上方虛線框中的多個(gè)步驟)。
[0154] 于步驟1110,接收一數(shù)據(jù)封包。于步驟1113,執(zhí)行一測試來查看是否該接收數(shù)據(jù)封 包的該NACK序號大于先前接收的該最大NACK序號。若無,則控制進(jìn)入至實(shí)行訊息區(qū)塊(數(shù)據(jù) 封包)的遺失檢測的該下框。于步驟1117,執(zhí)行一測試來查看是否此封包的該訊息區(qū)塊序號 具有一間隙,其有先前接收的該最大訊息區(qū)塊序號。若是,該第一次發(fā)送的部分訊息區(qū)塊已 遺失。于步驟1118,對應(yīng)該遺失訊息區(qū)塊的新的N A C K請求會(huì)被附加至該遺失的列表(待定 NACK請求的列表)。
[0K5] 于步驟1120,該新的NACK請求發(fā)送至該傳送端。在一NACK封包中,除非于步驟1119 檢測到的對應(yīng)訊息區(qū)塊的一或多個(gè)NAC時(shí)青求為一到期訊息的部分,否則此NACK請求將被移 除。因此,功效上,該訊息丟棄程序(如上所述)于該遺失回復(fù)協(xié)議設(shè)置一限制,W回復(fù)遺失 的數(shù)據(jù)。
[0156] 返回至步驟1113,若該接收數(shù)據(jù)封包具有大于先前接收最大NACK序號的一 NACK序 號,意指最后一個(gè)數(shù)據(jù)封包被接收,部分訊息區(qū)塊已重傳。
[0157] 于步驟1114,依據(jù)NACK序號中的任一間隙來進(jìn)行決定,是否任一重傳訊息區(qū)塊已 遺失。若是運(yùn)樣,于步驟1115,新的NACK請求會(huì)被附加至該遺失列表。于步驟1115,自該遺失 列表移除所有早于且包括該NACK序號的NACK請求。接著控制進(jìn)入的前實(shí)行遺失訊息區(qū)塊測 試的框1117。
[0158] 錯(cuò)誤控制將參照圖12的時(shí)序圖來做進(jìn)一步地詳細(xì)說明。
[0159] 圖12繪示符合本發(fā)明實(shí)施例的錯(cuò)誤控制程序的一傳送端1200與一接收端1201間 的數(shù)據(jù)封包與NACK封包交換。針對每一個(gè)數(shù)據(jù)封包,標(biāo)示出該訊息區(qū)塊序號與NACK序號值。 針對每一個(gè)NACK封包,標(biāo)示出該NACK序號與遺失塊值(封包遺失的序號范圍)。
[0160] 特別地是,于該接收端的遺失檢測被驗(yàn)證。步驟1262為第一次發(fā)送的訊息區(qū)塊的 遺失檢測的例子。步驟1266與1269描述重傳訊息區(qū)塊的遺失檢測。
[0161] 于步驟1210-1215,發(fā)送具有訊息區(qū)塊序號1、2、3、4、5與6的數(shù)據(jù)封包。運(yùn)些中,數(shù) 據(jù)封包1、2與6會(huì)被順利地接收,但封包3、4與5會(huì)遺失。于步驟1262,該接收端檢測訊息區(qū)塊 序號的中斷,W及于步驟1263,向該傳送端發(fā)送具有值為1的一NACK序列W及值為[3,5]的 遺失塊的一 NACK封包。
[0162] 于步驟1216,該傳送端接收該NACK封包。于步驟1217-1219,該傳送端重新發(fā)送數(shù) 據(jù)封包3、4與5。重新發(fā)送的封包3載有該NACK序號1。該NACK序號于每一個(gè)重新發(fā)送封包遞 增,W讓重新發(fā)送的數(shù)據(jù)封包4與5分別載有NACK序號2與3。重新發(fā)送的數(shù)據(jù)封包4為遺失, 其藉由該接收端于步驟1266自NACK序號的中斷來檢測出。一具序號4的新的NACK與遺失塊 [4,4 ]會(huì)接著產(chǎn)生,且發(fā)送至該傳送端。
[0163] 于步驟1221,重新發(fā)送數(shù)據(jù)封包4,但其會(huì)再次遺失。該遺失會(huì)在步驟1269被該接 收端檢測出,并會(huì)在步驟1270發(fā)送一具NACK序列5與遺失塊4,4的NACK,其會(huì)于步驟1224被 傳送端1200接收。
[0164] 于步驟1222與1223,順利地發(fā)送具有該NACK序號的數(shù)據(jù)封包7與8,其中該NACK序 號剩下4。
[0165] 于步驟1225,數(shù)據(jù)封包4會(huì)再次重新發(fā)送,現(xiàn)采用NACK序號5。此時(shí)間數(shù)據(jù)封包4會(huì) 順利地被接收。
[0166] 于步驟1226,順利地發(fā)送一具NACK序列的數(shù)據(jù)封包9,其中該NACK序列剩下5。
[0167] 如上所述,該"遺失列表"為待定NACK請求的一列表。每一個(gè)NACK請求具有一獨(dú)特 的NACK序號與一遺失訊息區(qū)塊的該序號。每當(dāng)檢測到新的封包,NACK請求會(huì)"附加"在該遺 失列表中。該遺失列表的作業(yè)可經(jīng)由如下的圖12的說明來理解:
[0168] 在圖12中,Ξ個(gè)數(shù)據(jù)封包(訊息區(qū)塊)接收于步驟1260、1261與1262。該遺失的訊息 區(qū)塊3、4、5,被檢測出。Ξ個(gè)項(xiàng)目(1,3)、( 2,4)、( 3,5)會(huì)附加在該遺失列表。該遺失列表接著 變成[(1,3),(2,4),(3,5)]。其可被更緊湊地表示如[(1,[3,5])]
[0169] 該待定NACK請求會(huì)被(確認(rèn))自該遺失列表移除當(dāng)1)該訊息區(qū)塊請求被順利地接 收或2)該重傳訊息區(qū)塊再次遺失。在此例中,會(huì)附加新的NACK請求。
[0170] 例如,于步驟1264,接收回應(yīng)NACK請求1的該重傳訊息區(qū)塊3,其確認(rèn)該接收端已順 利地回應(yīng)NACK請求1,且被自遺失列表移除。于步驟1266,NACK請求3亦順利地被回應(yīng),而 NACK請求2因重傳訊息區(qū)塊4遺失而失效。NACK請求2與3都會(huì)被自遺失列表移除。于訊息區(qū) 塊4的一新的NACK請求(4,4)會(huì)附加至遺失列表。
[0171] 附加實(shí)施例
[0172] -方面,一實(shí)施例提供一種經(jīng)一網(wǎng)絡(luò)自一傳送端傳送至一接收端的封包低延遲傳 輸,包括:于一或多臺(tái)連接該網(wǎng)絡(luò)的電腦,傳輸一數(shù)據(jù)封包;于該傳送端中,接收一確認(rèn)封 包,其用W輸送一塞塞事件率W及一回波序號;于該傳送端中,依據(jù)該回波序號計(jì)算一平滑 化往返時(shí)間;于該傳送端中,依據(jù)一塞塞事件率與平滑化往返時(shí)間,應(yīng)用一TCP傳輸量方程 式來計(jì)算一允許發(fā)送速率;于該傳送端中,計(jì)算一發(fā)送緩沖器的一當(dāng)前排隊(duì)延遲;于該傳送 端僅于該當(dāng)前排隊(duì)延遲未超過一口檻值時(shí),一應(yīng)用程序請求發(fā)送一訊息來排隊(duì)進(jìn)入該發(fā)送 緩沖器;于該傳送端中,于一數(shù)據(jù)封包插入一時(shí)限值,該時(shí)限值系發(fā)出訊號至該接收端,傳 達(dá)相關(guān)訊息于移除前應(yīng)停留在該接收緩沖器的時(shí)間的一限制;于該傳送端中,于一數(shù)據(jù)封 包插入一訊息丟棄序號,該訊息丟棄序號系發(fā)出訊號至該接收端來丟棄具一早期訊息丟棄 序號的所有訊息;與于該傳送端中,接收標(biāo)示出一遺失封包的序號范圍的一NACK封包,且重 傳遺失的封包。亦公開儲(chǔ)存在一非暫態(tài)性電腦可讀取媒體的一電腦程序產(chǎn)品,當(dāng)藉由一或 多個(gè)電腦讀取或執(zhí)行時(shí),實(shí)行上述公開的方法。亦公開一傳送端,其W低延遲方式經(jīng)一網(wǎng)絡(luò) 傳輸封包至一接收端,且用于接收輸送一塞塞事件率W及一回波序號的一 ACK封包;依據(jù)該 回波序號計(jì)算一平滑化往返時(shí)間;依據(jù)一塞塞事件率與平滑化往返時(shí)間,W應(yīng)用一TCP傳輸 量方程式來計(jì)算一允許發(fā)送速率;僅于該當(dāng)前排隊(duì)延遲未超過一口檻值,計(jì)算一當(dāng)前于一 發(fā)送緩沖器的排隊(duì)延遲與一應(yīng)用程序請求發(fā)送一訊息來排隊(duì)進(jìn)入該發(fā)送緩沖器;W及接收 標(biāo)示出一遺失封包的序號范圍的一 NACK封包,且重傳該遺失的封包。
[0173] 另一方面,公開一種經(jīng)一網(wǎng)絡(luò)自一傳送端傳送至一接收端的封包低延遲接收方 法,包括:于一或多臺(tái)連接該網(wǎng)絡(luò)的電腦:接收一數(shù)據(jù)封包;于該接收端中,藉由檢測序號的 中斷W將封包遺失的檢測表示為塞塞;于該接收端中,依據(jù)一所接收的數(shù)據(jù)封包中的一時(shí) 間戳値來將高排隊(duì)延遲的檢測表示為塞塞;于該接收端中,計(jì)算一塞塞事件率,且發(fā)送一 ACK封包至該傳送端,該ACK封包為輸送該塞塞事件率W及一回波序號,其系輸入來計(jì)算允 許發(fā)送速率;于該接收端中,依據(jù)每一所接收的數(shù)據(jù)封包的一時(shí)限值W及一訊息停留在一 接收緩沖器的一最大允許時(shí)間來判斷,而移除超過該最大允許時(shí)間的任一訊息;于該接收 端中,接收具有一訊息丟棄序號的一數(shù)據(jù)封包,并丟棄早于與該數(shù)據(jù)封包相關(guān)的一訊息的 所有訊息;W及在該接收端中,經(jīng)由序號間隙確認(rèn)所遺失的封包,當(dāng)檢測出封包遺失,發(fā)送 一NACK封包至該傳送端,W要求該傳送端重傳該所遺失的封包。亦公開儲(chǔ)存在一非暫態(tài)性 電腦可讀取媒體的一電腦程序產(chǎn)品,當(dāng)藉由一或多個(gè)電腦讀取與執(zhí)行時(shí),實(shí)行上述公開的 方法。亦公開一傳送端,其W低延遲方式經(jīng)一網(wǎng)絡(luò)傳輸封包至一接收端,該傳送端包括:一 塞塞控制,模塊用W接收一 ACK封包,該ACK封包系輸送一塞塞事件率W及一回波序號,依據(jù) 該回波序號計(jì)算一平滑化往返時(shí)間,依據(jù)該塞塞事件率與該平滑化往返時(shí)間,應(yīng)用一TCP傳 輸量方程式來計(jì)算一允許發(fā)送速率;一發(fā)送緩沖器;一排隊(duì)控制模塊,用W計(jì)算于該發(fā)送緩 沖器的一當(dāng)前排隊(duì)延遲,并僅于該當(dāng)前排隊(duì)延遲未超過一口檻值時(shí),一應(yīng)用程序請求發(fā)送 一訊息來排隊(duì)進(jìn)入該發(fā)送緩沖器;W及一錯(cuò)誤控制模塊,用W接收標(biāo)示出一遺失封包的序 號范圍的一NACK封包,其中該傳輸層用W引導(dǎo)該傳送端來重傳該遺失的封包。亦公開經(jīng)一 網(wǎng)絡(luò)W低延遲方式自一傳送端接收封包的接收端,該接收端包括:一塞塞控制模塊,藉由檢 測封包遺失或高排隊(duì)延遲來檢測塞塞,且發(fā)送一 ACK封包至該傳送端,該ACK封包系輸送一 塞塞速率事件W及一回波序號;一訊息丟棄模塊,依據(jù)每一所接收的數(shù)據(jù)封包的一時(shí)限值 W及一訊息停留在一接收緩沖器的一最大允許時(shí)間來判斷,而移除超過該最大允許時(shí)間的 任一訊息,該訊息丟棄模塊更用W接收具有一訊息丟棄序號的一數(shù)據(jù)封包,并自該接收緩 沖器丟棄早于與該數(shù)據(jù)封包相關(guān)的一訊息的所有訊息;W及一錯(cuò)誤控制模塊,經(jīng)由序號間 隙確認(rèn)所遺失的封包,當(dāng)檢測出封包遺失,發(fā)送一NACK封包至該傳送端,W要求該傳送端重 傳該所遺失的封包。
[0174] 雖然本文只對本發(fā)明的幾個(gè)實(shí)施例進(jìn)行了描述,任何本領(lǐng)域的技術(shù)人員均可在不 違背本發(fā)明的技術(shù)原理及精神下,對實(shí)施例作修改與變化。因此,所有運(yùn)樣的修改和變化將 都包括在所要求保護(hù)的發(fā)明的范圍之內(nèi)。
[0175] 需注意的是,上述僅為實(shí)施例,而非限制于實(shí)施例。譬如此不脫離本發(fā)明基本架構(gòu) 者,皆應(yīng)為本專利所主張的權(quán)利范圍,而應(yīng)w專利申請保護(hù)范圍為準(zhǔn)。
【主權(quán)項(xiàng)】
1. 一種經(jīng)一網(wǎng)絡(luò)自一傳送端傳送至一接收端的封包低延遲傳輸方法,其特征在于,包 括:于一或多臺(tái)連接該網(wǎng)絡(luò)的電腦,傳輸一數(shù)據(jù)封包; 在該傳送端中,接收一確認(rèn)封包,其用以輸送一壅塞事件率以及一回波序號; 在該傳送端中,依據(jù)該回波序號計(jì)算一平滑化往返時(shí)間; 在該傳送端中,依據(jù)該壅塞事件率以及該平滑化往返時(shí)間,應(yīng)用一傳輸控制協(xié)議傳輸 量方程式來計(jì)算一允許發(fā)送速率; 在該傳送端中,計(jì)算一發(fā)送緩沖器的一當(dāng)前排隊(duì)延遲; 在該傳送端中,僅于該當(dāng)前排隊(duì)延遲未超過一門檻值時(shí),一應(yīng)用程序請求發(fā)送一訊息 來排隊(duì)進(jìn)入該發(fā)送緩沖器; 在該傳送端中,于一數(shù)據(jù)封包插入一時(shí)限值,該時(shí)限值發(fā)出訊號至該接收端,傳達(dá)相關(guān) 訊息于移除前應(yīng)停留在該接收緩沖器的時(shí)間的一限制; 在該傳送端中,于一數(shù)據(jù)封包插入一訊息丟棄序號,該訊息丟棄序號系發(fā)出訊號至該 接收端來丟棄具一早期訊息丟棄序號的所有訊息;以及 在該傳送端中,接收標(biāo)不出一遺失封包的序號范圍的一否定確認(rèn)封包,且重傳每一個(gè) 非屬一丟棄訊息的所遺失的封包。2. 如權(quán)利要求1所述的方法,其特征在于,該網(wǎng)絡(luò)為因特網(wǎng)。3. 如權(quán)利要求1所述的方法,其特征在于,運(yùn)行在用戶數(shù)據(jù)通訊協(xié)議的一應(yīng)用層傳輸協(xié) 議。4. 如權(quán)利要求1所述的方法,其特征在于,該壅塞控制步驟,接收一確認(rèn)封包、計(jì)算一平 滑化往返時(shí)間以及應(yīng)用一傳輸控制協(xié)議傳輸量方程式,符合dflow-02。5. 如權(quán)利要求1所述的方法,其特征在于,若一訊息因過長的排隊(duì)延遲未排隊(duì)進(jìn)入該發(fā) 送緩沖器,該應(yīng)用程序藉由一回叫以明確通知再次發(fā)送該訊息。6. 如權(quán)利要求1所述的方法,其特征在于,若一訊息因過長的排隊(duì)延遲未排隊(duì)進(jìn)入該發(fā) 送緩沖器,該應(yīng)用程序可再次發(fā)送該訊息。7. -種經(jīng)一網(wǎng)絡(luò)自一傳送端傳送至一接收端的封包低延遲接收方法,其特征在于,包 括:于一或多臺(tái)連接該網(wǎng)絡(luò)的電腦, 接收一數(shù)據(jù)封包; 在該接收端中,藉由檢測序號的中斷以將封包遺失的檢測表示為壅塞; 在該接收端中,依據(jù)一所接收的數(shù)據(jù)封包中的一時(shí)間戳値來將高排隊(duì)延遲的檢測表示 為壅塞; 在該接收端中,計(jì)算一壅塞事件率,且發(fā)送一ACK封包至該傳送端,該ACK封包系輸送該 壅塞事件率以及一回波序號,其系輸入來計(jì)算允許發(fā)送速率; 在該接收端中,依據(jù)每一所接收的數(shù)據(jù)封包的一時(shí)限值以及一訊息停留在一接收緩沖 器的一最大允許時(shí)間來判斷,而移除超過該最大允許時(shí)間的任一訊息; 在該接收端中,接收具有一訊息丟棄序號的一數(shù)據(jù)封包,并丟棄早于與該數(shù)據(jù)封包相 關(guān)的一訊息的所有訊息;以及 在該接收端中,經(jīng)由序號間隙確認(rèn)所遺失的封包,當(dāng)檢測出封包遺失,發(fā)送一NACK封包 至該傳送端,以要求該傳送端重傳該所遺失的封包。8. 如權(quán)利要求7所述的方法,其特征在于,該網(wǎng)絡(luò)為因特網(wǎng)。9. 如權(quán)利要求7所述的方法,其特征在于,是運(yùn)行在UDP的一應(yīng)用層傳輸協(xié)議。10. 如權(quán)利要求7所述的方法,其特征在于,該壅塞控制步驟,檢測封包遺失、檢測高排 隊(duì)延遲以及計(jì)算一壅塞事件率,符合dflow-02。11. 如權(quán)利要求7所述的方法,其特征在于,還包括自該接收端發(fā)送一頻帶外請求至一 影像編碼器來要求以一關(guān)鍵影格取代被丟棄的一關(guān)鍵影格。12. 如權(quán)利要求11所述的方法,其特征在于,對該影像編碼器的該要求經(jīng)由一 TCP連接 發(fā)送。13. 如權(quán)利要求7所述的方法,其特征在于,該壅塞事件率為一近期壅塞間隔其加權(quán)平 均的倒數(shù)。
【文檔編號】H04L12/801GK105871736SQ201610082602
【公開日】2016年8月17日
【申請日】2016年2月5日
【發(fā)明人】楊琮文, 葉仲洲, 鄧安倫
【申請人】英屬開曼群島優(yōu)比特思有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1