TWI595765B - 穿透網路位置轉換器之方法及通訊裝置 - Google Patents

穿透網路位置轉換器之方法及通訊裝置 Download PDF

Info

Publication number
TWI595765B
TWI595765B TW104134648A TW104134648A TWI595765B TW I595765 B TWI595765 B TW I595765B TW 104134648 A TW104134648 A TW 104134648A TW 104134648 A TW104134648 A TW 104134648A TW I595765 B TWI595765 B TW I595765B
Authority
TW
Taiwan
Prior art keywords
communication device
network location
point
communication
location converter
Prior art date
Application number
TW104134648A
Other languages
English (en)
Other versions
TW201715873A (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 財團法人工業技術研究院
Priority to TW104134648A priority Critical patent/TWI595765B/zh
Priority to CN201510777167.3A priority patent/CN106612340B/zh
Priority to US15/051,298 priority patent/US10129209B2/en
Publication of TW201715873A publication Critical patent/TW201715873A/zh
Application granted granted Critical
Publication of TWI595765B publication Critical patent/TWI595765B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2589NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2517Translation of Internet protocol [IP] addresses using port numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2575NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/2854Wide area networks, e.g. public data networks
    • H04L12/2856Access arrangements, e.g. Internet access
    • H04L12/2858Access network architectures
    • H04L12/2859Point-to-point connection between the data network and the subscribers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)

Description

