用以進行點對點連接的方法、伺服器與裝置製造方法
2023-10-24 03:11:42 1
用以進行點對點連接的方法、伺服器與裝置製造方法
【專利摘要】本發明涉及用以進行點對點連接的方法、伺服器與裝置。當第一裝置要跟第二裝置建立點對點連接的時候,一個伺服器協助並且提供連接指令。連接指令定義多個連接流程。當接收連接指令,第一裝置根據一個優先順序,嘗試第一個連接流程,如果在預定的時間失敗再嘗試另一個連接流程。伺服器監控連接狀態,並且根據統計資料跟不同的情況調整連接指令。
【專利說明】用以進行點對點連接的方法、伺服器與裝置
【技術領域】
[0001]本發明關於一種點對點連接的方法、伺服器與裝置,且特別關於一種點對點連接動態設定的方法、伺服器與裝置。
【背景技術】
[0002]各式各樣的電子裝置被開發出來,用來改善人們的生活。然而,仍然有許多有待解決的技術問題,以提供更方便與更多的應用可能性。目前的常見的網絡環境通常由多個性質相同或不同的次網絡(sub-network)組成。例如網際網路作為主體,透過各種網關、路由器,可以連接各個家用的區域網路、電信網絡提供商後端的私有網絡等次網絡。舉例來說,在現今的網絡架構下,使用者如果想要將兩個終端裝置進行點對點連接,特別是當這兩個終端裝置在不同的次網絡中的時候,其實還是相當的複雜。例如終端裝置位在不同的網絡地址翻譯(Network Address Translat1n)裝置後的次網絡,可能有各自的私有網絡地址。此外,如何快速的建立有效率的網絡連接,也是一件非常有挑戰性的工作。
【發明內容】
[0003]本發明要解決的技術問題在於,提供一種改進的點對點連接動態設定的方法、月艮務器與裝置。
[0004]本發明解決其技術問題所採用的技術方案是:根據本發明第一實施例,提供一個點對點的連接方法,透過一伺服器,以協助第一裝置以點對點方式連接到第二裝置。點對點連接方法包括在伺服器接收來自第一裝置的聯機請求,並且在伺服器取得要點對點連接到第二裝置的連接參數。除了伺服器提供給第一裝置連接參數,點對點連接方法也包括提供第一裝置連接指令。連接指令對應到一操作方法,而操作方法對應到至少一個的連接流程。第一裝置動態決定如何使用每個的連接流程,根據連接指令與連接參數,以跟第二裝置進行點對點連接。除了第一裝置,第二裝置也可以從伺服器取得第一裝置的連接參數,以及/或對應的連接指令。
[0005]在一個實施例中,操作方法包括定義上述每個連接流程的優先順序。操作方法也可包括指出每一連接流程對應的超時(time-out)時間。當嘗試一個連接流程但無法在對應超時時間完成第一裝置與第二裝置的點對點連接,則第一裝置嘗試另一個連接流程。
[0006]此外,連接指令可包括對應到關聯連接流程的定義。此定義可包括用來在第一裝置執行,以執行對應連接流程的程序代碼。另一種做法中,定義包含偽碼,用來轉換成在第一裝置執行連接流程對應的執行邏輯。
[0007]伺服器也可監看第一裝置與第二裝置間點對點連接之聯機狀態,並且伺服器據以調整後續連接指令。伺服器也可接收來自第一裝置的連接報告,藉以調整後續的連接指令。
[0008]連接指令可包括指定點對點伺服器,以協助第一裝置與第二裝置建立點對點連接。當第一裝置與第二裝置進行的點對點連接暫時中斷時,點對點伺服器可以代轉(relay)第一裝置與第二裝置的傳輸數據,直到第一裝置與第二裝置的點對點連接恢復正常為止。
[0009]此外,連接流程也可包括第一連接流程與第二連接流程。第一連接流程指出第一裝置與第二裝置的點對點數據傳輸,透過伺服器協助代轉。第二連接流程則指出第一裝置與第二裝置的點對點數據傳輸,不是透過伺服器協助代轉。第一連接流程在第一裝置與第二裝置的點對點連接建立的初期使用。並且,在第一裝置與第二裝置建立點對點連接後,第一連接流程替換成第二連接流程。
[0010]此外,本發明的實施例也包括伺服器與電子裝置,用來改進點對點連接便利性與效率。
【專利附圖】
【附圖說明】
[0011]下面將結合附圖及實施例對本發明作進一步說明,附圖中:
[0012]圖1例示根據本發明實施例的一種運用環境;
[0013]圖2例示根據本發明的實施例的架構圖;
[0014]圖3A例示根據本發明實施例中,一種伺服器、客戶端與裝置之間的互動方式;
[0015]圖3B例示根據本發明實施例的伺服器、客戶端與裝置以及點對點伺服器之間的互動方式;
[0016]圖4A例示多個連接流程間的優先順序;
[0017]圖4B例示多個連接流程間的另一優先順序;
[0018]圖4C例示多個連接流程的另一優先順序;
[0019]圖5A例示一個指令,用以定義多個連接流程的邏輯排序;
[0020]圖5B例示另一個指令,用以定義多個連接流程的邏輯排序;
[0021]圖6例示根據本發明實施例的終端裝置;
[0022]圖7例示根據本發明實施例終端裝置的軟體觀點;
[0023]圖8例示根據本發明實施例,用來動態調整點對點連接的行為;
[0024]圖9例示當點對點連接中斷的時候,暫時透過代轉數據傳輸的做法;以及
[0025]圖10例示在建立點對點連接的初期,對於數據傳輸進行代轉的方法。
[0026]符號說明:
[0027]111 網際網路520步驟
[0028]113私有網絡531步驟
[0029]115家庭網絡533步驟
[0030]117家庭網絡535步驟
[0031]121網絡地址翻譯551步驟
[0032]123網絡地址翻譯553點對點連接
[0033]125網絡地址翻譯61 電子裝置
[0034]127網絡地址翻譯63 處理器
[0035]131伺服器65 內存
[0036]133計算機67 總線
[0037]135手機69 輸出入界面
[0038]137計算機71 作業系統
[0039]139 IP攝影機73 應用程式
[0040]141伺服器75解釋器
[0041]20網絡801步驟
[0042]21伺服器803步驟
[0043]22手機805步驟
[0044]23IP攝影機807步驟
[0045]24點對點伺服器809步驟
[0046]501聯機流程901步驟
[0047]503聯機流程903步驟
[0048]505聯機流程905步驟
[0049]507聯機流程907步驟
[0050]509聯機流程1002步驟
[0051]510選擇聯機流程1004步驟
[0052]511聯機流程1006步驟
[0053]1008 步驟
【具體實施方式】
[0054]為了對本發明的技術特徵、目的和效果有更加清楚的理解,現對照附圖詳細說明本發明的【具體實施方式】。
[0055]請參考圖1,圖1例示連接到網絡的多個不同類別裝置。在這個例子中,網絡包括數個不同的次網絡。舉例來說,網際網路(Internet) 111上的伺服器131或計算機133被給定IPv4或IPv6的地址。每個裝置可以直接透過其唯一的IP位址,提供其它裝置對這些裝置進行連接跟存取。此外,還有各種路由器(router)與網關(gateway)以及各種有線以及/或無線傳輸信道,用來連接裝置,並且處理名稱服務(naming service)、路由(routing)服務以及數據傳輸。
[0056]除了網際網路111,有些裝置透過網際網路提供者(ISP)連接到網際網路111。通常,網際網路提供者使用網際網路提供者的網絡地址翻譯(NetworkAddress Translat1n, NAT)裝置,將有限的IPv4或IPv6的IP位址,對應到網際網路提供者的私有網絡中的私有地址,讓網際網路提供者私有網絡113中的裝置可以分享這些網絡資源。根據RFC1918文件,有三種私有地址各自對應不同數目的私有地址。舉例來說,10.0.0.0-10.255.255.255可提供 16,777,216 個私有地址,172.16.0.0-17.31.255.255 可提供 I, 048,576 個私有地址,192.168.0.0-192.168.255.255 可提供 65,536 個私有地址。
[0057]同一個私有地址可能在不同的網絡被指定給不同的裝置。因此,如果只依賴這些私有地址,網際網路111的路由器無法直接確定到底數據是要傳送給哪個裝置。假如計算機133要存取位於網際網路提供者私有網絡113的裝置,首先,關聯於網際網路提供者(ISP)網絡地址翻譯(NAT)的公有IP位址會被提供給計算機133。然後,網際網路提供者的網絡地址翻譯,需要找出到底哪個對應的私有地址對應到數據應該要被傳送的私有地址。
[0058]網絡地址翻譯有許多不同的實作方法。此外,在架構網絡環境的時候,網絡地址翻譯還可能發生巢狀的組合。舉例來說,有兩個家庭網絡地址翻譯123與125位於網際網路提供者的私有網絡113。家庭網絡地址翻譯123與家庭網絡地址翻譯125具有各自的私有家庭網絡115與家庭網絡117,並且在這些家庭網絡上連接各式的終端裝置,例如手機135、計算機137與伺服器141。
[0059]由於家庭網絡地址翻譯123與家庭網絡地址翻譯125位於網際網路地址提供者的私有網絡113,它們對外的IP位址是類似192.168.1.131這樣的私有IP位址,由網際網路提供者的網絡地址翻譯121提供。假如計算機133需要傳送數據給手機135,路由器或對應的裝置需要找出網際網路提供者的網絡地址翻譯121的公用IP位址,家庭網絡地址翻譯123的私有IP位址,甚至手機135的私有IP位址。
[0060]對於私有網絡中的裝置是如何連接到網際網路111,例如連接到網站伺服器,可以參考RFC1918文件。然而,由於網絡環境的複雜性以及各種不同的網絡地址翻譯設計,對於兩個任意裝置要達成點對點連接,則是一件相當複雜的事情。
[0061]舉例來說,假如手機135希望建立一個點對點連接,以連接到由另一個家庭網絡地址翻譯127控制的家庭網絡119上的IP攝影機139,由於手機135與IP攝影機139位於不同的私有網絡,手機135無法直接透過IP攝影機139的私有地址來存取IP攝影機139,再者,由於有網絡轉換地址(NAT) 127的關係,手機135也無法直接透過網絡地址翻譯(NAT) 127的公有IP位址去存取IP攝影機139。此外,在一些其他的網絡環境中,有不同的防火牆或其他的網絡裝置讓點對點聯機更加複雜。在下列的圖示與說明中,提供多個實施例來進一步說明本發明。
[0062]請參考圖2,其例示在一個作為第一裝置的手機裝置22,與作為第二裝置的IP攝影機23之間的聯機建立過程。手機22與IP攝影機23所在的網絡還有一個伺服器21。這裡提到的網絡20可以是網際網路111、私有網絡,或由多個次網絡組成的網絡,包括透過對應的路由器、網關、交換機(Switch)、衛星或其他裝置構成的虛擬私有網絡(virtual privatenetwork)、有線或無線、電信網絡等。
[0063]在一些情況中,為了建立手機22與IP攝影機23之間的點對點連接,只要知道對方的IP位址,手機22與IP攝影機23隻需要直接傳送數據到對方的IP位址即可。然而,如圖1所示,在一些其他的狀況,手機22可能在網絡地址翻譯裝置控制的私有網絡裡頭。此夕卜,IP攝影機23可能存在於另一個網絡地址翻譯裝置控制的私有網絡裡頭。
[0064]儘管如此,當手機22與IP攝影機23連接到一個網絡時,假如這些裝置被賦予聯機能力,手機22與IP攝影機23通常可以連接到一個伺服器,例如圖2中標示在網際網路的伺服器21。伺服器21通常具有固定IP位址,或是透過動態名稱服務(Dynamic NamingService)提供的動態IP位址,用以標定其在網絡被存取的地址。
[0065]請參考圖3A,其例示一種在手機22與IP攝影機23間建立點對點連接的實施例。首先,手機22傳送一個點對點的聯機請求給伺服器21。伺服器21嘗試取得IP攝影機23的一個或多個連接參數,以供手機22建立跟IP攝影機23之間的點對點連接。連接參數可包括IP位址或其他可識別其位置之方式,但不限於,IP攝影機23上次回報給伺服器21的IP位址。有些時候,當IP攝影機23位於私有網絡裡頭,並且被網絡地址翻譯裝置指定一個IP位址的時候,伺服器21會記錄網絡地址翻譯裝置的外接IP位址等連接參數。如上所述,由於私有網絡內可能有比網絡地址翻譯裝置的IP位址還多的裝置數目。因此,埠(port)號碼與其他跟網絡地址翻譯的IP位址有關的信息也會被搜集,以連接回私有網絡內的裝置。
[0066]在實際的應用中,伺服器21除了將IP攝影機23的IP位址等連接參數傳給手機22,也可以將手機22的IP位址等連接參數傳給IP攝影機23,以便手機22與IP攝影機23間進行打洞(hole punching)等點對點聯機的機制,以建立手機22與攝影機23之間的點對點連接。換言之,第一裝置與第二裝置可以透過伺服器取得彼此的連接參數,進而透過各種打洞技巧進行點對點的連接。
[0067]當許多裝置依賴伺服器21建立點對點連接時,伺服器21可能因為過多的負擔成為瓶頸(bottleneck)。因此,圖3B例示一個點對點伺服器24,提供給手機22以協助建立手機22與IP攝影機23之間的點對點連接。在實際的設計中,可以有超過一個的伺服器21與點對點伺服器24協同運作,以提供上述的服務。此外,為了達成優化的連接效率,伺服器21也可以從多個點對點伺服器24挑選其中一個最適合的點對點伺服器,以協助完成不同裝置間的點對點連接,例如處理聯機請求、提供連接參數以及/或連接指令。
[0068]由於手機22與IP攝影機23之間可能有各種不同的連接情形,除了上述的連接參數,伺服器21也可提供連接指令(connect1n instruct1n)。連接指令指出一個或多個連接流程,供手機22利用連接參數相對於IP攝影機23進行點對點連接。當手機22接收這樣的連接指令以及連接參數,手機22開始循序或同步嘗試一個或多個連接流程,以建立跟IP攝影機23之間的點對點連接。
[0069]連接流程可代表由手機22加以執行的一連串步驟的方法,用以建立跟IP攝影機23之間的連接。由於有各種不同的網絡連接可能性,通常手機22會準備多種候選的連接流程。有些連接流程可能比其他連接流程更慢或是更不穩定,並且有些連接流程可能因為特定的網絡情況而無法運作。
[0070]舉例來說,在一些最糟的情況下,手機22需要伺服器21協助代轉(relay)所有手機22跟IP攝影機23之間的點對點數據傳輸,假如手機22或IP攝影機23在嚴格的防火牆後方,且其只容許一般的網頁瀏覽。在一些情況下,手機22與IP攝影機23都在同一個私有網絡,這時候它們只需要對方的私有地址,便能順利建立點對點連接。在一些其他的情況下,手機22要達成點對點連接到IP攝影機23,需要知道提供IP攝影機23服務的網絡地址翻譯的IP位址以及IP攝影機23存取伺服器21的埠(Port)。
[0071]更多關於突破網絡地址翻譯等問題的連接流程可以在打洞(hole punching)的相關文件找到,例如Μ)Ρ打洞、TCP打洞、ICMP打洞、網絡地址翻譯的任務搜索裝置(Sess1n Traversal Utilities for NAT)、使用代轉網絡地址翻譯的搜索(TraversalUsing Relay NAT)、IKE 環境中的 NAT 搜索的交談(NAT-T Negotiat1n of NAT-Traversalin the IKE)、使用 NAT 搜索的特雷多隧道(Teredo tunneling using NAT traversal)、任務邊際控制(Sess1n Border Controller)、邊際特定 IP(RSIP)、中間盒通訊(MiddleboxCommunicat1n, MID0CM)、插槽(SOCKS)、網絡地址翻譯對應協定(NAT PMP)、由即插即用(UPnP)網際網網關裝置(I⑶)以及應用層網關(Applicat1n Gateway)等技術。
[0072]除了以預定順序、靜態執行預存在手機22的程序,手機22也可以根據伺服器21提供的連接參數與連接指令,動態決定如何使用多個連接流程,用來建立跟IP攝影機23的點對點連接。
[0073]圖4A、圖4B與圖4C例示三種不同的連接指令。在圖4A中,有A,B,C,D,E,F六種連接流程,每一種對應到建立點對點連接的一序列流程步驟。這些連接流程透過連接指令定義的操作方法來加以排序並排定優先順序。舉例來說,為了建立點對點連接,會先嘗試使用某些連接流程,然後才嘗試使用其他連接流程,並且/或有些連接流程即使也能建立點對點連接,但是優先順序比較後位。在這個連接指令的例子中,連接流程A首先被測試,例如去試試看IP攝影機23是否跟手機22位在同一個私有網絡中,並且如果發現就是這樣的情形,直接用私有地址來進行手機22與IP攝影機23之間的點對點連接。其他的連接流程B, C,D, E, F可以分別代表其他為了達成手機22與IP攝影機23之間點對點連接的方法。
[0074]連接指令也可以包括每個連接流程的超時(time-out)參數。具體來說,當一個連接流程嘗試超過超時時間,例如1.5秒,仍然無法建立點對點連接的時候,就使用另一個連接流程進行嘗試。
[0075]在圖4B中,連接流程根據不同的優先順序進行排序。這樣的優先順序可以動態由伺服器21進行調整。在一些實施例中,伺服器21監控連接狀態,以掌握在不同的環境配置下,到底哪一個連接流程比其他連接流程更穩定以及/或更有效率。在某些情況下的優先順序可能比其他的優先順序好,但是在其他的情況下,這樣的優先順序可能需要進行調整才能達到比較好的效果。可能影響效率與穩定性的因素包括,但不限於,裝置所在的網絡環境,裝置的處理效能以及/或連接流程本身的效率。有些時候,當有多種點對點連接方法連接兩個裝置時,然而有些方法因為使用到電信網絡需要花更多的費用的時候,用來執行點對點連接的成本也可以作為伺服器21考慮是否以及優先採用對應連接流程因素的重要比例。
[0076]在圖4C中,除了對於連接流程的順序進行更換,連接流程本身也可被進一步修改。具體來說,伺服器21可以提供手機22 —個修改的連接流程B』來替換原先的連接流程B,並且用修改過的連接流程C』替換原本的連接流程C。如上所述,這樣的替換可以是基於算法或編碼本身的進一步效率化,但也可能是根據手機22、IP攝影機23的不同環境參數、網絡環境或其他因素,而做對應的修改。
[0077]連接指令可以在手機22與IP攝影機23的連接任務(connect1n sess1n)過程保持相同。當然,連接指令也可以在連接任務過程進行改變。連接指令可包括完整的程序代碼或是偽碼,以便在手機22或IP攝影機23上執行。另一種替代做法也可以是,連接指令可只包括對應的連接流程的指針號碼,假如程序代碼或對應的邏輯已經存在手機22以及/或IP攝影機23。
[0078]此外,如圖4A,4B,4C所示,連接流程可以以序列方式一個接著一個嘗試,也可以全部同步嘗試或部份同步進行嘗試。此外,也可以在連接指令設定一些條件判斷,以決定在特定情況下直接跳過某些或是直接採用某些連接流程。
[0079]圖5A與圖5B例示兩種不同的連接指令。在圖5A中,連接流程A 501,B503與D507被同步嘗試(步驟551)以找出到底哪一個比較適合用來建立點對點連接。假如都無法達成目標,連接流程C 505,E509與F 511再被嘗試看看,是否能夠建立點對點連接(步驟553)。然後,決定一個連接策略(步驟520)並且建立點對點連接。有些時候,連接狀態由伺服器21或是點對點伺服器24進行搜集。可能有多種候選連接流程可以用來建立點對點連接,但是只有一個或數個在不同的情況下被選用。
[0080]圖5B例示不同的連接流程。連接流程A501與連接流程B503首先被嘗試。在步驟531,連接狀態被決定。在某些條件滿足下,連接流程D 507被嘗試,並且在其他條件下,連接流程C 505與連接流程E509被嘗試。在步驟553,另一個條件被測試是否滿足,並且連接流程F511被採用。連接流程D507的連接狀態與連接流程F511被連接狀態在步驟535被比較,並且選用比較適合的連接流程(步驟510)。
[0081]請注意手機22與IP攝影機23在上面的說明只是當做例子,並非用來限制本發明。在越來越流行的物聯網世界中,有各種不同的裝置被研發出來,而需要進行彼此間點對點的連接以達成不同的應用。舉例來說,手機22可以透過點對點連接,來觀看由IP攝影機23截取的視訊內容。其他裝置例如手錶、平板計算機、可穿戴裝置、可戴的眼鏡、搜集各種類別信號的傳感器、機器人等等,也可以在相同的發明概念下加以設計,達成上述的發明效果O
[0082]圖6例示電子裝置61的一種架構,可用在上述的點對點連接。電子裝置61具有處理器63、內存65、總線67與網絡輸出入界面69。處理器63從內存65加載程序代碼加以執行,以達成預定的功能,例如提供手機功能、提供IP攝影機功能等等。處理器63透過總線67將聯機請求傳送到網絡輸出入界面69,並且網絡輸出入界面69將聯機請求傳送到上述的網絡。如上述伺服器21的伺服器接收聯機請求,並且回復電子裝置61連接參數以及連接指令,供電子裝置61與另一個裝置建立點對點連接。
[0083]在一些情況中,連接指令包括存在內存65供處理器63執行的程序代碼。在一些情況中,連接指令包括偽碼,可被轉換成對應的處理邏輯,以便由處理器63加以執行。存在內存65的連接流程也可以替換成存於連接指令中的新連接流程。除了直接傳送程序代碼給電子裝置61,另一種做法也包括對於不同的連接流程定義不同的超時時間,或是重新安排嘗試各個連接流程的優先順序。
[0084]處理器63可以是一般的處理器,例如ARM或Intel的處理器,也可以是微控制器,應用基礎的晶片(Applicat1n Specific Integrated Chip),或是其他能提供上述邏輯功能的電路。網絡輸出入界面69可以是有線或無線的網絡協議,例如但不限於,藍芽、W1-F1、RJ-45等網絡傳輸標準。內存65可以是隨機讀取內存(DRAM)、緩存器、非揮發性內存、磁碟、或其他一種或多種內存裝置的組合。總線67可以是包含控制電路的信號傳輸線、電子或光學傳輸網絡或任何其他的信號傳輸機制。
[0085]圖7例示圖6電子裝置61的軟體觀點。如上所述,伺服器21可以透過連接指令傳送程序代碼給手機22這類的電子裝置。替代做法也包括,伺服器21可傳送偽碼,再進一步轉換成對應的可執行邏輯,以便在電子裝置上執行。手機22可以具有作業系統71,例如Android, 1S, Blackberry, Firefox等,以提供特定的應用程式界面,供應用程式73例如點對點攝影機監看應用程式來存取。應用程式73透過作業系統71的應用程式界面向伺服器21發出聯機請求。伺服器21響應連接指令,其內包括偽碼。連接指令首先被作業系統71接受,然後傳給應用程式73進行處理。應用程式73可以把這個偽碼傳給一個解釋器75進行解譯並執行對應的邏輯,以建立上述的點對點連接,連接到一個IP攝影機。請注意,這裡所舉的例子,只是為了說明各種實作的方法並不是用來限制本發明的範圍。
[0086]圖8例示點對點連接方法,使用伺服器來協助第一裝置連接到第二裝置。伺服器首先接受聯機請求(步驟801)。聯機請求支出第一裝置希望跟第二裝置建立點對點的連接。伺服器取得關於要跟第二裝置建立點對點連接的連接參數(步驟803)。舉例來說,連接參數可能包括對應到第二裝置的網絡地址翻譯裝置對外IP位址(outgoing IP address)以及埠。除了提供第一裝置第二裝置的連接參數,伺服器也提供第一裝置連接指令(步驟805)。連接指令可指示對於多個連接流程的操作方法(步驟805)。每一個連接流程包括用來建立點對點連接的一序列步驟。操作方法指出這些連接流程在第一裝置被執行的方式,並且也可包括這些連接流程彼此間的優先順序。伺服器也可監測第一裝置與第二裝置的連接狀態(步驟807),並且調整後續的連接指令(步驟809),以通知第一裝置改變操作連接流程的方法(步驟807)。
[0087]圖9例示點對點連接流程的實施例。在這個實施例中,第一裝置跟第二裝置透過上述或上面沒有提到的點對點方法進行點對點連接(步驟901)。在點對點連接以及數據傳輸中,假如點對點連接暫時無法連接而中斷(步驟903),點對點伺服器可以用來作為代傳第一裝置與第二裝置間數據。同時,第一裝置會嘗試重新以同樣的連接流程或是不同的連接流程的點對點方式連接到第二裝置。假如點對點連接恢復,數據會再度透過點對點傳輸方式進行(步驟905)。在這樣的設計下,即使點對點連接暫時中斷,第一裝置與第二裝置間的數據傳輸仍然可以保持繼續。因此便能提供更穩定的數據傳輸。
[0088]圖10是點對點連接的初始階段的改進方案。首先,第一裝置嘗試跟第二裝置建立點對點的連接(步驟1002)。具有不同策略的一個或多個的連接流程可以被嘗試使用,以在第一裝置與第二裝置間建立點對點連接。第一裝置可以檢查是否這樣的點對點連接可以建立(步驟1004)。不管如何,在點對點連接建立之前,數據可以透過點對點伺服器進行代轉(步驟1008)。在點對點連接建立後,數據便可以透過點對點直接連接來進行傳輸。這樣的方法可以省略等待建立點對點連接的時間而可先行透過代轉做數據傳輸。在一些應用情況下,例如IP攝影機的串流影像傳輸,透過上述的做法可以提供使用者更好的使用體驗,因為光是要進行點對點連接可能就需要數秒的等待時間。
[0089]在一個實施例中,除了公用地址或私用地址,第一裝置與第二裝置各自具有唯一標識符(Unique Identificat1n, UID)。UID可以透過一個點對點伺服器指定,例如上述的伺服器21,或是透過製作每個裝置的廠商加以設定,以用來進行點對點連接。這些WD可以進一步整合到用戶信息,並且伺服器維護並且管理資料庫,以維護UID信息跟對應的用戶信息。透過這樣的做法,第一裝置可以跟伺服器查詢所有註冊在同一個用戶的WD的對應裝置,或是用戶被授權存取的裝置列表。這樣的機制可以被整合到上述的一個或多個實施例。
[0090]此外,伺服器21可以透過在一個機器上安裝對應的軟體來實作,以提供上述協助終端裝置間進行點對點連接的服務。伺服器21也可以用軟體模塊實作,而執行於多個機器上,或是實作成一個應用程式,在另一個雲端運算提供商的雲端運算環境執行。
[0091]雖然本發明以前述之較佳實施例揭露如上,然其並非用以限定本發明,任何熟習相像技藝者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之專利保護範圍須視本說明書所附之申請專利範圍所界定者為準。
【權利要求】
1.一種點對點聯機方法,其特徵在於,透過一伺服器協助一第一裝置以一點對點連接,連接到一第二裝置,包含: 接收來自該第一裝置的點對點聯機請求; 提供進行該點對點連接到該第二裝置所需的一連接參數;以及 提供該第一裝置一連接指令,該連接指令對應到一操作方法,該操作方法對應到至少一連接流程; 根據該連接指令與該連接參數,該第一裝置動態決定如何使用該連接流程以跟該第二裝置建立該點對點連接。
2.根據權利要求1所述的方法,其特徵在於,其中該操作方法包含使用該連接流程之優先順序。
3.根據權利要求1所述的方法,其特徵在於,其中該操作方法包含同步嘗試複數個該連接流程。
4.根據權利要求1所述的方法,其特徵在於,其中該操作方法包含指出每一對應該連接流程的一超時時間,當嘗試該連接流程無法在對應該超時時間完成該第一裝置與該第二裝置的該點對點連接,則該第一裝置嘗試另一個該連接流程。
5.根據權利要求1所述的方法,其特徵在於,其中該連接指令包含用以在該第一裝置執行的程序代碼,以執行對應的該連接流程。
6.根據權利要求1所述的方法,其特徵在於,其中該連接指令包含一偽碼,用以轉換成對應的執行邏輯,以操作該第一裝置,用以執行對應的該連接流程。
7.根據權利要求1所述的方法,其特徵在於,更包含下列步驟: 監控該第一裝置與該第二裝置的該點對點連接的聯機狀態,並且根據聯機狀態,該伺服器調整後續的該連接指令。
8.根據權利要求1所述的方法,其特徵在於,更包含下列步驟: 接收來自該第一裝置之連接報告,以調整後續之該連接指令。
9.根據權利要求1所述的方法,其特徵在於,其中該連接指令包含指定一點對點伺服器,用以協助該第一裝置與該第二裝置,用以建立該點對點連接。
10.根據權利要求9所述的方法,其特徵在於,其中當該第一裝置與該第二裝置間之該點對點連接暫時中斷,直到該第一裝置與該第二裝置間之該點對點連接恢復前,由該點對點伺服器代轉該第一裝置與該第二裝置間進行該點對點連接之數據傳輸。
11.根據權利要求9所述的方法,其特徵在於,其中該連接流程包含一第一連接流程與一第二連接流程,該第一連接流程指示透過該點對點伺服器代轉該第一裝置與該第二裝置間的數據傳輸,該第二連接流程指示不透過該點對點伺服器代轉該第一裝置與該第二裝置的數據傳輸,在該第一裝置與該第二裝置進行該點對點連接的早期階段採用該第一連接流程,並且在該第一裝置與該第二裝置建立該點對點連接後,替換該第一連接流程為該第二連接流程。
12.一種伺服器系統,其特徵在於,用以在一第一裝置與一第二裝置間透過一網絡建立一點對點連接,包含: 一網絡界面,用以接收來自該第一裝置發出的點對點聯機請求,以連接到該第二裝置; 一儲存器,用以儲存用以進行該點對點連接到該第二裝置的一連接參數;以及 一處理器,提供該第一裝置該連接參數,也提供該第一裝置一連接指令,該連接指令對應到一操作方法,該操作方法對應到至少一連接流程,該第一裝置動態決定如何使用該連接流程,根據該連接參數與該連接指令,以進行對於該第二裝置的該點對點連接。
13.根據權利要求12所述的伺服器系統,其特徵在於,其中該操作方法包含使用該連接流程之優先順序。
14.根據權利要求12所述的伺服器系統,其特徵在於,其中該操作方法包含同步嘗試複數個該連接流程。
15.根據權利要求12所述的伺服器系統,其特徵在於,其中該操作方法包含指出每一對應該連接流程的一超時時間,當嘗試該連接流程無法在對應該超時時間完成該第一裝置與該第二裝置的該點對點連接,則該第一裝置嘗試另一個該連接流程。
16.根據權利要求12所述的伺服器系統,其特徵在於,其中該連接指令包含用以在該第一裝置執行的程序代碼,以執行對應的該連接流程。
17.根據權利要求12所述的伺服器系統,其特徵在於,其中該連接指令包含一偽碼,用以轉換成對應的執行邏輯,以操作該第一裝置,用以執行對應的該連接流程。
18.—電子裝置,其特徵在於,用於一點對點連接,包含: 一網絡界面,用以連接到一網絡;以及 一處理器,用以透過該網絡界面傳送聯機請求到一伺服器以該點對點連接到一第二裝置,該處理器接收來自該伺服器之一連接指令與一連接參數,該連接指令對應到一操作方法,該操作方法對應到至少一連接流程,該處理器動態決定如何使用該連接流程,根據該連接參數與該連接指令,建立該點對點連接到該第二裝置,該操作方法包含指出每一對應該連接流程的一超時時間,當嘗試一個該連接流程無法在對應該超時時間完成該電子裝置與該第二裝置的該點對點連接,則該電子裝置嘗試另一個該連接流程。
19.根據權利要求18所述的電子裝置,其特徵在於,其中該連接指令包含用以在該處理器執行的程序代碼,以執行對應的該連接流程。
20.根據權利要求18所述的電子裝置,其特徵在於,其中該連接指令包含一偽碼,用以轉換成對應的執行邏輯,以操作該處理器,用以執行對應的該連接流程。
【文檔編號】H04L29/08GK104468696SQ201410506048
【公開日】2015年3月25日 申請日期:2014年9月28日 優先權日:2014年6月13日
【發明者】高於立, 何文凱, 簡國棟 申請人:物聯智慧股份有限公司, 物聯智慧科技(深圳)有限公司