專利名稱:通過多個網絡發送數據的制作方法
技術領域:
本發明涉及從無線通信系統中,特別是在為通信會話提供至少第一和第二無線訪問技術的通信系統中的無線設備發送數據。
背景技術:
圖I示意性地圖示了一種無線通信系統,其中第一用戶終端2和第二用戶終端4 希望進行通信。本文中,第一用戶終端2被稱為近端或本地終端,而第二用戶終端4被稱為遠端或遠程終端。
通信系統包括根據第一無線訪問技術的第一通信網絡6,例如WiFi。通信系統進一步包括根據第二無線訪問技術的第二通信網絡8,例如WffAN (例如3G或4G)。
圖I示出經由WiFi網絡6建立在第一和第二用戶終端之間的通信會話。在通信會話中,應用將數據尋址到網絡套接口,該套接口是端口號和IP地址的組合。
無線設備具有通過具有多個無線接口(在圖I中的設備的情況下為2個)來經由替代性通信網絡(例如,圖I中的WffAN網絡8)建立通信會話的能力。
在一種無線設備中,通過在設備上執行的應用來生成待發送的數據,例如以用于社交通信,諸如VoIP (互聯網協議電話)呼叫、即時消息傳遞(頂)聊天或運行在會議框架上的實時會議。
圖2圖示了用戶設備2的詳細視圖,其中,在該用戶設備2上執行一個以客戶端 216形式的這種應用。用戶設備2包括中央處理單元(“CPU”)202,諸如屏幕的顯示器204 和諸如小鍵盤206的輸入設備與該中央處理器202相連接。顯示器204可以包括用于將數據輸入到CPU 202的觸摸屏。輸出音頻設備210 (例如揚聲器)和輸入音頻設備212 (例如麥克風)連接到CPU 202。在典型的移動無線設備中,顯示器204、小鍵盤206、輸出音頻設備210和輸入音頻設備212集成到用戶設備2中。CPU 202連接到多個網絡接口 224a、224b 以用于與相應的網絡68進行通信。網絡接口由無線電訪問芯片224提供,該無線電訪問芯片224還執行用于管理接口的無線電控制邏輯。用戶設備104還包括用于存儲數據和應用的存儲器226。
圖2還圖示了執行在CPU 202上的操作系統(OS) 214。運行在OS 214頂部的是客戶端108的軟件棧216。該軟件棧示出客戶端協議層218、客戶端引擎層220和客戶端用戶接口層(UI)222。每個層都負責特定的功能。因為每個層都通常與兩個其他層進行通信,所以它們被視為安排在棧中,如圖2所示。操作系統214管理設備104的硬件資源,并處理經由網絡接口 224a、224b發送的去往和來自網絡106的數據。客戶端軟件的客戶端協議層218與操作系統214進行通信并管理通信系統上的連接。要求更高級別處理的過程被傳遞到客戶端引擎層220,在該客戶端引擎層220,用于生成數據的應用被執行。客戶端引擎220還與客戶端用戶接口層222通信。客戶端引擎220可以被安排為控制客戶端用戶接口層222以經由用戶接口將信息呈現給用戶,并經由用戶接口接收來自用戶的信息。
在現有的設備中,如圖2中所示,存在管理無線接口的連接的兩種可能性。在應用注冊到操作系統而未將IP地址的具體分配指定到網絡套接口的情形下,被選擇用于傳送由軟件棧216中的應用生成的數據的網絡接口由操作系統來確定。這通過圖2中的箭頭 “網絡指示符”來圖示。通常,操作系統具有優先級列表,其規定了優選網絡,并且僅當優選網絡不可用時才使用替代性網絡。例如,WiFi網絡優選于WffAN網絡,以使得后者僅在WiFi 不可用時才被使用。用戶可使用選項來改變優先級列表,例如強制WffAN成為優選的,但是那樣WiFi網絡將僅在WffAN不可用時才被使用。
在另一情形下,加載到CPU中的應用輪詢操作系統來估計什么網絡接口可用,并且相應地分配IP地址。這可以在設置應用以及在運行時期間來完成。輪詢活動由應用來促動。發明內容
根據本發明的方面,提供了一種在通信系統中將數據從源設備發送到目的地設備的方法,該方法包括在設備處執行應用,該應用根據應用層協議生成數據并將數據供應給第一網絡接口以用于通過第一信道在通信會話中傳送;所述設備在第一網絡接口處接收數據以用于供應給所述應用;所述應用確定使移交發生并打開第二信道以用于所述通信會話;所述應用將數據供應給第二網絡接口以用于通過所述第二信道進行傳送,并且生成消息以用于通過所述第一或第二信道傳送到所述目的地設備,所述消息包括標識用于通過所述第二信道接收數據的所述第二網絡接口的目的地地址。
本發明的另一方面提供了一種用于在通信系統中接收和發送數據的設備,該設備包括處理器,其被安排為執行應用,該應用生成數據并將數據供應給網絡接口以用于通過第一信道在通信會話中傳送;所述網絡接口通過所述第一信道從源設備接收數據;所述應用被安排為在通過第一信道接收的數據流中檢測消息,該消息包括標識用于所述通信會話的第二信道的目的地地址,并供應數據以用于通過所述第二信道在通信會話中傳送。
本發明的另一方面提供了一種包括程序代碼裝置的計算機程序產品,當所述程序代碼裝置被處理器執行時,執行以下步驟根據應用層協議生成數據并將數據供應給第一網絡接口;從所述第一網絡接口接收數據;確定使移交發生并將數據供應給第二網絡接口 ;以及生成消息以用于經由所述第一或第二網路接口進行傳送,所述消息包括標識用于接收數據的所述第二網絡接口的目的地地址。
本發明特別適用于對等通信系統,其中從一個用戶設備發送的數據流可以是目的在于與所述一個用戶設備不直接相連的用戶設備。數據流承載有關所預期的目的地設備的地址信息。當在源設備和目的地設備之間建立通信會話時,信道被打開,通過該信道,數據從源設備被發送,并且返回數據從目的地設備被接收。在應用確定打開第二信道的場景中,通信會話可能會被斷開(drop)(沒有本發明的話),并且源設備的用戶將不得不重新建立連接。這會使用戶惱怒和沮喪,并且會導致用戶認為,重新建立斷開的連接。
通過在應用為通信會話打開第二信道時為目的地設備生成消息,其中該通信會話標識了第二網絡接口的目的地地址,該目的地設備將其自身的數據流指向新的目的地地址,并因此成功地維持與源設備的連接以用于繼續通信。
將會明了,雖然理論上可以與通過第一信道相同的方式通過第二信道建立通信會話,但這樣會占用時間并且有破壞性。這可以通過在第一信道上向遠側設備提供目的地地址來避免,以使得其就緒以供第二信道的立即使用。
應用可以基于接收來自源設備中實現的訪問層的指示來確定使移交發生,其在我們的共同待決的英國專利申請號XXXX (代理參考號328659GB)中更全面地描述。
網絡接口可以是有線或無線的。本發明的實施例在無線通信系統中的無線設備的上下文中描述。
可替換地,應用可以通過自己監控可用網絡接口的質量來確定使移交發生。可以經由操作系統獲取網絡接口的列表。在此技術中,訪問層(例如MAC層)不需要監控它們的連接屬性。基于應用從操作系統接收有關網絡接口的信息,該應用可以確定利用那種無線訪問技術,并因此將流量指向哪個網絡接口。該決定可以考慮到一個或多個因素,例如價格、信號強度、分組丟失、往返時間(RTT)、抖動(jitter)以及類似的。對于不能被可靠測量的質量參數,應用可以用歷史參數來替換當前測量的參數,以使得如果網絡在歷史上執行得比當前使用的網絡更好,則該網絡成為優選的。可以通過多種方式來建立參數的歷史聚口 ο
在許多現實生活的情況,WiFi可能是可用的,但是質量低劣。例如,信號強度低或者WiFi路由器過載。在這樣的場景中,通過WiFi網絡發送的數據往往經歷分組丟失或者抖動,這轉而對諸如語音或視頻呼叫的實時應用具有嚴重的損害效應。因此,即使WiFi可用,使用WWAN也是更好的選擇。同時,在用戶從WiFi路由器離開的場景(例如當離開家或辦公室時)中,可以檢測到WiFi連接的惡化,并且在真正失去與WiFi網絡的連接之前,應用使得發生到WWAN網絡的移交從而帶來不間斷的服務。
將會明了,相比之下,在操作系統優先級列表確定網絡的情形中,僅在無線電芯片 224通知了操作系統其已失去連接(即第一網絡不可用)之后才會有網絡的改變。
此外,在某些情況下,將應用的流量從WffAN移動到WiFi是有利的。這是因為好的 WiFi網絡通常比WffAN網絡提供更高的帶寬,并具有更少的電池用量。同樣,WffAN連接可能受制于有限的數據規劃或按流量收費,使其對用戶來說成為昂貴的資源。
為了更好地理解本發明并且示出如何實現該發明,將以示例的方式參考附圖。
圖1是通信系統的示意視圖;圖2是用戶設備的功能框圖;圖3是根據本發明的一個實施例的用戶設備的功能框圖;圖3A是圖示協議棧中的層的示意圖;以及圖4是示出應用層和訪問層之間交互的示意圖。具體實施例
現將在參考圖2討論的類型的無線設備的上下文中描述本發明,其修改如圖3所示。無線設備可以是支持至少兩個無線電訪問技術的任何一件用戶設備(UE),例如WffAN (UMTS、HSDPA、LTE、Wimax)或WiFi。由處理器執行的軟件被組織在圖3A所示類型的協議棧 300中。圖3A僅圖示棧的一個示例-當前使用中存在許多變形,并且本發明可應用于任意類型的棧。圖3中例示的棧300包括應用層312,傳輸層314、互聯網層316和鏈路層318。 鏈路層被細分成物理鏈路層320和媒體訪問控制(MAC)層322。
鏈路層負責組織設備I的通信技術。鏈路層318中的媒體訪問控制層322負責尋址、將多個信道分配給不同的用戶以及避免沖突等。每個層都可以與在不同的無線設備中的其對等層通信-鏈路層318與不同設備中的對應鏈路層以幀的形式在RF數據級別進行通信。在通信會話中,通過無線電訪問芯片224 (圖2)和網絡6或8之間的信道發送和接收幀。
互聯網層以承載具有IP報頭的IP (互聯網協議)數據的分組的形式提供互聯網通信,并且負責IP尋址。該層將IP報頭應用到數據分組以定義目的地(遠端)設備-這些不同于被應用用于將數據流分組定向到特定的網絡接口的IP地址,如后續討論的那樣。
傳輸層14例如根據傳輸控制協議(TCP)或用戶數據報協議(UDP)運行主機對主機通信。在該上下文中,主機是尋求無線地進行通信的任意種類的用戶設備。
應用層12在通信的主機之間在過程對過程級別處理基于應用的交互。該層運行可以生成要通過信道發送的數據的用戶應用。例如,圖2的客戶端Π和客戶端引擎可以在應用層312中執行。因此,本發明的實施例在用戶設備運行經由媒體訪問控制層322通過多個無線電訪問技術的至少一個技術連接到網絡6、8的至少一個應用的上下文中進行描述。
本發明可以與多個不同的應用一起使用,但是一個特定的上下文涉及社交通信, 例如UE之間的VoIP (互聯網協議電話)呼叫、即時消息傳遞(頂)聊天或運行在會議框架上的實時會議。與這些種服務一起,應用可以負責數據傳遞(例如文件傳遞)、更新社交網絡中聯系人的存在信息或控制諸如“保持活動”數據的控制數據。在本情況下,對運行在應用層中的應用的引用被認為包含了所有這些可能性。
回到圖3,要注意的是,用戶設備的物理元件類似于圖2的那些元件,并且帶有相同的附圖標記。然而,重要的是OS 214不再向無線電芯片224提供網絡指示符。相反,網絡參數332由OS 214監控并被供應給應用層。
應用層312使用網絡參數來確定是否切換網絡。還可以將由諸如價格的參數組成的信息考慮在內。網絡參數可以包括信號強度、分組丟失、往返時間(RTT)和抖動。
參考圖4,解釋在執行應用層312中的應用對于接收到參數332的響應。在解釋之前,將描述尋址協議。
圖4在同一端口處示出兩個套接口 406和408。在該上下文中,套接口以端口和 IP地址的唯一組合來表征。應用可以在操作系統中打開套接口并將其綁定到特定的IP地址和端口。
該IP地址是本地網絡接口卡的IP地址。通過綁定到IP地址0,應用沒有定義使用哪個網絡-這將由操作系統來決定。
相反,應用可以通過在打開套接口時指定IP地址來控制使用哪個網絡接口。因此,應用通過打開具有網絡接口的IP地址的套接字在特定的網絡接口上發送數據,并且隨后在套接口上發送數據。事實上,應用不能直接訪問IP分組報頭,因此它不能自己設置報頭。隨著應用在套接口上發送數據,它可以監聽該套接口的任何傳入數據。應用首先確定 402如何使用參數,例如通過當前和歷史聚合或者兩者的組合,并且確定是否從應用當前用來傳送數據的網絡改變網絡。如果沒有改變,則應用繼續在現有的網絡(示出為經由MAC 層2的WffAN網絡8)上控制流量404。這根據應用為該流量打開的套接口 408來完成,該套接口是端口處WffAN網絡8的IP地址。應用繼續監聽該套接口以獲得返回數據。
如果應用確定它應當響應標識符332,則它可以通過在新的IP地址上打開套接口 406并在該新的IP地址上發送數據來選擇新的網絡403,打開第二信道并控制其到該新網絡的流量的一些或全部(圖4中以虛線示出)。
在下文中,將數據移動動另一網絡接口的過程被稱為“移交”。
當數據被移動到另一網絡接口時,除非遠側充當服務器并將請求反映給它的源, 否則即使應用將其傳出的數據移動到另一網絡接口,任何傳入的數據仍將到達舊的網絡接口。也就是說,數據通過信道發送,即使在移交之后當遠側設備應當使用套接口 412時,在該信道處,該遠側設備也將會將其數據尋址到套接口 410。因此,在典型的對等系統中,將有必要通知遠側設備要使用的新目的地IP地址。以下事實使其變得復雜,即,所獲取的新目的地IP地址可能是遠側設備不能直接定向的私有地址。然而,針對該問題存在眾所周知的所謂的網絡地址轉化(NAT)遍歷技術。
因而,當被應用于對等系統時,在發生了網絡接口改變時,應用將標識新的目的地 IP地址的消息發送到遠側設備。將會明了,遠端設備4在主要方面與本地設備2相類似。 因而,將參考圖3和4來解釋該遠端設備的操作。當該遠端設備接收到標識新目的地IP地址的消息414時,在尋址應用生成的數據的分組時,在互聯網協議層316中以自身知道的方式考慮該消息。因此,通信會話中的后續分組將被定向到接收側正確的輸入套接口。
此外,應用可以執行多個步驟中的一個或多個以便使得盡可能平滑地從一個網絡轉變至另一網絡。
代替立即將流量移動到新的網絡接口,應用可以選擇在一段時間內利用新的接口和舊的接口兩者。傳出的數據可以被冗余地在兩個接口上發送,以便確保在新信道的“預熱”間隔期間的穩定遞送。同樣,應用在此間隔中應當繼續監控兩個套接口的所接收的數據以避免妨礙傳入服務。
當切換到新的網絡時,該網絡的帶寬是未知的。因而,應用可以在移動到新的網絡接口之后的時間間隔內限制其數據生成速率。該時間間隔和數據限制可以取決于新的訪問技術。例如,當從3G移動到WiFi時,可能根本不需要限制,然而當在相反的方向上移動時, 嚴格限制在IOOkbps的活動范圍內可能是合理的。可以將消息發送到遠側設備來完成同樣的事情。可替換地,當接收到開始向另一 IP發送的消息414時,建立遠側設備來進行限制。 可以在相應的控制流量功能404中管理本地設備和/或遠側設備的數據速率。在圖4中, 控制線418表示來自選擇新網絡功能403的調節數據速率控制。在遠側設備中,響應于接收到從本地設備發送到遠側設備的消息,創建類似的控制418來調節數據速率。
以下建議影響在接收數據流的路徑中的抖動緩存。
抖動緩存416在接收終端中用來以正確的順序對數據分組進行排序,并且允許隱藏數據分組傳播中的變化。抖動緩存位于終端的接收路徑上并且從網絡接收傳入的數據分組。抖動緩存通過在從分組輸出數據之前引入延遲來緩存傳入分組。通常,抖動緩存根據從網絡接收分組的速率的變化來適配延遲。抖動緩存還被安排為對失序到達的分組重新排序成正確的序列,以及丟棄到達太晚以致于不能被包括在正確序列中的分組。增加由抖動緩存引入的延遲降低了到達太晚以致于不能被包括在正確的序列中的分組的數量。增加由抖動緩存引入的延遲還隱藏了數據分組傳播中較大的延遲。
當切換到新的網絡時,服務中的一些破壞可能是不可避免的。例如,與WiFi連接相比,3G連接可能具有高出上百毫秒的端到端延遲。
為了對用戶隱藏該破壞,可以在移交開始的間隔內增加針對通過任意連接接收的數據的抖動緩存延遲。同樣,將有關即將來臨的移交的消息發送到遠側設備以用于其完成相同的事情。也就是說,當應用確定移動它的流量時,它可以推遲數據的實際移動達幾秒鐘,以便提前執行準備步驟。作為將消息發送到遠側以使其增加它的抖動緩存延遲的替換, 本地測設備可以逐漸地引入抖動,即它的傳出數據流中的分組的傳送速率中的變化;這將使位于遠側的自適應抖動緩存自動地增加其延遲。
權利要求
1.一種在通信系統中將數據從源設備發送到目的地設備的方法,該方法包括 在設備處執行應用,該應用根據應用層協議生成數據并將數據供應給第一網絡接口以用于通過第一信道在通信會話中傳送; 所述設備在所述第一網絡接口處接收數據以用于供應給所述應用; 所述應用確定使移交發生并打開第二信道以用于所述通信會話; 所述應用將數據供應給第二網絡接口以用于通過所述第二信道進行傳送,并且生成消息以用于通過所述第一信道或第二信道傳送到所述目的地設備,所述消息包括標識用于通過所述第二信道接收數據的所述第二網絡接口的目的地地址。
2.根據權利要求I所述的方法,其中所述消息通過所述第一信道被發送。
3.根據權利要求I所述的方法,其中所述應用基于供應給所述應用的網絡參數確定使移交發生。
4.根據權利要求3所述的方法,其中所述應用另外基于供應給所述應用的與所監控的網絡參數分離的信息來確定使移交發生。
5.根據權利要求I或2所述的方法,其中所述應用通過打開向其分配了所述第二接口的地址的套接口使移交發生,數據流被指向所述套接口。
6.根據權利要求I所述的方法,其中在確定打開所述第二信道之后,所述應用在數據的傳送速率中引入變化。
7.根據前述任一權利要求所述的方法,其中在打開所述第二信道之后,所述應用供應數據以用于在所述打開之后的間隔內通過第一信道和第二信道兩者傳送。
8.根據前述任一權利要求所述的方法,其中在確定打開所述第二信道之后,所述應用在所述打開之后的間隔內降低數據被供應給訪問層以用于傳送的速率。
9.根據前述任一權利要求所述的方法,其中在確定打開所述第二信道之后,所述應用向通過所述第一信道與所述設備通信的目的地設備發送降低從所述目的地設備到所述源設備的數據傳送的速率的指令。
10.根據前述任一權利要求所述的方法,其中在確定打開所述第二信道之后,所述應用增加所述源設備處的抖動緩存中的延遲。
11.根據前述任一權利要求所述的方法,其中在確定打開所述第二信道之后,所述應用向通過所述第一信道與所述源設備通信的目的地設備發送消息以指令所述目的地設備增加所述目的地設備處的抖動緩存中的延遲。
12.根據前述任一權利要求所述的方法,其中所述第一和第二網絡接口的至少一個是無線的。
13.一種用于在無線通信系統中接收和發送數據的設備,該設備包括 處理器,其被安排為執行應用,該應用生成數據并將數據供應給網絡接口以用于通過第一信道在通信會話中傳送; 所述網絡接口通過所述第一信道從源設備接收數據; 所述應用被安排為在通過第一信道接收的數據流中檢測消息,該消息包括標識用于所述通信會話的第二信道的目的地地址,并供應數據以用于通過所述第二信道在通信會話中傳送。
14.根據權利要求13的設備,其中所述消息標識從所述無線設備發送的數據被指向的源設備的替代性網絡接口的目的地地址。
15.根據權利要求13,其中所述應用被安排為檢測指示在所述第二信道打開之后的間隔內數據速率降低的消息,其中所述設備包括用于降低數據速率的數據速率控制器。
16.根據權利要求13所述的設備,其中所述應用被安排為在數據流中檢測指示抖動緩存延遲增加的消息,所述設備包括抖動緩存并且可用來響應于所述消息增加所述抖動緩存中的延遲。
17.—種包括程序代碼裝置的計算機程序產品,當所述程序代碼裝置被處理器執行時,執行以下步驟 根據應用層協議生成數據并將數據供應給第一網絡接口; 從所述第一網絡接口接收數據; 確定使移交發生并將數據供應給第二網絡接口 ;以及 生成消息以用于經由所述第一或第二網路接口進行傳送,所述消息包括標識用于接收數據的所述第二網絡接口的目的地地址。
18.—個或多個存儲指令的計算機可讀存儲介質,當由計算設備執行時,導致所述計算設備執行如權利要求1-12中任一項所述的方法。
全文摘要
本發明涉及一種在通信系統中將數據從源設備發送到目的地設備的方法,該方法包括在設備處執行應用,該應用根據應用層協議生成數據并將數據供應給第一網絡接口以用于通過第一信道在通信會話中傳送;所述設備在所述第一網絡接口處接收數據以用于供應給所述應用;所述應用確定使移交發生并打開第二信道以用于所述通信會話;所述應用將數據供應給第二網絡接口以用于通過所述第二信道進行傳送,并且生成消息以用于通過所述第一信道或第二信道傳送到所述目的地設備,所述消息包括標識用于通過所述第二信道接收數據的所述第二網絡接口的目的地地址。
文檔編號H04W48/08GK102984784SQ20121033758
公開日2013年3月20日 申請日期2012年9月13日 優先權日2011年9月13日
發明者C.勒德布羅, S.V.安德森 申請人:斯凱普公司