通信装置、通信方法、集成电路以及程序的制作方法

文档序号:7847472阅读:228来源:国知局
专利名称:通信装置、通信方法、集成电路以及程序的制作方法
技术领域
本发明涉及用于从WAN (Wide Area Network :广域网)侧穿越具有NAT (NetworkAddress Translation :网络地址变换)功能的网络中继装置进行通信的通信装置、通信方法、集成电路以及程序。
背景技术
在以往的使用互联网技术的通信方法中,对与互联网直接连接的装置,按照每个装置唯一地分配被规定的地址、即全局IPv4地址(以下记载全局IP地址)。但是,全局IP地址的数量是有限的,尤其在面向家庭的互联网连接服务中,伴随服务的一个契约往往只能分配一个全局IP地址。即,伴随服务的一个契约仅能将一台装置直接连接到互联网。因此,为了做到超越可使用的全局IP地址的数量的多个的装置同时与互联网上的装置能够进行通信,利用私网IP地址和具有NAT功能(以下,称为“NAT装置”)的路由器的网络结构被广泛地使用。再者,所谓私网IP地址不能作为全局互联网上的数据包的发送源IP地址及目的地IP地址使用,是以在网络装置的调试及企业内等内部的(私人的)网络的使用为目的的IP地址。另外,所谓NAT装置是有执行与全局IP地址和私网IP地址的相互转换等的网络地址转换(NAT )功能的网络中继装置。另外,在本说明书、权利要求书以及图面中,所说的“NAT”包括也进行端口变换的NAPT (网络地址端口变换,Network Address Port Translation)的意味来使用。使用图I对NAT的功能进行说明。NAT装置102作为NAT功能,在从自身的LAN(Local Area Network)侧的通信设备101向自身的WAN (Wide Area Network)侧的通信设备104发送了通信数据包的情况下,具有向上级网络(互联网103)转发的功能。NAT装置102在进行该转发时,通信数据包内的发送源IP地址和发送源端口分别改写为NAT装置102自己的WAN侧IP地址和重新分配的端口号。并且,作为其响应返回的响应数据包,由NAT装置102按照地址变换表105改写目的地IP地址和端口号,并向通信设备101转发。在图I例子中,在WAN侧有IP地址“10. 0.0. I”的NAT装置102接收由具有IP地址“192. 168. 0. 2”的通信设备101的10000号端口发送的、目的地IP地址“10. 0. 0. 2”的
80号端口的数据包。NAT装置102在接收该数据包时,首先,参照地址变换表105检查接收的数据包的发送源IP地址和发送源端口在地址变换表105中是否已经存在。其结果,在地址变换表105不存在符合的数据的情况下,重新制作地址变换表105。在图I例子中,假设是不存在相关数据而重新制作使用了发送源端口 20000号的地址变换表105的情况。另外,重新制作地址变换表105时使用的发送源端口号,只要是其他的未用作地址变换的号码即可,可以使用任意的端口号码。
NAT装置102在重新制作地址变换表105之后,按照制作的地址变换表105,将接收的数据包的发送源IP地址的“192. 168. 0.2”及发送源端口号“10000”分别改写为IP地址“10. 0. 0. I”及端口号“20000”,向具有IP地址“10. 0. 0. 2”的通信设备104发送该数据包。并且,NAT装置102接收由通信设备104所发送、作为其响应的目的地IP地址“10. 0. 0. I”的20000号端口的响应数据包时,参照地址变换表105,将作为目的地IP地址的“10. 0. 0. I”及目的地址端口号的“20000”分别改写为IP地址“192. 168. 0.2”及端口号“10000”。由此,通信设备101未受到由NAT装置102进行的地址变换的影响,而能与通信设备104进行通信,并能进行针对通信设备104的信息的传达及从通信设备104取得信息。可是,在NAT功能的地址变换时,重新分配的端口号的分配基准和端口排序规则因产品而不同。具体地说,NAT功能的地址分配时的端口分配基准主要被分为3种,端口排序规则主要也被分为3种。图2示出关于NAT功能的端口分配基准分类。图2的(I)是被称作为Cone型的端口分配基准分类,是不根据作为通信对方的服务器A及服务器B等的目的地IP地址、以及目的是端口 P还是端口 q等,而是在地址变换时,经常分配一样的端口的分类。图2的(2)是被称作为Address Sensitive型的端口分配基准分类,是根据通信对方的服务器A及服务器B的目的地IP地址来改变分配的端口的端口分配基准分类。但是,不论通信对方的目的端口是端口 P还是端口 q,在地址变换时,通常分配一样的端口。图2的(3)是被称作为port Sensitive型的端口分配基准分类,是根据通信对方的服务器A及服务器B的目的地IP地址来改变分配的端口、并且也能进一步根据端口是端口 P还是端口 q等来改变端口分配的端口分配基准分类。图3示出关于NAT功能的端口排序规则分类。图3的(I)是被称作为Port Reuse型的端口排序规则分类,对与终端发送的通信数据包的发送源端口相同的端口也由NAT装置进行分配的分类。另外,在NAT装置的地址变换表内端口已经被使用的情况下,也分配另外的端口。图3的(2)是被称作为Sequential型的端口排序规则分类,表示来自终端3个通信数据包分别使用作为发送源端口的I号端口、3号端口、5号端口,按顺序地被发送的情况的例子。在Sequential型中,不论终端发送的通信数据包的发送源端口如何,都按被发送的通信数据包的顺序,被分配相隔固定间隔(图3固定间隔A =5)的端口号。另外,该端口号的间隔因产品而不同。图3的(3)是被称作为Random型的端口号发行规则分类,是不论终端发送的通信数据包的发送源端口以及顺序如何,都不规则地分配端口号的端口号发行规则分类。另外,NAT装置的NAT功能,从安全性的角度看也存在以下情况,基于来自WAN侧的通信数据包的发送源IP地址和端口号,而具有过滤的功能。如上所述,在使用了私网IP地址和NAT装置的网络结构中,只要从NAT装置的属下的终端开始通信,则该终端与互联网上其他的装置能够直接通信。但是,为了进行来自互联网上其他的装置的通信,或不同的NAT装置的属下的2终端间的P2P (Peer to Peer)通信,彼此必须通过通信对方终端侧的NAT装置来进行通信。这个一般地被称作为“NAT穿越”。利用以非专利文献I所表现的UPnP(UniversalPlug and Play :通用即插即用)的I⑶(Internet Gateway Device :互联网网关装置)对应的 NAT 装置,或者,NAT — PMP (NAT Port mapping Protocol :NAT 端口映射协议)对应的NAT装置、或利用以非专利文献2被表现的STUN (Simple Traversal of UDP throughNATs :简单的遍历穿越NAT)进行NAT穿越,由此可以进行P2P通信。可是,在前者的方法中,因为从终端直接控制NAT装置的端口,所以能期待可靠的通信及连接,但如果未与NAT装置UPnP的I⑶、或与其同等的功能对应,则不能使用。另外,STUN具有通过利用外部服务器而与多个NAT装置对应的可能性。但是,根据在通信路径上存在的NAT装置的NAT分类以及其组合,由于NAT装置的过滤功能,能够屏蔽通信数据包,而无法进行NAT穿越。即,使用STUN的方法与使用UPnP的方法相比可靠性较差。尤其是在NAT装置存在2个以上的多级NAT环境中,因为由在多个NAT装置中的限制最严格的NAT装置的性质支配,所以STUN的连接成功率更加容易下降。在专利文献I中,记载有如下方式除了 NAT装置的NAT类别判断结果信息之外,在通过在终端间经由外部服务器交换有无UPnP对应信息,在外部服务器和终端之间的NAT装置存在2个以上的多级NAT环境也能通过进行使用了 STUN的NAT穿越、或使用了 UPnP的I⑶或者NAT - PMP等的NAT穿越而使连接率提高。现有技术文献专利文献专利文献I :日本专利特开2008 - 236278号公报非专利文献非专利文献I !Universal Plug and Play Internet Gateway Device (IGD)V I. 0,http //upnp. org/specs/gw/UPnP-gw-InternetGatewayDevice-vl-Device. pdf非专利文献2 J. Rosenberg, et al. “RFC3489, STUN-SimpleTraversal of UserDatagram Protocol (UDP)Through Network Address Translators (NATs),,,[online],March 2003, retrieved from the Internet <URL http://www. ietf. org/rfc/rfc3489.txt>
发明概要发明要解决的问题但是,在专利文献I记载的技术中,在存在2个以上NAT装置的多级NAT环境中,仅多个的NAT装置的全部对应UPnP的I⑶情况下,可进行UPnP的NAT穿越。即,在即使存在I台未与UPnP的I⑶等对应的NAT装置的情况下,能进行在STUN的NAT穿越。但是,现实中存在如下课题因为UPnP的适用范围较小,所以主要应用STUN的NAT穿越,因此限制 了在多级NAT环境的连接率提高效果。特别是作为全局IPv4地址的枯竭问题的对策方案,如图4所示,研究如下的LSN(Large Scale NAT :大规模 NAT) :ISP (Internet Service Provider :互联网服务提供商)在ISP管理内设施等设置按照在ISP级别的带有NAT功能的NAT装置和以其为标准的装置,分配私网IPv4地址给服务利用者的LSN。因此,能够考虑今后多级NAT环境增加。可认为LSN设备是ISP的管理设备,不支持来自用户终端的控制。S卩,对LSN设备,被预想为能够适用采用由UPnP的IGD等的端口映射设定的NAT穿越的可能性极低。另外,在图4中,ISP — NAT装置202及ISP — NAT装置207相当于上述的LSN设备如图4所示,假设在ISP - NAT装置202属下的终端装置206和ISP — NAT装置207属下的终端装置209之间进行P2P通信的情况。该情况即使使用专利文献I的方法,因为在LSN设备(ISP - NAT装置202及207)不具备UPnP的I⑶等的端口映射设定功能,也不得已利用STUN服务器201的NAT穿越。但是,这种情况下,往往发生NAT装置205和NAT装置208的组合不能连接的情况。即,不能够NAT穿越的情况大量地发生。另外,因为使用户强行要求NAT装置205或NAT装置208控制,即使进行静态的端口映射设定,因为LSN设备不支持来自用户的控制,所以也不能够进行NAT穿越。因此,如上所述,能否进行NAT穿越,因NAT装置205和NAT装置208的组合而改变。即,这件事如果以用户视点考虑,意味着即使是具有能够进行相同的P2P通信的终端的对方,也存在能够进行P2P通信的对方和不能进行P2P通信的对方。此时,应考虑如下事情用户对销售终端的企业和提供服务的企业的不满大量地发生。