穿透網路位置轉換器之方法及通訊裝置
本揭露是有關於一種穿透網路位置轉換器之方法及裝置。
現行的網路為了解決網際網路協定(Internet Protocol,IP)位址短缺、提升網路安全性、及阻止外部網路上的主機的惡意活動,大部份的連網設備都會通過一網路位置轉換器(Network Address Translation,NAT)才連到外部網路或另一連網設備。這可能會導致連網設備與另一連網設備之間的資料傳輸因無法穿透網路位置轉換器而造成資料傳輸失敗。因此,如何穿透網路位置轉換器變成一個必須解決的問題。一種方法是使用中繼伺服器(relay server)來穿透網路位置轉換器,這種方法有較高的傳輸成功率,然而這種方法傳輸效率較低,且需要較高的傳輸成本,例如需要額外頻寬或者需要較長的傳輸時間。另一種方法是使用點對點傳輸(peer-to-peer,P2P)的方式穿透網路位置轉換器,這種方法可有較佳的傳輸效率並且可節省頻寬,但是在使用對稱型(symmetric)的網路位置轉換器的情況下,P2P傳輸穿透網路位置轉換器的成功率仍然較低。有鑒於此,有必要提供一種傳輸效率較高、傳輸成本較低且傳輸成功率更高的方式來穿透網路位置轉換器。
根據本揭露的一實施例,提供一種穿透網路位置轉換器之方法。此方法用於一通訊裝置,此通訊裝置對應連接至一網路位置轉換器,此方法包括以下步驟。通訊裝置與另一通訊裝置交換一網路位置轉換器資訊。通訊裝置與另一通訊裝置經由一中繼伺服器建立一中繼連線。根據該網路位置轉換器資訊判斷通訊裝置與另一通訊裝置建立一點對點連線是否可行。若通訊裝置與另一通訊裝置建立點對點連線為可行,則通訊裝置嘗試與另一通訊裝置建立點對點連線,若點對點連線建立失敗,則通訊裝置再次嘗試與另一通訊裝置建立點對點連線。
根據本揭露的另一實施例,提供一種穿透網路位置轉換器之通訊裝置。此通訊裝置對應連接一網路位置轉換器。通訊裝置包含一通訊單元以及一處理單元。處理單元耦接至通訊單元,並用以控制通訊單元以執行下列步驟。通訊單元與另一通訊裝置交換一網路位置轉換器資訊。通訊單元與另一通訊裝置經由一中繼器建立一中繼連線。根據網路位置轉換器資訊判斷通訊單元與另一通訊裝置建立一點對點連線是否可行。若通訊單元與另一通訊裝置建立點對點連線為可行,則通訊單元嘗試與另一通訊裝置建立點對點連線,若點對點連線建立失敗,則通訊單元再次嘗試與另一通訊裝置建立點對點連線。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
110、120、130、140、150、210、220、230、240、250、260、270、280、290、2910、2920、2930、2410、2420、2430、2440、10、20、30、40、50、60、70、80、90、100、112、122、132、142、152、160、170、180、190、200、212、410、420‧‧‧步驟
A、B、400‧‧‧通訊裝置
NAT1、NAT2‧‧‧網路位置轉換器
STUN‧‧‧NAT會話傳輸應用程式(Session Traversal Utilities for NAT)伺服器
P‧‧‧代理伺服器
RELAY‧‧‧中繼伺服器
第1圖繪示依據本揭露第一實施例的穿透網路位置轉換器之方法的流程圖。
第2A、2B及2C圖繪示依據本揭露第二實施例的穿透網路位置轉換器之方法的流程圖。
第3A圖及第3B圖繪示依據本揭露又一實施例的穿透網路位置轉換器之方法的示意圖。
第4圖繪示依據本揭露一實施例的穿透網路位置轉換器之通訊裝置的方塊圖。
第1圖繪示依據本揭露第一實施例的穿透網路位置轉換器之方法的流程圖。此實施例用於一通訊裝置,此通訊裝置對應連接至一網路位置轉換器,對應連接的方式例如透過有線或無線的方式連接,例如透過網際網路(internet)、無線區域網路(wireless local area network,WLAN)等,本揭露不加以限制。此方法包括以下步驟。首先,執行步驟110,通訊裝置與另一通訊裝置交換一網路位置轉換器資訊。接著,執行步驟120,通訊裝置與另一通訊裝置經由一中繼伺服器建立一中繼連線,並傳送資料至該另一通訊裝置。之後,執行步驟130,根據網路位置轉換器資訊判斷通訊裝置與另一通訊裝置建立一點對點連線是否可行。最後,若通訊裝置與另一通訊裝置建立點對點連線為可行,則執行步驟140,通訊裝置嘗試與另一通訊裝置建立點對點連線,以透過點對點連線傳送資料至另一通訊裝置。若點對點連線建立失敗,則通訊裝置再次嘗試與另一通訊裝置建立點對點連線。另一方面,若在步驟130中,判斷通訊裝置與另一通訊裝置建立點對 點連線為不可行,則不建立點對點連線,如方塊150所示。
此實施例先建立傳輸成功率較高的中繼連線,再嘗試建立傳輸效率較高、傳輸成本較低的點對點連線,藉由先建立傳輸成功率較高的中繼連線,使用者可不需等待嘗試建立點對點連線的時間而使用中繼連線傳輸資料。另外,此實施例在判斷點對點連線為可行但建立點對點連線失敗之後,會繼續嘗試建立點對點連線,也就是盡量使用傳輸效率較高、傳輸成本較低的點對點連線。
第2A、2B及2C圖繪示依據本揭露第二實施例的穿透網路位置轉換器之方法的流程圖。此方法用於一通訊裝置,通訊裝置可與另一通訊裝置之間進行資料傳輸,通訊裝置與另一通訊裝置分別對應連接至第一網路位置轉換器及第二網路位置轉換器。在此實施例中,此方法包含步驟210,預測對應連接至通訊裝置的網路位置轉換器使用之通訊埠,以及判斷對應連接至通訊裝置的網路位置轉換器的類型。之後,執行步驟220,通訊裝置傳送相關於第一網路位置轉換器之第一網路位置轉換器資訊,並接收相關於對應連接另一通訊裝置之第二網路位置轉換器之第二網路位置轉換器資訊。第一網路位置轉換器資訊可例如包含通訊裝置之區域網際網路協定位址(local IP)、區域通訊埠(local port)、第一網路位置轉換器之公共網際網路協定位址(public IP)、第一網路位置轉換器使用之公共通訊埠(public port)及/或第一網路位置轉換器之類型。同理,第二網路位置轉換器資訊可例如包含另一通訊裝置之區域網際網路協定位址、區域通訊埠、第二網路位置轉換器之公共網際網路協定位址、第二網路位置轉換器之使用之公共通訊埠及/或第二網路位置轉換器之類型。接著,執行步驟230, 通訊裝置與另一通訊裝置建立一中繼連線並開始傳送資料至該另一通訊裝置。之後,執行步驟240,根據第一網路位置轉換器資訊及第二網路位置轉換器資訊判斷通訊裝置與另一通訊裝置建立一點對點連線是否可行。若在步驟240中判斷通訊裝置與另一通訊裝置建立點對點連線為不可行,則不建立點對點連線,如方塊250所示。
而若判斷通訊裝置與另一通訊裝置建立點對點連線為可行,則執行步驟260,通訊裝置嘗試與另一通訊裝置建立點對點連線。接著,執行步驟270,判斷通訊裝置與另一通訊裝置之間之點對點連線是否建立成功。若點對點連線建立成功,則執行步驟280,中斷通訊裝置與另一通訊裝置建立之中繼連線。
然而,若點對點連線建立失敗,則會執行步驟290,通訊裝置再次嘗試與另一通訊裝置建立點對點連線。在一些實施例中,步驟290更可包含多個步驟。首先,執行步驟2910,判斷點對點連線失敗的次數是否超過特定次數,例如5次,或者可設定為N%10>5次,亦即N除以10的餘數大於5。若點對點連線失敗的次數超過特定次數,則執行步驟2920,通訊裝置與另一通訊裝置交換新的網路位置轉換器資訊,這個新的網路位置轉換器資訊包含此通訊裝置的區域網際網路協定位址及區域通訊埠。在另一實施例中,由於區域網際網路協定位址及區域通訊埠已於步驟220中交換,因此在點對點連線失敗的次數超過特定次數後,可直接執行步驟260,而不需執行步驟2920。在步驟2920之後,通訊裝置會執行步驟260,也就是通訊裝置根據新的網路位置轉換器資訊嘗試與另一通訊裝置建立點對點連線。藉由與另一通訊裝置交換包含區域網際網路協定位址及區域通 訊埠的網路位置轉換器資訊,可解決通訊裝置A和通訊裝置B都連接至同一網路位置轉換器且通訊裝置A和通訊裝置B連接的網路分享器不支援網路位置轉換器回送(loopback)機制而導致使用網路位置轉換器之公共網際網路協定位址無法連線的情形,故使用通訊裝置之區域網際網路協定位址可增加點對點連線建立的成功率。
若點對點連線失敗的次數不超過特定次數,則執行步驟2930,重新預測網路位置轉換器使用之通訊埠,並且通訊裝置與另一通訊裝置交換新的網路位置轉換器資訊,這個新的網路位置轉換器資訊包含重新預測過的網路位置轉換器使用之通訊埠。之後,通訊裝置會執行步驟260,也就是通訊裝置根據新的網路位置轉換器資訊與另一通訊裝置建立點對點連線。藉由重新預測網路位置轉換器使用之通訊埠可解決通訊埠預測錯誤或者通訊埠被佔用而導致無法連線的情形,故使用重新預測的通訊埠可增加建立點對點連線的成功率。
另外,請再參照第2C圖,第2C圖繪示第2A圖的步驟240中判斷點對點連線是否可行的流程圖。步驟240判斷點對點連線是否可行更可包含多個步驟。首先,執行步驟2410,根據步驟210中的對應連接至通訊裝置的網路位置轉換器的通訊埠預測值判斷通訊裝置的通訊埠是否可預測,以及根據步驟210中的對應連接至另一通訊裝置的網路位置轉換器的通訊埠預測值判斷另一通訊裝置的通訊埠是否可預測。若在步驟2410中判斷對應連接至通訊裝置的網路位置轉換器的通訊埠與對應連接至另一通訊裝置的網路位置轉換器的通訊埠皆為可預測,則執行步驟2420,判斷點對點連線為可行。若在步驟2410中判斷對應連接至通訊裝置的網路位置轉 換器的通訊埠與對應連接至另一通訊裝置的網路位置轉換器的通訊埠皆為不可預測,則執行步驟2430,判斷點對點連線為不可行。若在步驟2410中判斷對應連接至通訊裝置及另一通訊裝置的兩個網路位置轉換器的通訊埠其中之一為可預測而其中另一為不可預測,則執行步驟2440,判斷可預測之網路位置轉換器之類型是否為對稱型(symmetric)或埠限制型(port restricted cone)。若在步驟2440中,可預測之網路位置轉換器之類型為對稱型或埠限制型,則執行步驟2430,判斷點對點連線為不可行。若在步驟2440中,可預測之網路位置轉換器之類型並非對稱型或埠限制型,亦即可預測之網路位置轉換器之類型為一對一型(full cone)或地址限制型(address restricted cone),則執行步驟2420,判斷點對點連線為可行。
詳細的說,表一列出了根據對應連接至通訊裝置與另一通訊裝置的網路位置轉換器的通訊埠是否可預測及對應連接至通訊裝置與另一通訊裝置的網路位置轉換器之類型而判斷建立點對點連線是否可行的結果。如表一第二列所示,若兩個網路位置轉換器的使用的通訊埠皆為可預測,則不論對應連接至兩通訊裝置的網路位置轉換器類型為何,可判斷這兩個通訊裝置之間建立點對點連線為可行。如表一第三列所示,若兩網路位置轉換器的使用的通訊埠皆為不可預測,則對應連接至兩通訊裝置的網路位置轉換器類型必定皆為對稱型,可判斷這兩個通訊裝置之間建立點對點連線為不可行。然而,在其中之一網路位置轉換器使用的通訊埠為可預測,而其中之另一網路位置轉換器使用的通訊埠為不可預測時,則需再根據網路位置轉換器的類型判斷建立點對點連線是否為可行。在此情況下,其中通訊埠為不可預測之網路位置轉換器之類型必定為對稱型,而通訊埠 為可預測之網路位置轉換器之類型則有四種可能:一對一型(full cone)、地址限制型(address restricted cone)、埠限制型(port restricted cone)及對稱型(symmetric),如表一第四~七列所示。而若通訊埠為可預測之網路位置轉換器之類型為一對一型或地址限制型時,則可判斷這兩個通訊裝置之間建立點對點連線為可行。若通訊埠為可預測之網路位置轉換器之類型為埠限制型或對稱型時,則可判斷這兩個通訊裝置之間建立點對點連線為不可行。
茲舉一例以說明本揭露之穿透網路位置轉換器之方法。請參照第3A圖及第3B圖,第3A圖及第3B圖繪示依據本揭露又一實施例的穿透網路位置轉換器之方法的示意圖。首先此方法用於通訊裝置A與通訊裝置B之間的傳輸,通訊裝置A對應連接至網路位置轉換器NAT1,通訊裝置B對應連接至網路位置轉換器NAT2。在此實施例的網路環境中,更包含NAT會話傳輸應用程式(Session Traversal Utilities for NAT)伺服器STUN(在下文中簡稱為STUN伺服器)、代理伺服器(proxy)P、及中繼伺服器RELAY。在一些實施例中,STUN伺服器及中繼伺服器可整合為一裝置。在一些實施例中,STUN伺服器、代理伺服器及中繼伺服器可整合為一裝置。
本揭露的穿透網路位置轉換器之方法包含下列步驟。首先,執行步驟10,通訊裝置A先向代理伺服器P進行註冊。同樣的,在步驟12,通訊裝置B也會向代理伺服器P進行註冊。接著,執行步驟20,通訊裝置A會向STUN伺服器發送請求,STUN伺服器會回傳網路位置轉換器NAT1之公共網際網路協定位址及網路位置轉換器NAT1使用之公共通訊埠,通訊裝置A會以這些資訊嘗試預測網路位置轉換器NAT1下一個使用之公共通訊埠。
以下茲舉一例以說明在步驟20中嘗試預測網路位置轉換器使用之公共通訊埠的4個例子。請參照表二,表二列出了通訊裝置A向4個伺服器發送封包後接收到的公共通訊埠值。舉例來說,通訊裝置A例如可使用區域通訊埠10000向STUN伺服器發送請求以嘗試預測網路位置轉換器NAT1下一個使用之公共通訊埠。在此例中,此請求包含分別向4個 STUN伺服器(STUN 1~STUN 4)發送4個封包,此4個STUN伺服器(STUN 1~STUN 4)則分別回傳網路位置轉換器NAT1之公共通訊埠值至通訊裝置A。例如,在例1中,4個STUN伺服器回傳至通訊裝置A的公共通訊埠值皆為10000,因此,在例1中公共通訊埠是可預測的,且可預測下一個使用的公共通訊埠值亦為10000。同樣的,在例2中,4個STUN伺服器回傳至通訊裝置A的公共通訊埠值皆為38792,因此,在例2中公共通訊埠是可預測的,且可預測下一個使用的公共通訊埠值亦為38792。而在例3中,4個STUN伺服器回傳至通訊裝置A的公共通訊埠值是不同的,也就是在例3中的網路位置轉換器NAT1為對稱型的。雖然例3中的網路位置轉換器NAT1為對稱型的,但是4個STUN伺服器回傳至通訊裝置A的公共通訊埠值分別為40001、40002、40003及40004,也就是說,在例3中公共通訊埠值是有規律的,因此在例3中公共通訊埠值仍然是可預測的,且可預測下一個使用的公共通訊埠值為40005。最後,在例4中,4個STUN伺服器回傳至通訊裝置A的公共通訊埠值是不同的,故在例4中的網路位置轉換器NAT1也為對稱型的。然而,在例4中的4個STUN伺服器回傳至通訊裝置A的公共通訊埠值分別為45792、38729、52900及31803,也就是說,在例4中公共通訊埠值是隨機的,因此在例4中公共通訊埠值是不可預測的。在表二的例子中,請求可包含向4個STUN伺服器發送4個封包。然而,封包的數目或請求的數目並不限制,本領域技術人員可視實際需要發送多個封包或多次請求直到預測成功為止。
表二
之後,在步驟30中,通訊裝置A會指定步驟20中的預測結果作為預測值,例如預測網路位置轉換器NAT1下一個使用之公共通訊埠為50006。若在步驟20中,無法預測網路位置轉換器NAT1下一個使用之公共通訊埠,則可在步驟30中,指定預測值為0。接下來,執行步驟40,判斷對應連接至通訊裝置A的網路位置轉換器NAT1的類型。舉例來說,可利用通訊裝置A透過網路位置轉換器NAT1發送多個請求給STUN伺服器的某個通訊埠,並要求STUN伺服器從其原來之通訊埠或不同之通訊埠回傳網路位置轉換器NAT1使用之公共通訊埠,透過檢視通訊裝置A是否能收到STUN伺服器回傳的資訊來判斷網路位置轉換器的類型。之後,執行步驟50,通訊裝置A發送請求RQ到中繼伺服器RELAY,以和中繼伺服器RELAY建立連線。接著,執行步驟60,通訊裝置A透過代理伺服器P傳送相關於網路位置轉換器NAT1的資訊到通訊裝置B,這些相關於網路位置轉換器NAT1的資訊包含通訊裝置A的區域網際網路協定位址、通訊裝置A使用的通訊埠、網路位置轉換器NAT1的公共網際網路協定位址、網路位置轉換器NAT1的下一個使用之公共通訊埠的預測值及網路位置轉換器NAT1的類型。
之後,當通訊裝置B接收到通訊裝置A的傳送的資訊及連線請求。B也會執行相似的步驟,在步驟70中,通訊裝置B會向STUN伺服器發送請求,以嘗試預測網路位置轉換器NAT2下一個使用之公共通訊埠。同樣的,封包的數目或請求的數目並不限制,本領域技術人員可視實際需要發送多個封包或多次請求直到預測成功為止。並在步驟80中,通訊裝置B會指定步驟70中的預測結果作為預測值,例如預測網路位置轉換器NAT2下一個使用之公共通訊埠為30016。之後也會在步驟90中,判斷網路位置轉換器NAT2的類型。並在步驟100中,通訊裝置B發送請求RQ到中繼伺服器RELAY,以和中繼伺服器RELAY建立連線。最後,執行步驟112,通訊裝置A接收通訊裝置B透過代理伺服器P傳送的相關於網路位置轉換器NAT2的資訊。同樣的,這些相關於網路位置轉換器NAT2的資訊包含通訊裝置B的區域網際網路協定位址、通訊裝置B使用的通訊埠、網路位置轉換器NAT2的公共網際網路協定位址、網路位置轉換器NAT2的下一個使用之公共通訊埠的預測值及網路位置轉換器NAT2的類型。之後,當通訊裝置A和通訊裝置B都接收到相關於網路位置轉換器NAT1及NAT2的資訊之後,就可執行步驟122,通訊裝置A與通訊裝置B經由中繼伺服器RELAY建立一中繼連線並開始傳送資料(real-time transport protocol,RTP)。
請繼續參照第3B圖,當通訊裝置A與通訊裝置B經由中繼伺服器RELAY建立一中繼連線之後,更執行步驟132,判斷通訊裝置A與通訊裝置B建立一點對點連線是否可行。若通訊裝置A與通訊裝置B建立點對點連線為可行,則執行步驟142,通訊裝置A與通訊裝置B嘗試建 立點對點連線。但假設在此例中,網路位置轉換器NAT1使用的公共通訊埠50006被占用或者是預測錯誤,這會導致通訊裝置A與通訊裝置B之間的點對點連線建立失敗,例如通訊裝置A並未接收到通訊裝置B傳送的封包。此時,執行步驟152,通訊裝置A會再向STUN伺服器發送請求,以重新預測網路位置轉換器NAT1下一個使用之公共通訊埠,並在步驟160中重新指定網路位置轉換器NAT1新的預測值,例如為50009。之後,執行步驟170,通訊裝置A重新傳送新的相關於網路位置轉換器NAT1的資訊到通訊裝置B,此新的相關於網路位置轉換器NAT1的資訊包含新的公共通訊埠預測值50009。
通訊裝置B也會執行步驟180,通訊裝置B會再向STUN伺服器發送請求,以重新預測網路位置轉換器NAT2下一個使用之公共通訊埠,並在步驟190中重新指定網路位置轉換器NAT2新的預測值。在此例中,網路位置轉換器NAT2的類型例如為一對一型、地址限制型或埠限制型,亦即這些類型的網路位置轉換器使用的公共通訊埠是不變的,故網路位置轉換器NAT2下一個使用之公共通訊埠仍然為30016。因此,在步驟200中,通訊裝置A再次接收到通訊裝置B傳送的相關於網路位置轉換器NAT2的資訊。最後,在通訊裝置A和通訊裝置B都接收到新的相關於網路位置轉換器NAT1及NAT2的資訊之後,執行步驟212,通訊裝置A根據新的相關於網路位置轉換器NAT1及NAT2的資訊再次嘗試與通訊裝置B建立點對點連線,若點對點連線建立成功,則通訊裝置A即可透過點對點連線開始傳送資料(RTP)至通訊裝置B,並中斷通訊裝置A與通訊裝置B建立之中繼連線。上述步驟的執行順序僅用以示範性的說明,然而本揭露 並不以此為限,可視實際使用需要調整上述步驟的順序,或者可重複執行某些步驟。
本揭露更提供一種可執行上述實施例的穿透網路位置轉換器之方法的通訊裝置。第4圖繪示依據本揭露一實施例的穿透網路位置轉換器之通訊裝置400的方塊圖。通訊裝置400對應連接網路位置轉換器。通訊裝置400包含通訊單元410及處理單元420。通訊裝置可例如為伺服器、電腦、筆記型電腦、平板電腦、手機、智慧電視、或者連接網際網路之裝置等。通訊單元可例如是以硬體電路或軟體實現,具有透過網際網路與其他裝置通訊的功能。處理單元可例如是中央處理單元(CPU)、微處理器、巨集處理器、或特殊應用集成電路(ASICs)、多個數位邏輯閘、或其他熟知的電子電路配置,或者也可以軟體實現。處理單元420耦接至通訊單元410,處理單元420用來控制通訊單元410以執行下列步驟。通訊單元410與另一通訊裝置交換一網路位置轉換器資訊。通訊單元410與另一通訊裝置經由一中繼器建立一中繼連線。處理單元420更用來控制通訊單元410以根據網路位置轉換器資訊判斷通訊單元410與另一通訊裝置建立一點對點連線是否可行。若通訊單元410與另一通訊裝置建立點對點連線為可行,則通訊單元410嘗試與另一通訊裝置建立點對點連線,若點對點連線建立失敗,則通訊單元410再次嘗試與另一通訊裝置建立點對點連線。
本揭露的通訊裝置400更可執行第2A、2B、及2C圖的步驟或者第3圖的步驟以穿透網路位置轉換器,然而本揭露的通訊裝置400並不以此為限,也可視實際需要調整執行的步驟以穿透網路位置轉換器。
根據上述實施例,提供了多種穿透網路位置轉換器的方法及 裝置,藉由先建立傳輸成功率較高的中繼連線,再嘗試建立傳輸效率較高、傳輸成本較低的點對點連線,而可節省使用者等待嘗試建立點對點連線的時間,並且盡量使用傳輸效率較高、傳輸成本較低的點對點連線,可同時具有傳輸效率更高、傳輸成本更低的方式且傳輸成功率更高的效果。
綜上所述,雖然本揭露已以多個實施例揭露如上,然其並非用以限定本揭露。本揭露所屬技術領域中具有通常知識者,在不脫離本揭露之精神和範圍內,當可作各種之更動與潤飾。因此,本揭露之保護範圍當視後附之申請專利範圍所界定者為準。
110、120、130、140、150‧‧‧步驟

Claims (20)

  1. 一種穿透網路位置轉換器之方法,用於一通訊裝置,該通訊裝置對應連接一第一網路位置轉換器,該方法包含:該通訊裝置與另一通訊裝置交換一網路位置轉換器資訊;該通訊裝置與該另一通訊裝置經由一中繼伺服器建立一中繼連線,並透過該中繼連線進行資料傳輸;在使用該中繼連線進行資料傳輸的期間,根據該網路位置轉換器資訊判斷該通訊裝置與該另一通訊裝置建立一點對點連線是否可行;以及若該通訊裝置與該另一通訊裝置建立該點對點連線為可行,則該通訊裝置嘗試與該另一通訊裝置建立該點對點連線,若該點對點連線建立失敗,則該通訊裝置再次嘗試與該另一通訊裝置建立該點對點連線。
  2. 如申請專利範圍第1項所述之方法,其中該通訊裝置與該另一通訊裝置交換該網路位置轉換器資訊之步驟包含:該通訊裝置傳送相關於該第一網路位置轉換器之一第一網路位置轉換器資訊;以及該通訊裝置接收相關於對應連接該另一通訊裝置之一第二網路位置轉換器之一第二網路位置轉換器資訊。
  3. 如申請專利範圍第2項所述之方法,更包含:預測該第一網路位置轉換器使用之一第一通訊埠而得到一第一預測值;判斷該第一網路位置轉換器之類型;預測該第二網路位置轉換器使用之一第二通訊埠而得到一第二預測 值;以及判斷該第二網路位置轉換器之類型。
  4. 如申請專利範圍第3項所述之方法,其中該第一網路位置轉換器資訊包含該通訊裝置之區域網際網路協定位址、該第一通訊埠、該第一網路位置轉換器之公共網際網路協定位址、該第一預測值及該第一網路位置轉換器之類型,其中該第二網路位置轉換器資訊包含該另一通訊裝置之區域網際網路協定位址、該第二通訊埠、該第二網路位置轉換器之公共網際網路協定位址、該第二預測值及該第二網路位置轉換器之類型。
  5. 如申請專利範圍第3項所述之方法,其中判斷該通訊裝置與該另一通訊裝置建立該點對點連線是否可行係根據該第一預測值、該第一網路位置轉換器之類型、該第二預測值及該第二網路位置轉換器之類型判斷。
  6. 如申請專利範圍第5項所述之方法,其中判斷該通訊裝置與該另一通訊裝置建立該點對點連線是否可行之步驟包含:根據該第一預測值判斷該第一通訊埠是否可預測;以及根據該第二預測值判斷該第二通訊埠是否可預測;其中若該第一通訊埠與該第二通訊埠皆可預測,則判斷該點對點連線為可行;其中若該第一通訊埠與該第二通訊埠皆不可預測,則判斷該點對點連線為不可行。
  7. 如申請專利範圍第6項所述之方法,其中若該第一通訊埠與該第二通訊埠其中之一為可預測之通訊埠而其中另一為不可預測之通訊埠,且該第一網路位置轉換器與該第二網路位置轉換器之中具有該可預測之通訊埠之一 者之類型為對稱型或埠限制型時,則判斷該點對點連線為不可行,而該第一網路位置轉換器與該第二網路位置轉換器之中具有該可預測之通訊埠之該者之類型為一對一型或地址限制型時,則判斷該點對點連線為可行。
  8. 如申請專利範圍第1項所述之方法,其中該通訊裝置再次嘗試與該另一通訊裝置建立該點對點連線之步驟包含:該通訊裝置與該另一通訊裝置交換一第三網路位置轉換器資訊,該第三網路位置轉換器資訊包含該通訊裝置之區域網際網路協定位址及區域通訊埠;以及該通訊裝置根據該第三網路位置轉換器資訊嘗試與該另一通訊裝置建立該點對點連線。
  9. 如申請專利範圍第1項所述之方法,其中該通訊裝置再次嘗試與該另一通訊裝置建立該點對點連線之步驟包含:重新預測該網路位置轉換器使用之一通訊埠而得到一第三預測值;該通訊裝置與該另一通訊裝置交換包含該第三預測值之一第三網路位置轉換器資訊;以及該通訊裝置根據該第三網路位置轉換器資訊嘗試與該另一通訊裝置建立該點對點連線。
  10. 如申請專利範圍第1項所述之方法,更包含:若該點對點連線建立成功,則中斷該通訊裝置與該另一通訊裝置建立之該中繼連線。
  11. 一種穿透網路位置轉換器之通訊裝置,該通訊裝置對應連接一第一網路位置轉換器,該通訊裝置包含: 一通訊單元;以及一處理單元,耦接至該通訊單元;其中,該處理單元用以控制該通訊單元以使:該通訊單元與另一通訊裝置交換一網路位置轉換器資訊;該通訊單元與另一通訊裝置經由一中繼器建立一中繼連線,並透過該中繼連線進行資料傳輸;在使用該中繼連線進行資料傳輸的期間,根據該網路位置轉換器資訊判斷該通訊單元與該另一通訊裝置建立一點對點連線是否可行;若該通訊單元與該另一通訊裝置建立該點對點連線為可行,則該通訊單元嘗試與該另一通訊裝置建立該點對點連線,若該點對點連線建立失敗,則該通訊單元再次嘗試與該另一通訊裝置建立該點對點連線。
  12. 如申請專利範圍第11項所述之通訊裝置,其中該通訊裝置與該另一通訊裝置交換該網路位置轉換器資訊包含:該通訊單元傳送相關於該第一網路位置轉換器之一第一網路位置轉換器資訊;以及該通訊單元接收相關於對應連接該另一通訊裝置之一第二網路位置轉換器之一第二網路位置轉換器資訊。
  13. 如申請專利範圍第12項所述之通訊裝置,其中該處理單元更用以控制該通訊單元以:預測該第一網路位置轉換器使用之一第一通訊埠而得到一第一預測值;判斷該第一網路位置轉換器之類型; 預測該第二網路位置轉換器使用之一第二通訊埠而得到一第二預測值;以及判斷該第二網路位置轉換器之類型。
  14. 如申請專利範圍第13項所述之通訊裝置,其中該第一網路位置轉換器資訊包含該通訊裝置之區域網際網路協定位址、該第一通訊埠、該第一網路位置轉換器之公共網際網路協定位址、該第一預測值及該第一網路位置轉換器之類型,其中該第二網路位置轉換器資訊包含該另一通訊裝置之區域網際網路協定位址、該第二通訊埠、該第二網路位置轉換器之公共網際網路協定位址、該第二預測值及該第二網路位置轉換器之類型。
  15. 如申請專利範圍第13項所述之通訊裝置,其中判斷該通訊單元與該另一通訊裝置建立該點對點連線是否可行係根據該第一預測值、該第一網路位置轉換器之類型、該第二預測值及該第二網路位置轉換器之類型判斷。
  16. 如申請專利範圍第15項所述之通訊裝置,其中判斷該通訊單元與該另一通訊裝置建立該點對點連線是否可行包含:根據該第一預測值判斷該第一通訊埠是否可預測;以及根據該第二預測值判斷該第二通訊埠是否可預測;其中若該第一通訊埠與該第二通訊埠皆可預測,則判斷該點對點連線為可行;其中若該第一通訊埠與該第二通訊埠皆不可預測,則判斷該點對點連線為不可行。
  17. 如申請專利範圍第16項所述之通訊裝置,其中若該第一通訊埠與該第二通訊埠其中之一為可預測之通訊埠而其中另一為不可預測之通訊埠,且 該第一網路位置轉換器與該第二網路位置轉換器之中具有該可預測之通訊埠之一者之類型為對稱型或埠限制型時,則判斷該點對點連線為不可行,而該第一網路位置轉換器與該第二網路位置轉換器之中具有該可預測之通訊埠之該者之類型為一對一型或地址限制型時,則判斷該點對點連線為可行。
  18. 如申請專利範圍第11項所述之通訊裝置,其中該通訊單元再次嘗試與該另一通訊裝置建立該點對點連線包含:該通訊單元與該另一通訊裝置交換一第三網路位置轉換器資訊,該第三網路位置轉換器資訊包含該通訊裝置之區域網際網路協定位址及區域通訊埠;以及該通訊單元根據該第三網路位置轉換器資訊嘗試與該另一通訊裝置建立該點對點連線。
  19. 如申請專利範圍第11項所述之通訊裝置,其中該通訊單元再次嘗試與該另一通訊裝置建立該點對點連線包含:重新預測該網路位置轉換器使用之一通訊埠而得到一第三預測值;該通訊單元與該另一通訊裝置交換包含該第三預測值之一第三網路位置轉換器資訊;以及該通訊單元根據該第三網路位置轉換器資訊嘗試與該另一通訊裝置建立該點對點連線。
  20. 如申請專利範圍第11項所述之通訊裝置,其中該處理單元更用以使該通訊單元:若該點對點連線建立成功,則中斷該通訊單元與該另一通訊裝置建立 之該中繼連線。
