通信系统、信息处理装置、服务器和通信方法

文档序号:7653198阅读:108来源:国知局
专利名称:通信系统、信息处理装置、服务器和通信方法
技术领域
本发明涉及建立多个信息处理装置之间的通信的通信系统等。
背景技术
首先,对NAT(Network Address Translation,网络地址转换)的分类进行说明。在NAT中,存在发送端口分配规则和接收过滤规则,根据其组合进行NAT的分类。在发送端口分配规则中,具有Cone类型,不依赖于分组(packet)的发送目的地(IP地址、端口),而只要NAT的本地侧(例如,LAN侧)的信息处理装置的端口与IP地址相同,则分配给NAT的全局侧(例如,因特网等的WAN侧)的端口就相同;地址敏感(Address Sensitive)类型,按照每个分组的发送目的地址分配新端口;以及端口敏感(Port Sensitive)类型,按照每个分组的发送目的端口分配新端口。在对从NAT的本地侧发送了分组的端口判断接收来自全局侧的分组的可能性的接收过滤规则中,具有仅从由其端口发送了分组的地址接收分组的地址敏感(Address Sensitive)过滤;仅从由其端口发送了分组的端口接收分组的端口敏感(Port Sensitive)过滤;和不存在过滤的无过滤。通过组合这些发送端口分配规则与接收过滤规则,可以将NAT分为以下9种类型(参见图32)。
完全Cone(Full Cone)NAT(以下,表示为F NAT)发送端口分配规则属于Cone类型,接收端口过滤规则属于无过滤。
受限Cone(Restricted Cone)NAT(以下,表示为R NAT)发送端口分配规则属于Cone类型,接收端口过滤规则属于地址敏感过滤。
端口受限Cone(Port Restricted Cone)NAT(以下,表示为PR NAT)发送端口分配规则属于Cone类型,接收端口过滤规则属于端口敏感过滤。
对称(Symmetric)(a)NAT(以下,表示为Sa NAT)发送端口分配规则属于地址敏感类型,接收端口过滤规则属于无过滤。
地址敏感对称(Address Sensitive Symmetric)NAT(以下,表示为AS NAT或Sb NAT)发送端口分配规则属于地址敏感类型,接收端口过滤规则属于地址敏感过滤。
对称(c)NAT(以下,表示为Sc NAT)发送端口分配规则属于地址敏感类型,接收端口过滤规则属于端口敏感过滤。
对称(d)NAT(以下,表示为Sd NAT)发送端口分配规则属于端口敏感类型,接收端口过滤规则属于无过滤。
对称(e)NAT(以下,表示为Se NAT)发送端口分配规则属于端口敏感类型,接收端口过滤规则属于地址敏感过滤。
端口敏感对称(Port Sensitive Symmetric)NAT(以下,表示为PS NAT或Sf NAT)发送端口分配规则属于端口敏感类型,接收端口过滤规则属于端口敏感过滤。
在使用这样的NAT的通信中,考虑有图33所示的在PC1与PC2之间不通过服务器建立通信的情况。
上述技术内容,例如记载在D.Yon的“Connection-Oriented MediaTransport in SDP”([Online],2003年3月,[2004年3月25日检索],因特网<URLhttp://www.ietf.org/internet-drafts/draft-ietf-mmusic-sdp-comedia-05.txt>)(以下,称为“非专利文献1”)或者Y.Takeda的“Symmetric NATTraversal using STUN”([Online],2003年6月,[2004年3月25日检索],因特网<URLhttp://www.cs.cornell.edu/projects/stunt/draft-takeda-symmetric-nat-traversal-00.txt>)(以下,称为“非专利文献2”)中。此外,还记载在J.Rosenberg、J.Weinberger、C.Huitema、R.Mahy的“STUN-Simple Traversal of USer Datagram Protocol(UDP)ThroughNetwork Address Translators(NATs)”([Online],2003年3月,NetworkWorking Group Request for Comments3489,[2004年3月24日检索],因特网<URLhttp://www.ietf.org/rfc/rfc3489.txt>)(以下,称为“非专利文献3”)中。
但是,即使在这种情况下,也有可能存在不能建立通信的NAT的组合。在图33中,在从作为连接到NAT1的局域侧的信息处理装置的PC1对PC2进行通信时,将NAT1称为发送侧的NAT,将NAT2称为接收侧的NAT。这样,在PC1和PC2之间能够建立通信的NAT的组合如图34所示。
此处,图34中的“*1”的连接是以往公知的,“*2”的连接记载在上述非专利文献1中,“*3”的连接记载在上述非专利文献2中。并且,即使是能够建立通信的NAT的组合,在“*3”的连接中,也存在只要无法确切得知NAT的端口宽度、且无法确切得知接收侧的NAT的最新端口的位置,就不能建立通信,从而存在不确定性的问题。
此外,在图34的组合中,虽然不包含使用Sa NAT或Sc~Se NAT的情况,但是,即使在使用这样的NAT的情况下,也期望能够建立通过NAT的点对点(Peer to Peer)的通信(例如,图33中的PC1与PC2之间的通信)。
另外,作为建立信息处理装置之间的通信的前提,期望确切地检测从一方信息处理装置发送的气泡分组(bubble packet)(为了在NAT中保留发送履历而发送的分组)所通过的NAT的端口的位置。

发明内容
本发明的目的之一旨在提供能够更可靠地建立通过控制通信的通信控制装置进行通信的多个信息处理装置间的通信的通信系统等。
本发明的其他目的旨在提供能够检测从信息处理装置发送的气泡分组通过的通信控制装置的端口的位置的通信系统等。
为了实现上述目的,本发明的第1信息处理装置是通过控制第1信息处理装置的通信的第1通信控制装置和控制第2信息处理装置的通信的第2通信控制装置与上述第2信息处理装置通信的上述第1信息处理装置,具备基准端口接收部,其接收表示作为上述第2通信控制装置中的端口的基准端口的位置的基准端口信息,该端口成为为了在上述第1通信控制装置中保留发送履历而发送的气泡分组的发送对象的基准;气泡分组发送部,其根据上述基准端口信息,通过上述第1通信控制装置向上述第2通信控制装置发送上述气泡分组;检测用分组发送部,为了检测在上述气泡分组的发送中使用的、作为上述第1通信控制装置的端口的气泡分组发送端口的位置,其发送端口检测用分组;以及回信分组接收部,其接收从上述第2信息处理装置通过上述第2通信控制装置对上述气泡分组发送端口发送的回信分组。
利用这样的结构,能够进行基于基准端口信息的气泡分组的发送和向使用端口检测用分组检测的气泡分组发送端口发送的回信分组的接收,从而能够建立第1信息处理装置与第2信息处理装置间的通信。
另外,本发明的第1信息处理装置是通过控制第1信息处理装置的通信的第1通信控制装置和控制第2信息处理装置的通信的第2通信控制装置与上述第2信息处理装置通信的上述第1信息处理装置,其中,从上述第2信息处理装置通过上述第2通信控制装置向上述第1通信控制装置发送用于在该第2通信控制装置中保留发送履历的气泡分组,该第1信息处理装置具备基准端口检测用分组发送部,其发送用于检测作为上述第1通信控制装置中的端口的基准端口的位置的基准端口检测用分组,该端口成为上述气泡分组的发送对象的基准;气泡分组发送端口接收部,其接收表示在从上述第2信息处理装置的上述气泡分组的发送中使用的、作为上述第2通信控制装置的端口的气泡分组发送端口的位置的气泡分组发送端口信息;以及回信分组发送部,其对上述气泡分组发送端口信息表示的上述气泡分组发送端口发送回信分组。
利用这样的结构,能够对通过气泡分组的发送而保留发送履历的气泡分组发送端口发送回信分组,从而能够建立第1信息处理装置与第2信息处理装置间的通信。
另外,本发明的服务器是使第1信息处理装置和第2信息处理装置通过控制上述第1信息处理装置的通信的第1通信控制装置和控制上述第2信息处理装置的通信的第2通信控制装置进行的通信建立的服务器,具备基准端口检测部,为了检测作为上述第2通信控制装置中的端口的基准端口的位置,其接收从上述第2信息处理装置通过上述第2通信控制装置发送来的基准端口检测用分组,并根据该基准端口检测用分组检测上述基准端口的位置,其中该端口成为为了在上述第1通信控制装置中保留发送履历而由上述第1信息处理装置发送的气泡分组的发送对象的基准;基准端口发送部,其向上述第1信息处理装置发送表示上述基准端口检测部检测的上述基准端口的位置的基准端口信息;气泡分组发送端口检测部,为了检测在从上述第1信息处理装置向上述第2通信控制装置的上述气泡分组的发送中使用的、作为上述第1通信控制装置中的端口的气泡分组发送端口的位置,其接收从上述第1信息处理装置发送的端口检测用分组,并根据上述端口检测用分组检测上述气泡分组发送端口的位置;以及气泡分组发送端口发送部,其向上述第2信息处理装置发送表示上述气泡分组发送端口检测部检测的上述气泡分组发送端口的位置的气泡分组发送端口信息。
利用这样的结构,能够检测第2通信控制装置中的基准端口的位置并通知第1信息处理装置,另外,能够检测气泡分组发送端口的位置并通知第2信息处理装置。
另外,本发明的服务器是使第1信息处理装置和第2信息处理装置通过控制上述第1信息处理装置的通信的第1通信控制装置和控制上述第2信息处理装置的通信的第2通信控制装置进行的通信建立的服务器,具备基准端口检测部,为了检测作为上述第2通信控制装置中的端口的基准端口的位置,其接收从上述第2信息处理装置通过上述第2通信控制装置发送来的基准端口检测用分组,并根据该基准端口检测用分组检测上述基准端口的位置,其中该端口成为为了在上述第1通信控制装置中保留发送履历而由上述第1信息处理装置发送的气泡分组的发送对象的基准;基准端口发送部,其向上述第1信息处理装置发送表示上述基准端口检测部检测的上述基准端口的位置的基准端口信息;检测用端口检测部,为了检测在从上述第1信息处理装置向上述第2通信控制装置的上述气泡分组的发送中使用的、作为上述第1通信控制装置中的端口的气泡分组发送端口的位置,其接收从上述第1信息处理装置发送的端口检测用分组,并根据该端口检测用分组检测上述端口检测用分组通过的上述第1通信控制装置的端口的位置;以及检测用端口信息发送部,其向上述第1信息处理装置发送表示上述检测用端口检测部检测的端口的位置的检测用端口信息。
利用这样的结构,能够检测第2通信控制装置中的基准端口的位置并通知第1信息处理装置,另外,能够检测端口检测用分组通过的第1通信控制装置的位置并通知第1信息处理装置。
另外,本发明的通信系统是具备信息处理装置、控制上述信息处理装置的通信的通信控制装置和服务器的通信系统,具备气泡分组发送部,通过上述通信控制装置发送用于在上述通信控制装置中保留发送履历的气泡分组;以及检测用分组发送部,在上述气泡分组发送部发送上述气泡分组的前后,向上述服务器发送为了检测在上述气泡分组的发送中使用的、作为上述通信控制装置的端口的气泡分组发送端口的位置而使用的端口检测用分组。
利用这样的结构,能够根据从信息处理装置发送来的端口检测用分组,检测气泡分组发送端口的位置。该检测可以在服务器中进行,也可以在信息处理装置中进行,或者也可以在其他装置中进行。通过使用此检测的气泡分组发送端口的位置,从其他装置向该气泡分组发送端口发送分组,而由信息处理装置接收该分组。
一种通信系统,具备第1信息处理装置、第2信息处理装置、控制上述第1信息处理装置的通信的第1通信控制装置、控制上述第2信息处理装置的通信的第2通信控制装置、和使上述第1信息处理装置与上述第2信息处理装置间的通信建立的服务器,其中,上述第1信息处理装置具备基准端口接收部,其接收表示作为上述第2通信控制装置中的端口的基准端口的位置的基准端口信息,该端口成为为了在上述第1通信控制装置中保留发送履历而发送的气泡分组的发送对象的基准;气泡分组发送部,其根据上述基准端口信息,通过上述第1通信控制装置向上述第2通信控制装置发送上述气泡分组;检测用分组发送部,为了检测在上述气泡分组的发送中使用的、作为上述第1通信控制装置的端口的气泡分组发送端口的位置,其向上述服务器发送端口检测用分组;以及回信分组接收部,其接收从上述第2信息处理装置通过上述第2通信控制装置对上述气泡分组发送端口发送的回信分组;上述第2信息处理装置具备基准端口检测用分组发送部,其发送用于检测上述基准端口的位置的基准端口检测用分组;气泡分组发送端口接收部,其接收表示上述气泡分组发送端口的位置的气泡分组发送端口信息;以及回信分组发送部,其对上述气泡分组发送端口信息表示的上述气泡分组发送端口发送回信分组;上述服务器具备基准端口检测部,其接收从上述第2信息处理装置发送的上述基准端口检测用分组,并根据该基准端口检测用分组检测上述基准端口的位置;基准端口发送部,其向上述第1信息处理装置发送表示上述基准端口检测部检测的上述基准端口的位置的基准端口信息;气泡分组发送端口检测部,其接收从上述第1信息处理装置发送的上述端口检测用分组,并根据上述端口检测用分组检测上述气泡分组发送端口的位置;以及气泡分组发送端口发送部,其向上述第2信息处理装置发送上述气泡分组发送端口信息。
上述服务器进一步具备再发送指示发送部,其在上述气泡分组发送端口检测部不能检测上述气泡分组发送端口的位置时,向上述第1信息处理装置发送作为表示再次发送上述气泡分组和上述端口检测用分组的指示的再发送指示;上述第1信息处理装置进一步具备再发送指示接收部,其接收从上述服务器发送的上述再发送指示;其中,上述检测用分组发送部,在上述再发送指示接收部接收到上述再发送指示时,再次向上述服务器发送上述端口检测用分组;上述气泡分组发送部,在上述再发送指示接收部接收到上述再发送指示时,再次向上述服务器发送上述气泡分组。
上述第1信息处理装置进一步具备再回信分组发送部,其在上述回信分组接收部接收到上述回信分组时,对在该回信分组的发送中使用的上述第2通信控制装置的端口发送再回信分组;上述第2信息处理装置进一步具备再回信分组接收部,其接收上述再回信分组。
一种第1信息处理装置,其通过控制该第1信息处理装置的通信的第1通信控制装置、和控制第2信息处理装置的通信的第2通信控制装置,与上述第2信息处理装置通信,该第1信息处理装置具备基准端口接收部,其接收表示作为上述第2通信控制装置中的端口的基准端口的位置的基准端口信息,该端口成为为了在上述第1通信控制装置中保留发送履历而发送的气泡分组的发送对象的基准;气泡分组发送部,其根据上述基准端口信息,通过上述第1通信控制装置向上述第2通信控制装置发送上述气泡分组;检测用分组发送部,为了检测在上述气泡分组的发送中使用的、作为上述第1通信控制装置的端口的气泡分组发送端口的位置,其发送端口检测用分组;以及回信分组接收部,其接收从上述第2信息处理装置通过上述第2通信控制装置对上述气泡分组发送端口发送的回信分组。
上述基准端口是在上述第2通信控制装置中分配的端口中、在从上述第2信息处理装置发送用于检测上述基准端口的位置的基准端口检测用分组的时刻最新的端口。
上述检测用分组发送部,在上述气泡分组发送部发送上述气泡分组的前后,发送上述端口检测用分组。
上述气泡分组和上述端口检测用分组使用上述第1通信控制装置中的不同端口进行发送。
上述气泡分组和上述端口检测用分组使用上述第1信息处理装置中新分配的端口进行发送。
上述的第1信息处理装置,进一步具备再发送指示接收部,其接收表示再次发送上述气泡分组和上述端口检测用分组的再发送指示;其中,上述检测用分组发送部,在上述再发送指示接收部接收到上述再发送指示时,再次发送上述端口检测用分组;上述气泡分组发送部,在上述再发送指示接收部接收到上述再发送指示时,再次发送上述气泡分组。
上述的第1信息处理装置,进一步具备端口宽度检测用分组发送部,其通过上述第1通信控制装置发送用于检测上述第1通信控制装置中的端口宽度的端口宽度检测用分组。
上述第2通信控制装置中的作为发送上述气泡分组的对象端口的气泡分组发送对象端口是在从上述基准端口开始进行指定的端口分配后分配的端口。
上述的第1信息处理装置,进一步具备端口宽度接收部,其接收作为表示上述第2通信控制装置中的端口宽度的信息的端口宽度信息;其中,上述气泡分组发送部对与上述基准端口的端口间隔为上述端口宽度信息表示的上述端口宽度的M倍(M为大于等于1的整数)的上述气泡分组发送对象端口发送上述气泡分组。
上述的第1信息处理装置,进一步具备再回信分组发送部,其在上述回信分组接收部接收到上述回信分组时,对在该回信分组的发送中使用的上述第2通信控制装置的端口发送再回信分组。
一种第1信息处理装置,其通过控制该第1信息处理装置的通信的第1通信控制装置、和控制第2信息处理装置的通信的第2通信控制装置,与上述第2信息处理装置通信,其中,从上述第2信息处理装置通过上述第2通信控制装置向上述第1通信控制装置发送用于在该第2通信控制装置中保留发送履历的气泡分组,上述第1信息处理装置具备基准端口检测用分组发送部,其发送用于检测作为上述第1通信控制装置中的端口的基准端口的位置的基准端口检测用分组,该端口成为上述气泡分组的发送对象的基准;气泡分组发送端口接收部,其接收表示在从上述第2信息处理装置的上述气泡分组的发送中使用的、作为上述第2通信控制装置的端口的气泡分组发送端口的位置的气泡分组发送端口信息;以及回信分组发送部,其对上述气泡分组发送端口信息表示的上述气泡分组发送端口发送回信分组。
上述回信分组发送部使用上述第1通信控制装置的不同的N个(N是大于等于2的整数)端口发送上述回信分组。
上述N个端口是在上述回信分组发送时在上述第1通信控制装置中新分配的端口。
上述N大于等于上述第1通信控制装置中从上述基准端口到发送上述气泡分组的端口之中所能分配的端口的数量。
上述的第1信息处理装置,进一步具备再回信分组接收部,其接收从上述第2信息处理装置对在上述回信分组的发送中使用的上述第1通信控制装置的端口发送的再回信分组。
上述的第1信息处理装置,进一步具备端口宽度检测用分组发送部,其通过上述第1通信控制装置发送用于检测上述第1通信控制装置中的端口宽度的端口宽度检测用分组。
一种服务器,其使第1信息处理装置和第2信息处理装置通过控制该第1信息处理装置的通信的第1通信控制装置和控制该第2信息处理装置的通信的第2通信控制装置进行的通信建立,该服务器具备基准端口检测部,为了检测作为上述第2通信控制装置中的端口的基准端口的位置,其接收从上述第2信息处理装置通过上述第2通信控制装置发送来的基准端口检测用分组,并根据该基准端口检测用分组检测上述基准端口的位置,其中该端口成为为了在上述第1通信控制装置中保留发送履历而由上述第1信息处理装置发送的气泡分组的发送对象的基准;基准端口发送部,其向上述第1信息处理装置发送表示上述基准端口检测部检测的上述基准端口的位置的基准端口信息;气泡分组发送端口检测部,为了检测在从上述第1信息处理装置向上述第2通信控制装置的上述气泡分组的发送中使用的、作为上述第1通信控制装置中的端口的气泡分组发送端口的位置,其接收从上述第1信息处理装置发送的端口检测用分组,并根据上述端口检测用分组检测上述气泡分组发送端口的位置;以及气泡分组发送端口发送部,其向上述第2信息处理装置发送表示上述气泡分组发送端口检测部检测的上述气泡分组发送端口的位置的气泡分组发送端口信息。
上述的服务器,进一步具备再发送指示发送部,其在上述气泡分组发送端口检测部不能检测上述气泡分组发送端口的位置时,向上述第1信息处理装置发送作为表示再次发送上述气泡分组和上述端口检测用分组的指示的再发送指示。
上述气泡分组发送端口检测部接收在上述气泡分组发送的前后发送来的上述端口检测用分组,判断在该端口检测用分组的发送中使用的上述第1通信控制装置中的2个端口与上述气泡分组发送端口是否连续,且在判定连续时,检测夹在上述2个端口之间的端口的位置,作为上述气泡分组发送端口的位置。
在上述端口检测用分组的发送中使用的上述第1通信控制装置中的2个端口的间隔为上述第1通信控制装置中的端口宽度的2倍时,上述气泡分组发送端口检测部判定为是连续的。
上述的服务器,进一步具备第1端口宽度检测部,其接收从上述第1信息处理装置通过上述第1通信控制装置发送的第1端口宽度检测用分组,并根据该第1端口宽度检测用分组检测上述第1通信控制装置中的端口宽度;其中,上述气泡分组发送端口检测部使用上述第1端口宽度检测部检测的端口宽度进行上述判断。
上述的服务器,进一步具备第2端口宽度检测部,其接收从上述第2信息处理装置通过上述第2通信控制装置发送的第2端口宽度检测用分组,并根据该第2端口宽度检测用分组检测上述第2通信控制装置中的端口宽度;以及端口宽度发送部,其向上述第1信息处理装置发送作为表示上述第2端口宽度检测部检测的上述端口宽度的信息的端口宽度信息。
一种通信方法,是第1信息处理装置和第2信息处理装置通过控制该第1信息处理装置的通信的第1通信控制装置和控制该第2信息处理装置的通信的第2通信控制装置进行通信的通信方法,包括基准端口检测用分组发送步骤,上述第2信息处理装置通过上述第2通信控制装置发送用于检测作为上述第2通信控制装置中的端口的基准端口的位置,其中该端口成为为了在上述第1通信控制装置中保留发送履历而由上述第1信息处理装置发送的气泡分组的发送对象的基准;基准端口检测步骤,接收上述基准端口检测用分组,检测上述基准端口的位置;基准端口发送步骤,发送作为表示在上述基准端口检测步骤检测的上述基准端口的位置的信息的基准端口信息;基准端口接收步骤,接收上述基准端口信息;气泡分组发送步骤,上述第1信息处理装置,根据在上述基准端口接收步骤接收的基准端口信息,通过上述第1通信控制装置向上述第2通信控制装置发送上述气泡分组;气泡分组发送端口检测步骤,检测在上述气泡分组的发送中使用的、作为上述第1通信控制装置中的端口的气泡分组发送端口的位置;气泡分组发送端口发送步骤,发送表示在上述气泡分组发送端口检测步骤检测的上述气泡分组发送端口的位置的气泡分组发送端口信息;气泡分组发送端口接收步骤,接收上述气泡分组发送端口信息;以及回信步骤,从上述第2信息处理装置对在上述气泡分组发送端口接收步骤接收的气泡分组发送端口信息表示的气泡分组发送端口发送回信分组。
上述气泡分组发送端口检测步骤包括第1发送步骤,在发送上述气泡分组之前,上述第1信息处理装置通过上述第1通信控制装置发送用于确定上述气泡分组发送端口的第1端口检测用分组;第1检测步骤,接收上述第1端口检测用分组,并检测在上述第1端口检测用分组的发送中使用的、作为上述第1通信控制装置的端口的第1端口的位置;第2发送步骤,在发送上述气泡分组之后,上述第1信息处理装置通过上述第1通信控制装置发送用于确定上述气泡分组发送端口的第2端口检测用分组;第2检测步骤,接收上述第2端口检测用分组,并检测在上述第2端口检测用分组的发送中使用的、作为上述第1通信控制装置的端口的第2端口的位置;以及端口检测步骤,根据上述第1端口的位置和上述第2端口的位置,检测上述气泡分组发送端口的位置。
上述气泡分组发送端口检测步骤进一步包括判断步骤,判断在上述第1检测步骤和上述第2检测步骤位置检测的上述第1端口和上述第2端口与上述气泡分组发送端口是否连续;其中,在上述端口检测步骤中,在上述判断步骤判定为连续时,检测上述气泡分组发送端口的位置。
在上述判断步骤判定为不连续时,反复进行上述第1发送步骤、上述第1检测步骤、上述气泡分组发送步骤、上述第2发送步骤、上述第2检测步骤和上述判断步骤,直至在该判断步骤判定为连续时为止。
上述的通信方法,进一步包括第1地址获得步骤,上述第1信息处理装置获得上述第2通信控制装置的地址;其中,在上述气泡分组发送步骤中,对在上述第1地址获得步骤获得的地址发送上述气泡分组。
上述的通信方法,进一步包括第2地址获得步骤,上述第2信息处理装置获得上述第1通信控制装置的地址;其中,在上述回信步骤中,对在上述第2地址获得步骤获得的地址发送上述回信分组。
在通过上述回信步骤的上述回信分组的发送不能建立上述第1信息处理装置与上述第2信息处理装置之间的通信时,再次执行上述各步骤的处理。
上述的通信方法,进一步包括回信接收步骤,接收上述回信分组;以及再回信步骤,在上述回信接收步骤中接收到上述回信分组时,上述第1信息处理装置对在上述回信分组的发送中使用的上述第2通信控制装置的端口发送再回信分组。
在通过上述再回信步骤的上述再回信分组的发送不能建立上述第1信息处理装置与上述第2信息处理装置之间的通信时,再次执行上述各步骤的处理。
一种程序,用于使计算机执行第1信息处理装置中的处理,该第1信息处理装置通过控制第1信息处理装置的通信的第1通信控制装置和控制第2信息处理装置的通信的第2通信控制装置,与所述第2信息处理装置通信,该程序用于使计算机执行以下步骤基准端口接收步骤,接收表示作为上述第2通信控制装置中的端口的基准端口的位置的基准端口信息,该端口成为为了在上述第1通信控制装置中保留发送履历而发送的气泡分组的发送对象的基准;气泡分组发送步骤,根据上述基准端口信息,通过上述第1通信控制装置向上述第2通信控制装置发送上述气泡分组;检测用分组发送步骤,为了检测在上述气泡分组的发送中使用的、作为上述第1通信控制装置的端口的气泡分组发送端口的位置,发送端口检测用分组;以及回信分组接收步骤,接收从上述第2信息处理装置通过上述第2通信控制装置对上述气泡分组发送端口发送的回信分组。
上述基准端口是在上述第2通信控制装置中分配的端口中、在从上述第2信息处理装置发送用于检测上述基准端口的位置的基准端口检测用分组的时刻最新的端口。
在上述检测用分组发送步骤中,在上述气泡分组发送步骤发送气泡分组的前后,发送上述端口检测用分组。
上述气泡分组和上述端口检测用分组使用上述第1通信控制装置中的不同端口进行发送。
上述气泡分组和上述端口检测用分组使用上述第1信息处理装置中新分配的端口进行发送。
上述的程序,用于使计算机进一步执行再发送指示接收步骤,接收表示再次发送上述气泡分组和上述端口检测用分组的再发送指示;其中,在上述检测用分组发送步骤中,在上述再发送指示接收步骤接收到上述再发送指示时,再次发送上述端口检测用分组;在上述气泡分组发送步骤中,在上述再发送指示接收步骤接收到上述再发送指示时,再次发送上述气泡分组。
上述的程序,用于使计算机进一步执行端口宽度检测用分组发送步骤,通过上述第1通信控制装置发送用于检测上述第1通信控制装置中的端口宽度的端口宽度检测用分组。
上述第2通信控制装置中的作为发送上述气泡分组的对象端口的气泡分组发送对象端口是在从上述基准端口开始进行指定的端口分配后分配的端口。
上述的程序,用于使计算机进一步执行端口宽度接收步骤,接收作为表示上述第2通信控制装置中的端口宽度的信息的端口宽度信息;其中,在上述气泡分组发送步骤中,对与上述基准端口的端口间隔为上述端口宽度信息表示的上述端口宽度的M倍(M为大于等于1的整数)的上述气泡分组发送对象端口发送上述气泡分组。
上述的程序,用于使计算机进一步执行再回信分组发送步骤,在上述回信分组接收步骤接收到上述回信分组时,对在该回信分组的发送中使用的上述第2通信控制装置的端口发送再回信分组。
一种程序,用于使计算机执行第1信息处理装置中的处理,该第1信息处理装置通过控制所述第1信息处理装置的通信的第1通信控制装置和控制第2信息处理装置的通信的第2通信控制装置,与所述第2信息处理装置通信,其中,从上述第2信息处理装置通过上述第2通信控制装置向上述第1通信控制装置发送用于在该第2通信控制装置中保留发送履历的气泡分组,该程序用于使计算机执行以下步骤基准端口检测用分组发送步骤,发送用于检测作为上述第1通信控制装置中的端口的基准端口的位置的基准端口检测用分组,该端口成为上述气泡分组的发送对象的基准;气泡分组发送端口接收步骤,接收表示在从上述第2信息处理装置的上述气泡分组的发送中使用的、作为上述第2通信控制装置的端口的气泡分组发送端口的位置的气泡分组发送端口信息;以及回信分组发送步骤,对上述气泡分组发送端口信息表示的上述气泡分组发送端口发送回信分组。
在上述回信分组发送步骤,使用上述第1通信控制装置的不同的N个(N是大于等于2的整数)端口发送上述回信分组。
上述N个端口是在上述回信分组发送时在上述第1通信控制装置中新分配的端口。
上述N大于等于上述第1通信控制装置中从上述基准端口到发送上述气泡分组的端口之中所能分配的端口的数量。
上述的程序,用于使计算机进一步执行再回信分组接收步骤,接收从上述第2信息处理装置对在上述回信分组的发送中使用的上述第1通信控制装置的端口发送的再回信分组。
上述的程序,用于使计算机进一步执行端口宽度检测用分组发送步骤,通过上述第1通信控制装置发送用于检测上述第1通信控制装置中的端口宽度的端口宽度检测用分组。
一种程序,用于使计算机执行服务器中的处理,该服务器使第1信息处理装置和第2信息处理装置通过控制该第1信息处理装置的通信的第1通信控制装置和控制该第2信息处理装置的通信的第2通信控制装置进行的通信建立,该程序用于使计算机执行以下步骤基准端口检测步骤,为了检测作为上述第2通信控制装置中的端口的基准端口的位置,接收从上述第2信息处理装置通过上述第2通信控制装置发送来的基准端口检测用分组,并根据该基准端口检测用分组检测上述基准端口的位置,其中该端口成为为了在上述第1通信控制装置中保留发送履历而由上述第1信息处理装置发送的气泡分组的发送对象的基准;基准端口发送步骤,向上述第1信息处理装置发送表示在上述基准端口检测步骤检测的上述基准端口的位置的基准端口信息;气泡分组发送端口检测步骤,为了检测在从上述第1信息处理装置向上述第2通信控制装置的上述气泡分组的发送中使用的、作为上述第1通信控制装置中的端口的气泡分组发送端口的位置,接收从上述第1信息处理装置发送的端口检测用分组,并根据上述端口检测用分组检测上述气泡分组发送端口的位置;以及气泡分组发送端口发送步骤,向上述第2信息处理装置发送表示在上述气泡分组发送端口检测步骤检测的上述气泡分组发送端口的位置的气泡分组发送端口信息。
一种通信系统,具备第1信息处理装置、第2信息处理装置、控制上述第1信息处理装置的通信的第1通信控制装置、控制上述第2信息处理装置的通信的第2通信控制装置、和使上述第1信息处理装置与上述第2信息处理装置间的通信建立的服务器,其中,上述第1信息处理装置具备基准端口接收部,其接收表示作为上述第2通信控制装置中的端口的基准端口的位置的基准端口信息,该端口成为为了在上述第1通信控制装置中保留发送履历而发送的气泡分组的发送对象的基准;气泡分组发送部,其根据上述基准端口信息,通过上述第1通信控制装置向上述第2通信控制装置发送上述气泡分组;检测用分组发送部,为了检测在上述气泡分组的发送中使用的、作为上述第1通信控制装置的端口的气泡分组发送端口的位置,其向上述服务器发送端口检测用分组;回信分组接收部,其接收从上述第2信息处理装置通过上述第2通信控制装置对上述气泡分组发送端口发送的回信分组;检测用端口信息接收部,其接收表示上述端口检测用分组通过的上述第1通信控制装置的端口的位置的检测用端口信息;气泡分组发送端口检测部,其根据上述检测用端口信息接收部接收的检测用端口信息,检测上述气泡分组发送端口的位置;以及气泡分组发送端口发送部,其通过上述服务器向上述第2信息处理装置发送表示上述气泡分组发送端口检测部检测的上述气泡分组发送端口的位置的气泡分组发送端口信息;上述第2信息处理装置具备基准端口检测用分组发送部,其向服务器发送用于检测上述基准端口的位置的基准端口检测用分组;气泡分组发送端口接收部,其接收表示上述气泡分组发送端口的位置的气泡分组发送端口信息;以及回信分组发送部,其对上述气泡分组发送端口信息表示的上述气泡分组发送端口发送回信分组;上述服务器具备基准端口检测部,其接收从上述第2信息处理装置发送的上述基准端口检测用分组,并根据该基准端口检测用分组检测上述基准端口的位置;基准端口发送部,其向上述第1信息处理装置发送表示上述基准端口检测部检测的上述基准端口的位置的基准端口信息;检测用端口检测部,其接收从上述第1信息处理装置发送的上述端口检测用分组,并根据该端口检测用分组检测上述端口检测用分组通过的上述第1通信控制装置的端口的位置;以及检测用端口信息发送部,其向上述第1信息处理装置发送表示上述检测用端口检测部检测的端口的位置的检测用端口信息。
上述的第1信息处理装置,进一步具备检测用端口信息接收部,其接收表示上述端口检测用分组通过的上述第1通信控制装置的端口的位置的检测用端口信息;气泡分组发送端口检测部,其根据上述检测用端口信息接收部接收的检测用端口信息,检测上述气泡分组发送端口的位置;以及气泡分组发送端口发送部,其发送表示上述气泡分组发送端口检测部检测的上述气泡分组发送端口的位置的气泡分组发送端口信息。
上述气泡分组发送端口检测部,在不能检测上述气泡分组发送端口的位置时,向上述检测用分组发送部传送表示再次发送上述端口检测用分组的指示,向上述气泡分组发送部传送表示再次发送上述气泡分组的指示;上述检测用分组发送部,根据上述指示再次发送上述端口检测用分组;上述气泡分组发送部,根据上述指示再次发送上述气泡分组。
上述的第1信息处理装置,进一步具备端口宽度检测用分组发送部,其通过上述第1通信控制装置发送用于检测上述第1通信控制装置中的端口宽度的端口宽度检测用分组;端口宽度检测用端口信息接收部,其接收表示上述端口宽度检测用分组通过的上述第1通信控制装置的端口的位置的端口宽度检测用端口信息;以及端口宽度检测部,其根据上述端口宽度检测用端口信息接收部接收的端口宽度检测用端口信息,检测上述第1通信控制装置中的端口宽度;其中,上述气泡分组发送端口检测部,利用上述端口宽度检测部检测的上述第1通信控制装置中的端口宽度检测上述气泡分组发送端口的位置。
上述的第1信息处理装置,进一步具备端口宽度检测用端口信息接收部,其接收表示上述端口宽度检测用分组通过的上述第1通信控制装置的端口的位置的端口宽度检测用端口信息;端口宽度检测部,其根据上述端口宽度检测用端口信息接收部接收的端口宽度检测用端口信息,检测上述第1通信控制装置中的端口宽度;以及端口宽度发送部,其发送作为表示上述端口宽度检测部检测的上述第1通信控制装置中的端口宽度的信息的端口宽度信息。
一种服务器,其使第1信息处理装置和第2信息处理装置通过控制该第1信息处理装置的通信的第1通信控制装置和控制该第2信息处理装置的通信的第2通信控制装置进行的通信建立,该服务器具备基准端口检测部,为了检测作为上述第2通信控制装置中的端口的基准端口的位置,其接收从上述第2信息处理装置通过上述第2通信控制装置发送来的基准端口检测用分组,并根据该基准端口检测用分组检测上述基准端口的位置,其中该端口成为为了在上述第1通信控制装置中保留发送履历而由上述第1信息处理装置发送的气泡分组的发送对象的基准;基准端口发送部,其向上述第1信息处理装置发送表示上述基准端口检测部检测的上述基准端口的位置的基准端口信息;检测用端口检测部,为了检测在从上述第1信息处理装置向上述第2通信控制装置的上述气泡分组的发送中使用的、作为上述第1通信控制装置中的端口的气泡分组发送端口的位置,其接收从上述第1信息处理装置发送的端口检测用分组,并根据该端口检测用分组检测上述端口检测用分组通过的上述第1通信控制装置的端口的位置;以及检测用端口信息发送部,其向上述第1信息处理装置发送表示上述检测用端口检测部检测的端口的位置的检测用端口信息。
上述的服务器,进一步具备第1端口宽度检测用端口检测部,接收从上述第1信息处理装置通过上述第1通信控制装置发送的第1端口端口宽度检测用分组,并根据该第1端口宽度检测用分组检测上述第1端口宽度检测用分组通过的上述第1通信控制装置的端口的位置;以及第1端口宽度检测用端口信息发送部,其向上述第1信息处理装置发送表示上述第1端口宽度检测用端口检测部检测的端口的位置的端口宽度检测用端口信息。
上述的服务器,进一步具备第2端口宽度检测用端口检测部,接收从上述第2信息处理装置通过上述第2通信控制装置发送的第2端口宽度检测用分组,并根据该第2端口宽度检测用分组检测上述第2端口宽度检测用分组通过的上述第2通信控制装置的端口的位置;以及第2端口宽度检测用端口信息发送部,其向上述第2信息处理装置发送表示上述第2端口宽度检测用端口检测部检测的端口的位置的端口宽度检测用端口信息。
上述的程序,用于使计算机进一步执行检测用端口信息接收步骤,接收表示上述端口检测用分组通过的上述第1通信控制装置的端口的位置的检测用端口信息;气泡分组发送端口检测步骤,根据在上述检测用端口信息接收步骤接收的检测用端口信息,检测上述气泡分组发送端口的位置;以及气泡分组发送端口发送步骤,发送表示在上述气泡分组发送端口检测步骤检测的上述气泡分组发送端口的位置的气泡分组发送端口信息。
在上述检测用分组发送步骤,在上述气泡分组发送端口检测步骤中不能检测上述气泡分组发送端口的位置时,再次发送上述端口检测用分组;以及在上述气泡分组发送步骤,在上述气泡分组发送端口检测步骤中不能检测上述气泡分组发送端口的位置时,再次发送上述气泡分组。
上述的程序,用于使计算机进一步执行端口宽度检测用分组发送步骤,通过上述第1通信控制装置发送用于检测上述第1通信控制装置中的端口宽度的端口宽度检测用分组;端口宽度检测用端口信息接收步骤,接收表示上述端口宽度检测用分组通过的上述第1通信控制装置的端口的位置的端口宽度检测用端口信息;以及端口宽度检测步骤,根据上述端口宽度检测用端口信息接收部接收的端口宽度检测用端口信息,检测上述第1通信控制装置中的端口宽度;其中,在上述气泡分组发送端口检测步骤,使用在上述端口宽度检测步骤检测的上述第1通信控制装置中的端口宽度检测上述气泡分组发送端口的位置。
上述的程序,用于使计算机进一步执行端口宽度检测用端口信息接收步骤,接收表示上述端口宽度检测用分组通过的上述第1通信控制装置的端口的位置的端口宽度检测用端口信息;端口宽度检测步骤,根据在上述端口宽度检测用端口信息接收步骤接收的端口宽度检测用端口信息,检测上述第1通信控制装置中的端口宽度;以及端口宽度发送步骤,发送作为表示在上述端口宽度检测步骤检测的上述第1通信控制装置中的端口宽度的信息的端口宽度信息。
一种程序,用于使计算机执行服务器中的处理,该服务器使第1信息处理装置和第2信息处理装置通过控制该第1信息处理装置的通信的第1通信控制装置和控制该第2信息处理装置的通信的第2通信控制装置进行的通信建立,该程序用于使计算机执行以下步骤基准端口检测步骤,为了检测作为上述第2通信控制装置中的端口的基准端口的位置,接收从上述第2信息处理装置通过上述第2通信控制装置发送来的基准端口检测用分组,并根据该基准端口检测用分组检测上述基准端口的位置,其中该端口成为为了在上述第1通信控制装置中保留发送履历而由上述第1信息处理装置发送的气泡分组的发送对象的基准;基准端口发送步骤,向上述第1信息处理装置发送表示在上述基准端口检测步骤检测的上述基准端口的位置的基准端口信息;检测用端口检测步骤,为了检测在从上述第1信息处理装置向上述第2通信控制装置的上述气泡分组的发送中使用的、作为上述第1通信控制装置中的端口的气泡分组发送端口的位置,接收从上述第1信息处理装置发送的端口检测用分组,并根据该端口检测用分组检测上述端口检测用分组通过的上述第1通信控制装置的端口的位置;以及检测用端口信息发送步骤,向上述第1信息处理装置发送表示在上述检测用端口检测步骤检测的端口的位置的检测用端口信息。
一种通信系统,具备信息处理装置、控制上述信息处理装置的通信的通信控制装置和服务器,其中,上述信息处理装置具备气泡分组发送部,通过上述通信控制装置发送用于在上述通信控制装置中保留发送履历的气泡分组;以及检测用分组发送部,在上述气泡分组发送部发送上述气泡分组的前后,向上述服务器发送为了检测在上述气泡分组的发送中使用的、作为上述通信控制装置的端口的气泡分组发送端口的位置而使用的端口检测用分组。
上述气泡分组和上述端口检测用分组使用上述信息处理装置中新分配的端口进行发送。
上述服务器具备气泡分组发送端口检测部,接收从上述信息处理装置发送的上述端口检测用分组,并根据上述端口检测用分组检测上述气泡分组发送端口的位置。
上述服务器进一步具备气泡分组发送端口发送部,发送表示上述气泡分组发送端口的位置的气泡分组发送端口信息。
上述服务器进一步具备再发送指示发送部,在上述气泡分组发送端口检测部不能检测上述气泡分组发送端口的位置时,向上述信息处理装置发送作为表示再次发送上述气泡分组和上述端口检测用分组的指示的再发送指示;上述信息处理装置进一步具备再发送指示接收部,接收从上述服务器发送的上述再发送指示;其中,上述检测用分组发送部,在上述再发送指示接收部接收到上述再发送指示时,再次向上述服务器发送上述端口检测用分组,上述气泡分组发送部,在上述再发送指示接收部接收到上述再发送指示时,再次向上述服务器发送上述气泡分组。
上述气泡分组发送端口检测部,使用上述通信控制装置的端口宽度检测上述气泡分组发送端口的位置。
上述信息处理装置进一步具备端口宽度检测用分组发送部,通过上述通信控制装置发送用于检测上述通信控制装置中的端口宽度的端口宽度检测用分组;上述服务器进一步具备端口宽度检测部,接收上述端口宽度检测用分组,并根据该端口宽度检测用分组检测上述通信控制装置的端口宽度;其中,上述气泡分组发送端口检测部使用上述端口宽度检测部检测的端口宽度检测上述气泡分组发送端口的位置。
上述信息处理装置进一步具备检测用端口信息接收部,接收表示上述端口检测用分组通过的上述通信控制装置的端口的位置的检测用端口信息;以及气泡分组发送端口检测部,根据上述检测用端口信息接收部接收的检测用端口信息检测上述气泡分组发送端口的位置;上述服务器具备检测用端口检测部,接收上述端口检测用分组,检测该端口检测用分组通过的上述通信控制装置的端口的位置;以及检测用端口信息发送部,向上述信息处理装置发送表示上述检测用端口检测部检测的端口的位置的检测用端口信息。
上述信息处理装置进一步具备气泡分组发送端口发送部,发送表示上述气泡分组发送端口的位置的气泡分组发送端口信息。
在上述气泡分组发送端口检测部不能检测上述气泡分组发送端口的位置时,上述检测用分组发送部再次发送上述端口检测用分组;以及在上述气泡分组发送端口检测部不能检测上述气泡分组发送端口的位置时,上述气泡分组发送部再次发送上述气泡分组。
上述气泡分组发送端口检测部使用上述通信控制装置的端口宽度检测上述气泡分组发送端口的位置。
上述信息处理装置进一步具备端口宽度检测用分组发送部,其通过上述通信控制装置发送用于检测上述通信控制装置中的端口宽度的端口宽度检测用分组;端口宽度检测用端口信息接收部,其接收表示上述端口宽度检测用分组通过的上述通信控制装置的端口的位置的端口宽度检测用端口信息;以及端口宽度检测部,其根据上述端口宽度检测用端口信息接收部接收的端口宽度检测用端口信息,检测上述通信控制装置中的端口宽度;上述服务器进一步具备端口宽度检测用端口检测部,其接收上述端口宽度检测用分组,并检测该端口宽度检测用分组通过的上述通信控制装置的端口的位置;以及端口宽度检测用端口信息发送部,其向上述信息处理装置发送表示上述端口宽度检测用端口检测部检测的端口的位置的端口宽度检测用端口信息;其中,上述气泡分组发送端口检测部使用上述端口宽度检测部检测的上述通信控制装置的端口宽度检测上述气泡分组发送端口的位置。
上述的通信系统,进一步具备第2信息处理装置,该第2信息处理装置具备气泡分组发送端口接收部,接收上述气泡分组发送端口信息;以及回信分组发送部,对上述气泡分组发送端口信息表示的上述气泡分组发送端口发送回信分组;上述信息处理装置进一步具备回信分组接收部,接收从上述第2信息处理装置发送来的回信分组。
一种构成上述的通信系统的信息处理装置。
一种构成上述的通信系统的第2信息处理装置。
一种构成上述的通信系统的服务器。
一种通信方法,是在构成通信系统的信息处理装置中使用的通信方法,该通信系统具备信息处理装置、控制上述信息处理装置的通信的通信控制装置和服务器,该通信方法包括气泡分组发送步骤,通过上述通信控制装置发送用于在上述通信控制装置中保留发送履历的气泡分组;以及检测用分组发送步骤,在上述气泡分组发送步骤发送上述气泡分组的前后,向上述服务器发送为了检测在上述气泡分组的发送中使用的、作为上述通信控制装置的端口的气泡分组发送端口的位置而使用的端口检测用分组。
上述的通信方法,进一步包括检测用端口信息接收步骤,接收表示上述端口检测用分组通过的上述通信控制装置的端口的位置的检测用端口信息;以及气泡分组发送端口检测步骤,根据在上述检测用端口信息接收步骤接收的检测用端口信息,检测上述气泡分组发送端口的位置。
上述的通信方法,进一步包括气泡分组发送端口发送步骤,发送表示在上述气泡分组发送端口检测步骤检测的上述气泡分组发送端口的位置的气泡分组发送端口信息。
一种通信方法,是在构成通信系统的服务器中使用的通信方法,该通信系统具备信息处理装置、控制上述信息处理装置的通信的通信控制装置和服务器,该通信方法包括为了检测在气泡分组的发送中使用的、作为上述通信控制装置中的端口的气泡分组发送端口的位置,而在上述气泡分组发送的前后接收从上述信息处理装置发送的端口检测用分组的步骤,其中该气泡分组是为在上述通信控制装置中保留发送履历而由上述信息处理装置发送的;以及根据上述端口检测用分组检测上述气泡分组发送端口的位置的步骤。
一种通信方法,是在构成通信系统的服务器中使用的通信方法,该通信系统具备信息处理装置、控制上述信息处理装置的通信的通信控制装置和服务器,该通信方法包括为了检测在气泡分组的发送中使用的、作为上述通信控制装置中的端口的气泡分组发送端口的位置,而在上述气泡分组发送的前后接收从上述信息处理装置发送的端口检测用分组的步骤,其中该气泡分组是为在上述通信控制装置中保留发送履历而由上述信息处理装置发送的;检测上述端口检测用分组通过的上述通信控制装置的端口的位置的步骤;以及向上述信息处理装置发送表示上述端口检测用分组通过的上述通信控制装置的端口的位置的检测用端口信息的步骤。
一种程序,用于使计算机执行信息处理装置中的处理,该信息处理装置构成具备信息处理装置、控制上述信息处理装置的通信的通信控制装置和服务器的通信系统,该程序用于使计算机执行以下步骤气泡分组发送步骤,通过上述通信控制装置发送用于在上述通信控制装置中保留发送履历的气泡分组;以及检测用分组发送步骤,在上述气泡分组发送步骤发送上述气泡分组的前后,向上述服务器发送为了检测在上述气泡分组的发送中使用的、作为上述通信控制装置的端口的气泡分组发送端口的位置而使用的端口检测用分组。
一种程序,用于使计算机执行服务器中的处理,该服务器构成具备信息处理装置、控制上述信息处理装置的通信的通信控制装置和服务器的通信系统,该程序用于使计算机执行以下步骤为了检测在气泡分组的发送中使用的、作为上述通信控制装置中的端口的气泡分组发送端口的位置,而在上述气泡分组发送的前后接收从上述信息处理装置发送的端口检测用分组的步骤,其中该气泡分组是为在上述通信控制装置中保留发送履历而由上述信息处理装置发送的;以及根据上述端口检测用分组检测上述气泡分组发送端口的位置的步骤。
一种程序,用于使计算机执行服务器中的处理,该服务器构成具备信息处理装置、控制上述信息处理装置的通信的通信控制装置和服务器的通信系统,该程序用于使计算机执行以下步骤为了检测在气泡分组的发送中使用的、作为上述通信控制装置中的端口的气泡分组发送端口的位置,而在上述气泡分组发送的前后接收从上述信息处理装置发送的端口检测用分组的步骤,其中该气泡分组是为在上述通信控制装置中保留发送履历而由上述信息处理装置发送的;检测上述端口检测用分组通过的上述通信控制装置的端口的位置的步骤;以及向上述信息处理装置发送表示上述端口检测用分组通过的上述通信控制装置的端口的位置的检测用端口信息的步骤。


图1是表示本发明的实施方式1的通信系统的结构的方框图;图2是表示该实施方式的第1信息处理装置的结构的方框图;图3是表示该实施方式的第2信息处理装置的结构的方框图;图4是表示该实施方式的服务器的结构的方框图;图5是表示该实施方式的通信系统的动作的流程图;图6是用于说明该实施方式的与通信的建立有关的处理的图;图7是用于说明该实施方式的端口宽度检测的图;
图8是用于说明该实施方式的与通信的建立有关的处理的图;图9是用于说明该实施方式的与通信的建立有关的处理的图;图10是用于说明该实施方式的具体示例的图;图11是用于说明该实施方式的具体示例的图;图12是用于说明该实施方式的具体示例的图;图13是用于说明该实施方式的具体示例的图;图14是用于说明该实施方式的具体示例的图;图15是用于说明该实施方式的具体示例的图;图16是用于说明该实施方式的具体示例的图;图17是表示该实施方式的能够进行连接的通信控制装置的特性的组合的图;图18是表示本发明的实施方式2的第1信息处理装置的结构的方框图;图19是表示该实施方式的第2信息处理装置的结构的方框图;图20是表示该实施方式的服务器的结构的方框图;图21是用于说明该实施方式的与通信的建立有关的处理的图;图22是用于说明该实施方式的与通信的建立有关的处理的图;图23是用于说明该实施方式的与通信的建立有关的处理的图;图24是表示本发明的实施方式3的通信系统的结构的方框图;图25是表示其他实施方式的通信系统的结构的方框图;图26是表示本发明的实施方式4的通信系统的结构的方框图;图27是表示该实施方式的第1信息处理装置的结构的方框图;图28是表示该实施方式的服务器的结构的方框图;图29是用于说明该实施方式的与通信的建立有关的处理的图;图30是用于说明该实施方式的具体示例的图;图31是用于说明该实施方式的具体示例的图;图32是用于说明NAT的特性的图;图33是表示通信系统的一个例子的图;以及图34是表示以往的能够进行连接的NAT的组合的图。
符号说明1第1信息处理装置;2第2信息处理装置;3第1通信控制装置;4第2通信控制装置;5通信线路;6服务器;11、21、61通信部;12基准端口接收部;13气泡分组发送部;14检测用分组发送部;15、26端口宽度检测用分组发送部;16再发送指示接收部;17回信分组接收部;18再回信分组接收部;19端口宽度接收部;22基准端口检测用分组发送部;23气泡分组发送端口接收部;24回信分组发送部;25再回信分组接收部;62基准端口检测部;63基准端口发送部;64端口宽度检测部;65气泡分组发送端口检测部;66再发送指示发送部;67气泡分组发送端口发送部;68端口宽度发送部。
具体实施例方式
(实施方式1)下面,参照

本发明的实施方式1的通信系统。
图1是表示本实施方式的通信系统的结构的方框图。在图1中,本实施方式的通信系统包括第1信息处理装置1、第2信息处理装置2、第1通信控制装置3、第2通信控制装置4和服务器6。第1通信控制装置3、第2通信控制装置4和服务器6通过有线或无线的通信线路5而连接。该通信线路5例如是因特网。
此外,在图1中,示出了第1信息处理装置1和第2信息处理装置2分别仅与第1通信控制装置3和第2通信控制装置4连接的情况,但是,除此以外的装置也可以与第1通信控制装置3和第2通信控制装置4连接。
此外,在本实施方式中,对第1信息处理装置1作为发送侧的信息处理装置进行动作、第2信息处理装置2作为接收侧的信息处理装置进行动作的情况进行说明。在这里,所谓发送侧的信息处理装置,指在建立第1信息处理装置1与第2信息处理装置2之间的通信时发出通信(连接,connection)请求的一侧(换言之,指发送气泡分组的一侧)。另一方面,所谓接收侧的信息处理装置,指其相对侧的信息处理装置,即接收通信请求的一侧(换言之,指发送对气泡分组的回信分组的一侧)的信息处理装置。此外,关于气泡分组或回信分组,后面进行说明。
图2是表示第1信息处理装置1的结构的方框图。在图2中,第1信息处理装置1包括通信部11、基准端口接收部12、气泡分组发送部13、检测用分组发送部14、端口宽度检测用分组发送部15、再发送指示接收部16、回信分组接收部17、再回信分组发送部18和端口宽度接收部19。
通信部11进行气泡分组发送部13等第1信息处理装置1内部的各个构成要素与第1通信控制装置3之间的通信。
基准端口接收部12接收表示基准端口的位置的基准端口信息。在这里,所谓基准端口,指第2通信控制装置4中指定的端口,是作为气泡分组的发送对象的端口(气泡分组发送对象端口)的基准的端口。所谓该基准端口信息的接收,指例如接收基准端口信息。此外,关于气泡分组,后面进行说明。
气泡分组发送部13通过通信部11和第1通信控制装置3向第2通信控制装置4发送气泡分组。该气泡分组是根据基准端口接收部12接收到的基准端口信息而发送的。具体而言,对第2通信控制装置4中的作为从基准端口开始进行指定的端口分配之后分配的端口的气泡分组发送对象端口,发送气泡分组。该气泡分组发送对象端口例如是与基准端口的端口间隔为第2通信控制装置4的端口宽度的M倍(M是大于等于1的整数)的端口。在这里,例如在以增加端口序号的方式进行端口分配的情况下,气泡分组发送对象端口比基准端口的端口序号要大。该第2通信控制装置4的端口宽度由后面所述的端口宽度接收部19接收的端口宽度信息来表示。另外,所谓气泡分组,指为了建立第1信息处理装置1与第2信息处理装置2之间的通信而用于在第1通信控制装置3中保留发送履历的分组。在这里,所谓建立通信,指在第1信息处理装置1与第2信息处理装置2之间开始不通过服务器6的点对点(Peer to Peer)的通信。另外,所谓保留发送履历,指在第1通信控制装置3中,分配用于接收后面所述的回信分组的端口。在该气泡分组中,可以包含某种信息,也可以不包含任何信息。该气泡分组例如利用UDP(用户数据报协议User Datagram Protocol)那样的无连接型的通信协议来发送。
检测用分组发送部14向服务器6发送端口检测用分组。该端口检测用分组是为了检测气泡分组发送端口的位置而使用的。在这里,所谓气泡分组发送端口,指在气泡分组的发送中使用的第1通信控制装置3中的端口。该端口检测用分组在发送气泡分组之前和/或在发送气泡分组之后发送。在本实施方式中,对在发送气泡分组的前后发送端口检测用分组的情况进行说明。该端口检测用分组例如利用UDP、TCP(传输控制协议TransmissionControl Protocol)等来发送。该端口检测用分组可以包含某种信息,也可以不包含任何信息。
端口宽度检测用分组发送部15将为了检测第1通信控制装置3中的端口宽度而使用的端口宽度检测用分组通过第1通信控制装置3向服务器6发送。在这里,所谓端口宽度,指连续被使用(被分配)的端口的宽度(间隔)。例如,在端口宽度为“1”时,在端口序号“20000”的端口之后被使用的端口为端口序号“20001”的端口。另一方面,在端口宽度为“2”时,在端口序号“20000”的端口之后使用的端口为端口序号“20002”的端口。在该端口宽度检测用分组中,可以包含某种信息,也可以不包含任何信息。
再发送指示接收部16接收再发送指示。在这里,所谓再发送指示,指表示再发送气泡分组和端口检测用分组的主旨的指示。该再发送指示例如通过接收通信来接收。在再发送指示接收部16接收到再发送指示时,检测用分组发送部14和气泡分组发送部13分别再次发送端口检测用分组和气泡分组。
回信分组接收部17接收从第2信息处理装置2通过第2通信控制装置4发送来的回信分组。该回信分组是对气泡分组发送端口发送的。该回信分组例如通过接收通信来接收。在该回信分组中,可以包含某种信息,也可以不包含任何信息。
再回信分组发送部18,在回信分组接收部17接收到回信分组时,发送再回信分组。该再回信分组对在回信分组的发送中所使用的第2通信控制装置4的端口发送。该再回信分组例如利用UDP来发送。在该再回信分组中,可以包含某种信息,也可以不包含任何信息。
端口宽度接收部19接收从服务器6发送来的端口宽度信息。在这里,所谓端口宽度信息,指表示第2通信控制装置4中的端口宽度的信息。
图3是表示第2信息处理装置2的结构的方框图。在图3中,第2信息处理装置2包括通信部21、基准端口检测用分组发送部22、气泡分组发送端口接收部23、回信分组发送部24、再回信分组接收部25和端口宽度检测用分组发送部26。
通信部21,与通信部11一样,进行基准端口检测用分组发送部22等第2信息处理装置2内部的各个构成要素与第2通信控制装置4之间的通信。
基准端口检测用分组发送部22向服务器6发送用于检测基准端口的位置的基准端口检测用分组。该基准端口是在第2通信控制装置4中分配的端口中在发送基准端口检测用分组的时刻最新的端口(最新分配的端口)。即,通过发送该基准端口检测用分组,服务器6可以检测由第2通信控制装置4分配的最新的端口的位置。该基准端口检测用分组例如利用UDP、TCP等来发送。在该基准端口检测用分组中,可以包含某种信息,也可以不包含任何信息。
气泡分组发送端口接收部23接收气泡分组发送端口信息。在这里,所谓气泡分组发送端口信息,指表示气泡分组发送端口的位置的信息,例如,气泡分组发送端口的位置由气泡分组发送端口的端口序号来表示。气泡分组发送端口信息例如通过接收通信来接收。
回信分组发送部24对第1通信控制装置3中的气泡分组发送端口发送回信分组。该气泡分组发送端口的位置是由气泡分组发送端口接收部23接收到的气泡分组发送端口信息来表示的。该回信分组使用第2通信控制装置4的不同的N个(N是大于等于2的整数)端口而发送。该N个端口是在回信分组被发送时在第2通信控制装置4中新分配的端口。在这里,该N的值是第2通信控制装置4中从基准端口到发送气泡分组的端口(气泡分组发送对象端口)中所能分配的端口的数量(设为α)。也就是说,在发送回信分组时,除了气泡分组发送对象端口已经由其他设备所使用的情况以外,均能够通过发送α个回信分组来进行使用气泡分组发送对象端口的回信分组的发送。该回信分组例如利用UDP来发送。在该回信分组中,可以包含某种信息,也可以不包含任何信息。
再回信分组接收部25接收从第1信息处理装置1发送来的再回信分组。该再回信分组是对回信分组的发送中使用的第2通信控制装置4的端口发送并且由第2信息处理装置2接收的。虽然根据在第1通信控制装置3和第2通信控制装置4中使用的NAT的种类,能够在第1信息处理装置1接收到回信分组的时刻建立第1信息处理装置1与第2信息处理装置2之间的通信,但是,有时是第2信息处理装置2通过接收再回信分组而建立第1信息处理装置1与第2信息处理装置2之间的通信。
端口宽度检测用分组发送部26通过第2通信控制装置4向服务器6发送用于检测第2通信控制装置4的端口宽度的端口宽度检测用分组。在该端口宽度检测用分组中,可以包含某种信息,也可以不包含任何信息。
第1通信控制装置3控制第1信息处理装置1的通信,使用所谓的NAT控制本地侧(第1信息处理装置1侧)与全局侧(通信线路5侧)的通信。在该NAT中,有F NAT、R NAT、PR NAT、Sa NAT、AS NAT、Sc NAT、Sd NAT、Se NAT、PS NAT。
另外,第2通信控制装置4控制第2信息处理装置2的通信,且与第1通信控制装置3同样,使用NAT。如后面所述,在本实施方式的通信系统中,在第1通信控制装置3和第2通信控制装置4使用的NAT的所有组合之下,都可以建立第1信息处理装置1与第2信息处理装置2之间的通信。此外,在第1通信控制装置3和第2通信控制装置4中,端口的分配是按照每个指定的端口宽度,以增大或减小端口序号的方式进行的。在以下的说明中,说明以端口序号增大的方式进行分配的情况。
图4是表示服务器6的结构的方框图。在图4中,服务器6包括通信部61、基准端口检测部62、基准端口发送部63、端口宽度检测部64、气泡分组发送端口检测部65、再发送指示发送部66、气泡分组发送端口发送部67和端口宽度发送部68。
通信部61进行基准端口检测部62等服务器6的各部分与第1信息处理装置1、第2信息处理装置2等的通信。
基准端口检测部62接收基准端口检测用分组,并根据该基准端口检测用分组检测基准端口的位置。基准端口检测用分组的接收,例如通过接收通信来实现。该基准端口检测用分组是从第2信息处理装置2通过第2通信控制装置4发送的。
基准端口发送部63向第1信息处理装置1发送基准端口信息。该基准端口信息例如利用基准端口的端口序号来表示基准端口的位置。
端口宽度检测部64检测第1通信控制装置3中的端口宽度。该检测通过接收从第1信息处理装置1发送来的端口宽度检测用分组来进行。另外,端口宽度检测部64检测第2通信控制装置4中的端口宽度。该检测通过接收从第2信息处理装置2发送来的端口宽度检测用分组来进行。另外,也可以包括检测第1通信控制装置3中的端口宽度的第1端口检测部和检测第2通信控制装置4中的端口宽度的第2端口检测部。它们是由1个,即端口宽度检测部64而实现的。也就是说,端口宽度检测部64中检测第1通信控制装置3中的端口宽度的部分为第1端口检测部,检测第2通信控制装置4中的端口宽度的部分为第2端口检测部。
气泡分组发送端口检测部65检测第1通信控制装置3中的气泡分组发送端口的位置。该检测通过接收从第1信息处理装置1通过第1通信控制装置3发送来的端口检测用分组来实现。该端口检测用分组的接收,例如通过接收通信来实现。具体而言,气泡分组发送端口检测部65接收在气泡分组发送的前后发送来的端口检测用分组。进一步地,判断在该端口检测用分组的发送中使用的第1通信控制装置3中的2个端口与气泡分组发送端口是否连续。作为该判断的结果,在这些端口连续时,检测由在端口检测用分组的发送中使用的第1通信控制装置3中的2个端口夹在之间的端口的位置,作为气泡分组发送端口的位置。在这里,所谓连续,指这2个端口与气泡分组发送端口以第1通信控制装置3中的端口宽度的间隔而并置的状态。此外,在端口检测用分组的发送中所使用的第1通信控制装置3的2个端口的间隔是由端口宽度检测部64检测到的第1通信控制装置3的端口宽度的2倍时,可以判定为是连续的。另一方面,在端口检测用分组的发送中所使用的第1通信控制装置3的2个端口与气泡分组发送端口不连续时,就不能检测到气泡分组发送端口。
再发送指示发送部66,在气泡分组发送端口检测部65不能检测到气泡分组发送端口的位置时,向第1信息处理装置1发送再发送指示。在这里,所谓再发送指示,指表示再次发送气泡分组和端口检测用分组的指示。气泡分组发送端口检测部65使用根据该再发送指示的发送而再次发送的端口检测用分组,检测气泡分组发送端口的位置。此外,该再发送指示的发送反复进行到气泡分组发送端口检测部65能够检测到气泡分组发送端口的位置为止,或者反复进行到规定的上限次数(例如,10次等)、规定的时间(例如,30秒等)等规定的限制为止。
气泡分组发送端口发送部67向第2信息处理装置2发送气泡分组发送端口信息。在该气泡分组发送端口信息中表示的气泡分组发送端口的位置是由气泡分组发送端口检测部65检测出的。
端口宽度发送部68向第1信息处理装置1发送端口宽度信息。在这里,所谓端口宽度信息,指表示由端口宽度检测部64检测出的第2通信控制装置4中的端口宽度的信息。
下面,说明本实施方式的通信系统的动作。特别地,使用图5的流程图说明截止到第1信息处理装置1和第2信息处理装置2开始进行通信时的通信方法。
(步骤S101)从第2信息处理装置2向服务器6发送基准端口检测用分组,根据该基准端口检测用分组检测基准端口的位置。并且,从服务器6向第1信息处理装置1发送表示该基准端口的位置的基准端口信息。关于步骤S101的详细的处理,后面进行说明。
(步骤S102)第1信息处理装置1,根据基准端口信息,向第2通信控制装置4发送气泡分组。另外,向服务器6发送将在气泡分组发送端口的位置的检测中使用的端口检测用分组。关于步骤S102的详细的处理,后面进行说明。
(步骤S103)服务器6的气泡分组发送端口检测部65,根据在步骤S102接收到的端口检测用分组,判断是否能够检测到气泡分组发送端口的位置。并且,在能够检测到时,前进到步骤S104;而在不能检测到时,再发送指示发送部66向第1信息处理装置1发送再发送指示,并返回到步骤S102。该再发送指示由第1信息处理装置1的再发送指示接收部16接收。
(步骤S104)服务器6检测气泡分组发送端口的位置,并向第2信息处理装置2发送表示该位置的气泡分组发送端口信息。第2信息处理装置2,根据该气泡分组发送端口信息,向第1通信控制装置3发送回信分组。关于步骤S104的详细的处理,后面说明。
(步骤S105)第1信息处理装置1的回信分组接收部17判断是否接收到回信分组。并且,在接收到回信分组时,前进到步骤S106;而在未接收到时,则返回步骤S101,再次反复进行从步骤S101开始的处理。
(步骤S106)第1信息处理装置1的再回信分组发送部18向第2通信控制装置4发送再回信分组。
(步骤S107)第2信息处理装置2的再回信分组接收部25判断是否接收到再回信分组。并且,在接收到再回信分组时,通过向在该再回信分组的发送中使用的第1通信控制装置3的任意一个端口发送分组,而能够在第1信息处理装置1与第2信息处理装置2之间建立不通过服务器6的通信,从而结束通信建立的处理。另一方面,再未接收到再回信分组时,由于不能建立通信,所以返回步骤S101,再次反复进行从步骤S101开始的处理。
下面,使用图6说明图5的流程图中的步骤S101的处理。图6是用于说明发送侧、服务器、接收侧之间的信息的交换、处理等的图。在这里,所谓发送侧,指包含第1信息处理装置1和第1通信控制装置3的概念。
(步骤S201)服务器6对第2信息处理装置2发送基准端口检测用分组的发送请求。
(步骤S202)第2信息处理装置2的基准端口检测用分组发送部22,在接收到从服务器6发送来的基准端口检测用分组的发送请求时,向服务器6发送基准端口检测用分组。此外,基准端口检测用分组发送部22使用在第2通信控制装置4中最新分配的端口来发送该基准端口检测用分组。例如,使用在第2信息处理装置2中新分配的端口进行基准端口检测用分组的发送。
(步骤S203)服务器6的基准端口检测部62接收从第2信息处理装置2发送来的基准端口检测用分组。并且,基准端口检测部62通过参照包含在基准端口检测用分组的标头中的基准端口的端口序号来检测基准端口的位置。
(步骤S204)基准端口发送部63向第1信息处理装置1发送由基准端口检测部62检测的表示基准端口的位置的信息,即基准端口信息。该基准端口信息由第1信息处理装置1中的基准端口接收部12所接收。
(步骤S205)服务器6向第1信息处理装置1发送表示第2通信控制装置4的IP地址的地址信息。该地址信息由通信部11接收,并被传输给气泡分组发送部13。
(步骤S206)第1信息处理装置1的端口宽度检测用分组发送部15向服务器6发送端口宽度检测用分组。在这里,在该发送中,多个端口宽度检测用分组通过的第1通信控制装置3的端口各不相同。该端口宽度检测用分组例如从第1信息处理装置1中的端口序号各不相同的多个端口发送。图7是用于说明端口宽度检测用分组的发送的图。端口宽度检测用分组发送部15从各不相同的端口P205~P208依次向服务器6的端口P200发送端口宽度检测用分组。这样,在第1通信控制装置3中,这些分组通过各不相同的端口P201~P204。此外,在图7中,按端口P205到P208的顺序来发送分组。另外,第1信息处理装置1,在发送端口宽度检测用分组之前,在与服务器6的通信中不使用端口P205~P208。
(步骤S207)服务器6的端口宽度检测部64接收从第1信息处理装置1发送来的端口宽度检测用分组,并根据该端口宽度检测用分组来检测端口宽度。下面,说明该端口宽度的检测方法。端口宽度检测部64,通过接收端口宽度检测用分组,而能够检测出在各端口宽度检测用分组的发送中使用的第1通信控制装置3的端口P201~P204。并且,例如在端口P202与端口P201的端口间隔为12、端口P203与端口P202的端口间隔为6、端口P204与端口P203的端口间隔为18时,也可以检测最小的端口间隔“6”,作为端口宽度。另一方面,也可以检测出这些端口间隔的最大公约数,作为端口宽度。例如在端口P202与端口P201的端口间隔为12、端口P203与端口P202的端口间隔为6、端口P204与端口P203的端口间隔为9时,也可以检测出它们的最大公约数“3”,作为端口宽度。此外,端口宽度的检测方法并不限于上述方法,也可以利用其他方法来检测端口宽度。另外,在检测端口宽度时,所发送的端口宽度检测用分组的数量并不限于4个,而可以在能够检测端口宽度的范围内任意设定。
(步骤S208)第2信息处理装置2的端口宽度检测用分组发送部26向服务器6发送端口宽度检测用分组。在这里,端口宽度检测用分组的发送,与步骤S206同样进行。
(步骤S209)服务器6的端口宽度检测部64接收从第2信息处理装置2发送来的端口宽度检测用分组,并根据该端口宽度检测用分组来检测第2通信控制装置4中的端口宽度。该端口宽度的检测方法和步骤S207相同,从而省略其说明。此外,在该步骤S209的端口宽度的检测处理中,与步骤S207的端口宽度的检测相比,不太要求严密性。也就是说,也可以检测第2通信控制装置4中的实际的端口宽度的倍数,作为端口宽度。在该步骤S209中检测出的端口宽度用于将与基准端口相距在步骤S209中检测出的端口宽度的倍数的端口间隔的(在端口序号的分配为增加方向时,在端口序号的增加方向)端口确定为气泡分组发送对象端口。结果,即使在该步骤中检测出的端口宽度为实际的端口宽度的倍数,这样确定的气泡分组发送对象端口也是从基准端口开始进行若干次端口分配之后分配的端口,从而能够使用该端口作为气泡分组发送对象端口。因此,在该步骤S208、S209的端口宽度的检测中,可以通过少数端口宽度检测用分组的发送来检测端口宽度。
(步骤S210)服务器6的端口宽度发送部68向第1信息处理装置1发送在步骤S209检测的表示端口宽度的端口宽度信息。
此外,在图6中,接收侧地址的发送(步骤S205)也可以在任何时刻进行,例如,可以在基准端口信息的发送(步骤S204)、基准端口检测用分组的发送请求(步骤S201)之前进行。另外,对于从端口宽度检测用分组的发送(步骤S208)到端口宽度信息的发送(步骤S210),也可以在端口宽度检测用分组的发送(步骤S206)的处理等之前进行。这样,关于图6的处理顺序,就存在某种程度的任意性。
下面,使用图8说明图5的流程图中的步骤S102的处理。图8是用于说明发送侧、服务器、接收侧之间的信息的交换、处理等的图。
(步骤S301)第1信息处理装置1的检测用分组发送部14通过第1通信控制装置3向服务器6发送端口检测用分组。在该发送中,以端口检测用分组通过第1通信控制装置3中最新分配的端口的方式,来进行分组的发送。这是为了能够确切地检测气泡分组发送端口的位置。例如,检测用分组发送部14使用在第1信息处理装置1与服务器6之间的通信中迄今为止尚未使用的第1信息处理装置1的端口,来发送端口检测用分组。这样发送的端口检测用分组在服务器6的气泡分组发送端口检测部65中被接收。该气泡分组发送端口检测部65,通过参照端口检测用分组的标头,来检测在端口检测用分组的发送中使用的第1通信控制装置3中的端口的位置。
(步骤S302)第1信息处理装置1的气泡分组发送部13向第2通信控制装置4发送气泡分组。该气泡分组对第2通信控制装置4中从基准端口开始进行指定次数(α)的端口分配之后分配的端口而发送。
(步骤S303)第1信息处理装置1的检测用分组发送部14通过第1通信控制装置3向服务器6发送端口检测用分组。在该发送中,以端口检测用分组通过第1通信控制装置3中最新分配的端口的方式,进行分组的发送。例如,检测用分组发送部14使用在第1信息处理装置1与服务器6之间的通信、步骤S301的端口检测用分组的发送、气泡分组的发送等中迄今为止尚未使用的第1信息处理装置1的端口,来发送端口检测用分组。这样发送的端口检测用分组在服务器6的气泡分组发送端口检测部65中被接收。该气泡分组发送端口检测部65,通过参照端口检测用分组的标头,来检测在端口检测用分组的发送中使用的第1通信控制装置3的端口的位置。
(步骤S304)服务器6的气泡分组发送端口检测部65判断在步骤S301、S303中的2次端口检测用分组的发送中使用的第1通信控制装置3的端口的位置与气泡分组发送端口是否连续。
下面,使用图9说明图5的流程图中的步骤S104的处理。图9是用于说明发送侧、服务器、接收侧之间的信息的交换、处理等的图。
(步骤S401)服务器6的气泡分组发送端口检测部65检测气泡分组发送端口的位置。
(步骤S402)服务器6的气泡分组发送端口发送部67向第2信息处理装置2发送气泡分组发送端口信息。该气泡分组发送端口信息由第2信息处理装置2的气泡分组发送端口接收部23接收。
(步骤S403)服务器6向第2信息处理装置2发送表示第1通信控制装置3的IP地址的地址信息。该地址信息由通信部21接收,并被传输给回信分组发送部24。
(步骤S404)第2信息处理装置2的回信分组发送部24,对由在步骤S403接收到的地址信息所确定的第1通信控制装置3,发送回信分组。该回信分组对由气泡分组发送端口接收部23接收到的气泡分组发送端口信息所表示的气泡分组发送端口而发送。
此外,在图9中,气泡分组发送端口信息的发送(步骤S402)和发送侧地址的发送(步骤S403)的顺序无关紧要。
下面,使用具体示例说明本实施方式的通信系统的动作。在该具体示例中,设第1通信控制装置3、第2通信控制装置4、服务器6的IP地址(对于第1和第2通信控制装置3、4来说是通信线路5侧的地址)分别为第1通信控制装置3202.132.10.6第2通信控制装置4131.206.10.240服务器6155.32.10.10在以下的具体示例中,在具体示例1中说明第1通信控制装置3和第2通信控制装置4使用PS NAT的情况。另外,在具体示例2中,说明第1通信控制装置3使用Sd NAT、第2通信控制装置4使用PS NAT的情况。另外,在具体示例3中,说明第1通信控制装置3使用Sa NAT、第2通信控制装置4使用AS NAT的情况。
(具体示例1)图10~图13是用于说明具体示例1的图。在具体示例1中,从第1信息处理装置1进行连接请求。在图10中,第1信息处理装置1预先得知服务器6的IP地址为“155.32.10.10”,并对该服务器6发送第1信息处理装置1的设备ID“1234567890123456”。在这里,作为该设备ID,例如可以使用MAC地址、基于EUI64的地址等GUID(全球唯一标识符Global Unique ID)。该设备ID的发送从第1信息处理装置1的端口P1通过在第1通信控制装置3中分配的端口P2,对服务器6的端口P3进行。通过该发送,服务器6可以知道第1信息处理装置1的设备ID、第1通信控制装置3的IP地址“202.132.10.6”和第1通信控制装置3的端口P2的端口序号“10034”。这些信息被保存在服务器6中。
然后,第1信息处理装置1向服务器6发送请求连接的第2信息处理装置2的设备ID“9876543210123456”,由此进行针对第2信息处理装置2的连接请求。这样,服务器6接收该连接请求,判断第2信息处理装置2是否已经访问(Access)服务器6。该第2信息处理装置2的访问也与上述的第1信息处理装置1相同,通过发送第2信息处理装置2的设备ID来进行。因此,在第2信息处理装置2已经访问第1服务器6时,服务器6得知第2信息处理装置2的设备ID“9876543210123456”、第2通信控制装置4的IP地址“131.206.10.240”、在第2信息处理装置2和服务器6之间的信息接收发送中使用的第2通信控制装置4的端口P5的端口序号“23495”,并保存它们。在第2信息处理装置2已经访问服务器6时,开始与基准端口信息的接收有关的处理(步骤S101)。另一方面,在第2信息处理装置2未访问服务器6时,来自第1信息处理装置1的连接请求出错,从而不能建立第1信息处理装置1和第2信息处理装置2之间的通信。
在关于基准端口信息的接收的处理中,服务器6通过第2通信控制装置4的端口P5向第2信息处理装置2进行发送基准端口检测用分组的主旨的发送请求(步骤S201)。这样,该发送请求在第2信息处理装置2的基准端口检测用分组发送部22中被接收。并且,基准端口检测用分组发送部22,从第2信息处理装置2中与此前在与服务器6的通信中使用的端口P6不同的新分配的端口P8,通过第2通信控制装置4发送基准端口检测用分组(步骤S202)。在该基准端口检测用分组的发送中,设在第2通信控制装置4中新分配了端口P7(端口序号“23500”)。该基准端口检测用分组由服务器6的基准端口检测部62接收。并且,作为基准端口P7的位置,检测端口序号“23500”(步骤S203)。
基准端口发送部63从基准端口检测部62接收该端口序号“23500”,构成包含该基准端口P7的端口序号“23500”的基准端口信息,并将该基准端口信息发送到第1信息处理装置1(步骤S204)。该发送通过第1通信控制装置3中的端口P2来进行。第1信息处理装置1的基准端口接收部12通过通信部11接收该基准端口信息,并将包含在该基准端口信息中的基准端口P7的端口序号“23500”传输给气泡分组发送部13。
另外,服务器6向第1信息处理装置1发送表示第2通信控制装置4的IP地址“131.206.10.240”的地址信息(步骤S205)。该地址信息由通信部11接收,并被传输给气泡分组发送部13。这样,气泡分组发送部13可以得知第2通信控制装置4的IP地址“131.206.10.240”。
端口宽度检测用分组发送部15,在检测到通信部11接收到了地址信息时,如图7所示,发送多个端口宽度检测用分组(步骤S206)。此外,在图10中,未明示端口宽度检测用分组的发送。服务器6的端口宽度检测部64接收该端口宽度检测用分组,并检测端口宽度。在此情况下,设检测到端口宽度为“1”(步骤S207)。检测的端口宽度被传输给气泡分组发送端口检测部65。
另外,端口宽度检测用分组发送部26,根据来自服务器6的端口宽度检测部64的指示,发送多个端口宽度检测用分组(步骤S208)。此外,在图10中,也未明示该端口宽度检测用分组的发送。服务器6的端口宽度检测部64接收该端口宽度检测用分组,并检测端口宽度。在此情况下,设检测到端口宽度为“1”(步骤S209)。然后,端口宽度发送部68将该检测的端口宽度“1”发送给第1信息处理装置1(步骤S210)。并且,该端口宽度“1”由端口宽度接收部19接收,并被传输给气泡分组发送部13。
气泡分组发送部13,在发送气泡分组之前,对检测用分组发送部14传输表示发送端口检测用分组的主旨的指示。这样,检测用分组发送部14使用此前在与服务器6的通信中未使用的作为新分配的端口(即,第1信息处理装置1新分配的端口)的端口P9对服务器6的端口P15发送端口检测用分组(步骤S301)。设端口P15是从服务器6指示的端口。该端口检测用分组在第1通信控制装置3中使用新分配的端口P12(端口序号“10040”)被发送。服务器6的气泡分组发送端口检测部65接收该端口检测用分组,并检测第1通信控制装置3的端口P12的端口序号“10040”。气泡分组发送端口检测部65保存该端口P12的端口序号“10040”。
检测用分组发送部14,在端口检测用分组的发送之后,向气泡分组发送部13传送表示发送端口检测用分组的主旨的信息。这样,气泡分组发送部13使用此前在与服务器6的通信中未使用的作为新分配的端口的端口P10向IP地址“131.206.10.240”的第2通信控制装置4发送气泡分组(步骤S302)。在该气泡分组的发送中,对与从基准端口接收部12接收的基准端口P7的端口序号“23500”相距端口宽度接收部19接收的端口宽度“1”的指定倍数即50倍(即,α=50)的端口序号“23550”的端口P17发送气泡分组。另外,该气泡分组使用第1通信控制装置3的端口P13(端口序号“10041”)而被发送。气泡分组发送部13,在气泡分组发送之后,向服务器6发送表示“α=50”的信息。这样,服务器6将该信息发送给第2信息处理装置2。并且,由回信分组发送部24接收表示“α=50”的信息。
气泡分组发送部13,在气泡分组发送之后,向检测用分组发送部14传输表示发送端口检测用分组的指示。这样,检测用分组发送部14使用此前在与服务器6的通信中未使用的作为新分配的端口的端口P11,对服务器6的端口P16发送端口检测用分组(步骤S303)。该端口检测用分组在第1通信控制装置3中使用新分配的端口P14(端口序号“10042”)被发送。这样,气泡分组和端口检测用分组就使用第1通信控制装置3中的不同端口被发送。
服务器6的气泡分组发送端口检测部65接收该端口检测用分组,并检测第1通信控制装置3的端口P14的端口序号“10042”。并且,气泡分组发送端口检测部65保存的端口P12的端口序号“10040”与检测的端口P14的端口序号“10042”之差为“2”,由于是在步骤S207检测的端口宽度“1”的2倍,所以判定为在2次端口检测用分组的发送中使用的第1通信控制装置3中的端口P12、P14与气泡分组发送端口P13连续(步骤S304)。结果,判定为能够检测气泡分组发送端口的位置(步骤S103),气泡分组发送端口检测部65就检测端口P12与端口P14中间的端口序号“10041”,作为气泡分组发送端口的位置(步骤S401)。
气泡分组发送端口发送部67构成包含由气泡分组发送端口检测部65检测的气泡分组发送端口P13的端口序号“10041”的气泡分组发送端口信息,并通过第2通信控制装置4的端口P5将该气泡分组发送端口信息发送给第2信息处理装置2(步骤S402)。该气泡分组发送端口信息在第2信息处理装置2的气泡分组发送端口接收部23中被接收。并且,包含在气泡分组发送端口信息中的气泡分组发送端口P13的端口序号“10041”被传输给回信分组发送部24。
另外,服务器6向第2信息处理装置2发送表示第1通信控制装置3的IP地址“202.132.10.6”的地址信息(步骤S403)。该地址信息由通信部21接收,并被传输给回信分组发送部24。这样,回信分组发送部24就能够得知第1通信控制装置3的IP地址“202.132.10.6”。
回信分组发送部24对IP地址“202.132.10.6”的第1通信控制装置3中的端口序号“10041”的气泡分组发送端口P13发送50个回信分组(步骤S404)。所谓该50个,是与回信分组发送部24从服务器6接收的α的值相对应的。回信分组发送部24使用在第2信息处理装置2中新分配的(即,此前在与服务器6的通信等中未使用的)50个端口P20~P21发送这50个回信分组。因此,该回信分组即使在第2通信控制装置4中也使用新分配的50个端口P18~P19而被发送(参照图12)。此外,在第2通信控制装置4中,由于在发送基准端口检测用分组的时刻所分配的最新端口为端口P7,且气泡分组被发送到端口序号与该端口P7相距50的端口P17,所以,在回信分组发送时已排除了端口P17由第2信息处理装置2以外的设备使用的情况,从而50个回信分组中的任何一个都使用气泡分组发送对象端口P17被发送到第1通信控制装置3。并且,第1通信控制装置3,由于使用PS NAT,且对气泡分组发送对象端口P17发送气泡分组的发送履历保留在第1通信控制装置3中,所以,可以仅接收使用气泡分组发送对象端口P17发送来的回信分组。该回信分组通过第1信息处理装置1的端口P10由回信分组接收部17接收。
在这里,在该具体示例1中,虽然通过接收该回信分组,而建立第1信息处理装置1与第2信息处理装置2之间的通信,但是,下面,接着说明再回信分组的发送。
第2信息处理装置2的回信分组发送部24,在50个回信分组发送之后,通过第2通信控制装置4的端口P5向服务器6发送表示回信分组的发送结束的信息。这样,服务器6接收表示回信分组的发送结束的信息,并通过第1通信控制装置3的端口P2将该信息发送给第1信息处理装置1。第1信息处理装置1的回信分组接收部17,在接收到该信息时,由于已接收到回信分组,所以,获得包含在回信分组17的标头中的发送了回信分组的第2通信控制装置4的端口P17的端口序号“23550”,并将该端口序号和表示发送再回信分组的指示传输给再回信分组发送部18(步骤S105)。此外,在回信分组接收部17未接收到回信分组时,回信分组接收部17就向服务器6发送表示未接收到回信分组的信息。结果,服务器6再次向第2信息处理装置2发送基准端口检测用分组的发送请求,从而再次进行用于建立第1信息处理装置1与第2信息处理装置2的连接的处理(步骤S101~S104)。
再回信分组发送部18对从回信分组接收部17接收的端口序号”23550”的端口P17发送再回信分组(步骤S106)。该再回信分组使用第1通信控制装置3的端口P13和第2通信控制装置4的端口P17而被发送到第2信息处理装置2,并由第2信息处理装置2的再回信分组接收部25接收。
另外,再回信分组发送部18,在再回信分组的发送之后,通过第1通信控制装置3的端口P2向服务器6发送表示再回信分组的发送结束的信息。这样,服务器6接收表示再回信分组的发送结束的信息,并通过第2通信控制装置4的端口P5将该信息发送给第2信息处理装置2。第2信息处理装置2的再回信分组接收部25接收该信息。这时,由于再回信分组接收部25已接收到再回信分组,所以,建立第1信息处理装置1与第2信息处理装置2之间的通信的处理即告结束(步骤S107)。此外,在再回信分组接收部25未接收到再回信分组时,再回信分组接收部25就向服务器6发送表示未接收到再回信分组的信息。结果,服务器6再次向第2信息处理装置2发送基准端口检测用分组的发送请求,从而再次进行用于建立第1信息处理装置1与第2信息处理装置2的连接的处理(步骤S101~S106)。
然后,在第1信息处理装置1与第2信息处理装置2之间通过第1通信控制装置3的端口P13和第2通信控制装置4的端口P17进行不通过服务器6的点对点的利用UDP的通信。
此外,在具体示例1中,虽然说明了使用第1通信控制装置3中的连续的端口发送端口检测用分组和气泡分组的情况,但是,例如在端口P12的端口序号为“10040”、端口P14的端口序号为“10043”时那样,在不使用第1通信控制装置3中的连续的端口发送端口检测用分组和气泡分组时,气泡分组和端口检测用分组的发送反复进行到在端口检测用分组的发送中使用的第1通信控制装置3的端口与气泡分组发送端口成为连续的端口为止(步骤S102、S103)。在这里,在端口检测用分组的发送中使用的第1通信控制装置3的端口与气泡分组发送端口不成为第1通信控制装置3中连续的端口的原因,是第1信息处理装置1以外的装置(图中未示出)与第1通信控制装置3的本地侧连接,并在从端口检测用分组的发送到气泡分组的发送或者从气泡分组的发送到端口检测用分组的发送中对该装置分配了第1通信控制装置3的端口这样的情况。
另外,在该具体示例1中,关于第1信息处理装置1的设备ID的发送、第2信息处理装置2的设备ID的发送以及服务器6的地址信息的发送等装置间的信息的收发,是由第1信息处理装置1等的图中未示出的控制部实现的。这在以下的具体示例中也是一样的。
另外,在图11中,端口检测用分组的发送目的端口P15、P16可以是同一端口,也可以与端口P3相同。
另外,在图11中,在第1通信控制装置3为PS NAT时,端口P9、端口P10、端口P11也可以是同一端口。但是,在此情况下,端口P9(=端口P10、P11)也是在第1次端口检测用分组的发送时新分配的端口。另外,端口P15与端口P16不同。
(具体示例2)在具体示例2中,说明第1通信控制装置3使用Sd NAT而第2通信控制装置4使用PS NAT的情况。
在此情况下,直至从第2信息处理装置2对第1通信控制装置3发送回信分组为止,与具体示例1相同,从而省略其说明。此外,在该具体示例2中,也使用与具体示例1相同的端口序号等进行气泡分组的发送等处理。在该具体示例2的情况下,由于在第1通信控制装置3中使用Sd NAT,即,使用接收过滤规则为无过滤的NAT,所以,从第2信息处理装置2发送的50个回信分组全部通过第1信息处理装置1的端口P10而由回信分组接收部17接收。
回信分组接收部17从各回信分组中获得在回信分组的发送中使用的第2通信控制装置4的端口序号,并将该端口序号传输给再回信分组发送部18。再回信分组发送部18接收该端口序号,并对第2通信控制装置4的接收的各端口序号发送再回信分组(参见图14)。在第1通信控制装置3中使用的Sd NAT,由于其发送端口分配规则是端口敏感(Port Sensitive)类型,所以,能够使用第1通信控制装置3中的气泡分组发送端口P13对第2通信控制装置4进行发送的仅是向第2通信控制装置4的气泡分组发送对象端口P17发送分组的情况。因此,如图14所示,发送给气泡分组发送对象端口P17以外的再回信分组使用在第1通信控制装置3中新分配的端口P22~P23进行发送。第2通信控制装置4,由于使用PS NAT,所以不能接收来自发送回信分组的第1通信控制装置3的端口以外的再回信分组。因此,第2信息处理装置2的再回信分组接收部25可以仅接收向气泡分组发送对象端口P17发送的再回信分组。这样,就建立了第1信息处理装置1与第2信息处理装置2之间的通信。
在这里,说明从第1信息处理装置1对第2通信控制装置4发送再回信分组的意义。即使第1信息处理装置1接收到了回信分组,也不会通过该回信分组所通过的端口可靠地建立第1信息处理装置1与第2信息处理装置2之间的通信。如上述具体示例2那样,能够仅对所接收的回信分组中通过气泡分组发送对象端口P17发送的回信分组的路径建立通信。另外,还考虑以下情况。在具体示例2中,即使回信分组是不使用气泡分组发送对象端口P17而发送的情况(例如,直至回信分组的发送为止,气泡分组发送对象端口P17由其他设备使用的情况),第1信息处理装置1也能够接收所有的回信分组。但是,即使第1信息处理装置1发送对该回信分组的再回信分组,第2信息处理装置2也不接收该再回信分组,从而不会建立通信。这样,通过再回信分组的发送,能够确认在第1信息处理装置1与第2信息处理装置2之间可以建立的点对点的通信中使用的端口的位置,另外,可以确认是否能够建立第1信息处理装置1与第2信息处理装置2之间的通信。
(具体示例3)在具体示例3中,说明第1通信控制装置3使用Sd NAT而第2通信控制装置4使用AS NAT的情况。在该具体示例3中,说明在第1信息处理装置1与第2信息处理装置2之间建立不使用气泡分组发送对象端口的通信的特殊情况。
图15是用于说明第2信息处理装置2的回信分组的发送的图。在该回信分组的发送中,由于气泡分组发送对象端口P17已由其他设备使用,所以,回信分组通过不包括气泡分组发送对象端口P17的第2通信控制装置4中的端口P24~P25进行发送。由于第1通信控制装置3使用无过滤的NAT,所以,第1信息处理装置1接收所有的回信分组。
图16是用于说明再回信分组的发送的图。如图16所示,再回信分组发送部18对第2通信控制装置4的端口P24~P25发送再回信分组。在此情况下,由于第1通信控制装置3使用了Sd NAT,所以,使用新分配的端口P26~P27对第2通信控制装置4的端口P24~P25发送再回信分组。由于第2通信控制装置4使用了AS NAT,即地址敏感(Address Sensitive)过滤的NAT,所以,这些再回信分组由第2通信控制装置4接收,并被传输给第2信息处理装置2的端口P20~P21。然后,第2信息处理装置2可以选择再回信分组中的任意一个分组(例如,最初到达的分组等),通过该再回信分组的发送路径(例如,第1通信控制装置3的端口P26、第2通信控制装置4的端口P24)进行与第1信息处理装置1的通信。
该具体示例3的情况,在第1通信控制装置3使用无过滤或者AS过滤,而第2通信控制装置4使用无过滤或AS过滤时是恰当的。因此,在此情况下,只要能够正确地把握气泡分组发送端口P13的位置,就能够可靠地实现第1信息处理装置1与第2信息处理装置2的连接。
另外,在第1通信控制装置3中使用的NAT为无过滤时,可以由第1信息处理装置1接收所有的回信分组。另外,在第1通信控制装置3中使用的NAT为AS过滤时,由于也对第2通信控制装置4发送气泡分组,所以,可以由第1信息处理装置1接收所有的回信分组。另外,在第1通信控制装置3中使用的NAT的端口分配规则为Cone或地址敏感(AddressSensitive)时,第1信息处理装置1对接收的回信分组能够进行使用气泡分组发送端口P13的再回信分组的发送。因此,在第1通信控制装置3中使用的NAT的过滤为无过滤或AS过滤而端口分配规则为Cone或地址敏感(Address Sensitive)时,不论第2通信控制装置4的NAT的类型如何,只要可以正确地把握气泡分组发送端口P13的位置,就可以可靠地实现第1信息处理装置1与第2信息处理装置2的连接。
从以上可知,如图17所示,在本实施方式的通信系统中,不论在第1通信控制装置3和第2通信控制装置4中使用的NAT的类型如何,都可以建立通信。结果,不进行对于在第1通信控制装置3和第2通信控制装置4中使用的NAT的类型的判断,就可以建立第1信息处理装置1与第2信息处理装置2之间的通信。特别是,在这些NAT的组合为特定的组合的情况下,即使不使用气泡分组发送对象端口发送回信分组,但在能够正确地检测气泡分组发送端口的位置时也能够建立第1信息处理装置1与第2信息处理装置2之间的通信(图17的“◎”的情况)。此外,在除此以外的情况(图17的“○”的情况)下,即使能够正确地检测到气泡分组发送端口的位置,但如果未使用气泡分组发送对象端口发送回信分组,也不能建立通信。因此,这时,反复进行用于建立通信的处理,直到能够使用气泡分组发送对象端口发送回信分组为止。另外,如图17所示,第1通信控制装置3和第2通信控制装置4也可以是Open NAT(不使用NAT)。
(实施方式2)下面,参照

本发明的实施方式2的通信系统。本实施方式的通信系统,通过不是由服务器进行而是在信息处理装置中进行气泡分组发送端口的检测、端口宽度的检测等,来减轻服务器的处理负荷。
本实施方式的通信系统的结构,除了具备第1信息处理装置10、第2信息处理装置20、服务器60而取代第1信息处理装置1、第2信息处理装置2、服务器6以外,其他均与图1相同,从而省略其说明。
图18是表示本实施方式的第1信息处理装置10的结构的方框图。在图18中,第1信息处理装置10具备通信部11、基准端口接收部12、气泡分组发送部13、检测用分组发送部14、端口宽度检测用分组发送部15、回信分组接收部17、再回信分组发送部18、端口宽度接收部19、检测用端口信息接收部71、气泡分组发送端口检测部72、气泡分组发送端口发送部73、端口宽度检测用端口信息接收部74和端口宽度检测部75。此外,检测用端口信息接收部71、气泡分组发送端口检测部72、气泡分组发送端口发送部73、端口宽度检测用端口信息接收部74、端口宽度检测部75以外的结构和动作,除了端口宽度接收部19接收从第2信息处理装置20通过服务器60发送来的端口宽度信息以外,其他均与实施方式1相同,从而省略其说明。
检测用端口信息接收部71通过通信部11接收从服务器60发送来的检测用端口信息。在这里,所谓检测用端口信息,指表示由检测用分组发送部14发送的端口检测用分组所通过的第1通信控制装置3的端口的位置的信息。
气泡分组发送端口检测部72,根据检测用端口信息接收部71接收的检测用端口信息,检测气泡分组发送端口的位置。气泡分组发送端口检测部72,使用端口宽度检测部75检测的第1通信控制装置3中的端口宽度,检测气泡分组发送端口的位置。该气泡分组发送端口的位置的检测与实施方式1的气泡分组发送端口检测部65同样地进行,从而省略其说明。此外,气泡分组发送端口检测部72,在不能检测到气泡分组发送端口的位置时,向检测用分组发送部14传输表示再次发送端口检测用分组的指示,向气泡分组发送部13传输表示再次发送气泡分组的指示。结果,检测用分组发送部14根据该指示再次发送端口检测用分组。另外,气泡分组发送部13也根据该指示再次发送气泡分组。此外,该再次发送反复进行到气泡分组发送端口检测部72能够检测到气泡分组发送端口的位置为止,或者反复进行到指定的上限次数(例如10次等)、指定的时间(例如30秒等)等指定的限制为止。
气泡分组发送端口发送部73通过服务器60向第2信息处理装置20发送表示气泡分组发送端口检测部72检测的气泡分组发送端口的位置的气泡分组发送端口信息。
端口宽度检测用端口信息接收部74接收端口宽度检测用端口信息。在这里,所谓端口宽度检测用端口信息,指表示由端口宽度检测用分组发送部15发送的端口宽度检测用分组所通过的第1通信控制装置3的端口的位置的信息。该端口宽度检测用端口信息是从服务器60发送的。
端口宽度检测部75,根据端口宽度检测用端口信息接收部74接收的端口宽度检测用端口信息,检测第1通信控制装置3中的端口宽度。该端口宽度的检测,与实施方式1的端口宽度检测部64同样地进行,从而省略其说明。
图19是表示本实施方式的第2信息处理装置20的结构的方框图。在图19中,第2信息处理装置20具备通信部21、基准端口检测用分组发送部22、气泡分组发送端口接收部23、回信分组发送部24、再回信分组接收部25、端口宽度检测用分组发送部26、端口宽度检测用端口信息接收部81、端口宽度检测部82和端口宽度发送部83。此外,除端口宽度检测用端口信息接收部81、端口宽度检测部82、和端口宽度发送部83以外的结构和动作与实施方式1相同,从而省略其说明。
端口宽度检测用端口信息接收部81接收端口宽度检测用端口信息。在这里,所谓端口宽度检测用端口信息,指表示由端口宽度检测用分组发送部26发送的端口宽度检测用分组所通过的第2通信控制装置4的端口的位置的信息。该端口宽度检测用端口信息是从服务器60发送的。
端口宽度检测部82,根据端口宽度检测用端口信息接收部81接收的端口宽度检测用端口信息,检测第2通信控制装置4中的端口宽度。该端口宽度的检测,与实施方式1中的端口宽度检测部64同样地进行,从而省略其说明。
端口宽度发送部83通过服务器60向第1信息处理装置10发送表示端口宽度检测部82检测的第2通信控制装置4中的端口宽度的信息,即端口宽度信息。
图20是表示本实施方式的服务器60的结构的方框图。在图20中,服务器60具备通信部61、基准端口检测部62、基准端口发送部63、检测用端口检测部91、检测用端口信息发送部92、端口宽度检测用端口检测部93和端口宽度检测用端口信息发送部94。此外,除检测用端口检测部91、检测用端口信息发送部92、端口宽度检测用端口检测部93、端口宽度检测用端口信息发送部94以外的结构和动作与实施方式1相同,从而省略其说明。
检测用端口检测部91接收从第1信息处理装置10发送来的端口检测用分组,并根据该端口检测用分组,检测端口检测用分组所通过的第1通信控制装置3的端口的位置。该端口位置的检测,通过获得包含在端口检测用分组中的(例如包含在端口检测用分组的标头中的)端口检测用分组所通过的第1通信控制装置3的端口的位置而进行。
检测用端口信息发送部92向第1信息处理装置10发送表示检测用端口检测部91检测的端口的位置的检测用端口信息。
端口宽度检测用端口检测部93接收从第1信息处理装置10通过第1通信控制装置3发送来的端口宽度检测用分组,并根据该端口宽度检测用分组,检测该端口宽度检测用分组所通过的第1通信控制装置3的端口的位置。另外,端口宽度检测用端口检测部93接收从第2信息处理装置20通过第2通信控制装置4发送来的端口宽度检测用分组,并根据该端口宽度检测用分组,检测该端口宽度检测用分组所通过的第2通信控制装置4的端口的位置。
端口宽度检测用端口信息发送部94向第1信息处理装置10发送表示端口宽度检测用端口检测部93检测的、端口宽度检测用分组所通过的第1通信控制装置3的端口的位置的端口宽度检测用端口信息。另外,端口宽度检测用端口信息发送部94向第2信息处理装置20发送表示端口宽度检测用端口检测部93检测的、端口宽度检测用分组所通过的第2通信控制装置4的端口的位置的端口宽度检测用端口信息。
另外,也可以具备检测端口宽度检测用分组所通过的第1通信控制装置3中的端口的位置的第1端口宽度检测用端口检测部、和检测端口宽度检测用分组所通过的第2通信控制装置4中的端口的位置的第2端口宽度检测用端口检测部。同样,也可以具备向第1信息处理装置10发送表示端口宽度检测用分组所通过的第1通信控制装置3中的端口的位置的端口宽度检测用端口信息的第1端口宽度检测用端口信息发送部、和向第2信息处理装置20发送表示端口宽度检测用分组所通过的第2通信控制装置4中的端口的位置的端口宽度检测用端口信息的第2端口宽度检测用端口信息发送部。用1个结构实现这些功能的就是端口宽度检测用端口检测部93和端口宽度检测用端口信息发送部94。也就是说,端口宽度检测用端口检测部93中检测端口宽度检测用分组所通过的第1通信控制装置3中的端口的位置的部分作为第1端口宽度检测用端口检测部,而检测端口宽度检测用分组所通过的第2通信控制装置4中的端口的位置的部分作为第2端口宽度检测用端口检测部。同样,端口宽度检测用端口信息发送部94中向第1信息处理装置10发送表示端口宽度检测用分组所通过的第1通信控制装置3中的端口的位置的端口宽度检测用端口信息的部分作为第1端口宽度检测用端口信息发送部,而向第2信息处理装置20发送表示端口宽度检测用分组所通过的第2通信控制装置4中的端口的位置的端口宽度检测用端口信息的部分作为第2端口宽度检测用端口信息发送部。
下面,说明本实施方式的通信系统的动作。本实施方式的通信系统直至开始进行通信为止的动作,除了气泡分组发送端口的检测、气泡分组等的再发送的指示等由第1信息处理装置10执行以外,其他均与实施方式1的图5所示的动作相同,从而省略其说明。
下面,使用图21说明图5的流程图中的步骤S101的处理。图21是用于说明发送侧、服务器、接收侧之间的信息的交换、处理等的图。此外,步骤S201~S206的处理与关于实施方式1的图6所说明的相同,从而省略其说明。
(步骤S501)服务器60的端口宽度检测用端口检测部93接收从第1信息处理装置10发送来的端口宽度检测用分组。并且,端口宽度检测用端口检测部93检测包含在端口宽度检测用分组的标头中的、该端口宽度检测用分组所通过的第1通信控制装置3的端口的位置。
(步骤S502)端口宽度检测用端口信息发送部94向第1信息处理装置10发送表示由端口宽度检测用端口检测部93检测的、端口宽度检测用分组所通过的第1通信控制装置3的端口的位置的信息,即端口宽度检测用端口信息。该端口宽度检测用端口信息由第1信息处理装置10中的端口宽度检测用端口信息接收部74接收。
(步骤S503)端口宽度检测部75根据由端口宽度检测用端口信息接收部74接收的端口宽度检测用端口信息,检测第1通信控制装置3的端口宽度。该端口宽度的检测与实施方式1同样地进行,从而省略其说明。
(步骤S504)服务器60的端口宽度检测用端口检测部93接收从第2信息处理装置20发送来的端口宽度检测用分组。并且,端口宽度检测用端口检测部93检测包含在端口宽度检测用分组的标头中的、该端口宽度检测用分组所通过的第2通信控制装置4的端口的位置。
(步骤S505)端口宽度检测用端口信息发送部94向第2信息处理装置20发送表示由端口宽度检测用端口检测部93检测的、端口宽度检测用分组所通过的第2通信控制装置4的端口的位置的信息,即端口宽度检测用端口信息。该端口宽度检测用端口信息由第2信息处理装置20中的端口宽度检测用端口信息接收部81接收。
(步骤S506)端口宽度检测部82根据由端口宽度检测用端口信息接收部81接收的端口宽度检测用端口信息,检测第2通信控制装置4的端口宽度。该端口宽度的检测与实施方式1同样地进行,从而省略其说明。
(步骤S507)端口宽度发送部83将表示第2通信控制装置4的端口宽度的信息即端口宽度信息与表示将该端口宽度信息发送给第1信息处理装置10的指示一起发送给服务器60。
(步骤S508)服务器60的通信部61接收端口宽度信息,并将该端口宽度信息发送给第1信息处理装置10。该端口宽度信息由第1信息处理装置10中的端口宽度接收部19接收。
下面,使用图22说明图5的流程图中的步骤S102的处理。图22是用于说明发送侧、服务器、接收侧之间的信息的交换、处理等的图。此外,步骤S301~S303的处理,除了端口检测用分组由服务器60中的检测用端口检测部91接收以外,其他均与关于实施方式1的图8所说明的相同,从而省略其说明。
(步骤S601)服务器60的检测用端口检测部91接收从第1信息处理装置10发送来的端口检测用分组。并且,检测用端口检测部91检测包含在端口检测用分组的标头中的该端口检测用分组所通过的第1通信控制装置3的端口的位置。
(步骤S602)检测用端口信息发送部92向第1信息处理装置10发送表示由检测用端口检测部91检测的、端口检测用分组所通过的第1通信控制装置3的端口的位置的检测用端口信息。该检测用端口信息由第1信息处理装置10中的检测用端口信息接收部71接收。
(步骤S603)服务器60的检测用端口检测部91接收从第1信息处理装置10发送来的端口检测用分组。并且,检测用端口检测部91检测包含在端口检测用分组的标头中的该端口检测用分组所通过的第1通信控制装置3的端口的位置。
(步骤S604)检测用端口信息发送部92向第1信息处理装置10发送表示由检测用端口检测部91检测的、端口检测用分组所通过的第1通信控制装置3的端口的位置的检测用端口信息。该检测用端口信息由第1信息处理装置10中的检测用端口信息接收部71接收。
(步骤S605)第1信息处理装置10的气泡分组发送端口检测部72判断在步骤S301、S303的2次端口检测用分组的发送中使用的第1通信控制装置3的端口的位置与气泡分组发送端口是否连续。此外,关于具体的判断方法,与实施方式1相同,从而省略其说明。
以上,虽然说明了在图22的流程图中第1信息处理装置10在接收到在步骤S602发送的检测用端口信息之后发送气泡分组的情况,但是,检测用端口信息的接收和气泡分组的发送的顺序并不限于此。例如,也可以在进行第2次端口检测用分组的发送(步骤S303)之后,进行第1次检测用端口信息的发送(S602)和第2次检测用端口信息的发送(步骤S604)。另外,也可以将表示在步骤S601、S603检测的端口位置的检测用端口信息一起发送。
下面,使用图23说明图5的流程图中的步骤S104的处理。图23是用于说明发送侧、服务器、接收侧之间的信息的交换、处理等的图。此外,步骤S403、S404的处理,与关于实施方式1的图9所说明的相同,从而省略其说明。
(步骤S701)第1信息处理装置10的气泡分组发送端口检测部72检测气泡分组发送端口的位置。关于具体的判断方法,与实施方式1相同,从而省略其说明。
(步骤S702)第1信息处理装置10的气泡分组发送端口发送部73将气泡分组发送端口信息与表示向第2信息处理装置20发送该气泡分组发送端口信息的指示一起发送给服务器60。
(步骤S703)服务器60的通信部61接收气泡分组发送端口信息,并将该气泡分组发送端口信息发送给第2信息处理装置20。该气泡分组发送端口信息由第2信息处理装置20中的气泡分组发送端口接收部23接收。
此外,关于本实施方式的通信系统的动作的具体示例,除了分别由第1信息处理装置10和第2信息处理装置20进行第1通信控制装置3和第2通信控制装置4中的端口宽度的检测、由第1信息处理装置10进行气泡分组发送端口的位置的检测、并进行随之的处理(例如,气泡分组发送端口信息的从第1信息处理装置10到第2信息处理装置20的发送等)以外,其他均与实施方式1的具体示例相同,从而省略其说明。
从以上可知,在本实施方式的通信系统中,除了与实施方式1相同的效果之外,还能够通过在第1信息处理装置10和第2信息处理装置20中进行第1通信控制装置3和第2通信控制装置4中的端口宽度的检测、气泡分组发送端口的位置的检测等,来减轻服务器60的处理负担。特别是由于等待接收的必要处理(例如,在第1次端口检测用分组被发送之后,等待第2次发送端口检测用分组的处理等),其处理负担很大,所以,通过不由服务器进行这样的等待接收的必要处理,而将大幅度地减轻服务器60中的处理负担。
此外,在本实施方式中,虽然说明了由第1信息处理装置10进行第1通信控制装置3中的端口宽度的检测的情况,但是,也可以在第1信息处理装置10中进行气泡分组发送端口的检测和气泡分组发送端口的发送,而第1通信控制装置3中的端口宽度的检测与实施方式1一样在服务器中进行。同样,也可以与实施方式1一样,在服务器中进行第2通信控制装置4中的端口宽度的检测和气泡分组发送端口的位置的检测中的任意一项。
另外,在本实施方式中,虽然说明了由第2信息处理装置20进行第2通信控制装置4中的端口宽度的检测的情况,但是,也可以在第1信息处理装置10中进行第2通信控制装置4中的端口宽度的检测。这样,就可以不通过服务器60从第2信息处理装置20向第1信息处理装置10发送端口宽度信息。在此情况下,表示从第2信息处理装置20发送的端口宽度检测用分组所通过的第2通信控制装置4中的端口的位置的信息,即端口宽度检测用端口信息,就从服务器60被发送到第1信息处理装置10。
另外,在本实施方式中,虽然说明了由第1信息处理装置10进行气泡分组发送端口的检测的情况,但是,也可以在第2信息处理装置20中进行气泡分组发送端口的检测。这样,可以不通过服务器60从第1信息处理装置10向第2信息处理装置20发送气泡分组发送端口信息。在此情况下,表示从第1信息处理装置10发送的端口检测用分组所通过的第1通信控制装置3中的端口的位置的信息,即检测用端口信息,就从服务器60被发送到第2信息处理装置20。另外,在此情况下,也可以在第2信息处理装置20中进行第1通信控制装置3中的端口宽度的检测。
另外,在本实施方式中,虽然说明了基准端口信息从服务器60被发送到第1信息处理装置10的情况,但是,基准端口信息也可以被发送到发送了基准端口检测用分组的第2信息处理装置20。在此情况下,基准端口信息再次从第2信息处理装置20通过服务器60被发送到第1信息处理装置10。
另外,在本实施方式中,也可以在端口宽度检测用分组、基准端口检测用分组、端口检测用分组中包含用于确定信息处理装置的信息(例如,设备ID、IP地址等),该信息处理装置发送了表示这些分组所通过的通信控制装置中的端口的位置的信息,而在服务器60中,则根据该信息发送表示检测的端口的位置的信息。例如,也可以在端口宽度检测用分组发送部15发送的端口宽度检测用分组中,包含作为端口宽度检测用端口信息的发送目的地的第1信息处理装置10的设备ID,而端口宽度检测用端口信息发送部94则向与该设备ID对应的第1信息处理装置10发送端口宽度检测用端口信息。
(实施方式3)下面,参照

本发明的实施方式3的通信系统。本实施方式的通信系统是单方的信息处理装置不通过通信控制装置直接进行通信的情况。
图24是表示本实施方式的通信系统的结构的方框图。在图24中,本实施方式的通信系统具备第1信息处理装置1、第2信息处理装置2、第1通信控制装置3和服务器6。此外,图24所示的本实施方式的通信系统,除了不具备第2通信控制装置以外,其他均与实施方式1的通信系统相同。另外,第1信息处理装置1、第2信息处理装置2、服务器6的结构和动作与实施方式1相同,从而省略其说明。
在这里,由于第2信息处理装置2不通过通信控制装置进行通信,所以,推断为第2信息处理装置2将通过完全Cone NAT的通信控制装置进行通信。因此,本实施方式的动作,成为与实施方式1中第2通信控制装置4是完全Cone NAT的情况相同的处理,可以建立第1信息处理装置1与第2信息处理装置2之间的通信(在图17中,单方的NAT为Open NAT时与本实施方式对应)。
如上所述,根据本实施方式的通信系统,即使第2信息处理装置2不通过通信控制装置进行通信时,也能够建立第1信息处理装置1与第2信息处理装置2之间的通信。
此外,在本实施方式中,虽然说明了在实施方式1的通信系统中不具备第2通信控制装置的结构,但也可以是在实施方式2的通信系统中不具备第2通信控制装置的结构。这样,即使在第2信息处理装置不通过通信控制装置时也能够建立第1信息处理装置与第2信息处理装置之间的通信。
另外,在本实施方式中,虽然说明了第2信息处理装置2不通过通信控制装置进行通信的情况,但在第2信息处理装置2通过通信控制装置进行通信而第1信息处理装置1不通过通信控制装置进行通信的情况下,同样也能够建立第1信息处理装置1与第2信息处理装置2之间的通信。
此外,在上述各实施方式中,虽然说明了服务器6、60具有向信息处理装置通知对方的通信控制装置的IP地址的功能的情况,但是,该功能也可以在与服务器6等不同的服务器中实现。也就是说,向一方的信息处理装置通知另一方的通信控制装置的地址的服务器也可以是与进行检测气泡分组发送端口的处理等的服务器不同的服务器。也就是说,在图25所示的通信系统中,可以是第1信息处理装置1和第2信息处理装置2从地址服务器6b获得第1通信控制装置3和第2通信控制装置4的地址,而在建立信息处理装置间的通信的处理中则使用服务器6a。
另外,在向一方的信息处理装置通知另一方的通信控制装置(不具备通信控制装置的情况下为信息处理装置)的地址的处理、呼叫侧的信息处理装置呼叫对方侧(被叫侧)的信息处理装置的处理等中,也可以使用SIP(会话发起协议Session Initiation Protocol)。
此外,在上述各实施方式中,虽然说明了基准端口为在基准端口检测用分组发送时最新分配的端口,但是,该基准端口也可以不是最新分配的端口。例如,在与第2通信控制装置4连接的设备仅是第2信息处理装置2、20,且能够大体掌握在第2通信控制装置4中使用的端口数的情况下,也可以将在与服务器6、60的通信中使用的第2通信控制装置4的端口作为基准端口。在此情况下,基准端口检测用分组就成为与服务器6、60进行通信的分组。
另外,在上述各实施方式中,虽然主要说明了在气泡分组发送的前后2次发送端口检测用分组的情况,但是,也可以仅在气泡分组发送的前或后发送一次端口检测用分组。在此情况下,假定气泡分组发送端口与在端口检测用分组的发送中使用的第1通信控制装置3的端口连续,而进行气泡分组发送端口的检测。如果该假定不正确,则再次进行基准端口检测用分组的发送等(反复进行从步骤S101开始的处理)。
另外,在上述各实施方式中,虽然说明了在判断是否能够由气泡分组发送端口检测部65、72检测气泡分组发送端口的位置之后进行气泡分组发送端口的位置的检测的情况,但是,在指定的情况下,也可以不进行该判断而进行气泡分组发送端口的位置的检测。所谓指定的情况,指例如除了第1信息处理装置1、10以外,其余均不与第1通信控制装置3连接,而气泡分组发送端口与在端口检测用分组的发送中使用的第1通信控制装置3的端口连接的可能性高的情况等。如果这时检测的气泡分组发送端口的位置是错误的,则只要在第1通信控制装置3中使用的NAT的类型是指定的,第1信息处理装置1、10就不接收回信分组,从而再次反复进行从基准端口检测用分组的发送开始的处理。
另外,在气泡分组发送端口检测部65、72中,在判定气泡分组发送端口与在端口检测用分组的发送中使用的第1通信控制装置3的端口不连续时,可以如上述各实施方式中所说明的那样向第1信息处理装置1发送再发送指示或向气泡分组发送装置13等发送再发送的指示,或者也可以结束通信的建立处理而再次进行从基准端口检测用分组的发送开始的处理。
另外,在气泡分组发送端口检测部65、72中,在连续的可能性高的情况下,也可以通过判定是连续的而进行气泡分组发送端口与在端口检测用分组的发送中使用的第1通信控制装置3的端口是否连续的判断。例如,在第1通信控制装置3的端口宽度可以在“1”和“2”间变化时(例如,随时间而变化时),由于如果在端口检测用分组的发送中使用的第1通信控制装置3的端口的间隔为“2”、“3”、“4”就存在连续的可能性,所以也可以判定是连续的,从而前进到其后的处理。在此情况下,例如,如果在端口检测用分组的发送中使用的第1通信控制装置3的端口的间隔为“5”,就判定是不连续的。
另外,在上述各实施方式中,虽然说明了由端口宽度检测部64、75、82检测端口宽度的情况,但是,该端口宽度也可以通过用户的输入、指定的记录介质(例如CD-ROM、可装卸的存储器等)、通信等传输到服务器6、60或第1信息处理装置1、10等,或者,也可以获得在第1通信控制装置3等中存储的端口宽度。对于第1信息处理装置1、10等获知第2通信控制装置4等的IP地址的情况也可以这样说。也就是说,IP地址也可以通过用户的输入等被输入到第1信息处理装置1、10等。
另外,在上述各实施方式中,虽然说明了第1信息处理装置1、10使用第1信息处理装置1、10的各自新的端口发送气泡分组和端口检测用分组的情况,但是,在例如第1信息处理装置1检测到第1通信控制装置3使用作为端口敏感的端口分配规则的NAT的情况下,第1信息处理装置1、10也可以从第1信息处理装置1、10的相同的端口发送气泡分组和端口检测用分组。但是,在此情况下,端口检测用分组的发送目的端口(服务器6、60的端口)必须是不同的。
另外,在上述各实施方式中,虽然说明了使用回信分组发送时新分配的第2通信控制装置4的端口发送回信分组的情况,但是,这是一个例子,在回信分组的发送中使用的第2通信控制装置4的端口之中也可以包含此前所使用的端口,例如在基准端口检测用分组的发送中使用的端口等。
另外,进行气泡分组等的再发送时,也可以增大从基准端口到气泡分组发送对象端口之中能够分配的端口的数量(α)。也就是说,气泡分组发送部13,在再发送气泡分组等时,也可以对距基准端口更远的气泡分组发送对象端口发送气泡分组。这样,在发送回信分组之前,更容易避免使用气泡分组发送对象端口。
另外,在上述各实施方式中,虽然说明了回信分组发送部24,从气泡分组发送部13通过服务器6,接收在基准端口到气泡分组发送对象端口之中能够分配的端口的数量(α)的情况,但是,该α的值,也可以从服务器6、60发送到气泡分组发送部13和回信分组发送部24(这时,端口宽度信息也可以发送到第1信息处理装置1),另外,也可以在第1信息处理装置1、10和第2信息处理装置2、20中预先设定该α的值。
另外,在上述各实施方式中,虽然说明了回信分组发送部24发送从基准端口到气泡分组发送对象端口之中可能分配的端口数(α)的回信分组,但是,回信分组发送部24也可以发送α以上的回信分组,也可以发送α以下的回信分组。例如,回信分组发送部24也可以不通过服务器6、60从气泡分组发送部13接收α的值,而接收基准端口与气泡分组发送对象端口的端口序号的差值,从而发送与该差值对应的数量的回信分组。在此情况下,回信分组发送部24发送α的倍数个的回信分组。在这里,如关于图6的步骤S209的说明中所述,在由端口宽度检测部68、82检测的第2通信控制装置4中的端口宽度有可能是实际的端口宽度的倍数的情况下,可以将基准端口与气泡分组发送对象端口的端口序号的差值作为回信分组的个数。这样,可以更可靠地进行使用气泡分组发送对象端口的回信分组的发送。另外,例如在第2信息处理装置2、20知道在第2通信控制装置4中分配基准端口之后分配的端口的数量时,也可以发送从α中减去该数量后的数量的回信分组。这样,回信分组也使用气泡分组发送对象端口来发送(但是,第2通信控制装置4的端口宽度的检测必须是正确的)。因此,在分配到气泡分组发送对象端口之前的1个端口时,也可以只发送1个回信分组。
另外,在上述各实施方式中,虽然说明了在接收到回信分组之后发送再回信分组的情况,但是,在通过回信分组的接收而能够建立第1信息处理装置1、10与第2信息处理装置2、20之间的通信的情况下,也可以不发送再回信分组。例如,在第1信息处理装置1、10接收到使用气泡分组发送对象端口发送来的回信分组时,由于能够进行通过气泡分组发送端口和气泡分组发送对象端口的点对点通信,所以也可以不发送再回信分组。
另外,在上述各实施方式的具体示例中,虽然是在通过服务器6、60接收到表示从第2信息处理装置2、20发送回信分组的指示时,根据是否已接收到回信分组而判断是否能够接收回信分组,但是,例如在发送气泡分组之后经过指定时间(例如15秒等)还未接收到回信分组的情况下,就可以判定为不能接收回信分组(即,不能建立通信)。另外,这对再回信分组也是同样的,在发送回信分组之后经过指定时间还未接收到再回信分组时,也可以判定为不能接收再回信分组(即,不能建立通信)。
另外,在上述各实施方式中,虽然说明了利用1个服务器6、60进行基准端口信息的发送、气泡分组发送端口的检测等情况,但是,也可以利用多个服务器进行这些处理。
(实施方式4)下面,参照

本发明的实施方式4的通信系统。在本实施方式的通信系统中,使用在上述各实施方式中说明的气泡分组发送端口的位置的检测方法进行利用SIP的通信。
图26是表示本实施方式的通信系统的结构的方框图。在图26中,本实施方式的通信系统具有第1信息处理装置30、通信控制装置3、第2信息处理装置40、端口检测服务器51和SIP服务器52。此外,通信控制装置3具有NAT功能,进行地址的变换、端口的分配、分组的过滤等,由于与上述各实施方式的第1通信控制装置3相同,所以省略其说明。
图27是表示本实施方式的第1信息处理装置30的结构的方框图。在图27中,第1信息处理装置30具备通信部11、气泡分组发送部13、检测用分组发送部14、端口宽度检测用分组发送部15、检测用端口信息接收部71、气泡分组发送端口检测部72、端口宽度检测用端口信息接收部74、端口宽度检测部75和SIP处理部31。此外,除了SIP处理部31以外的结构和动作与实施方式2相同,从而省略其说明。但是,气泡分组发送部13不根据基准端口接收部12接收的基准端口信息所表示的基准端口的位置发送气泡分组,而是根据从SIP处理部31接收的表示气泡分组发送对象端口的位置的信息对该气泡分组发送对象端口发送气泡分组。
SIP处理部31进行与SIP有关的处理。具体而言,在与SIP服务器52之间进行连接请求的发送、通信对方的地址、端口序号等的获得等处理。这些处理,由于与以往所进行的处理相同,所以省略其说明。
第2信息处理装置40是通过SIP服务器52与其他客户终端进行点对点的语音通信的终端设备(例如,VoIP的电话终端设备)。第2信息处理装置40能够通过SIP服务器52向其他客户终端发送第2信息处理装置40的IP地址、发送端口的位置、接收端口的位置,另外,通过SIP服务器52接收其他客户终端的接收端口,并在点对点的语音通信中将分组的发送目的地设定为该接收端口。在这里,所谓某一客户终端的发送端口,指该客户终端对其他客户终端发送信息的端口。另外,所谓某一客户终端的接收端口,指该客户终端从其他客户终端接收信息的端口。第2信息处理装置40是SIP的一般的客户终端,并省略其详细的说明。
图28是表示本实施方式的端口检测服务器51的结构的方框图。在图28中,端口检测服务器51进行用于检测从第1信息处理装置30发送的气泡分组所通过的通信控制装置3的端口的位置的处理。端口检测服务器51具备通信部61、检测用端口检测部91、检测用端口信息发送部92、端口宽度检测用端口检测部93和端口宽度检测用端口信息发送部94。此外,这些部分的各结构与实施方式2相同,从而省略其说明。
SIP服务器52是进行与SIP有关的处理的服务器。作为与SIP有关的处理,例如是接收来自客户端的地址通知而登记地址的登记(register)处理、管理客户端的地址的定位·服务的处理、接收来自客户端的呼叫请求而在定位·服务中检索目的地的地址从而向目的地的客户端传输的代理服务器的处理等。该SIP服务器52所具有的各功能也可以由2个以上的服务器实现。另外,也可以在第1信息处理装置30侧和第2信息处理装置40侧分别具有该SIP服务器。在此情况下,利用例如第1信息处理装置30、第1SIP服务器、第2SIP服务器和第2信息处理装置40这样的路径进行从第1信息处理装置30到第2信息处理装置40的信息的中继。该SIP服务器52的处理,由于与以往所进行的处理相同,所以省略其说明。
下面,说明本实施方式的通信系统的动作。图29是用于说明呼叫侧、端口检测服务器51、SIP服务器52、被叫侧之间的信息的交换、处理等的图。此外,在图29中,第1信息处理装置30、通信控制装置3作为呼叫侧,第2信息处理装置40作为被叫侧。
(步骤S801)在作为呼叫侧的装置的第1信息处理装置30与端口检测服务器51之间,通过进行指定的分组的收发,来检测呼叫侧的通信控制装置3的端口宽度。关于该端口宽度的检测的具体处理,与实施方式2的图21中的步骤S206、S501、S502、S503相同,从而省略其说明。
(步骤S802)第1信息处理装置30向SIP服务器52发送表示请求与第2信息处理装置40通信的通信请求。在该通信请求中,包含表示向第1信息处理装置30发送通信目的地的客户端(即第2信息处理装置40)的IP地址、发送端口的位置和接收端口的位置的指示。
(步骤S803)SIP服务器52将从第1信息处理装置30发送来的通信请求中继给第2信息处理装置40。并且,该通信请求由第2信息处理装置40接收。
(步骤S804)第2信息处理装置40向SIP服务器52发送包含表示第2信息处理装置40的IP地址、发送端口的位置和接收端口的位置的信息的通信目的地信息。
(步骤S805)SIP服务器52将从第2信息处理装置40发送来的通信目的地信息中继给第1信息处理装置30。并且,该通信目的地信息由第1信息处理装置30的SIP处理部31接收。
(步骤S806)第1信息处理装置30发送端口检测分组、气泡分组等,并对此从端口检测服务器51接收检测用端口信息。关于该气泡分组等的收发的具体处理,与实施方式2的图22的处理相同,从而省略其说明。此外,在本实施方式中,气泡分组使用由SIP处理部31接收的通信目的地信息被发送给第2信息处理装置40的发送端口。也就是说,在本实施方式中,气泡分组发送对象端口是第2信息处理装置40的发送端口。另外,在连续性的判断(图21的步骤S605)中,使用在步骤S801检测的通信控制装置3的端口宽度。
(步骤S807)第1信息处理装置30的气泡分组发送端口检测部72判断是否能够检测气泡分组发送端口的位置。在步骤S806的连续性的判断(图21的步骤S605)中,在判定在2次端口检测用分组的发送中使用的通信控制装置3的端口与气泡分组发送端口连续的情况下,判定为能够检测气泡分组发送端口的位置,并前进到步骤S808,否则判定为不能检测气泡分组发送端口的位置,并返回到步骤S806。
(步骤S808)气泡分组发送端口检测部72检测气泡分组发送端口的位置。该气泡分组发送端口的位置就成为呼叫侧的接收端口的位置。
(步骤S809)SIP处理部31向SIP服务器52发送包含通信控制装置3的全局侧的IP地址和在步骤S808检测的气泡分组发送端口(即接收端口)的位置的通信请求。此外,关于通信控制装置3的全局侧的IP地址,假定预先在端口宽度的检测等处理中获得。
(步骤S810)SIP服务器52将从第1信息处理装置30发送来的通信请求中继给第2信息处理装置40。并且,该通信请求由第2信息处理装置40接收。
(步骤S811)第2信息处理装置40对于接收的通信请求发送表示已完成连接准备的应答。
(步骤S812)SIP服务器52将该应答中继给第1信息处理装置30。
(步骤S813)第1信息处理装置30发送对从第2信息处理装置40接收的应答的确认。
(步骤S814)SIP服务器52将该确认中继给第2信息处理装置40。这样,就完成了进行呼叫侧与被呼叫侧的点对点的连接的准备,从而通过第1信息处理装置30向第2信息处理装置40的接收端口发送信息,第2信息处理装置40向通信控制装置3的接收端口(气泡分组发送端口)发送信息,而在第1信息处理装置30与第2信息处理装置40之间进行不通过SIP服务器52等中继服务器的通信。
此外,关于图29的各步骤的处理的顺序,存在某种程度的任意性。例如,步骤S801的端口宽度的检测处理,只要在步骤S806的气泡分组等的收发的处理之前进行即可,从而也可以在通信请求的发送处理(步骤S802)、通信目的地信息的发送处理(步骤S804)之后执行。
下面,使用具体示例说明本实施方式的通信系统的动作。在该具体示例中,设第1信息处理装置30和第2信息处理装置40预先对SIP服务器52进行了地址信息的登记。另外,设第1信息处理装置30的设备ID为“AAA@abc...com”,第2信息处理装置40的设备ID为“BBB@abc...com”。在这里,虽然该具体示例说明设备ID为“AAA@abc...com”等的情况,但是,设备ID,如邮箱地址、电话号码等那样,只要是能够确定客户终端的信息,不论其形式如何,什么样的都可以。
首先,第1信息处理装置30通过对端口检测服务器51发送端口宽度检测用分组,而进行通信控制装置3的端口宽度的检测(步骤S801)。关于该处理的详细情况,与实施方式2相同,从而省略其说明。
接着,第1信息处理装置30从图30中所示的端口P1向SIP服务器52的端口P3发送通信请求(步骤S802)。该通信请求称为所谓的“邀请(INVITE)请求”。该通信请求中包含第1信息处理装置30的设备ID“AAA@abc...com”和请求通信的对方的第2信息处理装置40的设备ID“BBB@abc...com”。另外,该通信请求中还包含发送表示IP地址、发送端口的位置和接收端口的位置的信息的指示。此外,第2信息处理装置40也可以通过接收通信请求,来判定为接收到了表示发送IP地址等的指示。也就是说,通信请求中也可以不包含指示的命令。
该通信请求由SIP服务器52接收。并且,SIP服务器52检索与第2信息处理装置40的设备ID“BBB@abc...com”对应的IP地址和端口序号,并对该IP地址的端口序号发送通信请求(步骤S803)。
第2信息处理装置40,在接收到该通信请求时,向SIP服务器52的端口P3发送表示第2信息处理装置40的IP地址、发送端口sPort的位置、接收端口rPort的位置的信息,即通信目的地信息(步骤S804)。该通信目的地信息也包含第1信息处理装置30的设备ID和第2信息处理装置40的设备ID。此外,在通常的SIP中,在通信目的地信息中不包含通信目的地的发送端口的位置。因此,在通信目的地信息中包含通信目的地的发送端口的位置这一点是SIP的扩展。
该通信目的地信息由SIP服务器52接收,并通过通信控制装置3向第1信息处理装置30发送(步骤S805)。该通信目的地信息由第1信息处理装置30的SIP处理部31接收。SIP处理部31将在该通信目的地信息中包含的表示第2信息处理装置40的IP地址和发送端口sPort的位置的信息传输给气泡分组发送部13。
然后,进行气泡分组的发送处理等(步骤S806)。具体而言,检测用分组发送部14从第1信息处理装置30中新分配的端口P5向端口检测服务器51的端口P11发送端口检测用分组。由端口检测服务器51的检测用端口检测部91接收该端口检测用分组,并检测包含在端口检测用分组的标头中的通信控制装置3的端口P8的端口序号。检测用端口信息发送部92向通信控制装置3的端口P8发送在有效负荷中包含该端口P8的端口序号的检测用端口信息。该检测用端口信息在通信控制装置3中进行地址变换,并被发送到第1信息处理装置30的端口P5。并且,在检测用端口信息接收部71中,接收该检测用端口信息。
在该端口检测用分组的发送之后,气泡分组发送部13向第2信息处理装置40的端口sPort发送气泡分组。该气泡分组从第1信息处理装置30的端口P6发送。在这里,端口P6是与端口P5不同的端口,是在气泡分组发送时在第1信息处理装置30中新分配的端口。
在该气泡分组发送之后,检测用分组发送部14再次向端口检测服务器51的端口P11发送端口检测用分组。该端口检测用分组从将1信息处理装置30的端口P7发送。在这里,端口P7是与端口P5、端口P6不同的端口,是在端口检测用分组发送时在第1信息处理装置30中新分配的端口。该端口检测用分组由端口检测服务器51接收。另外,与第1次的端口检测用分组的情况一样,检测用端口信息从端口检测服务器51被发送到第1信息处理装置30。
第1信息处理装置30的检测用端口信息接收部71接收该检测用端口信息,判断在2次端口检测用分组的发送中使用的通信控制装置3的端口的位置与气泡分组发送端口是否连续。该判断根据端口P10与端口P8之差是否与在步骤S801检测的通信控制装置3的端口宽度的2倍相等来进行。如果端口P10与端口P8之差是通信控制装置3的端口宽度的2倍,则气泡分组发送端口检测部72就判定为在2次端口检测用分组的发送中使用的通信控制装置3的端口与气泡分组发送端口连续,并判定能够检测气泡分组发送端口(步骤S807),从而检测该端口P8的端口序号与端口P10的端口序号正中间的端口序号,作为气泡分组发送端口的位置(步骤S808)。气泡分组发送端口检测部72将该检测的气泡分组发送端口的位置传输给SIP处理部31。
SIP处理部31再次向SIP服务器52发送包含该气泡分组发送端口的位置和通信控制装置3的全局侧的地址的通信请求(步骤S809)。该通信请求也称为所谓的“邀请(INVITE)请求”,且包含第1信息处理装置30的设备ID和第2信息处理装置40的设备ID。该通信请求由SIP服务器52中继,并被发送给第2信息处理装置40(步骤S810)。该通信也可以通过端口P1~P4进行。
第2信息处理装置40通过接收该通信请求,而可以得知呼叫侧的IP地址和接收端口的位置。另外,第2信息处理装置40向SIP服务器52发送对通信请求的应答(步骤S811)。该应答也包含第1信息处理装置30和第2信息处理装置40的设备ID。该应答由SIP服务器52中继,并通过通信控制装置3的端口P2被发送给第1信息处理装置30(步骤S812)。
对于来自通信的对方侧的应答,经由SIP服务器52发送对应答的确认(步骤S813、S814)。该确认的发送称为所谓的“ACK”。然后,如图31所示,从第1信息处理装置30向第2信息处理装置40的端口rPort发送信息,从第2信息处理装置40向向通信控制装置3的端口P9发送信息。向通信控制装置3的端口P9发送的信息在通信控制装置3中进行地址变换,并被发送给第1信息处理装置30的端口P6。这样,在第1信息处理装置30与第2信息处理装置40之间就建立了通信,从而在两者间进行通话。
此外,在本实施方式中,虽然使用图29所示的序列进行了说明,但是,建立信息处理装置间的通信的序列并不限于图29所示的情况。例如,在步骤S811的应答的发送中,也可以经由SIP服务器52向第1信息处理装置30发送表示第2信息处理装置40的IP地址的信息和表示接收端口的位置的信息。在此情况下,第1信息处理装置30通过使用经由该SIP服务器52发送来的信息,来建立第1信息处理装置30与第2信息处理装置40之间的通信。但是,在步骤S811发送的第2信息处理装置40的IP地址与在步骤S804发送的相同。另外,第2信息处理装置40使用由在步骤S804发送的通信目的地信息表示的发送端口,作为与第1信息处理装置30的通信中的发送端口。
如上所述,根据本实施方式的通信系统,通过使用在实施方式1~3中说明的检测气泡分组发送端口的位置的方法,不论通信控制装置3使用什么类型的NAT,都可以利用SIP建立信息处理装置间的通信。这样,检测气泡分组发送端口的位置的方法,也可以在实施方式1~3中说明的系统、序列等以外使用。
此外,在本实施方式中,虽然说明了在客户端侧进行通信控制装置3的端口宽度、气泡分组发送端口的位置的检测等的情况,但是,与实施方式1一样,也可以在服务侧进行这些处理中的任意的1个以上的处理。
另外,在本实施方式中,虽然说明了分别具备端口检测服务器51和SIP服务器52的情况,但是,也可以使它们作为同一服务器来构成。
另外,在本实施方式中,虽然说明了使用SIP建立信息处理装置间的通信的情况,但是,也可以使用建立信息处理装置间的通信的其他协议。在此情况下,也可以通过具备端口检测服务器51,来检测气泡分组发送端口的位置,从而能够进行通过具有NAT功能的通信控制装置的通信。
另外,例如在实施方式4中说明的那样,在上述各实施方式中,通信系统是具备发送气泡分组的信息处理装置和进行用于检测气泡分组发送端口的位置的处理的服务器的通信系统,也可以用于检测该气泡分组发送端口的位置。也就是说,本发明的通信系统也可以是以下的通信系统。该通信系统是具备信息处理装置、控制信息处理装置的通信的通信控制装置和服务器的通信系统,信息处理装置具备通过通信控制装置发送用于在通信控制装置中保留发送履历的气泡分组的气泡分组发送部、和在气泡分组发送部发送气泡分组的前后向服务器发送为了检测在气泡分组的发送中使用的作为通信控制装置的端口的气泡分组发送端口的位置而使用的端口检测用分组的检测用分组发送部,服务器具备接收从信息处理装置发送来的端口检测用分组并根据端口检测用分组检测气泡分组发送端口的位置的气泡分组发送端口检测部。在该通信系统中,在服务器中检测的气泡分组发送端口的位置可以由发送部发送到信息处理装置,或者也可以利用其他方法传输到信息处理装置。作为其他的方法,可以是例如将表示气泡分组发送端口的位置的信息记录在记录介质上,而信息处理装置从该记录介质读出信息,或者,也可以在服务器上显示表示气泡分组发送端口的位置的信息,通过查看该显示,用户在信息处理装置中输入表示端口的范围的信息。
另外,例如在实施方式4中说明的那样,在上述各实施方式中,通信系统是具备发送气泡分组的信息处理装置、和进行用于检测气泡分组发送端口的位置的处理的服务器的通信系统,也可以用于检测该气泡分组发送端口的位置。也就是说,本发明的通信系统也可以是以下的通信系统。该通信系统是具备信息处理装置、控制信息处理装置的通信的通信控制装置和服务器的通信系统,信息处理装置具备通过通信控制装置发送用于在通信控制装置中保留发送履历的气泡分组的气泡分组发送部、在气泡分组发送部发送气泡分组的前后向服务器发送为了检测在气泡分组的发送中使用的作为通信控制装置的端口的气泡分组发送端口的位置而使用的端口检测用分组的检测用分组发送部、接收表示端口检测用分组通过的通信控制装置的端口的位置的检测用端口信息的检测用端口信息接收部、和根据检测用端口信息接收部接收的检测用端口信息检测气泡分组发送端口的位置的气泡分组发送端口检测部,服务器具备接收端口检测用分组并检测该端口检测用分组通过的通信控制装置的端口的位置的检测用端口检测部、和向信息处理装置发送表示检测用端口检测部检测的端口的位置的检测用端口信息的检测用端口信息发送部。这样,也可以不在服务器中进行气泡分组发送端口的位置的检测而在信息处理装置中进行。在该通信系统中,可以由发送部向其他信息处理装置发送在信息处理装置中检测的气泡分组发送端口的位置,或者也可以利用其他方法向其他信息处理装置传输。作为其他的方法,可以将表示气泡分组发送端口的位置的信息记录在记录介质上,而其他信息处理装置从该记录介质读出信息,或者,也可以在信息处理装置中显示表示气泡分组发送端口的位置的信息,且通过查看该显示,用户将表示气泡分组发送端口的位置的信息输入到其他信息处理装置中。
另外,在上述各实施方式中,虽然说明了各信息处理装置只通过1个通信控制装置与通信线路5连接的情况,但是,在通过多个通信控制装置与通信线路5连接时(即,多段连接的NAT),也可以建立信息处理装置间的通信。
另外,在上述各实施方式中,虽然说明了第1通信控制装置3和第2通信控制装置4具有NAT的功能的情况,但是,第1通信控制装置3和第2通信控制装置4,也可以取代NAT的功能,或者与NAT的功能一起具有分组过滤的防火墙(Firewall)的功能。在这里,所谓分组过滤,指例如进行基于上述接收过滤规则的接收分组的选择。在第1通信控制装置3具有这样的基于接收过滤规则的防火墙功能时,通过利用从本地侧(第1信息处理装置1等的一侧)向全局侧(通信线路)的气泡分组的发送而在第1通信控制装置3中保留发送履历,可以接收向气泡分组发送端口发送的回信分组。另外,在第2通信控制装置4具有这样的基于接收过滤规则的防火墙功能时,可以利用通过从本地侧(第2信息处理装置2等的一侧)向全局侧的气泡分组发送对象端口的回信分组的发送,来建立第1信息处理装置1等与第2信息处理装置2等之间的通信。
此外,第1信息处理装置1和第2信息处理装置2可以安装作为应用的防火墙功能,也可以不安装。
并且,在上述各个实施方式中,虽然说明了利用IP地址确定服务器6等的情况,但也可以利用域名(例如server.pana.net等)确定服务器6等。在此情况下,该域名使用DNS服务器被转换为IP地址,从而可以确定服务器。
并且,在上述各个实施方式的通信中使用的协议可以是IPv4(InternetProtocol version 4),也可以是IPv6(Internet Protocol version 6)。
并且,在上述各个实施方式中,各个处理(各个功能)也可以通过利用单个装置(系统)集中处理来实现,或者也可以通过利用多个装置分布处理来实现。
另外,在上述各实施方式中,虽然说明了提出通信的请求的一侧是发送气泡分组的一侧的情况,但是,接收通信的请求的一侧也可以是发送气泡分组的一侧。
并且,在上述各个实施方式中,各个构成要素可以利用专用的硬件构成,或者对于可以利用软件实现的构成要素,利用程序控制的软件来构成。另外,实现上述各个实施方式的信息处理装置的软件是以下所述的程序。即,该程序用于使计算机执行第1信息处理装置中的处理,该第1信息处理装置通过控制第1信息处理装置的通信的第1通信控制装置和控制第2信息处理装置的通信的第2通信控制装置,与第2信息处理装置进行通信,该程序用于使计算机执行以下步骤基准端口接收步骤,接收表示作为第2通信控制装置中的端口的基准端口的位置的基准端口信息,该端口作为为了在第1通信控制装置中保留发送履历而发送的气泡分组的发送对象的基准;气泡分组发送步骤,根据基准端口信息,通过第1通信控制装置向第2通信控制装置发送气泡分组;检测用分组发送步骤,为了检测在气泡分组的发送中使用的、作为第1通信控制装置的端口的气泡分组发送端口的位置,发送端口检测用分组;以及回信分组接收步骤,接收从第2信息处理装置通过第2通信控制装置对气泡分组发送端口发送的回信分组。
另外,在该程序中,优选地,基准端口是在第2通信控制装置中分配的端口中、用于检测基准端口的位置的基准端口检测用分组从第2信息处理装置发送的时刻最新的端口。
另外,在该程序中,优选地,在检测用分组发送步骤中,在气泡分组发送步骤发送气泡分组的前后发送端口检测用分组。
另外,在该程序中,优选地,气泡分组和端口检测用分组使用第1通信控制装置中的不同端口来发送。
另外,在该程序中,优选地,气泡分组和端口检测用分组使用在第1信息处理装置中新分配的端口来发送。
另外,在该程序中,优选地,使计算机进一步执行接收表示再次发送气泡分组和端口检测用分组的再发送指示的再发送指示接收步骤,在检测用分组发送步骤中,在再发送指示接收步骤接收到再发送指示时,再次发送端口检测用分组,在气泡分组发送步骤中,在再发送指示接收步骤接收到再发送指示时再次发送气泡分组。
另外,在该程序中,优选地,使计算机进一步执行通过第1通信控制装置发送用于检测第1通信控制装置中的端口宽度的端口宽度检测用分组的端口宽度检测用分组发送步骤。
另外,在该程序中,优选地,第2通信控制装置中作为发送气泡分组的对象的端口即气泡分组发送对象端口是从基准端口开始分配指定的端口之后分配的端口。
另外,在该程序中,优选地,使计算机进一步执行接收表示第2通信控制装置中的端口宽度的信息即端口宽度信息的端口宽度接收步骤,在气泡分组发送步骤中,也可以对与基准端口的端口间隔为端口宽度信息表示的端口宽度的M倍(M是大于等于1的整数)的气泡分组发送对象端口发送气泡分组。
另外,在该程序中,优选地,使计算机进一步在回信分组接收步骤接收到回信分组时执行对在该回信分组的发送中使用的第2通信控制装置的端口发送再回信分组的再回信分组发送步骤。
另外,在该程序中,优选地,使计算机进一步执行以下步骤检测用端口信息接收步骤,接收表示端口检测用分组通过的第1通信控制装置的端口的位置的检测用端口信息;气泡分组发送端口检测步骤,根据在检测用端口信息接收步骤接收的检测用端口信息,检测气泡分组发送端口的位置;以及气泡分组发送端口发送步骤,发送表示在气泡分组发送端口检测步骤检测的上述气泡分组发送端口的位置的气泡分组发送端口信息。
另外,在该程序中,优选地,在检测用分组发送步骤中,在气泡分组发送端口检测步骤中不能检测气泡分组发送端口的位置时,再次发送端口检测用分组,在气泡分组发送步骤中,在气泡分组发送端口检测步骤中不能检测气泡分组发送端口的位置时,再次发送气泡分组。
另外,在该程序中,优选地,使计算机进一步执行以下步骤端口宽度检测用分组发送步骤,通过第1通信控制装置发送用于检测第1通信控制装置中的端口宽度的端口宽度检测用分组;端口宽度检测用端口信息接收步骤,接收表示端口宽度检测用分组通过的第1通信控制装置的端口的位置的端口宽度检测用端口信息;以及端口宽度检测步骤,根据端口宽度检测用端口信息接收部接收的端口宽度检测用端口信息,检测第1通信控制装置中的端口宽度;其中,在气泡分组发送端口检测步骤中,利用在端口宽度检测步骤检测的第1通信控制装置中的端口宽度检测气泡分组发送端口的位置。
实现上述各实施方式的信息处理装置的软件是以下的程序。即,该程序是用于使计算机执行第1信息处理装置中的处理的程序,该第1信息处理装置通过控制第1信息处理装置的通信的第1通信控制装置、和控制第2信息处理装置的通信的第2通信控制装置与第2信息处理装置通信,其中,从第2信息处理装置通过第2通信控制装置向第1通信控制装置发送用于在第2通信控制装置中保留发送履历的气泡分组,该程序用于使计算机执行以下步骤基准端口检测用分组发送步骤,发送用于检测作为第1通信控制装置中的端口的基准端口的位置的基准端口检测用分组,该端口作为气泡分组的发送对象的基准;气泡分组发送端口接收步骤,接收表示在从第2信息处理装置的气泡分组的发送中使用的、作为第2通信控制装置的端口的气泡分组发送端口的位置的气泡分组发送端口信息;以及回信分组发送步骤,对气泡分组发送端口信息表示的气泡分组发送端口发送回信分组。
另外,在该程序中,优选地,在回信分组发送步骤中,使用第1通信控制装置的不同的N个(N是大于等于2的整数)端口发送回信分组。
另外,在该程序中,优选地,N个端口是在回信分组的发送时第1通信控制装置中新分配的端口。
另外,在该程序中,优选地,N是第1通信控制装置中大于等于从基准端口到发送气泡分组的端口中能够分配的端口的数量。
另外,在该程序中,优选地,使计算机进一步执行接收从第2信息处理装置对在回信分组的发送中使用的第1通信控制装置的端口发送的再回信分组的再回信分组接收步骤。
另外,在该程序中,优选地,使计算机进一步执行通过第1通信控制装置发送用于检测第1通信控制装置中的端口宽度的端口宽度检测用分组的端口宽度检测用分组发送步骤。
另外,在该程序中,优选地,使计算机进一步执行端口宽度检测用端口信息接收步骤,接收表示端口宽度检测用分组通过的第1通信控制装置的端口的位置的端口宽度检测用端口信息;端口宽度检测步骤,根据在端口宽度检测用端口信息接收步骤接收的端口宽度检测用端口信息,检测第1通信控制装置中的端口宽度;端口宽度发送步骤,发送表示在端口宽度检测步骤检测的第1通信控制装置中的端口宽度的信息即端口宽度信息。
实现上述实施方式的服务器的软件是以下的程序。即该程序是用于使计算机执行服务器中的处理的程序,该服务器建立第1信息处理装置和第2信息处理装置通过控制第1信息处理装置的通信的第1通信控制装置和控制第2信息处理装置的通信的第2通信控制装置进行的通信,该程序用于使计算机执行以下步骤基准端口检测步骤,为了检测作为第2通信控制装置中的端口的基准端口的位置,接收从第2信息处理装置通过第2通信控制装置发送来的基准端口检测用分组,并根据该基准端口检测用分组检测基准端口的位置,其中该端口成为为了在第1通信控制装置中保留发送履历而由第1信息处理装置发送的气泡分组的发送对象的基准;基准端口发送步骤,向第1信息处理装置发送表示在基准端口检测步骤检测的基准端口的位置的基准端口信息;气泡分组发送端口检测步骤,为了检测在从第1信息处理装置向第2通信控制装置的气泡分组的发送中使用的、作为第1通信控制装置中的端口的气泡分组发送端口的位置,接收从第1信息处理装置发送的端口检测用分组,并根据端口检测用分组检测气泡分组发送端口的位置;以及气泡分组发送端口发送步骤,向第2信息处理装置发送表示气泡分组发送在端口检测步骤检测的气泡分组发送端口的位置的气泡分组发送端口信息。
另外,在该程序中,优选地,使计算机进一步执行在气泡分组发送端口检测步骤不能检测气泡分组发送端口的位置时,向第1信息处理装置发送表示再次发送气泡分组和端口检测用分组的指示即再发送指示的再发送指示发送步骤。
另外,在该程序中,优选地,在气泡分组发送端口检测步骤中,接收在气泡分组发送的前后发送来的端口检测用分组,判断在该端口检测用分组的发送中使用的第1通信控制装置中的2个端口与气泡分组发送端口是否连续,且在连续时检测夹在2个端口之间的端口的位置,作为气泡分组发送端口的位置。
另外,在该程序中,优选地,在气泡分组发送端口检测步骤中,在端口检测用分组的发送中使用的第1通信控制装置中的2个端口的间隔是第1通信控制装置中的端口宽度的2倍时,判定为连续。
另外,在该程序中,优选地,使计算机进一步执行接收从第1信息处理装置通过第1通信控制装置发送来的第1端口宽度检测用分组,并根据该第1端口宽度检测用分组检测第1通信控制装置中的端口宽度的第1端口宽度检测步骤,且在气泡分组发送端口检测步骤中,也可以使用第1端口宽度检测部检测的端口宽度进行判断。
另外,在该程序中,优选地,使计算机进一步执行接收从第2信息处理装置通过第2通信控制装置发送来的第2端口宽度检测用分组,并根据该第2端口宽度检测用分组检测第2通信控制装置中的端口宽度的第2端口宽度检测步骤,和向第1信息处理装置发送表示在第2端口宽度检测步骤检测的端口宽度的信息即端口宽度信息的端口宽度发送步骤。
另外,实现上述实施方式的服务器的软件是以下的程序。即,该程序是用于使计算机执行服务器中的处理的程序,该服务器建立第1信息处理装置和第2信息处理装置通过控制第1信息处理装置的通信的第1通信控制装置和控制第2信息处理装置的通信的第2通信控制装置进行的通信,该程序用于使计算机执行以下步骤基准端口检测步骤,为了检测作为第2通信控制装置中的端口的基准端口的位置,接收从第2信息处理装置通过第2通信控制装置发送来的基准端口检测用分组,并根据该基准端口检测用分组检测基准端口的位置,其中该端口成为为了在第1通信控制装置中保留发送履历而由第1信息处理装置发送的气泡分组的发送对象的基准;基准端口发送步骤,向第1信息处理装置发送表示在基准端口检测步骤检测的基准端口的位置的基准端口信息;检测用端口检测步骤,为了检测在从第1信息处理装置向第2通信控制装置的气泡分组的发送中使用的、作为第1通信控制装置中的端口的气泡分组发送端口的位置,接收从第1信息处理装置发送的端口检测用分组,并根据该端口检测用分组检测端口检测用分组通过的第1通信控制装置的端口的位置;以及检测用端口信息发送步骤,向第1信息处理装置发送表示在检测用端口检测步骤检测的端口的位置的检测用端口信息。
另外,实现上述各实施方式的信息处理装置的软件是以下的程序。即,该程序是用于使计算机执行信息处理装置中的处理的程序,该信息处理装置构成具备信息处理装置、控制信息处理装置的通信的通信控制装置和服务器的通信系统,该程序用于使计算机执行以下步骤气泡分组发送步骤,通过通信控制装置发送用于在通信控制装置中保留发送履历的气泡分组;检测用分组发送步骤,在气泡分组发送步骤发送气泡分组的前后,向服务器发送用于检测作为通信控制装置的端口的气泡分组发送端口的位置的端口检测用分组。
另外,实现上述各实施方式的服务器的软件是以下的程序。即,该程序是用于使计算机执行服务器中的处理的程序,该服务器构成具备信息处理装置、控制信息处理装置的通信的通信控制装置和服务器的通信系统,该程序用于使计算机执行以下步骤为了检测信息处理装置为在通信控制装置中保留发送履历而发送的气泡分组的发送中使用的、作为通信控制装置中的端口的气泡分组发送端口的位置而在气泡分组发送的前后接收从信息处理装置发送的端口检测用分组的步骤;和根据端口检测用分组检测气泡分组发送端口的位置的步骤。
另外,实现上述各实施方式的服务器的软件是以下的程序。即,该程序是用于使计算机执行服务器中的处理的程序,该服务器构成具备信息处理装置、控制信息处理装置的通信的通信控制装置和服务器的通信系统,该程序用于使计算机执行以下步骤为了检测信息处理装置为在通信控制装置中保留发送履历而发送的气泡分组的发送中使用的、作为通信控制装置中的端口的气泡分组发送端口的位置而在气泡分组发送的前后接收从信息处理装置发送的端口检测用分组的步骤;检测端口检测用分组通过的通信控制装置的端口的位置的步骤;和向信息处理装置发送表示端口检测用分组通过的通信控制装置的端口的位置的检测用端口信息的步骤。
此外,在上述程序中,在发送信息的发送步骤、接收信息的接收步骤等中,不包含由硬件进行的处理,例如在发送步骤中由调制解调器、接口卡等进行的处理(仅由硬件进行的处理)。
另外,该程序可以通过从服务器等下载来发布,也可以通过记录在指定的记录介质(例如,CD-ROM等光盘、磁盘、半导体存储器等)中来发布。
另外,执行该程序的计算机可以是单个,也可以是多个。也就是说,可以进行集中处理,或者也可以进行分布处理。
这样,本发明的通信系统等能够建立通过通信控制装置的多个信息处理装置间的通信,对于作为进行信息处理装置间的通信的通信系统是有用的。
权利要求
1.一种通信系统,具备信息处理装置、控制上述信息处理装置的通信的通信控制装置和服务器,其中,上述信息处理装置具备气泡分组发送部,其通过上述通信控制装置发送用于在上述通信控制装置中保留发送履历的气泡分组;以及检测用分组发送部,为了检测在上述气泡分组的发送中使用的、作为上述通信控制装置的端口的气泡分组发送端口的位置,其向上述服务器发送所使用的端口检测用分组。
2.根据权利要求1所述的通信系统,其中,上述检测用分组发送部,在上述气泡分组发送部发送上述气泡分组之前和/或之后,发送上述端口检测用分组。
3.根据权利要求1或2所述的通信系统,其中,上述服务器具备气泡分组发送端口检测部,其接收从上述信息处理装置发送的上述端口检测用分组,并根据上述端口检测用分组检测上述气泡分组发送端口的位置。
4.根据权利要求3所述的通信系统,其中,上述气泡分组发送端口检测部,利用上述通信控制装置的端口宽度,检测上述气泡分组发送端口的位置。
5.根据权利要求3所述的通信系统,其中,上述信息处理装置进一步具备端口宽度检测用分组发送部,其通过上述通信控制装置发送用于检测上述通信控制装置中的端口宽度的端口宽度检测用分组;上述服务器进一步具备端口宽度检测部,其接收上述端口宽度检测用分组,并根据该端口宽度检测用分组检测上述通信控制装置的端口宽度;其中,上述气泡分组发送端口检测部,利用上述端口宽度检测部检测的端口宽度,检测上述气泡分组发送端口的位置。
6.根据权利要求3所述的通信系统,其中,上述服务器进一步具备气泡分组发送端口发送部,其发送表示上述气泡分组发送端口的位置的气泡分组发送端口信息。
7.根据权利要求1或2所述的通信系统,其中,上述信息处理装置进一步具备检测用端口信息接收部,其接收表示上述端口检测用分组通过的上述通信控制装置的端口的位置的检测用端口信息;以及气泡分组发送端口检测部,其根据上述检测用端口信息接收部接收的检测用端口信息,检测上述气泡分组发送端口的位置;上述服务器具备检测用端口检测部,其接收上述端口检测用分组,并检测该端口检测用分组通过的上述通信控制装置的端口的位置;以及检测用端口信息发送部,其向上述信息处理装置发送表示上述检测用端口检测部检测的端口的位置的检测用端口信息。
8.根据权利要求7所述的通信系统,其中,上述气泡分组发送端口检测部,利用上述通信控制装置的端口宽度,检测上述气泡分组发送端口的位置。
9.根据权利要求7所述的通信系统,其中,上述信息处理装置进一步具备端口宽度检测用分组发送部,其通过上述通信控制装置发送用于检测上述通信控制装置中的端口宽度的端口宽度检测用分组;端口宽度检测用端口信息接收部,其接收表示上述端口宽度检测用分组通过的上述通信控制装置的端口的位置的端口宽度检测用端口信息;以及端口宽度检测部,其根据上述端口宽度检测用端口信息接收部接收的端口宽度检测用端口信息,检测上述通信控制装置中的端口宽度;其中,上述气泡分组发送端口检测部,利用上述端口宽度检测部检测的上述通信控制装置的端口宽度,检测上述气泡分组发送端口的位置;上述服务器进一步具备端口宽度检测用端口检测部,其接收上述端口宽度检测用分组,并检测该端口宽度检测用分组通过的上述通信控制装置的端口的位置;以及端口宽度检测用端口信息发送部,其向上述信息处理装置发送表示上述端口宽度检测用端口检测部检测的端口的位置的端口宽度检测用端口信息。
10.根据权利要求7所述的通信系统,其中,上述信息处理装置进一步具备气泡分组发送端口发送部,其发送表示上述气泡分组发送端口的位置的气泡分组发送端口信息。
11.一种信息处理装置,其利用服务器与其他信息处理装置建立通过通信控制装置的通信,该信息处理装置具备气泡分组发送部,其通过上述通信控制装置发送用于在上述通信控制装置中保留发送履历的气泡分组;以及检测用分组发送部,为了检测在上述气泡分组的发送中使用的、作为上述通信控制装置的端口的气泡分组发送端口的位置,其向上述服务器发送所使用的端口检测用分组。
12.根据权利要求11所述的信息处理装置,其中,上述检测用分组发送部,在上述气泡分组发送部发送上述气泡分组之前和/或之后,发送上述端口检测用分组。
13.根据权利要求11或12所述的信息处理装置,进一步具备检测用端口信息接收部,其接收表示上述端口检测用分组通过的上述通信控制装置的端口的位置的检测用端口信息;以及气泡分组发送端口检测部,其根据由上述检测用端口信息接收部接收的检测用端口信息,检测上述气泡分组发送端口的位置。
14.根据权利要求13所述的信息处理装置,其中,上述气泡分组发送端口检测部,利用上述通信控制装置的端口宽度,检测上述气泡分组发送端口的位置。
15.根据权利要求13所述的信息处理装置,进一步具备端口宽度检测用分组发送部,其通过上述通信控制装置发送用于检测上述通信控制装置中的端口宽度的端口宽度检测用分组;端口宽度检测用端口信息接收部,其接收表示上述端口宽度检测用分组通过的上述通信控制装置的端口的位置的端口宽度检测用端口信息;以及端口宽度检测部,其根据上述端口宽度检测用端口信息接收部接收的端口宽度检测用端口信息,检测上述通信控制装置中的端口宽度;其中,上述气泡分组发送端口检测部,利用上述端口宽度检测部检测的上述通信控制装置的端口宽度,检测上述气泡分组发送端口的位置。
16.一种服务器,其使通过控制信息处理装置的通信的通信控制装置进行通信的信息处理装置与其他信息处理装置的通信建立,该服务器具备检测用端口检测部,其接收从上述信息处理装置发送的端口检测用分组,并根据上述端口检测用分组检测上述端口检测用分组通过的上述通信控制装置的端口的位置。
17.根据权利要求16所述的服务器,进一步具备气泡分组发送端口检测部,其根据上述端口检测用分组检测上述气泡分组发送端口的位置。
18.根据权利要求17所述的服务器,其中,上述气泡分组发送端口检测部,利用上述通信控制装置的端口宽度,检测上述气泡分组发送端口的位置。
19.根据权利要求17或18所述的服务器,进一步具备端口宽度检测部,其接收为了检测上述通信控制装置的端口宽度而从上述信息处理装置发送的端口宽度检测用分组,并根据该端口宽度检测用分组检测上述通信控制装置的端口宽度;其中,上述气泡分组发送端口检测部,利用上述端口宽度检测部检测的端口宽度,检测上述气泡分组发送端口的位置。
20.一种通信方法,是应用于包括信息处理装置、控制上述信息处理装置的通信的通信控制装置和服务器的通信系统中的上述信息处理装置的通信方法,包括气泡分组发送步骤,通过上述通信控制装置发送用于在上述通信控制装置中保留发送履历的气泡分组;以及检测用分组发送步骤,为了检测在上述气泡分组的发送中使用的、作为上述通信控制装置的端口的气泡分组发送端口的位置,向上述服务器发送所使用的端口检测用分组。
21.根据权利要求20所述的通信方法,其中,在上述检测用分组发送步骤中,上述端口检测用分组在上述气泡分组发送步骤发送上述气泡分组之前和/或之后发送。
22.根据权利要求20或21所述的通信方法,进一步包括检测用端口信息接收步骤,接收表示上述端口检测用分组通过的上述通信控制装置的端口的位置的检测用端口信息;以及气泡分组发送端口检测步骤,根据在上述检测用端口信息接收步骤接收的检测用端口信息,检测上述气泡分组发送端口的位置。
23.一种通信方法,是应用于包括信息处理装置、控制上述信息处理装置的通信的通信控制装置和服务器的通信系统中的上述服务器的通信方法,包括接收为了检测在上述信息处理装置发送的上述气泡分组的发送中使用的、作为上述通信控制装置中的端口的气泡分组发送端口的位置而从上述信息处理装置发送的端口检测用分组的步骤,其中上述气泡分组是上述信息处理装置为了在上述通信控制装置中保留发送履历而发送的。
24.根据权利要求23所述的通信方法,进一步包括根据上述端口检测用分组检测上述气泡分组发送端口的位置的步骤。
25.根据权利要求23所述的通信方法,进一步包括根据上述端口检测用分组,检测上述端口检测用分组通过的上述通信控制装置的端口的位置的检测用端口检测步骤;以及发送表示在上述检测用端口检测步骤检测的端口的位置的检测用端口信息的检测用端口信息发送步骤。
全文摘要
第1信息处理装置(1)对从第2通信控制装置(4)中的基准端口开始进行指定的端口分配之后分配的端口发送气泡分组,服务器(6)检测在该气泡分组的发送中使用的、作为第1通信控制装置(3)的端口的气泡分组发送端口的位置,第2信息处理装置(2)对该检测的气泡分组发送端口发送回信分组。利用这样的结构,提供能够更可靠地进行通过通信控制装置(NAT)进行通信的多个信息处理装置间的通信的建立。
文档编号H04L12/66GK101060490SQ20071010445
公开日2007年10月24日 申请日期2004年10月29日 优先权日2003年11月7日
发明者乡原邦男, 前川肇 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1