TWI559717B - 互動式即時媒體之傳輸協議 - Google Patents

互動式即時媒體之傳輸協議 Download PDF

Info

Publication number
TWI559717B
TWI559717B TW105107983A TW105107983A TWI559717B TW I559717 B TWI559717 B TW I559717B TW 105107983 A TW105107983 A TW 105107983A TW 105107983 A TW105107983 A TW 105107983A TW I559717 B TWI559717 B TW I559717B
Authority
TW
Taiwan
Prior art keywords
message
packet
receiving
transmitting end
sequence number
Prior art date
Application number
TW105107983A
Other languages
English (en)
Other versions
TW201640873A (zh
Inventor
楊琮文
葉仲洲
鄧安倫
Original Assignee
優比特思有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 優比特思有限公司 filed Critical 優比特思有限公司
Publication of TW201640873A publication Critical patent/TW201640873A/zh
Application granted granted Critical
Publication of TWI559717B publication Critical patent/TWI559717B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/08Arrangements for detecting or preventing errors in the information received by repeating transmission, e.g. Verdan system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/1607Details of the supervisory signal
    • H04L1/1671Details of the supervisory signal the supervisory signal being transmitted together with control information
    • H04L1/1678Details of the supervisory signal the supervisory signal being transmitted together with control information where the control information is for timing, e.g. time stamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1874Buffer management
    • H04L1/1877Buffer management for semi-reliable protocols, e.g. for less sensitive applications like streaming video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • H04L43/0835One way packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0289Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/10Flow control between communication endpoints
    • H04W28/12Flow control between communication endpoints using signalling between network elements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Environmental & Geological Engineering (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Description

互動式即時媒體之傳輸協議
本發明係關於一種即時媒體之傳輸協議,特別是一種互動式即時媒體之傳輸協議。
網路應用程式係憑藉傳輸層協議以經由網路傳送數據。不同的應用程式對所述傳輸層具有不同的請求,而延遲對於網路通訊之上下文係一挑戰。
端點對端點延遲係由數個因素所構成。部分延遲係為傳送端內的多個元件產生,例如發送緩衝區和壅塞控制元件。其他延遲則來自於接收端內的元件,例如是一接收緩衝區。還有其他延遲來自於網路路徑,例如網路路徑上的緩衝區和物理傳播延遲。 更特別的是,點對點延遲可包括:1)於一發送緩衝器之排隊延遲中,讓數據停留在一發送緩衝器直到發送開始。此延遲係產生於當發送數據的速率低於該數據速率時。一大量發送緩衝器係具大量的排隊延遲。2)延遲數據被發送之所需時間。此延遲係會被該傳送端其多個壅塞控制元件的運行所影響,以在某些情況下降低該發送速率來緩解壅塞。3)傳播延遲,經由該網路路徑於無壅塞情況下傳送一封包之時間延遲(包括因光在傳輸介質中係速度有限之延遲)。4)於網路緩衝器之排隊延遲。此延遲發生在當產生的流量超過網路容量。5)重傳延遲,係封包遺失回復的時間延遲。6)前端(Head-of-line,HOL)阻塞延遲,係具依序傳遞之請求,而新數據會被舊數據阻塞之時間延遲。
該些延遲組件係由傳輸協議中之兩個模組來決定。第一個是壅塞控制,係調節數據發送至該網路之速率。壅塞控制係影響該發送緩衝器中之排隊延遲、發送延遲以及於該網路中之排隊延遲。第二個是錯誤控制,係用以提供可靠性。錯誤控制係影響該重傳延遲以及前端阻塞延遲。
用戶資料通訊協議(UDP)與傳輸控制協議(Transmission Control Protocol,TCP)係廣泛使用於網際網路之標準化傳輸協議。UDP並不提供壅塞控制,其數據係即時發送。TCP係使用最廣泛之傳輸協議,係提供壅塞控制以回應可用頻寬之改變。TCP亦提供可靠性(封包遺失之回復)。
用戶資料通訊協議與傳輸控制協議均具有互動式即時媒體傳輸之限制。若UDP未降低該發送速率來回應壅塞,即會有較高之封包遺失,且在網路緩衝器中會有高排隊延遲。高封包遺失將會降低影像的品質。然而,TCP並不適合互動式即時媒體。即使僅發生一次性壅塞,TCP會積極地降低其發送速率來回應,其會增加該發送延遲且造成影像顫抖。TCP係使用一基於遺失之壅塞控制程序以於一路徑上排滿直到產生遺失為止,造成最大延遲。即使部分數據重要性不高或是無法及時使用,TCP之可靠性仍會強迫不同重要性之數據都被接收。TCP使用一固定大小之發送緩衝器,使應用程式在無法在可用頻寬下降時快速做出反應。雖然可以使用較小的發送緩衝器限制該延遲,但會影響到傳輸量。
互動式即時媒體應用程式係需要低延遲以及一平滑發送速率。此些應用程式需要一中間層級之可靠性,以被稱為“部分可靠性”。所需要的是,一支援即時互動媒體的請求,包括於該網路中之較低延遲、於該發送緩衝器中之較低延遲、一平滑發送速率以及部分可靠性。
本發明之實施例係提供一應用層傳輸協議來支援即時互動媒體之請求。在一較佳實施例,係提供壅塞控制、發送緩衝器之動態管理、訊息丟棄與錯誤控制之技術。
較佳之壅塞控制技術係基於延遲之技術,係與TCP之基於遺失的壅塞控制相反。基於延遲之技術係提供一平滑發送速率並降低網路緩衝器之排隊延遲。
於該發送緩衝器之排隊延遲係藉由計算於一新訊息被請求發送之該當前發送緩衝器排隊延遲來控制,以及藉由比較該門檻值與該當前排隊延遲來控制。若該延遲超過該門檻值,該新的訊息即不會置入該發送緩衝器。
訊息丟棄程序係用以確使過舊之訊息會被丟棄,不會造成排隊延遲的增加。當影格被丟棄時,會藉由發送一頻帶外(out of band)請求至一影像編碼器以發送一新的影像關鍵影格,來降低畫面失真的發生。
較佳之錯誤控制技術係僅於該接收端應用基於間隙之遺失檢測,係均與TCP與UDP在該接收端實行基於間隙之遺失檢測以及在該傳送端實行基於計時器之檢測相反。此方法係與即時媒體應用程式之規則數據產生以及高封包速率之特點相匹配,在基於間隙之檢測條件下通常實行的特別好。其可避免基於計時器之方法的問題,該問題係因不準確的往返時間(RTT,Round Trip Time)估計所引起之。
1000‧‧‧電腦系統
101‧‧‧伺服器電腦
102‧‧‧網路
103‧‧‧用戶裝置
110、120‧‧‧中央處理單元
111、121‧‧‧儲存裝置
112、122‧‧‧記憶體
131‧‧‧電腦程式產品
300‧‧‧傳送端
301‧‧‧接收端
401‧‧‧IP標頭
410‧‧‧數據封包
411‧‧‧封包序列
412‧‧‧訊息區塊序列
413‧‧‧訊息序列
414‧‧‧丟棄訊息序列
415‧‧‧NACK序列
416‧‧‧RTT
417‧‧‧時間戳值
418‧‧‧TTL
420‧‧‧ACK封包
421‧‧‧回波序列
422‧‧‧累計ACK
423‧‧‧壅塞事件率
424‧‧‧接收速率
430‧‧‧NACK封包
431‧‧‧NACK序列
432‧‧‧遺失塊
510-515、520-525‧‧‧步驟
610-650‧‧‧步驟
710-770‧‧‧步驟
812、822‧‧‧TCP構件
815‧‧‧影像編碼器
823‧‧‧應用層傳輸協議
824‧‧‧影像接收器
911-918、941-942、961-966‧‧‧步驟
910‧‧‧影像編碼器
920‧‧‧影像傳送端
930‧‧‧傳輸協議構件
940‧‧‧傳輸協議構件
950‧‧‧影像接收端
960‧‧‧影像解碼器
1030‧‧‧傳送端
1031-1039‧‧‧步驟
1040‧‧‧接收端
1050‧‧‧應用程式
1110-1120‧‧‧步驟
1200‧‧‧傳送端
1201‧‧‧接收端
1210-1226、1260-1272‧‧‧步驟
圖1是依據本發明一實施例之一分散式客戶端-伺服器電腦系統支援互動式即時媒體應用程式的方塊圖。
圖2是依據本發明一實施例之一應用層傳輸協議與其他協議層間的協議層圖。
圖3是依據本發明一實施例之應用於一應用層傳輸協議之傳送端與接收端的高層方塊圖。
圖4繪示依據本發明一實施例之用以壅塞控制與錯誤控制之封包結構圖。
圖5是依據本發明一實施例之一壅塞控制程序的流程圖。
圖6是依據本發明一實施例之在一動態發送緩衝器之排隊延遲的控制流程圖。
圖7是依據本發明一實施例之於一接收端之訊息丟棄的運作流程圖。
圖8是依據本發明之一實施例之應用於一關鍵影格請求程序之傳送端與接收端的一高層方塊圖。
圖9是依據本發明一實施例之對丟棄之影像影格之一關鍵影格請求的時序圖。
圖10是依據本發明一實施例之一訊息丟棄機制的時序圖。
圖11是依據本發明一實施例之於該接收端遺失回復的流程圖。
圖12是依據本發明一實施例之對一遺失回復協議的一時序圖。
為能讓 貴審查委員能更瞭解本發明之技術內容,特舉較佳具體實施例說明如下。
本發明之實施例係針對互動式即時媒體提出一傳輸協議。
圖1是依據本發明一實施例之一分散式客戶端-伺服器電腦系統支援互動式即時媒體應用程式的方塊圖。電腦系統1000包括一或多個伺服器電腦101與一或多個配設在一電腦程式產品131之用戶裝置103。電腦程式產品131可提供在一暫時性或非暫時性電腦可讀取媒體;然而,在一特定實施例中,係提供在一非暫時性電腦可讀取媒體,例如,永久性之(即,非易失性)儲存裝置、揮發性記憶體(例如,隨機存取記憶體)或是多種其他已知之非暫時性電腦可讀取媒體。
用戶裝置103包括中央處理單元(CPU)120,記憶體122與儲存裝置121。用戶裝置103亦包括一輸入與輸出(I/O)次系統(未繪示於圖中)(例如包括,一顯示器或一觸控顯示器、鍵盤、方向按鍵(d-pad)、一軌跡球、觸控板、操縱桿、麥克風、與/或其他用戶介面裝置與相關的控制器電路與/或軟體)。用戶裝置103可包括任一型式之可提供媒體內容之電子裝置。例如包括桌上型電腦與可攜式電子裝置,像是行動電話、智慧型手機、多媒 體播放器、電子閱讀器、平板電腦/觸控板、筆記型電腦或膝上型電腦、智能電視、智能手錶、頭盔顯示器、以及其它通訊設備。
伺服器電腦101包括中央處理單元CPU110,儲存裝置111與記憶體112(以及可包括一未繪示之I/O次系統)。伺服器電腦101係為可承載電腦程式產品131以與一或多個客戶端電腦進行通訊之任何計算裝置,例如,通過網絡之用戶裝置103;例如,網路102(例如,網際網路)。伺服器電腦101經由網際網路來與一或多個客戶端電腦進行通訊,且可應用例如是網際網路協議集(Internet protocol suite,TCP/IP),超文件傳輸協議(Hypertext Transfer Protocol,HTTP)或HTTPS(SSL-based HTTP),即時傳訊協議(instant-messaging protocols),或其他協議。
記憶體112與122可包括任一已知電腦記憶體裝置。儲存裝置111與121可包括任一已知電腦儲存裝置。
儘管未繪出,記憶體112與122與/或儲存裝置111與121亦可包括任一可分別被伺服器電腦101與用戶裝置103存取之數據儲存設備,例如是任一可刪除或攜帶之記憶體,(例如,快閃記憶體或外接硬盤裝置),或任一藉由第三方承載之數據儲存裝置(例如,雲端儲存裝置),在此不做任何限制。
一或多個用戶裝置103與一或多個伺服器電腦101經由該網路102存取與進行通訊。網路102包括一有線或無線連接,包括一廣域網路(WANs)與蜂巢式(cellular)網路或任一其他型式之用於與裝置間通訊之電腦網路。
在該繪示之實施例中,電腦程式產品131實際係表示電腦程式產品或分別用於伺服器101與用戶裝置103執行的部分電腦程式產品。電腦程式產品131之一部分係載於裝置103之記憶體122以生成並發送ACK與NACK封包以回應自伺服器101接收之數據封包,該ACK、NACK與數據封包係與於此進一步說明之本發明請求的協議相符合。電腦程式產品131之一部分係載於伺服器101之記憶體112,以應用於ACK與NACK數據封包接收之資訊來有效控制數據封包之排隊與發送,以符合於此進一步說明之本發明請求之協議。
圖2是依據本發明一實施例之一應用層傳輸協議與其他協議層間的協議層圖。一般而言,在網際網路與應用標準化網際網路協議集之網路中,傳輸層駐留在該網路層(IP layer)上方與該應用程式層下方。傳輸層協議所提供之服務包括壅塞控制、可靠性(錯誤控制)與有序傳遞。使用在網際網路之標準化傳輸層協議包括傳輸控制協議(TCP)與用戶資料通訊協議 (UDP)。如所述,TCP或UDP無法完全滿足互動式即時媒體應用程式之請求。
本發明一較佳實施例係對互動式即時媒體提供一基於UDP之應用程式分層傳輸協議。如圖2所示,在此實施例中,互動式即時媒體傳輸協議應用於網際網路堆棧之應用程式層,並應用於該傳輸層之一底層標準化UDP協議的服務。此實施例之優點係,其可憑藉該標準化UDP協議來進行基本的傳輸層服務以及集中於該應用層傳輸協議以特別針對互動式即時媒體之需求提供服務。
在其他實施例中,該互動式即時媒體傳輸協議可被視為一單層(monolithic layer)3傳輸協議。在此實施例中,該互動式即時媒體傳輸協議提供除了互動式即時媒體需求之專用服務外之基本的傳輸層服務(例如是一般UDP所提供)。此實施例之優點可包括較佳效率與降低處理時間。
圖3是依據本發明一實施例之應用於一應用層傳輸協議之傳送端與接收端的高層方塊圖。如圖3繪示,該互動式即時媒體傳輸協議包括兩個主要構件,為一傳送端300與一接收端301。該傳送端透過一網路發送數據封包至該接收端,係正常(於不存在錯誤或封包遺失情況)接收所發送之數據封包。該接收端發送確認(acknowledgement,ACK)封包至該傳送端以確 認成功接收數據封包,或發送否定確認(negative ACKnowledgement,NACK)封包至該傳送端以通知該傳送端封包遺失。
如圖3所示之自該接收端側之該應用程式至該傳送端側之該應用程式的一“頻帶外”數據路徑。此數據路徑例如可作為一TCP連接的應用。該頻帶外數據路徑例如可被使用於,通知該發送應用程式進行訊息丟棄,其係已發生於部分之訊息丟棄程序(如下所述)。
在一些實施例中,傳送端300與發送即時媒體資訊之構件相關聯,即時媒體資訊例如是影像與音頻串流。傳送端300例如可與一伺服器電腦相關聯,其例如是圖1繪示之伺服器電腦101。伺服器電腦101例如可為一遊戲雲端伺服器。傳送端300可視為於伺服器電腦101運行之軟體,或一硬體與軟體之組合。
在一些實施例中,接收端301可與接收即時媒體資訊之一構件相關聯,即時媒體資訊例如是影像與音頻串流。例如,如圖1所示,接收端301可被視為與用戶裝置103相關聯。用戶裝置103可例如為一PC,智慧型手機,或智能電視。接收端301可視為於運行於用戶裝置103之軟體,或一硬體與軟體之組合。
在一些實施例中,伺服器電腦101可包括一或多個傳送端300之實例與一或多個接收端301之實例。在一些實施例中,客戶端裝置103可包括一或多個傳送端300之實例與一或多個接收端301之實例。
在本發明互動式即時媒體傳輸協議之一較佳實施例中,其可被用以自客戶端裝置103發送控制資訊至伺服器電腦101,且亦自伺服器電腦101傳遞串流音頻與/或影像至客戶端裝置103。
數據封包410、ACK封包420與NACK封包430之結構係詳細繪示於圖4中。
一數據封包410係輸送數據(未繪示)至一應用程式,或自一應用程式輸送數據。例如,數據封包410可輸送一“訊息區塊”的數據,“訊息區塊”係一訊息的部分。訊息是可被一應用程式處理之最小數據單元,只有當整個訊息被接收到才能被應用程式處理,不完整的訊息是無法被處理的。一訊息可例如為一影像影格或一音頻影格。一訊息可被劃分至多個訊息區塊,且每一訊息區塊係透過一UDP數據封包發送。所有屬於同一訊息之多個數據封包係具有相同的訊息序號。該壅塞控制協議係僅著重封包遺失,其可用來計算該允許發送速率。
每一個數據封包410、ACK封包420與NACK封包430包括一般的網路通訊協議地址標頭(IP標頭)401與一般的用戶資料訊息協定標頭(UDP標頭)402以及現將說明之附加標頭資訊。
封包序列411係該數據封包410之序號。封包序號411係於每一數據封包增加遞增一次,且用於該壅塞控制協議(如下所述)之遺失檢測。
訊息區塊序列412係一訊息區塊之該序號,其係每一訊息區塊遞增。訊息區塊序列412係用於訊息之重新組合與遺失回復。
訊息序列413係此訊息區塊所屬之該訊息之序號。
丟棄訊息序列414被用於該訊息丟棄特性,以通知該接收端丟棄早於此序列之多個訊息。
每一個重傳之數據封包係具有一NACK序列415,係對應相關聯之NACK請求的序號。NACK序列415係用於重傳數據封包之遺失檢測與回復。
RTT416係一估計之往返時間。RTT416係用以決定在該壅塞控制協議之壅塞間隔。
時間戳值417紀錄此封包之發送時間。時間戳值417係用於計算該壅塞控制協議之排隊延遲。
TTL418係此訊息應保留於該接收緩衝器之剩餘時間,係應用於訊息丟棄特性中。
本發明實施例之自該接收端發送至該傳送端的ACK封包420係用以提供部分之該壅塞控制協議的反饋。
回波序列421係所接收之數據封包之最大序號,其係用以計算在該壅塞控制協議之往返時間(RTT)。
累計ACK422係一訊息區塊序號,且標示出早於此訊息區塊序號之所有訊息區塊係已被接收。
壅塞事件率423係藉由該接收端計算,且用於在該壅塞控制協議中之允許發送速率的計算。
接收速率424係藉由該接收端來量測,且用於在該壅塞控制協議中之允許發送速率的計算。
NACK封包430係藉由該接收端來發送以請求遺失訊息區塊的重傳。一NACK封包可具有一或多個NACK請求。每一個NACK請求有一序號,其係對應一遺失訊息區塊。
在此NACK封包中,NACK序列431係為該些NACK請求之最小序號。此序號可協助檢測重複之NACK請求與已重傳數據封包之遺失。
多個遺失塊,例如是遺失塊432,係指出該些訊息區塊之一連續序號範圍。
實行於本發明實施例之各種方法其數據封包、ACK封包與NACK封包的使用將在下文中做詳細說明。
如上所述,本發明之傳輸協議是藉由數種方法來共同達成即時互動媒體所要求的低延遲。
具體地說,本發明將揭露壅塞控制、發送緩衝器排隊延遲之控制、在該接收端之訊息丟棄與錯誤控制之方法。每一個方法將參照相應的圖式依序說明。
值得注意的是,當該些方法係用於一起作業以滿足即時互動媒體之該延遲請求時,一些實施例中之方法可個別使用,或進行各式組合,或以其他協議或方法來組合。
壅塞控制。圖5描述關於本發明一較佳實施例之一壅塞控制程序。一般而言,較佳之壅塞控制方法係基於延遲,而非TCP之基於遺失的壅塞控制。該基於延遲的方法係提供多個優點,例如是一平滑發送速率與在網路緩衝器之較低排隊延遲。
於圖5中,於該接收端之步驟係描述於該圖式之右手邊,而於該傳送端之步驟係描述於該圖式之左手邊。起始於該圖之右上方,數據封包抵達該接收端,每一個數據封包包括一序號與一時間戳值。於步驟520,進行遺失檢測。在序號之一中斷係標示出封包遺失。於步驟521,該時間戮值可用以量測相對單向排隊延遲。封包之高遺失,增加了排隊延遲而視為壅塞之指示。於步驟522,壅塞間隔(壅塞事件間之時間週期)係接著定義。於步驟524,計算一加權平均後之壅塞間隔。該壅塞間隔之倒數係該壅塞事件率。於步驟525,生成具有該壅塞事件率、接收速率以及所接受之最新的序號的一ACK封包,且每一RTT(round trip time)發送回該傳送端。該ACK封包中發回之該序號係稱為一“回波序號”,係用以計算RTT。
用以計算該加權平均壅塞事件率之一加權平均濾波器係使所量測之壅塞事件率能平滑地改變,係有助於一平滑發送速率。
於該傳送端中,該回波序號係接著用於RTT之計算。於該傳送端,RTT樣本係於步驟510中接收,而於步驟511中,係進行一“平滑化”RTT之計算。於步驟512,該“平滑化”RTT與該壅塞事件率係被一TCP傳輸量方程式用來計算該允許發送速率,而於步驟513中輸出。亦即,該當前接收速率係被監測。較佳地,該允許發送速率被限制為不超過兩倍的接收速率。於步驟515,對發出之封包進行排程,且依據該允許發送速率進行發送。
在一較佳實施例中,該TCP傳輸量方程式係於RFC5348章節3.1中規定。此方程式係: 其中:X_Bps係位元組/秒(bytes/s)為單位之TCP平均傳輸速率
s係以位元組(bytes)為單位之資料段長度值(不包含IP與傳輸協議標頭)。
R係以秒(seconds)為單位之往返時間。
p係介於0與1.0之間的遺失事件率,即遺失事件之數量與所傳送之封包數量之比。
t_RTO係以秒(seconds)為單位之該TCP重傳逾時值。
b係由單個TCP的確認應答的最大封包數量。
在一較佳實施例,該壅塞控制方法基本上係符合dflow,如Internet-Draft draft-ohanlon-rmcat-dflow-02所述。
動態發送緩衝器。圖6描述於該發送緩衝器之排隊延遲控制方法。此方法係藉由減少在該發送緩衝器之排隊延遲以有助於減少點對點延遲。
於步驟610,該應用程式生成一訊息(例如,一影像編碼器生成一影像影格)。於步驟620,該應用程式請求發送該訊息。於步驟630,計算該發送緩衝器之排隊延遲。自該應用程式之觀點來看,此為新訊息需要等待直到所有待定數據被發送之時間。此延遲時間係等於待定數據大小除以該當前發送速率(如上述之該壅塞控制方法)。待定數據包括尚未發送之待定封包以及從NACK請求之待定重傳。
於步驟640,比較所計算之排隊延遲與一預設之門檻值。如該延遲未超過該門檻值,則於步驟650中,該新訊息係排隊進入該發送緩衝器。 如所計算之排隊延遲超過該門檻值,該新訊息不附加至該發送緩衝器,而該應用程式必須回到步驟620重新執行。在一實施例中,該應用程式會被明確告知再次執行之需求。
訊息丟棄。圖7-10描述該接收端中之訊息丟棄。此方法係藉由減少新數據被舊數據阻塞之時間量而有助於減少點對點之延遲。該方法讓應用程式在一訊息允許嘗試傳輸或重傳的時間上指定一時間限制。
二個機制係用於該接收端以檢測未在一指定的時間限制內接收之訊息。該第一機制係在每一個數據封包之一訊息丟棄序列欄,係通知該接收端丟棄所有早於該序列之訊息。亦請參閱圖4數據封包之欄位設計。未在一指定時間限制內確認之一ACK訊息會接著由該發送緩衝器移除,且該訊息丟棄序號會在一新的數據封包中進行更新。針對被移除之訊息的重傳請求則會被忽略。該第二機制係在每一個數據封包(“存留時間”(time-to-live)或“TTL”欄位,請見圖4)之一時間限制欄,其係允許該接收端來決定該訊息應停留在該接收緩衝器之時間。超過該指定時間限制之訊息係會自該接收緩衝器移除(丟棄)。
於互動式即時媒體應用程式中,可指定特別是影像影格之時間限制。對於delta影格,該時間限制係基於影格-速率。可選擇地,該影格具 有每秒A*1000/影格之一時間限制,其中A係一常數。可選擇地,該限制係可依據一影格間隔。於此,針對該第i影格之該時間限制係B*(t(i)-T(I-1),其中t(i)係該第i影格之發送時間,而B係一常數。對於關鍵影格(內視影格),會指定一較高限制。對於影像影格,丟棄之影格會造成之後的影像失真,並持續至下一關鍵影格被接收。當關鍵影格間之時間過大,此可產生一不良之用戶經驗。為進行修正,可發送一通知至頻帶外給該編碼器以請求一關鍵影格,而停止該影像失真之影像。
一般而言,關於丟棄訊息之通知係例如可藉由使用一TCP連接來發送至一頻帶外之應用程式。
接著,該訊息丟棄方法將參照圖7來做更詳細的說明。於步驟710,於該接收端接收一數據封包,該數據封包具有在該丟棄訊息序列欄中之一序號值。於步驟720,丟棄該接收緩衝器中早於該丟棄訊息序號之所有訊息。於步驟730,若無封包未接收之訊息,則該過程終止。若有至少一封包未接收之訊息,於步驟740中,確認具有封包未被接收之該最早訊息M。於步驟750,若訊息M之該時間限制不可用,則該過程終止。若可取得訊息M之該時間限制,則進行步驟760。於步驟760,若訊息M尚未於該接收緩衝器中超過所指定之時間限制,則該過程終止。若訊息M已於該接收 緩衝器中超過所指定之時間限制,接這進行步驟770,丟棄訊息M。在一實施例(未繪示)中,該應用程式會經由一頻帶外通知來接著明確告知該訊息丟棄。
圖8是依據本發明之一實施例之應用於一關鍵影格請求程序之傳送端與接收端的一高層方塊圖。如圖8所示,接收端側之應用層傳輸協議823係配置以通知影像接收器824一訊息丟棄事件。在一些實施例中,影像接收器824係接著配置以請求影像編碼器815來發送一新的影像影格,例如是一關鍵影格。對一影像影格(例如是一關鍵影格)之該請求係可被發送,在一些實施例中,係經由一維持於傳送端側之TCP構件812與接收端側之TCP構件822間之TCP連接。該關鍵影格請求程序可被用於停止由丟棄訊息(影像影格)引起之影像失真痕跡。
圖9是依據本發明一實施例之對丟棄之影像影格之一關鍵影格請求的時序圖。
於圖9之步驟911,影像編碼器910對一影像關鍵影格編碼以經由影像傳送端920傳輸。該關鍵影格會接著經一網路利用傳送端側之傳輸協議構件930的該服務與傳輸協議構件940之接收端側來發送。該關鍵影格接著被影像接收端950接收,並送交至影像解碼器960,其係解碼於步驟 961以顯示於例如是,一電視、行動裝置或遊戲機。接著,於步驟912,一delta影格(由前一個關鍵影格編碼之影像編碼差分)係同樣地被編碼與發送。一第二delta影格係被編碼並發送於步驟913。然而,下一個delta影格,則發送於步驟914,且於步驟941中通過該接收端側之傳輸協議構件940來被丟棄。於步驟942,傳輸協議構件940通知丟棄該影像接收端950之影格。同時,於步驟964,一影像之影像失真起始於該接收端。於步驟917,影像編碼器910根據影像接收端950之請求(請求係以反向之虛線箭頭標示出)對一新關鍵影格編碼。於步驟918,發送該新的關鍵影格,且於步驟966中被影像解碼器960接收,從而停止該影像之影像失真。
接著,將參照圖10之時序圖來對一訊息丟棄作詳細說明。
於步驟1031,傳送端1030發送包括一訊息區塊之訊息1至接收端1040,並轉送該訊息至應用程式1050。
於步驟1032,傳送端1030發送訊息2之一第一訊息區塊至接收端1040,其係保持於在該接收緩衝器。
於步驟1033,傳送端1030發送訊息2之一第二訊息區塊,但此訊息區塊係遺失。
於步驟1034,傳送端1030發送訊息3之一第一訊息區塊。此數據封包包括一訊息丟棄欄,係具有數值1,意指保持在該接收緩衝器之具一早期訊息丟棄欄的任何訊息其任一封包應被丟棄。
同時,於步驟1035,順利地發送與接收訊息3之該第二訊息區塊,且訊息3會轉送至該應用程式。
於步驟1036,順利地發送與接收訊息4之一第一訊息區塊。此數據封包包括一訊息丟棄欄,係具有數值2,意指訊息2不應被保持在該接收緩衝器,且應被丟棄。針對訊息4之該TTL計時器將啟動,且將於100ms之後到期。
於步驟1037,發送訊息4之一第二訊息區塊,但其係遺失。訊息4係具一時間單位值為100之TTL欄。當此時間到期,訊息4係自該接收緩衝器丟棄,且發送一通知至該應用程式。
於步驟1038,順利地發送與接收包括一訊息區塊之訊息5。訊息5係被保持以等待訊息4,且未立即應用至該應用程式。若該訊息尚未被接收,針對訊息4之該TTL計時器將會到期。訊息接著會被丟棄,且發送一通知至該應用程式。訊息5會接著應用至該應用程式。
於步驟1039,發送與接收訊息6之一訊息區塊。此訊息具有數值4之訊息丟棄設定,但未有一早期訊息序號在該緩衝器中,故未有丟棄作業。
錯誤控制。該錯誤控制方法(遺失回復協議)係依據於該接收端中之基於間隙之遺失檢測。參考圖11與12。當該些遺失被檢測出(基於序號中斷),發送一NACK封包來請求該傳送端重傳該遺失之封包。一NACK封包載有該遺失之封包的序號範圍以及該NACK請求之一序號,係依此NACK之遺失封包遞增。當該傳送端接收該NACK,係查驗是否為一重複之請求,且接著重傳該遺失之數據封包。每一個重傳之數據封包係載有一NACK序號,藉由每一個重傳封包遞增。該接收端可查驗在該數據封包中之NACK序號的該間隙以檢測重傳之封包的遺失。若重傳封包再次遺失,會發送具一新的NACK序號的一新的NACK請求。
圖11是依據本發明一實施例之於該接收端遺失回復的流程圖。圖11包括兩種主要方法:1)發送於第一次之多個訊息區塊(或數據封包)的遺失檢測(參考下方虛線框中之多個步驟);與2)重傳多個訊息區塊(數據封包)之遺失檢測(參考上方虛線框中之多個步驟)。
於步驟1110,接收一數據封包。於步驟1113,執行一測試來查看是否該接收數據封包之該NACK序號大於先前接收之該最大NACK序號。若無,則控制進入至實行訊息區塊(數據封包)之遺失檢測的該下框。於步驟1117,執行一測試來查看是否此封包之該訊息區塊序號具有一間隙,其有先前接收之該最大訊息區塊序號。若是,該第一次發送之部分訊息區塊係已遺失。於步驟1118,對應該遺失訊息區塊之新的NACK請求會被附加至該遺失之列表(待定NACK請求之列表)。
於步驟1120,該新的NACK請求係發送至該傳送端。在一NACK封包中,除非於步驟1119檢測到之對應訊息區塊的一或多個NACK請求係一到期訊息之部分,否則此NACK請求將被移除。因此,功效上,該訊息丟棄程序(如上所述)係於該遺失回復協議設置一限制,以回復遺失之數據。
返回至步驟1113,若該接收數據封包具有大於先前接收最大NACK序號之一NACK序號,意指最後一個數據封包被接收,部分訊息區塊已重傳。
於步驟1114,係依據NACK序號中之任一間隙來進行決定,是否任一重傳訊息區塊已遺失。若是這樣,於步驟1115,新的NACK請求會被附加至該遺失列表。於步驟1116,自該遺失列表移除所有早於且包括該 NACK序號之NACK請求。接著控制進入之前實行遺失訊息區塊測試的框1117。
錯誤控制將參照圖12之時序圖來做進一步地詳細說明。
圖12繪示符合本發明實施例之錯誤控制程序之一傳送端1200與一接收端1201間之數據封包與NACK封包交換。針對每一個數據封包,係標示出該訊息區塊序號與NACK序號值。針對每一個NACK封包,係標示出該NACK序號與遺失塊值(封包遺失之序號範圍)。
特別地是,於該接收端之遺失檢測係被驗證。步驟1262係第一次發送之訊息區塊的遺失檢測之例子。步驟1266與1269描述重傳訊息區塊之遺失檢測。
於步驟1210-1215,發送具有訊息區塊序號1、2、3、4、5與6之數據封包。這些中,數據封包1、2與6係會被順利地接收,但封包3、4與5會遺失。於步驟1262,該接收端檢測訊息區塊序號之中斷,以及於步驟1263,向該傳送端發送具有值為1之一NACK序列以及值為[3,5]之遺失塊的一NACK封包。
於步驟1216,該傳送端接收該NACK封包。於步驟1217-1219,該傳送端重新發送數據封包3、4與5。重新發送之封包3係載有該NACK序號1。該NACK序號係於每一個重新發送封包遞增,以讓重新發送之數據封包4與5分別載有NACK序號2與3。重新發送之數據封包4係遺失,其係藉由該接收端於步驟1266自NACK序號之中斷來檢測出。一具序號4之新的NACK與遺失塊[4,4]會接著產生,且發送至該傳送端。
於步驟1221,重新發送數據封包4,但其會再次遺失。該遺失會在步驟1269被該接收端檢測出,並會在步驟1270發送一具NACK序列5與遺失塊4,4之NACK,其會於步驟1224被傳送端1200接收。
於步驟1222與1223,順利地發送具有該NACK序號之數據封包7與8,其中該NACK序號剩下(remaining)4。
於步驟1225,數據封包4會再次重新發送,現係採用NACK序號5。此時間數據封包4係會順利地被接收。
於步驟1226,順利地發送一具NACK序列之數據封包9,其中該NACK序列係剩下(remaining)5。
如上所述,該“遺失列表”係待定NACK請求之一列表。每一個NACK請求具有一獨特之NACK序號與一遺失訊息區塊之該序號。每當檢測到新的封包,NACK請求係會“附加”在該遺失列表中。該遺失列表之作業係可經由如下之圖12的說明來理解: 在圖12中,三個數據封包(訊息區塊)係接收於步驟1260、1261與1262。該遺失之訊息區塊3、4、5,係被檢測出。三個項目(1,3)、(2,4)、(3,5)會附加在該遺失列表。該遺失列表接著變成[(1,3),(2,4),(3,5)]。其可被更緊湊地表示如[(1,[3,5])]。
該待定NACK請求係會被(確認)自該遺失列表移除當1)該訊息區塊請求被順利地接收或2)該重傳訊息區塊再次遺失。在此例中,係會附加新的NACK請求。
例如,於步驟1264,接收回應NACK請求1之該重傳訊息區塊3,其確認該接收端已順利地回應NACK請求1,且被自遺失列表移除。於步驟1266,NACK請求3亦順利地被回應,而NACK請求2因重傳訊息區塊4係遺失而失效。NACK請求2與3都會被自遺失列表移除。於訊息區塊4之一新的NACK請求(4,4)會附加至遺失列表。
附加實施例
一方面,一實施例提供一種經一網路自一傳送端傳送至一接收端之封包低延遲傳輸,包括:於一或多台連接該網路之電腦,傳輸一數據封包;於該傳送端中,接收一確認封包,其用以輸送一壅塞事件率以及一回波序號;於該傳送端中,依據該回波序號計算一平滑化往返時間;於該傳送端中,依據一壅塞事件率與平滑化往返時間,應用一TCP傳輸量方程式來計算一允許發送速率;於該傳送端中,計算一發送緩衝器之一當前排隊延遲;於該傳送端僅於該當前排隊延遲未超過一門檻值時,一應用程式請求發送一訊息來排隊進入該發送緩衝器;於該傳送端中,於一數據封包插入一時限值,該時限值係發出訊號至該接收端,傳達相關訊息於移除前應停留在該接收緩衝器之時間的一限制;於該傳送端中,於一數據封包插入一訊息丟棄序號,該訊息丟棄序號係發出訊號至該接收端來丟棄具一早期訊息丟棄序號的所有訊息;與於該傳送端中,接收標示出一遺失封包的序號範圍的一NACK封包,且重傳遺失之封包。亦揭露儲存在一非暫態性電腦可讀取媒體之一電腦程式產品,當藉由一或多個電腦讀取或執行時,實行上述揭露之方法。亦揭露一傳送端,其以低延遲方式經一網路傳輸封包至一接收端,且用於接收輸送一壅塞事件率以及一回波序號之一ACK封包;依據該回波序號計算一平滑化往返時間;依據一壅塞事件率與平滑化往返時間,以應用一TCP傳輸量方程式來計算一允許發送速率;僅於該當 前排隊延遲未超過一門檻值,計算一當前於一發送緩衝器之排隊延遲與一應用程式請求發送一訊息來排隊進入該發送緩衝器;以及接收標示出一遺失封包的序號範圍的一NACK封包,且重傳該遺失之封包。
另一方面,揭露一種經一網路自一傳送端傳送至一接收端之封包低延遲接收方法,包括:於一或多台連接該網路之電腦:接收一數據封包;於該接收端中,藉由檢測序號之中斷以將封包遺失之檢測表示為壅塞;於該接收端中,依據一所接收之數據封包中的一時間戳值來將高排隊延遲之檢測表示為壅塞;於該接收端中,計算一壅塞事件率,且發送一ACK封包至該傳送端,該ACK封包係輸送該壅塞事件率以及一回波序號,其係輸入來計算允許發送速率;於該接收端中,依據每一所接收之數據封包的一時限值以及一訊息停留在一接收緩衝器之一最大允許時間來判斷,而移除超過該最大允許時間之任一訊息;於該接收端中,接收具有一訊息丟棄序號之一數據封包,並丟棄早於與該數據封包相關之一訊息的所有訊息;以及在該接收端中,經由序號間隙確認所遺失之封包,當檢測出封包遺失,發送一NACK封包至該傳送端,以要求該傳送端重傳該所遺失之封包。亦揭露儲存在一非暫態性電腦可讀取媒體之一電腦程式產品,當藉由一或多個電腦讀取與執行時,實行上述揭露之方法。亦揭露一傳送端,其以低延遲方式經一網路傳輸封包至一接收端,該傳送端包括:一壅塞控制,模組 用以接收一ACK封包,該ACK封包係輸送一壅塞事件率以及一回波序號,依據該回波序號計算一平滑化往返時間,依據該壅塞事件率與該平滑化往返時間,應用一TCP傳輸量方程式來計算一允許發送速率;一發送緩衝器;一排隊控制模組,用以計算於該發送緩衝器之一當前排隊延遲,並僅於該當前排隊延遲未超過一門檻值時,一應用程式請求發送一訊息來排隊進入該發送緩衝器;以及一錯誤控制模組,用以接收標示出一遺失封包的序號範圍的一NACK封包,其中該傳輸層係用以引導該傳送端來重傳該遺失之封包。亦揭露經一網路以低延遲方式自一傳送端接收封包之接收端,該接收端包括:一壅塞控制模組,藉由檢測封包遺失或高排隊延遲來檢測壅塞,且發送一ACK封包至該傳送端,該ACK封包係輸送一壅塞速率事件以及一回波序號;一訊息丟棄模組,依據每一所接收之數據封包的一時限值以及一訊息停留在一接收緩衝器之一最大允許時間來判斷,而移除超過該最大允許時間之任一訊息,該訊息丟棄模組更用以接收具有一訊息丟棄序號之一數據封包,並自該接收緩衝器丟棄早於與該數據封包相關之一訊息的所有訊息;以及一錯誤控制模組,經由序號間隙確認所遺失之封包,當檢測出封包遺失,發送一NACK封包至該傳送端,以要求該傳送端重傳該所遺失之封包。
雖然本文只對本發明的幾個實施例進行了描述,任何熟於此項技藝之人士均可在不違背本發明之技術原理及精神下,對實施例作修改與變化。因此,所有這樣的修改和變化將都包括在所要求保護的發明的範圍之內。
需注意的是,上述僅為實施例,而非限制於實施例。譬如此不脫離本發明基本架構者,皆應為本專利所主張之權利範圍,而應以專利申請範圍為準。
510-515、520-525‧‧‧步驟

