TW201547245A - 用以進行點對點連接的方法、伺服器與裝置 - Google Patents
用以進行點對點連接的方法、伺服器與裝置 Download PDFInfo
- Publication number
- TW201547245A TW201547245A TW103120401A TW103120401A TW201547245A TW 201547245 A TW201547245 A TW 201547245A TW 103120401 A TW103120401 A TW 103120401A TW 103120401 A TW103120401 A TW 103120401A TW 201547245 A TW201547245 A TW 201547245A
- Authority
- TW
- Taiwan
- Prior art keywords
- connection
- point
- server
- instruction
- connection process
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 129
- 230000008569 process Effects 0.000 claims description 71
- 230000005540 biological transmission Effects 0.000 claims description 17
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000013459 approach Methods 0.000 abstract description 3
- 238000013519 translation Methods 0.000 description 29
- 230000014616 translation Effects 0.000 description 29
- 238000004080 punching Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012913 prioritisation Methods 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 239000001110 calcium chloride Substances 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008054 signal transmission Effects 0.000 description 2
- 241000065695 Teredo Species 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007123 defense Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1042—Peer-to-peer [P2P] networks using topology management mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/28—Timers or timing mechanisms used in protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
- H04W88/04—Terminal devices adapted for relaying to or from another terminal or user
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/148—Migration or transfer of sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- Mobile Radio Communication Systems (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
- Multimedia (AREA)
Abstract
當第一裝置要跟第二裝置建立點對點連接的時候,一個伺服器協助並且提供連接指令。連接指令定義多個連接流程。當接收連接指令,第一裝置根據一個優先順序,嘗試第一個連接流程,如果在預定的時間失敗再嘗試另一個連接流程。伺服器監控連接狀態,並且根據統計資料跟不同的情況調整連接指令。
Description
本發明關於一種點對點連接的方法、伺服器與裝置,且特別關於一種點對點連接動態設定的方法、伺服器與裝置。
各式各樣的電子裝置被開發出來,用來改善人們的生活。然而,仍然有許多有待解決的技術問題,以提供更方便與更多的應用可能性。目前的常見的網路環境通常由多個性質相同或不同的次網路(sub-network)組成。例如網際網路作為主體,透過各種閘道器、路由器,可以連接各個家用的區域網路、電信網路提供商後端的私有網路等次網路。舉例來說,在現今的網路架構下,使用者如果想要將兩個終端裝置進行點對點連接,特別是當這兩個終端裝置在不同的次網路中的時候,其實還是相當的複雜。例如終端裝置位在不同的網路位址翻譯(Network Address Translation)裝置後的次網路,可能有各自的私有網路位址。此外,如何快速的建立有效率的網路連接,也是一件非常有挑戰性的工作。
根據本發明第一實施例,提供一個點對點的連接方法,透過一伺服
器,以協助第一裝置以點對點方式連接到第二裝置。點對點連接方法包括在伺服器接收來自第一裝置的連線需求,並且在伺服器取得要點對點連接到第二裝置的連接參數。除了伺服器提供給第一裝置連接參數,點對點連接方法也包括提供第一裝置連接指令。連接指令對應到一操作方法,而操作方法對應到複數連接流程。第一裝置動態決定如何使用複數連接流程,根據連接指令與連接參數,以跟第二裝置進行點對點連接。除了第一裝置,第二裝置也可以從伺服器取得第一裝置的連線參數,以及/或對應的連線指令。
在一個實施例中,操作方法包括定義上述複數操作流程的優先順序。操作方法也可包括指出每一操作流程對應的超時(time-out)時間。當嘗試一個連接流程但無法在對應超時時間完成第一裝置與第二裝置的點對點連接,則第一裝置嘗試另一個連接流程。
此外,連接指令可包括對應到關聯連接流程的定義。此定義可包括用來在第一裝置執行,以執行對應連接流程的程式碼。另一種做法中,定義包含虛擬碼,用來轉換成在第一裝置執行操作流程對應的執行邏輯。
伺服器也可監看第一裝置與第二裝置間點對點連接之連線狀態,並且伺服器據以調整後續連接指令。伺服器也可接收來自第一裝置的連接報告,藉以調整後續的連接指令。
連接指令可包括指定點對點伺服器,以協助第一裝置與第二裝置建立點對點連接。當第一裝置與第二裝置進行的點對點連接暫時中斷時,點對點伺服器可以代轉(relay)第一裝置與第二裝置的傳輸資料,直到第一裝置與第二裝置的點對點連接恢復正常為止。
此外,連接流程也可包括第一連接流程與第二連接流程。第一連接流程指出第一裝置與第二裝置的點對點資料傳輸,透過伺服器協助代轉。
第二連接流程則指出第一裝置與第二裝置的點對點資料傳輸,不是透過伺服器協助代轉。第一連接流程在第一裝置與第二裝置的點對點連接建立的初期使用。並且,在第一裝置與第二裝置建立點對點連接後,第一連接流程替換成第二連接流程。
此外,本發明的實施例也包括伺服器與電子裝置,用來改進點對點連接便利性與效率。
111‧‧‧網際網路
113‧‧‧私有網路
115‧‧‧家用網路
117‧‧‧家用網路
121‧‧‧網路位址翻譯
520‧‧‧步驟
531‧‧‧步驟
533‧‧‧步驟
535‧‧‧步驟
551‧‧‧步驟
123‧‧‧網路位址翻譯
125‧‧‧網路位址翻譯
127‧‧‧網路位址翻譯
131‧‧‧伺服器
133‧‧‧電腦
135‧‧‧手機
137‧‧‧電腦
139‧‧‧IP攝影機
141‧‧‧伺服器
20‧‧‧網路
21‧‧‧伺服器
22‧‧‧手機
23‧‧‧IP攝影機
24‧‧‧點對點伺服器
501‧‧‧連線流程
503‧‧‧連線流程
505‧‧‧連線流程
507‧‧‧連線流程
509‧‧‧連線流程
510‧‧‧選擇連線流程
511‧‧‧連線流程
553‧‧‧點對點連接
61‧‧‧電子裝置
63‧‧‧處理器
65‧‧‧記憶體
67‧‧‧匯流排
69‧‧‧輸出入界面
71‧‧‧作業系統
73‧‧‧應用程式
75‧‧‧解譯器
801‧‧‧步驟
803‧‧‧步驟
805‧‧‧步驟
807‧‧‧步驟
809‧‧‧步驟
901‧‧‧步驟
903‧‧‧步驟
905‧‧‧步驟
907‧‧‧步驟
1002‧‧‧步驟
1004‧‧‧步驟
1006‧‧‧步驟
1008‧‧‧步驟
圖1例示根據本發明實施例的一種運用環境;圖2例示根據本發明的實施例的架構圖;圖3A例示根據本發明實施例中,一種伺服器、客戶端與裝置之間的互動方式;圖3B例示根據本發明實施例的伺服器、客戶端與裝置以及點對點伺服器之間的互動方式;圖4A例示多個連接流程間的優先順序;圖4B例示多個連接流程間的另一優先順序;圖4C例示多個連接流程的另一優先順序;圖5A例示一個指令,用以定義多個連接流程的邏輯排序;圖5B例示另一個指令,用以定義多個連接流程的邏輯排序;圖6例示根據本發明實施例的終端裝置;圖7例示根據本發明實施例終端裝置的軟體觀點;圖8例示根據本發明實施例,用來動態調整點對點連接的行為;圖9例示當點對點連接中斷的時候,暫時透過代轉資料傳輸的做法;以及
圖10例示在建立點對點連接的初期,對於資料傳輸進行代轉的方法。
請參考圖1,圖1例示連接到網路的多個不同類別裝置。在這個例子中,網路包括數個不同的次網路。舉例來說,網際網路(Internet)111上的伺服器131或電腦133被給定IPv4或IPv6的位址。每個裝置可以直接透過其唯一的IP位址,提供其它裝置對這些裝置進行連接跟存取。此外,還有各種路由器(router)與閘道器(gateway)以及各種有線以及/或無線傳輸通道,用來連接裝置,並且處理名稱服務(naming service)、路由(routing)服務以及資料傳輸。
除了網際網路111,有些裝置透過網際網路提供者(ISP)連接到網際網路111。通常,網際網路提供者使用網際網路提供者的網路位址翻譯(Network Address Translation,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可提供1,048,576個私有位址,192.168.0.0-192.168.255.255可提供65,536個私有位址。
同一個私有位址可能在不同的網路被指定給不同的裝置。因此,如果只依賴這些私有地址,網際網路111的路由器無法直接確定到底資料是要傳送給哪個裝置。假如電腦133要存取位於網際網路提供者私有網路113的裝置,首先,關聯於網際網路提供者(ISP)網路位址翻譯(NAT)的公
有IP位址會被提供給電腦133。然後,網際網路提供者的網路位址翻譯,需要找出到底哪個對應的私有位址對應到資料應該要被傳送的私有位址。
網路位址翻譯有許多不同的實作方法。此外,在架構網路環境的時候,網路位址翻譯還可能發生巢狀的組合。舉例來說,有兩個家用網路位址翻譯123與125位於網際網路提供者的私有網路113。家用網路位址翻譯123與家用網路位址翻譯125具有各自的私有家用網路115與家用網路117,並且在這些家用網路上連接各式的終端裝置,例如手機135、電腦137與伺服器141。
由於家用網路位址翻譯123與家用網路位址翻譯125位於網際網路位址提供者的私有網路113,它們對外的IP位址是類似192.168.1.131這樣的私有IP位址,由網際網路提供者的網路位址翻譯121提供。假如電腦133需要傳送資料給手機135,路由器或對應的裝置需要找出網際網路提供者的網路位址翻譯121的公用IP位址,家用網路位址翻譯123的私有IP位址,甚至手機135的私有IP位址。
對於私有網路中的裝置是如何連接到網際網路111,例如連接到網站伺服器,可以參考RFC1918文件。然而,由於網路環境的複雜性以及各種不同的網路位址翻譯設計,對於兩個任意裝置要達成點對點連接,則是一件相當複雜的事情。
舉例來說,假如手機135希望建立一個點對點連接,以連接到由另一個家用網路位址翻譯127控制的家用網路119上的IP攝影機139,由於手機135與IP攝影機139位於不同的私有網路,手機135無法直接透過IP攝影機139的私有位址來存取IP攝影機139,再者,由於有網路轉換位址(NAT)127的關係,手機135也無法直接透過網路位址翻譯(NAT)127的公有IP位址去存取IP攝影機139。此外,在一些其他的網路環境中,有不同的防
火牆或其他的網路裝置讓點對點連線更加複雜。在下列的圖示與說明中,提供多個實施例來進一步說明本發明。
請參考圖2,其例示在一個作為第一裝置的手機裝置22,與作為第二裝置的IP攝影機23之間的連線建立過程。手機22與IP攝影機23所在的網路還有一個伺服器21。這裡提到的網路20可以是網際網路111、私有網路,或由多個次網路組成的網路,包括透過對應的路由器、閘道器、交換機(Switch)、衛星或其他裝置構成的虛擬私有網路(virtual private network)、有線或無線、電信網路等。
在一些情況中,為了建立手機22與IP攝影機23之間的點對點連接,只要知道對方的IP位址,手機22與IP攝影機23只需要直接傳送資料到對方的IP位址即可。然而,如圖1所示,在一些其他的狀況,手機22可能在網路位址翻譯裝置控制的私有網路裡頭。此外,IP攝影機23可能存在於另一個網路位址翻譯裝置控制的私有網路裡頭。
儘管如此,當手機22與IP攝影機23連接到一個網路時,假如這些裝置被賦予連線能力,手機22與IP攝影機23通常可以連接到一個伺服器,例如圖2中標示在網際網路的伺服器21。伺服器21通常具有固定IP位址,或是透過動態名稱服務(Dynamic Naming Service)提供的動態IP位址,用以標定其在網路被存取的位址。
請參考圖3A,其例示一種在手機22與IP攝影機23間建立點對點連接的實施例。首先,手機22傳送一個點對點的連線請求給伺服器21。伺服器21嘗試取得IP攝影機23的一個或多個連線參數,以供手機22建立跟IP攝影機23之間的點對點連接。連接參數可包括,但不限於,IP攝影機23上次回報給伺服器21的IP位址。有些時候,當IP攝影機23位於私有網路裡頭,並且被網路位址翻譯裝置指定一個IP位址的時候,伺服器21會記錄網路位址
翻譯裝置的外接IP位址等連線參數。如上所述,由於私有網路內可能有比網路位址翻譯裝置的IP位址還多的裝置數目。因此,連接埠(port)號碼與其他跟網路位址翻譯的IP位址有關的信息也會被蒐集,以連接回私有網路內的裝置。
在實際的應用中,伺服器21除了將IP攝影機23的IP位址等連線參數傳給手機22,也可以將手機22的IP位址等連線參數傳給IP攝影機23,以便手機22與IP攝影機23間進行打洞(hole punching)等點對點連線的機制,以建立手機22與攝影機23之間的點對點連接。換言之,第一裝置與第二裝置可以透過伺服器取得彼此的連線參數,進而透過各種打洞技巧進行點對點的連接。
當許多裝置依賴伺服器21建立點對點連接時,伺服器21可能因為過多的負擔成為瓶頸(bottleneck)。因此,圖3B例示一個點對點伺服器24,提供給手機22以協助建立手機22與IP攝影機23之間的點對點連接。在實際的設計中,可以有超過一個的伺服器21與點對點伺服器24協同運作,以提供上述的服務。此外,為了達成最佳化的連接效率,伺服器21也可以從多個點對點伺服器24挑選其中一個最適合的點對點伺服器,以協助完成不同裝置間的點對點連接,例如處理連線請求、提供連接參數以及/或連接指令。
由於手機22與IP攝影機23之間可能有各種不同的連接情形,除了上述的連接參數,伺服器21也可提供連接指令(connection instruction)。連接指令指出一個或多個連接流程,供手機22利用連接參數相對於IP攝影機23進行點對點連接。當手機22接收這樣的連接指令以及連接參數,手機22開始循序或平行嘗試一個或多個連接流程,以建立跟IP攝影機23之間的點對點連接。
連接流程可代表由手機22加以執行的一連串步驟的方法,用以建立跟IP攝影機23之間的連接。由於有各種不同的網路連接可能性,通常手機22會準備多種候選的連接流程。有些連接流程可能比其他連接流程更慢或是更不穩定,並且有些連接流程可能因為特定的網路情況而無法運作。
舉例來說,在一些最糟的情況下,手機22需要伺服器21協助代轉(relay)所有手機22跟IP攝影機23之間的點對點資料傳輸,假如手機22或IP攝影機23在嚴格的防火牆後方,且其只容許一般的網頁瀏覽。在一些情況下,手機22與IP攝影機23都在同一個私有網路,這時候它們只需要對方的私有位址,便能順利建立點對點連接。在一些其他的情況下,手機22要達成點對點連接到IP攝影機23,需要知道提供IP攝影機23服務的網路位址翻譯的IP位址以及IP攝影機23存取伺服器21的連接埠(Port)。
更多關於突破網路位址翻譯等問題的連接流程可以在打洞(hole punching)的相關文件找到,例如UDP打洞、TCP打洞、ICMP打洞、網路位址翻譯的任務搜索裝置(Session Traversal Utilities for NAT)、使用代轉網路位址翻譯的搜索(Traversal Using Relay NAT)、IKE環境中的NAT搜索的交談(NAT-T Negotiation of NAT-Traversal in the IKE)、使用NAT搜索的特雷多隧道(Teredo tunneling using NAT traversal)、任務邊際控制(Session Border Controller)、邊際特定IP(RSIP)、中間盒通訊(Middlebox Communication,MIDOCM)、插槽(SOCKS)、網路位址翻譯對應協定(NAT PMP)、由即插即用(UPnP)網際網閘道器裝置(IGD)以及應用層閘道器(Application Gateway)等技術。
除了以預定順序、靜態執行預存在手機22的程序,手機22也可以根據伺服器21提供的連接參數與連接指令,動態決定如何使用多個連接流程,用來建立跟IP攝影機23的點對點連接。
圖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之間點對點連接的方法。
連接指令也可以包括每個連接流程的超時(time-out)參數。具體來說,當一個連接流程嘗試超過超時時間,例如1.5秒,仍然無法建立點對點連接的時候,就使用另一個連接流程進行嘗試。
在圖4B中,連接流程根據不同的優先順序進行排序。這樣的優先順序可以動態由伺服器21進行調整。在一些實施例中,伺服器21監控連接狀態,以掌握在不同的環境配置下,到底哪一個連接流程比其他連接流程更穩定以及/或更有效率。在某些情況下的優先順序可能比其他的優先順序好,但是在其他的情況下,這樣的優先順序可能需要進行調整才能達到比較好的效果。可能影響效率與穩定性的因素包括,但不限於,裝置所在的網路環境,裝置的處理效能以及/或連接流程本身的效率。有些時候,當有多種點對點連接方法連接兩個裝置時,然而有些方法因為使用到電信網路需要花更多的費用的時候,用來執行點對點連接的成本也可以作為伺服器21考量是否以及優先採用對應連接流程因素的重要比例。
在圖4C中,除了對於連接流程的順序進行更換,連接流程本身也可
被進一步修改。具體來說,伺服器21可以提供手機22一個修改的連接流程B’來替換原先的連接流程B,並且用修改過的連接流程C’替換原本的連接流程C。如上所述,這樣的替換可以是基於演算法或編碼本身的進一步效率化,但也可能是根據手機22、IP攝影機23的不同環境參數、網路環境或其他因素,而做對應的修改。
連接指令可以在手機22與IP攝影機23的連接任務(connection session)過程保持相同。當然,連接指令也可以在連接任務過程進行改變。連接指令可包括完整的程式碼或是虛擬碼,以便在手機22或IP攝影機23上執行。另一種替代做法也可以是,連接指令可只包括對應的連接流程的指標號碼,假如程式碼或對應的邏輯已經存在手機22以及/或IP攝影機23。
此外,如圖4A,4B,4C所示,連接流程可以以序列方式一個接著一個嘗試,也可以全部一起嘗試或部份平行進行嘗試。此外,也可以在連接指令設定一些條件判斷,以決定在特定情況下直接跳過某些或是直接採用某些連接流程。
圖5A與圖5B例示兩種不同的連接指令。在圖5A中,連接流程A 501,B 503與D 507被平行嘗試(步驟551)以找出到底哪一個比較適合用來建立點對點連接。假如都無法達成目標,連接流程C 505,E509與F 511再被嘗試看看,是否能夠建立點對點連接(步驟553)。然後,決定一個連接策略(步驟520)並且建立點對點連接。有些時候,連接狀態由伺服器21或是點對點伺服器24進行蒐集。可能有多種候選連接流程可以用來建立點對點連接,但是只有一個或數個在不同的情況下被選用。
圖5B例示不同的連接流程。連接流程A501與連接流程B503首先被嘗試。在步驟531,連接狀態被決定。在某些條件滿足下,連接流程D 507
被嘗試,並且在其他條件下,連接流程C 505與連接流程E509被嘗試。在步驟553,另一個條件被測試是否滿足,並且連接流程F511被採用。連接流程D507的連接狀態與連接流程F511被連接狀態在步驟535被比較,並且選用比較適合的連接流程(步驟510)。
請注意手機22與IP攝影機23在上面的說明只是當做例子,並非用來限制本發明。在越來越流行的物聯網世界中,有各種不同的裝置被研發出來,而需要進行彼此間點對點的連接以達成不同的應用。舉例來說,手機22可以透過點對點連接,來觀看由IP攝影機23截取的視訊內容。其他裝置例如手錶、平板電腦、可穿戴裝置、可戴的眼鏡、蒐集各種類別信號的感測器、機器人等等,也可以在相同的發明概念下加以設計,達成上述的發明效果。
圖6例示電子裝置61的一種架構,可用在上述的點對點連接。電子裝置61具有處理器63、記憶體65、匯流排67與網路輸出入界面69。處理器63從記憶體65載入程式碼加以執行,以達成預定的功能,例如提供手機功能、提供IP攝影機功能等等。處理器63透過匯流排67將連線請求傳送到網路輸出入界面69,並且網路輸出入界面69將連線請求傳送到上述的網路。如上述伺服器21的伺服器接收連線請求,並且回覆電子裝置61連接參數以及連接指令,供電子裝置61與另一個裝置建立點對點連接。
在一些情況中,連接指令包括存在記憶體65供處理器63執行的程式碼。在一些情況中,連接指令包括虛擬碼,可被轉換成對應的處理邏輯,以便由處理器63加以執行。存在記憶體65的連接流程也可以替換成存於連接指令中的新連接流程。除了直接傳送程式碼給電子裝置61,另一種做法也包括對於不同的連接流程定義不同的超時時間,或是重新安排嘗試各個連接流程的優先順序。
處理器63可以是一般的處理器,例如ARM或Intel的處理器,也可以是微控制器,應用基礎的晶片(Application Specific Integrated Chip),或是其他能提供上述邏輯功能的電路。網路輸出入界面69可以是有線或無線的網路協定,例如但不限於,藍芽、Wi-Fi、RJ-45等網路傳輸標準。記憶體65可以是隨機讀取記憶體(DRAM)、暫存器、非揮發性記憶體、磁碟、或其他一種或多種記憶體裝置的組合。匯流排67可以是包含控制電路的信號傳輸線、電子或光學傳輸網路或任何其他的信號傳輸機制。
圖7例示圖6電子裝置61的軟體觀點。如上所述,伺服器21可以透過連接指令傳送程式碼給手機22這類的電子裝置。替代做法也包括,伺服器21可傳送虛擬碼,再進一步轉換成對應的可執行邏輯,以便在電子裝置上執行。手機22可以具有作業系統71,例如Android,iOS,Blackberry,Firefox等,以提供特定的應用程式界面,供應用程式73例如點對點攝影機監看應用程式來存取。應用程式73透過作業系統71的應用程式界面向伺服器21發出連線請求。伺服器21回應連接指令,其內包括虛擬碼。連接指令首先被作業系統71接受,然後傳給應用程式73進行處理。應用程式73可以把這個虛擬碼傳給一個解譯器75進行解譯並執行對應的邏輯,以建立上述的點對點連接,連接到一個IP攝影機。請注意,這裡所舉的例子,只是為了說明各種實作的方法並不是用來限制本發明的範圍。
圖8例示點對點連接方法,使用伺服器來協助第一裝置連接到第二裝置。伺服器首先接受連線請求(步驟801)。連線請求支出第一裝置希望跟第二裝置建立點對點的連接。伺服器取得關於要跟第二裝置建立點對點連接的連接參數(步驟803)。舉例來說,連接參數可能包括對應到第二裝置的網路位址翻譯裝置對外IP位址(outgoing IP address)以及連接埠。除了提供第一裝置第二裝置的連接參數,伺服器也提供第一裝置連接指令
(步驟805)。連接指令可指示對於多個連接流程的操作方法(步驟805)。每一個連接流程包括用來建立點對點連接的一序列步驟。操作方法指出這些連接流程在第一裝置被執行的方式,並且也可包括這些連接流程彼此間的優先順序。伺服器也可監測第一裝置與第二裝置的連接狀態(步驟807),並且調整後續的連接指令(步驟809),以通知第一裝置改變操作連接流程的方法(步驟807)。
圖9例示點對點連接流程的實施例。在這個實施例中,第一裝置跟第二裝置透過上述或上面沒有提到的點對點方法進行點對點連接(步驟901)。在點對點連接以及資料傳輸中,假如點對點連接暫時無法連接而中斷(步驟903),點對點伺服器可以用來作為代傳第一裝置與第二裝置間資料。同時,第一裝置會嘗試重新以同樣的連接流程或是不同的連接流程的點對點方式連接到第二裝置。假如點對點連接恢復,資料會再度透過點對點傳輸方式進行(步驟905)。在這樣的設計下,即使點對點連接暫時中斷,第一裝置與第二裝置間的資料傳輸仍然可以保持繼續。因此便能提供更穩定的資料傳輸。
圖10是點對點連接的初始階段的改進方案。首先,第一裝置嘗試跟第二裝置建立點對點的連接(步驟1002)。具有不同策略的一個或多個的連接流程可以被嘗試使用,以在第一裝置與第二裝置間建立點對點連接。第一裝置可以檢查是否這樣的點對點連接可以建立(步驟1004)。不管如何,在點對點連接建立之前,資料可以透過點對點伺服器進行代轉(步驟1008)。在點對點連接建立後,資料便可以透過點對點直接連接來進行傳輸。這樣的方法可以省略等待建立點對點連接的時間而可先行透過代轉做資料傳輸。在一些應用情況下,例如IP攝影機的串流影像傳輸,透過上述的做法可以提供使用者更好的使用體驗,因為光是要進行點對點連接可能
就需要數秒的等待時間。
在一個實施例中,除了公用位址或私用位址,第一裝置與第二裝置各自具有唯一識別碼(Unique Identification,UID)。UID可以透過一個點對點伺服器指定,例如上述的伺服器21,或是透過製作每個裝置的廠商加以設定,以用來進行點對點連接。這些UID可以進一步整合到使用者資訊,並且伺服器維護並且管理資料庫,以維護UID資訊跟對應的使用者資訊。透過這樣的做法,第一裝置可以跟伺服器查詢所有註冊在同一個使用者的UID的對應裝置,或是使用者被授權存取的裝置列表。這樣的機制可以被整合到上述的一個或多個實施例。
此外,伺服器21可以透過在一個機器上安裝對應的軟體來實作,以提供上述協助終端裝置間進行點對點連接的服務。伺服器21也可以用軟體模組實作,而執行於多個機器上,或是實作成一個應用程式,在另一個雲端運算提供商的雲端運算環境執行。
雖然本發明以前述之較佳實施例揭露如上,然其並非用以限定本發明,任何熟習相像技藝者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之專利保護範圍須視本說明書所附之申請專利範圍所界定者為準。
20‧‧‧網路
21‧‧‧伺服器
22‧‧‧手機
23‧‧‧IP攝影機
Claims (20)
- 一種點對點連線方法,透過一伺服器協助一第一裝置以一點對點連接,連接到一第二裝置,包含:在該伺服器接收來自該第一裝置的一點對點連線請求;在該伺服器取得用以進行點對點連接到該第二裝置所需的一連接參數;以及除了該伺服器提供該第一裝置該連接參數,該伺服器更提供該第一裝置一連接指令,該連接指令對應到複數連接流程的一操作方法,根據該連接指令與該連接參數,該第一裝置動態決定如何使用該複數連接流程以跟該第二裝置建立該點對點連接。
- 如申請專利範圍第1項所述的方法,其中該操作方法包含定義使用該複數連接流程之一優先序列。
- 如申請專利範圍第1項所述的方法,其中該操作方法包含指出每一對應連接流程的一超時時間,當嘗試一個連接流程但無法在對應超時時間完成該第一裝置與該第二裝置的該點對點連接,則第一裝置嘗試另一個連接流程。
- 如申請專利範圍第1項所述的方法,其中該連接指令包含對應到一個關聯連接流程的一定義。
- 如申請專利範圍第4項所述的方法,其中該定義包含用來在該第一裝置執行以執行對應連接流程的程式碼。
- 如申請專利範圍第4項所述的方法,其中該定義包含一虛擬碼,用來轉換成在該第一裝置執行該操作流程對應的執行邏輯。
- 如申請專利範圍第1項所述的方法,更包含監控該第一裝置與該第二裝置的該點對點連接的連線狀態,並且根據連線狀態,伺服器調整後續的連接指令。
- 如申請專利範圍第1項所述的方法,更包含在該伺服器接收來自該第一裝置之一連線報告,以調整後續之該連接指令。
- 如申請專利範圍第1項所述的方法,其中該連接指令包含指定一點對點伺服器,用以協助該第一裝置與該第二裝置,用以建立該點對點連接。
- 如申請專利範圍第9項所述的方法,其中當該第一裝置與該第二裝置間之該點對點連接暫時中斷,直到該第一裝置與該第二裝置間之該點對點連接恢復前,該點對點伺服器代轉該第一裝置與該第二裝置間進行該點對點連接之傳輸資料。
- 如申請專利範圍第9項所述的方法,其中該連接流程包含一第一連接流程與一第二連接流程,該第一連接流程指示透過該點對 點伺服器代轉該第一裝置與該第二裝置間的資料傳輸,該第二連線流程指示不透過該點對點伺服器代轉該第一裝置與該第二裝置的資料傳輸,在該第一裝置與該第二裝置進行該點對點連接的早期階段採用該第一連接流程,並且在該第一裝置與該第二裝置建立該點對點連接後,替換該第一連接流程為該第二連接流程。
- 一種伺服系統,用以在一第一裝置與一第二裝置間透過一網路建立一點對點連接,包含:一網路界面,用以接收來自一第一裝置發出的一點對點連接請求,以連接到一第二裝置;一儲存器,用以儲存用以進行點對點連接到該第二裝置的一連接參數;以及一處理器,除了提供該第一裝置該連接參數,也提供該第一裝置一連接指令,該連接指令對應到一操作方法,該操作方法對應到複數連接流程,該第一裝置動態決定如何使用該複數連接流程,根據該連接參數與該連接指令,以進行對於該第二裝置的該點對點連接。
- 如申請專利範圍第12項所述的伺服器系統,其中該操作方法包含定義一優先序列,用以使用該複數連接流程。
- 如申請專利範圍第12項所述的伺服器系統,其中該操作方法包含指出每一對應連接流程的一超時時間,當嘗試一個連接流程但無法在對應超時時間完成該第一裝置與該第二裝置的該點對點連接,則第一裝置嘗試另一個連接流程。
- 如包含申請專利範圍第12項所述的伺服器系統,其中該連接指令包含對應到一個關聯連接流程的一定義。
- 如申請專利範圍第15項所述的伺服器系統,其中該定義包含用來在該第一裝置執行以執行對應連接流程的程式碼。
- 如申請專利範圍第15項所述的伺服器系統,其中該定義包含一虛擬碼,用來轉換成在該第一裝置執行該操作流程對應的執行邏輯。
- 一電子裝置,用於一點對點連接,包含:一網路界面,用以連接到一網路;以及一處理器,用以透過該網路界面傳送一連接請求到一伺服器以點對點連接到一第二裝置,該處理器接收來自該伺服器之一連接指令與一連接參數,該連接指令對應到一操作方法,該操作方法對應到複數連接流程,該處理器動態決定如何使用該複數操作流程,根據該連接參數與該連接指令,建立點對點連接到該第二裝置,該操作方法包含指出每一對應連接流程的一超時時間,當嘗試一個連接流程但無法在對應超時時間完成該第一裝置與該第二裝置的該點對點連接,則第一裝置嘗試另一個連接流程。
- 如申請專利範圍第18項所述的電子裝置,其中該連接指令包含用以在該處理器執行的程式指令,以執行對應的操作流程。
- 如申請專利範圍第18項所述的電子裝置,其中該連接指令包含虛擬碼,用以轉換成對應的執行邏輯,以操作該處理器,用以執行對應的操作流程。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103120401A TWI551100B (zh) | 2014-06-13 | 2014-06-13 | 用以進行點對點連接的方法、伺服器與裝置 |
CN201410506048.XA CN104468696B (zh) | 2014-06-13 | 2014-09-28 | 用以进行点对点连接的方法、服务器与装置 |
KR1020140181389A KR101666724B1 (ko) | 2014-06-13 | 2014-12-16 | 점대점 연결을 구현하기 위한 방법, 서버와 장치 |
US14/700,759 US9755928B2 (en) | 2014-06-13 | 2015-04-30 | Method, server and apparatus for establishing point-to-point connection |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW103120401A TWI551100B (zh) | 2014-06-13 | 2014-06-13 | 用以進行點對點連接的方法、伺服器與裝置 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201547245A true TW201547245A (zh) | 2015-12-16 |
TWI551100B TWI551100B (zh) | 2016-09-21 |
Family
ID=52914049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103120401A TWI551100B (zh) | 2014-06-13 | 2014-06-13 | 用以進行點對點連接的方法、伺服器與裝置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9755928B2 (zh) |
KR (1) | KR101666724B1 (zh) |
CN (1) | CN104468696B (zh) |
TW (1) | TWI551100B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110213320B (zh) * | 2019-01-02 | 2021-11-02 | 腾讯科技(深圳)有限公司 | 通信连接的方法、装置、电子设备及计算机可读存储介质 |
JP2020170965A (ja) * | 2019-04-04 | 2020-10-15 | パナソニックIpマネジメント株式会社 | カメラおよび通信方法 |
CN110719315B (zh) * | 2019-09-02 | 2022-11-01 | 北京三快在线科技有限公司 | 与服务器交互方法、与客户端交互方法、客户端及服务器 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7706362B1 (en) * | 1999-10-29 | 2010-04-27 | 3Com Corporation | Method and apparatus for selection of an endpoint device in a point to point link |
KR100617672B1 (ko) * | 2003-12-26 | 2006-08-28 | 삼성전자주식회사 | 이동통신 단말기와 기지국 간에 점대 점 프로토콜 연결설정 방법 |
CN101053204A (zh) * | 2004-08-20 | 2007-10-10 | 意大利电信股份公司 | 基于分组的网络中的服务质量监控 |
CN100486193C (zh) * | 2004-09-29 | 2009-05-06 | 腾讯科技(深圳)有限公司 | 多策略的p2p连接建立方法 |
JP4654006B2 (ja) | 2004-11-16 | 2011-03-16 | パナソニック株式会社 | サーバ装置、携帯端末、通信システム及びプログラム |
EP1868323A1 (en) * | 2005-03-22 | 2007-12-19 | NEC Corporation | Connection parameter setting system, method thereof, access point, server, radio terminal, and parameter setting device |
CN101651604B (zh) * | 2008-08-15 | 2013-10-02 | 华为技术有限公司 | 一种路由优化的方法及系统 |
KR101058275B1 (ko) * | 2009-08-12 | 2011-08-22 | 주식회사 엘지유플러스 | 통신 단말기 및 그 제어방법과, p2p 서버 시스템 및 그 제어방법 |
JP2011211490A (ja) * | 2010-03-30 | 2011-10-20 | Panasonic Corp | Vpn装置及びip通信装置、サーバ装置 |
KR101176144B1 (ko) * | 2010-11-30 | 2012-08-22 | 삼성에스디에스 주식회사 | 다중 네트워크 환경에서의 피어-투-피어 접속 시스템 및 방법 |
US9219615B2 (en) * | 2011-01-28 | 2015-12-22 | Throughtek Co., Ltd. | Remote information communication system and linking method thereof |
TWI448129B (zh) * | 2011-11-09 | 2014-08-01 | D Link Corp | According to the behavior of the network address translator to establish a transmission control protocol connection method |
CN102580526B (zh) * | 2012-02-10 | 2014-06-18 | 华中科技大学 | 一种富氧燃烧电厂烟气中co2光催化还原方法与装置 |
TWI535247B (zh) * | 2012-04-10 | 2016-05-21 | 財團法人資訊工業策進會 | 用於網路位址轉換穿透的傳輸系統及傳輸方法 |
CN103179045B (zh) * | 2013-02-07 | 2016-04-13 | 北京邮电大学 | 支持p2p流量优化的资源节点选择方法 |
-
2014
- 2014-06-13 TW TW103120401A patent/TWI551100B/zh active
- 2014-09-28 CN CN201410506048.XA patent/CN104468696B/zh active Active
- 2014-12-16 KR KR1020140181389A patent/KR101666724B1/ko active IP Right Grant
-
2015
- 2015-04-30 US US14/700,759 patent/US9755928B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20150365443A1 (en) | 2015-12-17 |
CN104468696A (zh) | 2015-03-25 |
KR101666724B1 (ko) | 2016-10-14 |
KR20150143260A (ko) | 2015-12-23 |
CN104468696B (zh) | 2019-04-16 |
US9755928B2 (en) | 2017-09-05 |
TWI551100B (zh) | 2016-09-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10972510B2 (en) | Media session between network endpoints | |
US8751614B2 (en) | Providing virtualized visibility through routers | |
US10103962B1 (en) | Return path trace | |
EP3024175B1 (en) | Method and system for remote management of network devices | |
JP5888405B2 (ja) | 情報処理装置、情報処理方法及びプログラム | |
TWI535323B (zh) | 點對點裝置與點對點連線方法 | |
US10601879B2 (en) | Media session between network endpoints | |
KR20140110058A (ko) | 통신 네트워크들을 위한 클라우드 컴퓨팅 제어된 게이트웨이 | |
US20170142165A1 (en) | Media Session between Network Endpoints | |
TWI551100B (zh) | 用以進行點對點連接的方法、伺服器與裝置 | |
WO2019041371A1 (zh) | 物联网基于连接数量的路由器切换方法及装置 | |
WO2018053894A1 (zh) | 物联网基于传输速率的接入点切换方法及装置 | |
US20130064250A1 (en) | Remotely accessing and controlling user equipment in a private network | |
JP6424340B2 (ja) | 接続方法、接続システム、携帯端末、およびプログラム | |
US20240039759A1 (en) | Systems and methods for control channel tunneling | |
CN112073553B (zh) | 网络地址转换类型的检测方法、装置、设备及存储介质 | |
US10375175B2 (en) | Method and apparatus for terminal application accessing NAS | |
US20180288140A1 (en) | Communication device and a communication network | |
CN117614929A (zh) | 一种基于udp穿透nat实现p2p通信的方法及设备 | |
Burda | Port Control Protocol in Software Defined Networks |