专利名称:在至少两台计算设备间建立连接时的地址和端口号提取的制作方法
技术领域:
本发明一般涉及计算设备之间的通信领域,特别涉及在两台计算设备之间建立连接时的地址和端口号提取。本发明还涉及用于所述提取的一种方法、多个计算设备、一种计算设备系统以及多种计算机程序产品。
背景技术:
在计算机通信领域中,通常缺乏不同设备可用的公用地址。这导致许多局域网只具有一个或几个公用地址用于整个局域系统,并且该局域系统将通过控制这几个地址的网关来同全局网络进行通信。通常,网关在这种情况下将使用一个本地寻址系统同局域网中的设备进行通信。
为了启动局域网中此类设备通过全局网络同其它设备的会话,可为网关提供一个NAPT(网络地址端口转换)单元,它将本地地址转换成全局地址用以同其它设备通信,并将同该本地地址相关的端口号转换成同该全局地址相关的端口号。随后,局域网中的设备能够仅通过一个地址启动同该局域网外设备的会话。然后,这个单元还能够同所谓的DNS-ALG(域名系统-应用级网关)组合,DNS-ALG用对查询响应的有效负载中的全局网络地址和端口号代替局域网地址和端口号,所述查询涉及设备和服务名称,反之亦然。但是,DNS-ALG是协议/应用应用专用的,并且需要不同的ALG来对不同协议/应用实现地址和端口转换。此外,对那些可由ALG进行加扰或利用周知的端口号等处理的协议加以限制。
存在的另一个设备是所谓的DNS(域名系统)SRV(服务),A.Gulbrandsen,P.Vixie和L.Esibov于2000年2月在RF2782互联网协会“DNS SRV RR”中进行了阐述。DNS SRV接收涉及设备和服务名称的查询并将一个地址或端口号作为查询的结果返回。通过DNS SRV设备能够获得将被连接以便启动会话的设备的地址和端口号。
还存在的另一个设备是RSIP(域限定互联网协议)设备。这一设备使用另一种提供地址转换的方式。RSIP明确请求主机在局域网中开启的每个端口的一个映射。当一个端口被开启用于内网或外网通信时,直接在本地端口/地址和全局端口/地址之间产生一个映射。由于局域网内主机的操作系统已知这一映射,因此能够基于连接提供必须包含在有效负载中的正确地址/端口信息,这意味着局域网内的寻址信息被包含用于本地通信,且全局网络内的寻址信息被包含用于外网通信,即局域网以外。因此,使用RSIP时不需要ALG。
但是,使用RSIP时,地址信息仅在某一范围内有效。例如,局域通信的有效负载中所包含的地址信息仅在私人网络内有效。使用分布式应用时,其中该局域网中存在至少两个部分且另一个网络中存在至少一个部分,当该局域网中的一部分的寻址信息被该局域网中的另一个部分传递到全局网络内的一部分上时便会产生问题。此时需要转换寻址信息。
因此,需要解决同设备间的应用专用通信相关的地址转换问题。
因此,需要一种应用,用以在至少两个设备之间建立连接。在这一连接建立中,需要允许在不考虑由于不同网络提供不同寻址域而产生的地址转换问题的前提下实现这一建立。
发明内容
因此,本发明的一个目的是提供一种机制,通过该机制可在不同网络中提供的至少两个计算设备之间建立连接,所述不同网络的工作同是否在不同寻址域中提供所述设备无关。
根据本发明的第一方面,通过为运行在至少第一和第二设备上的应用提取地址和端口号使用情况来达到这一目的,并且在第一设备中包括步骤-从所述第一设备中的应用接收将一个套接字绑定到一项服务的请求;-获得一个应用专用服务名称用于设备间的连接,-生成一个资源记录,所述资源记录包括一方面所述第一设备的至少一个端口号同另一方面该应用专用服务名称之间的绑定,-产生一个套接字并将其绑定到该端口号,以及
-命令将资源记录发送到一个相关的本地名称和服务解析单元,由此可在名称和服务解析单元中存储资源记录,以便允许运行在第二设备上的应用通过将涉及第一设备的应用专用服务名称的查询发送到名称和服务解析单元来获得一个同第一设备相关的地址和端口号以用于连接。
根据本发明的第二方面,还通过为运行在至少第一和第二设备上的应用提取地址和端口号使用情况的第一计算设备实现这一目的,包括-套接字层引擎,被设置来-从所述第一设备中的应用接收将一个套接字绑定到一项服务的请求,-获得一个应用专用服务名称以用于设备间的连接,-生成一个资源记录,该资源记录包括一方面至少一个自身端口号同另一方面该应用专用服务名称之间的绑定,-产生一个套接字并将其绑定到该端口号,以及-命令将资源记录发送到一个同第一设备相关的局部名称和服务解析单元,由此可在名称和服务解析单元中存储资源记录,以便第二设备中的应用借助于关于至少第一设备的应用专用服务名称的查询来获得一个同第一设备相关的地址和端口号,以应用到通信中。
根据本发明的第三方面,还通过为运行在至少第一和第二设备上的应用提取地址和端口号使用情况的第二计算设备实现这一目的,包括-套接字层引擎,被设置来-从所述第二设备中的应用接收连接请求,-命令将涉及至少一个同第一设备相关的应用专用服务名称的查询发送到同第一设备相关的名称和服务解析单元,该名称和服务解析单元具有一个资源记录,该资源记录包括一方面所述第一设备的一个地址和一个端口号同另一方面至少应用专用服务名称之间的绑定,以及-作为对查询的响应接收同第一设备相关的一个地址和端口号用于建立连接,由此可使用所接收的地址和端口号建立连接。
根据本发明的第四方面,还通过为运行在至少第一和第二设备上的应用提取地址和端口号使用情况的一个计算设备系统实现这一目的,包括-所述第一计算设备具有一个套接字层引擎,被设置来-从所述第一设备中的应用接收将一个套接字绑定到一项服务的请求,-获得一个将用于设备间连接的应用专用服务名称,-生成一个资源记录,该资源记录包括一方面至少一个自身端口号同另一方面应用专用服务名称间的绑定,-产生一个套接字并将其绑定到该端口号,以及-命令将资源记录发送到同第一设备相关的本地名称和服务解析单元中,由此可在该名称和服务解析单元中存储资源记录,-所述第二计算设备具有一个套接字层引擎,被设置来-从所述第二设备中的应用接收连接请求,-命令将涉及同第一设备相关的应用专用服务名称的查询发送到同第一设备相关的名称和服务解析单元,以及-作为对该查询的响应接收同第一设备相关的一个地址和端口号用于建立连接,由此可使用所接收的地址和端口号建立连接。
根据本发明的第五方面,还通过为运行在至少第一和第二设备上的应用提取地址和端口号使用情况且用在第一计算设备上的一个计算机程序产品实现这一目的,所述计算机程序产品包括-计算机程序代码,当所述程序代码加载到第一设备中时便使第一设备执行-从所述第一设备中的应用接收将一个套接字绑定到一项服务的请求,-获得一个应用专用服务名称用于设备间的连接,-生成一个资源记录,该资源记录包括一方面第一设备的至少一个端口号同另一方面应用专用服务名称之间的一个绑定,-产生一个套接字并将其绑定到该端口号,以及-命令将资源记录发送到一个同第一设备相关的本地名称和服务解析单元,由此可在该名称和服务解析单元中存储资源记录,以便允许第二设备中的应用借助于有关第一设备的设备名称和应用专用服务名称的查询来获得一个同第一设备相关的地址和端口号,以在建立连接时使用。
根据本发明的第六方面,还通过为运行在至少第一和第二设备上的应用提取地址和端口号使用情况且用在第二计算设备上的一种计算机程序产品实现这一目的,所述计算机程序产品具有-计算机程序代码,当所述程序代码加载到第二设备中时便使第二设备执行-从所述第二设备中的应用接收连接请求,-命令将涉及同第一设备相关的至少一个应用专用服务名称的查询发送到同第一设备相关的名称和服务解析单元,该名称和服务解析单元具有资源记录,该资源记录包括一方面所述第一设备的一个地址和一个端口号同另一方面该应用专用服务名称之间的一个绑定,以及-作为对查询的响应接收同第一设备相关的一个地址和端口号用于建立连接,由此可使用所接收的地址和端口号以及自身地址和端口号建立连接。
根据权利要求2和12,资源记录还包括第一设备的局域设备名称与其一个地址间的绑定,它使名称和服务解析单元不必在资源记录中提供完整信息。
根据权利要求3和13,应用专用服务名称被发送到第二设备,使第二设备位置在不知道该名称时能够使用它。
根据权利要求5和15,该服务名称由应用提供。
根据权利要求6和16,在应用没有用于服务的名称的情况下需要生成该服务名称。
根据权利要求7和17,所生成的服务名称被返回到应用。由此,为了实现从第二设备到第一设备的接触,运行在第一设备上的应用能够将服务名称提供给运行在第二设备上的应用。
根据权利要求8和18,一旦资源记录不再用于连接便将其删除。这辅助了不必要的端口号绑定。这在端口号和服务名称改变的情况下也是有利的。
根据权利要求9和19,服务名称包括协议信息,该协议信息使得第二设备中的应用在没有任何先验信息的情况下能够知道该使用什么协议。
权利要求10旨在根据一个涉及服务名称的查询建立从第二设备到第一设备的连接。
本发明的一个实施例具有的优势在于为运行在至少两个设备上的应用提取与建立连接有关的地址和端口号使用情况。由于这一提取,被发送用以建立连接的消息不必包括地址和端口号信息,当其提供在不同寻址域之间的一个有效载荷穿越接口中时便会产生负面影响。例如,这种负面影响包括加扰和数据完整性检测机制。通过服务查询获得地址和端口号,该服务查询保证可能的地址转换在网络中被自动处理(如果它们具有地址转换能力)。这也使本发明网络独立并使其能够实际实现在任何网络中。其它优势为不需要特殊的ALG;相反地,可使用现有ALG的功能,其是由通用设备名称和服务名称解析单元以及不同寻址域提供的。多层应用也可以。可使用现有的基础结构,它使得本发明实现起来简单且划算。本发明还允许私人网络中同类型的多个服务器,而不需要配置。
因此,本发明一个实施例背后的一般观点是在第一设备中产生一个资源记录,其包括该设备至少一个端口号同一个服务名称之间的一个绑定,并将该资源记录发送到一个名称和服务解析单元。由此,可通过将一个涉及服务名称的查询发送到该名称和服务解析单元来从第二设备建立连接。
本发明的这些和其它方面将通过下面参考实施例的阐述变得明显。
将参考附图对本发明进行更详细的说明,其中图1示出一个示意图,第一计算设备通过第一局域网连接到全局网络且第二计算设备通过第二局域网连接到全局网络,图2示出第一计算设备中同本发明相关的某些部分的方框图,图3示出从第一设备发送的第一类资源记录,图4示出通过为设备和服务名称解析单元提供资源记录来为运行在两个设备上的应用提取地址和端口号使用情况的方法的第一部分的流程图,图5示出通过对名称和服务解析单元查询设备名称和服务名称来为运行在两个设备上的应用提取地址和端口号使用情况的方法的第二部分的流程图,以及图6示意性示出一种计算机可读介质,在该介质上存储程序代码,以便执行在根据本发明的计算设备中实现的方法步骤。
具体实施例方式
图1示出本发明一个实施例及其环境的示意图。图1示出连接到第一局域网12的第一计算设备10。第一网络12具有连接到全局网络21的第一网关14,这种情况下全局网络21为互联网。第二网关20被提供作为全局网络21和第二局域网18之间的一个接口。第二局域网18包括第二计算设备16。第一局域网12具有第一寻址域,第二局域网18具有第二寻址域,并且全局网络21具有第三寻址域。在此第一寻址域为一个IP寻址域,例如IPv4或IPv6,且被本地用于第一网络中,第二寻址域也是用在第二网络18中的本地寻址域,例如同第一寻址域类型相同,而第三寻址域为全局寻址域,例如IPv4。在优选实施例中,第一和第二网络12和18为私人家庭网络。但是,应该理解,本发明不限于私人家庭网络,它可用于例如企业通信网甚至全局网络。第一计算设备10还表示为X,第二计算设备16表示为Y,第一网关14表示为G1且第二网关20表示为G2。因此,不同设备在不同域中具有不同地址。第一设备10在第一本地寻址域中具有地址AX,第一网关14在第一本地寻址域中具有地址A1G1且在全局寻址域中具有地址A2G1,第二网关20在第二本地寻址域中具有地址A1G2且在全局寻址域中具有地址A2G2,而第二设备16在第二本地寻址域中具有第二地址AY。第一和第二设备10和16可以是常规计算机,但不限于此。它们也可以是其它计算设备,例如网络收音机、打印机、扫描仪或其它类型设备。还应认识到局域网中可存在更多的设备。例如设备10和16可为能够通过网关连接到互联网的服务器或任何其它合适设备。每个网关14和20都包括一个名称和服务解析单元,其形式为DNS(域名系统)SRV(服务)单元22、DNS_ALG(域名系统-应用级网关)单元24和NAPT(网络地址端口转换)表28。图1还示出从第一设备10发送到第一网关14的第一资源记录26。这一资源记录将在下面进行详细阐述。
图2的方框图中示出根据本发明一个实施例的第一设备10的一个简化方案。但应该认识到图2对第二设备16也是有效的。第一设备10具有设置来运行部分应用的应用层引擎30,应用的另一部分运行在第二设备16上。应用层引擎30连接到套接字层引擎32,该套接字层引擎32依次连接到连接层引擎34。连接层引擎34提供与第一局域网的联系,用以接收和发送数据分组。应用层引擎31被所述的应用操纵,而套接字层引擎32和连接层引擎34由该设备的操作系统操纵。数据分组传播的方向由箭头指示。
图3更详细地示出由第一设备产生的第一资源记录26。该资源记录具有一个源地址字段36(填充有第一设备的地址AX)、一个源端口号字段38(填充有第一设备的第一端口号PX1)、一个目的地址字段40(填充有第一网关在第一本地寻址域中的地址A1G1)、一个目的端口号字段42(填充有一个用于资源记录的应用专用端口号PG1)以及一个有效负载44(填充有一方面为指定服务名称_HTTP._TCP和设备名H1.N1.SP1.D1同另一方面为第一设备的地址AX和第二端口号PX2之间的映射)。这一资源记录26被提供用于一种被称为HTTP的服务。
现参考图1、2、3、4和5阐述本发明,其中图4示出一种通过为设备和服务名称解析单元提供资源记录来为运行在两个设备上的应用提取地址和端口号使用情况的方法的第一部分的流程图,且图5示出通过对该名称和服务解析单元查询设备名称和服务名称来为运行在两个设备上的应用提取地址和端口号使用情况的方法的第二部分的流程图。
该方法开始于第一设备10启动同第二设备16的会话,步骤48。在此应该注意该会话也可以由第二设备16启动。第一设备10开始于发送一个设备名称和服务名称查询,以便获得一个同第二设备16通信的地址。查询包括一个局域设备名称和一个服务名称,其中设备名称通常是第二设备16的完全许可域名。这一查询最终被第二局域网18中的第二网关20通过常规DNS程序接收。第二网关20随后将该查询送至其名称和服务解析单元22。名称和服务解析单元22是一个具有DNS_SRV能力的单元,即它将域名和服务名称映射为地址和端口号,且在此为全局寻址域中的地址和端口号同第二本地寻址域中的地址和端口号之间。随后名称和服务解析单元22根据名称查询在第二寻址域中查询一个地址和端口号,并查找第二设备16在第二寻址域中的地址AY和一个相关端口号。然后名称和服务解析单元22生成并返回一个响应。该响应在有效载荷中包括第二地址AY和相应端口号。然后,DNS_SRV ALG(应用级网关)单元24采用在有效载荷响应中第二网关20的地址A2G2和同第二网关20相关的另一个端口号代替第二地址AY和所述端口号。在第二设备16的地址AY和端口号同第二网关20在其NAPT表28中的地址A2G2和端口号之间还形成绑定。NATP 28被用来将本地地址和本地端口号转换为全局地址和全局端口号,即从第二本地寻址域中的地址和端口号转换为全局寻址域中的地址和端口号,反之亦然。随后,第一设备10接收关于名称和服务查询的响应,其指出第二网关20(而不是第二设备16)与设备20的名称和网关的端口号相关,以及对应于该服务。第一设备现能够通过将地址A2G2用作目的地址并将其相关端口号用作目的端口号启动一个会话。然后,通过将其自身第一地址AX和自身第一端口号PX1用作源且将上述地址A2G2和相应端口号用作目的便可将会话中的第一个分组从第一设备10发送到第二网关20。在这个第一地址AX和第一端口号PX1、第一网关14的全局地址A2G1、第一网关的相关端口号和全局地址A2G2以及第二网关20在第一网关14提供的NAPT表28中的相应端口号之间形成一个绑定。源地址AX和端口号PX1还被第一网关14转换成映射地址A2G1和相关端口号,并且该分组被第一网关14送至第二网关20,这在其NAPT 28中形成地址A2G1和相关端口号到在先绑定的地址A2G2和相关端口号以及具有相关端口号的地址AX之间的一个实际绑定。然后,第二网关将地址A2G2和相关端口号转换为地址AY和相关端口号并将分组送至第二设备16。以这种方式启动会话的更多细节在申请人题为“Initiating Communication Sessions From A First Computer Network toA Second Computer Network(从第一计算机网络向第二计算机网络启动通信会话)”的共同待决申请中阐述,欧洲专利申请号04100648.7(我方参考号PHNL040154,提交日期2004年2月19日)。
会话中,两个应用在各自应用层引擎30上启动。现在,该应用可能需要在启动会话的连接之外建立一个额外连接。在不同类应用中可能都需要这一连接,例如在将要建立视频会议会话时。在当前情况下,第二设备16如此操作。然后,第一设备10中的应用层引擎30连接到套接字层引擎32,请求将一个套接字绑定到一项服务,步骤50,以便自第二设备16建立连接。随后,套接字层引擎获得一个将用于该连接的服务名称,步骤51。请求可包括这一待用服务名称或者可以不存在这一服务名称。本示例中,存在一个,名为_HTTP。套接字层引擎32接受到这一具有相关服务名称的请求时,其继续并生成一个资源记录,步骤52,这在记录26的有效负载中示出。这一记录中,第一设备10的应用专用服务名称_HTTP、应用协议_TCP以及完全许可域名H1.N1.SP1.D1形式的局域设备名称被链接到所选的第二端口号PX2和第一局域网12中第一设备的第一地址AX上。然后,套接字层引擎32产生套接字并将其绑定到第一设备10的端口号PX2和地址AX上,步骤53。资源记录随后被提供到连接层引擎34,并使用第一网关G1的地址A1G1以及同该名称和服务解析单元22相关的应用专用端口号PG1将其从这里发送到第一网关14,步骤54。第一网关14随后接收资源记录26,步骤56。由于第一网关14已接收这一资源记录26,它将该资源记录26发送到其名称和服务解析单元22,该名称和服务解析单元22采用所述的资源记录更新其记录项,步骤58。
为了使第二设备16使用附加连接,必须找到第一设备10的设备名称和应用专用服务名称。如果第二设备启动该会话,那么它应该能够在建立第一连接时通过常规DNS_SRV查询找到第一设备10的局域设备名称。因此将只需要服务名称,这一服务名称已由应用预设。在第二设备16不知道这些名称时,它可以请求第一设备10提供一个设备名称和应用专用服务名称以备使用,或者当其已知设备名称时仅请求提供服务名称。随后,这一请求将在设备中的两个套接字层引擎32之间传输。然后,第一设备10的应用专用服务名称和可能的完全许可域名通过第一连接从第一设备10被发送到第二设备16,通过两个套接字层引擎32使用连接层引擎34和第一连接彼此进行通信。由于第二设备16现已具有这一完全许可域名和应用专用服务名称,它能够使用标准SRV_DNS查询对第一网关14的名称和服务解析单元22查询这一地址和服务名称。由于第二设备16中的应用现需要附加连接,应用层引擎30将一条连接请求发送到套接字层引擎32。当第二设备16的套接字层引擎32接收这一请求时,步骤59,它通过获取命令使连接层引擎34发送一条供相关第一设备10的名称和服务解析单元22使用的查询,步骤60。在此,同第一设备10相关的名称和服务解析单元22以第一设备10在第一本地寻址域中的地址AX和第二端口号PX2回应,步骤62,它被第一网关14中的DNS_SRV ALG24转换成全局寻址域中的网关地址A2G1和相应网关端口号,步骤64,这一响应被送至第二局域网18,步骤66。由此,在第一网关14的NAPT28中实现一个绑定,即第一设备14的第一地址AX和第二端口号PX2同第一网关14的全局地址A2G1和所选端口号之间的绑定,用以允许从第一局域网12以外到第一设备10的连接。因此,第一网关的这一地址同第一设备的地址相关。响应到达第二网关20时,由于第二网关20的NAPT28中在先形成的绑定,目的地址从地址A2G2转换成第二设备16的地址AY,从而响应被第二设备16接收,步骤67。现在第二设备16的套接字层引擎32可以将一个套接字同其自身地址AY和一个应用专用端口号绑定用于附加连接,这一连接现可被所述两个设备使用,步骤68。
附加连接上的通信结束时,第一设备10的套接字层引擎32命令连接层引擎34发送一条请求到其相关名称和服务解析单元22用以删除资源记录26,以便解除端口号同地址之间不必要的绑定,步骤70。对于建立的每个新连接,需要执行新的名称和服务解析过程。因此,第一设备不应该存储目的设备和服务的地址和端口号。
服务名称还包括协议信息,用以使其它设备获知同该服务相关的协议。
上面阐述的是如何建立自第二设备的附加连接。第一设备自然也能够启动会话,这种情况下第二设备将资源记录提供到对应的DNS_SRV单元。第一会话还可由第二设备代替第一设备启动。此外,将提供资源记录的功能阐述为在第一设备中实现,而通过查询DNS_SRV获得资源记录中信息的功能被阐述为在第二设备中提供。通常,这些功能组将在所有计算设备中给出。另外,资源记录不必要包含第一设备的地址信息。包含端口号就足够了。这里的本地名称和服务解析单元通过查看包含第一设备发送给它的资源记录的消息的源地址便能够找到该名称。当然第二设备可以只查询应用专用名称而不必查询设备名称。此外要根据本发明建立一个连接,不必在第一连接上先启动一个会话。一个设备可发送一个资源记录,其它设备在启动会话时可使用这一资源记录。
因此,本发明旨在为运行在至少两个设备上的应用提取和建立连接有关的地址和端口号使用情况。由于这一提取,会话中发送的消息不必包括用于建立连接的地址和端口号信息,在不同寻址域间的有效负载穿越接口中提供时,所述信息将受到负面影响。例如,这种负面影响包括公知端口号的加扰和禁用。通过名称和服务查询获得地址和端口号,优选为DNS_SRV查询形式,这保证在网络中自动处理可能的地址转换,如果他们具备地址转换能力的话。这还使本发明网络独立并允许其实际实现于任何网络。其它优势是不需要应用专用ALG,而是使用已有部件(与常规设备名称和服务名称解析和不同寻址域有关地被提供)的功能。多层应用成为可能。可使用现有基础结构,例如DNS_SRV协议,这使本发明实现起来简单且划算。本发明还使私人网络中同类型的多个服务器不需要配置。利用最初阐述的启动过程,全局网络中使用同一地址的多个网内会话成为可能。
上面在一个网关中设置了名称和服务解析单元。该名称和服务解析单元还可为局域网中的独立实体或服务器,所述的网关利用该单元同这个局域网通信,以便解析名称和服务。另一种可能的变化是该名称和服务解析单元分布在包括第一和/或第二设备的第一网络的多个端部设备中。
可采用硬件部件的形式提供计算设备中的不同单元。但是,它们通常以一个或多个处理器和适当程序存储器的形式提供,所述适当程序存储器包含合适的程序代码,用以实现根据本发明的方法。也可以在计算机可读介质形式的计算机程序产品上提供执行这一任务的软件或程序代码,当载入到所述的计算设备中时,它将执行计算设备中提供的根据本发明的方法的一部分。图6中绘制了一种CD Rom盘形式的介质72,但还存在许多不同的可能介质,例如磁盘。还可从局域网外的一个服务器上远程下载程序代码。
因此,本发明提供一种计算设备系统、多个计算设备、一种方法以及一种计算机程序产品,用于在至少两个计算设备间的通信中提取地址和端口号使用情况。
在已经提及的这些变化之外,本发明还存在多种可能的变化。正如前面提及的那样,第一设备中的应用不必将服务名称提供到套接字层引擎。这种情况下,套接字层引擎将生成一个。这一名称将包括符号的表面随机组合,所述符号在清楚识别某一端口号之外不具有任何特殊意义。套接字层引擎将一个套接字同端口号绑定之后,将该名称提供给应用。随后,该应用能够在发送到第二设备的消息的有效负载内使用这一名称。这样,运行在第一设备上的应用能够将该服务名称通知给运行在第二设备上的应用,这在接触所建立的套接字时是需要的。
尽管本发明在这一建立中是有益的,但不必在不同的局域网中提供两个设备。它们还可提供在相同的局域网中、同一全局网络中,或者一个提供在全局网络中另一个提供在局域网中。本发明不限于两个设备在一个会话中通信,还可应用到三个或更多的此类设备。本发明还不限于IP寻址,其它寻址类型也可以。网络不必为固定网络,也可例如为无线网络。
权利要求
1.一种用于为运行在至少第一设备(10)和第二设备(16)上的应用(30)提取地址和端口号使用情况的方法,该方法包括在第一设备中的步骤-从所述第一设备中的应用接收将一个套接字绑定到一项服务的请求(步骤50),-获得一个应用专用服务名称用于设备间的连接(步骤51),-生成一个资源记录(26),该资源记录包括一方面所述第一设备的至少一个端口号(PX2)同另一方面该应用专用服务名称间的一个绑定(步骤52),-产生一个套接字并将其绑定到端口号(步骤53),以及-命令将资源记录发送到一个相关的本地名称和服务解析单元(22)(步骤54),由此可在该名称和服务解析单元中存储资源记录以便允许运行在第二设备中的应用通过向名称和服务解析单元发送关于第一设备的应用专用服务名称的查询来获得同第一设备相关的地址和端口号,以用于连接。
2.根据权利要求1的方法,其中资源记录还包括第一设备的局域设备名称同地址(AX)间的绑定。
3.根据权利要求1的方法,还包括步骤命令将至少应用专用服务名称发送到第二设备,以便允许附加连接的建立。
4.根据权利要求3的方法,其中命令发送的步骤还包括命令发送第一设备的一个设备名称。
5.根据权利要求1的方法,其中获得服务名称的步骤包括从运行在设备上的应用接收服务名称。
6.根据权利要求1的方法,其中获得服务名称的步骤包括生成一个将要使用的服务名称。
7.根据权利要求6的方法,还包括将所生成的服务名称返回到应用的步骤。
8.根据权利要求1的方法,还包括当不再需要连接时命令从相关名称和服务解析单元删除资源记录的步骤(步骤70)。
9.根据权利要求1的方法,其中服务名称包括协议信息。
10.根据权利要求1的方法,还包括在第二设备中的步骤-从第二设备中的应用接收到第一设备中应用的连接的请求(步骤59),-命令发送供同第一设备相关的名称和服务解析单元使用的涉及第一设备的至少所述应用专用服务名称的查询(步骤60),以及-作为查询结果接收同第一设备相关的地址和端口号信息,由此可使用所接收的地址和端口号建立连接(步骤67)。
11.用于为运行在至少第一和第二设备(16)上的应用(30)提取地址和端口号使用情况的第一计算设备(10),包括-一个套接字层引擎(32),被设置为-从所述第一设备中的应用接收将一个套接字同一项服务绑定的请求,-获得一个应用专用服务名称用于设备间的连接,-生成一个资源记录(26),该资源记录包括一方面至少一个自身端口号(PX2)同另一方面该应用专用服务之间的一个绑定,-产生一个套接字并将其绑定到该端口号,以及-命令将资源记录发送到同第一设备相关的本地名称和服务解析单元(22),由此可在该名称和服务解析单元中存储资源记录,以便允许第二设备中的应用借助于一个和至少第一设备的应用专用服务有关的查询来获得同第一设备相关的地址和端口号,以用于通信。
12.根据权利要求11的计算设备,其中资源记录还包括第一设备的局域设备名称同地址(AX)间的绑定。
13.根据权利要求11的计算设备,其中套接字层引擎还被设置来命令将至少应用专用服务名称发送到第二设备,以便允许建立连接。
14.根据权利要求13的计算设备,其中套接字层引擎还被设置来命令发送第一设备的设备名称。
15.根据权利要求11的计算设备,其中在获得一个服务名称时,套接字层引擎还被设置来从运行在该设备上的应用接收服务名称。
16.根据权利要求11的计算设备,其中在获得一个服务名称时,套接字层引擎还被设置来生成一个将要使用的服务名称。
17.根据权利要求16的计算设备,其中套接字层引擎还被设置来将所生成的服务名称返回到应用。
18.根据权利要求11的计算设备,其中套接字层引擎还被设置来在不再需要附加连接时命令从名称和服务解析单元删除资源记录。
19.根据权利要求11的计算设备,其中服务名称包括协议信息。
20.用于为运行在至少第一设备(10)和第二设备上的应用(30)提取地址和端口号使用情况的第二计算设备(16),包括-套接字层引擎(32),被设置为-从所述第二设备中的应用接收一个连接请求,-命令将至少涉及与第一设备相关的应用专用服务名称的一个查询发送到同第一设备相关的名称和服务解析单元(22),这个名称和服务解析单元具有一条资源记录(26),该资源记录包括一方面所述第一设备的地址(AX)和端口号(PX2)同另一方面至少该应用专用服务名称之间的一个绑定,以及-作为查询响应,接收同第一设备相关的地址和端口号用于建立连接,由此可使用所接收的地址和端口号建立连接。
21.用于为运行在至少第一设备(10)和第二设备(16)上的应用(30)提取地址和端口号使用情况的计算设备的系统,包括-所述第一计算设备具有一个套接字层引擎(32),该套接字引擎被设置为-从所述第一设备中的应用接收将一个套接字绑定到一项服务的请求,-获得一个应用专用服务名称用于设备间的连接,-生成一个资源记录,该资源记录包括一方面第一设备的至少自身端口号(PX2)同另一方面该应用专用服务名称之间的一个绑定,-产生一个套接字并将其绑定到该端口号,以及-命令将资源记录发送到同第一设备相关的本地名称和服务解析单元(22),由此可在该名称和服务解析单元中存储资源记录,-所述第二设备具有一个套接字层引擎(32),被设置为-从所述第二设备中的应用接收一个连接请求,-命令将涉及与第一设备相关的应用专用服务名称的查询发送到同第一设备相关的名称和服务解析单元,以及-作为对该查询的响应接收与第一设备相关的地址和端口号用于建立连接,由此可使用所接收的地址和端口号建立连接。
22.用在第一计算设备(10)中的计算机程序产品(72),所述第一计算设备用于为运行在至少第一和第二设备(16)上的应用(30)提取地址和端口号使用情况,所述计算机程序产品具有-计算机程序代码,当所述程序代码载入第一设备时使得第一设备执行-从所述第一设备中的应用接收将一个套接字绑定到一项服务的请求,-获得一个应用专用服务名称用于设备间的连接,-生成一个资源记录(26),该资源记录包括一方面至少所述第一设备的一个端口号(PX2)同另一方面该应用专用服务名称之间的一个绑定,-产生一个套接字并将其绑定到该端口号,以及-命令将资源记录发送到同第一设备相关的本地名称和服务解析单元(22),由此可在该名称和服务解析单元中存储资源记录,以便允许第二设备中的应用借助于和第一设备的设备名称和应用专用服务名称有关的查询来获得一个同第一设备相关的地址和端口号,以用于建立连接。
23.用在第二计算设备(16)中的计算机程序产品(72),所述第二计算设备用于为运行在至少第一设备(10)和第二设备上的应用(30)提取地址和端口号使用情况,所述计算机程序产品具有-计算机程序代码,当所述程序代码载入第二设备时使得第二设备执行-从所述第二设备中的应用(30)接收一个连接请求,-命令将至少涉及与第一设备相关的一个应用专用服务名称的查询发送到同第一设备相关的名称和服务解析单元(22),该名称和服务解析单元具有一个资源记录(26),该资源记录包括一方面所述第一设备的地址(AX)和端口号(PX2)同另一方面该应用专用服务名称间的一个绑定,以及-作为对该查询的响应,接收同第一设备相关的地址和端口号以用于建立连接,由此可使用所接收的地址和端口号以及一个自身地址(AY)和端口号来建立连接。
全文摘要
本发明涉及一种方法、多个计算设备、一种计算设备系统以及计算机程序产品,用于为运行在第一设备和第二设备上的应用提取地址和端口号使用情况。该系统包括第一设备(10)和第二设备(16),第一设备(10)从所述第一设备中的应用接收将一个套接字绑定到一项服务的请求、获得一个服务名称、生成一个包括端口号同服务名称间的绑定的资源记录(26)、产生一个套接字并将其绑定到该端口号并将记录发送到同第一设备相关的解析单元(22);第二设备(16)从所述第二设备中的应用接收一个连接请求、将涉及服务名称的查询发送到解析单元并作为对该查询的响应接收同第一设备相关的地址和端口号。
文档编号H04L29/12GK1926840SQ200580006626
公开日2007年3月7日 申请日期2005年2月28日 优先权日2004年3月2日
发明者J·H·艾辛克 申请人:皇家飞利浦电子股份有限公司