发明内容
本发明的目的如下在包括不具备UPnP的I⑶等的端口映射设定功能的NAT装置的多级NAT环境中,提供能够容易确立穿越NAT的通信的通信装置、通信方法、集成电路及程序。解决问题所采用的手段本发明的一个实施方式涉及的通信装置,经由连接于互联网的上级NAT (NetworkAddress Translation :网络地址变换)装置、和连接于所述上级NAT装置的下级NAT装置,与连接于所述互联网的服务器装置进行通信,该通信装置具有连接环境确认部,收集表示所述上级NAT装置的LAN侧IP地址的信息以及表示所述下级NAT装置的WAN侧IP地址的信息;判断用端口映射命令部,对所述下级NAT装置进行端口映射命令,该端口映射命令用于使到达了所述下级NAT装置的规定的端口号的数据包转发到所述通信装置;判断数据包生成部,生成被进行了源路由选择设定的判断数据包,所述判断数据包生成部具有中继目的地址决定部,将所述连接环境确认部收集的、上级NAT装置的LAN侧IP地址决定为所述判断数据包的中继目的地址;最终目的地址决定部,将所述连接环境确认部收集的、所述下级NAT装置的WAN侧IP地址决定为所述判断数据包的最终目的地址;以及目的地址端口决定部,将与用于所述端口映射命令的所述规定的端口号相同的端口号决定为所述判断数据包的目的地址端口号;判断数据包发送部,发送由所述判断数据包生成部所生成的判断数据包;判断数据包接收部,接收由所述判断数据包发送部发送的经由所述上级NAT装置及所述下级NAT装置而到达所述通信装置的所述判断数据包;以及端口号取得部,取得由所述判断数据包接收部所接收的所述判断数据包所表示的发送源端口号、即所述下级NAT装置的WAN侧端口号。根据该结构,能够取得在本方式的通信装置发送数据包的情况下的、下级NAT装置变换后的发送源端口号。即,在来自通信装置的、此后的上行方向的通信中能够取得用于确定下级NAT装置所使用的WAN侧的端口号的信息。其结果,能够对下级NAT装置进行设定,以使到达了该WAN侧端口号的数据包转发到该通信装置。由此,能够使连接于互联网的其他装置穿越下级NAT装置并访问该通信装置。另外,本发明一个实施方式所涉及的通信装置,也可以还具有NAT穿越信息通知部,通过使用与由所述判断数据包生成部所生成的判断数据包的发送源端口号相同的发送源端口号,向所述服务器装置发送通知委托数据包,从而使所述服务器装置对与所述服务 器装置通信的其他通信装置进行NAT穿越信息的通知,所述NAT穿越信息包含所述服务器装置接收了的所述通知委托数据包所示出的所述上级NAT装置的WAN侧IP地址和WAN侧端口号。根据该结构,对作为例如,通信对方的之外的通信装置能通知为高效地NAT穿越需要的息。另外,本发明的一个实施方式涉及的通信装置,也可以还具有端口号发行规则确定部,确定所述下级NAT装置的、作为用于通信的WAN侧端口号的决定规则的端口号发行规贝U,所述判断数据包发送部发送多个所述判断数据包,所述判断数据包接收部接收由所述判断数据包发送部所发送的多个所述判断数据包,所述端口号取得部取得由所述判断数据包接收部所接收的多个所述判断数据包分别示出的所述下级NAT装置的WAN侧端口号,所述端口号发行规则确定部基于由所述端口号取得部所取得的多个WAN侧端口号,确定所述端口号发行规则。根据这个结构,例如,可高效地确定下级NAT装置的端口号发行规则。总之,能够有效地取得用于在其他通信装置执行NAT穿越而使用的信息。另外,本发明的一个方面涉及的通信装置,也可以还具有NAT穿越用端口决定部,(i )将使用由所述端口号发行规则确定部所确定的端口号发行规则而确定的、用于所述下级NAT装置对所述通信装置接着所发送了的数据包进行转发的WAN侧端口号决定为NAT穿越用端口号,并且,(ii)决定与所述NAT穿越用端口号对应的、通知委托数据包的发送源端口号;NAT穿越用端口映射命令部,对所述下级NAT装置进行端口映射命令,该端口映射命令用于使到达了由所述NAT穿越用端口决定部所决定的NAT穿越用端口号的数据包转发到所述通信装置;以及NAT穿越信息通知部,通过使用由所述NAT穿越用端口决定部所决定的发送源端口号对所述服务器装置发送所述通知委托数据包,从而使述服务器装置对与所述服务器装置通信的其他通信装置进行NAT穿越信息的通知,所述NAT穿越信息包含所述服务器装置接收了的所述通知委托数据包所示出的所述上级NAT装置的WAN侧IP地址和WAN侧端口号。根据该结构,例如,能够高效地执行设定用于相对下级NAT装置的NAT穿越所涉及的处理,并且,能够可靠地执行向其他通信装置的NAT穿越信息的通知。另外,在本发明一个方面所涉及的通信装置,所述判断数据包发送部也可以对发送源端口号互不相同的多个所述判断数据包进行发送,所述端口号发行规则确定部,根据如下条件确定所述端口号发行规则(a)对于多个所述判断数据包的每一个,在由所述判断数据包发送部发送时的发送源端口号和由所述端口号取得部所取得的WAN侧端口号是否一致;或(b)所述端口号取得部顺次取得了的多个WAN侧端口号中的、接连而被取得的两个WAN侧端口号间的差是否为固定值。根据该结构,例如,下级NAT装置即使是不清楚采用着各种各样的端口号发行规则中的哪种的情况,也能可靠地确定该端口号发行规则。 另外,本发明也能够作为包含上述某一个实施方式所涉及的通信装置执行的特征的处理的通信方法来实现。另外,在本发明中,本发明的通信方法包含的各处理能够作为使计算机执行的程序来实现,以及该作为记录了该程序记录介质来实现。并且,通过因特网等的传送介质或DVD等的记录介质也能纷发该程序。另外,本发明也能够作为具有上述某一个实施方式所涉及的通信装置的特征的结构部的集成电路来实现。发明效果根据本发明,即使是NAT装置被多级连接的情况下,如果能进行下层的NAT装置是UPnP对应等的端口映射的设定,则能得到下级NAT装置的地址变换规则、以及下级NAT装置使用的WAN侧的端口号。因此,基于这些的信息,能够对下级NAT装置使用的WAN侧的端口,使用UPnP的IGD等的端口映射设定功能进行端口映射,以使该通信装置的数据包接收用的端口一致。由此,能够在上级NAT装置中,在不支持UPnP的I⑶等的端口映射功能的多层NAT环境下,容易实现对位于网络的末端的通信设备发送数据包时的NAT穿越。具体地说,只是对该通信设备仅增加功能扩展,便能进行NAT穿越。


图1是用于说明以往的NAT功能的概要的图。图2是表示以往的NAT的端口分配基准分类的图。图3是表示以往的NAT的端口号发行规则分类的图。图4是表示今后被预想的网络结构的概要的图。图5是表示在多级NAT环境的、以往方法的NAT类别的辨别结果的例的图。图6是表示在本发明的实施方式I的通信系统的结构的一个例子的图。图7是表示在实施方式I的外部服务器及终端装置的硬件结构例的框图。图8是表示在实施方式I的终端装置的结构的一个例子的功能框图。图9是表示在实施方式I的终端装置的基本的处理的流程的流程图。图10是表示向在实施方式I通信系统的各装置分配的IP地址的例的图。图11是表示在用于取得实施方式I及2中的、下级NAT装置使用的WAN侧端口号的通信顺序的一个例子的图。图12是表示在实施方式I的、包括NAT穿越的通信顺序的一个例子的图。图13是表示在实施方式2的、包括NAT穿越的通信顺序的一个例子的图。
图14是表示用于确定在实施方式2的、下级NAT装置的端口号发行规则的处理流程的一个例子的图。
具体实施例方式
下面对本发明的实施方式,一边参照图面一边进行说明。LSN根据载体及ISP方针、想法无法确定其配置,但是,考虑连接性和原有应用软件的互换性,NAT的端口分配基准成为Cone型的可能性高。Cone型NAT对于NAT的限制比其他的2个宽松。因此,作为STUN等的以往方法 的、在多级NAT环境中使用在外部服务器和终端之间的NAT类别辨别方法的结果,作为下级NAT装置的家内NAT装置的NAT限制条件成为支配条件。其结果,能够如图5所示地进行判别。S卩,Cone型NAT因为固定地转换针对上行数据包的端口号,所以作为多级NAT环境全体与下级NAT装置的NAT限制等效。例如,如果上级=Cone型、下级Cone型,则即使多级NAT也被辨别为Cone型(图5的(I))。如果上级Cone型、下级Address Sensitive型,则作为多级NAT被辨别为Address Sensitive 型(图 5 的(2))。另外,如果上级Cone 型,下级Port Sensitive 型,则作为多级NAT被辨别为Port Sensitive型(图5的(3))。另外,在图5中的上级NAT装置302、312及322相当于LSN,在下级NAT装置303、313及323,相当于家内NAT装置。通过以上的理由,能够容易地判定作为下级NAT装置的家内NAT装置的端口分配基准。本发明即使在3级以上的多级NAT环境也能够适用,但实施方式中,NAT装置表示为在2级的多级NAT环境的例子。具体地说,在实施方式I中,示出作为下级NAT装置的家内NAT装置作为Cone型的情况的、伴随NAT穿越的通信的一个例子。在实施方式2中,示出作为下级NAT装置的家内NAT装置作为Address Sensitive型或者Port Sensitive型的情况的、伴随NAT穿越的通信的一个例子。另外,在以下说明的实施方式的每一个是示出本发明优选的一具体例子。由各实施方式所表现的数值、形状、结构元件、结构元件的配置及连接方式等仅是一个例子,不是对本发明进行限定的主旨。本发明由权利要求书限定。由此,在以下的各实施方式的结构要素中,未被权利要求I记载的结构要素,未必是实现本发明的课题所必需的,不过是以构成最优的方式来进行说明。(实施方式I)在实施方式I中,示出作为下级NAT装置的家内NAT装置为Cone型的情况的、伴随NAT穿越的通信的一个例子。首先,对在实施方式I的通信系统的结构进行说明。图6是表示在本发明的实施方式I的通信系统的结构的一个例子的图。在对图6所示的实施方式I的通信系统400具有外部服务器401、相当于以ISP级别设置的LSN的上级NAT装置a403及上级NAT装置b406、相当于家内NAT装置下级NAT装置b407及下级NAT装置a404、以及终端装置a405以及终端装置b408。另外,外部服务器401、上级NAT装置a403、以及上级NAT装置b406通过通信电路与互联网402连接。本实施方式中,假设为以下情况在终端装置a405和终端装置b408进行P2P通信的基础上,开始从终端装置a405面向终端装置b408通信,并且终端装置a405执行NAT穿越的顺序。终端装置a405具体地说,通过与外部服务器401进行通信,从而开始面向终端装置b408的通信。外部服务器401具有从终端装置a405接收上级NAT装置a403的WAN侧IP地址以及用于NAT穿越的端口信息等的NAT穿越信息的功能、以及向成为终端装置a405通信对方的终端装置b408通知上述NAT穿越信息的功能。互联网402例如是用光回路、CATV、或电话线路等构成的有线回路,或者无线回路构成公共通信网络或者专用通信网络。在与互联网402连接的终端装置之间能够按照规定的通信协议进行数据的交换。终端装置a405以及终端装置b408具有能够通过TCP或UDP与IP网络进行通信的功能,按照各自的目的进行数据通信。另外,终端装置a405是本发明的通信装置的一个例子。终端装置a405具有通过向各NAT装置发送通信数据包从而取得表示各NAT装置的IP地址等的连接环境的NAT信息的功能、通过UPnP的IGD等向下级NAT装置a404设定判断用的端口映射的功能、将使用了源路由选择功能的判断数据包通过经由上级NAT装置a403向下级NAT装置a404发送的功能、接收该判断数据包的功能、基于从该判断数据包得到的结果信息通过UPnP的IGD等对下级NAT装置a404设定用于NAT穿越的端口映射的功能、以及对外部服务器401通知NAT穿越信息的功能。另外,“端口映射” 一般来说也被称呼为“端口指定”等。终端装置b408通过与外部服务器401进行通信,从而具有取得终端装置a405的NAT穿越信息的功能、以及基于取得的NAT穿越信息访问终端装置a405的功能。对于这些的功能、以及终端装置a405和终端装置b408的结构的关系后述。上级NAT装置a403、上级NAT装置b406、下级NAT装置a404及下级NAT装置b407是具有NAT功能的路由器,具有数据包的路由功能并且构成LAN的一部分。连接到该LAN的各终端拥有私网IP地址,并能够在同一 LAN内存在的终端之间使用私网IP地址进行通信。接着,使用图7对外部服务器401、终端装置a405、以及终端装置b408硬件结构进行说明。外部服务器401、终端装置a405及终端装置b408,能够通过信息处理装置来实现,该信息处理装置具有能够执行软件的通常硬件结构。外部服务器401、终端装置a405及终端装置b408中包含CPU(运算处理装置)501、主存储装置502、通信控制装置503、外部存储装置504、输入装置505以及输出装置506。
各装置通过总线507被相互连接,被构成为在各装置间能够传送需要的信息。另夕卜,由图7表示的硬件结构是一个例子,外部服务器401、终端装置a405以及终端装置b408硬件结构未必一定这样。
图8表示终端装置a405功能框图的一个例子。各功能框图例如通过由CPU501执行终端装置a405的主存储装置502或外部存储装置504所存储的程序来实现。
连接环境确认部601收集终端装置a405和外部服务器401之间的全部的、具备NAT功能的NAT装置的信息。向判断数据包生成部603通知在这里得到的信息。在这里收集的信息是在终端装置a405和外部服务器401之间的NAT装置有无WAN侧IP地址、LAN侧IP地址、UPnP的I⑶或NAT - PMP等的端口映射设定功能的信息等。S卩,由连接环境确认部601收集表示上级NAT装置a403的LAN侧IP地址的信息、表示下级NAT装置a404的WAN侧IP地址的信息、上级NAT装置a403有无端口映射设定功能的信息、以及下级NAT装置a404有无端口映射设定功能的信息等。另外,上述的连接环境确认部601收集的信息是一个例子,并不限于此。判断用端口映射命令部602使用由目的端口决定部606所决定的端口号,通过UPnP的I⑶等向相当于家内NAT装置的下级NAT装置a404进行端口映射命令。总之,判断用端口映射命令部602对下级NAT装置a404进行端口映射命令,该端口映射命令用于使到达下级NAT装置a404的WAN侧的规定的端口号的数据包转发到终端装置a405。判断数据包生成部603生成由判断数据包发送部608所发送且被判断数据包接收部609所接收的、设定源路由选择的判断数据包。具体地说,判断数据包生成部603具有中继目的地址决定部604,将连接环境确认部601收集的上级NAT装置a403的LAN侧IP地址决定为判断数据包的中继目的地址 ’最终目的地址决定部605,将连接环境确认部601收集的下级NAT装置a404的WAN侧IP地址决定为判断数据包的最终目的地址;目的端口决定部606,将与用于端口映射命令的规定的端口号相同的端口号决定为判断数据包的目的端口号码;以及发送源端口决定部607,决定任意的发送源端口号。判断数据包发送部608将由判断数据包生成部603所生成的、进行了源路由选择设定的判断数据包发送到网络。判断数据包接收部609接收由判断数据包发送部608发送、经由上级NAT装置a403以及下级NAT装置a404、被发送到终端装置a405自身的判断数据包。端口号取得部615取得由判断数据包接收部609所接收的判断数据包所表示的发送源端口号、即下级NAT装置a404的WAN侧端口号。由端口号取得部615所取得的该WAN侧端口号作为判断结果被通知到端口号发行规则确定部610。端口排序规则确定部610确定在下级NAT装置a404的、作为用于通信的WAN侧端口号的决定的规则的发送端口号排序规则。具体地说,判断数据包接收部609接收由判断数据包发送部608所发送的多个的判断数据包,并且,端口号取得部615取得这些多个的判断数据包的每一个所表示的、下级NAT装置a404的WAN侧端口号。端口排序规则确定部610基于从端口号取得部615顺次得到的多个的WAN侧端口号,确定下级NAT装置a404的端口号发行规则。关于由端口号发行规则确定部610的NAT装置的端口号发行规则的确定方法在后使用图14进行说明。
端口号发行规则确定部610将确定的结果通知NAT穿越用端口决定部613,NAT穿越用端口决定部613将该结果所示的端口号用于NAT穿越的处理。另外,在预先知道下级NAT装置a404端口分配基准为Cone型的情况下,不需要为了 NAT穿越而确定端口号发行规则。因此,这个情况下,不使用端口号发行规则确定部610具有的功能而转移到NAT穿越用端口决定部613的处理。NAT穿越用 端口决定部613根据从端口号发行规则确定部610取得的结果,决定由NAT穿越用端口映射命令部611用于端口映射命令的端口号、以及由NAT穿越信息通知部612所采用的通知委托数据包的发送源端口号。另外,在预先知道下级NAT装置a404端口分配基准为Cone型的情况下,如上所述,在端口号发行规则确定部610不进行端口号发行规则的确定,而将判断数据包接收部609接收的I个判断数据包的发送源端口号决定为端口映射命令用的端口号。NAT穿越用端口映射命令部611使用NAT穿越用端口决定部613所决定的、用于NAT穿越应进行端口映射的端口号,对下级NAT装置a404使用UPnP的I⑶等进行端口映射命令。NAT穿越信息通知部612使用由NAT穿越用端口决定部613所决定的发送源端口号,通过向外部服务器401发送通知委托数据包,从而使外部服务器401向与外部服务器401进行通信的其他终端装置进行NAT穿越信息。在该NAT穿越信息中,包含有由外部服务器401所接收的通知委托数据包所表示的上级NAT装置a403的WAN侧IP地址和WAN侧端口号。S卩,在该NAT穿越信息中含有用于该其他的终端装置进行NAT穿越来与终端装置a405通信需要的、表示数据包的目的地址的信息。另外,端口号发行规则确定部610等的、在图8中由点线的矩形所表示的功能框图,也可以不具有终端装置a405。例如,也可以将终端装置a405端口号取得部615取得的、下级NAT装置a404的WAN侧端口号发送到其他的装置,使该其他装置进行端口号发行规则的确定以及NAT穿越用的端口号的决定等的处理。另外,图8所示的功能结构的一部分或全部能够作为I个集成电路来实现。即,终端装置a405能够由集成电路来实现。外部服务器401是如下的通信设备根据从终端装置a405接收的通知委托数据包取得NAT穿越信息,并将其通知到其他终端。外部服务器401因为能够由以往的NAT穿越方法所使用的认证服务器或由对话管理服务器等实现,所以省略功能框图。终端装置b408具有如下功能经由外部服务器401接收从终端装置a405通信请求,并从外部服务器401接收用于与终端装置a405的进行通信的NAT穿越信息,基于该信息访问终端装置a405。S卩,终端装置b408是具有按照以往的STUN或者以其为标准的功能的通信设备或者通信单元。因此,省略终端装置b408功能框图。接着,使用图9对终端装置a405基本的处理的流程进行说明。图9是表示本发明的实施方式I的终端装置a405基本的处理的流程的流程图。连接环境确认部601收集NAT信息(S10)。具体地说,收集表示上级NAT装置a403的LAN侧IP地址的信息、表示下级NAT装置a404的WAN侧IP地址的信息、上级NAT装置a403有无端口映射设定功能的信息、以及下级NAT装置a404有无端口映射设定功能的信息坐寸O判断用端口映射命令部602对下级NAT装置a404,使用规定的端口号来进行端口映射命令(SI I)。判断数据包生成部603生成被源路由选择设定的判断数据包(S20)。具体地说进行以下的处理。中继目的地址决定部604将由连接环境确认部601所收集的、上级NAT装置a403的LAN侧IP地址决定为判断数据包的中继目的地址(S21)。最终目的地址决定部605将连接环境确认部601收集的、下级NAT装置a404的WAN侧IP地址决定为判断数据包的最终目的地址(S22)。目的地址端口决定部606将与由判断用端口映射命令部602的端口映射命令所使用的规定的端口号相同的端口号决定为判断数据包的目的地址端口号(S23)。另外,如果由目的地址端口决定部606所决定的目的地址端口号和用于端口映射命令的规定的端口号相同,则也可以目的地址端口决定部606以及判断用端口映射命令部602的某一个决定该相同的端口号。判断数据包发送部608发送由判断数据包生成部603所生成的判断数据包(S30)。判断数据包接收部609接收如下的判断数据包(S31),该判断数据包为由判断数据包发送部608所发送,经过上级NAT装置a403以及下级NAT装置a404,到达终端装置a405的数据包。端口号取得部615取得由判断数据包接收部609所接收的判断数据包所表示的发送源端口号、即下级NAT装置a404的WAN侧端口号(S32 )。用图10 图12对在执行以上的基本的处理的包含终端装置a405的通信系统400的通信顺序的一个例子进行说明。具体地说,以图10环境为例子,使用流程图11及图12,对从终端装置a405到终端装置b408进行NAT穿越而确立的P2P通信之前的一系列的处理的流程进行说明。图10是表示对在实施方式I通信系统400的各装置分配的IP地址的例的图。如图10所示,假设为对各装置分配I个或2个IP地址的环境。例如,在图10中,在下级NAT装置a404中,分配“192. 168. 11. I”作为LA謂IP地址,分配“192. 168. 10. 2”作为WAN侧IP地址。另外,在上级NAT装置a403中,分配“192. 168. 10. I”作为LAN侧IP地址,分配“ 10. 0. 0. 2”作为WAN侧IP地址。在这样的环境中,使用图11对终端装置a405在接收到自己生成并发送的判断数据包之前的通信顺序进行说明。首先,终端装置a405的连接环境确认部601取得有关在终端装置a405和外部服务器401之间的全部的NAT装置的NAT信息(S801)。连接环境确认部601取得的NAT信息是表示NAT装置(本实施方式403及404)的WAN侧IP地址、LAN侧IP地址、以及有无UPnP的I⑶或NAT - PMP等的端口映射设定功能的信息等。连接环境确认部601也可以取得其他的信息。还有,NAT装置的WAN侧IP地址及LAN侧IP地址可以通过使用traceroute等的ICMP数据包或用UPnP的GetExternalIPAddress等而得到。另外,UPnP的IGD或NAT —PMP等的端口映射设定功能的有无,可通过利用UPnP的IGD等的功能进行判断。、
另外,S801处理可以在终端装置a405被连接到网络时或在电源被启动时进行,如果能够在进行S802之前执行,无论什么时候都可以。
接着,终端装置a405的判断用端口映射命令部602对下级NAT装置a404使用UPnP的IGD等的端口映射设定功能,执行判断用端口映射命令(S802 ),该判断用端口映射命令使用了由终端装置a405内的目的地址端口决定部606所决定的规定的端口号。在本实施方式中,将由终端装置a405目的地址端口决定部606所决定的规定的端口号作为山并在以后进行说明。下级NAT装置a404接受来自终端装置a405的判断用端口映射命令,对于被指定的端口的d端口,进行UPnP的I⑶等端口映射的设定。由此,以后,在数据包从WAN侧发送到了作为下级NAT装置a404的WAN侧IP地址的“ 192. 168. 10. 2”的d端口的情况下,下级NAT装置a404通过将该数据包的目的地址改写为作为终端装置a405的IP地址“192. 168. 11. 2”的d端口,从而将该数据包向终端装置a405转发(S803及S804)。另外,向终端装置a405转发数据包时,也可以将目的端口号指定为向d以外的端口转发。终端装置a405判断数据包生成部603以由S801得到的NAT信息为基础生成判断数据包(S805)。这里,判断数据包因为设定了源路由选择,在判断数据包内不仅包含通常的IP数据包的目的地IP地址和发送源IP地址,还包含有最终目的地IP地址。即,被通常的IP头部存在的目的地IP地址部所指定的IP地址作为中继目的地址IP地址来进行处理。因此,以下,在判断数据包的生成时,将IP头部的目的地IP地址部指定的IP地址记录为中继目的地址IP地址。在对图10所示的环境中,终端装置a405的中继目的地址决定部604,将上级NAT装置a403的LAN方面IP地址“192. 168. 10. I”指定为中继目的地址IP地址。另外,最终目的地址决定部605将下级NAT装置a404的WAN侧IP地址“ 192. 168. 10. 2”指定为最终目的地IP地址。一般情况下,在销售的宽带NAT装置中,也存在对由IP头部的选择部指定的、包含用于源路由选择的最终目的地IP地址的通信数据包进行过滤的产品。因此,本发明中也可以不将在IP头部的选择部指定为最终目的地IP地址,而在通信数据包的数据部等的IP头部以外,指定最终目的地IP地址来进行与源路由选择同等的功能。另外,终端装置a405目的地址端口决定部606,指定判断数据包的目的地址端口号。本实施方式中如上所述指定d端口。进而,终端装置a405发送源端口决定部607将任意的端口号指定为判断数据包的发送源端口号。在本实施方式中假设将s端口用于发送源端口号。并且,终端装置a405的判断数据包发送部608发送由S805所生成的判断数据包。被发送的判断数据包通过下级NAT装置a404由中继目的地IP地址所指定的上级NAT装置a403 接收(S806、S807 及 S808)。此时,在S807,下级NAT装置a404对判断数据包的发送源IP地址和发送原端口号进行地址变换。在此时的地址变换中,发送源IP地址从“192. 168. 11. 2”变换为为下级NAT装置a404的WAN侧IP地址“ 192. 168. 10. 2”。另外,假设发送源端口号估计从s端口变换为S'端口。上级NAT装置a403将在S808接收的判断数据包的IP头部存在的目的地IP地址部的中继目的地址IP地址变更为判断数据包内所记述的最终目的地IP地址(S809)。上级NAT装置a403将在S809进行目的地变更的判断数据包发送到下级NAT装置a404的、在S804进行端口映射的端口的d端口( S810 )。下级NAT装置a404将在S810从上级NAT装置a403所发送的判断数据包的目的地IP地址变更为终端装置a405的IP地址“192. 168. 11. 2”并进行转发(S811)。另外,在S810及S811完成之后,在S802、S803及S804中,也可以进行使下级NAT装置a404由UPnP的I⑶等设定的端口映射功能停止的处理。终端装置a405判断数据包接收部609接收由S810及S811所发送的并被转发的判断数据包(S812)。在这里,被接收的判断数据包的发送源IP地址和发送源端口号是作为各自下级NAT装置a404的WAN侧IP地址“ 192. 168. 10. 2”和下级NAT装置a404在S807地址变换的结果的端口号的“s' ”。终端装置a405端口号取得部615取得判断数据包接收部609接收的判断数据包的发送源端口号、即下级NAT装置a404的WAN侧端口号“ s' ”。接着,在终端装置a405决定NAT穿越用的端口之后,使用图12对进行NAT穿越访问之前的各装置的处理的流程进行说明。在此,本实施方式假设下级NAT装置a404端口分配基准为Cone型的情况,这种情况下,在图12的S901需要的NAT穿越用端口的决定,不需要确定端口号发行规则。因此,作为终端装置a405的各功能框图的处理的流程,处理从判断数据包接收部609向NAT穿越用端口决定部613转移。终端装置a405的NAT穿越用端口决定部613决定在S902使用UPnP的I⑶等对下级NAT装置a404进行端口映射命令时所使用的NAT穿越用端口号、以及在S905使用的NAT穿越信息的通知委托数据包的发送源端口号(S901)。这里,如上所述,在本实施方式的下级NAT装置a404端口分配基准是Cone型。因此,NAT穿越用所决定的端口号和NAT穿越信息的通知委托数据包的发送原端口号,分别是在S812接收的判断数据包的发送原端口号的s,端口号和在S806所使用的s发送源端□。因此,终端装置a405的NAT穿越用端口映射命令部611使用UPnP的I⑶等向下级NAT装置a404发送s'端口的端口映射命令(S902 )。
下级NAT装置a404接收在S902被发送的NAT用端口映射命令(S903),对被指定的端口号s'的端口进行端口映射设定(S904)。以后,在数据包从WAN侧送到目的地址为下级NAT装置a404的WAN侧IP地址“ 192. 168. 10. 2”的s'端口的情况下,下级NAT装置a404通过将该数据包的目的地址改写为终端装置a405的IP地址“192. 168. 11. 2”的s端口,从而将该数据包转发到终端装置a405。终端装置a405的NAT穿越信息通知部612将发送源IP地址设为“192. 168. 11. 2”,将发送源端口设为s端口,向外部服务器401发送通知委托数据包。具体地说,该通知委托数据包指定“ 10. 0. 0. I ”作为目的地IP地址,指定为外部服务器401指定的任意的端口号作为目的地址端口号。这样做,能够向NAT穿越信息的外部服务器401进行发送(3905)。此时,在下级NAT装置a404进行地址变换,下级NAT装置a404是Cone型,并且,来自终端装置a405的通知委托数据包的发送源端口号是与判断数据包的发送时(S806)的发送源端口号相同的“S”。因此,发送源IP地址和发送源端口分别被转换为“192. 168. 10. 2”和作为S807的变换结果的s'端口(S906)。进而,上级NAT装置a403也能进行地址变换(S907)。此时的变换后的发送源IP地址是“10. 0.0. 2”。另外,把该变换后的发送源端口设为S"端口。在S908,送到外部服务器401的通信数据包的发送源IP地址和发送源端口号分别是由上级NAT装置a403的地址变换后的“10. 0. 0. 2”和“s" ”。外部服务器401将这些信息作为NAT穿越信息保存在外部服务器401内(S908)。 另外,在S905,在从终端装置a405所发送的通知委托数据包内,也可以包含成为终端装置a405的通信对方的终端装置b408的标识符或ID等来发送。总之,终端装置a405也能够对外部服务器401通知通信对方的标识符等。结束了 S908处理的外部服务器401对成为终端装置a405的通信对方的终端装置b408通知在S908得到的NAT穿越信息(S909及S910)。此时被通知的信息是作为上级NAT装置a403的WAN侧IP地址“ 10. 0. 0. 2”和端口号“s" ”,但也可以包含此外的信息。终端装置b408在S910使用从外部服务器401接收的NAT穿越信息,进行NAT穿越来访问终端装置a405 (S911)。此时的通信数据包的目的地IP地址和目的地址端口号分别是在S910得到的NAT穿越信息所示出的、上级NAT装置a403的WAN侧IP地址“ 10. 0. 0. 2”和在终端装置a405与外部服务器401之间通信中由上级NAT装置a403进行的地址变换后的端口号“s" ”。在终端装置b408发送该通信数据包的情况下,上级NAT装置a403将通信数据包的目的地IP地址和目的地址端口号分别改写为“192. 168. 10. 2”和“s' ”,并向下级NAT装置 a404 转发(S912)。S卩,下级NAT装置a404在S903及S904利用作为端口映射设定的端口的s'端口接收该通信数据包。因此,下级NAT装置a404将该通信数据包的目的地IP地址和目的地址端口号分别改写为该终端装置a405的IP地址“192. 168. 11. 2”和“S”,并向终端装置a405转发(S913)。这样,终端装置a405接收来自终端装置b408的完成NAT穿越的该通信数据包(S914)。终端装置a405对在S914接收的通信数据包进行响应。由此,从终端装置a405向终端装置b408的NAT穿越被完成,P2P通信被确立(S915及S916)。根据以上的处理流程,在图10所示的网络结构中,在下级NAT装置a404端口分配分类为Cone型的情况下,从终端装置b408向终端装置a405的通信数据包到达由下级NAT装置a404所设置的作为NAT穿越用端口而被设定的端口。由此,该通信数据包通过下级NAT装置a404到达终端装置a405。即,进行从终端装置b408向终端装置a405通信的NAT穿越。
另外,从终端装置a405向终端装置b408通信数据包,作为从上述的终端装置b408向终端装置a405通信数据包的响应,使用相同的路径(端口号),被向上级NAT装置b406以及下级NAT装置b407发送。因此,该响应的通信数据包未被所述2个NAT装置过滤。S卩,能够完成从终端装置a405在向终端装置b408通信的NAT穿越,并能够实现从终端装置a405向终端装置b408通信。(实施方式2)在实施方式2 中示出作为下级NAT装置的家内NAT装置为Address Sensitive型或为Port Sensitive型的情况的、伴随NAT穿越的通信的一个例子。在实施方式2中的通信系统的结构和各装置的硬件结构以及功能框图结构与实施方式I的图6、图7、和图8相同,所以说明省略。还有,在实施方式2的终端装置a405基本的处理的流程如图9所示,在这里的省略说明。下面,对在多级NAT环境下、在不相同的NAT装置属下的终端装置a405和终端装置b408的之间进行NAT穿越并进行P2P通信的情况的各装置的处理进行说明。具体地说,使用图11以及图13对与实施方式I相同、在图10所示的环境下的从终端装置a405到终端装置b408的NAT穿越来进行P2P通信的处理之前的流程进行说明。首先,终端装置a405的连接环境确认部601取得有关在终端装置a405和外部服务器401之间的全部的NAT装置的NAT信息(S801)。连接环境确认部601取得的NAT信息是表示NAT装置(本实施方式403及404)有无WAN侧IP地址、LAN侧IP地址、以及UPnP的I⑶或NAT - PMP等的端口映射设定功能的信息等。连接环境确认部601也可以取得其他的信息。还有,NAT装置的WAN侧IP地址及LAN侧IP地址可以通过使用traceroute等的ICMP数据包或用UPnP的GetExternalIPAddress等而得到。另外,有无UPnP的I⑶或NAT - PMP等的端口映射设定功能,可通过利用UPnP的I⑶等的功能进行判断。在本实施方式中,执行S801之后,与实施方式I相同,执行图11的S802 S812。但是,在本实施方式中,需要进行下级NAT装置a404的端口号发行规则的确定。因此,具体地说,图11的S802 S812 —系列的处理需要至少进行3次。在此,在本实施方式中,图11的S802 S812的一系列的处理被进行3次。还有,在进行S802 S812时,每次应该使之变化项目是S805判断数据包生成时被设定的发送源
端口号。在本实施方式中,在第n次的S802 S812中,终端装置a405将作为判断数据包的发送源端口而使用的端口表示为s (n)号端口,在S807中,下级NAT装置a404将变换s(n)端口后的结果的端口表不为s' (n)号端口。S卩、在第I次的S802 S812所使用的判断数据包,在从终端装置a405被发送时亥IJ,作为发送源端口使用s (I)号端口,在下级NAT装置a404中从s (I)号端口地址变换S1 (I)号端口。这样的S802 S812 —系列的处理被进行3次之后,终端装置a405的端口号发行规则确定部610使用作为在各次被使用的判断数据包的发送源端口号而被使用的s (I)、s (2)、和s (3)以及作为那些的变换结果得到的端口号s, (I)、s, (2)、和s, (3),例如按照图14所示的处理流程,执行下级NAT装置a404的端口号发行规则的确定(图13的SiOODo
在此,在图14所示的端口号发行规则的确定处理中,端口号发行规则确定部610对s (n)和s' (n )进行比较(S1101)。该比较的结果,在s (n)和s' (n)相等的情况(在SllOl为Y),端口号发行规则确定部610将与下级NAT装置a404端口号发行规则确定为(I) Port Reuse型,在不同的情况下,转移到下面的比较处理(S1102)。SP,本实施方式中“s (I)=S' (I)”且“s (2)=s/ (2)”且“s (3)=s/ (3)”的情况下,将端口号发行规则确定为[l]Port Reuse型。下面的比较处理(S1102)中,端口号发行规则确定部610在s' (n)- s/ (n —I)为固定值的情况下,将端口号发行规则确定为[2] Sequential型,在不是固定值的情况下,将端口号发行规则确定为[3] Random型。S 卩,端口号发行规则确定部 610,在“s' (3)- s/ (2)=s/ (2) — s' (I)” 的情况,换言之端口分配间隔固定的情况下,将端口号发行规则确定为[2] Sequential型,在此之外的情况下,确定为[3] Random型。再者,如果下级NAT装置a404的端口号发行规则被确定为[3]Random型的情况下,不能进行用本发明建议的NAT穿越方法。因此,在确定为[3]Random型的情况下,终端装置a405例如对外部服务器401通知不能进行NAT穿越。还有,外部服务器401也可以将该通知内容通知终端装置b408。在此,[l]Port Reuse型以及[2] Sequential型的NAT装置,按照端口号发行规则,决定进行端口映射设定的端口号。因此,在决定的端口号已经在其他的通信中被使用的情况下,有时分配与原来的端口号发行规则相反的端口号。因此,即使原来[l]Port Reuse型及[2]SeqUential型的NAT装置根据情况不同有时也确定错误的端口号发行规则,不过对于这种情况,因为不是本发明的本来的意义,故省略说明。对图13所示的S1002 S1017与实施方式I的S901 S916大体上相同,但在使用的发送源端口号以及在下级NAT装置a404的地址变换等存在差异。因此,将下级NAT装置a404为[l]Port Reuse型的情况作为实施方式2的具体例1,将为[2]Sequential型的情况设为实施方式2的具体例2,对S1002 S1017的说明如下所示。(实施方式2具体例I:Port Reuse型)终端装置a405的端口号发行规则确定部610将下级NAT装置a404的端口号发行规则确定为Port Reuse型之后,NAT穿越用端口决定部613对下级NAT装置a404决定用于NAT穿越的设定端口映射的端口号(S1002)。在此,成为下级NAT装置a404为Port Reuse型时的端口映射的对象的端口号,是在下级NAT装置a404在地址变换后所分配的端口号,在S1006发送NAT穿越信息时,是与终端装置a405使用的发送源端口号相同的端口号。在S1006发送NAT穿越信息时,终端装置a405使用的发送源端口号可以是任意的号。但是,在S802 S812使用的端口号s (I)、s (2)及s (3)因为是之前使用了的端口号,所以存在下级NAT装置a404进行与原来的端口号发行规则Port Reuse规则相反的端口排序的可能性,因此应避开。在此,为了便于以后的说明,在S1006发送NAT穿越信息时,将终端装置a405作为通知委托数据包的发送源端口号使用的端口号记录为“s_pr”。这个情况下,作为用于NAT穿越而设定端口映射的端口号也成为“s_pr”。使用在S1002决定的用于NAT穿越的端口号“s_pr”,从终端装置a405的NAT穿越用端口映射命令部611到下级NAT装置a404通过UPnP的I⑶等来进行端口映射命令。下级NAT装置a404按照该命令,对s_pr号端口进行端口映射设定(S1003、S1004及S1005)。以后,在数据包从WAN侧到达了目的地址为下级NAT装置a404的WAN侧IP地址的“ 192. 168. 10. 2”的s_pr号端口的情况下,下级NAT装置a404通过将该数据包的目的地址改写为终端装置a405的IP地址“ 192. 168. 11.2”的s_pr端口 ,从而将该数据包转发到到终端装置a405。另外,在向终端装置a405的转发数据包时,作为目的地端口可以指定s_pr以外的端口。接着,从终端装置a405的NAT穿越信息通知部612,对外部服务器401通知NAT穿越信息(S1006)。具体地说进行以下的处理。即,NAT穿越信息通知部612将发送发送源IP地址和发送源端口号分别为“192. 168. 11. 2”和“s_pr”的通知委托数据包发送到外部服务器401的目的地址。是该通知委托数据包的目的地IP地址,是“10. 0.0. 1”,目的地址端口号由外部服务器401指定的任意的端口号。这种情况下,该通知委托数据包的、在下级NAT装置a404的地址变换后的发送源IP地址和发送源端口号分别成为“192. 168. 10. 2”和“s_pr” (S1007)。并且,在上级NAT装置a403也进行地址变换(S1008)。此时,变换后的发送源IP地址是“10. 0. 0. 2”。还有,此时的变换后的发送源端口作为s" _pr端口。送到外部服务器401的通知委托数据包的发送源IP地址和发送源端口号分别是由上级NAT装置a403的地址变换后的“ 10. 0. 0. 2”和“s" _pr”。这些信息是作为NAT穿越信息而保存在外部服务器401内(S1009)。另外,此时,在从终端装置a405所发送的通知委托数据包内,也可以包含成为终端装置a405的通信对方的终端装置b408标识符或ID等来进行发送。结束了 S1009处理的外部服务器401对成为终端装置a405通信对方的终端装置b408通知NAT穿越信息(S1010及SlOlI)。此时被通知的信息是作为上级NAT装置a403的WAN侧IP地址的“ 10. 0. 0. 2”和由上级NAT装置a403地址变换后的端口号“s" _pr”,但也可以包含此外的信息。终端装置b408在SlOll使用由外部服务器401通知的NAT穿越信息,进行NAT穿越来访问终端装置a405 (S1012)。此时的通信数据包的目的地IP地址和目的地址端口号分别是在上级NAT装置a403的WAN侧IP地址“ 10. 0. 0. 2”和在终端装置a405与外部服务器401之间通信中由上级NAT装置a403进行的地址变换后的端口号“s" _pr ”。上级NAT装置a403接收该通信数据包时,将其目的IP地址和目的地址端口号分别改写为“192. 168. 10. 2”和“s_pr”,并转发到下级NAT装置a404 (S1013)。这种情况下,下级NAT装置a404接收将自身的WAN侧IP地址、和在S1004及S1005进行了端口映射设定的s_pr端口作为目的地址的通信数据包。因此,下级NAT装置a404将该通信数据包的目的地IP地址和目的地址端口号分别改写为该终端装置a405的IP地址 “192. 168. 11. 2” 和 “s_pr”,并向终端装置 a405 转发(S1014)。
这样,终端装置a405接收来自终端装置b408的完成NAT穿越的通信数据包(S1015)。终端装置a405对在S1015接收的通信数据包进行响应。由此,从终端装置a405向终端装置b408的NAT穿越被完成,P2P通信被确立(S1016及S1017)。根据以上的处理的流程,在图10所示的网络结构中,下级NAT装置a404的端口分配分类是Address Sensitive型或者Port Sensitive型,并且能够实现端口号发行规则作为Port Reuse型的情况的NAT穿越。具体地说,从终端装置b408向终端装置a405通信数 据包到达由下级NAT装置a404所设置的用于NAT穿越而设定的端口。由此,该通信数据包通过下级NAT装置a404到达终端装置a405。即,进行从终端装置b408向终端装置a405通信的NAT穿越。另外,在下级NAT装置a404预测接下来所使用的端口号,并将所预测的端口号作为用于NAT穿越的端口来设定。因此,使用与从终端装置b408向终端装置a405的通信数据包相同的路径(端口号),向上级NAT装置b406以及下级NAT装置b407发送从终端装置a405向终端装置b408通信数据包。因此,该通信数据包未被所述两个NAT装置过滤。S卩,能够完成从终端装置a405在向终端装置b408通信的NAT穿越,并能够实现从终端装置a405向终端装置b408的通信。(实施方式2的具体例子2Sequential型)终端装置a405的端口号发行规则确定部610确定下级NAT装置a404的端口号发行规则是Sequential型之后,NAT穿越用端口决定部613对下级NAT装置a404决定NAT穿越用端口映射设定的端口号(S1002 )。在此,下级NAT装置a404为Sequential型时的应该端口映射设定的端口号是在下级NAT装置a404接下来的地址变换时被分配的端口号,以如下的方式算出。例如,在将S802 S812进行多次的情况下,最后得到的判断数据包的发送源端口号为“s' (3)”的情况下,应进行端口映射设定的端口号是“s' (3)+ (s' (3) - s/ (2))”。在此,为了便于以后的说明,在S1006发送NAT穿越信息时,终端装置a405将作为通知委托数据包的的发送源地址使用的发送源端口号设为“s_se”,将作为NAT穿越用进行端口映射设定的端口号设为s' _se。另外,是s' _se=s/ (3)+ Cs' (3) — s' (2))。这种情况下,终端装置a405的NAT穿越用端口映射命令部611使用由S1002所决定的NAT穿越用的端口号“s' _se”,通过UPnP的I⑶等对下级NAT装置a404进行端口映射设定(S1003、S1004 及 S1005)。以后,在数据包从WAN侧到达了目的地址为下级NAT装置a404的WAN侧IP地址的“192. 168. 10. 2”的s' _se号端口的情况下,下级NAT装置a404通过将该数据包的目的地址改写为终端装置a405的IP地址“192. 168. 11. 2”的s_se号端口,从而将该数据包转发到到终端装置a405。在向终端装置a405转发数据包时,作为目的地端口也可以指定s_se以外的端口。接着,从终端装置a405的NAT穿越信息通知部612向外部服务器401通知NAT穿越信息(S1006)。具体地说进行以下的处理。即,NAT穿越信息通知部612向目的地址外部服务器401发送将发送源IP地址和发送源端口号分别设为“192. 168. 11. 2”和“s_se”的通知委托数据包。该通知委托数据包的目的地IP地址是“10. 0. 0. 1”,目的地址端口号是外部服务器401指定的任意的端口号。这种情况下,该通知委托数据包的、在下级NAT装置a404的地址变换后的发送源IP地址和发送源端口号分别成为“192. 168. 10. 2”和“s' _se”(S1007)。并且,在上级NAT装置a403也进行地址变换(S1008)。此时的变换后的发送源IP地址是“10. 0. 0. 2”。另外,将此时的变换后的发送源端
口设为s" _se端口。送到外部服务器401的通知委托数据包的发送源IP地址和发送源端口号分别是由上级NAT装置a403的地址变换得到的“10. 0. 0. 2”和“s" _se”。这些的信息是作为NAT穿越信息而被保存在外部服务器401 (S1009)o另外,此时,在从终端装置a405所发送的通知委托数据包内,也可以包含成为终端装置a405的通信对方的终端装置b408标识符或ID等来进行发送。结束了 S1009处理的外部服务器401向对成为终端装置a405通信对方的终端装置b408通知NAT穿越信息(S1010及SlOlI)。此时被通知的信息是作为上级NAT装置a403的WAN侧IP地址的“ 10. 0. 0. 2”和由上级NAT装置a403地址变换后的端口号“s" _se”,但也可以包含此外的信息。终端装置b408在SlOll使用由外部服务器401通知的NAT穿越信息,进行NAT穿越来访问终端装置a405 (S1012)。此时的通信数据包的目的地IP地址和目的地址端口号分别是在SlOll得到的NAT穿越信息所示出的、上级NAT装置a403的WAN侧IP地址“ 10. 0. 0. 2”和在终端装置a405与外部服务器401之间通信中由上级NAT装置a403进行的地址变换后的端口号“s" _se”。上级NAT装置a403接收该通信数据包时,将其目的IP地址和目的地址端口号分别改写为“192. 168. 10. 2”和“s' _se”,并向下级NAT装置a404转发(S1013)。这种情况下,下级NAT装置a404接收将自身的WAN侧IP地址、和在S1004及S1005进行端口映射设定的s' _se端口作为目的地址的通信数据包。因此,下级NAT装置a404将该通信数据包的目的地IP地址和目的地址端口号分别改写为该终端装置a405的IP地址 “192. 168. 11. 2” 和 “s_se”,并向终端装置 a405 转发(S1014)。这样,终端装置a405接收来自终端装置b408的完成NAT穿越的通信数据包(S1015)。终端装置a405对在1015接收的通信数据包进行响应。由此,从终端装置a405向终端装置b408的NAT穿越被完成,P2P通信被确立(S1016及S1017)。根据以上的处理的流程,在图10所示的网络结构中,下级NAT装置a404的端口分配分类是Address Sensitive型或者Port Sensitive型,并且能够实现端口号发行规则作为Sequential型的情况的NAT穿越。具体地说,从终端装置b408向终端装置a405通信数据包到达由下级NAT装置a404所设置的用于NAT穿越而设定的端口。由此,该通信数据包通过下级NAT装置a404到达终端装置a405。即,进行从终端装置b408向终端装置a405通信的NAT穿越。另外,在下级NAT装置a404预测接下来所使用的端口号,并将所预测的端口号设定为用于NAT穿越的端口。因此,使用从终端装置b408向终端装置a405的通信数据包相同的路径(端口号),向上级NAT装置b406以及下级NAT装置b407发送从终端装置a405向、终端装置b408通信数据包。因此,该通信数据包未被所述两个NAT装置过滤。S卩,能够完成从终端装置a405在向终端装置b408通信的NAT穿越,并能够实现从终端装置a405向终端装置b408通信。以上,对于本发明的通信装置及通信方法,根据实施方式进行了说明,但本发明并不限于该实施方式。在不超出本发明的主旨的范围内,本领域技术人员所能够想到的将各种变形以该实施例来执行的方式,以及对不同的实施例中的构成要素进行的组合而构成的实施方式均包括在本发明的范围内。工业实用性根据本发明涉及的通信装置,即使在含有不具备UPnP的IGD等的端口映射设定功能的NAT装置为多级NAT环境下,也能够容易地确立在与其他通信装置之间的P2P通信。例如,在上下的2级的NAT环境中,如果下级NAT装置支持着UPnP的IGD等的端口映射设定功能,则能够不用外部服务器以外的其他终端就可确定下级NAT装置的端口号发行规则。其结果,在上述多级NAT环境进行P2P通信的时,即使在STUN系统NAT穿越方法无法适用的情况下,也能够进行NAT穿越。因此,本发明能够用于作为提高P2P通信时的连接性的技术
坐寸o符号说明101,104 通信设备102,205,208 NAT 装置103,402 互联网105地址转换表201 STUN 服务器202,207 ISP — NAT 装置206,209 终端装置302,312,322 上级 NAT 装置303,313,323 下级 NAT 装置400通信系统401外部服务器403 上级 NAT 装置 a404 下级 NAT 装置 a405终端装置a406 上级 NAT 装置 b407 下级 NAT 装置 b408终端装置b501 CPU 502主存储装置503通信控制装置504外部存储装置505输入装置506输出装置
507 总线601连接环境确认部602判断用端口映射命令部603判断数据包生成部604中继目的地址决定部605最终目的地址决定部606目的地址端口决定部
607发送源端口决定部608判断数据包发送部609判断数据包接收部分610端口号发行规则确定部611 NAT穿越用端口映射命令部612 NAT穿越信息通知部613 NAT穿越用端口决定部615端口号取得部
权利要求
1.一种通信装置,经由连接于互联网的上级网络地址变换装置、和连接于所述上级网络地址变换装置的下级网络地址变换装置,与连接于所述互联网的服务器装置进行通信,该通信装置具有 连接环境确认部,收集表示所述上级网络地址变换装置的LAN侧IP地址的信息以及表示所述下级网络地址变换装置的WAN侧IP地址的信息; 判断用端口映射命令部,对所述下级网络地址变换装置进行端口映射命令,该端口映射命令用于使到达了所述下级网络地址变换装置的规定的端口号的数据包转发到所述通信装置; 判断数据包生成部,生成被进行了源路由选择设定的判断数据包; 判断数据包发送部,发送由所述判断数据包生成部所生成的判断数据包; 判断数据包接收部,接收由所述判断数据包发送部发送的经由所述上级网络地址变换装置及所述下级网络地址变换装置而到达所述通信装置的所述判断数据包;以及 端口号取得部,取得由所述判断数据包接收部所接收的所述判断数据包所表示的发送源端口号、即所述下级网络地址变换装置的WAN侧端口号, 所述判断数据包生成部具有 中继目的地址决定部,将所述连接环境确认部收集的、上级网络地址变换装置的LAN侧IP地址决定为所述判断数据包的中继目的地址; 最终目的地址决定部,将所述连接环境确认部收集的、所述下级网络地址变换装置的WAN侧IP地址决定为所述判断数据包的最终目的地址;以及 目的地址端口决定部,将与用于所述端口映射命令的所述规定的端口号相同的端口号决定为所述判断数据包的目的地址端口号。
2.如权利要求I所述的通信装置, 所述通信装置还具有网络地址变换穿越信息通知部,通过使用与由所述判断数据包生成部所生成的判断数据包的发送源端口号相同的发送源端口号,向所述服务器装置发送通知委托数据包,从而使所述服务器装置对与所述服务器装置通信的其他通信装置进行网络地址变换穿越信息的通知, 所述网络地址变换穿越信息包含所述服务器装置接收了的所述通知委托数据包所示出的所述上级网络地址变换装置的WAN侧IP地址和WAN侧端口号。
3.如权利要求I所述的通信装置, 所述通信装置还具有端口号发行规则确定部,确定所述下级网络地址变换装置的、作为用于通信的WAN侧端口号的决定规则的端口号发行规则, 所述判断数据包发送部发送多个所述判断数据包, 所述判断数据包接收部接收由所述判断数据包发送部所发送的多个所述判断数据包,所述端口号取得部取得由所述判断数据包接收部所接收的多个所述判断数据包分别示出的所述下级网络地址变换装置的WAN侧端口号, 所述端口号发行规则确定部基于由所述端口号取得部所取得的多个WAN侧端口号,确定所述端口号发行规则。
4.如权利要求3所述的通信装置, 所述通信装置还具有网络地址变换穿越用端口决定部,(i)将使用由所述端口号发行规则确定部所确定的端口号发行规则而确定的、用于所述下级网络地址变换装置对所述通信装置接着所发送了的数据包进行转发的WAN侧端口号决定为网络地址变换穿越用端口号,并且,(ii)决定与所述网络地址变换穿越用端口号对应的、通知委托数据包的发送源端口号; 网络地址变换穿越用端口映射命令部,对所述下级网络地址变换装置进行端口映射命令,该端口映射命令用于使到达了由所述网络地址变换穿越用端口决定部所决定的网络地址变换穿越用端口号的数据包转发到所述通信装置;以及 网络地址变换穿越信息通知部,通过使用由所述网络地址变换穿越用端口决定部所决定的发送源端口号对所述服务器装置发送所述通知委托数据包,从而使所述服务器装置对 与所述服务器装置通信的其他通信装置进行网络地址变换穿越信息的通知, 所述网络地址变换穿越信息包含所述服务器装置接收了的所述通知委托数据包所示出的所述上级网络地址变换装置的WAN侧IP地址和WAN侧端口号。
5.如权利要求3或权利要求4所述的通信装置, 所述判断数据包发送部发送发送源端口号互不相同的多个所述判断数据包, 所述端口号发行规则确定部,根据如下条件确定所述端口号发行规则(a)对于多个所述判断数据包的每一个,在由所述判断数据包发送部发送时的发送源端口号和由所述端口号取得部所取得的WAN侧端口号是否一致;或(b)所述端口号取得部顺次取得了的多个WAN侧端口号中的、接连而被取得的两个WAN侧端口号间的差是否固定。
6.一种通信方法,是通信装置所执行的通信方法,该通信装置经由连接于互联网的上级网络地址变换装置、和连接于所述上级网络地址变换装置的下级网络地址变换装置,从而与连接于所述互联网的服务器装置进行通信,该通信方法具有 连接环境确认步骤,收集表示所述上级网络地址变换装置的LAN侧IP地址的信息以及表示所述下级网络地址变换装置的WAN侧IP地址的信息; 判断用端口映射命令步骤,对所述下级网络地址变换装置进行端口映射命令,该端口映射命令用于使到达了所述下级网络地址变换装置的规定的端口号的数据包转发到所述通信装置; 判断数据包生成步骤,生成被进行了源路由选择设定的判断数据包; 判断数据包发送步骤,发送在所述判断数据包生成步骤所生成的判断数据包, 判断数据包接收步骤,接收由所述判断数据包发送步骤所发送、经过所述上级网络地址变换装置及所述下级网络地址变换装置、到达所述通信装置的所述判断数据包;以及端口号取得步骤,取得在所述判断数据包接收步骤所接收的所述判断数据包所示出的发送源端口号、即取得所述下级网络地址变换装置的WAN侧端口号, 所述判断数据包生成步骤具有 中继目的地址决定步骤,将在所述连接环境确认步骤所收集的、上级网络地址变换装置的LAN侧IP地址决定为所述判断数据包的中继目的地址; 最终目的地址决定步骤,将在所述连接环境确认步骤所收集的、所述下级网络地址变换装置的WAN侧IP地址决定为所述判断数据包的最终目的地址;以及 目的地址端口决定步骤,将与用于所述端口映射命令的所述规定的端口号相同的端口号决定为所述判断数据包的目的地址端口号。
7.一种程序,用于经由连接于互联网的上级网络地址变换装置、和连接于所述上级网络地址变换装置的下级网络地址变换装置,从而与连接于所述互联网的服务器装置进行通信,该程序用于使计算机执行以下步骤 连接环境确认步骤,收集表示所述上级网络地址变换装置的LAN侧IP地址的信息以及表示所述下级网络地址变换装置的WAN 侧IP地址的信息; 判断用端口映射命令步骤,对所述下级网络地址变换装置进行端口映射命令,该端口映射命令用于使到达了所述下级网络地址变换装置的规定的端口号的数据包转发到所述通信装置; 判断数据包生成步骤,生成被进行了源路由选择设定的判断数据包; 判断数据包发送步骤,发送在所述判断数据包生成步骤所生成的判断数据包; 判断数据包接收步骤,接收在所述判断数据包发送步骤所发送、经过所述上级网络地址变换装置及所述下级网络地址变换装置、到达所述通信装置的所述判断数据包;以及端口号取得步骤,取得在所述判断数据包接收步骤所接收的所述判断数据包所示出的发送源端口号、即所述下级网络地址变换装置的WAN侧端口号, 所述判断数据包生成步骤具有 中继目的地址决定步骤,将在所述连接环境确认步骤所收集的、上级网络地址变换装置的LAN侧IP地址决定为所述判断数据包的中继目的地址; 最终目的地址决定步骤,将在所述连接环境确认步骤所收集的、所述下级网络地址变换装置的WAN侧IP地址决定为所述判断数据包的最终目的地址;以及 目的地址端口决定步骤,将与用于所述端口映射命令的所述规定的端口号相同的端口号决定为所述判断数据包的目的地址端口号。
8.一种集成电路,经由连接于互联网的上级网络地址变换装置、和连接于所述上级网络地址变换装置的下级网络地址变换装置,从而与连接于所述互联网的服务器装置进行通信,该集成电路具有 连接环境确认部,收集表示所述上级网络地址变换装置的LAN侧IP地址的信息以及表示所述下级网络地址变换装置的WAN侧IP地址的信息; 判断用端口映射命令部,对所述下级网络地址变换装置进行端口映射命令,该端口映射命令用于使到达了所述下级网络地址变换装置的规定的端口号的数据包转发到所述通信装置; 判断数据包生成部,生成被进行了源路由选择设定的判断数据包; 判断数据包发送部,发送由所述判断数据包生成部所生成的判断数据包; 判断数据包接收部,接收由所述判断数据包发送部发送的经由所述上级网络地址变换装置及所述下级网络地址变换装置而到达所述通信装置的所述判断数据包;以及 端口号取得部,取得由所述判断数据包接收部所接收的所述判断数据包所示出的发送源端口号、即取得所述下级网络地址变换装置的WAN侧端口号, 所述判断数据包生成部具有 中继目的地址决定部,将所述连接环境确认部收集的、上级网络地址变换装置的LAN侧IP地址决定为所述判断数据包的中继目的地址; 最终目的地址决定部,将所述连接环境确认部收集的、所述下级网络地址变换装置的WAN侧IP地址决定为所述判断数据包的最终目的地址;以及 目的地址端口决定部,将与用于所述端口映射命令的所述规定的端口号相同的端口号决定为所述判断数据包的目 的地址端口号。
全文摘要
终端装置a(405),具有连接环境确认部(601);判断用端口映射命令部(602),对下级NAT装置a(404)进行端口映射命令;判断数据包生成部(603),生成被进行了源路由选择设定的判断数据包;判断数据包发送部(608),发送判断数据包;判断数据包接收部(609),接收由判断数据包发送部(608)所发送、经由上级NAT装置a(403)以及下级NAT装置a(404)、到达终端装置a(405)的判断数据包;以及端口号取得部(615),取得所接收的判断数据包所示出的下级NAT装置a(404)的WAN侧的端口号。
文档编号H04L12/46GK102652413SQ20118000483
公开日2012年8月29日 申请日期2011年9月14日 优先权日2010年10月7日
发明者布施优, 松下阳介, 高岸智 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1