Claims (18)

  1. 一種經一網路自一傳送端傳送至一接收端之封包低延遲傳輸方法,包括:於一或多台連接該網路之電腦,傳輸一數據封包;在該傳送端中,接收一確認(Acknowledgement,ACK)封包,其用以輸送一壅塞事件率(congestion event rate)以及一回波序號(echoed sequence number);在該傳送端中,依據該回波序號計算一平滑化往返時間(smoothed round-trip time);在該傳送端中,依據該壅塞事件率以及該平滑化往返時間,應用一傳輸控制協議(Transmission Control Protocol,TCP)傳輸量方程式(throughput equation)來計算一允許發送速率;在該傳送端中,計算一發送緩衝器之一當前排隊延遲;在該傳送端中,僅於該當前排隊延遲未超過一門檻值(threshold)時,一應用程式請求發送一訊息來排隊進入該發送緩衝器;在該傳送端中,於一數據封包插入一時限值(time limit value),該時限值係發出訊號至該接收端,傳達相關訊息於移除前應停留在一接收緩衝器之時間的一限制;在該傳送端中,於一數據封包插入一訊息丟棄(drop)序號,該訊息丟棄序號係發出訊號至該接收端來丟棄具一早期訊息丟棄序號的所有訊息;以及在該傳送端中,接收標示出一遺失(lost)封包的序號範圍的一否定確認(NACK)封包,且重傳每一個非屬一丟棄訊息之所遺失的封包。
  2. 如申請專利範圍第1項之方法,其中該網路為網際網路(Internet)。
  3. 如申請專利範圍第1項之方法,係運行在用戶資料通訊協議(User Datagram Protocol,UDP)之一應用層傳輸協議。
  4. 如申請專利範圍第1項之方法,其中”接收一ACK封包”、”計算一平滑化往返時間”以及”應用一TCP傳輸量方程式”為壅塞控制步驟,壅塞控制步驟係實質符合dflow-02。
  5. 如申請專利範圍第1項之方法,其中該TCP傳輸量方程式係RFC 5348,章節3.1所規定。
  6. 如申請專利範圍第1項之方法,其中,若一訊息因過長的排隊延遲未排隊進入該發送緩衝器,該應用程式藉由一回叫(callback)以明確通知再次發送該訊息。
  7. 如申請專利範圍第1項之方法,其中,若一訊息因過長的排隊延遲未排隊進入該發送緩衝器,該應用程式可再次發送該訊息。
  8. 一種經一網路自一傳送端傳送至一接收端之封包低延遲接收方法,包括:於一或多台連接該網路之電腦,接收一數據封包;在該接收端中,藉由檢測序號之中斷以將封包遺失之檢測表示為壅塞;在該接收端中,依據一所接收之數據封包中的一時間戳值來將高排隊延遲之檢測表示為壅塞;在該接收端中,計算一壅塞事件率,且發送一ACK封包至該傳送端,該ACK封包係輸送該壅塞事件率以及一回波序號,其係輸入來計算允許發送速率;在該接收端中,依據每一所接收之數據封包的一時限值以及一訊息停留在一接收緩衝器之一最大允許時間來判斷, 而移除超過該最大允許時間之任一訊息;在該接收端中,接收具有一訊息丟棄序號之一數據封包,並丟棄早於與該數據封包相關之一訊息的所有訊息;以及在該接收端中,經由序號間隙確認所遺失之封包,當檢測出封包遺失,發送一NACK封包至該傳送端,以要求該傳送端重傳該所遺失之封包。
  9. 如申請專利範圍第8項之方法,其中該網路為網際網路。
  10. 如申請專利範圍第8項之方法,係運行在運行在UDP之一應用層傳輸協議。
  11. 如申請專利範圍第8項之方法,其中”檢測封包遺失”、”檢測高排隊延遲”以及”計算一壅塞事件率”為壅塞控制步驟,壅塞控制步驟係實質符合dflow-02。
  12. 如申請專利範圍第8項之方法,更包括自該接收端發送一頻帶外(out-of-band)請求至一影像編碼器來要求以一關鍵影格(key frame)取代被丟棄之一關鍵影格。
  13. 如申請專利範圍第12項之方法,其中對該影像編碼器之該要求係經由一TCP連接(TCP connection)發送。
  14. 如申請專利範圍第8項之方法,其中該壅塞事件率係一近期壅塞間隔其加權平均的倒數。
  15. 於一非暫態性電腦可讀取媒體之一電腦程式產品,包括:由一計算機處理器經一網路以低延遲傳輸方式自一傳送端傳送數據封包至一接收端所執行的多個指令,該些指令係:傳輸一數據封包;在該傳送端中,接收輸送一壅塞事件率以及一回波序號之一ACK封包;在該傳送端中,依據該回波序號計算一平滑化往返時間;在該傳送端中,依據該壅塞事件率以及該平滑化往返時間,應用一TCP傳輸量方程式來計算一允許發送速率;在該傳送端中,計算一發送緩衝器之一當前排隊延遲;在該傳送端中,僅於該當前排隊延遲未超過一門檻值時,一應用程式請求發送一訊息來排隊進入該發送緩衝器;在該傳送端中,於一數據封包插入一時限值,該時限值係發出訊號至該接收端,傳達相關訊息於移除前應停留在一接收緩衝器之時間的一限制; 在該傳送端中,於一數據封包插入一訊息丟棄序號,該訊息丟棄序號傳遞訊號至該接收端來丟棄具一早期訊息丟棄序號的所有訊息;以及在該傳送端中,接收標示出一遺失封包的序號範圍的一NACK封包,且重傳每一個非屬一丟棄訊息之所遺失的封包。
  16. 於一非暫態性電腦可讀取媒體之一電腦程式產品,包括:由一計算機處理器經一網路以低延遲傳輸方式自一傳送端接收數據封包之一接收端所執行的多個指令,該些指令係:接收一數據封包;該接收端藉由檢測序號之中斷以將封包遺失之檢測表示為壅塞;該接收端依據一所接收之數據封包中的一時間戳值來將高排隊延遲之檢測表示為壅塞;該接收端計算一壅塞事件率,且發送一ACK封包至該傳送端,該ACK封包係輸送該壅塞事件率以及一回波序號,其係輸入來計算允許發送速率;該接收端依據每一所接收之數據封包的一時限值以及 一訊息停留在一接收緩衝器之一最大允許時間來判斷,而移除超過該最大允許時間之任一訊息;該接收端接收具有一訊息丟棄序號之一數據封包,並丟棄早於與該數據封包相關之一訊息的所有訊息;以及該接收端經由序號間隙確認所遺失之封包,當檢測出封包遺失,發送一NACK封包至該傳送端,以要求該傳送端重傳該所遺失之封包。
  17. 如申請專利範圍第15項之電腦程式產品,其中該些指令更包括該傳送端接收一關鍵影格請求,且在接收到該關鍵影格請求,藉由發送一個新的關鍵影格來響應。
  18. 如申請專利範圍第16項之電腦程式產品,其中該些指令更包括當一或多個影像影格於該接收端中被丟棄,該接收端要求傳輸一個新的關鍵影格。
