CN101491021A - 通信装置、通信方法及通信系统 - Google Patents
通信装置、通信方法及通信系统 Download PDFInfo
- Publication number
- CN101491021A CN101491021A CNA2007800265246A CN200780026524A CN101491021A CN 101491021 A CN101491021 A CN 101491021A CN A2007800265246 A CNA2007800265246 A CN A2007800265246A CN 200780026524 A CN200780026524 A CN 200780026524A CN 101491021 A CN101491021 A CN 101491021A
- Authority
- CN
- China
- Prior art keywords
- mentioned
- address information
- point
- bag
- relay
- 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.)
- Pending
Links
Images
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
- H04L61/2578—NAT traversal without involvement of the 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
本发明是一种通信装置。通信装置(10)将对接收方端口号设定了“SP1”,且对发送源端口号设定了互不相同的“LP1”~“LP3”中的任意一个的3个地址信息调查请求1~3发送给服务器(001)。此外,通信装置(10)在地址信息调查请求1及3之间,将对发送源端口号设定了“LP1”~“LP3”中的任意一个的点对点通信准备包发送给与服务器(001)不同的接收方。通信装置(10)根据由地址信息调查响应1~3通知来的路由器(101)的端口号“GP11”、“GP12”及“GP14”,来辨别路由器(101)的NAT特性。
Description
技术领域
本发明涉及一种通信装置、通信系统及通信方法,特别涉及一种能够对路由器的地址转换特性进行调查,在两个不同私人网络之间确定点对点通信路径的通信装置、通信系统及通信方法。
背景技术
一般来说,为了识别连接在网络上的通信终端和/或通信设备(以后,共称为“通信装置”),而在通信装置上附加IP地址。在所连接的整个网络中决定为唯一的、能够实现一对一通信(P2P通信:以下,称为“点对点通信”)的IP地址被称为全球IP地址。此外,仅在特定的网络内决定为唯一的,不能够直接用于与其它网络的点对点通信的IP地址被称为私人IP地址。通信装置通过私人IP地址而被彼此识别的网络被称为私人网络。
为了使连接在私人网络上的通信装置(具有私人IP地址的通信装置)与连接在全球网上的通信装置(具有全球IP地址的通信装置)进行通信,一般来说,是将具有网络地址转换(Network Address Translation:以下,称为“NAT”)功能,或具有网络地址端口转换(Network Address Port Translation:以下,称为“NAPT”)功能的通信设备(路由器)连接在私人网络与全球网之间。另外,以后,为了简化说明,而将NAT和NAPT共称为“NAT”。
路由器在从连接在私人网络上的住宅内装置第一次接收发送到连接在全球网上的住宅外装置的包(packet)时,制作用以将发送源装置的私人地址转换为路由器的全球地址的规则、和用以接收该回复包的规则,并将所制成的规则作为NAT规则保存下来。在以后的通信中,路由器按照所保存的NAT规则,来进行来自住宅外装置的接收包、和来自住宅内装置的接收包之间的地址转换,将接收包转送给住宅内装置或住宅外装置。此外,所制成的NAT规则是在进行通信期间保持在路由器中,而在一定时间内没有通信包时被自动删除的。
然而,有时此NAT会成为障碍,不能够使具有私人IP地址的通信装置与连接在不同私人网络上的通信装置进行点对点通信。其理由是即使某个通信装置只是指定通信对象装置所具有的私人地址来发送包,发送包也不能经过用全球IP地址来识别包的因特网,不能到达通信对象那里。
于是,作为经由路由器连接在不同的私人网络上的两个通信装置跨越路由器的NAT来确定点对点通信路径的方法,利用STUN(Simple TraversalUDP(User Datagram Protocol)through NAT:RFC3489:用户数据报协议简单穿越网络地址转换器)的方法被广为人知。此外,在以下的说明中,“包”意味着“UDP包”。
首先,在对利用STUN的点对点通信路径的确定方法进行说明之前,参照图23A~图23E对NAT的种类进行说明。另外,私人网络并不局限于作为家庭内,即住宅内网络构筑的情况,也有作为企业内网络构筑的情况。以下,为了便于说明,假定私人网络为住宅内网络,但是下面的说明也同样适于在企业中构筑的大规模私人网络。此外,在从某个住宅内私人网络来看时,与该住宅内网络不同的网络都被称为住宅外网络,或外部网络。并且,为了便于说明,将IP地址“IP”和端口号“P”的组合都表现为(IP、P)。
图23A是对于被称为Full Cone NAT的NAT进行说明的图。
具有Full Cone NAT特性的路由器对于从具有某个私人地址的住宅内装置的特定端口号发送给某个住宅外装置的包,始终分配同一端口号。例如,路由器将端口号“Pb”始终分配给住宅内装置A(IPa、Pa)所发送的包,并将该包转送给连接在外部网络上的住宅外装置C。此外,具有Full Cone NAT特性的路由器将连接在外部网络上的住宅外装置发送到(IPb、Pb)的所有包转送给住宅内装置(IPa、Pa)。因此,路由器也将住宅外装置D(IPd、Pd)发送到(IPb、Pb)的包转送给住宅内装置A(IPa、Pa)。
图23B是对于被称为限制性克隆NAT(Restricted Cone NAT)(以下,称为“R NAT”)的NAT进行说明的图。
具有R NAT的路由器对于某个住宅内装置A(IPa、Pa)发送给住宅外网络的包,始终分配同一端口号“Pb”。不过,具有R NAT的路由器与具有FullCone NAT特性的路由器的不同之处在于:仅将住宅外装置C(具有IP地址IPc)发送到(IPb、Pb)的包转送给住宅内装置A(IPa、Pa),该住宅外装置C是住宅外装置A所发送了的包的发送目的地。这样一来,路由器不将不是住宅内装置A所发送了的包的接收方的住宅外装置D发送到(IPb、Pb)的包转送给住宅内装置A。此外,具有RNAT特性的路由器在所接收到的包的发送源IP地址为“IPc”时,将所有发送源端口号的包转送给住宅内装置A。这样一来,路由器也将从住宅外装置C的端口“Pc2”发送到(IPb、Pb)的包转送给住宅内装置A。
图23C是对被称为端口限制性克隆NAT(Port Restricted Cone NAT)(以下,称为“PR NAT”)的NAT特性进行说明的图。
具有PR NAT特性的路由器对于某个住宅内装置A(IPa、Pa)发送到住宅外网络的包,始终分配同一端口号“Pb”。不过,具有PR NAT的路由器与具有RNAT的路由器的不同之处在于:仅将从住宅内装置A所发送了的包的接收方(IPc、Pc1)发送到(IPb、Pb)的包转送给住宅内装置A(IPa、Pa)。因此,路由器不仅废弃从住宅外装置D的发送源(IPd、Pd)发送来的包,还会废弃从住宅外装置的发送源(IPc、Pc2)发送来的包。
以下,将上述Full Cone NAT、RNAT及PRNAT总称为“Cone NAT”。
图23D是对于被称为Adress Sensitive Symmetric NAT(以下,称为“ASNAT”)的NAT进行说明的图。
具有AS NAT特性的路由器将不同端口号分配给住宅内装置A所发送了的包的接收方IP地址的每一个。例如,将端口号“Pb1”分配给从住宅内装置A(IPa、Pa)发送到住宅外装置C(IPc、Pc)的包,且将端口号“Pb2”分配给从住宅内装置A(IPa、Pa)发送给具有与住宅外装置C不同的IP地址的住宅外装置D(IPd、Pd)的包。此外,具有AS NAT特性的路由器仅将从分配给某个端口号的住宅外装置发送来的包转送给住宅内装置A(IPa、Pa),并废弃从没有分配给该端口号的住宅外装置发送来的所有包。例如,路由器将从具有IP地址“IPc”的住宅外装置C发送到(IPb、Pb1)的包转送给住宅内装置A(IPa、Pa),而废弃从具有IP地址“IPd”的住宅外装置D发送到(IPb、Pb1)的包。
图23E是对于被称为Port Sensitive Symmetric NAT(以下,称为“PSNAT”)的NAT进行说明的图。
具有PS NAT特性的路由器将不同端口号分配给住宅内装置A所发送了的包的接收方IP地址及接收方端口号的每一个组合,且将该接收包发送给网络。例如,路由器将端口号“Pb0”分配给从住宅内装置A(IPa、Pa)发送来的包的接收方(IPc、Pc0),将端口号“Pb1”分配给接收方(IPc、Pc1),将端口号“Pb2”分配给接收方(IPc、Pc2)。此外,路由器将从分配给某个端口号的住宅外装置发送来的包转送给住宅内装置A,并废弃从分配给该端口号的住宅外装置以外的装置发送来的所有包。这样一来,路由器将从发送源(IPc、Pc1)以端口号“Pb1”为接收方发送了的包转送给住宅内装置A,而废弃从发送源(IPc、Pc2)及发送源(IPd、Pd1)发送到端口号“Pb1”的所有包。
以下,将上述AS NAT及PS NAT总称为“Symmetric NAT”。
此外,除了上述Cone NAT、Symmetric NAT之外,具有使用与住宅内装置的发送源端口号相同的端口号来对NAT进行设定的性质的路由器被广为人知。
图24A是对Port Reuse特性的概要进行说明的图。
如图24A所示,路由器向以住宅内装置A的端口号“Pa”为发送源的包分配端口号“Pa”,向以住宅内装置A的端口号“Pb”为发送源的包分配端口号“Pb”,向以住宅内装置A的端口号“Pc”为发送源的包分配端口号“Pc”。象这样,通信设备向含有某个发送源端口号的包分配与该发送源端口号相同的端口号的特性被称为“Port Reuse”。
Port Reuse是与上述NAT特性不同的特性。因此,具有Port Reuse特性的通信设备一定具有上述NAT特性的任意一个。
图24B是对具有Port Reuse特性的路由器的功能进行说明的图。
当图24B所示的路由器兼有Port Reuse特性和Full Cone NAT特性时,路由器对于将(IPa、Pa)设定为发送源IP地址及发送源端口号的包,始终分配端口号“Pa”,并将该包发送给外部网络。此外,路由器将连接在外部网络上的住宅外装置发送到接收方(IPb、Pa)的所有包转送给住宅内装置A。
其次,对为了跨越路由器的NAT来确定点对点通信路径而利用STUN的方法进行说明。
为了在通过路由器连接在不同私人网络上的两个通信装置之间确定点对点通信路径,各个装置必须对包设定接收方IP地址和接收方端口号。但是,如上所述,由于地址转换方法因路由器所具有的NAT特性而不同,因此在考虑路由器的NAT特性的情况下,通信装置必须设定包的接收方。
于是,为了确定有点对点通信路径,首先,按照规定在STUN的方法,对连接有通信装置的路由器的NAT特性进行调查。更详细地说,在STUN中,通信装置将测试用包发送给具有不同IP地址的两个服务器的每一个。接下来,通过判断路由器分配给每一个该测试用包的端口号是否一致,来判断路由器的NAT特性是Cone NAT还是Symmetric NAT。
以下,参照图25A~图25C及图26,对通过STUN的NAT特性的调查方法进行说明。
图25A是表示STUN测试(Test)I的概要的图。
在TestI中,住宅内装置A将发送源为(IPa、Pa)的包发送给服务器1(IPc、Pc1)。服务器1参照从住宅内装置A发送来的包,将包发送给住宅内装置A,在该包中,“Pc1”被设定为发送源端口号,并在接收方中含有路由器所分配了的端口号“Pb”。
图25B是表示STUN-TestII的概要的图。
在TestII中,住宅内装置A对以发送源为(IPa、Pa),且以接收方为服务器1的(IPc、Pc1)的包进行发送。相对于此,服务器2将对发送源设定了(IPd、Pd1)的、对接收方设定了路由器所分配的端口号“Pb”的包发送给住宅内装置A。
图25C是表示STUN-TestIII的概要的图。
在TestIII中,住宅内装置A对以发送源为(IPa、Pa),且以接收方为服务器1的(IPc、Pc1)的包进行发送。服务器1将包发送给住宅内装置A,在该包中,与“Pc1”不同的“Pc2”被设定为发送源端口号,并在接收方中含有路由器所分配了的端口号“Pb”。
图26是用以通过STUN来调查NAT特性的流程图。
首先,住宅内装置A执行上述TestI(步骤S1601),判断从服务器1是否接收到响应(步骤S1602)。住宅内装置A在从服务器1接收到响应时,进入步骤S1604,在其它情况下,住宅内装置A判断为不能进行与服务器1之间进行UDP通信(步骤S1603)。
当住宅内装置A接收到来自服务器1的响应时(步骤S1601中的“是”),住宅内装置A判断所接收到的响应包中所含的地址转换之后的IP地址“IPb”是否与自己的IP地址“IPa”一致(步骤S1604)。在响应包中所含的IP地址“IPb”与自己的IP地址“IPa”一致时,住宅内装置A进入步骤S1605,在其它情况下,进入步骤S1609。IP地址“IPb”及“IPa”一致的情况是指:住宅内装置A不通过路由器连接在外部网络上,并在住宅内装置A及服务器1之间没有进行NAT的情况。
当在步骤S1604中为“是”时,住宅内装置A执行TestII(步骤S1605),判断从服务器2是否接收到响应(步骤S1606)。住宅内装置A在接收到来自服务器2的响应时(步骤S1606中的“是”),判断出还能够从发送目的地装置(服务器1)以外的通信装置接收包,即对于网络是开放(步骤S1608)。另一方面,当住宅内装置A不接收来自服务器2的响应时(步骤S1606中的“不是”),住宅内装置A判断出包的发送/接收因UDP防火墙而被限制(步骤S1607)。
当TestI的结果是IP地址“IPb”及“IPa”不一致时(步骤S1604中的“不是”),住宅内装置A执行TestII(步骤S1609),判断是否接收到来自与包的接收方不同的服务器2的响应(步骤S1610)。当住宅内装置A接收到来自服务器2的响应时(步骤S1610中的“是”),判断出连接有住宅内装置A的路由器具有Full Cone NAT特性(步骤S1611)。另一方面,住宅内装置A没有接收到来自服务器2的响应时(步骤S1610中的“不是”),住宅内装置A对服务器2执行TestI(步骤S1612)。这里,使路由器分配给来自住宅内装置A的发送包的端口号为“Pb’”。住宅内装置A判断组合(IPb、Pb’)是否与组合(IPb、Pb)一致(步骤S1613),该组合(IPb、Pb’)是包含在步骤S1612中从服务器2那里接收到的响应包中的、通过NAT设定了的IP地址和端口号的组合,组合(IPb、Pb)是包含在步骤S1601中从服务器1那里接收到的响应包中的、通过NAT设定了的IP地址和端口号的组合。住宅内装置A在判断出(IPb、Pb’)与(IPb、Pb)一致时(步骤S1613中的“是”),进入步骤S1615。住宅内装置A在判断出(IPb、Pb’)及(IPb、Pb)不一致时(步骤S1613中的“不是”),判断出连接有自身的路由器具有Symmetric NAT特性(步骤S1614)。
当在步骤S1613中为“是”时,住宅内装置A执行TestIII(步骤S1615),判断从服务器1是否接收到响应(步骤S1616)。住宅内装置A在从服务器1接收到响应时(步骤S1616中的“是”),判断出连接有自身的路由器具有RNAT(步骤S1617),在其它情况下,连接有自身的路由器具有PR NAT(步骤S1618)。
如上所述,在规定在STUN的方法中,通过按照图26所示的处理流程,将图25A~图25C所示的3种Test中的几个组合起来执行,来调查NAT的特性。
此外,在STUN中规定有这样的方法:当上述NAT特性的调查结果是两个通信装置都连接在具有Cone NAT特性的路由器上时,还在该两个通信装置之间确定点对点通信路径。以下,参照图27,对规定在STUN的点对点通信路径的确定方法进行说明。
图27是表示利用STUN的点对点通信路径的确定方法的序列图。
首先,装置1通过路由器1将用以请求IP地址及端口号的登记的IP/端口登记请求包发送给服务器(步骤S1701)。路由器1使从装置1那里接收到的包的发送源的地址从(IPL1、LP1)转换为(IPG1、GP1)之后,将地址转换之后的包发送给服务器。服务器对于含在从路由器1那里接收到的包中的发送源IP地址IPG1及发送源端口号GP1进行登记(步骤S1702)。
同样,装置2通过路由器2将IP/端口登记请求包发送给服务器(步骤S1703)。路由器2使从装置2那里接收到的包的发送源的地址从(IPL2、LP2)转换为(IPG2、GP2)之后,将地址转换之后的包发送给服务器2。服务器对于含在从路由器2那里接收到的包中的发送源IP地址IPG1及发送源端口号GP1进行登记(步骤S1704)。
其次,装置2为了取得与装置1进行点对点通信所需的信息,将对装置1的IP地址及端口号的发送进行请求的IP/端口取得请求发送给服务器(步骤S1705)。服务器响应来自装置2的IP/端口取得请求,向装置2送回IP/端口取得响应包,在该IP/端口取得响应包中含有路由器1向装置1的发送源(IPL1、LP1)分配了的IP地址及端口号的组合(IPG1、GP1)(步骤S1706)。
装置2参照从服务器那里接收到的包,取得用以访问装置1的IP地址及端口号(IPG1、GP1)。于是,装置2发送以(IPG1、GP1)为接收方的点对点开始请求包(步骤S1707)。
这里,路由器1对于从装置2发送来的点对点开始请求包所进行的对应因路由器1所具有的NAT特性而不同。
首先,当路由器1执行Full Cone NAT(图23A)时,通过路由器1将从装置2发送来的点对点请求包转送给装置1,来在装置1与装置2之间确定点对点通信路径。
其次,当路由器1执行R NAT(图23B)或PR NAT(图23C)时,路由器1废弃从装置2发送来的点对点开始请求包。因此,不会有该点对点开始请求包被转送给装置1(IPL1、LP1)的情况。
这里应注目的是,具有Cone NAT特性的路由器2以能够通过将对发送源设定了(IPL2、LP2),并对接收方设定了(IPG1、GP1)的包转送给路由器1,接收来自路由器1的响应包的方式,来设定NAT。也就是说,当路由器2执行Full Cone NAT时,路由器2将NAT设定为把所有住宅外装置发送到路由器2(IPG2、GP2)的包转送给装置2(IPL2、LP2)。当路由器2具有RNAT特性时,路由器2将NAT设定为向装置2(IPL2、LP2)转送以发送源IP地址为“IPG1”的包。当路由器2具有PR NAT特性时,将NAT设定为向装置2(IPL2、LP2)转送发送源IP地址及发送源端口号为(IPG1、GP1)的包。其结果是,其次,若路由器2对以发送源IP地址及发送源端口号为(IPG1、GP1)的包进行接收的话,则由于能够使路由器2将该包转送给装置2,因此成为能够在装置1及装置2之间确定点对点通信路径的状态。
于是,装置1为了取得访问装置2所需的信息,将IP/端口取得请求发送给服务器(步骤S1708)。服务器响应来自装置1的IP/端口取得请求,向装置2送回作为IP/端口取得响应的包,在该包中含有路由器2向装置1的发送源(IPL1、LP1)分配了的IP地址及端口号(IPG2、GP2)(步骤S1709)。
装置1参照从服务器那里接收到的IP/端口取得响应,取得向装置2的IP地址及端口号(IPL2、PL2)分配了的路由器2的IP地址及端口号(IPG2、GP2)。
其次,装置1向装置2发送将发送源设定为(IPL1、LP1)的点对点开始请求包(步骤S1710)。如上所述,在此阶段,路由器2不废弃发送源IP地址及发送源端口号为(IPL1、LP1)的包,而将其转送给装置2。另一方面,路由器1以能够通过将对发送源设定了(IPL1、LP1)的包转送给路由器2,接收来自路由器2的响应包的方式,来设定NAT。即当路由器1执行RNAT时,路由器1进行将发送源IP地址为“IPG2”的包转送给装置1(IPL1、LP1)的设定。当路由器1执行PR NAT时,进行将发送源IP地址及发送源端口号为(IPG2、GP2)的包转送给装置2(IPL2、LP2)的设定。
因此,当装置2响应来自装置1的点对点开始请求包,将点对点开始响应包转送给装置1时(步骤S1711),在装置1及装置2之间确定点对点通信路径。
根据上述利用STUN的方法,能够在连接在不同私人网络上的两个通信装置都连接在具有Cone NAT特性的路由器上时,在该两个通信装置之间确定点对点通信路径。
然而,当两个通信装置通过Symmetric NAT连接在一起时,不能通过利用STUN的方法,来确定点对点通信路径。以下,对此理由进行说明。
图28是表示在将利用STUN的点对点通信路径的确定方法适用于通过具有Symmetric NAT特性的路由器连接在一起的两个通信装置时的处理顺序的序列图。更确定地说,在图28所示的例子中,连接在某个私人网络上的装置1通过执行Symmetric NAT的路由器1连接在外部网络上。
首先,在步骤S1801~S1804中,与图27所示的步骤S1701~S1704一样,装置1及装置2各自通过向服务器发送IP/端口登记请求包,来将IP地址及端口号登记在服务器中。
其次,装置2为了取得用以与装置1进行点对点通信的IP地址及端口号,将IP/端口取得请求包发送给服务器(步骤S1805)。服务器响应来自装置2的IP/端口取得请求,向装置2送回IP/端口取得响应包,在该IP/端口取得响应包中含有由路由器1向发送源IP地址及发送源端口号(IPL1、LP1)分配了的IP地址及端口号(IPG1、GP1)(步骤S1806)。
装置2参照从服务器那里接收到的包,取得装置1的IP地址及端口号(IPG1、GP1)。于是,装置2将以(IPG1、GP1)为接收方的包作为点对点开始请求来发送(步骤S1807)。
这里,当路由器1具有Symmetric NAT特性时,路由器1不将点对点开始请求包转送给装置1(IPL1、LP1),而将其废弃。此外,如上所述,执行ConeNAT的路由器2以能够通过将对发送源设定了(IPL2、LP2),并对接收方设定了(IPG1、GP1)的包转送给路由器1,接收来自路由器1的响应包的方式,来设定NAT。
其次,装置1为了取得访问装置2所需的信息,将IP/端口取得请求发送给服务器(步骤S1808)。服务器响应来自装置1的IP/端口取得请求,向装置2送回作为IP/端口取得响应的包,在该包中含有路由器2向装置2的发送源的IP地址及发送源端口号(IPL2、LP2)分配了的IP地址及端口号(IPG2、GP2)(步骤S1809)。
装置1参照从服务器那里接收到的IP/端口取得响应,取得向装置2的IP地址及端口号(IPL2、PL2)分配了的路由器2的IP地址及端口号(IPG2、GP2)。
其次,装置1将以发送源为(IPL1、LP1)的包作为点对点开始请求来发送给装置2(步骤S1810)。然而,由于路由器1具有Symmetric NAT特性,因此对包的每个接收方分配不同端口号。因此,路由器1对从装置1那里接收到的点对点开始请求包分配与“GP1”不同的端口号“GP3”,将该包转送给路由器2。
这里,当路由器2具有Full Cone NAT特性或RNAT特性时,由于路由器2将所接收到的点对点开始请求包转送给装置2(IPL2、LP2),因此在装置1及装置2之间确定点对点通信路径。
然而,当路由器2具有PR NAT或Symmetric NAT特性时,由于路由器2不将所接收到的点对点开始请求包转送给装置2,而将其废弃,因此导致在装置1及装置2之间不能成功确定点对点通信路径。
图29是表示在将利用STUN的点对点通信路径的确定方法适用于通过具有Symmetric NAT特性的路由器连接在一起的两个通信装置时的处理顺序的序列图。更确定地说,在图29所示的例子中,连接在某个私人网络上的装置2通过执行Symmetric NAT的路由器2连接在外部网络上。
首先,在步骤S1901~S1904中,与图27所示的步骤S1701~S1704一样,装置1及装置2中的每一个通过向服务器发送IP/端口登记请求包,来将IP地址及端口号登记在服务器中。
其次,装置2为了取得用以与装置1进行点对点通信的IP地址及端口号,将IP/端口取得请求包发送给服务器(步骤S1905)。服务器响应来自装置2的IP/端口取得请求,向装置2送回IP/端口取得响应包,在该IP/端口取得响应包中含有由路由器1向发送源IP地址及发送源端口号(IPL1、LP1)分配了的IP地址及端口号(IPG1、GP1)(步骤S1906)。
装置2参照从服务器那里接收到的包,取得用以访问装置1的IP地址及端口号(IPG1、GP1)。于是,装置2将以(IPG1、GP1)为接收方的包作为点对点开始请求来发送(步骤S1907)。
这里,在步骤S1907中从装置2发送来的点对点开始请求包的接收方与在步骤S1903中从装置2发送来的IP/端口登记请求包的接收方不同。因此,执行Symmetric NAT的路由器2将与端口号“GP2”不同的端口号“GP3”分配给该点对点开始请求包。即,路由器2将NAT设定为向装置2(IPL2、LP2)转送装置1以(IPG2、GP3)为接收方发送了的包。
故而,即使装置1在取得用以从服务器访问装置2的IP地址及端口号(IPG2、GP2)之后(步骤S1908~S1909),对以(IPG2、GP2)为接收方的点对点开始请求包进行发送,路由器2也会废弃该点对点开始请求包。因此,导致在装置1及装置2之间不能成功确定点对点通信路径。
如上所述,当路由器1或路由器2中的至少一个执行Symmetric NAT时,难以断言规定在STUN的点对点通信路径的确定方法成功的可能性较高。
对于上述STUN的问题,以往对于包括Symmetric NAT的所有NAT中的任意两个NAT的组合确定点对点通信路径的方法被众所周知(例如,参照日本专利文献特开2004—180003号公报)。
在日本专利文献特开2004—180003号公报中记载的点对点通信路径的确定方法中,某个通信装置预测多个在成为点对点通信的连接对象的通信装置发送点对点开始请求包时所使用的路由器的端口号,并发送多个以所预测出的端口号为接收方端口的包。由于连接有该通信装置的路由器设定多个能够接收从连接对象通信装置发送来的包的端口号,因此能够提高成功确定点对点通信路径的可能性。以下,将进行更详细的说明。
图30是表示在上述专利文献中记载的以往点对点通信路径的确定方法的序列图。在图30所示的例子中,路由器1及路由器2都具有Symmetric NAT特性。
首先,在步骤S2001~S2004中,与图27所示的步骤S1701~S1704一样,装置1及装置2各自通过向服务器发送IP/端口登记请求包,来将IP地址及端口号登记在服务器中。
其次,装置2为了与装置1进行点对点通信,而将点对点通信请求包发送给服务器(步骤S2005)。此时,装置2对发送源端口号进行改变,将在步骤S2003中用以发送IP/端口登记请求包的端口号“LP2”改变为端口号“LP2+a”(其中,a是任意整数)。装置2将新的端口号“LP2+a”作为发送源端口使用的理由是,预测到这样的情况:随着发送源端口号的改变,路由器2对发送源(IPL2、LP2+a)分配新的端口号“GP2+b”(其中,b是任意整数,并为规定在路由器2中的增量值)。
服务器在接收到点对点通信请求包时,参照所接收到的包,向装置1发送作为IP/端口通知的包,在该包中含有路由器2向发送源(IPL2、LP2+a)分配了的IP地址及端口号(IPG2、GP2+b)(步骤S2006)。
装置1在接收到从服务器发送来的IP/端口通知包时,判断是否允许装置2进行点对点通信,并将该判断结果通知给服务器(步骤S2007)。此时,装置1改变发送源端口号,将用以在步骤S2001中发送IP/端口登记请求包的“LP1”改变为“LP1+c”(其中,c是任意整数)。装置1将新的端口号“LP1+c”作为发送源端口使用的理由是预测到路由器1对发送源(IPL、LP1+c)分配新的端口号“GP1+d”之故(其中,d是任意整数,并为规定在路由器1中的增量值)。
接下来,装置1根据从接收到的IP/端口通知包取得的IP地址及端口号(IPG2、GP2+b),来向服务器发送(IPG2、GP2+b+n)被设定为接收方的点对点开始请求包(步骤S2008)。其中,n是任意整数。
装置1在步骤S2007及S2008中,在极短的时间连续发送包。因此,当将已在步骤S2007中发送了的包的发送源端口号“LP1+c”转换为“GP1+d”时,根据路由器1中的NAT的设定,来将已在步骤S2008中发送了的包的发送源端口号“LP1+c+1”转换为“GP1+d+1”。
并且,在步骤S2008中装置1发送了包的结果是路由器1将设定改变为能够接收响应包。即,在路由器1将从装置1发送来的包的发送源(IPL1、LP1+c+1)转换为(IPG1、GP1+d+1),并将该包转送给路由器2(IPG2,GP2+b+n)之后,路由器1能够将发送源为(IPG2、GP2+b+n)的包转送给装置1(IPL1、LP1+c+1)。此外,后面再对装置1将包发送给从所取得的接收方端口号开始仅增量了任意整数值n的端口号的理由进行说明。
另一方面,服务器在接收到在步骤S2007中从装置1发送来的点对点通信许可包时,将含有路由器1的IP地址及端口号(IPG1、GP1+d)的通信许可包发送给装置2(步骤S2009)。
其次,装置2在接收用以访问装置1的IP地址及端口号(IPG1、GP1+d)之后,立刻将点对点开始请求包发送给装置1(步骤S2010)。在步骤S2010中,装置2一边对发送源端口号从“LP2+a+1”开始逐个进行增量,一边对以路由器1的端口号“GP1+d+1”为接收方端口的n个点对点开始请求包进行发送。路由器2将从装置2发送来的n个点对点开始请求包各自的发送源端口号分别转换为“GP2+b+m”~“GP2+m+n—1”。这里,n是在考虑到执行步骤S2008~S2010的若干经过时间下,由从连接在路由器1的其它装置(未图示)发送来的包改变NAT的设定的可能性的情况下所规定的值。此外,m是n以下的整数。
其结果是,在步骤S2008中从装置1发送来的包的接收方端口号“GP2+b+n”与“GP2+b+m”~“GP2+b+m+n—1”中的任意一个一致。故而,路由器1将所接收到的n个点对点开始请求包中的1个转送给装置1(步骤S2010—2)。在图30中表示有端口号“GP2+b+n”及“GP2+b+m+2”一致时的例子。
装置1在接收到从路由器1转送来的点对点开始请求包时,送回点对点开始响应包(步骤S2011)。在路由器2将从装置1发送来的点对点开始响应包转送给装置2时,在装置1和装置2之间确定点对点通信路径,该路由器2已被在步骤S2010—2中调整了NAT的设定。
如上所述,作为各个连接在不同私人网络上的两个通信装置之间确定点对点通信路径的方法,利用STUN的方法和在上述专利文献中公开的方法被广为人知。
专利文献1:日本专利文献特开2004—180003号公报
然而,在上述以往点对点通信路径的确定方法中存在有以下问题。
首先,在利用STUN的方法中存在有以下两个问题。第1,很难对于调查连接有通信装置的路由器的NAT特性用的服务器(STUN服务器)进行运用和保养。如上所述,为了执行STUN测试而必须经常准备端口开放的两台服务器。在服务器经常开放端口的状态含有接收不怀好意的人的非法访问和/或攻击的危险,并随着开放端口的个数增多,或被利用的服务器的个数增多而危险性也会提高。因此,在必需准备IP地址互不相同的两台服务器(ASNAT调查用),且在一台服务器中必须时常开放互不相同的两个端口(PSNAT调查用)的STUN中,难以进行服务器的运用及保养。第2、在通过STUN的方法中,当在两个通信装置中的任意一个连接在具有Cone NAT以外的NAT特性的路由器上时,不能够确定点对点通信路径。
另一方面,在上述专利文献中公开的方式中,确实在不依存于连接有通信装置的路由器的NAT特性(即,Cone NAT或Symmetric NAT)的情况下,提高了成功确定点对点通信路径的可能性。更详细地说,在装置2下次发送包时,装置1根据从服务器通知来的路由器2的WAN侧端口号,来预测有可能在路由器1内分配的端口号。为了提高由路由器2分配的端口号与由装置1预测的端口号一致的可能性,而使装置2发送多个包。
然而,由于当两个通信装置都连接在具有Full Cone NAT特性的路由器上时,能够较容易地预测端口号,因此不需要从1个通信装置发送多个包。相反,由1个通信装置发送多个包会产生下面的问题。第1、由于发送多个无用的包,因此增大了确定通信路径所需的时间。第2、在连接到通信装置的路由器具有侵入检测功能的情况下,该路由器接收到以没有用于通信的端口号为接收方的多个包时,具有被错误地检测为该接收包是企图非法访问的包的可能性。由于具有侵入检测功能的路由器在检测出非法访问时,会废弃所接收到的所有包,因此恐怕会使连接在路由器上的通信装置不能进行通信,从而造成降低可连接性。
发明内容
本发明的目的在于提供一种能够用具有1个IP地址,且开放有1个端口的1台服务器来对NAT的特性进行调查的通信装置、通信方法及通信系统。本发明的目的还在于提供一种能够根据所调查到的NAT特性,用相应于NAT特性的最佳连接顺序,来确定点对点通信路径的通信装置、通信系统及通信方法。其结果是,对在两台装置之间连接时的连接时间及可连接性进行改善。
本发明的第1方面是经由NAT(网络地址转换)功能的第1中继装置连接在服务器的通信装置,该通信装置包括:地址信息调查请求发送单元,将多个地址信息调查请求包逐个发送给服务器,在该多个地址信息调查请求包中,为通信装置的本地端口号的、互不相同的端口号被设定为发送源端口号,并且,为服务器的端口号的、彼此相同的端口号被设定为接收方端口号;通信准备请求发送单元,在地址信息调查请求发送单元发送了第一个地址信息调查请求包之后,到发送最后的地址信息调查请求包之前为止的期间,将通信准备包发送给与服务器不同的接收方,在该通信准备包中,与多个地址信息调查请求包中的任一发送源端口号相同的端口号被设定为发送源端口号;以及地址信息接收单元,仅接收与地址信息调查请求包数目相同的地址信息调查响应包,该地址信息调查响应包是响应地址信息调查请求包而被从服务器送回,并包括在第1中继装置中从地址信息调查请求包的发送源端口号转换而来的中继端口号的地址信息调查响应包。
根据这样的结构,通信装置能够通过取得包含在地址信息调查响应包中的中继端口号,来把握分配给通信准备请求包的中继端口号,该通信准备请求包是发送到与服务器不同的接收方的包。这样一来,通信装置能够把握发送给不同接收方的两种包的端口号转换特性,也就是说能够把握对第1中继装置的NAT特性能进行判断的端口号转换特性。
此外,本发明所涉及的通信装置也可以还包括中继特性判断单元,该中继特性判断单元根据在地址信息接收单元中接收到的各个地址信息调查响应包中所含的中继端口号,来对第1中继装置的NAT特性进行判断。
根据这样的结构,通信装置根据发送给不同接收方的两种包的端口号转换特性,来判断第1中继装置的NAT特性。
地址信息调查请求发送单元也可以对第1地址信息调查请求包、第2地址信息调查请求包及第3地址信息调查请求包逐个进行发送,在该第1地址信息调查请求包中,服务器的端口号被设定为接收方端口号,并且,通信装置的第1本地端口号被设定为发送源端口号,在该第2地址信息调查请求包中,接收方端口号与第1地址信息调查请求包相同,并且,与第1本地端口号不同的通信装置的第2本地端口号被设定为发送源端口号,在该第3地址信息调查请求包中,接收方端口号与第1地址信息调查请求包相同,并且,与第1及第2本地端口号不同的通信装置的第3本地端口号被设定为发送源端口号;地址信息接收单元也可以对第1地址信息包、第2地址信息包及第3地址信息包进行接收,该第1地址信息包是响应第1地址信息调查请求包而被从服务器送回,并包括第1中继装置的第1中继端口号的信息包,该第2地址信息包是响应第2地址信息调查请求包而被从服务器送回,并包括第1中继装置的第2中继端口号的信息包,该第3地址信息包是响应第3地址信息调查请求包而被从服务器送回,并包括第1中继装置的第3中继端口号的信息包;中继特性判断单元也可以计算第1差分值和第2差分值,并根据第1及第2差分值的比较,来判断第1中继装置的NAT特性,该第1差分值是根据第1及第2中继端口号计算的差分值,该第2差分值是根据第2及第3中继端口号计算的差分值。
根据这样的结构,能够利用NAT功能的端口分配间隔的规则性,来有效地判断第1中继装置的NAT特性。
并且,连接对象通信装置也可以通过具有NAT功能的第2中继装置连接在服务器上;通信装置也可以还包括:中继信息发送单元,根据已由中继特性判断单元判断出的第1中继装置的NAT特性,来预测第1点对点中继端口号,将含有该预测出的第1点对点中继端口号的第1中继信息包发送给服务器,该第1点对点中继端口号是由第1中继装置分配给与连接对象通信装置之间的点对点通信的端口号,中继信息接收单元,从服务器接收含有第2点对点中继端口号的第2中继信息包,该第2点对点中继端口号是由第2中继装置分配给与连接对象通信装置之间的点对点通信的端口号,以及通信控制单元,为了向连接对象通信装置请求开始点对点通信,而发送开始请求包,在该开始请求包中,第2中继信息包中所含的第2点对点中继端口号被设定为接收方端口号。
根据这样的结构,通信装置将与连接对象通信装置进行点对点通信时预计第1中继装置会打开的端口号通知给连接对象通信装置,并且,发送开始请求包,对第1中继装置准备点对点通信用的端口号。因此,通信装置能够以从连接对象通信装置那里接收点对点开始请求包为转机,开始点对点通信。
此时,中继信息发送单元也可以在中继特性判断单元判断出第1及第2差分值是相同值时,发送包含第1~第3中继端口号的任一个作为第1点对点中继端口号的第1中继信息包,而在中继特性判断单元判断出第1及第2差分值不一致时,发送包含把第1及第2差分值中的较小的值和第3中继端口号相加的值作为第1点对点中继端口号的第1中继信息包。
根据这样的结构,由于通信装置在第1及第2差分值为相同值时,将在考虑第1中继装置具有Cone NAT特性的情况下所决定的端口号通知给连接对象通信装置,而在第1及第2差分值不一致时,将在考虑第1中继装置具有Symmetric NAT特性的情况下所决定的端口号通知给连接对象通信装置,因此能够提高来自连接对象通信装置的发送包能跨越第1中继装置来传输包的可能性。
或者,中继信息发送单元也可以在中继特性判断单元判断出第1中继端口号及第1本地端口号一致的情况下,发送包含任意的本地端口号作为第1点对点中继端口号的第1中继信息包。
根据这样的结构,由于通信装置将在考虑第1中继装置具有Port Reuse特性的情况下所决定的端口号通知给连接对象通信装置,因此能够提高来自连接对象通信装置的发送包跨越第1中继装置来传输包的可能性。
并且,通信准备请求发送单元最好调整包含在通信准备包的报头中的生存时间(TTL:Time To Live)值,以使通信准备包到达第1中继装置,且未到达第2中继装置。
根据这样的结构,由于通信准备包不到达连接在通信对象的第2中继装置,因此当第2中继装置具有侵入检测功能时,能够回避被错误地检测为通信准备包是非法侵入的情况。
通信装置也可以还包括用以保持第1及第2差分值的存储单元;此时,在第2次以后的点对点通信开始之前,中继特性判断单元也可以根据保持在存储单元中的第1及第2差分值,来判断第1中继装置的NAT特性。
根据这样的结构,由于通信装置能够再次利用保持在存储单元中的第1及第2差分,因此当通信装置第2次以后进行点对点通信时,能够省略再次发送地址调查请求包,从而能够缩短确定点对点通信路径所需的时间。
地址信息调查请求发送单元也可以对第4地址信息调查请求包进行发送,在该第4地址信息调查请求包中,服务器的端口号被设定为接收方端口号,并且,通信装置的第4本地端口号被设定为发送源端口号;地址信息接收单元接收第4地址信息包,该第4地址信息包是响应第4地址信息调查请求包而被从服务器送回,并包括第1中继装置的第4中继端口号的;中继信息发送单元也可以在中继特性判断单元判断出保持在存储单元中的第1及第2差分值是相同值时,发送包含第4中继端口号作为第1点对点中继端口号的第1中继信息包,而在中继特性判断单元判断出保持在存储单元中的第1及第2差分值不一致时,发送包含把所保持的第1及第2差分值中的较小的值和第4中继端口号相加的值作为第1点对点中继端口号第1中继信息包。
根据这样的结构,能够根据保持在存储单元中的信息和第4中继端口号,来有效地求出预计第1中继装置在点对点通信中会使用的端口号。
通信装置也可以在判断出第1中继端口号及第1本地端口号一致时,将表示第1中继端口号及第1本地端口号一致的信息存储在存储单元中;此时,也可以在第2次以后的点对点通信开始之前,在中继特性判断单元判断出存储单元保持有表示第1中继端口号及第1本地端口号一致的信息时,中继信息发送单元发送包含任意的本地端口号作为第1点对点中继端口号的第1中继信息包。
根据这样的结构,能够在上次NAT特性调查中,路由器的NAT特性是PortReuse的情况下,在这次确定点对点通信路径时,对NAT特性调查加以省略,将自身预定在点对点通信时会打开的任意本地端口号作为预计第1中继装置在点对点通信中会使用的端口号,通知给连接对象通信装置。
此外,该通信装置也可以还包括预先保持有对应信息的存储单元,该对应信息是使各个地址信息调查响应包中所含的中继端口号的间隔、和因该间隔而不同的NAT特性相对应的信息;地址信息调查请求发送单元对第1地址信息调查请求包、和第2地址信息调查请求包逐个进行发送,在该第1地址信息调查请求包中,服务器的端口号被设定为接收方端口号,并且,通信装置的第1本地端口号被设定为发送源端口号,在该第2地址信息调查请求包中,接收方端口号与第1地址信息调查请求包相同,并且,与第1本地端口号不同的通信装置的第2本地端口号被设定为发送源端口号;地址信息接收单元也可以对第1地址信息包和第2地址信息包进行接收,该第1地址信息包是响应第1地址信息调查请求包而被从服务器送回,并包括第1中继装置的第1中继端口号的,该第2地址信息包是响应第2地址信息调查请求包而被从服务器送回,并包括第1中继装置的第2中继端口号的;中继特性判断单元也可以将在对应信息中与接收到的第1及第2中继端口号的间隔相对应的NAT特性判断为第1中继装置的NAT特性。
根据这样的结构,能够利用NAT功能的端口分配间隔的规则性,来有效地判断第1中继装置的NAT特性。
本发明的第2方面是一种通信方法,是通信装置通过与服务器进行通信来判断第1中继装置的NAT特性的通信方法,该通信装置通过具有NAT功能的第1中继装置连接在服务器上,该通信方法包括以下步骤:地址信息调查请求发送步骤,将多个地址信息调查请求包逐个发送给服务器,在该多个地址信息调查请求包中,为通信装置的本地端口号的、互不相同的端口号被设定为发送源端口号,并且,为服务器的端口号的、彼此相同的端口号被设定为接收方端口号;通信准备请求发送步骤,在地址信息调查请求发送步骤中发送第一个地址信息调查请求包之后,到发送最后的地址信息调查请求包之前为止的期间,将通信准备包发送给与服务器不同的接收方,在该通信准备包中,与多个地址信息调查请求包的任一发送源端口号相同的端口号被设定为发送源端口号;地址信息接收步骤,仅接收与地址信息调查请求包数目相同的地址信息调查响应包,该地址信息调查响应包是响应地址信息调查请求包而被从服务器送回,并包括在第1中继装置中从地址信息调查请求包的发送源端口号转换而来的中继端口号的地址信息调查响应包;以及中继特性判断步骤,根据已在地址信息接收步骤中接收到的各个地址信息调查响应包中所含的中继端口号,来判断第1中继装置的NAT特性。
根据这样的结构,通信装置能够通过取得包含在地址信息调查响应包中的中继端口号,来把握分配给通信准备请求包的中继端口号,该通信准备请求包是发送到与服务器不同的接收方的包。这样一来,通信装置能够把握发送给不同接收方的两种包的端口号转换特性,并根据该端口号的转换特性来判断第1中继装置的NAT特性。
本发明的第3方面是一种通信系统,该通信系统包括:服务器;第1中继装置,具有NAT功能;第2中继装置,具有NAT功能;第1通信装置,通过第1中继装置连接在服务器上;以及第2通信装置,通过第2中继装置连接在服务器上;第1及第2通信装置各自包括:地址信息调查请求发送单元,将多个地址信息调查请求包逐个发送给服务器,在该多个地址信息调查请求包中,为自身装置的本地端口号的、互不相同的端口号被设定为发送源端口号,并且,为服务器的端口号的、彼此相同的端口号被设定为接收方端口号,通信准备请求发送单元,在地址信息调查请求发送单元发送第一个地址信息调查请求包之后,到发送最后的地址信息调查请求包之前为止的期间,将通信准备包发送给与服务器不同的接收方,在该通信准备包中,与多个地址信息调查请求包中的任一发送源端口号相同的端口号被设定为发送源端口号,地址信息接收单元,仅接收与地址信息调查请求包数目相同的地址信息调查响应包,该地址信息调查响应包是响应地址信息调查请求包而被从服务器送回,并包括在连接在第1及第2通信装置各自的中继装置中从地址信息调查请求包的发送源端口号转换而来的中继端口号的地址信息调查响应包,以及中继特性判断单元,根据在地址信息接收单元中接收到的各个地址信息调查响应包中所含的中继端口号,来对第1中继装置的NAT特性进行判断;服务器包括:地址信息调查单元,取出从第1及第2通信装置的每一个发送来的地址信息调查请求包中所含的中继端口号,以及地址信息发送单元,对于含有被取出的中继端口号的地址信息调查请求响应包进行发送。
根据这样的结构,通信装置能够通过取得包含在地址信息调查响应包中的中继端口号,来把握分配给通信准备请求包的中继端口号,该中继端口号是发送到与服务器不同的接收方的端口号。这样一来,通信装置能够把握发送给不同接收方的两种包的端口号转换特性,并根据该端口号转换特性来判断第1中继装置的NAT特性。
本发明的第4方面是一种通信系统,该通信系统包括:服务器;第1中继装置,具有NAT功能;第2中继装置,具有NAT功能;第1通信装置,通过第1中继装置连接在服务器上;以及第2通信装置,通过第2中继装置连接在服务器上。第1及第2通信装置各自包括:地址信息调查请求发送单元,将多个地址信息调查请求包逐个发送给服务器,在该多个地址信息调查请求包中,为自身装置的本地端口号的、互不相同的端口号被设定为发送源端口号,并且,为服务器的端口号的、彼此相同的端口号被设定为接收方端口号,以及通信准备请求发送单元,在地址信息调查请求发送单元发送第一个地址信息调查请求包之后,到发送最后的地址信息调查请求包之前为止的期间,将通信准备包发送给与服务器不同的接收方,在该通信准备包中,与多个地址信息调查请求包中的任一发送源端口号相同的端口号被设定为发送源端口号;服务器包括地址信息调查单元,该地址信息调查单元根据在第1及第2中继装置各自从地址信息调查请求包的发送源端口号转换而来的中继端口号,来判断第1及第2中继装置的NAT特性。
根据这样的结构,服务器能够根据在第1及第2中继装置各自中从地址信息调查请求包的发送源端口号转换而来的中继端口号,来判断第1及第2中继装置的NAT特性。
(发明的效果)
根据本发明所涉及的通信装置、通信方法及通信系统,能够通过与具有1个IP地址,且开放有1个端口的1台服务器进行通信,来对中继装置的NAT特性进行调查。这样一来,由于能够节省NAT特性调查所需的硬件资源,因此能够较容易地进行服务器的运用、保养,从而将必要的成本抑制到最小限度。
并且,当配置在不同私人网络中的通信装置之间彼此确定有点对点通信路径时,能够实现“缩短连接时间”和“回避不能通信的情况”。
附图说明
图1是表示本发明的第一实施方式所涉及的通信系统的整个结构的方框图。
图2A是表示图1所示的装置10的概略结构的方框图。
图2B是表示图1所示的装置20的概略结构的方框图。
图2C是表示图1所示的服务器001的概略结构的方框图。
图3是表示本实施方式所涉及的通信系统为了确定点对点通信路径而执行的处理的概要的序列图。
图4A是表示在图3所示的NAT特性调查阶段及准备阶段中的处理的详细情况的序列图。
图4B是表示图4A所示的步骤S408的处理的详细情况的流程图。
图5A是对图4A所示的步骤S410进行说明的图。
图5B是对图4A所示的步骤S411进行说明的图。
图6是表示在图3所示的信息交换阶段中的处理的详细情况的序列图。
图7是表示在图3所示的点对点通信路径确定阶段中的处理的详细情况的序列图。
图8是表示当路由器101为Cone NAT时的连接序列的详细情况的图。
图9A是表示当路由器101为Symmetric NAT时的连接序列的详细情况的图。
图9B是表示图9A所示的端口号的图。
图10是表示当路由器101为Port Reuse时的连接序列的详细情况的图。
图11是本发明的第二实施方式所涉及的通信系统的连接序列图。
图12是表示本发明的第三实施方式所涉及的通信系统的整个结构的方框图。
图13是表示为了确定点对点通信路径而进行发送/接收的包、与会话启动协议(SIP:Session Initiation Protocol)消息之间的对应关系的图。
图14是表示会话启动协议的OPTIONS请求的消息格式例的图。
图15是表示SIP的200OK响应的消息格式例的图。
图16是表示SIP的INVITE请求的消息格式例的图。
图17是表示SIP的183 Session Progress响应的消息格式例的图。
图18是表示利用了SIP协议的NAT特性调查阶段及准备阶段中的处理的详细情况的序列图。
图19是表示用以使本发明的第三实施方式所涉及的通信系统确定点对点通信路径的控制处理的序列图。
图20A是在信息交换阶段中,以两个路由器的NAT特性的组合为单位,表示各个路由器所通知的点对点端口的组合的表。
图20B是在点对点通信路径确定阶段中,以两个路由器的NAT特性的组合为单位,表示连接在各个路由器上的装置所执行的处理的组合的表。
图21A是表示装置通过3个路由器连接在全球网上的例子的图。
图21B是表示装置通过3个路由器连接在全球网上的其它例子的图。
图22A是以端口分配间隔为1,且具有Cone NAT特性的路由器的图。
图22B是以端口分配间隔为1,且具有Symmetric NAT特性的路由器的图。
图23A是对于被称为Full Cone NAT的NAT进行说明的图。
图23B是对于被称为限制性克隆NAT的NAT进行说明的图。
图23C是称为端口限制性克隆NAT的NAT特性进行说明的图。
图23D是对于被称为Adress Sensitive Symmetric NAT的NAT进行说明的图。
图23E是对于被称为Port Sensitive Symmetric NAT的NAT进行说明的图。
图24A是对Port Reuse特性的概要进行说明的图。
图24B是对具有Port Reuse特性的路由器的功能进行说明的图。
图25A是表示STUN-TestI的概要的图。
图25B是表示STUN-TestII的概要的图。
图25C是表示STUN-TestIII的概要的图。
图26是用以通过STUN对NAT特性进行调查的流程图。
图27是表示利用STUN的点对点通信路径的确定方法的序列图。
图28是表示在将利用STUN的点对点通信路径的确定方法适用于通过具有Symmetric NAT特性的路由器连接在一起的两个通信装置时的处理序列的序列图。
图29是表示在将利用STUN的点对点通信路径的确定方法适用于通过具有Symmetric NAT特性的路由器连接在一起的两个通信装置时的处理序列的序列图。
图30是表示以往点对点通信路径确定方法的序列图。
附图标记
00 全球网
01、02 私人网络
001 服务器
10、20 装置
101、201 路由器
300 会话启动协议(SIP:Session Initiation Protocol)服务器
0011 地址信息调查单元
0012 地址信息发送单元
0013 中继信息转送单元
1001、2001 地址信息调查请求发送单元
1002、2002 地址信息接收单元
1003、2003 直接通信准备请求发送单元
1004、2004 中继特性判断单元
1005、2005 中继信息发送单元
1006、2006 中继信息接收单元
1007、2007 通信控制单元
1008、2008 通信单元
具体实施方式
(第一实施方式)
图1是表示本发明的第一实施方式所涉及的通信系统的整个结构的方框图。
如图1所示,私人网络01通过具有全球IP地址“IPG1”的路由器101连接在全球网00上。此外,私人网络02通过具有全球IP地址“IPG2”的路由器201连接在全球网00上。具有全球IP地址“IPS”的服务器001连接在全球网00上,具有本地IP地址“IPL1”的装置10及具有本地IP地址“IPL2”的装置20分别连接在私人网络01及02上。
图2A是表示图1所示的装置10的概略结构的方框图。
装置10包括地址信息调查请求发送单元1001、地址信息接收单元1002、直接通信准备请求发送单元1003、中继特性判断单元1004、中继信息发送单元1005、中继信息接收单元1006、通信控制单元1007及通信单元1008。
地址信息调查请求发送单元1001为了调查通过作为中继装置的路由器101的NAT功能来对从装置10发送来的包设定的端口号,将地址信息调查请求包发送给服务器001。更详细地说,地址信息调查请求发送单元1001将发送源端口号互不相同,且接收方端口号相同的至少3个地址信息调查请求包发送给服务器001。
地址信息接收单元1002从服务器001那里接收地址信息调查响应包,该地址信息调查响应包是响应地址信息调查请求包而被从服务器001送回的。地址信息调查响应包在数据单元中含有通过路由器101的NAT功能所设定的端口号(由装置10的本地端口号转换来的端口号)。
直接通信准备请求发送单元1003为了推测在点对点通信时由路由器101分配的端口号,在地址信息调查请求发送单元1001发送3个地址信息调查请求包的处理期间,将点对点通信准备包发送给连接在全球网00上的其它装置。
中继特性判断单元1004根据由地址信息接收单元1002接收到的地址信息调查响应包的数据单元中所含的端口号,来辨别路由器101的NAT特性。
中继信息发送单元1005根据由中继特性判断单元1004判断出的路由器101的NAT特性,来预测用于点对点通信的路由器101的端口号。中继信息发送单元1005为了将用于点对点通信的端口号通过服务器通知给连接对象的装置20,将在数据单元中含有所预测出的端口号的NAT信息通知包发送给服务器。
中继信息接收单元1006对从连接对象装置发送来的NAT信息通知包进行接收。所接收到的NAT信息通知包含与连接对象的装置20连接的路由器201用以点对点通信的端口号。
通信控制单元1007从所接收到的NAT信息通知包中取出路由器201的用以点对点通信的端口号,来生成将其设定为接收方端口号的点对点开始请求包。
通信单元1008将在上述各个单元中生成的包发送给私人网络01,并且,从私人网络01那里接收以装置10为接收方的包。
图2B是表示图1所示的装置20的概略结构的方框图。
装置20包括地址信息调查请求发送单元2001、地址信息接收单元2002、直接通信准备请求发送单元2003、中继特性判断单元2004、中继信息发送单元2005、中继信息接收单元2006、通信控制单元2007及通信单元2008。由于地址信息调查请求发送单元2001~通信单元2008的各个功能与图2A所示的地址信息调查请求发送单元1001~通信单元1008的各个功能一样,因此这里对此说明加以省略。
图2C是表示图1所示的服务器001的概略结构的方框图。
服务器001包括地址信息调查单元0011、地址信息发送单元0012、中继信息转送单元0013及通信单元0014。
地址信息调查单元0011在从装置10及20中的每一个接收到地址信息调查请求包时,取出所接收到的包的报头中所含的发送源端口号。地址信息调查单元0011所取出的发送源端口号是通过路由器101或201的NAT功能所设定的值。地址信息调查单元0011将所取出了的端口号输出给地址信息发送单元0012。
地址信息发送单元0012生成地址信息调查响应包,将所生成的包送回到装置,该地址信息调查响应包在数据单元中含有从地址信息调查单元0011那里接收到的端口号。
中继信息转送单元0013在从两台装置中的一个接收到NAT信息通知包时,将所接收到的NAT信息通知包转送给另一装置。
通信单元0014将已在各个单元中生成的包发送给全球网00,并且,经由全球网00而接收以服务器001为接收方的包。
这里,对本实施方式所涉及的通信系统中的控制序列进行说明。
图3是表示本实施方式所涉及的通信系统为了确定点对点通信路径而执行的处理的概要的序列图。
如图3所示,本实施方式所涉及的点对点通信路径的确定方法由4个阶段,即NAT特性调查阶段S301,准备阶段S302,信息交换阶段S303及点对点通信路径确定阶段S304来构成。
首先,在NAT特性调查阶段S301中,装置10与服务器001进行通信,并对连接在装置10上的路由器101的NAT特性(例如,Cone NAT或Symmetric NAT)进行调查。此外,装置10对路由器101是否具有Port Reuse特性进行调查。同样,装置20与服务器001进行通信,并对为中继装置的路由器201的NAT特性和Port Reuse特性的有无进行调查。
其次,在准备阶段S302中,装置10将包发送给连接有自身的路由器101,并打开用以与装置20进行通信的路由器101的端口。同样,装置20将包发送给路由器201,并打开用以与装置10进行通信的路由器201的端口。
其次,在信息交换阶段S303中,装置10及20分别经由服务器001而对在NAT特性调查阶段中辨别出的NAT特性、和确定点对点通信路径所需的信息进行交换。
然后,在点对点通信路径确定阶段S304中,装置10及20分别根据在信息交换阶段S303中取得的信息,来彼此发送包,从而确定点对点通信路径。
此外,虽然在图3中,为了便于图示,而确定了NAT特性调查阶段S301及准备阶段S302的顺序,但是不管哪个先执行,只要在信息交换阶段S303之前完成NAT特性调查阶段S301及准备阶段S302即可。
以下,对上述4个阶段进行更详细说明。
<NAT特性调查阶段及准备阶段>
图4A是表示在图3所示的NAT特性调查阶段及准备阶段中的处理的详细情况的序列图。
首先,装置10将地址信息调查请求1发送给服务器001(步骤S401)。更详细地说,地址信息调查请求发送单元1001发送装置10的端口号“LP1”被设定为发送源端口号,且服务器001的端口号“SP1”被设定为接收方端口号的地址信息调查请求包。
其次,服务器001响应从装置10发送来的地址信息调查请求1,向装置送回地址信息调查响应1(步骤S402)。更详细地说,通信单元0014接收地址信息调查请求包1,并将所接收到的包转送给地址信息调查单元0011。地址信息调查单元0011参照被转送的包报头,取出发送源端口号即由路由器101设定了的端口号“GP11”,并将所取出的发送源端口号“GP11”输出给地址信息发送单元0012。接下来,地址信息发送单元0012生成地址信息调查响应包1,并将所生成的包输出给通信单元0014,该地址信息调查响应包1在数据单元中含有从地址信息调查单元那里接收到的路由器101的端口号“GP11”。通信单元0014向装置10送回从地址信息发送单元0012那里接收到的包。在装置10中,在通信单元1008接收到地址信息调查响应包1时,将所接收到的包转送给地址信息接收单元1002。
其次,装置10将地址信息调查请求2发送给服务器001(步骤S403)。更详细地说,地址信息调查请求发送单元1001发送装置10的端口号“LP2”被设定为发送源端口号,且服务器001的端口号“SP1”被设定为接收方端口号的地址信息调查请求包2。
其次,服务器001响应从装置10发送来的地址信息调查请求2,向装置送回地址信息调查响应2(步骤S404)。更详细地说,通信单元0014接收地址信息调查请求包2,并将所接收到的包转送给地址信息调查单元0011。地址信息调查单元0011参照被转送的包的报头,取出发送源端口号即由路由器101设定了的端口号“GP12”,并将所取出的发送源端口号“GP12”输出给地址信息发送单元0012。接下来,地址信息发送单元0012生成地址信息调查响应包2,并将所生成的包输出给通信单元0014,该地址信息调查响应包2在数据单元中含有从地址信息调查单元那里接收到的路由器101的端口号“GP12”。通信单元0014向装置10送回从地址信息发送单元0012那里接收到的包。在装置10中,在通信单元1008接收到地址信息调查响应包1时,将所接收到的包转送给地址信息接收单元1002。
其次,装置10将点对点通信准备包发送给装置20(步骤S405)。更详细地说,装置10为了在路由器101上准备用以和与服务器具有不同的IP地址的装置20进行点对点通信的端口号“GP13”,将包发送给路由器101,在该包中,装置10的端口号“LP1”被设定为发送源端口号,且使装置20的IP地址及端口号作为接收方。
路由器101在步骤S405中,将NAT设定为能够接收从装置20通过路由器201发送给路由器101(IPG1、GP13)的包。路由器101设定NAT的方法按照NAT特性(图23A~图23E)而不同,在此对其说明加以省略。
其次,装置10将地址信息调查请求3发送给服务器001(步骤S406)。更详细地说,地址信息调查请求发送单元1001将装置10的端口号“LP3”被设定为发送源端口号,且服务器001的端口号“SP1”被设定为接收方端口号的包作为地址信息调查请求3来发送。
服务器001响应从装置10发送来的地址信息调查请求3,向装置10送回地址信息调查响应3(步骤S407)。更详细地说,通信单元0014接收地址信息调查请求包3,并将所接收到的包转送给地址信息调查单元0011。地址信息调查单元0011参照被转送的包的报头,取出发送源端口号即路由器101的端口号“GP14”,并将所取出的发送源端口号“GP14”输出给地址信息发送单元0012。接下来,地址信息发送单元0012生成地址信息调查响应包3,并将所生成的包输出给通信单元0014,该地址信息调查响应包3在数据单元中含有从地址信息调查单元那里接收到的路由器101的端口号“GP14”。通信单元0014向装置10送回从地址信息发送单元0012那里接收到的包。在装置10中,在通信单元1008接收到地址信息调查响应包1时,将所接收到的包转送给地址信息接收单元1002。
其次,装置10在接收到地址信息调查响应包1~3时,对路由器101的NAT特性进行判断(步骤S408)。装置10的中继特性判断单元1004根据包含在地址信息调查响应包1~3中的路由器101的3个端口号“GP11”、“GP12”及“GP14”,按照下述处理流程来判断路由器101的NAT特性。
此外,在本实施方式中,在发送地址信息调查请求之后再发送了点对点通信准备包,但是该包的发送时间并不限于此。具体地说,只要在发送地址信息调查请求1之后,到发送地址信息调查请求3之前为止的期间,发送点对点通信准备包即可。换句话说,可以按任意顺序对点对点通信准备包和地址信息调查请求包2进行发送。
此外,在图4A的例子中,对点对点通信准备包的发送源端口号设定了“LP1”,但是只要与对地址信息调查请求包1~3进行发送的端口号“LP1”~“LP3”的任意一个同一即可。
并且,对于上述点对点通信准备包(步骤S405)的接收方来说,可以使装置10预先取得装置20的IP地址及端口号。或者,也可以在服务器001对于地址信息调查响应包1或2的任意一个设定装置20的IP地址及端口号,并将其发送给装置10之后,使装置10通过参照所接收到的地址信息调查响应包1或2,来取得装置20的IP地址及端口号。
并且,在步骤S405中,最好在考虑到路由器201具有非法侵入检测功能的可能性的情况下进一步在点对点通信包上想办法。
例如,对于装置10向装置20发送的包的接收方端口号,设定路由器201实际使用的端口号(例如,当装置20与服务器001进行通信时,路由器201向装置20的包所分配的端口号)。这是因为若在路由器201具有侵入检测功能时,路由器201从装置10接收点对点通信准备包,该点对点通信准备包在接收方端口号中含有没有用于通信的端口号的话,则具有被错误地检测为该包是非法访问的包的可能性之故。由于路由器201在检测出非法访问包时,废弃从装置10发送来的所有后续包,因此恐怕使装置10与装置20不能进行通信。
或者,装置10也可以对该包的生存时间(TTL:Time To Live)值进行调整,以使点对点通信准备包不到达路由器201。装置10发送点对点通信准备包是为了对连接有自身的路由器101准备用以与装置20进行点对点通信的端口号,点对点通信准备包并不一定要到达路由器201。于是,若预先调整TTL值以使点对点通信准备包到达路由器101,且不到达路由器201的话,则装置10能够回避在路由器201中检测出非法侵入的情况。
图4B是表示图4A所示的步骤S408的处理的详细情况的流程图。
如上所述,装置10参照从服务器001送回来的地址信息调查响应包1~3,取得在发送地址信息调查请求包1~3时路由器101所使用的端口号“GP11”、“GP12”及“GP14”。路由器101向点对点通信准备包所分配的端口号“GP13”因路由器101的NAT特性而不同,有时与“GP11”、“GP12”及“GP14”3个端口号中的任意一个一致,有时不一致。此外,一般来说,路由器所打开的相邻接的两个端口号的间隔一定。故而,能够通过对3个端口号“GP11”、“GP12”及“GP14”中的、相邻接的两个端口号的差分进行调查,来辨别出NAT特性。
首先,中继特性判断单元1004判断所取得的端口号“GP11”和”GP12”的差分值Δ1(=|“GP12”—“GP11”|)是否与“GP12”和“GP14”的差分值Δ2(=|“GP14”—“GP12”|)一致(步骤S409)。在差分值Δ1与Δ2一致时(步骤S409中的“是”),中继特性判断单元1004判断出路由器101的NAT是Cone NAT(步骤S410),进入步骤S412。另一方面,在差分值Δ1与Δ2不一致时(步骤S409中的“不是”),中继特性判断单元1004判断出路由器101的NAT是Symmetric NAT(步骤S411),进入步骤S412。
并且,中继特性判断单元1004判断已用步骤S402取得的路由器101的端口号“GP11”是否与已用步骤S401发送了的地址信息调查请求包1的发送源端口号“LP1”一致(步骤S412)。在“GP11”与“LP1”一致时(步骤S412中的“是”),中继特性判断单元1004判断出路由器101具有PortReuse特性(步骤S413),结束NAT特性判断处理。在其它情况下,中继特性判断单元1004结束NAT特性判断处理。
此外,为了严密地判断路由器101是否具有Port Reuse特性,中继特性判断单元1004也可以进一步判断端口号“GP12”是否与“LP2”一致。此时,中继特性判断单元1004在“GP11”与“LP1”一致,且“GP12”与“LP2”一致时,判断出路由器101具有Port Reuse特性。此外,为了不严密地判断路由器101是否具有Port Reuse特性,也可以在确认“GP11”与“LP1”一致,或“GP12”与“LP2”一致的任意情况时,使中继特性判断单元1004判断出路由器101具有Port Reuse特性。此外,也可以在步骤S409之前,进行在步骤S412及S413中判断Port Reuse特性的处理。
此外,在路由器101具有Port Reuse特性,且“LP1”及“LP2”的差分与“LP2”及“LP3”的差分不相等时,差分值Δ1与Δ2不会相等。因此,在图4B的流程图中,当路由器101是Port Reuse的Cone NAT时,具有判断为Symmetric NAT的可能性。不过,在后续的点对点连接序列中,由于对于Port Reuse的Cone NAT、和Port Reuse的Symmetric NAT准备有共通的处理,因此如果在步骤S412及S413中判断为Port Reuse的话,就不会产生不良现象。
并且,在图4A的序列中,装置10也可以在用步骤S402从服务器001那里接收到地址信息调查响应包1的时刻,执行步骤S412~S413,并在判断出路由器101是PortReuse时,对步骤S403~S408加以省略。
装置10能够通过上述NAT特性判断处理,来对路由器101的NAT特性进行调查。
其次,对上述NAT特性判断处理的具体例子进行说明。
图5A是对图4A所示的步骤S410进行说明的图。
中继特性判断单元1004在步骤S409中判断出“是”,即差分值Δ1与Δ2一致的情况意味着:路由器101向在接收方中含有服务器的IP地址及端口号的包、和在接收方中含有装置20的IP地址及端口号的包分配了同一端口号。因此,中继特性判断单元1004能够判断出路由器101具有ConeNAT特性。
图5B是对图4A所示的步骤S411进行说明的图。
中继特性判断单元1004在步骤S409中判断出“不是”,即差分值Δ1与Δ2不同的情况意味着:路由器101向在接收方中含有服务器的IP地址及端口号的包、和在接收方中含有装置20的IP地址及端口号的包,分别分配了不同端口号。因此,中继特性判断单元1004能够判断出路由器101具有Symmetric NAT特性。
此外,装置20按照与图4A所示的顺序一样的顺序,来调查路由器201的NAT特性,在路由器201中打开用于点对点通信的端口。
此外,在图4A中,为了便于说明,同时示出了NAT特性调查阶段(步骤S401~S404、步骤S406~S408)和准备阶段(步骤S405),也可以将NAT特性调查阶段和准备阶段分开表示。
并且,NAT特性调查阶段及准备阶段不一定必须按照本实施方式所示的顺序来执行。因此,只要在后续信息交换阶段之前完成NAT特性调查阶段及准备阶段的话,则装置10及20也可以按照与本实施方式不同的顺序来执行各个步骤。
<信息交换阶段>
图6是表示在图3所示的信息交换阶段中的处理的详细情况的序列图。
下述说明的前提条件是,装置10及20分别预先通过路由器101及201将包发送给服务器001,确定有通信路径,处于能够经由服务器以实时交换信息的状态。
首先,为了将连接有自身的路由器201的、用于点对点通信的端口号(以后,点对点通信端口号)通知给装置10,装置20向服务器001进行发送(步骤S601)。更详细地说,中继信息发送单元2005在NAT特性调查阶段中判断路由器201的NAT特性,根据判断结果来预测点对点通信端口号。然后,中继信息发送单元2005生成NAT信息通知包,并通过通信单元2008将所生成的NAT信息通知包发送给服务器001,该NAT信息通知包在数据单元中含有预测出的端口号。
点对点通信端口号是根据NAT特性以下述说明决定的。
(a)在NAT特性是Cone时
装置20将端口号“GP21”、“GP22”及“GP24”值中的任意一个决定为点对点通信端口号。在本实施方式中,将“GP21”选择为点对点通信端口号。
(b)在NAT特性是Symmetric时
Symmetric NAT在每次将端口号分配给包时,以每个规定的值对端口号进行增量(或减少)。在以下的说明中,将该规定值称为“端口分配间隔”。如图5B的例子所示,由于差分值Δ1及Δ2中的较少的一方相当于路由器201的端口分配间隔,因此预测为路由器201下次将打开的端口号是“GP24+Δ1”。因此,装置20将“GP24+Δ1”决定为点对点通信端口号。
(c)在NAT具有Port Reuse特性时
装置20将预定在下次点对点通信路径确定阶段中新打开的端口号“LP4”决定为点对点通信端口号。此外,端口号“LP4”可以是与在地址信息调查请求发送处理中使用了中的“LP1”、“LP2”及“LP3”不同的任意端口号。
服务器001在接收到NAT信息通知包时,将所接收到的NAT信息通知包转送给装置10(步骤S602)。更详细地说,在服务器001中,中继信息转送单元0013通过通信单元0014一旦接收从装置20发送来的NAT信息通知包,再通过通信单元0014将所接收到的NAT信息通知包转送给装置10。
其次,装置10为了将连接有自身的路由器101的点对点通信端口号通知给装置20而向服务器001通知NAT信息(步骤S603)。更详细地说,中继信息发送单元1005根据NAT特性调查阶段中所取得的路由器101的NAT特性,来预测点对点通信端口号,生成NAT信息通知包,并通过通信单元1008将所生成的NAT信息通知包发送给服务器001,该NAT信息通知包在数据单元中含有所预测出的端口号。由于装置10向服务器001发送的NAT信息通知与装置20向服务器001发送的一样,因此这里对此说明加以省略。
服务器001在接收到NAT信息通知包时,将所接收到的NAT信息通知包转送给装置20(步骤S604)。更详细地说,在服务器001中,中继信息转送单元0014通过通信单元0014一旦接收从装置10发送来的NAT信息通知包,再通过通信单元0014将接收到的NAT信息通知包转送给装置20。
此外,在本实施方式中,装置10及20分别将根据NAT特性决定了的点对点通信端口号作为NAT信息给装置20及装置10,但是也可以将3个端口号(端口号“GP11)、“GP12”及“GP14”,或端口号“GP21”、“GP22”及“GP24”)通知给服务器001。此时,装置10及20只要分别按照图4B所示的处理流程,根据从服务器001取得的3个端口号,来判断连接有通信对象装置的路由器201及101各自的NAT特性,并计算路由器的点对点通信端口号的值即可。
或者、也可以使服务器001按照图4B所示的处理流程,根据从装置10及20的每一个取得的3个端口号,来分别判断路由器101及201各自的NAT特性,并将根据它算出的路由器101及201的点对点通信端口号分别通知给装置20及10。
此外,若装置10、装置20及服务器001中的至少1个是对辨别路由器的NAT特性有用的信息的话,则NAT信息也可以包含上述以外的信息。
并且,在本实施方式中,装置20先发送了NAT信息通知包,也可以使装置10先发送NAT信息通知包。
并且,装置10及20在信息交换阶段中,利用与在NAT特性调查阶段中利用了的服务器相同的服务器,来交换NAT信息通知包,也可以利用不同的服务器。
<点对点通信路径确定阶段>
图7是表示在图3所示的点对点通信路径确定阶段中的处理的详细情况的序列图。在图7中,表示有例路由器201具有PR Cone NAT特性或Symmetric NAT特性时的例子。
首先,装置10的通信控制单元1007对于将已在步骤S602中取得的路由器201的点对点通信端口号设定为接收方端口号的点对点开始请求包进行发送(步骤S701)。这里,被设定为发送源端口号的端口号因装置10的NAT特性而不同,下面再对此详细情况进行说明。
在该阶段中,由于路由器201没有将NAT设定为对从装置10发送来的包进行转送,因此路由器201废弃已在步骤S701中发送了的点对点开始请求包,并不将其转送给装置20。不过,路由器101对NAT进行这样的设定:将路由器201的点对点通信端口号被设定为发送源端口号,且路由器101的点对点通信端口号被设定为接收方端口号的包转送给装置10。
另一方面,装置20的通信控制单元2007对于将已在步骤S604中取得的路由器101的点对点通信端口号设定为接收方端口号的点对点开始请求包进行发送(步骤702)。这里,被设定为发送源端口号的端口号因路由器201的NAT特性而不同,下面再对此详细情况进行说明。
路由器101将从装置20发送来的点对点开始请求包的接收方IP地址(这里,路由器101的IP地址“IPG1))转换为装置10的IP地址“IPL1”,并将其转送给装置10(以下,简称为“转送”)。在装置10中,通信控制单元1007响应从路由器101转送来的点对点开始请求包,通过通信单元1008将点对点开始响应包发送给装置20(步骤S703)。
此外,在本实施方式中,装置10先发送了点对点开始请求,但是点对点开始请求的发送顺序并不限于此。在装置20先发送点对点开始请求时,也与图7的序列一样,能够确定点对点通信路径。
此外,在图7中,在步骤S701中,路由器201废弃点对点开始请求包的情况是路由器201具有PR Cone NAT特性或Symmetric NAT特性时的序列的例子。路由器201已将NAT设定为将来自路由器101的包转送给装置20(图6的步骤S601),因此在步骤S701中,路由器201将从装置10发送来的点对点开始请求转送给装置20。因此,在步骤S702中,能够认为通过装置20发送点对点开始请求,完成了点对点通信路径的确定。以后的点对点连接序列也是一样。
以下,参照图8~图10按照路由器101的各个NAT特性,对装置10在与装置20之间确定点对点通信路径用的连接序列分别进行说明。
<连接序列1:路由器101是Cone NAT时>
图8是表示当路由器101为Cone NAT时的连接序列的详细情况的图。此外,在图8中,为了简化说明,而设想路由器201具有Cone NAT特性的情况。
如上所述,装置10在信息交换阶段(图6)的步骤S601及S602中,根据经由服务器001从装置20通知来的信息,来把握连接有装置20的路由器201的点对点通信端口号。当路由器201具有Cone NAT特性时,在NAT信息通知包中将“GP21”包含为路由器201的点对点通信端口号。另一方面,由于路由器101也具有Cone NAT特性,因此在步骤S603及S604中,装置10将“GP11”作为路由器101的点对点通信端口号经由服务器001通知给装置20。
于是,装置10的通信控制单元1007将“LP1”被设定为发送源端口号,且“GP21”被设定为接收方端口号的包作为点对点开始请求来发送(步骤S801)。路由器101对从装置10发送来的包分配端口号“GP11”(=“GP13))。
在该阶段中,由于路由器201没有将NAT设定为对从装置10发送来的、“GP21”被设定为接收方端口号的包转送给装置20,因此路由器201废弃已在步骤S801中发送了的点对点开始请求包,并不将其转送给装置20。不过,路由器101对NAT进行这样的设定:将路由器201的端口号“GP21”被设定为发送源端口号,且(IPG1、GP11)被设定为接收方IP地址及接收方端口号的包转送给装置10(IPL1、LP1)。
其次,装置20根据在信息交换阶段中从服务器001通知来的信息,取得连接有装置10的路由器101的点对点通信端口号。通信控制单元2007将与“GP21”相对应的“LP1”被设定为发送源端口号,且“GP11”被设定为接收方端口号的包作为点对点开始请求来发送(步骤S802)。
路由器101将从装置20发送来的点对点开始请求包转送给装置10。在装置10中,通信控制单元1007响应从路由器101转送来的点对点开始请求包,通过通信单元1008将点对点开始响应包发送给装置20(步骤S803)。
当路由器101具有Cone NAT特性时,能够按照上述处理顺序,来在装置10及20之间确定点对点通信路径。
<连接序列2:在路由器101是Symmetric NAT时>
图9A是表示当路由器101为Symmetric NAT时的连接序列的详细情况的图,图9B是表示图9A所示的端口号的图。此外,在图9中,为了简化说明,而设想路由器201具有Cone NAT特性的情况。
如上所述,装置10在信息交换阶段(图6)的步骤S601及S602中,根据从装置20通知来的信息,把握连接有装置20的路由器201的点对点通信端口号。当路由器201具有Cone NAT特性时,在NAT信息通知中将“GP21”包含为路由器201的点对点通信端口号。另一方面,当路由器101具有Symmetric NAT特性时,装置10在步骤S603及S604中,将“GP14+Δ1”作为路由器101的点对点通信端口号经由服务器001通知给装置20。
于是,装置10的通信控制单元1007将“LP4”被设定为发送源端口号,且“GP21”被设定为接收方端口号的包作为点对点开始请求来发送(步骤S901)。
对于从装置10发送来的包,路由器101分配端口号“GP14+Δ1”(其中,Δ1是路由器101的端口分配间隔)。
在该阶段中,路由器201没有将NAT设定为把从装置10发送来的、接收方端口号被设定为“GP21”的包转送给装置20。因此,路由器201废弃已在步骤S901中发送了的点对点开始请求包,并不将其转送给装置20。不过,路由器101对NAT进行这样的设定:将路由器201的端口号“GP21”被设定为发送源端口号,且(IPG1、GP14+Δ1)被设定为接收方IP地址及接收方端口号的包转送给装置10(IPL1、LP1)。
装置20根据在信息交换阶段中从服务器001通知来的信息,取得连接有装置10的路由器101的点对点通信端口号。通信控制单元2007将与“GP21”相对应的“LP1”被设定为发送源端口号,且“GP14+Δ1”被设定为接收方端口号的包作为点对点开始请求来发送(步骤S902)。
路由器101将从装置20发送来的点对点开始请求包转送给装置10。在装置10中,通信控制单元1007响应从路由器101转送来的点对点开始请求包,通过通信单元1008将点对点开始响应包发送给装置20(步骤S903)。
当路由器101具有Symmetric NAT特性时,能够按照上述处理顺序,来在装置10及20之间确定点对点通信路径。
此外,在本实施方式中,装置10对发送源端口号设定了“LP4”,但是当路由器101的特性是Symmetric NAT时,也可以设定在步骤S405中发送了点对点通信准备包的端口号“LP1”以外的任意端口号。
更详细地说,当路由器101是AS Symmetric NAT时,由于将从端口号“LP1”发送来的点对点开始请求包发送给与步骤S405的点对点通信准备包相同的接收方,因此路由器101对点对点开始请求包分配端口号“GP13”。
此外,当路由器101具有PS Symmetric NAT特性时,预测到从任意端口号发送来的点对点开始请求包的发送源端口号由路由器101转换为“GP14+Δ1”。
在考虑上述内容的情况下,为了在AS及PS中的任意Symmetric NAT中对于点对点开始请求包分配“GP14+Δ1”,装置10必须对发送源端口号设定“LP1”以外的端口号。
此外,在本实施方式中,装置20向接收方端口号“GP14+Δ1”发送了1个点对点开始请求包,但是也可以使装置20发送多个点对点开始请求包。例如,装置20为了提高成功确定点对点通信路径的可能性,除了向“GP14+Δ1”发送一个点对点开始请求包之外,例如,也可以发送多个点对点开始请求包,在该多个点对点开始请求包中,如“GP14+2×Δ1”及“GP14+3×Δ1”那样的端口号,即对“GP14+Δ1”每增加Δ1之后的端口号被设定为接收方端口号。
为了进一步提高成功确定点对点通信路径的可能性,与装置10所发送的点对点开始请求包的数目相比,也可以增大装置20所发送的点对点开始请求包的数目。具体来说,装置10发送α个点对点开始请求包,在该α个点对点开始请求包中,“LP4”~“LP4+α”(α是正整数)分别被设定为发送源端口号,且“GP21”被设定为接收方端口号。而装置20发送(m+α)个点对点开始请求包,在该(m+α)个点对点开始请求包中,“GP14+Δ1”~“GP14+(m+α)×Δ1”(m是正整数)分别被设定为接收方端口号。此时,即使装置10正在发送α个包时,从连接在路由器101上的其它住宅内装置发送了m个包,从装置20发送来的(m+α)个点对点开始请求包中的至少1个仍然会到达装置10。之后,通过装置10对于从装置20那里接收到的点对点开始请求包中的任意一个发送点对点开始响应,来在装置10及20之间确定点对点通信路径。
<连接序列3:当路由器101是Port Reuse时>
图10是表示当路由器101为Port Reuse时的连接序列的详细情况的图。此外,在图10中,为了简化说明,而设想路由器201具有Cone NAT特性的情况。
如上所述,装置10根据在信息交换阶段(图6)的步骤S601及S602中从服务器001通知来的信息,把握连接有装置20的路由器201的点对点通信端口号。由于路由器201具有Cone NAT特性,因此在NAT信息通知中含有作为路由器201的点对点通信端口号的“GP21”。另一方面,由于路由器101具有Port Reuse特性,因此在步骤S603及S604中,装置10将预定在点对点通信路径确定阶段中新打开的端口号“LP4”作为路由器101的点对点通信端口号通知给装置20。
于是,装置10的通信控制单元1007将“LP4”被设定为发送源端口号,且“GP21”被设定为接收方端口号的包作为点对点开始请求来发送(步骤S1001)。此外,路由器101对从装置10发送来的包分配端口号“LP4”。
在该阶段中,由于路由器201没有将NAT设定为把从装置10发送来的、接收方端口号被设定为“GP21”的包转送给装置20,因此路由器201废弃已在步骤S1001中发送了的点对点开始请求包,并不将其转送给装置20。不过,在此阶段中,路由器101对NAT进行这样的设定:将路由器201的端口号“GP21”被设定为发送源端口号,且(IPG1、LP4)被设定为接收方IP地址及接收方端口号的包转送给装置10(IPL1、LP4)。
另一方面,装置20根据在信息交换阶段中从服务器001通知来的信息,取得连接有装置10的路由器101的点对点通信端口号。通信控制单元2007将与“GP21”相对应的“LP1”被设定为发送源端口号,且“LP4”被设定为接收方端口号的包作为点对点开始请求来发送(步骤S1002)。
路由器101将从装置20发送来的点对点开始请求包转送给装置10。在装置10中,通信控制单元1007响应从路由器101转送来的点对点开始请求包,通过通信单元1008将点对点开始响应包转送给装置20(步骤S1003)。
当路由器101具有Port Reuse特性时,能够按照上述处理顺序,来在装置10及20之间确定点对点通信路径。
此外,虽然在上述NAT特性判断处理(图4B)中,有可能将Port Reuse的Cone NAT判断为Symmetric NAT的可能性,但是由于现在能利用的PortReuse的Symmetric NAT未被广为人知,因此在为Port Reuse时,也可以执行Cone NAT的连接序列。
如上所述,在本实施方式所涉及的通信系统中,装置10及20能够通过与开放有1个端口“SP1”的1台服务器001进行包的发送/接收,来判断所连接的路由器的Cone NAT特性、Symmetric NAT特性及Port Reuse特性。装置10及20能够在根据NAT特性的判断结果,对用于点对点通信中的路由器的端口号进行交换之后,确定点对点通信路径。
此外,在上述图8~图10所示的各序列图中,装置10比装置20先发送点对点开始请求,也可以使装置20比装置10先发送点对点开始请求。
为了在点对点通信路径确定阶段中,提高成功确定点对点通信路径的可能性,装置10也可以在信息交换阶段中,将多个端口号通知给装置20。
此外,在本实施方式中,表示出在每将端口分配给包时,被分配的端口号就增加的路由器,但是不用说本发明同样可以适用于在每将端口分配给包时被分配的端口号就减少的路由器。
(第二实施方式)
以下,以本发明的第二实施方式所涉及的通信系统与第一实施方式的不同之处为中心进行说明。
本实施方式所涉及的装置10及20在第一实施方式所涉及的结构上还具有存储一旦判断出的NAT特性的存储单元,在第2次以后确定点对点通信路径时,再次利用存储在存储单元中的NAT特性。这样一来,能够在第2次以后确定点对点通信路径时,对NAT特性调查阶段加以省略。
此外,装置10及20也可以在不执行NAT调查阶段的处理的情况下进行点对点通信路径确定处理,并不成功确定点对点通信路径时才执行NAT特性调查阶段的处理。
此外,存储单元所存储的特性并不局限于NAT特性,也可以还存储差分值Δ1、Δ2。此时,在第2次以后的点对点通信路径确定时,也可以使中继特性判断单元1004及2004按照图4B的流程图,来根据存储在存储单元中的差分值Δ1、Δ2判断NAT特性。
根据本实施方式所涉及的通信系统,由于减少装置10及20对NAT特性进行调查的次数,因此能够有效地执行第2次以后的点对点通信路径的确定处理。
图11是本发明的第二实施方式所涉及的连接序列图。在图11的例子中,设想路由器101具有Symmetric NAT,路由器201具有Cone NAT特性的情况。
以下,设想装置10及20将一旦调查了的路由器101及201的NAT特性、和路由器101及路由器201各自的端口分配间隔Δ1存储在存储单元中的情况。此外,在本实施方式中,存储有NAT特性和端口分配间隔Δ1,但是也可以存储有两个差分值Δ1、Δ2,必要时根据两个差分值来判断NAT特性。
<基准端口号取得阶段>
装置10已在上次确定有点对点通信路径时所执行的NAT特性调查阶段中,对路由器101的NAT特性和端口分配间隔进行了调查。于是,在本实施方式中,装置10对在NAT特性调查阶段及准备阶段中的处理加以省略,以取得用以决定点对点通信端口号的基准端口来代替该处理。
首先,在装置10中,地址信息调查请求发送单元1001对地址信息调查请求包进行发送,在该地址信息调查请求包中,装置10的端口号“LP1”被设定为发送源端口号,且服务器001端口号“SP1”被设定为接收方端口号(步骤S1101)。
在服务器001中,地址信息调查单元0011通过通信单元0014发送含有地址信息调查请求包的发送源端口号即路由器101的端口号“GP11”的地址信息调查响应包(步骤S1102)。
装置10使已在步骤S1102中取得的端口号“GP11”为用以决定点对点通信端口号的基准端口号。
同样,装置20对在NAT特性调查阶段及准备阶段中的处理加以省略,并取得用以决定点对点通信端口号的基准端口号“GP21”(步骤S1103~S1104)。
此外,虽然在图11中,为了便于图示,而使装置10先发送地址信息调查请求,但是也可以使装置20先发送地址信息调查请求。即,只要在进行信息交换阶段之前完成的话,可以以任意顺序及时间来进行装置10及20的地址信息调查请求。
<信息交换阶段>
其次,装置20将含有路由器201的点对点通信端口号的NAT信息通知包发送给服务器001(步骤S1105)。在图11的例子中,由于路由器201具有Cone NAT特性,因此在NAT信息通知中将已在步骤S1104中取得的基准端口号“GP21”包含为点对点通信端口号。
其次,在服务器001中,中继信息转送单元0013在接收到从装置20发送来的NAT信息通知包时,通过通信单元0014将所接收到的NAT信息通知包转送给装置10(步骤S1106)。
同样,在装置10中,中继信息发送单元1005将含有路由器101的点对点通信端口号的NAT信息通知包发送给服务器001(步骤S1107)。在图11的例子中,由于路由器101具有Symmetric NAT,因此在NAT信息通知中将对已在步骤S1102中取得的基准端口号“GP11”、和在上次NAT特性调查阶段中存储在存储单元中的端口号分配间隔Δ1进行相加之后的值“GP11+Δ1”包含为点对点通信端口号。
其次,在服务器001中,中继信息转送单元0013在接收到从装置10发送来的NAT信息通知包时,通过通信单元0014将所接收到的NAT信息通知包转送给装置20(步骤S1108)。
此外,在本实施方式中,装置20比装置10先发送了NAT信息通知包,也可以使装置10比装置20先发送NAT信息通知包。
如图11的例子所示,当路由器101及路由器201都不是Port Reuse时,必须进行基准端口号取得阶段(步骤S1101~S1104)。不过,在装置10及20所存储的NAT特性是PortReuse时,能够在后续处理中较容易地预测路由器101及201打开的端口号。因此,装置10及20只要对基准端口号取得阶段加以省略,进入信息交换阶段,并发送含有自己预定用于点对点通信的端口号“LP4”的NAT信息通知即可。
<连接阶段>
装置10的通信控制单元1007取得路由器201的点对点通信端口号“GP21”。通信控制单元1007通过通信单元1008将“LP1”被设定为发送源端口号,且“GP21”被设定为接收方端口号的点对点开始请求包发送给路由器201(步骤S1109)。在图11的例子中,由于路由器101具有SymmetricNAT特性,因此对从装置10发送来的包分配端口号“GP11+Δ1”(其中,Δ1是路由器101的端口分配间隔)。
此外,在本实施方式中,对发送源端口号设定了“LP1”,但是当路由器101具有Symmetric NAT特性时,也可以设定任意端口号。此时是因为能够认为从任意端口号发送来的点对点开始请求包的发送源端口号是由路由器101转换为“GP11+Δ1”之故。
当在步骤S1109中点对点开始请求包被发送的时刻,路由器201未将NAT设定为向装置20转送“GP21”被设定为接收方端口号的包。因此,路由器201废弃所接收到的点对点开始请求包,不将该包转送给装置20。另一方面,路由器101通过转送点对点开始请求包,来将NAT设定为向装置10(IPL1、LP1)转送(IPG1、GP11+Δ1)被设定为接收方,且“GP21”被设定为发送源端口号的包。
另一方面,装置20在信息交换阶段中取得含有路由器101的点对点通信端口号“GP11+Δ1”的NAT特性信息。装置20发送“LP1”被设定为发送源端口号,且“GP11+Δ1”被设定为接收方端口号的点对点开始请求包(步骤S1110)。
路由器101将从装置20发送来的点对点开始请求包转送给装置10。装置10在接收到由路由器101转送来的点对点开始请求包时,将点对点开始响应包发送给装置20(步骤S1111)。
此外,在2P通信路径确定阶段(步骤S1109~S1111)中,当不成功确定装置10及20的点对点通信路径时,只要使装置10及20分别从NAT特性调查阶段开始再次重复进行连接处理即可。
(第三实施方式)
在第三实施方式中,对于利用安装了作为一种通用协议的会话启动协议(SIP:Session Initiation Protocol:RFC3261,RFC3581)的1台SIP服务器来实现本发明所涉及的通信系统的例子进行说明。
图12是表示本发明的第三实施方式所涉及的通信系统的整个结构的方框图。
与第一实施方式(图1)一样,私人网络01及02分别通过具有全球IP地址“IPG1”的路由器101及具有全球IP地址“IPG2”的路由器201连接在全球网00上。此外,具有全球IP地址“IPS”,并在全球网00上开放有端口号“SP1”的SIP服务器300连接在全球网00上。并且,具有本地IP地址“IPL1”的装置10连接在私人网络01上,具有本地IP地址“IPL2”的装置20连接在私人网络02上。
此外,SIP服务器300除了具有SIP协议处理能力之外,还具有与第一实施方式所涉及的服务器001一样的结构(图2C)及功能。装置10及20是利用SIP协议,通过SIP服务器300来进行用于点对点通信的呼叫控制(callcontrol)的装置(例如IP电话等),具有与第一实施方式所涉及的装置10及20一样的结构(图2A及图2B)及功能。因此,对与装置10、20及SIP服务器300的结构有关的详细说明加以省略。
图13是表示为了确定点对点通信路径而进行发送/接收的包、与SIP消息的对应关系的图。
在本实施方式中,装置10及20利用SIP消息,来对点对点确定通信路径所需的信息(例如、IP地址和/或端口号)进行交换。不过,装置10及20直接交换的消息并不被特别限定,也可以是SIP消息,也可以是非SIP消息。
以下,参照图13对在本实施方式所涉及的通信系统中进行发送/接收的消息No.1~12依次进行说明。
(消息No.1:地址信息调查请求)
在本实施方式中,装置10及20向服务器所发送的地址信息调查请求(图4A的步骤S401、S403及S406)是用SIP中的OPTIONS请求、UPDATE请求及MESSAGE请求的任意一个来实现的。在以下的例子中,对于利用OPTIONS请求将地址信息调查请求发送给服务器的情况进行说明。图14表示OPTIONS请求的消息格式例。
(消息No.2:地址信息调查响应)
从服务器分别送回给装置10及20的地址信息调查响应(图4A的步骤S402、S404及S407)是用SIP中的200OK响应来实现的。图15表示200OK响应的消息格式例。
(消息No.3:点对点通信准备)
由于从装置10向装置20,或从装置20向装置10发送的点对点准备包(图4A的步骤S405)是没有经由服务器而发送的,因此不需要利用SIP的呼叫控制消息。因此,点对点准备包只要包括任意格式的消息即可,对该图示加以省略。
(消息No.4:NAT信息通知)
从服务器分别送回给装置10及20的NAT信息通知(图6的步骤S601及S602)是用SIP中的INVITE请求来实现的。图16表示INVITE请求的消息格式例。
(消息No.5)
消息No.5是从装置10向服务器,或从服务器向装置20通知在呼叫控制中“正在试行”的情况的100 Trying响应。不过,该消息不是本实施方式所涉及的系统为了确定点对点通信路径而使用的消息。此外,对消息格式的图示加以省略。
(消息No.6:NAT信息通知)
从装置10向服务器,或从服务器向装置20发送的NAT信息通知(图6的步骤S603及S604)是用SIP中的183 Session Progress响应来实现的。图17表示183 Session Progress响应的消息格式。
(消息No.7:点对点开始请求)
由于从装置10发送给装置20的点对点开始请求(图7的步骤S701、图8的步骤S801、图9的步骤S901、图10的步骤S1001)是没有经由服务器而发送的,因此可以不是SIP的呼叫控制消息。即,点对点开始请求只要是任意格式的消息即可,对该图示加以省略。
(消息No.8:点对点开始请求)
从装置20向装置10发送的点对点开始请求(图7的步骤S702、图8的步骤S802、图9的S步骤902、图10的步骤S1002)不是经由服务器而发送的消息。因此,从装置20发送给装置10的点对点开始请求不一定必须是SIP消息,只要是任意格式的消息即可。
(消息No.9:点对点开始响应)
从装置10发送给装置20的点对点开始响应(图7的步骤S703、图8的步骤S803、图9的步骤S903、图10的步骤S1003)不是经由服务器而发送的消息。因此,从装置10发送给装置20的点对点开始响应不一定必须是SIP消息,只要是任意格式的消息即可。
(消息No.10)
消息No.10是从装置20向服务器,或从服务器向装置10通知在呼叫控制中“正在呼叫”的情况的180 Ringing响应。不过,该消息不是本实施方式所涉及的系统为了确定点对点通信路径而使用的消息。此外,对消息格式的图示加以省略。
(消息No.11)
消息No.11是从装置10向服务器,或从服务器向装置20通知在呼叫控制中“请求成功”的情况的200OK响应。不过,该消息不是本实施方式所涉及的系统为了确定点对点通信路径而使用的消息。此外,对消息格式的图示加以省略。
(消息No.12)
消息No.12是从装置20向服务器,或从服务器向装置10通知在呼叫控制中“确定会话(点对点通信路径)”的情况的ACK请求。不过,该消息不是本实施方式所涉及的系统为了确定点对点通信路径而使用的消息。此外,对消息格式的图示加以省略。
此外,图13所示的消息的对应关系只不过是例示而已。执行本发明所涉及的点对点通信路径的确定方法所需的信息(上述消息No.1、2、4及6)也可以是利用通过SIP规定的其他消息来进行发送/接收的。
以下,同时参照图14~图19,对于用以使本实施方式所涉及的装置10及20用SIP协议来调查路由器101及201的NAT特性,并且确定点对点通信路径的控制连接序列进行说明。
<NAT特性调查阶段及准备阶段>
图18是表示利用了SIP协议的NAT特性调查阶段及准备阶段中的处理的详细情况的序列图。
首先,装置10将OPTIONS请求包1发送给SIP服务器300(步骤S2401)。更详细地说,地址信息调查请求发送单元1001制作OPTIONS请求包1,在该OPTIONS请求包1中,对发送源端口号和接收方端口号分别设定了装置10的端口号“LP1”和SIP服务器300的端口号“SP1”,并且在数据单元中插入了SIP的OPTIONS请求消息。
此时,如图14所示,对于OPTIONS请求消息的“Via报头”,设定“rport参数”。Via报头是用以记载请求所到达的路径及对请求进行路由时所经过的路径的报头,根据其中是否记载有rport参数,使SIP服务器300能够识别出所接收到的包是地址信息调查请求。
其次,SIP服务器300响应从装置10发送来的OPTIONS请求包1,将200 OK响应1送回给装置(步骤S2402)。更详细地说,通信单元0014接收OPTIONS请求包1,并将所接收到的包转送给地址信息调查单元0011。
由于给予Via报头的“sent by参数”的IP地址(在图14的例子中,“IPL1))、和转送来的包的发送源IP地址不同,因此地址信息调查单元0011参照转送来的包的报头,取出发送源IP地址即路由器101的IP地址“IPG1”。此外,由于rport参数被指定给Via报头,因此地址信息调查单元0011参照转送来的包的报头,取出发送源端口号即由路由器101设定了的端口号“GP11”。地址信息调查单元0011将取出的发送源IP地址及发送源端口号(IPG1、GP11)输出给地址信息发送单元0012。
地址信息发送单元0012生成200 OK响应1,并将所生成的包输出给通信单元0014,该200 OK响应包1在数据单元中含有从地址信息调查单元0011那里接收到的路由器101的IP地址及端口号(IPG1、GP11)。更详细地说,如图15所示,地址信息发送单元0012将200 OK响应包1发送给路由器101,该200 OK响应包1将消息插入数据单元中,该消息是在200 OK消息的格式中,对“received参数”记载路由器101的IP地址“IPG1”,对“rport参数”记载路由器101的端口号“GP11”,并且,追加附加了SIP服务器的地址信息的“Via报头”的消息。
路由器101将从地址信息发送单元0012那里接收到的包转送给装置10。此外,在装置10中,当通信单元1008接收到200 OK响应包1时,将所接收到的包转送给地址信息接收单元1002。
其次,装置10将OPTIONS请求包2发送给服务器001(步骤S2403)。更详细地说,地址信息调查请求发送单元1001对于将装置10的端口号“LP2”设定为发送源端口号,且将SIP服务器300的端口号“SP1”设定为接收方端口号的OPTIONS请求包2进行发送。与OPTIONS请求包1一样,对于OPTIONS请求包2的Via报头设定“rport参数”。
其次,SIP服务器300响应从装置10发送来的OPTIONS请求包2,并将200 OK响应包2送回给装置(步骤S2404)。更详细地说,通信单元0014接收OPTIONS请求包2,并将所接收到的包转送给地址信息调查单元0011。地址信息调查单元0011参照转送来的包的报头,取出发送源IP地址及端口号即路由器101的IP地址及端口号(IPG1、GP12),并将该取出的IP地址及端口号(IPG1、GP12)输出给地址信息发送单元0012。
地址信息发送单元0012生成200 OK响应包2,并将所生成的包输出给通信单元0014,该200 OK响应包2在数据单元中含有从地址信息调查单元0011那里接收到的路由器101的IP地址及端口号(IPG1、GP12)。更详细地说,如图15所示,将200 OK响应包2发送给路由器101,该200 OK响应包2将消息插入数据单元中,该消息是在200 OK消息的格式中,对“received参数”记载路由器101的IP地址“IPG1”,对“rport参数”记载路由器101的端口号“GP12”,并且,追加含有SIP服务器的地址信息的“Via报头”的消息。
路由器101通信单元0014将从地址信息发送单元0012那里接收到的包转送给装置10。此外,在装置10中,当通信单元1008接收到200OK响应包2时,将所接收到的包转送给地址信息接收单元1002。
其次,装置10将点对点通信准备包发送给装置20(步骤S2405)。更详细地说,装置10为了在路由器101上准备对具有与服务器不同的IP地址的装置20分配的端口号“GP13”,将包发送给路由器101,在该包中,装置10的端口号“LP1”被设定为发送源端口号,且使装置20的IP地址及端口号作为接收方。
其次,装置10将OPTIONS请求包3发送给服务器001(步骤S2406)。更详细地说,地址信息调查请求发送单元1001将装置10的端口号“LP3”被设定为发送源端口号,且SIP服务器300的端口号“SP1”被设定为接收方端口号的包作为OPTIONS请求包3来发送。与OPTIONS请求包1及2一样,在OPTIONS请求包3的Via报头上给予了“rport参数”。
SIP服务器300响应从装置10发送来的OPTIONS3,将200OK响应3送回给装置10(步骤S2407)。更详细地说,通信单元0014接收地址信息调查请求包3,并所接收到的包转送给地址信息调查单元0011。地址信息调查单元0011参照转送来的包的报头,将发送源IP地址及端口号即路由器101的IP地址及端口号(IPG1、GP14)输出给地址信息发送单元0012。
地址信息发送单元0012生成200 OK响应包3,并将所生成的包输出给通信单元0014,该200 OK响应包3在数据单元中含有从地址信息调查单元那里接收到的路由器101的IP地址及端口号(IPG1、GP14)。更详细地说,将200 OK响应包3发送给路由器101,该200 OK响应包3将消息插入数据单元中,该消息是在图15所示的200 OK消息的格式中,对“received参数”记载路由器101的IP地址“IPG1”,对“rport参数”记载路由器101的端口号“GP14”,并且,追加含有SIP服务器的地址信息的“Via报头”的消息。
路由器101通信单元0014将从地址信息发送单元0012那里接收到的包转送给装置10。此外,在装置10中,通信单元1008在接收到200OK响应包3时,将所接收到的包转送给地址信息接收单元1002。
其次,装置10根据200 OK响应包1~3,来判断路由器101的NAT特性(步骤S2408)。更详细地说,在装置10中,中继特性判断单元1004根据包含在200 OK响应包1~3中的路由器101的3个端口号“GP11”、“GP12”及“GP14”,按照在第一实施方式中的图4B的处理流程来判断路由器101的NAT特性。
装置20按照与图18一样的顺序,来调查路由器201的NAT特性,对路由器201准备用于点对点通信的端口。
此外,装置10所发送的包的接收方端口号最好是实际上路由器201使用的端口号(例如,当装置20与SIP服务器300进行通信时,路由器201分配给装置20的包的端口号)。这是因为当路由器201具有侵入检测功能时,若从装置10那里接收点对点通信准备包的话,有可能将该包错误地检测为非法进入包的缘故,其中,在该点对点通信准备包中,路由器201在通信中没有使用的端口号被设定为接收方端口号。当路由器201检测出非法访问包时,由于废弃从装置10发送来的后续的所有包,因此会有装置10与装置20不能进行通信的可能性。
或者,装置10对该包的TTL(TimeToLive)值进行调整,以使点对点通信准备包不到达路由器201。装置10发送点对点通信准备包是为了对连接有自身的路由器101准备用以与装置20进行点对点通信的端口号,点对点通信准备包并不一定要到达路由器201。于是,装置10只要调整TTL值,以使点对点通信准备包到达路由器101,且不到达路由器201即可。
在步骤S2405中,路由器101将NAT设定为能够接收从装置20通过路由器201发送给路由器101(IPG1、GP13)的包。路由器101对NAT进行设定的方法因NAT特性(图23A~图23E)而不同,在此对其说明加以省略。
此外,在本实施方式中,在发送OPTIONS请求包2之后再发送点对点通信准备包,点对点通信准备包的发送时机并不限于此。更详细地说,只要在发送OPTIONS请求包3之前发送点对点通信准备包即可,也可以接着OPTIONS请求包1进行发送。此外,点对点通信准备包的发送源端口号不一定必须是“LP1”,只要是与OPTIONS请求包1~3的发送源端口号“LP1”~“LP3”中的任意一个相同即可。
并且,在图18中,为了便于说明,同时示出了NAT特性调查阶段(步骤S2401~S2404、步骤S2406~S2408)、和准备阶段(步骤S2405),也可以将NAT特性调查阶段和准备阶段分开表示。
并且,NAT特性调查阶段及准备阶段不一定必须按照本实施方式所示的顺序来执行。因此,只要在后续信息交换阶段之前完成NAT特性调查阶段及准备阶段的话,则装置10及20也可以按照与本实施方式不同的顺序来执行各个步骤。
<信息交换阶段及点对点通信路径确定阶段>
图19是表示用以使本发明的第三实施方式所涉及的通信系统确定点对点通信路径的控制处理的序列图。作为一个例子,在图19中表示有当路由器101是Symmetric NAT,且路由器202是Cone NAT时的序列。
图19所示的步骤S2501~S2502和步骤S2505~S2506相当于第一实施方式所涉及的信息交换阶段(图6)。此外,图19的步骤S2507~S2509相当于第一实施方式所涉及的点对点通信路径确定阶段(图9A)。图19所示的步骤S2503~S2504和步骤S2510~S2515是SIP协议的一般序列,在本发明所涉及的点对点通信路径的确定方法中没有特别规定。
以下,参照图19,对于表示在使用了SIP协议的信息交换阶段及点对点通信路径确定阶段中的处理的详细情况的序列进行说明。
如上所述,在信息交换阶段中,各个装置根据连接有自身的路由器的NAT特性来决定路由器的点对点通信端口号,并将所决定的端口号通知给服务器。为了点对点通信而设定在路由器的端口号是按照在第一实施方式中说明的顺序来决定的。
首先,装置20将连接有自身的路由器201的点对点通信端口号通知给SIP服务器300(步骤S2501)。更详细地说,由于在NAT特性调查阶段中判断出路由器201的NAT特性是Cone NAT,因此中继信息发送单元2005生成INVITE请求包,该INVITE请求包在数据单元中将端口号“GP21”包含为点对点通信端口号。
此时,中继信息发送单元2005在图16所示的INVITE请求消息中,在消息主体(SDP:Session Description Protocol)的“o参数”或“c参数”中的一方或两者上,记载路由器201的IP地址“IPG2”,在“m参数”上记载路由器201的点对点通信端口号“GP21”。中继信息发送单元2005通过通信单元2008将所生成的INVITE请求包发送给SIP服务器300。
SIP服务器300在接收到INVITE请求包时,将所接收到的INVITE请求包转送给装置10(步骤S2502)。更详细地说,在SIP服务器300中,中继信息转送单元0013通过通信单元0014接收从装置20发送来的INVITE请求包,并通过通信单元0014将所接收到的INVITE请求包发送给装置10。
接收到INVITE请求的装置10为了将“处于试行状态”通知给装置20,而经由SIP服务器300将100 Trying响应(未图示消息格式)包发送给装置20(步骤S2503及S2504)。
其次,装置10将连接有自身的路由器101的点对点通信端口号通知给SIP服务器300(步骤S2505)。更详细地说,由于在NAT特性调查阶段中判断出路由器101的NAT特性是Symmetric NAT,因此中继信息发送单元1005生成183Session Progress响应包,该183Session Progress响应包在数据单元中将端口号“GP14+Δ1”包含为点对点通信端口号。
此时,中继信息发送单元1005在图17所示的183Session Progress响应消息中,在消息主体(SDP)的“o参数”或“c参数”中的一方或两者上,记载路由器101的IP地址“IPG1”,在“m参数”上记载路由器101的点对点通信端口号“GP14+Δ1”。中继信息发送单元1005通过通信单元1008将所生成的183 SessionProgress响应包发送给SIP服务器300。
SIP服务器300在接收到183 Session Progress响应包时,将所接收到的183 Session Progress响应包转送给装置20(步骤S2506)。更详细地说,在SIP服务器300中,中继信息转送单元0013通过通信单元0014接收从装置10发送来的183 Session Progress响应包,并通过通信单元0014将所接收到的183 Session Progress响应包发送给装置20。
此外,在本实施方式中,装置20先发送了INVITE请求包,也可以使装置10先发送INVITE请求包。此时,装置20对100Trying响应和183Session Progress响应包进行发送。
装置10在信息交换阶段的步骤S2501及S2502中从装置20那里接收到INVITE请求包时,根据记载在消息主体(SDP)上的信息,来把握连接有装置20的路由器201的点对点通信端口号。在图19的例子中,由于路由器201具有Cone NAT特性,因此在SDP的“m参数”上记载有“GP21”作为路由器201的点对点通信端口号。另一方面,由于路由器101具有Symmetric NAT特性,因此在步骤S2505及S2506中,装置10将“GP14+Δ1”作为路由器101的点对点通信端口号通知给装置20。
于是,装置10的通信控制单元1007将“LP4”被设定为发送源端口号,且“GP21”被设定为接收方端口号的包作为点对点开始请求来发送(步骤S2507)。
在该阶段中,由于路由器201未将NAT设定为对从装置10发送来的接收方端口号被设定为“GP21”的包进行转送,因此路由器201废弃在步骤S2505中发送了的点对点开始请求包,不将其转送给装置20。在该阶段中,路由器101将NAT设定为把路由器201的端口号“GP21”被设定为发送源端口号,且(IPG1、GP14+Δ1)被设定为接收方IP地址及接收方端口号的包转送给装置10(IPL1、LP1)。
另一方面,装置20根据在信息交换阶段中从装置10通知来的信息,取得连接有装置10的路由器101的点对点通信端口号。通信控制单元2007将与“GP21”相对应的“LP1”被设定为发送源端口号,且“GP14+Δ1”被设定为接收方端口号的包作为点对点开始请求来发送(步骤S2508)。
路由器101将从装置20发送来的点对点开始请求包转送给装置10。在装置10中,通信控制单元1007响应从路由器101转送来的点对点开始请求包,通过通信单元1008将点对点开始响应包发送给装置20(步骤S2509)。
发送了点对点开始响应,确定了点对点通信路径的装置10为了将“处于呼叫状态(例如电话铃正响着的状态)”通知给装置20,经由SIP服务器300将180 Ringing响应(未图示消息格式)包发送给装置20(步骤S2510~S2511)。
之后,在装置10的用户接了电话之后,装置10为了通知从“处于呼叫状态”变成了“完成呼叫状态(用户接了电话之后的状态)”的情况,经由SIP服务器300将200 OK响应(未图示消息格式)包发送给装置20(步骤S2512及S2513)。
装置20在从SIP服务器300那里接收到200 OK响应包时,为了将“呼叫确定状态”通知给装置10,经由SIP服务器300将ACK请求(未图示消息格式)包发送给装置10(步骤S2514及S2515)。
在步骤S2515之后,能够在装置10与装置20之间进行例如IP电话的通话等的点对点通信。
此外,在本实施方式中,对发送源端口号设定了“LP4”,但是当路由器的特性是Symmetric NAT时,也可以设定在步骤S405中发送了点对点通信准备包的端口号“LP1”以外的任意端口号。更详细地说,在路由器101是AS Symmetric NAT时,由于从“LP1”发送来的点对点开始请求包被发送给与在步骤S2405中的接收方地址一样的接收方,因此分配“GP13”。此外,当路由器201具有PS Symmetric NAT特性时,能够认为从任意端口号发送来的点对点开始请求包的发送源端口号由路由器101转换为“GP14+Δ1”。这样一来,由于不管是AS及PS中的哪个Symmetric NAT,都分配“GP14+Δ1”,因此必须设定“LP1”以外的端口号。
此外,本实施方式所涉及的信息通知阶段及点对点通信路径确定阶段只不过是一个例子,也可以采用与图19所示的例子不同的SIP消息及序列。例如,也可以对S2505~S2506的183 Session Progress响应加以省略。此时,将表示NAT信息通知的图17的消息主体(SDP)插入S2503~S2504的100Trying响应的数据单元中。此外,例如,也可以在步骤S2501~S2502所示的INVITE请求之后,通过发送S2510~S2511的180 Ringing响应来代替S2505~S2506的183 Session Progress响应。此时,将表示NAT信息通知的图17的消息主体(SDP)插入S2510~S2511的180 Ringing响应的数据单元中。另外,能够按照各种各样的序列,来实现本实施方式所涉及的点对点通信路径的确定方法。
此外,图14~图17所示的消息格式是含有最低限度的必要报头的例子,也可以还包括其他选择报头、参数等。
在上述各个实施方式中,为了简化说明,对路由器201具有Cone NAT特性的情况进行了说明。不过,在路由器201具有Cone NAT以外的NAT特性时,也同样可以适用本发明。以下,对于能够将本发明适用于路由器101及201的NAT特性的所有组合中的情况进行简单说明。
图20A是在信息交换阶段中,以两个路由器的NAT特性的组合为单位,表示各个路由器所通知的点对点端口号的组合的表。
图20A所示的(a)~(c)分别与上述图6有关的说明所示的项目(a)~(c)相对应。例如,当路由器101是Cone NAT,且路由器201是Symmetric NAT时,连接在路由器101上的装置10用NAT信息通知来将(a)的信息通知给装置20,装置20用NAT信息通知来将(b)的信息通知给装置10。
图20B是在点对点通信路径确定阶段中,以两个路由器的NAT特性的组合为单位,表示连接在各个路由器上的装置所执行的处理的组合的表。
图20B所示的(e)、(f)及(g)相当于图8的装置10的处理、图9的装置10的处理及图10的装置10的处理。例如,当路由器101是Cone NAT,且路由器201是Symmetric NAT时,能够通过连接在路由器101上的装置10执行(e)的处理(与图8的装置10一样的处理),连接在路由器201上的装置20执行(f)的处理(与图10的装置10一样的处理),来确定点对点通信路径。
此外,在上述各个实施方式中,为了简化说明,而对装置10及服务器001通过1台路由器101连接在全球网00上的例子进行了说明,但是装置10及服务器001也可以通过多个路由器进行连接。此外,配置在装置20及服务器001之间的路由器的数目也是一样。以下对该情况进行说明。
图21A是表示装置通过3个路由器连接在全球网上的例子的图。
如图21A所示,装置10通过具有Cone NAT特性的3个路由器1~3连接在全球网00上。在装置10发送“LP1”被设定为发送源端口号的包时,该包通过路由器1的端口RP11、路由器2的端口RP21、路由器3的端口RP31,到达网络00。此时,从表面来看,能够认为连接到全球网00上的服务器是装置10通过1个具有Cone NAT特性的路由器连接在自身上。
图21B是表示装置通过3个路由器连接在全球网上的其它例子的图。
如图21B所示,装置10通过具有Cone NAT特性的路由器1、具有Symmetric NAT特性的路由器2及具有Cone NAT特性的路由器3连接在全球网00上。在装置10发送“LP1”被设定为发送源端口号的包时,该包通过路由器1的端口“RP11”到达路由器2。由于路由器2具有Symmetric NAT特性,因此对所接收到的包分配不同的端口“RP21”、“RP22”及“RP23”,并将包转送给路由器3。由于即使在路由器3具有Cone NAT特性时,也将发送源端口号不同的包分别通过路由器3的不同端口转送给全球网,因此从表面来看,能够认为连接到全球网00上的服务器是装置10通过1个具有Symmetric NAT特性的路由器连接在自身。
象这样,即使在装置及服务器通过多个路由器进行连接时,也能够根据从全球网00看到的表面上的特性,通过对连接序列进行选择,来在两台装置之间确定点对点通信路径。
并且,在上述第一实施方式及第三实施方式的NAT特性调查阶段(图4A及图18)中,装置在接收到对于地址信息调查请求的地址信息调查响应之后,再发送下次地址信息调查请求,但是也可以不等待地址信息调查响应,来发送下一个地址信息调查请求。具体而言,装置也可以在连续发送地址信息调查请求1及2、点对点通信准备包及地址信息调查请求3这4个包之后,再从服务器001那里接收地址信息调查响应1~3。当在极短时间连续发送这4个包时,由于能够减少在发送4个包期间从共同连接在路由器上的其它装置发送来的包插入的可能性,因此能够防止差分值Δ1及Δ2从原来的值开始发生变动。从而能够减少将Cone NAT错误地判断为Symmetric NAT的可能性。
并且,从抑制误判断的观点来说,也可以通过反复进行两次以上NAT特性调查阶段,来提高NAT特性的判断精度。此时,也能够正确地测量端口分配间隔。
并且,因路由器的NAT特性,还有可能通过下述方法来较容易地判断NAT特性。
在市场上卖的家庭用路由器中,存在有很多端口分配间隔为一定值(例如,1)的路由器。象这样,当端口分配间隔为一定值时,能够通过在发送两个地址调查请求期间发送点对点通信准备包,来判断NAT特性。以下,对其理由进行说明。
图22A是以端口分配间隔为1,且具有Cone NAT特性的路由器的图,图22B是以端口分配间隔为1,且具有Symmetric NAT特性的路由器的图。
首先,参照图22A,当路由器101具有Cone NAT特性时,分配给点对点通信准备包的端口号“GP13”与分配给两个地址信息调查请求包的端口号“GP11”或“GP12”中的任意一个相等。因此,从服务器001送回的两个地址信息调查响应包中所含的端口号的差分Δ成为1。
其次,参照图22B,当路由器101具有Symmetric NAT特性时,分配给点对点通信准备包的端口号“GP13”与分配给两个地址信息调查请求包的端口号“GP11”及“GP12”中的任何一个都不同。因此,从服务器001送回的两个地址信息调查响应包中所含的端口号的差分Δ成为2。
如上所述,能够在从两个地址信息调查响应包中取得的两个端口号的差分Δ为一定值(在该例中,为1)时,判断出路由器101是Cone NAT特性,而在其它情况下判断出是Symmetric NAT特性。
此外,为了实现图22A及图22B所示的处理,只要在装置10的存储单元(未图示)中预先保持对应信息即可,在该对应信息中使两个地址信息调查响应包中所含的端口号的间隔(差分Δ)、和因该间隔而不同的NAT特性相对应。例如,假定在对应信息中,使差分Δ(1)和Cone NAT特性相对应,并使差分Δ(2)和Symmetric NAT特性相对应。此时,装置10能够通过参照该对应信息,来在差分Δ是1时,判断为Cone NAT特性,而在差分Δ是2时,判断为Symmetric NAT特性。
此外,上述各个实施方式所涉及的通信装置的功能块(图2A及图2B)是通过使计算机执行存储在存储装置(ROM、RAM、硬件等)中的能够使计算机执行上述处理顺序的程序来实现的。该计算机是含有装入便携装置等的电子装置中的计算机的概念。此时,该程序也可以在通过存储媒体存储在存储装置中之后再执行,也可以从存储媒体直接执行。此外,也可以将上述实施方式所涉及的通信装置的功能块作为集成电路实现。
以上,虽然对本发明进行了详细的说明,但是上述说明只不过是本发明的例示,本发明对其范围并不进行任何限制。不用说只要不脱离本发明的宗旨的话,能够进行各种改良和变形。
工业实用性
本发明所涉及的通信装置、通信方法及通信系统能够通过仅与具有1个IP地址的1台服务器进行通信,来调查路由器的NAT特性。因此,例如,本发明对于在属于不同私人网络中的两台装置之间进行点对点通信的家电产品、通信装置等尤其有用。
Claims (14)
1、一种通信装置,经由具有网络地址转换功能的第1中继装置连接在服务器上,其特征在于:
该通信装置具备:
地址信息调查请求发送单元,将多个地址信息调查请求包逐个发送给上述服务器,在该多个地址信息调查请求包中,为上述通信装置的本地端口号的、互不相同的端口号被设定为发送源端口号,并且,为上述服务器的端口号的、彼此相同的端口号被设定为接收方端口号;
通信准备请求发送单元,在上述地址信息调查请求发送单元发送了第一个地址信息调查请求包之后,到发送最后的地址信息调查请求包之前为止的期间,将通信准备包发送给与上述服务器不同的接收方,在该通信准备包中,与上述多个地址信息调查请求包中的任一发送源端口号相同的端口号被设定为发送源端口号;以及
地址信息接收单元,仅接收与上述地址信息调查请求包数目相同的地址信息调查响应包,该地址信息调查响应包是响应上述地址信息调查请求包而被从上述服务器送回,并包括在上述第1中继装置中从上述地址信息调查请求包的发送源端口号转换而来的中继端口号的地址信息调查响应包。
2、根据权利要求1所述的通信装置,其特征在于:
该通信装置还包括中继特性判断单元,该中继特性判断单元根据在上述地址信息接收单元中接收到的各个上述地址信息调查响应包中所含的上述中继端口号,来对上述第1中继装置的网络地址转换特性进行判断。
3、根据权利要求2所述的通信装置,其特征在于:
上述地址信息调查请求发送单元对第1地址信息调查请求包、第2地址信息调查请求包及第3地址信息调查请求包逐个进行发送,
在该第1地址信息调查请求包中,上述服务器的端口号被设定为接收方端口号,并且,上述通信装置的第1本地端口号被设定为发送源端口号,
在该第2地址信息调查请求包中,接收方端口号与上述第1地址信息调查请求包相同,并且,上述通信装置的与上述第1本地端口号不同的第2本地端口号被设定为发送源端口号,
在该第3地址信息调查请求包中,接收方端口号与上述第1地址信息调查请求包相同,并且,上述通信装置的与上述第1及第2本地端口号不同的第3本地端口号被设定为发送源端口号;
上述地址信息接收单元对第1地址信息包、第2地址信息包及第3地址信息包进行接收,
该第1地址信息包是响应上述第1地址信息调查请求包而被从上述服务器送回,并包括上述第1中继装置的第1中继端口号的地址信息包,
该第2地址信息包是响应上述第2地址信息调查请求包而被从上述服务器送回,并包括上述第1中继装置的第2中继端口号的地址信息包,
该第3地址信息包是响应上述第3地址信息调查请求包而被从上述服务器送回,并包括上述第1中继装置的第3中继端口号的地址信息包;
上述中继特性判断单元计算第1差分值和第2差分值,并根据上述第1及第2差分值的比较,来判断上述第1中继装置的网络地址转换特性,该第1差分值是根据上述第1及第2中继端口号计算的差分值,该第2差分值是根据上述第2及第3中继端口号计算的差分值。
4、根据权利要求3所述的通信装置,其特征在于:
连接对象通信装置经由具有网络地址转换功能的第2中继装置连接在上述服务器上;
上述通信装置还具备:
中继信息发送单元,根据已由上述中继特性判断单元判断出的第1中继装置的网络地址转换特性,来预测第1点对点中继端口号,将含有该预测出的第1点对点中继端口号的第1中继信息包发送给上述服务器,该第1点对点中继端口号是由上述第1中继装置分配给与上述连接对象通信装置之间的点对点通信的端口号,
中继信息接收单元,从上述服务器接收含有第2点对点中继端口号的第2中继信息包,该第2点对点中继端口号是由上述第2中继装置分配给与连接对象通信装置之间的点对点通信的端口号,以及
通信控制单元,为了向上述连接对象通信装置请求开始点对点通信,而发送开始请求包,在该开始请求包中,上述第2中继信息包中所含的上述第2点对点中继端口号被设定为接收方端口号。
5、根据权利要求4所述的通信装置,其特征在于:
上述中继信息发送单元,在上述中继特性判断单元判断出上述第1及第2差分值是相同值时,发送包含上述第1~第3中继端口号的任一个作为上述第1点对点中继端口号的上述第1中继信息包,而在上述中继特性判断单元判断出上述第1及第2差分值不一致时,发送包含把上述第1及第2差分值中的较小的值和上述第3中继端口号相加的值作为上述第1点对点中继端口号的上述第1中继信息包。
6、根据权利要求4所述的通信装置,其特征在于:
上述中继信息发送单元,在上述中继特性判断单元判断出上述第1中继端口号及上述第1本地端口号一致的情况下,发送包含任意的本地端口号作为上述第1点对点中继端口号的上述第1中继信息包。
7、根据权利要求4所述的通信装置,其特征在于:
上述通信准备请求发送单元,调整包含在上述通信准备包的报头中的生存时间值,以使上述通信准备包到达上述第1中继装置,且未到达上述第2中继装置。
8、根据权利要求4所述的通信装置,其特征在于:
上述通信装置还包括用以保持上述第1及第2差分值的存储单元;
在第2次以后的点对点通信开始之前,上述中继特性判断单元根据保持在上述存储单元中的上述第1及第2差分值,来判断上述第1中继装置的网络地址转换特性。
9、根据权利要求8所述的通信装置,其特征在于:
上述地址信息调查请求发送单元对第4地址信息调查请求包进行发送,在该第4地址信息调查请求包中,上述服务器的端口号被设定为接收方端口号,并且,上述通信装置的第4本地端口号被设定为发送源端口号;
上述地址信息接收单元接收第4地址信息包,该第4地址信息包是响应上述第4地址信息调查请求包而被从上述服务器送回,并包括上述第1中继装置的第4中继端口号的;
上述中继信息发送单元,在上述中继特性判断单元判断出保持在上述存储单元中的上述第1及第2差分值是相同值时,发送包含上述第4中继端口号作为上述第1点对点中继端口号的上述第1中继信息包,而在上述中继特性判断单元判断出保持在上述存储单元中的第1及第2差分值不一致时,发送包含把上述所保持的第1及第2差分值中的较小的值和上述第4中继端口号相加的值作为上述第1点对点中继端口号的上述第1中继信息包。
10、根据权利要求8所述的通信装置,其特征在于:
上述通信装置,在判断出上述第1中继端口号及上述第1本地端口号一致的情况下,将表示上述第1中继端口号及上述第1本地端口号一致的信息存储在上述存储单元中;
在第2次以后的点对点通信开始之前,在上述中继特性判断单元判断出上述存储单元保持有表示上述第1中继端口号及上述第1本地端口号一致的信息时,上述中继信息发送单元发送包含任意的本地端口号作为上述第1点对点中继端口号的上述第1中继信息包。
11、根据权利要求2所述的通信装置,其特征在于:
该通信装置还包括预先保持有对应信息的存储单元权利要求2所述的通信装置,其特征在于,该对应信息是使各个上述地址信息调查响应包中所含的上述中继端口号的间隔、和因该间隔而不同的网络地址转换特性相对应的信息;
上述地址信息调查请求发送单元对第1地址信息调查请求包、和第2地址信息调查请求包逐个进行发送,
在该第1地址信息调查请求包中,上述服务器的端口号被设定为接收方端口号,并且,上述通信装置的第1本地端口号被设定为发送源端口号,
在该第2地址信息调查请求包中,接收方端口号与上述第1地址信息调查请求包相同,并且,上述通信装置的与上述第1本地端口号不同的第2本地端口号被设定为发送源端口号;
上述地址信息接收单元对第1地址信息包和第2地址信息包进行接收,
该第1地址信息包是响应上述第1地址信息调查请求包而被从上述服务器送回,并包括上述第1中继装置的第1中继端口号的,
该第2地址信息包是响应上述第2地址信息调查请求包而被从上述服务器送回,并包括上述第1中继装置的第2中继端口号的;
上述中继特性判断单元将在上述对应信息中与上述接收到的第1及第2中继端口号的间隔相对应的网络地址转换特性判断为上述第1中继装置的网络地址转换特性。
12、一种通信方法,是通信装置通过与服务器进行通信来判断上述第1中继装置的网络地址转换特性的通信方法,该通信装置通过具有网络地址转换功能的第1中继装置连接在上述服务器上,其特征在于:
该通信方法包括以下步骤:
地址信息调查请求发送步骤,将多个地址信息调查请求包逐个发送给上述服务器,在该多个地址信息调查请求包中,为上述通信装置的本地端口号的、互不相同的端口号被设定为发送源端口号,并且,为上述服务器的端口号的、彼此相同的端口号被设定为接收方端口号;
通信准备请求发送步骤,在上述地址信息调查请求发送步骤中发送第一个地址信息调查请求包之后,到发送最后的地址信息调查请求包之前为止的期间,将通信准备包发送给与上述服务器不同的接收方,在该通信准备包中,与上述多个地址信息调查请求包的任一发送源端口号相同的端口号被设定为发送源端口号;
地址信息接收步骤,仅接收与上述地址信息调查请求包数目相同的地址信息调查响应包,该地址信息调查响应包是响应上述地址信息调查请求包而被从上述服务器送回,并包括在上述第1中继装置中从上述地址信息调查请求包的发送源端口号转换而来的中继端口号的地址信息调查响应包;以及
中继特性判断步骤,根据已在上述地址信息接收步骤中接收到的各个上述地址信息调查响应包中所含的上述中继端口号,来判断上述第1中继装置的网络地址转换特性。
13、一种通信系统,其特征在于:
该通信系统包括:
服务器,
第1中继装置,具有网络地址转换功能,
第2中继装置,具有网络地址转换功能.
第1通信装置,经由上述第1中继装置连接在上述服务器上,以及
第2通信装置,经由上述第2中继装置连接在上述服务器上;
上述第1及第2通信装置各自包括:
地址信息调查请求发送单元,将多个地址信息调查请求包逐个发送给上述服务器,在该多个地址信息调查请求包中,为自身装置的本地端口号的、互不相同的端口号被设定为发送源端口号,并且,为上述服务器的端口号的、彼此相同的端口号被设定为接收方端口号,
通信准备请求发送单元,在上述地址信息调查请求发送单元发送第一个地址信息调查请求包之后,到发送最后的地址信息调查请求包之前为止的期间,将通信准备包发送给与上述服务器不同的接收方,在该通信准备包中,与上述多个地址信息调查请求包中的任一发送源端口号相同的端口号被设定为发送源端口号,
地址信息接收单元,仅接收与上述地址信息调查请求包数目相同的地址信息调查响应包,该地址信息调查响应包是响应上述地址信息调查请求包而被从上述服务器送回,并包括在连接在上述第1及第2通信装置各自的中继装置中从上述地址信息调查请求包的发送源端口号转换而来的中继端口号的地址信息调查响应包,以及
中继特性判断单元,根据已在上述地址信息接收单元中接收到的各个上述地址信息调查响应包中所含的上述中继端口号,来对上述第1中继装置的网络地址转换特性进行判断;
上述服务器包括:
地址信息调查单元,取出从上述第1及第2通信装置的每一个发送来的上述地址信息调查请求包中所含的上述中继端口号,以及
地址信息发送单元,对于含有上述被取出的中继端口号的地址信息调查请求响应包进行发送。
14、一种通信系统,其特征在于:
该通信系统包括:
服务器,
第1中继装置,具有网络地址转换功能,
第2中继装置,具有网络地址转换功能,
第1通信装置,经由上述第1中继装置连接在上述服务器上,以及
第2通信装置,经由上述第2中继装置连接在上述服务器上;
上述第1及第2通信装置各自包括:
地址信息调查请求发送单元,将多个地址信息调查请求包逐个发送给上述服务器,在该多个地址信息调查请求包中,为自身装置的本地端口号的、互不相同的端口号被设定为发送源端口号,并且,为上述服务器的端口号的、彼此相同的端口号被设定为接收方端口号,以及
通信准备请求发送单元,在上述地址信息调查请求发送单元发送第一个地址信息调查请求包之后,到发送最后的地址信息调查请求包之前为止的期间,将通信准备包发送给与上述服务器不同的接收方,在该通信准备包中,与上述多个地址信息调查请求包中的任一发送源端口号相同的端口号被设定为发送源端口号;
上述服务器包括地址信息调查单元,该地址信息调查单元根据在上述第1及第2中继装置各自从上述地址信息调查请求包的发送源端口号转换而来的中继端口号,来判断上述第1及第2中继装置的网络地址转换特性。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP257604/2006 | 2006-09-22 | ||
JP2006257604 | 2006-09-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101491021A true CN101491021A (zh) | 2009-07-22 |
Family
ID=39200405
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2007800265246A Pending CN101491021A (zh) | 2006-09-22 | 2007-09-07 | 通信装置、通信方法及通信系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20090313386A1 (zh) |
EP (1) | EP2051451A1 (zh) |
JP (1) | JPWO2008035578A1 (zh) |
CN (1) | CN101491021A (zh) |
WO (1) | WO2008035578A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377834A (zh) * | 2010-08-20 | 2012-03-14 | 鸿富锦精密工业(深圳)有限公司 | 网络地址转换设备及通信方法 |
CN106059783A (zh) * | 2015-04-07 | 2016-10-26 | 广达电脑股份有限公司 | 用于配线连接的方法及配线连接系统 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4976672B2 (ja) * | 2005-09-13 | 2012-07-18 | キヤノン株式会社 | ネットワークデバイス装置、データ処理方法及びコンピュータプログラム |
JP2009089183A (ja) * | 2007-10-01 | 2009-04-23 | Brother Ind Ltd | 情報処理装置及び情報処理プログラム |
US7729366B2 (en) * | 2007-10-03 | 2010-06-01 | General Instrument Corporation | Method, apparatus and system for network mobility of a mobile communication device |
JP4635095B2 (ja) * | 2009-06-30 | 2011-02-16 | 株式会社東芝 | 通信システムとそのサーバ装置 |
JP2011061562A (ja) * | 2009-09-11 | 2011-03-24 | Brother Industries Ltd | 通信方法、及び通信システム |
CN102036227B (zh) * | 2009-09-27 | 2013-11-06 | 中国移动通信集团公司 | 一种数据业务的用户标识获取方法、系统及装置 |
JP5273001B2 (ja) * | 2009-09-30 | 2013-08-28 | ブラザー工業株式会社 | 通信システム、端末装置、通信方法、及び通信プログラム |
US20110154469A1 (en) * | 2009-12-17 | 2011-06-23 | At&T Intellectual Property Llp | Methods, systems, and computer program products for access control services using source port filtering |
JP2011172143A (ja) * | 2010-02-22 | 2011-09-01 | Brother Industries Ltd | 通信装置、通信方法、および通信システム |
US8689058B2 (en) * | 2010-03-26 | 2014-04-01 | Microsoft Corporation | Centralized service outage communication |
JP5634214B2 (ja) * | 2010-10-28 | 2014-12-03 | キヤノン株式会社 | 通信装置、通信装置の制御方法、通信システムおよびプログラム |
KR101263783B1 (ko) * | 2010-12-27 | 2013-05-13 | 삼성에스디에스 주식회사 | 릴레이 서버를 이용한 데이터 전송 시스템 및 방법 |
KR101472399B1 (ko) * | 2011-05-06 | 2014-12-12 | 지티이 코포레이션 | 포트 확장 토폴로지 정보를 취득하는 방법, 시스템 및 제어 브리지 |
US8879558B1 (en) | 2012-06-27 | 2014-11-04 | Juniper Networks, Inc. | Dynamic remote packet capture |
KR102233635B1 (ko) * | 2015-01-06 | 2021-03-31 | 엘지전자 주식회사 | Symmetric NAT(Network Address Translation) 기반의 네트워크 시스템 및 서버의 동작 방법 |
US10257061B2 (en) * | 2016-05-31 | 2019-04-09 | 128 Technology, Inc. | Detecting source network address translation in a communication system |
US9667619B1 (en) * | 2016-10-14 | 2017-05-30 | Akamai Technologies, Inc. | Systems and methods for utilizing client side authentication to select services available at a given port number |
WO2018161353A1 (zh) * | 2017-03-10 | 2018-09-13 | 华为技术有限公司 | 一种分享照片的方法和装置 |
CN107295102B (zh) * | 2017-07-25 | 2020-02-28 | 广东美的制冷设备有限公司 | 网络设备的点对点传输检测方法、系统及移动终端 |
WO2022061685A1 (en) * | 2020-09-25 | 2022-03-31 | Zte Corporation | Methods for port registration and discovery |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7272650B2 (en) * | 2001-04-17 | 2007-09-18 | Intel Corporation | Communication protocols operable through network address translation (NAT) type devices |
US7302496B1 (en) * | 2002-11-12 | 2007-11-27 | Cisco Technology, Inc. | Arrangement for discovering a localized IP address realm between two endpoints |
JP2004180003A (ja) | 2002-11-27 | 2004-06-24 | Kitt Peak:Kk | 通信ネットワークシステムおよび通信の接続方法 |
US7899932B2 (en) * | 2003-01-15 | 2011-03-01 | Panasonic Corporation | Relayed network address translator (NAT) traversal |
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 |
WO2006049251A1 (ja) * | 2004-11-08 | 2006-05-11 | Matsushita Electric Industrial Co., Ltd. | 通信端末及び通信方法 |
JP4084365B2 (ja) * | 2005-03-08 | 2008-04-30 | 株式会社東芝 | 通信装置、通信方法および通信プログラム |
US7522618B2 (en) * | 2005-03-18 | 2009-04-21 | Panasonic Corporation | Communication apparatus, communication system and communication method |
JP4557803B2 (ja) * | 2005-05-27 | 2010-10-06 | 富士通株式会社 | ネットワークシステム及び通信方法 |
WO2007048344A1 (fr) * | 2005-10-28 | 2007-05-03 | Huawei Technologies Co., Ltd. | Procede d’etablissement de la connexion poste a poste, procede, dispositif et systeme de realisation de nat de traversee de communication reseau |
-
2007
- 2007-09-07 JP JP2008535317A patent/JPWO2008035578A1/ja not_active Withdrawn
- 2007-09-07 WO PCT/JP2007/067508 patent/WO2008035578A1/ja active Application Filing
- 2007-09-07 US US12/373,864 patent/US20090313386A1/en not_active Abandoned
- 2007-09-07 EP EP07806940A patent/EP2051451A1/en not_active Withdrawn
- 2007-09-07 CN CNA2007800265246A patent/CN101491021A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102377834A (zh) * | 2010-08-20 | 2012-03-14 | 鸿富锦精密工业(深圳)有限公司 | 网络地址转换设备及通信方法 |
CN102377834B (zh) * | 2010-08-20 | 2014-02-19 | 鸿富锦精密工业(深圳)有限公司 | 网络地址转换设备及通信方法 |
CN106059783A (zh) * | 2015-04-07 | 2016-10-26 | 广达电脑股份有限公司 | 用于配线连接的方法及配线连接系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2008035578A1 (fr) | 2008-03-27 |
JPWO2008035578A1 (ja) | 2010-01-28 |
US20090313386A1 (en) | 2009-12-17 |
EP2051451A1 (en) | 2009-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101491021A (zh) | 通信装置、通信方法及通信系统 | |
KR100552513B1 (ko) | 브이오아이피 서비스를 제공하는 장치 및 그 방법 | |
CA2678714C (en) | Bootstrapping in peer-to-peer networks with network address translators | |
CN101151859B (zh) | 管理网络用户的网络接入的方法和系统 | |
CN100539504C (zh) | 一种网络地址转换和/或防火墙穿越平台、系统及其方法 | |
US20070253418A1 (en) | Routing path optimization between sip endpoints | |
US7558249B2 (en) | Communication terminal, and communication method | |
KR20070009646A (ko) | 정보 처리 장치, 버블 패킷 송신 방법 및 프로그램 | |
CN1442984B (zh) | 通信设备、网络系统和地址转换器 | |
JP2008098881A (ja) | 中継サーバ | |
US8014292B1 (en) | Dynamic location routing protocol | |
CN101599948A (zh) | 回声探测的方法、装置和系统 | |
CN104348731A (zh) | 社区虚拟网络连线建立方法及网络通信系统 | |
JP4809855B2 (ja) | Ipマルチキャスト疎通監視方法及びシステム | |
JP2009021846A (ja) | 複数のネットワーク間の通信システム及び通信方法 | |
CN103856576A (zh) | 通信系统和服务器 | |
JP3933183B2 (ja) | 通信システム、情報処理装置、サーバ、および通信方法 | |
CN1561061A (zh) | 通过nat进行双向访问的方法 | |
JP2008258917A (ja) | 同一nat配下通信制御システム、nat装置、同一nat配下通信制御方法、及びプログラム | |
JP2005260594A (ja) | ネットワークシステム及び通信装置 | |
JP4718638B2 (ja) | Tcp/ip基盤のアドレス変更方法及び装置 | |
JP4870882B2 (ja) | Ipネットワーク間の通信方法 | |
KR100941296B1 (ko) | 포트번호제어를 통한 공중망과 연결된 사설 ip망 간피어투피어 통신 방법 | |
WO2005043848A1 (en) | Udp packet communication method and system for private ip terminals | |
WO2002017035A3 (en) | Method and system for establishing connections between terminals connected to network environments having different ip-addressing schemes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090722 |