TW104134648A 2015-10-22 2015-10-22 穿透網路位置轉換器之方法及通訊裝置 TWI595765B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW104134648A TWI595765B (zh) 2015-10-22 2015-10-22 穿透網路位置轉換器之方法及通訊裝置
CN201510777167.3A CN106612340B (zh) 2015-10-22 2015-11-13 穿透网络位置转换器的方法及通信装置
US15/051,298 US10129209B2 (en) 2015-10-22 2016-02-23 Method and communication device for network address translation traversal

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104134648A TWI595765B (zh) 2015-10-22 2015-10-22 穿透網路位置轉換器之方法及通訊裝置

Publications (2)

Publication Number Publication Date
TW201715873A TW201715873A (zh) 2017-05-01
TWI595765B true TWI595765B (zh) 2017-08-11

Family

ID=58559303

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104134648A TWI595765B (zh) 2015-10-22 2015-10-22 穿透網路位置轉換器之方法及通訊裝置

Country Status (3)

Country Link
US (1) US10129209B2 (zh)
CN (1) CN106612340B (zh)
TW (1) TWI595765B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10645059B2 (en) * 2016-04-11 2020-05-05 Western Digital Technologies, Inc. Establishing connections between data storage devices
CN109510810A (zh) * 2018-09-20 2019-03-22 广州亦云信息技术股份有限公司 一种基于p2p的虚拟资源访问方法及装置
CN111464654A (zh) * 2020-04-08 2020-07-28 西安万像电子科技有限公司 数据传输方法及装置
EP4184963A4 (en) * 2020-07-14 2024-04-03 LG Electronics Inc. PEER-TO-PEER COMMUNICATION FOR V2X SERVICE
US11394686B1 (en) * 2021-02-25 2022-07-19 Nvidia Corporation Dynamic network address translation using prediction
US11356296B1 (en) * 2021-07-30 2022-06-07 Quantum Networks (SG) Pte. Ltd. System and method for independent binding of virtual networks overlay using a physical network topology
CN116388962A (zh) * 2023-06-05 2023-07-04 敏于行(北京)科技有限公司 区块链网络节点间的通信方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139228A1 (en) * 2003-01-15 2004-07-15 Yutaka Takeda Peer-to-peer (P2P) connection despite network address translators (NATs) at both ends
CN101374141A (zh) * 2007-08-23 2009-02-25 浙江省电信有限公司 一种基于pcp协议的tcp nat穿越方法
US20110055392A1 (en) * 2009-09-02 2011-03-03 Industrial Technology Research Institute Network traversal method and network communication system
TW201521392A (zh) * 2013-11-29 2015-06-01 Vivotek Inc 穿透網路位址轉換的方法、電腦可讀取媒體與連線中介系統

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8065418B1 (en) 2004-02-02 2011-11-22 Apple Inc. NAT traversal for media conferencing
CN1863157A (zh) * 2005-10-28 2006-11-15 华为技术有限公司 穿越nat实现网络通信的方法及装置
CN100428741C (zh) * 2006-03-02 2008-10-22 华为技术有限公司 通信方法
US20070233844A1 (en) * 2006-03-29 2007-10-04 Murata Kikai Kabushiki Kaisha Relay device and communication system
TW200805968A (en) 2006-07-11 2008-01-16 Shaw-Hwa Hwang Improved SIP communication method capable of traversing NAT firewall
US8489701B2 (en) * 2007-01-30 2013-07-16 Microsoft Corporation Private virtual LAN spanning a public network for connection of arbitrary hosts
CN101026543A (zh) * 2007-03-28 2007-08-29 华为技术有限公司 点到点p2p内容共享的方法及系统
CN101431511B (zh) 2007-11-09 2013-03-06 友讯科技股份有限公司 一种穿透防火墙在网络终端装置间建立联机信道的方法
EP2071809A1 (en) 2007-12-13 2009-06-17 Alcatel Lucent Method of establishing a connection in a peer-to-peer network with network address translation (NAT)
CN101465784A (zh) * 2007-12-18 2009-06-24 友讯科技股份有限公司 便携式的ice中继服务器及其方法
TW200937923A (en) 2008-02-21 2009-09-01 Chunghwa Telecom Co Ltd Tunneling method enabling the transparent tunneling of private network to achieve the IP communication
CN101557388B (zh) * 2008-04-11 2012-05-23 中国科学院声学研究所 一种基于UPnP和STUN技术相结合的NAT穿越方法
CN101478505B (zh) * 2009-01-23 2011-09-07 建汉科技股份有限公司 不同私有网络的网络装置间建立网络系统及网络联机方法
JP5304555B2 (ja) 2009-09-11 2013-10-02 ブラザー工業株式会社 端末装置、通信方法、及び通信プログラム
US8874785B2 (en) 2010-02-15 2014-10-28 Damaka, Inc. System and method for signaling and data tunneling in a peer-to-peer environment
US8819244B2 (en) 2010-04-07 2014-08-26 Apple Inc. Apparatus and method for establishing and utilizing backup communication channels
US8412833B2 (en) 2010-04-07 2013-04-02 Apple Inc. Apparatus and method for inviting users to online sessions
CN102932235B (zh) * 2012-10-09 2017-11-21 曙光信息产业(北京)有限公司 云计算环境下的即时通信方法和服务器系统
US9497160B1 (en) * 2013-06-24 2016-11-15 Bit Action, Inc. Symmetric NAT traversal for direct communication in P2P networks when some of the routing NATs are symmetric
CN104253755A (zh) * 2013-06-27 2014-12-31 讯舟科技股份有限公司 用于网络终端装置间建立连线的方法
WO2015013315A1 (en) * 2013-07-22 2015-01-29 Intellivision Technologies Corp. System and method for scalable video cloud services
US9826044B2 (en) 2013-10-23 2017-11-21 Qualcomm Incorporated Peer-to-peer communication for symmetric NAT
US9762508B2 (en) * 2014-10-02 2017-09-12 Microsoft Technology Licensing, Llc Relay optimization using software defined networking

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139228A1 (en) * 2003-01-15 2004-07-15 Yutaka Takeda Peer-to-peer (P2P) connection despite network address translators (NATs) at both ends
CN101374141A (zh) * 2007-08-23 2009-02-25 浙江省电信有限公司 一种基于pcp协议的tcp nat穿越方法
US20110055392A1 (en) * 2009-09-02 2011-03-03 Industrial Technology Research Institute Network traversal method and network communication system
TW201521392A (zh) * 2013-11-29 2015-06-01 Vivotek Inc 穿透網路位址轉換的方法、電腦可讀取媒體與連線中介系統

