CN102984289B - 促进nat穿透的方法以及移动设备 - Google Patents
促进nat穿透的方法以及移动设备 Download PDFInfo
- Publication number
- CN102984289B CN102984289B CN201210502299.1A CN201210502299A CN102984289B CN 102984289 B CN102984289 B CN 102984289B CN 201210502299 A CN201210502299 A CN 201210502299A CN 102984289 B CN102984289 B CN 102984289B
- Authority
- CN
- China
- Prior art keywords
- nat
- mobile device
- information
- available
- equipment
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
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/2575—NAT traversal using address mapping retrieval, e.g. simple traversal of user datagram protocol through session traversal utilities for NAT [STUN]
-
- 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
-
- 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/2567—NAT traversal for reachability, e.g. inquiring the address of a correspondent behind a NAT server
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了用于移动网络设备的NAT穿透。用于促进网络地址转换器(NAT)的穿透的方法和装置被公开。例如,配置为通过网络与一个或多个其它节点相通信的节点可以通过以下手段促进NAT穿透:a)用该节点确定有关一个或多个NAT的行为的信息;并且以该信息可供一个或多个其它节点检索的方式存储该信息;或者b)检索有关一个或多个其它节点获得的一个或多个NAT的行为的信息,并且使用该信息穿透一个或多个NAT。
Description
相关申请的引用
本申请是国家申请号为200880108512.2的发明专利申请的分案申请,该发明专利申请的国际申请日为2008年7月21日,国际申请号为PCT/US2008/070661,发明名称为“协同NAT行为发现”。
优先权声明
本申请要求共同受让的2007年7月27日申请的美国专利申请11/829831的优先权的益处,该申请全文在本文中引入以作为参考。
技术领域
本发明涉及计算机网络通信,更具体的是涉及在单一应用程序(application)中区分不同通信信道之间的网络业务优先级。
背景技术
计算系统越来越多地通过网络环境互连。该网络环境可以是集中的或者分散的。分散的计算环境可以由多个互连以彼此通信的计算系统限定,其中每个计算系统既能执行客户端功能又能执行服务器功能。对等(P2P)网络表示了分散计算环境的实例,其中将P2P网络内的每个计算系统限定为该网络内每个其它计算系统的对等方。为了便于讨论,将P2P网络内的每个对等计算系统称作节点。此外,P2P网络内的每个节点可以配置成执行具有基本上等效功能的软件。因此,每个节点既可以充当P2P网络上数据和服务的供应者,又能充当使用者。对等网络是没有任何集中分级或者组织的分布式数据网络。对等数据网络提供了一种稳固并且灵活的在大量计算机或者其它信息设备(统称为节点)之间传送信息的手段。
P2P网络主要依赖于网络中参与者的带宽以及计算能力,而不是将其集中在相对少量的服务器上。P2P网络通常用于主要经由ad hoc连接来连接节点。这种网络用于许多用途。可以将P2P网络用于例如共享包含音频、视频、数据或者非常常见的数字格式的任何内容的内容文件,还可以利用P2P技术传送诸如电话业务的实时数据。
P2P应用程序通常包括使用网络地址转换器(NAT)来促进对等方之间的直接通信。NAT通常允许用户使多个联网的计算机共用单个(全局的或者可路由的)IP地址来访问因特网。NAT介入直接通信,因此在许多情况中,P2P应用程序不得不处理由于NAT导致的连接性问题。用于克服连接性问题的技术通常称作“NAT穿透(NAT
traversal)”。网络地址转换(NAT,也称作网络伪装、本地地址转换或者IP伪装)的过程通常包括在网际协议(IP)分组穿过路由器或者防火墙时改写该网际协议分组的源和/或目的地地址。利用NAT的大多数系统都这样做,以便能够使私有网络上的多个主机能够访问广域网,例如利用单一的公共IP地址的因特网。
除了NAT方便和成本低之外,在某些情形下,缺乏完全双向连接性可以视为特征而非局限。在NAT依赖于本地网上的机器以启动到路由器另一侧上主机的任何连接的程度上,其防止了由外部主机启动的恶意活动到达这些本地的主机。这可以通过阻止病毒来增强本地系统的可靠性以及通过阻碍扫描来增强保密性。许多NAT使能的防火墙将此用作它们提供的保护的核心。许多网络管理员发现NAT是一种方便的技术并且广泛使用。但是,NAT会使主机之间的通信变复杂,并且可以对性能产生影响。
在典型配置中,本地网可以使用指定的“私有”IP地址子网之一,并且该网络上的路由器具有在该地址空间中的私有地址。路由器可能利用因特网服务供应商(ISP)分配的单一“公共”地址(称作“超载”NAT)或者多个“公共”地址与因特网连接。随着业务从本地网传递到因特网,每个分组中的源地址动态地(on
the fly)从私有地址转换成公共地址。路由器跟踪有关每个活动连接的基本数据(特别是目的地地址和端口)。有时将该内部“跟踪”数据称作“NAT绑定”。当应答返回到路由器时,其使用在外发(outbound)阶段期间存储的连接跟踪数据来确定在内部网络上的什么位置转发该应答;在分组返回时,在超载NAT的情况下TCP或者UDP客户端端口号用于多路分配(demultiplex)该分组,或者当多个公共地址可用时IP地址和端口号用于多路分配该分组(the TCP or UDP client port numbers are used to
demultiplex the packets in the case of overloaded NAT, or IP address and port
number when multiple public addresses are available, on packet return)。对于因特网上的系统而言,路由器本身好像是该业务的源/目的地。
NAT使能的路由器之后的节点不具有真正的端到端连接性(即在不需要中间网络元件进一步解释分组的情况下,无法向该网络的所有其它节点发送该分组),并且不能参与某些网际协议。对于这些节点,需要启动从外部网络的TCP连接或者诸如利用UDP的那些协议的无状态协议的服务可能中断,除非NAT路由器进行了特定的努力以支持所述协议,因此输入的分组无法到达其目的地。某些协议能够适应参与主机之间的NAT的一个实例(例如“被动模式”FTP),有时是在应用层网关的辅助下,但是当这两个系统被NAT与因特网分开时会失效。如果NAT以妨碍对隧道协议的完整性检查的方式修改了报头中的值,则使用NAT还会使隧道协议(例如Ipsec)变复杂。
任何希望与网络连接的IP使能的应用程序潜在地都会面对与NAT相关的问题。大多数运行专用网络应用软件的网络应用程序和设备,特别是对等类型应用程序可以配置为独立地确定它们所在的物理网络拓扑,以便最好地建立与其它应用程序的直接通信。这通常称作“NAT行为发现”或者“NAT行为确定”。虽然存在一些变化的方法,但这种操作是本领域公知的。现有方法通常可能花费大量时间来确定NAT行为。如果多个应用程序必须进行NAT发现,则现有NAT发现技术也会出现问题。
鉴于此,提出了本发明的实施例。
附图说明
结合附图考虑以下的详细说明,可以容易地理解本发明的实施例,在附图中:
图1是根据本发明实施例的配置为实现NAT行为发现的网络的框图。
图2A是示出确定NAT行为的现有技术方法的流程图。
图2B-2D是示出根据本发明实施例的确定NAT行为的方法的流程图。
图3A是根据本发明可选实施例的配置为利用NAT代理实现NAT行为发现的网络的框图。
图3B是示出根据本发明可选实施例的利用NAT代理进行NAT行为发现的方法的流程图。
图4是示出包含多个NAT之后的节点的根据本发明实施例的NAT行为发现的框图。
图5是示出包含无线节点的根据本发明实施例的NAT行为发现的框图。
图6是根据本发明实施例的配置为实现NAT行为发现的节点的框图。
具体实施方式
尽管以下的详细说明为了说明的目的包含许多特定的细节,但是本领域普通技术人员可以理解,对于以下细节的许多变型和替换均在本发明的范围之内。因此,提出的下述本发明示例性实施例不失所要求保护的发明的一般性并且无意限制本发明。
技术背景
在涉及NAT的应用程序中,有时有益的是通过NAT所表现出的行为类型来表征NAT。STUN协议可以用于将网络地址转换表征为完全锥形NAT、受限锥形NAT、端口受限锥形NAT或者对称NAT。在完全锥形NAT的情况下,其也称作一对一NAT,将来自相同内部IP地址和端口的全部请求映射到相同的外部IP地址和端口。通过将分组发送到所映射的外部地址,外部主机能够将分组发送到内部主机。在受限锥形NAT的情况下,将来自相同内部IP地址和端口的全部请求映射到相同的外部IP地址和端口。与完全锥形NAT不同,只有内部主机已经预先将分组发送给外部主机的情况下,外部主机才能够将分组发送给内部主机。端口受限锥形NAT或者对称NAT与受限锥形NAT类似,但是限制包括端口号。具体而言,只有在内部主机先前已经将分组从内部主机上的特定端口发送到外部主机,外部主机才可以将分组发送到该特定端口。在对称NAT的情况下,将从相同内部IP地址和端口到特定目的地IP地址和端口的全部请求映射到唯一的外部源IP地址和端口。如果相同的内部主机将具有相同源地址和端口的分组发送到不同的目的地,则使用不同的映射。只有接收分组的外部主机能够将通用数据报协议(UDP)分组发送回内部主机。
上述分类的用处已经变得不那么大,因为在许多NAT实施方案中,NAT的行为可以在各种类型之间振荡。例如,许多NAT实施方案可以遵循端口保留设计。对于大多数通信而言,该NAT实施方案使用相同的值作为内部和外部端口号。然而,如果两个内部主机试图使用相同的端口号与相同的外部主机通信,则可以随机选择第二主机使用的外部端口号。有时可以将该NAT视作受限锥形NAT,并且其它时间可以视作对称NAT。
有时将NAT发现和NAT行为确定称作NAT穿透。例如,美国公开专利申请20070076729中描述了NAT穿透的实例,其全文引入作为参考。NAT行为发现可能是耗时的操作。例如,可以利用称作STUN的协议实现NAT发现。例如,IETF RFC 3489中描述了STUN协议的细节,其全文引入作为参考。在STUN协议中,将多个消息发送到中央NAT发现服务器(称作STUN服务器)并且接收该消息以建立NAT行为类型。由于NAT的过滤行为一些消息事务不得不等待超时(每次事务通常约为10秒)。在存在不可靠的通信信道的情况下,还可能重复发送消息。能够避免全部或部分这种操作的应用程序可以更快地开始。
协同NAT行为发现
在本发明的实施例中,本地网上的节点可以共享有关所发现的NAT行为以及该本地物理网络拓扑的其它方面的信息。此外,这些节点可以主动地协同以进一步确定NAT行为,而非被动地共享独立发现的NAT行为。如上所述,因为NAT发现可能耗时,因此这是十分重要的。此外,当尝试使用在被多于一个应用程序使用时具有变化行为的NAT设备时,会出现不小的问题。例如当针对特定本地端口配置静态端口映射时这会发生。
根据本发明的实施例,多个节点可以在相同NAT之后。节点之一可以通过常规的NAT发现和/或NAT穿透发现NAT的行为。该节点可以与相同NAT之后的其它节点共享NAT穿透信息。这可以使该NAT之后的其它节点不必花费时间执行NAT发现。可以将NAT信息存储在NAT之后的全部节点可以在它们正常尝试NAT发现之前访问的中央位置。
例如,图1表示了一种网络拓扑,其示出了根据本发明实施例的协同NAT行为发现。一般而言,局域网(LAN)101可以包括两个或更多个节点,例如节点A 102和节点B 104,它们可以与路由器108连接。路由器108与诸如因特网的广域网(WAN)106连接。路由器108可以具有与其相关的网络地址转换器(NAT)。对于节点102、104而言,在本发明实施例的范围内存在许多可能的配置。一般,节点可以配置为利用网际协议(IP)在网络上实现通信。节点A 102和节点B 104可以是IP使能的设备或者在不同设备或者相同设备上运行的IP使能的应用程序。本文中,术语IP使能的表示设备利用IP来与其它主机或者设备通信。例如、但无意限制,IP使能的设备或者应用程序可以包括网际协议堆栈或者类似的网络协议堆栈,以利用IP与其它主机或者设备通信。尽管图1为了示例起见示出了两个节点,但是本领域技术人员可以认识到,也可以以多于两个节点实现本发明实施例。
注意,本发明的实施例可以包含任何数量的节点。例如,节点A 102和节点B 104可以是任何能够联网(network capable)的设备或者在所述设备上运行的能够联网的应用程序。这样的节点包括但不限于计算机、手持互联网浏览器和/或电子邮件设备、IP话音(VoIP)电话、视频游戏控制台、手持视频游戏设备等。消息可以经由路由器108从一个节点传送到另一个节点。可以在路由器108上以硬件、软件、固件或者这些形式中两种或更多种的组合来实现NAT。
节点A 102、节点B 104和路由器108可以配置为根据网络协议彼此通信。例如,节点A 102和节点B 104可以配置(以软件或硬件或者两者的某种组合)有具有五层的网络协议堆栈103:应用层APP、传输层TRANS、网络层NET(有时称作IP层)、数据链路层DLL以及物理层PHYS。这些层对于本领域技术人员而言是公知的。节点102、104通常实现全部五个层。路由器108可以包括仅实现网络层NET、数据链路层DLL和物理层PHYS的协议堆栈105。在一些实施例中,一个或多个路由器可以包括全部五个协议堆栈层。这种路由器的一个示例是防火墙,其支持检查应用层数据的“应用层网关”。然而,所示的路由器108中协议堆栈105的配置相对而言更为常见。
应用层APP表示应用程序访问网络服务的级别。该层表示直接支持诸如文件传输、数据库访问以及电子邮件软件之类的应用程序的服务。应用层软件的示例包括HL7、Modbus、会话启动协议(SIP)以及简单传感器接口协议(SSI)。在TCP/IP套件的特定情况下,可以利用软件协议来实现应用层APP,例如超文本传输协议(HTTP)、会话启动协议(SIP)、简单邮件传输协议(SMTP)、短消息对等协议(SMPP)、简单网络管理协议(SNMP)、文件传输协议(FTP)、电传网络(TELNET)、网络文件系统(NFS)、网络时间协议(NTP)、实时传送协议(RTP)、动态主机配置协议(DHCP)以及域名系统(DNS)。例如在开放系统接口(OSI)协议中,应用层APP有时可以进一步分成表示层和会话层。表示层将来自应用层的数据转换成中间格式。该表示层还可以通过提供诸如数据加密的服务来管理安全问题,并且压缩数据使得在网络上需要传送的比特变少。会话层允许不同计算机上的两个应用程序建立、使用和终止会话。会话层可以在会话中的两个计算机之间建立对话控制,从而调整哪侧发送以及其何时发送以及发送多长时间。
传输层TRANS服务于来自应用层APP的请求,并且将服务请求发布到网络层NET。在一些协议中,传输层TRANS还可以处理错误识别和恢复。对于发送主机而言,在必要时传输层还可以将长消息重新打包成小分组以供发送。对于接收主机而言,传输层将分组重建成原始消息。接收主机的传输层还可以发送接收确认。特定传输层协议的示例包括传输控制协议(TCP)、用户数据报协议(UDP)以及流控制传输协议(SCTP),所有这些协议及其等价物均是本领域技术人员公知的。传输层TRANS是通常支持分组分割的层。注意,分割可能发生在产生消息的主机的传输层中或者沿着该主机与消息的预期接收者之间路径的任何路由器的传输层处。并不是所有的传输层实施方案都需要处理错误识别和恢复。例如,TCP处理错误识别和恢复,但UDP并不是这样。
网络层NET寻址消息并且将逻辑地址和名称转换成物理地址。其还确定从源到目的地计算机的路由。网络层还可以管理业务问题,例如切换、路由以及控制数据分组的拥塞问题。特定网络层协议的示例包括但不限于网际协议(IP)、互联网控制消息协议(ICMP)、IP安全(Ipsec)、地址解析协议(ARP)、路由信息协议(RIP)和开放最短路径优先(OSPF),所有这些协议及其等价物对于本领域技术人员而言是公知的。
数据链路层DLL将来自物理层PHYS的原始比特打包成帧(数据的逻辑结构分组)。该数据链路层还可以负责将这些帧从一台计算机转移到另一台计算机,而不会出错。在发送了一个帧之后,该数据链路层DLL等待来自接收计算机的确认。特定数据链路层协议的示例包括但不限于点对点协议(PPP)、串行线路网际协议(SLIP)和介质访问控制(MAC),所有这些协议及其等价物对于本领域技术人员来讲是公知的。数据链路层DLL通常限制了MTU大小。
物理层PHYS将比特从一台计算机发送到另一台计算机,并且调整比特流在物理介质上的传送。该层限定了电缆如何附接到网络适配器以及采用什么传输技术在电缆上发送数据。特定物理层协议和标准的示例包括但不限于RS-232、V.35、V.34、I.430、I.431、T1、E1、10BASE-T、100BASE-TX、POTS、SONET、DSL、802.11a、802.11b、802.11g、802.11n,所有这些协议和标准及其等价物对于本领域技术人员而言是公知的。
在节点A 102处产生的消息始于应用层APP并且逐渐地沿着协议堆栈向下到达物理层PHYS。当消息到达主机2 104时,其在物理层PHYS被接收,并且逐渐地沿着堆栈向上到达应用层APP。在两个节点102、104之间的路径中,该消息可以在路由器108的物理层PHYS被接收,并且逐渐向上到达传输层TRANS,然后又沿着堆栈反向向下到达物理层PHYS,从而传输到路由器108。可以对沿着节点A 102与节点B 104之间路径的任何其它路由器(未示出)重复该过程。在对等情况下,一旦节点A 102与节点B 104之间已经建立了连接,则它们可以在例如应用层APP或者传输层TRANS直接通过对等连接通信。
如上所述,路由器108可以包括网络地址转换器。然而,对于本发明全部实施例而言这不是必须的。如果路由器108包括NAT,则节点A 102和节点B 104不得不穿透该NAT,以便建立相互之间的、与LAN 101中连接的其它节点的或者与连接到WAN
106的其它节点的对等连接。为了促进NAT穿透,节点A 102和节点B 104可以获得并共享有关NAT的信息110。有多种获得并共享信息110的方法。例如并不失一般性,节点A 102和节点B 104可以通过对NAT穿透的单独尝试获得信息110。所述对NAT穿透的尝试可以包括使用STUN服务器112。可选的是,节点A 102和节点B 104可以从连接到LAN 101的其它节点获得信息110。
可以通过多种不同方式中的任意一种来共享信息110。例如,节点A 102和节点B 104可以本地地将该信息存储在例如缓存或者其它存储位置中。如果节点A 102和节点B 104是分开的设备或者分开的设备上的应用程序,则本地地存储信息尤其可以包括将信息存储在每个相应设备的特定存储位置。如果节点A和节点B是相同设备上的不同应用程序,则本地地存储信息尤其可以包括将信息存储在与该设备相关的特定存储位置。如果本地地存储信息110,则节点A和节点B可以在其各自尝试NAT穿透之前直接询问彼此,以获得信息110。在可选实施例中,可以将信息110存储在节点A 102和节点B 104通常均可访问的存储位置。该通常可访问的存储位置可以在与LAN
101或者WAN 106相连的另一个节点或者设备上。例如,该通常可访问存储位置可以是与WAN
106相连的公共数据库服务器114。在一些实施例中,可以由路由器108获得该信息110并将其存储在该路由器108中。这可能需要路由器108处的特殊实施方案。
例如,该信息110可以包括对于该路由器的唯一地址,例如全球唯一地址,如介质访问控制(MAC)地址或者内部IP地址。本文中使用的是MAC地址,也称作硬件地址或者适配器地址,其是附于大多数网络适配器的准唯一标识符。MAC地址通常是一个数字,其起到特定网络适配器名称的作用。因此,例如两个不同计算机中的网卡(或者内置式网络适配器)可以具有不同的名称或者MAC地址,如相同计算机中的以太网适配器和无线适配器那样,并且如路由器中的多个网卡那样。可以根据适当的协议,例如MAC-48、EUI-48以及EUI-64来分配设计为全球唯一的MAC地址。
此外,信息110可以包括有关路由器108所呈现的NAT行为(如果有的话)类型和/或路由器上的端口是否正在被连接到LAN 101的设备使用的信息。
可共享的其它NAT行为信息的示例包括但不限于:(i)经由NAT的有效会话的数目;或者(ii)NAT上的集合的业务负载。此外,信息110可以包括实现相对于对称NAT的端口预测的原子态的标志的值。该标志可以指示用于端口预测的特定原子是否被锁定。原子锁有时用于对称NAT穿透中的端口预测。锁定是有用的,因为如果在预测阶段期间,相同NAT下的其它节点生成另一个NAT绑定,则端口预测会失效。
根据本发明的实施例,节点A 102和节点B 104可以通过任何常规技术实现NAT发现,其可以以硬件、软件、固件或者三者中的两种或更多种的某种组合来实现。例如,图2A表示了一种类型的NAT发现。如图2A所示,节点A 102在启动202时可以向STUN服务器112发送对于NAT信息的请求204,该服务器112可以发回响应206。该响应206可以包括有关节点A 102之前的NAT类型的信息。随后,节点B 104在启动208时可以类似地发送请求210以及接收响应212。注意,响应206、212每个可以包括有关NAT行为的相同或类似信息,特别是在节点A 102和节点B 104位于相同NAT之后的情况下。然而,根据路由器108中NAT的性质,NAT行为可以随时间改变。本发明的实施例允许共享NAT行为信息,这样能够促进NAT穿透。
例如,如图2B所示,节点A 102和节点B 104可以如下所述共享NAT信息110。如图2A所示,节点A 102在启动202时可以向STUN服务器112发送对于NAT信息的请求204,该服务器112可以发回响应206。该响应206可以包括有关节点A 102之前的NAT类型的信息110。该信息110可以被本地存储在节点A 102处。随后,节点B 104在启动208时可以向路由器108之后的一个或多个其它节点发送请求209。例如,如图2B所示,节点B 104可以向节点A 102发送请求209。注意,可以将请求209广播给路由器108之后的所有其它节点,这是因为节点B 104可能不知道这些节点中的哪一个具有有关路由器的NAT行为的信息。接收到该请求209的任意节点可以用NAT行为信息回应。在本示例中,节点A 102之前已经获得了信息110。因此,节点A 102可以向节点B 104发送包含信息110或者该信息的某个有用子集的响应211。如果其它节点均未对请求209作出响应,则节点B 104可以例如通过向STUN服务器212发送请求210以及接收响应212来退回到常规的NAT发现。可以将从该响应获得的信息存储在本地,并且可以在请求时供其它节点使用。
还要注意,两个或更多个节点可以协同工作以确定路由器108的行为。例如,如图2C所示,节点A 102在启动202时可以向STUN服务器112发送对于NAT信息的请求204。该STUN服务器112可以发回包含NAT行为信息110的响应206,然后将该响应本地存储在节点A 102。NAT行为信息110可能是不完整的,例如其可能将NAT行为限制为具有不只一种可能的类型。随后,节点B 104在启动208时可以向路由器108之后的一个或多个其它节点(包括节点A 102)发送请求209。作为对请求209的答复,节点A102可以发送部分响应213。该部分响应213可以包括节点A 102能够获得的信息。部分响应213还可以指示需要哪些附加信息来表征路由器108的NAT行为。然后,节点B 104可以向STUN服务器112发送请求210并且作为答复接收响应212。该响应212可以提供表征路由器108的NAT行为所需的丢失信息。然后,节点B 104可以例如通过向节点A 102和/或路由器108之后的任何其它节点发送更新响应214来共享该信息。
注意,在图2C所示的示例中,部分响应和更新响应对的过程可以继续,直到完全确定了NAT行为的细节为止。如果路由器108为具有非确定行为的多个请求分配外部绑定,则这是非常有用的。
共享信息110对于改善NAT行为确定的效果是很明显的。通常,对于STUN服务器112的请求以及来自该服务器的响应可能受到与LAN 101和WAN
106相关的延时(latency)的影响。LAN
101上从一个节点到另一个节点的请求通常仅受到与LAN 101相关的延时的影响。WAN延时一般比LAN延时大得多。例如,在理论WAN延时约为100毫秒并且LAN延时小于约1毫秒的情况下,在LAN 101上的各个节点之间共享NAT行为信息110可以将NAT行为确定阶段提高超过100倍。
此外,LAN 101上的节点在每个节点已经自己独立确定了NAT行为类型之后可以协同地共享NAT信息。在这种情况下,节点之间有关所确定的行为的传言可以识别出具有不适合的本地端口保留行为的路由器,这样可以有效地将路由器108从端口受限的变为对称行为。信息110的共享可用于诊断路由器108行为的变化。信息110的共享还可用于与不适合的本地端口保留相关的先验应急方案(workaround)NAT问题。例如,路由器108之后的多个节点可以向彼此广播它们希望使用路由器108上的哪些本地端口。如果另一个节点(例如节点B 104)已经在使用选定的端口,则给定的节点(例如节点A 102)可以改变选定的端口。此外,节点可以传播有关LAN
101的本地网络环境的其它不曾预料到的行为变化。例如,住宅NAT通常具有一个由ISP(因特网服务供应商,例如Comcast)使用称为DHCP的协议动态分配的全局IP地址。所分配的NAT的动态IP会过期,并且ISP可以分配另一个IP地址。如果是这样,则本地节点需要花费一些时间来探测这种事件。如果一个节点探测到这种事件,则其可以使用广播通知其它节点所述事件。
在图2B-2C所示的实施例中,将与NAT有关的信息110本地存储在路由器108之后的每个节点处。在其它实施例中,可以将信息110存储在路由器108之后的所有节点均可访问的某个公共位置。如上所述,所述公共位置可以是公共数据库服务器114或者与WAN 106相连的类似节点。可以使用例如超文本传输协议(HTTP)的适当协议来访问该公共数据库服务器114。
可选的是,该公共位置可以是构成LAN 101一部分的节点。例如,如图2D所示,可以将信息110存储在路由器108处。在本示例中,例如节点A 102的节点在例如启动202时可以向路由器108发送NAT信息请求205。该路由器108例如通过适当编程可以配置为向STUN服务器112发送请求204,并且作为答复接收响应206。然后,路由器108可以基于该响应206向节点A 102转发应答215。路由器108可以任选地根据响应206确定NAT行为信息110,并且将该信息存储在例如可被路由器108本地访问的存储器中。该应答215可以包括从响应206获得的NAT行为信息110。可选的是,该应答215可以包括向节点A 102转发响应206。当不同的节点随后请求NAT行为信息时,路由器108可以使用所存储的信息110直接作出响应。例如,在启动208时,节点B 104可以向路由器108发送NAT行为信息请求216。作为响应,路由器108可以基于所存储的NAT行为信息110发送应答218。
在图2D所示的示例中,已经假设了路由器108的地址对于其后的所有节点都是已知的。在这种情况下无需广播请求205、216和应答215、218。此外,在图2D所示的示例中,在每个节点与路由器108之间仅发送一个往返消息。作为对比,在常规情况下,每个节点与NAT STUN服务器对话,这通常需要多个往返消息。此外,路由器108可以任选地利用NAT
STUN服务器112以懒惰方式执行行为确定,即只有在客户端对其发出请求时才进行。如果路由器的NAT行为是确定的,则这也可能出现在路由器108的初始化时。在NAT设备具有完全确定的行为的情况下,可以省略与NAT STUN服务器112的通信,这是因为路由器行为是已知的,并且可以直接传送到路由器108之后的节点。
上述的方法不仅仅是表面上类似于通用即插即用(UPnP)网关协议。本发明的实施例与UPnP存在多个方面的不同。最显著的是,当将UPnP设备添加到LAN时,该UpnP设备向LAN上的控制点宣传其服务。作为对比,在本发明的实施例中,LAN上的节点找到有关控制点(路由器上的NAT)的信息,并且使该信息可用于其它设备。
此外,缺乏对NAT行为的真正标准化使得现有的UpnP机制并不完全切实可行。特别是,UPnP主要仅由住宅路由器支持,而不是由其它更大规模的路由器支持。例如,提供从房间的因特网访问服务的酒店中的路由器通常不支持UPnP。另一个UPnP无法工作的情况是某些ISP可以为提供某些服务(例如热点(HOT SPOT)服务)的路由器提供私有地址。在这种情况下,节点获得的外部地址是最接近的UPnP
NAT的私有地址。该节点仍然需要使用STUN服务器来获得可在因特网上路由的实际全局地址。此外,许多现有的路由器不支持UPnP,或者对于许多支持UPnP的路由器而言无法接通UPnP。
在本发明的可选实施例中,在本地网络101上的设备上运行的单一应用程序可以代表其它应用程序执行许多、但并非全部的这些操作。运行该应用程序的设备在本文中称为NAT代理。如果NAT代理仅在一个设备上运行,则可能无法确定某些与不同内部IP地址的绑定有关的NAT问题。可以通过在两个设备上运行该应用程序的至少两个实例来克服这个问题,尽管这样做会丧失许多使用上的便利。
参照图3A和3B可以理解利用NAT代理的实施例。如图3A所示,本地网络101可以包括与节点A 102相关的第一NAT代理116以及与节点B 104相关的第二NAT代理118。NAT代理116、118可以耦合到路由器108。NAT代理可以不时询问STUN服务器112,以便获得NAT行为信息110,并且与节点A 102、节点B 104以及路由器108之后的其它节点共享该信息110。例如,如图3B所示,第一NAT代理116可以向STUN服务器112发送请求204,并且作为答复接收响应206。类似的是,第二NAT代理118可以向STUN服务器112发送请求224,并且作为答复接收响应226。NAT代理116、118可以全部或者部分地从响应206、226导出NAT行为信息110。在已经导出信息110之后,与路由器108相连的节点之一可以询问NAT代理116、118 NAT行为信息110。例如,节点A 102可以向NAT代理116、118广播请求228,它们可以分别发送响应230、232作为答复。
可以使NAT代理应用程序位于与请求应用程序相同的物理设备节点上。节点仅需要从任意NAT代理接收一个响应。在仅有一个代理负责在本地网络中发送响应的情况下,NAT代理可以以分级方式运行。这样做的不好的副作用是在否则冗余的网络配置内产生单一故障点。此外,可以将参照图3A和图3B所述的NAT代理技术与以上参照图2C所述的部分响应/更新响应技术组合起来,以实现对代理节点之间NAT行为类型的协同全面理解。
在前面的讨论中,已经假设了每个节点位于单一NAT之后。在某些网络配置中,节点也可以位于多于一个NAT之后。可以更改本发明的实施例以解决给定节点位于多于一个NAT之后的情况。例如,如图4所示,节点A 102和节点B 104均位于NAT 1之后。然而,节点B 102还位于NAT 2到NAT N之后。在本示例中,NAT 1可以是局域网101与广域网106之间的网关路由器的一部分。有关NAT 1存在和行为的信息可以用于节点A 102和节点B 104,以与WAN 106通信。此外,有关NAT 1和NAT 2到NAT N的信息可用于节点A 102和节点B 104相互通信的情况。
例如,节点102、104、120可以通过使用数据报报头内的字段来确定它们之前有多少个NAT,该字段的值在通往该数据报目的地的路径中遇到的每个NAT设备处都减少。例如,该字段可以是生存时间(TTL)字段。在Ipv 4中,TTL是指网际协议(IP)报头中的8比特字段。其为20个中的第9个八位位组。生存时间值可以视为IP数据报在互联网系统中能够存在的时间的上限。TTL字段可以由数据报的发送器来设定,并且被通往其目的地的路径上的每个主机减少。如果在数据报到达其目的地之前TTL字段达到零,则抛弃该数据报并且将互联网控制消息协议(ICMP)错误数据报(11-超时)发回发送器。常规上,该TTL字段用于避免无法送达的数据报不断在互联网系统中循环并且最终使该系统受不了大量的这种“永存”数据报的情况。理论上,生存时间可以以秒来测量,尽管传递数据报的每个主机必须将TTL减少至少一个单位。实际上,TTL字段每一跳都减少1。为了反映这种实际情况,在IPv6中将该字段命名为跳数限制。ICMP错误数据报识别超时之前该数据报到达的最后主机。称作跟踪路由(traceroute)的工具使用该ICMP错误消息来探测到达远端节点的路径。可以将TTL或者跳数限制字段用于以类似于跟踪路由命令中所使用的方式来确定节点A 102与节点B 104之间的NAT地址。
在本发明的实施例中,节点A 102和节点B 104及其它节点120可以共享与NAT 1以及NAT 2到NAT N的行为相关的信息110。节点102、104、120可以获得例如以上参照图2A-2D所述的NAT信息110,并且按照可供LAN 101上的所有节点访问的方式存储该信息。例如,可以将信息110缓存在服务器112上,例如公共数据库服务器或者STUN服务器。例如,该服务器112可以位于LAN 101与WAN 106之间。还要注意,主控(host)NAT 1和NAT 2到NAT N的设备还可以收集有关其自身的信息,并且将其与节点102、104、120共享。
本发明的实施例可以用于以无线节点实现NAT行为发现。例如,如图5所示,无线网络500可以包括第一、第二和第三无线接入点WAP1、WAP2和WAP3,它们处于地理上分布的位置。可以利用例如无线路由器来实现该无线接入点WAP1、WAP2和WAP3,它们可以分别包括网络地址转换器NAT 1、NAT 2和NAT 3。可由相应的覆盖区域502、504、505来表征无线接入点WAP1、WAP2和WAP3。如果无线节点507位于覆盖区域之一内,则其可以访问网络501。例如,无线节点507可以是配置用于无线网络通信的任意设备。这种设备的示例包括但不限于笔记本计算机、便携视频游戏设备、便携音乐下载设备、便携IP话音(VoIP)设备以及便携因特网浏览器或者电子邮件设备,例如Blackberry®。Blackberry®是加拿大安大略沃特卢的Research
in Motion LTD的注册商标。此外,这种设备包括包含两种或更多种功能的无线设备,例如VoIP、互联网、电子邮件和音乐下载。这种设备的示例是加利福尼亚库柏蒂诺的Apple Inc.生产的iPhone。
无线接入点WAP1、WAP2、WAP3可以通过路由器508与广域网506连接。此外,在路由器508与无线接入点WAP1、WAP2、WAP3之间分别连接有其它节点A、B、C。可以将有关网络地址转换器NAT1、NAT2、NAT3的信息510存储在耦合到路由器508的中央可访问缓存512处。有多种不同方式来获得并缓存该信息510。例如,无线节点507可以通过常规的NAT穿透收集部分信息510,并且将其与如图2B或2C所示的其它节点共享。此外,路由器508或者无线接入点WAP1、WAP2、WAP3可以如上参照图2D所述获得信息510。此外,其它节点A、B、C可以通过如上参照图3A和图3B所述作为代理节点来获得全部或者部分信息。此外,尽管所示的信息存储在单一位置512,但是可选的是可以将信息510分布在与网络501相连的节点上。在一些实施例中,可以将与无线网络地址转换器NAT1、NAT2、NAT3相关的信息本地存储在相应的无线接入点WAP1、WAP2、WAP3处。注意,信息510可以包括每个NAT或者无线接入点的地理位置。信息510还可以包括与NAT或者无线接入点相关的其它一般信息。该信息可以包括但不限于涉及本地餐馆、天气、与网络501相连的其它设备的标识、已经访问特定无线接入点的次数的信息以及其它一般信息。无线设备可以在通过任意无线接入点WAP1、WAP2、WAP3访问该网络510时访问该信息。
通过共享该信息510,可以增强该无线网络501上的服务质量。例如,无线节点507可以从一个覆盖区域移动到另一个覆盖区域,例如从第一无线接入点WAP1的覆盖区域502移动到第二无线接入点WAP2的覆盖区域504。可以组织该信息510,使得无线设备507能够请求相邻无线接入点,例如第二无线接入点WAP2的NAT信息。在一些实施例中,可以对设备507编程以根据例如GPS数据或者无线信号强度来确定无线设备行进的大致方向,并且使用该方向来估计该设备更可能遇到哪个无线接入点。
本发明的实施例还适用于NAT移动的情况。例如,可以将无线接入点WAP1、WAP2、WAP3安装在车辆上。无线节点507可以根据例如地理信息确定NAT是否是移动的。例如,无线节点507可以包括地理位置系统,例如全球定位卫星系统(GPSS)接收器。使用该系统,节点507可以在其遇到NAT时定位自己的位置。如果在节点507处于足够远离的两个不同位置时遇到相同的NAT,则该节点可以推断出NAT已经移动。
如上所述,存在可以结合本发明实施例使用的多种不同的节点配置。例如并不失一般性,图6是示出适于实现根据本发明实施例的NAT行为发现的节点600的部件的框图。例如并不失一般性,节点600可以实现为适于实现本发明实施例的计算机系统,例如个人计算机、视频游戏控制台、个人数字助理、无线设备或者其它数字设备。在一些实施例中,节点600可以是路由器。节点600可以包括配置为运行软件应用程序以及任选地运行操作系统的中央处理单元(CPU)601。CPU 601可以包括一个或更多个处理核。例如但并非限制,CPU 601可以是并行处理器模块,例如单元处理器。例如国际商业机器公司(International
Business Machines Corporation)、索尼计算机娱乐公司(Sony Computer
Entertainment Incorporated)、东芝公司(Toshiba Corporation)享有版权的2005年8月8日发表的“Cell Broadband
Engine Architecture”中详细描述了单元处理器体系结构的示例,在http://cell.scei.co.jp/可以下载到该文章的副本,该文章的全部内容在本文中引入作为参考。
在节点600中,存储器602可以耦合到CPU 601。存储器602可以存储供CPU 601使用的应用程序和数据。存储器602可以是集成电路形式,例如RAM、DRAM、ROM等。计算机程序603可以以能够在处理器601上执行的指令的形式存储在存储器602中。程序603的指令可以配置为尤其实施例如如上所述的NAT行为发现。特别是,程序603可以是在执行时使得节点600确定有关一个或多个NAT行为的信息并且以使该信息可被节点600或者一个或多个其它节点检索的方式存储该信息。此外,程序603可以配置为检索有关由一个或多个其它节点获得的一个或多个NAT行为的信息,并且使用该信息穿透一个或多个NAT。
存储器602可以包含由程序603生成或者可被程序603使用的数据。特别是,存储器602可以包含与一个或多个NAT相关的信息610。具体讲,信息610可以包括但不限于(i)NAT行为信息(例如,NAT是完全锥形、受限锥形、端口受限型的还是对称的),包括NAT行为是否包括端口保留;(ii)可用STUN服务器地址;以及(iii)公共数据库地址。可以将信息610存储在存储器602的能够被其它节点访问的扇区中。
节点600还可以包括为应用程序和数据提供非易失性存储的存储设备615。例如,存储设备615可以是固定盘驱动器、可移动磁盘驱动器、闪存设备、磁带驱动器、CD-ROM、DVD-ROM、蓝光、HD-DVD、UMD或者其它光学存储设备。节点600还可以包括常用于计算系统的公知支持功能620。所述支持功能可以包括诸如输入/输出(I/O)元件621、电源(P/S)622、时钟(CLK)623以及缓存624的特征。
可以将一个或多个用户输入设备625用于将用户输入从一个或多个用户传送到节点600。例如,用户输入设备625中的一个或多个可以通过I/O元件621耦合到节点600。适当输入设备620的示例包括键盘、鼠标、操纵杆、触摸垫、触摸屏、光笔、静止或视频照相机和/或麦克风。在A/V聊天的特定情况下,希望用户接口设备625包括照相机和麦克风。
网络接口626允许节点600通过电子通信网络627与其它计算机系统通信。例如,网络627可以是广域网,并且节点600可以在局域网上。该节点可以通过路由器608与网络627对接,该路由器608可以包括网络地址转换器NAT。在一些实施例中,节点600本身可以是例如以上参照图2D所述的路由器。网络接口626可以包括在局域网和广域网(如因特网)上的有线或无线通信。节点600可以在网络627上通过一个或多个消息分组628来发送和接收文件请求和/或数据。例如,网络接口626可以包括网卡、网络适配器或者网络接口卡(NIC),如以太网卡,或者是其一部分。网络接口626可以包括设计为允许节点600在网络627上通信的计算机硬件。网络接口626可以例如通过使用MAC地址提供对连网介质的物理访问并且提供低级寻址系统。因此,相对于网际协议堆栈,可以将网络接口626视为物理层设备以及数据链路层设备。
节点600还可以包括图形子系统630,其可以包括图形处理单元(GPU)635和图形存储器640。该图形存储器640可以包括用于存储输出图像的每个像素的像素数据的显示存储器(例如帧缓冲器)。该图形存储器640可以集成在与GPU 635相同的设备中、作为独立设备与GPU 635相连和/或在存储器602内实现。可以将像素数据从CPU 601直接提供给图形存储器640。可选的是,CPU 601可以向GPU 635提供限定希望的输出图像的数据和/或指令,根据该数据和/或指令,GPU 635可以生成一个或多个输出图像的像素数据。可以将限定该希望输出图像的数据和/或指令存储在存储器602和/或图形存储器640中。在实施例中,GPU 635可以配置(例如通过适当的编程或者硬件配置)有3D渲染(render)能力,以根据限定某个场景的几何图形、照明、遮光、纹理、运动和/或照相机参数的指令和数据来生成输出图像的像素数据。该GPU
635还可以包括能够执行着色器程序(shader program)的一个或多个可编程执行单元。
图形子系统630可以周期性地从图形存储器640输出图像的像素数据以显示在显示设备650上。该显示设备650可以是能够响应于来自计算机系统600的信号显示视觉信息的任意设备,包括CRT、LCD、等离子和OLED显示器。节点600可以向显示设备650提供模拟或者数字信号。例如,显示器650可以包括显示文本、数字、图形符号或者图像的阴极射线管(CRT)或者平板屏幕。此外,节点600可以包括产生可听或以其他方式可探测的声音的一个或多个音频扬声器652。为了促进这种声音的产生,节点600还可以包括适于根据CPU 601、存储器602和/或存储设备615提供的指令和/或数据生成模拟或者数字音频输出的音频处理器655。在诸如A/V聊天或者IP话音(VoIP)的应用程序的特定情况下,有时希望节点600包括图形显示设备650和音频扬声器652。
节点600的各个部件,包括CPU 601、存储器602、支持功能620、数据存储设备615、用户输入设备625、网络接口626、图形子系统630、扬声器652和音频处理器655可以通过一个或多个数据总线660可操作地彼此连接。这些部件可以以硬件、软件、固件或者上述两种或更多种的某种组合实现。
本发明的实施例可以解决与NAT设备(执行网络地址转换的路由器)相关的网络部署中的关键问题。具有完全指定行为的路由器可用于以集中的方式实现NAT行为信息发现和分布。如果在所述路由器处无法完全收集各个应用程序的状态,则某些功能可能丢失。然而,对该机构的补充可以计及该缺陷,然而可能随之而来的是成本的增加。
在另外不同的本发明实施例中,公共NAT之后的对等网络节点可以协作以通过分散的方式更好地解决NAT穿透问题。现有解决方案不能解决随着变化的NAT设备行为所发生的全部问题,包括本地网络上多节点的协作。
尽管以上是对本发明优选实施例的完整说明,但是可以利用各种可选方式、修改和等价物。因此,不应参照以上说明书来确定本发明的范围,而是应当参照所附权利要求书及其全部等价物范围来确定。本文中所述的无论是否是优选的任何特征,均可以与本文中所述的无论是否是优选的任何其它特征组合。在以下的权利要求书中,不定冠词“一”除非明确指明均是指冠词之后的项的一个或多个的量。在以下的权利要求书中,表达方式第一和第二用于区分不同元件而非意味着任何特定的顺序或次序。所附权利要求书不应解释为包含装置加功能限定,除非在使用短语“用于……的装置”的特定权利要求中明确引用了这种限定。
Claims (28)
1.一种用于促进网络地址转换器(NAT)的穿透的方法,所述方法在配置为通过一个或多个无线接入点与网络上的一个或多个其他设备相通信的移动设备中使用,所述方法包括:
对于所述移动设备来估计行进的方向;
使用所估计的行进的方向来预测所述移动设备很可能遇到的一个或多个无线接入点;以及
a)利用所述移动设备来确定有关与所预测的所述移动设备很可能遇到的一个或多个无线接入点相关的一个或多个NAT的行为的信息;并且以所述信息可供所述移动设备检索并且可供所述一个或多个其他设备检索的方式将所述信息存储到可供所述移动设备访问并且可供所述一个或多个其他设备访问的公共位置,以及使用所述信息来穿透所述NAT中的一个或多个。
2.一种用于促进网络地址转换器(NAT)的穿透的方法,所述方法在配置为通过一个或多个无线接入点与网络上的一个或多个其他设备相通信的移动设备中使用,所述方法包括:
对于所述移动设备来估计行进的方向;
使用所估计的行进的方向来预测所述移动设备很可能遇到的一个或多个无线接入点;以及
b) 从可供所述移动设备访问并且可供所述一个或多个其他设备访问的公共位置检索所述一个或多个其他设备获得的有关与所预测的所述移动设备很可能遇到的一个或多个无线接入点相关的一个或多个NAT的行为的信息,并且使用所述信息来穿透所述NAT中的一个或多个。
3.一种用于促进网络地址转换器(NAT)的穿透的方法,所述方法在配置为通过一个或多个无线接入点与网络上的一个或多个其他设备相通信的移动设备中使用,所述方法包括:
对于所述移动设备来估计行进的方向;
使用所估计的行进的方向来预测所述移动设备很可能遇到的一个或多个无线接入点;以及
a)利用所述移动设备来确定有关与所预测所述移动设备的很可能遇到的一个或多个无线接入点相关的一个或多个NAT的行为的信息;并且以所述信息可供所述移动设备检索并且可供所述一个或多个其他设备检索的方式将所述信息存储到可供所述移动设备访问并且可供所述一个或多个其他设备访问的公共位置;以及
b) 从可供所述移动设备访问并且可供所述一个或多个其他设备访问的公共位置检索所述一个或多个其他设备获得的有关与所预测的所述移动设备很可能遇到的一个或多个无线接入点相关的一个或多个NAT的行为的信息,并且使用所确定的信息和所检索的信息来穿透所述NAT中的一个或多个。
4.根据权利要求1或3所述的方法,其中,确定有关一个或多个NAT的行为的信息包括:确定所述NAT中的一个或多个的介质访问控制(MAC)地址。
5.根据权利要求1或3所述的方法,其中,确定有关一个或多个NAT的行为的信息包括:确定给定外部IP地址与另一其他设备之间存在多少个NAT。
6.根据权利要求5所述的方法,其中,确定给定外部IP地址与另一其他设备之间存在多少个NAT包括:发送具有预定生存时间的数据报,并且如果响应于所述数据报而发回超时错误,则重新发送具有递增的生存时间的数据报。
7.根据权利要求1、2或3所述的方法,其中,有关一个或多个NAT的行为的所述信息包括NAT类型。
8.根据权利要求1、2或3所述的方法,其中,有关一个或多个NAT的行为的所述信息包括涉及NAT的地理信息。
9.根据权利要求1或3所述的方法,其中,存储所述信息包括:在对等网络上分布所述信息。
10.根据权利要求1或3所述的方法,其中,以所述信息可供所述移动设备检索并且可供一个或多个其他设备检索的方式存储所述信息包括:在可被所述移动设备及其他设备访问的服务器上存储所述信息。
11.根据权利要求10所述的方法,其中,所述服务器是公共数据库服务器。
12.根据权利要求1或3所述的方法,其中,a)还包括:存储以下与所述一个或多个NAT相关的信息:可用的NAT的UDP简单穿透(STUN)服务器地址和公共数据库地址。
13.根据权利要求2或3所述的方法,其中,b)还包括:检索以下与所述一个或多个NAT相关的信息:可用的NAT的UDP简单穿透(STUN)服务器地址和公共数据库地址。
14.根据权利要求2或3所述的方法,其中,b)包括:从可供所述移动设备和所述一个或多个其他设备访问的中央位置检索有关一个或多个NAT的行为的信息。
15.根据权利要求1、2或3所述的方法,其中,所述移动设备和所述一个或多个其他设备位于相同NAT之后。
16.根据权利要求1、2或3所述的方法,其中,所述移动设备是可供所述一个或多个其他设备访问的路由器。
17.根据权利要求1或3所述的方法,其中,所述移动设备是可供所述一个或多个其他设备访问的路由器,并且其中以所述信息可供所述移动设备检索并且可供一个或多个其他设备检索的方式存储所述信息包括:将所述信息缓存在路由器处。
18.根据权利要求1所述的方法,其中,有关一个或多个NAT的行为的所述信息包括:NAT行为信息、一个或多个可用的NAT的UDP简单穿透(STUN)服务器地址、一个或多个公共数据库地址、经由NAT的有效会话的数目、NAT上的集合的业务负载或者实现相对于对称NAT的端口预测的原子态的标志的值,其中所述标志指示用于端口预测的特定原子态是锁定还是未被锁定。
19.根据权利要求1、2或3所述的方法,其中,估计行进的方向包括:分析全球定位卫星(GPS)数据或无线信号强度。
20.一种移动设备,包括:
处理器;
耦合到所述处理器的网络接口,所述网络接口被配置为允许所述移动设备通过一个或多个无线接入点与网络上的一个或多个其他设备无线地通信;以及
一个或多个可执行指令,所述指令在由所述处理器执行时使得所述移动设备:
对于所述移动设备来估计行进的方向;
使用所估计的行进的方向来预测所述移动设备很可能遇到的一个或多个无线接入点;以及
a)利用所述移动设备来确定有关与所预测的所述移动设备很可能遇到的一个或多个无线接入点相关的一个或多个网络地址转换器NAT的行为的信息,并且以所述信息可供所述移动设备检索并且可供所述一个或多个其他设备检索的方式将所述信息存储到可供所述移动设备访问并且可供所述一个或多个其他设备访问的公共位置,以及使用所述信息来穿透所述NAT中的一个或多个。
21.一种移动设备,包括:
处理器;
耦合到所述处理器的网络接口,所述网络接口被配置为允许所述移动设备通过一个或多个无线接入点与网络上的一个或多个其他设备无线地通信;以及
一个或多个可执行指令,所述指令在由所述处理器执行时使得所述移动设备:
对于所述移动设备来估计行进的方向;
使用所估计的行进的方向来预测所述移动设备很可能遇到的一个或多个无线接入点;以及
b) 从可供所述移动设备访问并且可供所述一个或多个其他设备访问的公共位置检索所述一个或多个其他设备获得的有关与所预测的所述移动设备很可能遇到的一个或多个无线接入点相关的一个或多个网络地址转换器NAT的行为的信息,并且使用所述信息来穿透所述NAT中的一个或多个。
22.一种移动设备,包括:
处理器;
耦合到所述处理器的网络接口,所述网络接口被配置为允许所述移动设备通过一个或多个无线接入点与网络上的一个或多个其他设备无线地通信;以及
一个或多个可执行指令,所述指令在由所述处理器执行时使得所述移动设备:
对于所述移动设备来估计行进的方向;
使用所估计的行进的方向来预测所述移动设备很可能遇到的一个或多个无线接入点;以及
a)利用所述移动设备来确定有关与所预测的所述移动设备很可能遇到的一个或多个无线接入点相关的一个或多个网络地址转换器NAT的行为的信息,并且以所述信息可供所述移动设备检索并且可供所述一个或多个其他设备检索的方式将所述信息存储到可供所述移动设备访问并且可供所述一个或多个其他设备访问的公共位置;以及
b) 从可供所述移动设备访问并且可供所述一个或多个其他设备访问的公共位置检索所述一个或多个其他设备获得的有关与所预测的所述移动设备很可能遇到的一个或多个无线接入点相关的一个或多个NAT的行为的信息,并且使用所确定的信息和所检索的信息来穿透所述NAT中的一个或多个。
23.根据权利要求20、21或22所述的移动设备,还包括:可供所述移动设备访问的用于存储和/或检索有关一个或多个NAT的行为的信息的存储位置。
24.根据权利要求20、21或22所述的移动设备,其中,所述移动设备通过实施所述NAT的路由器与所述网络中的一个或多个其他设备相连接。
25.根据权利要求20、21或22所述的移动设备,其中,所述移动设备是与一个或多个其他设备相连接的路由器。
26.根据权利要求25所述的移动设备,其中,所述路由器实施所述NAT。
27.根据权利要求20、21或22所述的移动设备,其中,有关一个或多个NAT的行为的所述信息包括:NAT行为信息、一个或多个可用的NAT的UDP简单穿透STUN服务器地址、一个或多个公共数据库地址、经由NAT的有效会话的数目、NAT上的集合的业务负载、或者实现相对于对称NAT的端口预测的原子态的标志的值,其中所述标志指示用于端口预测的特定原子态是锁定还是未被锁定。
28.根据权利要求20、21或22所述的移动设备,其中,所述一个或多个可执行指令被配置为使得所述移动设备通过分析全球定位卫星(GPS)数据或无线信号强度来估计行进的方向。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/829,831 US7933273B2 (en) | 2007-07-27 | 2007-07-27 | Cooperative NAT behavior discovery |
US11/829831 | 2007-07-27 | ||
CN200880108512.2A CN101809951B (zh) | 2007-07-27 | 2008-07-21 | 协同nat行为发现 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880108512.2A Division CN101809951B (zh) | 2007-07-27 | 2008-07-21 | 协同nat行为发现 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102984289A CN102984289A (zh) | 2013-03-20 |
CN102984289B true CN102984289B (zh) | 2016-08-10 |
Family
ID=40295290
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210502299.1A Active CN102984289B (zh) | 2007-07-27 | 2008-07-21 | 促进nat穿透的方法以及移动设备 |
CN200880108512.2A Active CN101809951B (zh) | 2007-07-27 | 2008-07-21 | 协同nat行为发现 |
CN201710316501.4A Active CN107257389B (zh) | 2007-07-27 | 2008-07-21 | 协同nat行为发现 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880108512.2A Active CN101809951B (zh) | 2007-07-27 | 2008-07-21 | 协同nat行为发现 |
CN201710316501.4A Active CN107257389B (zh) | 2007-07-27 | 2008-07-21 | 协同nat行为发现 |
Country Status (5)
Country | Link |
---|---|
US (3) | US7933273B2 (zh) |
EP (2) | EP2171933B1 (zh) |
JP (1) | JP5006968B2 (zh) |
CN (3) | CN102984289B (zh) |
WO (1) | WO2009018004A1 (zh) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080298237A1 (en) * | 2006-08-03 | 2008-12-04 | Latitude Broadband, Inc. | Methods, Systems, and Apparatus of Providing QoS and Scalability in the Deployment of Real-Time Traffic Services in Packet-based Networks |
CN101335681B (zh) * | 2007-06-27 | 2011-08-10 | 华为技术有限公司 | 获取穿越资源的方法、对等网络节点和对等网络 |
US8631155B2 (en) | 2007-06-29 | 2014-01-14 | Microsoft Corporation | Network address translation traversals for peer-to-peer networks |
US7933273B2 (en) * | 2007-07-27 | 2011-04-26 | Sony Computer Entertainment Inc. | Cooperative NAT behavior discovery |
KR101606142B1 (ko) * | 2008-11-28 | 2016-03-25 | 삼성전자주식회사 | 음성패킷망에서 네트워크 주소 번역 통과를 지원하기 위한 장치 및 방법 |
US9160794B2 (en) * | 2008-12-04 | 2015-10-13 | Microsoft Technology Licensing, Llc | Network address translators (NAT) type detection techniques |
US7962627B2 (en) * | 2008-12-04 | 2011-06-14 | Microsoft Corporation | Peer-to-peer network address translator (NAT) traversal techniques |
US8280376B2 (en) * | 2008-12-31 | 2012-10-02 | Airvana, Corp. | Geography aware peer-to-peer overlay creation |
CN101820382B (zh) * | 2009-02-28 | 2013-02-27 | 华为技术有限公司 | 一种通告网络地址转换设备信息的方法、装置和系统 |
JP5273001B2 (ja) * | 2009-09-30 | 2013-08-28 | ブラザー工業株式会社 | 通信システム、端末装置、通信方法、及び通信プログラム |
US8699378B2 (en) * | 2009-09-30 | 2014-04-15 | At&T Intellectual Property I, L.P. | Methods and apparatus for discovering hosts on an IPv6 network |
JP5273002B2 (ja) * | 2009-09-30 | 2013-08-28 | ブラザー工業株式会社 | 通信システム、通信制御装置、通信制御方法、及び通信制御プログラム |
US8412833B2 (en) | 2010-04-07 | 2013-04-02 | Apple Inc. | Apparatus and method for inviting users to online sessions |
FR2968496B1 (fr) * | 2010-12-03 | 2013-07-05 | Sagemcom Documents Sas | Procede et dispositif pour l'appairage d'un terminal et d'un compte utilisateur |
CN102801603B (zh) * | 2011-05-27 | 2017-04-05 | 中兴通讯股份有限公司 | 一种网络地址翻译加速的分流控制方法及装置 |
US8838735B2 (en) * | 2011-06-28 | 2014-09-16 | At&T Intellectual Property I, L.P. | Methods, systems, and products for address translation in residential networks |
KR20130052240A (ko) * | 2011-11-11 | 2013-05-22 | 삼성전자주식회사 | 네트워크 주소 변환기 통과 기법을 프로비저닝하기 위한 방법 및 장치 |
WO2013087756A1 (en) | 2011-12-14 | 2013-06-20 | Koninklijke Kpn N.V. | Methods and systems for enabling nat traversal |
US20150098471A1 (en) * | 2011-12-14 | 2015-04-09 | Koninklijke Kpn N.V. | Methods and Systems for Enabling NAT Traversal |
EP2792126B1 (en) | 2011-12-14 | 2020-08-12 | Koninklijke KPN N.V. | Virtual interface applications |
US20140351453A1 (en) * | 2011-12-14 | 2014-11-27 | Koninklijke Kpn N.V. | Node in a Network |
CN104106254A (zh) * | 2011-12-14 | 2014-10-15 | 皇家Kpn公司 | 用于实现nat穿越的方法和系统 |
EP2792128A1 (en) | 2011-12-14 | 2014-10-22 | Koninklijke KPN N.V. | Improved server communication |
KR101758681B1 (ko) * | 2012-03-27 | 2017-07-14 | 한화테크윈 주식회사 | 통신 시스템 및 통신 시스템에서의 데이터 송수신 방법 |
CN102647483B (zh) * | 2012-03-31 | 2018-02-27 | 中兴通讯股份有限公司 | 获取nat类型的方法、p2p端点实体和nat实体 |
KR101367180B1 (ko) * | 2012-05-21 | 2014-02-26 | 주식회사 바른기술 | 네트워크 서비스를 전환 및 공유하는 장치와 그 방법 |
US9253237B2 (en) * | 2012-06-29 | 2016-02-02 | Cisco Technology, Inc. | Rich media status and feedback for devices and infrastructure components using in path signaling |
CN103414797B (zh) * | 2013-07-31 | 2016-08-24 | 中国联合网络通信集团有限公司 | Nat穿越服务器的端口分配方法和装置 |
US9379952B2 (en) * | 2013-08-20 | 2016-06-28 | Futurewei Technologies, Inc. | Monitoring NAT behaviors through URI dereferences in web browsers |
KR102287510B1 (ko) * | 2014-04-10 | 2021-08-06 | 엘지전자 주식회사 | 서버, 영상제공장치, 및 이를 포함하는 영상 제공 시스템 |
TWI558149B (zh) * | 2015-06-23 | 2016-11-11 | 晶睿通訊股份有限公司 | 用於多層網路位址轉譯器結構之網路傳輸方法及網路傳輸系統 |
CN104994184A (zh) * | 2015-06-25 | 2015-10-21 | 北京广密华安科技有限公司 | 一种nat穿透方法和装置 |
US9860157B2 (en) | 2015-09-09 | 2018-01-02 | Sling Media Pvt Ltd | Zero configuration approach for port forwarding cascaded routers |
CN105516342B (zh) * | 2015-12-30 | 2019-02-22 | 深圳市有信网络技术有限公司 | 一种p2p穿透同步方法及系统 |
US10255222B2 (en) | 2016-11-22 | 2019-04-09 | Dover Electronics LLC | System and method for wirelessly transmitting data from a host digital device to an external digital location |
CN109698869B (zh) * | 2017-10-23 | 2022-02-25 | 中国移动通信有限公司研究院 | 私网穿越方法、通信节点及存储介质 |
US10778723B2 (en) * | 2018-03-26 | 2020-09-15 | Forescout Technologies, Inc. | Device visibility and scanning including network segments |
JP7188046B2 (ja) * | 2018-12-14 | 2022-12-13 | 富士フイルムビジネスイノベーション株式会社 | 通信システム、通信装置、通信システムプログラム及び通信プログラム |
US20210019285A1 (en) * | 2019-07-16 | 2021-01-21 | Citrix Systems, Inc. | File download using deduplication techniques |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1825828A (zh) * | 2005-02-24 | 2006-08-30 | 北京风行在线技术有限公司 | 一种两端均处于不同nat下直接穿透通信的控制方法和设备 |
CN1938996A (zh) * | 2004-04-06 | 2007-03-28 | 皇家飞利浦电子股份有限公司 | 用于移动设备的基于定位的切换 |
Family Cites Families (87)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5636216A (en) * | 1994-04-08 | 1997-06-03 | Metricom, Inc. | Method for translating internet protocol addresses to other distributed network addressing schemes |
US5488608A (en) * | 1994-04-14 | 1996-01-30 | Metricom, Inc. | Method and system for routing packets in a packet communication network using locally constructed routing tables |
EP0774186A4 (en) * | 1994-05-05 | 2005-07-20 | Catapult Entertainment Inc | NETWORK ARCHITECTURE FOR REAL-TIME VIDEO GAMES |
US5793763A (en) * | 1995-11-03 | 1998-08-11 | Cisco Technology, Inc. | Security system for network address translation systems |
JPH11122301A (ja) * | 1997-10-20 | 1999-04-30 | Fujitsu Ltd | アドレス変換接続装置 |
US6128624A (en) * | 1997-11-12 | 2000-10-03 | Ncr Corporation | Collection and integration of internet and electronic commerce data in a database during web browsing |
US6151601A (en) * | 1997-11-12 | 2000-11-21 | Ncr Corporation | Computer architecture and method for collecting, analyzing and/or transforming internet and/or electronic commerce data for storage into a data storage area |
US6151584A (en) * | 1997-11-20 | 2000-11-21 | Ncr Corporation | Computer architecture and method for validating and collecting and metadata and data about the internet and electronic commerce environments (data discoverer) |
FI105753B (fi) | 1997-12-31 | 2000-09-29 | Ssh Comm Security Oy | Pakettien autentisointimenetelmä verkko-osoitemuutosten ja protokollamuunnosten läsnäollessa |
SE513828C2 (sv) * | 1998-07-02 | 2000-11-13 | Effnet Group Ab | Brandväggsapparat och metod för att kontrollera nätverksdatapakettrafik mellan interna och externa nätverk |
US6208649B1 (en) * | 1998-03-11 | 2001-03-27 | Cisco Technology, Inc. | Derived VLAN mapping technique |
US6209003B1 (en) * | 1998-04-15 | 2001-03-27 | Inktomi Corporation | Garbage collection in an object cache |
US6292880B1 (en) * | 1998-04-15 | 2001-09-18 | Inktomi Corporation | Alias-free content-indexed object cache |
US6128627A (en) * | 1998-04-15 | 2000-10-03 | Inktomi Corporation | Consistent data storage in an object cache |
US6128623A (en) * | 1998-04-15 | 2000-10-03 | Inktomi Corporation | High performance object cache |
US6289358B1 (en) * | 1998-04-15 | 2001-09-11 | Inktomi Corporation | Delivering alternate versions of objects from an object cache |
US6058431A (en) * | 1998-04-23 | 2000-05-02 | Lucent Technologies Remote Access Business Unit | System and method for network address translation as an external service in the access server of a service provider |
US6260120B1 (en) * | 1998-06-29 | 2001-07-10 | Emc Corporation | Storage mapping and partitioning among multiple host processors in the presence of login state changes and host controller replacement |
US6212565B1 (en) * | 1998-08-26 | 2001-04-03 | Sun Microsystems, Inc. | Apparatus and method for improving performance of proxy server arrays that use persistent connections |
US6138156A (en) * | 1998-10-05 | 2000-10-24 | International Business Machines Corporation | Selecting and applying content-reducing filters based on dynamic environmental factors |
US6389462B1 (en) * | 1998-12-16 | 2002-05-14 | Lucent Technologies Inc. | Method and apparatus for transparently directing requests for web objects to proxy caches |
US6333931B1 (en) * | 1998-12-28 | 2001-12-25 | Cisco Technology, Inc. | Method and apparatus for interconnecting a circuit-switched telephony network and a packet-switched data network, and applications thereof |
US6535511B1 (en) * | 1999-01-07 | 2003-03-18 | Cisco Technology, Inc. | Method and system for identifying embedded addressing information in a packet for translation between disparate addressing systems |
US6636898B1 (en) * | 1999-01-29 | 2003-10-21 | International Business Machines Corporation | System and method for central management of connections in a virtual private network |
US6393488B1 (en) * | 1999-05-27 | 2002-05-21 | 3Com Corporation | System and method for supporting internet protocol subnets with network address translators |
US6581108B1 (en) * | 1999-11-30 | 2003-06-17 | Lucent Technologies Inc. | Managing multiple private data networks using network and payload address translation |
US7917628B2 (en) * | 1999-12-02 | 2011-03-29 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
US6779035B1 (en) * | 2000-03-06 | 2004-08-17 | Microsoft Corporation | Application programming interface and generalized network address translator for translation of transport-layer sessions |
US6353891B1 (en) * | 2000-03-20 | 2002-03-05 | 3Com Corporation | Control channel security for realm specific internet protocol |
US6789126B1 (en) * | 2000-05-09 | 2004-09-07 | Sun Microsystems, Inc. | Addressing message gates in a distributed computing environment |
US6618757B1 (en) * | 2000-05-17 | 2003-09-09 | Nortel Networks Limited | System and method for dynamic IP address management |
WO2001097485A2 (en) | 2000-06-14 | 2001-12-20 | At & T Wireless Services, Inc. | Method for providing transparent public addressed networks within private networks |
WO2002003217A1 (en) | 2000-06-30 | 2002-01-10 | Net2Phone | System, method, and computer program product for resolving addressing in a network including a network address translator |
US6661799B1 (en) | 2000-09-13 | 2003-12-09 | Alcatel Usa Sourcing, L.P. | Method and apparatus for facilitating peer-to-peer application communication |
US20020075844A1 (en) * | 2000-12-15 | 2002-06-20 | Hagen W. Alexander | Integrating public and private network resources for optimized broadband wireless access and method |
US7155518B2 (en) * | 2001-01-08 | 2006-12-26 | Interactive People Unplugged Ab | Extranet workgroup formation across multiple mobile virtual private networks |
AU2002234258A1 (en) * | 2001-01-22 | 2002-07-30 | Sun Microsystems, Inc. | Peer-to-peer network computing platform |
US6993012B2 (en) * | 2001-02-20 | 2006-01-31 | Innomedia Pte, Ltd | Method for communicating audio data in a packet switched network |
JP3963690B2 (ja) * | 2001-03-27 | 2007-08-22 | 富士通株式会社 | パケット中継処理装置 |
US20030009561A1 (en) * | 2001-06-14 | 2003-01-09 | Sollee Patrick N. | Providing telephony services to terminals behind a firewall and /or network address translator |
US8065394B2 (en) * | 2001-08-20 | 2011-11-22 | Bally Gaming, Inc. | Local game-area network method |
US20030051052A1 (en) * | 2001-09-13 | 2003-03-13 | Koninklijke Philips Electronics N.V. | Addressing scheme for wireless mobile clients |
US20030055978A1 (en) * | 2001-09-18 | 2003-03-20 | Microsoft Corporation | Methods and systems for enabling outside-initiated traffic flows through a network address translator |
US7254709B1 (en) * | 2001-10-23 | 2007-08-07 | Avanza Technologies, Inc. | Managed information transmission of electronic items in a network environment |
SE522998C2 (sv) * | 2001-12-14 | 2004-03-23 | Hotsip Ab | Förfarande, gateway och datorprogramprodukt för att sända ett snabbmeddelande mellan två användare |
US7058718B2 (en) * | 2002-01-15 | 2006-06-06 | International Business Machines Corporation | Blended SYN cookies |
US7133368B2 (en) * | 2002-02-01 | 2006-11-07 | Microsoft Corporation | Peer-to-peer method of quality of service (QoS) probing and analysis and infrastructure employing same |
US7676579B2 (en) * | 2002-05-13 | 2010-03-09 | Sony Computer Entertainment America Inc. | Peer to peer network communication |
US9497168B2 (en) * | 2002-07-30 | 2016-11-15 | Avaya Inc. | Method and apparatus for supporting communications between a computing device within a network and an external computing device |
US8224985B2 (en) * | 2005-10-04 | 2012-07-17 | Sony Computer Entertainment Inc. | Peer-to-peer communication traversing symmetric network address translators |
US8060626B2 (en) * | 2008-09-22 | 2011-11-15 | Sony Computer Entertainment America Llc. | Method for host selection based on discovered NAT type |
US7016942B1 (en) * | 2002-08-05 | 2006-03-21 | Gary Odom | Dynamic hosting |
US7302496B1 (en) * | 2002-11-12 | 2007-11-27 | Cisco Technology, Inc. | Arrangement for discovering a localized IP address realm between two endpoints |
US7216359B2 (en) * | 2002-12-19 | 2007-05-08 | International Business Machines Corporation | Secure communication overlay using IP address hopping |
US7899932B2 (en) * | 2003-01-15 | 2011-03-01 | Panasonic Corporation | Relayed network address translator (NAT) traversal |
WO2004063843A2 (en) * | 2003-01-15 | 2004-07-29 | Matsushita Electric Industrial Co., Ltd. | PEER-TO-PEER (P2P) CONNECTION DESPITE NETWORK ADDRESS TRANSLATOR (NATs) AT BOTH ENDS |
IL156924A (en) * | 2003-07-15 | 2009-05-04 | Tadiran Telecom Ltd | Communication between users located behind nat device |
US8234383B2 (en) * | 2003-11-07 | 2012-07-31 | Panasonic Corporation | Bubble packet port identification using detection packets |
DE10353925B4 (de) * | 2003-11-18 | 2009-12-24 | Nec Europe Ltd. | Verfahren zum Austausch von Daten zwischen zwei Hosts |
JP4426262B2 (ja) * | 2003-11-26 | 2010-03-03 | 株式会社日立製作所 | ディスクアレイ装置及びディスクアレイ装置の障害回避方法 |
CN100399768C (zh) * | 2003-12-24 | 2008-07-02 | 华为技术有限公司 | 实现网络地址转换穿越的方法、系统 |
EP1723533A1 (en) | 2004-03-09 | 2006-11-22 | Clique Communications Llc | System and method for peer-to-peer connection of clients behind symmetric firewalls |
US20050201391A1 (en) * | 2004-03-11 | 2005-09-15 | Hung-Fang Ma | Network address translation router and related method |
US7536467B2 (en) * | 2004-04-20 | 2009-05-19 | Microsoft Corporation | Peer-to-peer (P2P) mobility system, and method |
US7620033B2 (en) * | 2004-05-21 | 2009-11-17 | Alcatel-Lucent Usa Inc. | Method for optimal path selection in traversal of packets through network address translators |
US7778187B2 (en) * | 2004-06-29 | 2010-08-17 | Damaka, Inc. | System and method for dynamic stability in a peer-to-peer hybrid communications network |
US8571011B2 (en) * | 2004-08-13 | 2013-10-29 | Verizon Business Global Llc | Method and system for providing voice over IP managed services utilizing a centralized data store |
US7543064B2 (en) * | 2004-09-30 | 2009-06-02 | Logitech Europe S.A. | Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host |
US7483393B2 (en) * | 2004-12-07 | 2009-01-27 | Cisco Technology, Inc. | Method and apparatus for discovering internet addresses |
US7522618B2 (en) * | 2005-03-18 | 2009-04-21 | Panasonic Corporation | Communication apparatus, communication system and communication method |
JP4741964B2 (ja) * | 2005-03-18 | 2011-08-10 | パナソニック株式会社 | 通信装置、通信システム及び通信方法 |
US20070061460A1 (en) * | 2005-03-24 | 2007-03-15 | Jumpnode Systems,Llc | Remote access |
US20070014301A1 (en) * | 2005-07-13 | 2007-01-18 | Motient Corporation | Method and apparatus for providing static addressing |
US8019986B2 (en) * | 2005-08-12 | 2011-09-13 | Comcast Cable Holdings, Llc | Method and system for booting, provisioning and activating hardware and software clients |
JP4722623B2 (ja) * | 2005-08-24 | 2011-07-13 | パナソニック株式会社 | Ip通信装置及びその制御方法 |
WO2007030689A2 (en) * | 2005-09-09 | 2007-03-15 | Agilemesh, Inc. | Surveillance apparatus and method for wireless mesh network |
JP4331154B2 (ja) * | 2005-09-29 | 2009-09-16 | パナソニック株式会社 | 情報処理システム、トンネル通信装置、及びトンネル通信方法 |
US20080119165A1 (en) * | 2005-10-03 | 2008-05-22 | Ajay Mittal | Call routing via recipient authentication |
US20070076099A1 (en) | 2005-10-03 | 2007-04-05 | Eyal Eshed | Device and method for hybrid resolution video frames |
JP4489008B2 (ja) * | 2005-11-16 | 2010-06-23 | 株式会社東芝 | 通信装置、通信方法および通信プログラム |
US9047310B2 (en) * | 2006-02-22 | 2015-06-02 | Microsoft Technology Licensing, Llc | Reliable, efficient peer-to-peer storage |
US8347341B2 (en) * | 2006-03-16 | 2013-01-01 | Time Warner Cable Inc. | Methods and apparatus for centralized content and data delivery |
EP2016727B1 (en) * | 2006-04-24 | 2018-03-28 | KTFreetel Co., Ltd. | Interworking system between ip networks using different ip addressing scheme and interworking method thereof |
JP4973145B2 (ja) * | 2006-11-20 | 2012-07-11 | 船井電機株式会社 | 管理サーバ及びコンテンツ移動システム |
US8693392B2 (en) * | 2007-02-21 | 2014-04-08 | Avaya Canada Corp. | Peer-to-peer communication system and method |
US7933273B2 (en) * | 2007-07-27 | 2011-04-26 | Sony Computer Entertainment Inc. | Cooperative NAT behavior discovery |
US7996543B2 (en) * | 2007-08-16 | 2011-08-09 | Xcastlabs | Client-to-client direct RTP exchange in a managed client-server network |
-
2007
- 2007-07-27 US US11/829,831 patent/US7933273B2/en active Active
-
2008
- 2008-07-21 JP JP2010520064A patent/JP5006968B2/ja active Active
- 2008-07-21 EP EP08782141.9A patent/EP2171933B1/en active Active
- 2008-07-21 EP EP15152064.0A patent/EP2890092B1/en active Active
- 2008-07-21 CN CN201210502299.1A patent/CN102984289B/zh active Active
- 2008-07-21 CN CN200880108512.2A patent/CN101809951B/zh active Active
- 2008-07-21 CN CN201710316501.4A patent/CN107257389B/zh active Active
- 2008-07-21 WO PCT/US2008/070661 patent/WO2009018004A1/en active Application Filing
-
2011
- 2011-04-25 US US13/093,624 patent/US8565190B2/en not_active Ceased
-
2015
- 2015-10-21 US US14/919,539 patent/USRE47566E1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1938996A (zh) * | 2004-04-06 | 2007-03-28 | 皇家飞利浦电子股份有限公司 | 用于移动设备的基于定位的切换 |
CN1825828A (zh) * | 2005-02-24 | 2006-08-30 | 北京风行在线技术有限公司 | 一种两端均处于不同nat下直接穿透通信的控制方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
EP2171933A4 (en) | 2013-09-18 |
CN107257389B (zh) | 2021-01-12 |
EP2171933B1 (en) | 2015-04-08 |
CN101809951A (zh) | 2010-08-18 |
CN107257389A (zh) | 2017-10-17 |
JP2010535004A (ja) | 2010-11-11 |
US20110200009A1 (en) | 2011-08-18 |
EP2890092B1 (en) | 2016-11-23 |
EP2171933A1 (en) | 2010-04-07 |
US8565190B2 (en) | 2013-10-22 |
US7933273B2 (en) | 2011-04-26 |
CN101809951B (zh) | 2017-06-06 |
EP2890092A1 (en) | 2015-07-01 |
WO2009018004A1 (en) | 2009-02-05 |
USRE47566E1 (en) | 2019-08-06 |
CN102984289A (zh) | 2013-03-20 |
JP5006968B2 (ja) | 2012-08-22 |
US20090028167A1 (en) | 2009-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102984289B (zh) | 促进nat穿透的方法以及移动设备 | |
JP4083737B2 (ja) | ネットワークアドレス変換(nat)によるピアツーピアネットワーク通信 | |
US7729366B2 (en) | Method, apparatus and system for network mobility of a mobile communication device | |
US8457014B2 (en) | Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system | |
US7450585B2 (en) | Method and system in an IP network for using a network address translation (NAT) with any type of application | |
US20070195800A1 (en) | Communication using private IP addresses of local networks | |
CN102035900B (zh) | 用于通过中继方式进行nat穿越的方法、系统和中继服务器 | |
CN102355479A (zh) | 一种多nat网关流量转发的方法和设备 | |
AU2021269297A1 (en) | Systems and methods for providing a ReNAT communications environment | |
JP2007049499A (ja) | 通信方法および装置 | |
JP5716745B2 (ja) | データ転送システム | |
JP2010226665A (ja) | 負荷分散システム、負荷分散装置、及び負荷分散方法 | |
US20080046571A1 (en) | Pervasive inter-domain dynamic host configuration | |
Punithavathani et al. | Performance analysis for wireless networks: An analytical approach by multifarious sym teredo | |
CN104378301B (zh) | 一种数据处理方法及数据处理设备 | |
JP5803924B2 (ja) | データ転送システム | |
Di et al. | Linyphi: creating IPv6 mesh networks with SSR |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |