TWI599201B - 網路系統及建立資料連線的方法 - Google Patents
網路系統及建立資料連線的方法 Download PDFInfo
- Publication number
- TWI599201B TWI599201B TW105104014A TW105104014A TWI599201B TW I599201 B TWI599201 B TW I599201B TW 105104014 A TW105104014 A TW 105104014A TW 105104014 A TW105104014 A TW 105104014A TW I599201 B TWI599201 B TW I599201B
- Authority
- TW
- Taiwan
- Prior art keywords
- node
- relay
- server
- connection
- relay node
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 13
- 230000004044 response Effects 0.000 claims description 26
- 230000035484 reaction time Effects 0.000 claims description 12
- 238000013519 translation Methods 0.000 claims description 8
- 238000012546 transfer Methods 0.000 description 40
- 238000012360 testing method Methods 0.000 description 27
- 230000005540 biological transmission Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000035515 penetration Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
- H04L61/2589—NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]
-
- 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
- H04L12/00—Data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
- H04L12/4625—Single bridge functionality, e.g. connection of two networks over a single bridge
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
- H04L45/245—Link aggregation, e.g. trunking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2514—Translation of Internet protocol [IP] addresses between local and global IP addresses
-
- 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
-
- 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
-
- 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/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
本發明描述了一種網路系統及建立資料連線的方法,尤指一種應用於點對點網路結構下,使用資料轉送機制來建立資料連線的網路系統。
隨著網路科技快速進步,許多資料可透過無線或有線網路即時性地被廣播及傳輸。一般而言,資料透過網路傳輸必須遵守網際網路的通訊協定規範。常用的通訊協定包含檔案通訊協定(File Transfer Protocol,FTP)、傳輸控制協定/網際網路協定(Transmission Control Protocol/Internet Protocol,TCP/IP)、點對點式網路協定(Peer to Peer,P2P)等。其中P2P的網路資料傳輸協定,是一種依靠使用者群(節點)交換資訊的網際網路體系,優勢在於能有效減低傳輸路徑上的節點數量,以降低資料被盜用或遺失的風險。
目前的P2P的網路傳輸機制中,當節點A欲與節點B建立P2P的連線時,節點A會先向P2P的伺服器登入(Login) 或傳送一個連線請求(Request),並提供節點B的識別代碼(Unique Identifier, UID)給P2P的伺服器,以告知P2P的伺服器節點A的連線對象為節點B。隨後,P2P的伺服器會將節點B的網際網路協定位址(Internet Protocol Address)傳送給節點A。因此,節點A會依據節點B的網際網路協定位址建立P2P的資料連線(可利用P2P Hole Punching的穿透方式建立資料連線),並開始傳送資料封包。
然而,網路系統傳輸資料時,每一個節點會遵循三種組態中的一種,包含網路位址轉譯第一型式(Network Address Translation Type 1,NAT Type-1)、網路位址轉譯第二型式(Network Address Translation Type 1,NAT Type-2)以及網路位址轉譯第三型式(Network Address Translation Type 1,NAT Type-3)。而NAT Type-3的定義為對稱型(Symmetric)組態。當節點A以及節點B皆屬於NAT Type-3的組態時,由於NAT Type-3的傳輸限制,故無法成功建立P2P的連線。換言之,傳統P2P的網路傳輸機制中,並不是任意兩節點一定能成功建立P2P的資料連線。
本發明一實施例提出一種網路系統,包含伺服器、第一節點、第二節點以及複數個中繼節點。第一節點連結於伺服器,用於發送資料。第二節點連結於伺服器,用於接收資料。複數個中繼節點中的每一個中繼節點連結於伺服器,用以轉送資料。當第一節點與第二節點皆屬於網路位址轉譯第三型式時,由複數個中繼節點中選擇一個中繼節點。第一節點與中繼節點之間建立第一資料連線,第二節點與中繼節點之間建立第二資料連線。
本發明另一實施例提出一種建立資料連線的方法,包含伺服器將中繼節點表及第二節點的連線資訊傳送至第一節點,第一節點依據中繼節點表,選擇至少一個中繼節點,第一節點與至少一個中繼節點中之每一個中繼節點之間建立第一資料連線,第一節點將第二節點的連線資訊傳送至至少一個中繼節點中之每一中繼節點,及至少一個中繼節點中之每一個中繼節點,依據第二節點的連線資訊與第二節點之間建立第二資料連線。
第1圖係為本發明之網路系統100的架構圖。網路系統100包含伺服器10、第一節點A、第二節點B以及複數個中繼節點N
1至N
M,其中M為正整數。網路系統100可考慮一種點對點(Peer to Peer,P2P)網路結構之系統。網路系統100內的伺服器可為任何形式的伺服器,例如雲端伺服器、刀鋒伺服器、工作站等裝置。第一節點A連結於伺服器10,用於發送資料。第二節點B連結於伺服器10,用於接收資料。在本實施例中,第一節點A可為資料發送端,例如一台欲傳送資料的終端裝置,例如智慧型手機、平板電腦、個人電腦、或筆記型電腦等裝置,而第二節點B可為資料接收端,例如一台欲接收資料的終端裝置,例如智慧型手機、平板電腦、個人電腦、或筆記型電腦等裝置。複數個中繼節點N
1至N
M中的每一個中繼節點(Relay Node)連結於伺服器10,用以轉送資料。在本實施例中,網路系統100內所有的節點(包含第一節點A、第二節點B以及中繼節點N
1至N
M)可為任何具有資料傳輸功能的裝置,例如智慧型手機、平板電腦、個人電腦、或筆記型電腦等裝置。當所有的節點與伺服器10報到(Login)時,伺服器10將會取得每一個節點的網路位址轉譯組態(Network Address Translation Configuration,NAT Configuration)。當伺服器10取得節點的NAT組態為第一型式(NAT Type-1)或第二型式(NAT Type-2)時,會將對應節點之網際網路協定位址(Internet Protocol Address,IP Address)儲存。由於在P2P的網路系統中,若兩節點皆為第三型式的NAT組態(NAT Type-3),由於NAT Type-3的傳輸限制,兩節點之間無法成功建立P2P的連線。因此,伺服器10取得的對應NAT Type-1或NAT Type-2的對應節點,可以當成兩NAT Type-3節點間用於轉送資料的中繼節點。換言之,在第1圖中,考慮網路系統100內的第一節點A及第二節點B皆屬於NAT Type-3,因此第一節點A與第二節點B之間無法直接建立P2P的連線。而複數個中繼節點N
1至N
M屬於NAT Type-1或NAT Type-2。複數個中繼節點N
1至N
M的網際網路協定位址(IP Address)會被儲存於伺服器10之中。由於複數個中繼節點N
1至N
M會向伺服器10進行報到程序,因此伺服器10將會產生一個中繼節點表L(Relay Nodes List)。在本實施例中,中繼節點表L包含複數個可使用(Available)的中繼節點N
1至N
M對應的識別資訊及/或網際網路協定位址。
當第一節點A欲與第二節點B建立資料連線時,由於NAT Type-3的限制,無法直接建立P2P的連線。此時,伺服器10會傳送中繼節點表L至第一節點A,以使第一節點A取得中繼節點N
1至N
M的網際網路協定位址。在第一節點A取得中繼節點N
1至N
M的網際網路協定位址之後,會開始發送測試封包(例如User Datagram Protocol,UDP)至中繼節點N
1至N
M。而中繼節點N
1至N
M收到測試封包後,會回傳一個回應封包(Response Packet)至第一節點A。第一節點A可利用發送測試封包與收到回應封包的時間差,計算每一個中繼節點N
1至N
M的反應時間,並將每一個中繼節點N
1至N
M的反應時間排序。隨後,第一節點A會選擇一個具有最短反應時間的中繼節點(例如節點N
3)當成轉送資料的中繼節點。由於第一節點A可由中繼節點表L中取得最短反應時間的中繼節點(例如節點N
3)的網際網路協定位址,因此可與中繼節點建立資料連線。而第二節點B若再與被選擇的中繼節點建立資料連線時,第一節點A與第二節點B即可透過中繼節點(例如節點N
3)進行資料傳輸。然而,本發明選擇具有最短反應時間的中繼節點(例如節點N
3)的方式、第一節點A與中繼節點建立資料連線的步驟、第二節點B與中繼節點建立資料連線的步驟不被上述的方式侷限。舉例而言,在其它實施例中,第一節點A於發送測試封包至中繼節點N
1至N
M之後,第一節點A會選擇第一個收到回應封包對應的中繼節點當成轉送資料的中繼節點,而其它較慢的中繼節點則不會執行進一步的通訊。為了描述更為詳細,以下將詳細說明網路系統100利用各種不同的模式進行資料轉送的步驟和方法。
第2圖係為第1圖之網路系統100中,使用第一種模式進行資料轉送的示意圖。而第3圖係為第1圖之網路系統100中,使用第一種模式進行資料轉送的流程圖。網路系統100使用第一種模式進行資料轉送的方法包含下列步驟,而各步驟的順序並不侷限於本發明,如下:
<TABLE border="1" borderColor="#000000" width="_0001"><TBODY><tr><td> 步驟S301: </td><td> 伺服器10將中繼節點表L傳送至第一節點A; </td></tr><tr><td> 步驟S302: </td><td> 第一節點A依據中繼節點表L,測試並決定中繼節點N<sub>3</sub>; </td></tr><tr><td> 步驟S303: </td><td> 第一節點A將測試結果回報至伺服器10; </td></tr><tr><td> 步驟S304: </td><td> 伺服器10傳送第二節點B的網際網路協定位址至中繼節點N<sub>3</sub>; </td></tr><tr><td> 步驟S305: </td><td> 第一節點A與中繼節點N<sub>3</sub>之間建立資料連線; </td></tr><tr><td> 步驟S306: </td><td> 中繼節點N<sub>3</sub>與第二節點B之間建立資料連線。 </td></tr></TBODY></TABLE>
各步驟說明如下。在步驟S301中,伺服器10將具有中繼節點N
1至N
M的網際網路協定位址的中繼節點表L傳送至第一節點A。隨後,第一節點A會利用發送測試封包與收到回應封包的時間差,測試中繼節點N
1至N
M的反應時間,並依照步驟S302,決定一個最短反應時間的中繼節點N
3,或直接以第一個收到回應封包的節點當成最短反應時間的中繼節點N
3,並依照步驟S303,將測試結果回報至伺服器10。因此,伺服器10可取得第一節點A欲與中繼節點N
3之間建立資料連線的資訊。接下來,依照步驟S304,伺服器10會傳送第二節點B的網際網路協定位址至中繼節點N
3。由於第一節點A可依據中繼節點表L內取得中繼節點N
3的網際網路協定位址,因此於步驟S305中,第一節點A可依此與中繼節點N
3之間建立資料連線。同樣地,中繼節點N
3已於步驟S304中取得第二節點B的網際網路協定位址,因此於步驟S306中,中繼節點N
3可依此與第二節點B之間建立資料連線。因此,雖然第一節點A及第二節點B皆屬於NAT Type-3,無法直接建立P2P的連線而傳送資料,然而,透過步驟S301至步驟S306,第一節點A、中繼節點N
3以及第二節點B之間可建立資料連線。因此,第一節點A的資料可透過中繼節點N
3轉送到第二節點B。換言之,第一節點A與第二節點B之間仍可進行資料傳輸。
第4圖係為第1圖之網路系統100中,使用第二種模式進行資料轉送的示意圖。而第5圖係為第1圖之網路系統100中,使用第二種模式進行資料轉送的流程圖。網路系統100使用第二種模式進行資料轉送的方法包含下列步驟,而各步驟的順序並不侷限於本發明,如下:
<TABLE border="1" borderColor="#000000" width="_0002"><TBODY><tr><td> 步驟S501: </td><td> 伺服器10將中繼節點表L傳送至第一節點A及第二節點B; </td></tr><tr><td> 步驟S502: </td><td> 第一節點A依據中繼節點表L,測試並決定中繼節點N<sub>3</sub>; </td></tr><tr><td> 步驟S503: </td><td> 第一節點A將測試結果回報至伺服器10; </td></tr><tr><td> 步驟S504: </td><td> 第一節點A與中繼節點N<sub>3</sub>之間建立資料連線; </td></tr><tr><td> 步驟S505: </td><td> 第二節點B與中繼節點N<sub>3</sub>之間建立資料連線。 </td></tr></TBODY></TABLE>
各步驟說明如下。在步驟S501中,伺服器10同時將具有中繼節點N
1至N
M的網際網路協定位址的中繼節點表L傳送至第一節點A及第二節點B。隨後,第一節點A會利用發送測試封包與收到回應封包的時間差,測試中繼節點N
1至N
M的反應時間,並依照步驟S502,決定一個最短反應時間的中繼節點N
3。然而,第一節點A亦可直接以第一個收到回應封包的節點當成最短反應時間的中繼節點N
3。接著,第一節點A依照步驟S503,將測試結果回報至伺服器10。因此,伺服器10可取得第一節點A欲與中繼節點N
3之間建立資料連線的資訊。由於第一節點A可依據中繼節點表L內取得中繼節點N
3的網際網路協定位址,因此於步驟S504中,第一節點A可依此與中繼節點N
3之間建立資料連線。同時,伺服器10會向第二節點B發出連線請求,以使第二節點B與中繼節點N
3之間建立資料連線。由於第二節點B可依據中繼節點表L內取得中繼節點N
3的網際網路協定位址,因此於步驟S505中,第二節點B可依此與中繼節點N
3之間建立資料連線。因此,雖然第一節點A及第二節點B皆屬於NAT Type-3,無法直接建立P2P的連線而傳送資料,然而,透過步驟S501至步驟S505,第一節點A、中繼節點N
3以及第二節點B之間可建立資料連線。因此,第一節點A的資料可透過中繼節點N
3轉送到第二節點B。換言之,第一節點A與第二節點B之間仍可進行資料傳輸。
第6圖係為第1圖之網路系統100中,使用第三種模式進行資料轉送的示意圖。而第7圖係為第1圖之網路系統100中,使用第三種模式進行資料轉送的流程圖。網路系統100使用第三種模式進行資料轉送的方法包含下列步驟,而各步驟的順序並不侷限於本發明,如下:
<TABLE border="1" borderColor="#000000" width="_0003"><TBODY><tr><td> 步驟S701: </td><td> 伺服器10測試所有的中繼節點N<sub>1</sub>至N<sub>M</sub>,並依測試結果決定轉送資料的中繼節點N<sub>3</sub>; </td></tr><tr><td> 步驟S702: </td><td> 伺服器10將中繼節點N<sub>3</sub>的網際網路協定位址傳送至第一節點A,並向第一節點A發出與中繼節點N<sub>3</sub>建立資料連線的請求; </td></tr><tr><td> 步驟S703: </td><td> 伺服器10將中繼節點N<sub>3</sub>的網際網路協定位址傳送至第二節點B,並向第二節點B發出與中繼節點N<sub>3</sub>建立資料連線的請求; </td></tr><tr><td> 步驟S704: </td><td> 第一節點A與中繼節點N<sub>3</sub>之間建立資料連線; </td></tr><tr><td> 步驟S705: </td><td> 第二節點B與中繼節點N<sub>3</sub>之間建立資料連線。 </td></tr></TBODY></TABLE>
各步驟說明如下。在步驟S701中,伺服器10會測試所有的中繼節點N
1至N
M,並依測試結果決定轉送資料的中繼節點N
3。而測試的方法類似於前述的機制,伺服器10會發送測試封包(例如User Datagram Protocol,UDP)至中繼節點N
1至N
M。而中繼節點N
1至N
M收到測試封包後,會回傳一個回應封包(Response Packet)至伺服器10。伺服器10可利用發送測試封包與收到回應封包的時間差,計算每一個中繼節點N
1至N
M的反應時間,並將每一個中繼節點N
1至N
M的反應時間排序。而後,伺服器10會選出一個最短反應時間的中繼節點N
3。同樣地,伺服器10也可直接以第一個收到回應封包的節點當成最短反應時間的中繼節點N
3。換言之,不同於前述的兩種資料轉送模式,本實施例的中繼節點N
3的選擇權由伺服器10決定。之後,依照步驟S702,伺服器10將中繼節點N
3的網際網路協定位址傳送至第一節點A,並向第一節點A發出與中繼節點N
3建立資料連線的請求。並且,依照步驟S703,伺服器10將中繼節點N
3的網際網路協定位址傳送至第二節點B,並向第二節點B發出與中繼節點N
3建立資料連線的請求。因此,當伺服器10對第一節點A及第二節點B發出連線至中繼節點N
3的請求後,依照步驟S704,第一節點A將主動與中繼節點N
3之間建立資料連線。並且,依照步驟S705,第二節點B將主動與中繼節點N
3之間建立資料連線。並且,在本實施例中,步驟S702及步驟S703可同時進行,步驟S704及步驟S705也可同時進行,以提升建立連線的效率。因此,雖然第一節點A及第二節點B皆屬於NAT Type-3,無法直接建立P2P的連線而傳送資料,然而,透過步驟S701至步驟S705,第一節點A、中繼節點N
3以及第二節點B之間可建立資料連線。因此,第一節點A的資料可透過中繼節點N
3轉送到第二節點B。換言之,第一節點A與第二節點B之間仍可進行資料傳輸。
第8圖係為第1圖之網路系統100中,使用第四種模式進行資料轉送的示意圖。而第9圖係為第1圖之網路系統100中,使用第四種模式進行資料轉送的流程圖。網路系統100使用第四種模式進行資料轉送的方法包含下列步驟,而各步驟的順序並不侷限於本發明,如下:
<TABLE border="1" borderColor="#000000" width="_0004"><TBODY><tr><td> 步驟S901: </td><td> 伺服器10將中繼節點表L及第二節點B的網際網路協定位址傳送至第一節點A; </td></tr><tr><td> 步驟S902: </td><td> 第一節點A依據中繼節點表L,測試並決定中繼節點N<sub>3</sub>; </td></tr><tr><td> 步驟S903: </td><td> 第一節點A與中繼節點N<sub>3</sub>之間建立資料連線,並將第二節點B的網際網路協定位址傳送至中繼節點N<sub>3</sub>; </td></tr><tr><td> 步驟S904: </td><td> 中繼節點N<sub>3</sub>與第二節點B之間建立資料連線。 </td></tr></TBODY></TABLE>
各步驟說明如下。在步驟S901中,伺服器10將具有中繼節點N
1至N
M的網際網路協定位址的中繼節點表L以及第二節點B的網際網路協定位址傳送至第一節點A。然而,本實施例亦可於步驟S901之前,第一節點可傳送一個連線請求(Request)至伺服器10。在步驟S901之後,第一節點A會利用發送測試封包與收到回應封包的時間差,測試中繼節點N
1至N
M的反應時間,並依照步驟S902,決定一個最短反應時間的中繼節點N
3,或可直接以第一個收到回應封包的節點當成最短反應時間的中繼節點N
3。由於第一節點A可依據中繼節點表L內取得中繼節點N
3的網際網路協定位址,因此於步驟S903中,第一節點A可依此與中繼節點N
3之間建立資料連線。隨後,第一節點A會將第二節點B的網際網路協定位址傳送至中繼節點N
3。當中繼節點N
3收到第二節點B的網際網路協定位址後,依照步驟S904,中繼節點N
3會與第二節點B之間建立資料連線。因此,雖然第一節點A及第二節點B皆屬於NAT Type-3,無法直接建立P2P的連線而傳送資料,然而,透過步驟S901至步驟S904,第一節點A、中繼節點N
3以及第二節點B之間可建立資料連線。因此,第一節點A的資料可透過中繼節點N
3轉送到第二節點B。換言之,第一節點A與第二節點B之間仍可進行資料傳輸。
上述的四種資料轉送模式僅為本發明實施例的四種變化,其轉送資料的步驟並不侷限於本發明。舉例而言,在第三種模式進行資料轉送的過程中,於步驟S701之後,伺服器10可直接將第一節點A與第二節點B的網際網路協定位址傳送至中繼節點N
3。之後,中繼節點N
3可同時對第一節點A及第二節點B建立資料連線。或者,在其它實施例中,伺服器10或第一節點A可以不經過測試中繼節點N
1至N
M的反應時間之步驟,而直接指定特定的中繼節點來當成資料轉送的節點。並且,本發明的轉送資料機制也可為動態的轉送資料機制。換言之,中繼節點N
1至N
M會週期性地向伺服器10進行報到程序,因此伺服器10會週期性的更新中繼節點表L。因此,當考慮動態的轉送資料機制時,伺服器10會動態地取得目前可使用的(Available)的中繼節點的網際網路協定位址,並將更新後的中繼節點表L傳至第一節點A以使第一節點A能動態地選擇適當的中繼節點來做資料轉送。
並且,本發明之網路系統的資料轉送模式也可進行下列數種變化。舉例而言,第一節點A可選擇至少一個中繼節點執行資料轉送,以增加通道容量(Channel Capacity)。而使用多個中繼節點執行資料轉送的流程描述於下。首先,伺服器10傳送中繼節點表L至第一節點A。伺服器10也將第二節點B對應的網際網路協定位址傳送至第一節點A。第一節點A會依據中繼節點表L內的資訊,利用前述之測試封包與回應封包計算每一個中繼節點N
1至N
M的反應時間,並由N
1至N
M的中繼節點中選擇Q個轉送資料的中繼節點,其中M與Q可為大於1的正整數。然而,第一節點A亦可利用前述的方式,於發送測試封包至中繼節點N
1至N
M之後,選擇前Q個收到回應封包對應的中繼節點當成轉送資料的中繼節點。第一節點A依據中繼節點表L內Q個中繼節點對應之網際網路協定位址,與Q個中繼節點建立資料連線後,將第二節點B對應的網際網路協定位址傳送至Q個中繼節點。因此,Q個中繼節點可依據第二節點B對應的網際網路協定位址分別與第二節點B建立資料連線。最終,第一節點A可透過Q個中繼節點與第二節點B進行資料傳輸。
本發明另一種實施例的變化可為,伺服器10傳送中繼節點表L至第一節點A。第一節點A依據中繼節點表L內的中繼節點N
3對應之網際網路協定位址,與中繼節點N
3建立資料連線後,第一節點A將中繼節點N
3對應之網際網路協定位址傳送至伺服器10。接著,伺服器10將中繼節點N
3對應之網際網路協定位址傳送至第二節點B。因此,第二節點B可依據中繼節點N
3對應之網際網路協定位址與中繼節點N
3建立資料連線。最終,第一節點A可透過中繼節點N
3與第二節點B進行資料傳輸。
本發明另一種實施例的變化可為,伺服器10傳送中繼節點表L至第一節點A及第二節點B之後,第一節點A依據中繼節點表L內的中繼節點N
3對應之網際網路協定位址,與中繼節點N
3建立資料連線。接下來,第一節點A會傳送中繼節點N
3的辨識資訊(例如Identifier)至伺服器10,以使伺服器10獲取第一節點A選擇了中繼節點N
3當成轉送節點的資訊。然後,伺服器10會將中繼節點N
3的辨識資訊傳送至第二節點B。由於第二節點B已經接收到中繼節點表L,因此,第二節點B可依據中繼節點N
3的辨識資訊,利用中繼節點表L內對應中繼節點N
3的網際網路協定位址,與中繼節點N
3建立資料連線。最終,第一節點A可透過中繼節點N
3與第二節點B進行資料傳輸。
本發明另一種實施例的變化可為,伺服器10將第一節點A對應的網際網路協定位址及/或第二節點B對應的網際網路協定位址傳送至中繼節點N
3。因此,中繼節點N
3可依據第一節點A對應的網際網路協定位址及/或第二節點B對應的網際網路協定位址,對第一節點A及/或第二節點B建立資料連線。於此,中繼節點N
3可同時對第一節點A及第二節點B建立資料連線,亦可於不同時間點分別對第一節點A及第二節點B建立資料連線。最終,第一節點A可透過中繼節點N
3與第二節點B進行資料傳輸。
於上述的轉送模式中,由於伺服器10和網路系統100內所有的節點連結,因此可取得所有節點的網路位址轉譯組態(NAT Configuration),當第一節點A及第二節點B皆屬於NAT Type-3的組態時,伺服器10會判斷第一節點A及第二節點B無法建立P2P的連線,因此可直接進入資料轉送模式。然而,本發明也可考慮當第一節點A及第二節點B建立P2P失敗之後,才進入資料轉送模式。在此條件下,由於第一節點A及第二節點B會先嘗試建立P2P連線,因此第一節點A及/或第二節點B會取得對方的網際網路協定位址。換言之,若考慮第一節點A及第二節點B先嘗試建立P2P連線條件下,第四種模式的資料轉送方法的步驟S901中,由於第一節點A先前已取得第二節點B的網際網路協定位址,伺服器10可僅將中繼節點表L傳送至第一節點A。而第一節點A於步驟S903中,可將原先內存於第一節點A中之第二節點B的網際網路協定位址傳送至中繼節點N
3。
並且,在本發明之實施例中,雖然兩節點間建立連線的依據為網際網路協定位址。然而,本發明卻不以此為限制,任何可將兩節點間建立連線之資訊皆屬於本發明的範疇。舉例而言,兩節點間建立連線的依據可為連線資訊,而連線資訊可定義為Point-to-Point Protocol over Ethernet(PPPoE)的資訊、Local Area Network(LAN)的資訊或Ethernet Mac Address的資訊等等。
綜上所述,本發明揭露一種應用於點對點(P2P)網路結構下,使用資料轉送機制來建立資料連線的網路系統。在資料發送端節點以及資料接收端節點皆屬於NAT Type-3的組態時,仍可以透過適合的中繼節點傳輸資料。因此,相較於傳統P2P網路系統的限制,本發明的網路系統在中繼節點存在的條件下,可保證兩節點之間資料傳輸的可靠度,進一步提升P2P網路系統的資料穿透率。同時,本發明因為不需要如傳統的P2P網路系統需要一直重試(Retry)建立連結,亦可降低節點及伺服器的負載。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
<TABLE border="1" borderColor="#000000" width="_0005"><TBODY><tr><td> 100 </td><td> 網路系統 </td></tr><tr><td> 10 </td><td> 伺服器 </td></tr><tr><td> A </td><td> 第一節點 </td></tr><tr><td> B </td><td> 第二節點 </td></tr><tr><td> L </td><td> 中繼節點表 </td></tr><tr><td> N<sub>1</sub>至N<sub>M</sub></td><td> 中繼節點 </td></tr><tr><td> S301至S306 </td><td> 步驟 </td></tr><tr><td> S501至S505 </td><td> 步驟 </td></tr><tr><td> S701至S705 </td><td> 步驟 </td></tr><tr><td> S901至S904 </td><td> 步驟 </td></tr></TBODY></TABLE>
第1圖係為本發明之網路系統之實施例的架構圖。 第2圖係為第1圖之網路系統中,使用第一種模式進行資料轉送的示意圖。 第3圖係為第1圖之網路系統中,使用第一種模式進行資料轉送的流程圖。 第4圖係為第1圖之網路系統中,使用第二種模式進行資料轉送的示意圖。 第5圖係為第1圖之網路系統中,使用第二種模式進行資料轉送的流程圖。 第6圖係為第1圖之網路系統中,使用第三種模式進行資料轉送的示意圖。 第7圖係為第1圖之網路系統中,使用第三種模式進行資料轉送的流程圖。 第8圖係為第1圖之網路系統中,使用第四種模式進行資料轉送的示意圖。 第9圖係為第1圖之網路系統中,使用第四種模式進行資料轉送的流程圖。
<TABLE border="1" borderColor="#000000" width="_0006"><TBODY><tr><td> 100 </td><td> 網路系統 </td></tr><tr><td> 10 </td><td> 伺服器 </td></tr><tr><td> A </td><td> 第一節點 </td></tr><tr><td> B </td><td> 第二節點 </td></tr><tr><td> N<sub>1</sub>至N<sub>M</sub></td><td> 中繼節點 </td></tr><tr><td> L </td><td> 中繼節點表 </td></tr></TBODY></TABLE>
Claims (15)
- 一種網路系統,包含:一伺服器;一第一節點,連結於該伺服器,用於發送一資料;一第二節點,連結於該伺服器,用於接收該資料;及複數個中繼節點,每一中繼節點連結於該伺服器,用以轉送該資料;其中當該第一節點與該第二節點皆屬於網路位址轉譯第三型式(Network Address Translation Type 3)時,自該複數個中繼節點中選擇與該第一節點之間,具有一最短反應時間的一中繼節點,該第一節點與該中繼節點之間建立一第一連線,及該第二節點與該中繼節點之間建立一第二連線。
- 如請求項1所述之系統,其中該伺服器包含一中繼節點表,且該伺服器將該中繼節點表傳送至該第一節點。
- 如請求項2所述之系統,其中該中繼節點表包含該複數個中繼節點中可使用的至少一個中繼節點對應的網際網路協定位址(Internet Protocol Address)。
- 如請求項1所述之系統,其中該伺服器將該第二節點對應的一網際網路協定位址傳送至該第一節點,該第一節點與該中繼節點之間建立該第一連線後,該第一節點將該第二節點對應的該網際網路協定位址傳送至該中繼節點,及該中繼節點依據該第二節點對應的該網際網路協定位址與該第二節點建立該第二連線。
- 如請求項1所述之系統,其中該第一節點與該中繼節點之間建立該第一連線時,該第一節點將該中繼節點對應的一網際網路協定位址傳送至該伺服器,該伺服器將該中繼節點對應的該網際網路協定位址傳送至該第二節點,及該第二節點依據該中繼節點對應的該網際網路協定位址與該中繼節點建立該第二連線。
- 如請求項1所述之系統,其中該伺服器另包含該第二節點的一網際網路協定位址,且該伺服器將該第二節點的該網際網路協定位址傳送至該中繼節點,以使該第二節點與該中繼節點之間建立該第二連線。
- 如請求項1所述之系統,其中該伺服器包含一中繼節點表,且該伺服器將該中繼節點表之資料傳送至該第一節點及該第二節點。
- 如請求項7所述之系統,其中該中繼節點表包含該複數個中繼節點中可使用的至少一個中繼節點的網際網路協定位址。
- 如請求項8所述之系統,其中該第一節點係依據該中繼節點的網際網路協定位址與該中繼節點建立該第一連線,及該第二節點係依據該中繼節點的網際網路協定位址與該中繼節點建立該第二連線。
- 如請求項8所述之系統,其中該第一節點與該中繼節點之間建立該第一連線之後,該第一節點傳送該中繼節點對應的一辨識資訊至該伺服器,該伺服器將該中繼節點對應的該辨識資訊傳送至該第二節點,及該第二節點依據該中繼節點對應的該辨識資訊與該中繼節點建立該第二連線。
- 如請求項1所述之系統,其中該伺服器將該中繼節點的一網際網路協定位址傳送至該第一節點及該第二節點。
- 如請求項1所述之系統,其中該伺服器將該第一節點對應的一網際網路協定位址及/或該第二節點對應的一網際網路協定位址傳送至該中繼節點,以使該中繼節點對該第一節點建立該第一連線及/或對該第二節點建立該第二連線。
- 一種建立資料連線的方法,包含:一第一節點傳送一連線請求至一伺服器;該第一節點接收由該伺服器傳來之一中繼節點表及一第二節點的一連線資訊;該第一節點依據該中繼節點表,選擇與該第一節點之間,具有一最短反應時間的一中繼節點;該第一節點與該中繼節點之間建立一第一連線;該第一節點將該第二節點的該連線資訊傳送至該中繼節點;及該中繼節點依據該第二節點的該連線資訊,與該第二節點之間建立一第二連線。
- 如請求項13所述之方法,其中該第二節點的該連線資訊係為該第二節點的一網際網路協定位址。
- 如請求項13所述之方法,其中該第一節點與該第二節點係為兩網路 位址轉譯第三型式(Network Address Translation Type 3)的節點。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105104014A TWI599201B (zh) | 2016-02-05 | 2016-02-05 | 網路系統及建立資料連線的方法 |
CN201610232367.5A CN106254410A (zh) | 2016-02-05 | 2016-04-14 | 网络系统及建立数据连接的方法 |
US15/365,964 US10666769B2 (en) | 2016-02-05 | 2016-12-01 | Network system and method for establishing data link by using relay node |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW105104014A TWI599201B (zh) | 2016-02-05 | 2016-02-05 | 網路系統及建立資料連線的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201729568A TW201729568A (zh) | 2017-08-16 |
TWI599201B true TWI599201B (zh) | 2017-09-11 |
Family
ID=57626637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW105104014A TWI599201B (zh) | 2016-02-05 | 2016-02-05 | 網路系統及建立資料連線的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10666769B2 (zh) |
CN (1) | CN106254410A (zh) |
TW (1) | TWI599201B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6747571B2 (ja) * | 2017-02-16 | 2020-08-26 | 日本電気株式会社 | 無線アドホックネットワークにおける通信端末、通信方法及び通信プログラム |
JP6863119B2 (ja) * | 2017-06-20 | 2021-04-21 | 沖電気工業株式会社 | 無線通信システム、無線中継装置、及び無線中継プログラム |
CN107231373A (zh) * | 2017-06-28 | 2017-10-03 | 深圳市欧乐在线技术发展有限公司 | 一种互联网数据安全传输方法及装置 |
CN112039822B (zh) * | 2019-06-03 | 2022-08-02 | 本无链科技(深圳)有限公司 | 一种基于WebRTC构建实时区块链网络的方法及系统 |
CN112118273B (zh) * | 2019-06-19 | 2023-04-07 | 杭州萤石软件有限公司 | 一种数据交互方法、系统及第一客户端 |
US11540171B2 (en) * | 2019-07-12 | 2022-12-27 | Qualcomm Incorporated | Assisting communications of small data payloads with relay nodes |
CN113364865B (zh) * | 2021-06-03 | 2023-04-07 | 湖南快乐阳光互动娱乐传媒有限公司 | 资源的获取方法、装置、可读介质以及设备 |
CN113297603A (zh) * | 2021-06-18 | 2021-08-24 | 中国农业银行股份有限公司 | 数据处理方法、装置、设备、存储介质和程序产品 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3835462B2 (ja) * | 2004-05-07 | 2006-10-18 | 松下電器産業株式会社 | 情報処理装置、及びバブルパケット送信方法 |
US10454890B2 (en) * | 2005-01-31 | 2019-10-22 | Unisys Corporation | Negotiation of security protocols and protocol attributes in secure communications environment |
US9210622B2 (en) * | 2009-08-12 | 2015-12-08 | Qualcomm Incorporated | Method and apparatus for relay backhaul design in a wireless communication system |
US20110082941A1 (en) | 2009-10-06 | 2011-04-07 | Electronics And Telecommunications Research Institute | Method of providing direct communication in internet protocol network |
CN102064992B (zh) * | 2009-11-13 | 2012-11-28 | 中兴通讯股份有限公司 | 一种中继节点、中继节点的分布式网络及其组网方法 |
CN102447749B (zh) * | 2010-10-15 | 2015-10-28 | 中兴通讯股份有限公司 | 支持nat穿越的集中式p2p系统、nat穿越的方法 |
US20130262574A1 (en) * | 2011-03-15 | 2013-10-03 | Gabriel Cohen | Inline User Addressing in Chat Sessions |
US20130093793A1 (en) * | 2011-10-17 | 2013-04-18 | Microsoft Corporation | Pinning a Callout Animation |
TWI434595B (zh) | 2011-11-09 | 2014-04-11 | Quanta Comp Inc | 網路系統之連線建立管理方法及其相關系統 |
CN102438018A (zh) | 2011-12-16 | 2012-05-02 | 北京邮电大学 | 基于自治域的P2P-VoIP 网络中继节点选择方法 |
CN102647355B (zh) * | 2012-04-12 | 2014-11-05 | 华为技术有限公司 | Lacp协商处理方法、中继节点及系统 |
US9686189B2 (en) * | 2012-12-26 | 2017-06-20 | Microsoft Technology Licensing, Llc | Routing data in a bi-directional communication session over an overlay network using relay nodes |
KR101497630B1 (ko) | 2013-04-05 | 2015-03-03 | 삼성에스디에스 주식회사 | 모바일 환경에서의 p2p 접속 시스템 및 단말과 이를 이용한 p2p 접속 방법 |
US20150032686A1 (en) * | 2013-07-23 | 2015-01-29 | Salesforce.Com, Inc. | Application sharing functionality in an information networking environment |
CN103414800B (zh) * | 2013-08-13 | 2016-08-31 | 南京师范大学 | 一种nat穿越中分布式中继服务器的分配和选择方法及系统 |
CN104518959B (zh) * | 2013-09-30 | 2018-03-20 | 张永杰 | 一种设备间通信的方法及装置 |
CN104518983B (zh) * | 2013-09-30 | 2018-08-03 | 张永杰 | 一种多设备间的通信方法及装置 |
CN105430066A (zh) * | 2015-11-06 | 2016-03-23 | 浪潮软件集团有限公司 | 一种基于p2p技术的税控设备互联方法 |
-
2016
- 2016-02-05 TW TW105104014A patent/TWI599201B/zh active
- 2016-04-14 CN CN201610232367.5A patent/CN106254410A/zh active Pending
- 2016-12-01 US US15/365,964 patent/US10666769B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN106254410A (zh) | 2016-12-21 |
TW201729568A (zh) | 2017-08-16 |
US10666769B2 (en) | 2020-05-26 |
US20170230484A1 (en) | 2017-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI599201B (zh) | 網路系統及建立資料連線的方法 | |
US9515920B2 (en) | Name-based neighbor discovery and multi-hop service discovery in information-centric networks | |
CN103905463B (zh) | 一种适用于多路径传输的连接管理与控制方法 | |
KR101176144B1 (ko) | 다중 네트워크 환경에서의 피어-투-피어 접속 시스템 및 방법 | |
EP2951953A1 (en) | Method of managing zigbee network in the internet of things | |
TWI584194B (zh) | 在一服務導向架構(soa)網路中尋求服務之技術 | |
CN109495599B (zh) | 数据传输方法和系统、电子装置及计算机可读存储介质 | |
US8619631B2 (en) | Information communication system, information communication method, node device included in information communication system and recording medium recording information processing program | |
US10129209B2 (en) | Method and communication device for network address translation traversal | |
KR20120071576A (ko) | 분산 해쉬 테이블 기반의 rtps 디스커버리 방법, 장치 및 시스템 | |
JP3872051B2 (ja) | コンテンツの検索と配信を行うシステムと方法、及びプログラム | |
CN112073545A (zh) | 使用dns来传送服务器设备的mp-tcp能力 | |
CN109120556B (zh) | 一种云主机访问对象存储服务器的方法及系统 | |
JP6393475B2 (ja) | 通信アダプタ装置、通信システム、トンネル通信方法、及びプログラム | |
Chang et al. | An efficient service discovery system for dual-stack cloud file service | |
JP2020010315A (ja) | ネットワークトポロジー取得方法及び装置 | |
CN101510901B (zh) | 一种分布式设备间的通信方法、通信设备和通信系统 | |
JP2006203575A (ja) | 通信方法 | |
CN103701952A (zh) | 一种业务数据的下行传输方法及分组数据网关 | |
CN107317869B (zh) | 一种节点nat类型探测方法、装置以及系统 | |
CN114844856B (zh) | 网络穿透方法、装置、电子设备及存储介质 | |
KR101586058B1 (ko) | Nat환경을 고려한 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법 | |
CN104780468B (zh) | 流媒体数据接收方法、流媒体系统及用在流媒体系统中的节点装置 | |
CN114466008B (zh) | 一种云边通信系统、方法、装置、电子设备及存储介质 | |
CN106330487B (zh) | 自动配置方法、控制器及设备 |