TW105107983A 2015-05-01 2016-03-15 互動式即時媒體之傳輸協議 TWI559717B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/702,353 US9185045B1 (en) 2015-05-01 2015-05-01 Transport protocol for interactive real-time media

Publications (2)

Publication Number Publication Date
TW201640873A TW201640873A (zh) 2016-11-16
TWI559717B true TWI559717B (zh) 2016-11-21

Family

ID=54363602

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105107983A TWI559717B (zh) 2015-05-01 2016-03-15 互動式即時媒體之傳輸協議

Country Status (4)

Country Link
US (1) US9185045B1 (zh)
JP (1) JP6023368B1 (zh)
CN (1) CN105871736B (zh)
TW (1) TWI559717B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9544250B2 (en) * 2013-02-26 2017-01-10 Fastly Inc. Enhanced acknowledgement handling in communication packet transfer
US9696920B2 (en) * 2014-06-02 2017-07-04 Micron Technology, Inc. Systems and methods for improving efficiencies of a memory system
US10992589B2 (en) 2016-01-12 2021-04-27 Qualcomm Incorporated LTE based V2X communication QOS and congestion mitigation
KR102560594B1 (ko) * 2016-05-03 2023-07-27 삼성전자주식회사 무선 통신 시스템에서 패킷을 송신하기 위한 장치 및 방법
CN106101026A (zh) * 2016-06-07 2016-11-09 深圳证券通信有限公司 一种高可靠低延迟的udp多播方法
CN108289284B (zh) * 2017-01-06 2021-05-07 光宝电子(广州)有限公司 传输方法、无线通信系统及电脑系统
CN108810969B (zh) * 2017-04-28 2021-10-26 株式会社Kt 用于发送rlc层状态报告的方法和设备
US10536382B2 (en) * 2017-05-04 2020-01-14 Global Eagle Entertainment Inc. Data flow control for dual ended transmission control protocol performance enhancement proxies
US11736406B2 (en) * 2017-11-30 2023-08-22 Comcast Cable Communications, Llc Assured related packet transmission, delivery and processing
CN110661723B (zh) * 2018-06-29 2023-08-22 华为技术有限公司 一种数据传输方法、计算设备、网络设备及数据传输系统
CN110858930B (zh) * 2018-08-23 2022-03-18 慧与发展有限责任合伙企业 数据帧传输
JP7035955B2 (ja) 2018-10-19 2022-03-15 トヨタ自動車株式会社 サーモスタット及び冷却水の通路構造
CN109462553A (zh) * 2018-10-24 2019-03-12 盛科网络(苏州)有限公司 一种基于时延的动态队列管理芯片实现方法
CN111131210B (zh) 2019-12-16 2021-09-17 维沃移动通信有限公司 数据处理方法及电子设备
US11943125B2 (en) * 2022-01-26 2024-03-26 Dish Network Technologies India Private Limited Discontinuity detection in transport streams
TWI804337B (zh) * 2022-06-02 2023-06-01 晶絡科技股份有限公司 降低封包傳輸延遲的方法
CN115189810B (zh) * 2022-07-07 2024-04-16 福州大学 一种面向低时延实时视频fec编码传输控制方法
KR102516754B1 (ko) * 2022-10-28 2023-03-31 국방과학연구소 트리플-메트릭 우선순위 기반 트래픽 처리 방법 및 장치
CN115695582A (zh) * 2022-10-31 2023-02-03 天翼数字生活科技有限公司 一种低延时传输控制的方法、接收终端和发送终端

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200640168A (en) * 2005-04-01 2006-11-16 Interdigital Tech Corp Method and apparatus for dynamically adjusting a deferred transmission level and a transmission power level in a wireless communication system
TW200803323A (en) * 2006-04-13 2008-01-01 Dolby Lab Licensing Corp Estimating wireless processing device queue length and estimating signal reception quality in a wireless network
TW200835303A (en) * 2006-09-07 2008-08-16 Avocent Huntsville Corp Point-to-multipoint high definition multimedia transmitter and receiver
US20100020689A1 (en) * 2007-01-29 2010-01-28 Bob Tang Immediate ready implementation of virtually congestion free guaranteed service capable network : nextgentcp/ftp/udp intermediate buffer cyclical sack re-use
US20100046370A1 (en) * 2000-06-30 2010-02-25 The Research Foundation Of State University Of New York System and method for fast, reliable byte stream transport
US20130250853A1 (en) * 2012-03-20 2013-09-26 Qualcomm Incorporated Methods and apparatuses to improve round trip time in transfer control protocol using accelerated acknowledgement messages

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104757A (en) 1998-05-15 2000-08-15 North Carolina State University System and method of error control for interactive low-bit rate video transmission
US6438603B1 (en) 1999-04-30 2002-08-20 Microsoft Corporation Methods and protocol for simultaneous tuning of reliable and non-reliable channels of a single network communication link
US7304951B2 (en) 2000-11-21 2007-12-04 North Carolina State University Methods and systems for rate-based flow control between a sender and a receiver
JP4658142B2 (ja) * 2005-11-30 2011-03-23 富士通株式会社 通信装置およびフレーム制御方法
JP2009071537A (ja) * 2007-09-12 2009-04-02 Toshiba Corp データ転送システム及びデータ転送方法
JP5326908B2 (ja) * 2009-07-29 2013-10-30 ソニー株式会社 送信レート制御方法および通信装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100046370A1 (en) * 2000-06-30 2010-02-25 The Research Foundation Of State University Of New York System and method for fast, reliable byte stream transport
TW200640168A (en) * 2005-04-01 2006-11-16 Interdigital Tech Corp Method and apparatus for dynamically adjusting a deferred transmission level and a transmission power level in a wireless communication system
TW200803323A (en) * 2006-04-13 2008-01-01 Dolby Lab Licensing Corp Estimating wireless processing device queue length and estimating signal reception quality in a wireless network
TW200835303A (en) * 2006-09-07 2008-08-16 Avocent Huntsville Corp Point-to-multipoint high definition multimedia transmitter and receiver
US20100020689A1 (en) * 2007-01-29 2010-01-28 Bob Tang Immediate ready implementation of virtually congestion free guaranteed service capable network : nextgentcp/ftp/udp intermediate buffer cyclical sack re-use
US20130250853A1 (en) * 2012-03-20 2013-09-26 Qualcomm Incorporated Methods and apparatuses to improve round trip time in transfer control protocol using accelerated acknowledgement messages