Also Published As

Publication number Publication date
CN106612340B (zh) 2019-09-06
TW201715873A (zh) 2017-05-01
US20170118170A1 (en) 2017-04-27
CN106612340A (zh) 2017-05-03
US10129209B2 (en) 2018-11-13

Similar Documents

Publication Publication Date Title
TWI595765B (zh) 穿透網路位置轉換器之方法及通訊裝置
US10855654B2 (en) Session identifier for a communication session
US9332583B2 (en) Multipoint communication device and method of performing switching from multipoint communication to point-to-point communication
WO2018090666A1 (zh) 一种多路径数据传输方法及设备
US12089091B2 (en) Methods and apparatus for supporting devices of different types using a residential gateway
US9338192B1 (en) Connection management using connection request transfer protocol
EP1892887B1 (en) Communication method between communication devices and communication apparatus
WO2020248963A1 (zh) 一种建立端到端网络连接的方法、装置及网络系统
CN109088799B (zh) 一种客户端接入方法、装置、终端以及存储介质
JP5335881B2 (ja) 多重ネットワーク環境におけるピア・ツー・ピア接続システム及び方法
US20160380789A1 (en) Media Relay Server
TWI599201B (zh) 網路系統及建立資料連線的方法
CN102148767A (zh) 一种基于nat的数据路由方法及其装置
US11671487B1 (en) Port prediction for peer-to-peer communications
WO2022002069A1 (zh) 访问网络的方法、媒体网关、电子设备及存储介质
JP7401564B2 (ja) 通信方法及び関連デバイス
JP6393475B2 (ja) 通信アダプタ装置、通信システム、トンネル通信方法、及びプログラム
Mondal et al. A reliable, multi-path, connection oriented and independent transport protocol for iot networks
CN110289979B (zh) 桥接器及网络的管理方法
US20200196135A1 (en) Enhanced connectivity in dual-mode networks for single-mode nodes
KR101586058B1 (ko) Nat환경을 고려한 피투피 통신 연결 장치 및 이를 이용한 피투피 통신 연결 방법
KR101807695B1 (ko) 이동통신 라우터 장치 및 이를 포함하는 ip 공유 시스템
CN106209464A (zh) 终端的发现方法、终端及其管理系统
TWI502930B (zh) 通訊方法及其行動電子裝置
WO2020064593A1 (en) Method and apparatus for forwarding packets from a first network to a second network