Also Published As

Publication number Publication date
CN105871736B (zh) 2018-05-29
JP6023368B1 (ja) 2016-11-09
US9185045B1 (en) 2015-11-10
JP2016213811A (ja) 2016-12-15
TW201640873A (zh) 2016-11-16
CN105871736A (zh) 2016-08-17

Similar Documents

Publication Publication Date Title
TWI559717B (zh) 互動式即時媒體之傳輸協議
US20160323062A1 (en) Packet recovery in interactive real-time media protocol
US10542064B2 (en) Method, server side and system for computing bandwidth of network transmission of streaming media
EP3108639B1 (en) Transport accelerator implementing extended transmission control functionality
WO2017101503A1 (zh) 一种数据传送方法、发送节点、接收节点及数据传送系统
US9577791B2 (en) Notification by network element of packet drops
EP2661029B1 (en) Avoiding Delayed Data
JP2004007823A (ja) データ伝送方法および装置
CN112436924B (zh) 一种数据传输方法及电子设备
WO2017097201A1 (zh) 一种数据传输方法、发送装置及接收装置
CN111193577B (zh) 使用传输超时的网络系统通信方法及通信装置
US10868839B2 (en) Method and system for upload optimization
WO2016201904A1 (zh) 一种基于tcp的数据传输方法及装置
KR20230002784A (ko) 오디오 및/또는 비디오 콘텐츠 전송을 위한 방법 및 서버
JP7067544B2 (ja) 通信システム、通信装置、方法およびプログラム
EP3664398A1 (en) Network equipment and method for delivering data packets
CN108234089B (zh) 用于低时延通信的方法和系统
CN115766519A (zh) 便携通信设备的数据传输方法及系统
US20240165508A1 (en) Method, apparatuses and systems directed to quality of experience improvement in cloud gaming
KR20150094435A (ko) 단기 신뢰성을 갖는 영상데이터 전송 방법