专利名称::联系目的地信息登记方法及程序、网络系统和节点的制作方法
技术领域:
:本发明涉及联系目的地信息登记方法、网络系统、节点和联系目的地信息登记程序。具体而言,本发明涉及这样的联系目的地信息登记方法等当节点在分布式哈希表(distributedhashtable)中登记与预定节点地址相对应的联系目的地信息时,该节点执行第一请求操作,即,获取被登记在所述分布式哈希表中以与作为所述预定节点地址的哈希值的关键字(key)相关联的值的登记时间,并且之后执行第二请求操作,目卩,如果被登记在所述分布式哈希表中以与所述关键字相关联的值的登记时间与在第一请求操作中所获得的登记时间相一致,则将联系目的地信息登记在所述分布式哈希表中以与所述关键字相关联,从而实现针对单个节点地址而登记多条联系目的地信息。
背景技术:
:作为通信控制协议,例如,已知的有在日本专利早期公开No.2005-184450等中所描述的会话发起协议(SIP)。SIP是用于发起、修改和终止发起协议网络上的多媒体会话的应用层信令协议。SIP在RFC3261中被标准化。用于采用SIP的视频会议系统等的IP电话和通信终端需要引入SIP代理服务器、登记服务器(registrarserver)等(下文中将称为"SIP服务器"),以执行SIP统一资源标识符(URI)的名称解析。图10示出了采用SIP的通信系统的基本配置200。在该基本配置200中,终端(呼叫方)201、终端(被呼叫方)202和SIP服务器203经由IP网络204而彼此相连接。图11示出了采用SIP的信令示例。(1)为了建立会话,终端(呼叫方)201以终端(被呼叫方)202为目的地向代理服务器203a发送INVITE(邀请)消息。(2)代理服务器203a向定位服务器(locationserver)205发送INVITE消息中所包括的SIPURI,以询问定位服务器205关于目的地终端(被呼叫方)202的IP地址的信息。(3)定位服务器205查找与从代理服务器203a发送来的SIPURI相关联的IP地址,并将终端(被呼叫方)202的IP地址发送给代理服务器203a。(4)代理服务器203a使用从定位服务器205发送来的终端(被呼叫方)202的IP地址来将从终端(呼叫方)201发送而来的INVITE消息转发到终端(被呼叫方)202。(5)终端(被呼叫方)202接收来自终端(呼叫方)201的INVITE消息,并执行诸如使电话铃响铃之类的响铃过程。(6)然后,在电话接收者等摘机(off-hook)之后,终端(被呼叫方)202向代理服务器203a发送成功响应(200OK),并且(7)代理服务器203a将该成功响应转发到终端(呼叫方)201。(8)终端(呼叫方)201接收来自终端(被呼叫方)202的成功响应,并向代理服务器203a发送ACK响应(接受会话建立)。(9)代理服务器203a将该ACK响应转发到终端(被呼叫方)202。结果,在终端(呼叫方)201和终端(被呼叫方)202之间创建了会话,并且在所创建的会话上在它们两者之间交换音频数据,也就是建立了通信。在具有少量或中等数量的参与终端的小规模或中等规模的通信系统中,希望更容易地实现通信环境,而无需引入SIP服务器。一个实现上述目的的可想到的方法是应用覆盖网络(overlaynetwork)。覆盖网络是在假设网络层上的连接有保障的情况下在诸如IP网络之类的网络层之上形成虚拟网络的技术。存在用于实现覆盖网络的各种方法,其中之一是使用诸如Chord之类的分布式哈希表的技术的方法。例如在日本专利早期公开No.2005-234762中所描述的,分布式哈希表是允许多个节点(即,终端)中的存储单元的集合起到一个巨大的哈希表的作用的技术。在采用分布式哈希表的覆盖网络中,形成该巨大哈希表的节点集合形成了覆盖网络。要被存储在哈希表中的数据基于根据该数据本身或者被赋于该数据的名称等使用哈希函数而计算得到的关键字(哈希值),而被存储在所述覆盖网络上的节点(哈希表)中。哪个节点实际存储数据取决于所采用的算法。当需要访问值时,基于关键字从存储该值的节点获得该值。例如在Chord[2]中,首先由加入覆盖网络的节点形成单个环,并且由各个节点所保存的数据基于使用诸如SHA-1之类的哈希函数所计算得到的关键字,被存储在所述单个环中的节点中。通过适当地利用节点在环中的排序方式来高效地实现对节点或资源的访问。在采用分布式哈希表的覆盖网络中,加入覆盖网络的节点的信息或数据一般而言被分布并存储在节点的存储单元中。因此,由于节点的存储单元可以被各个节点访问,所以它们可以被视为由加入覆盖网络的所有节点所共享。适当使用这种分布式共享存储使得可以在不使用SIP服务器的情况下实现例如由SIP服务器执行的SIPURL名称解析。图12示出了采用分布式哈希表的信令示例。(1)终端(呼叫方)301在分布式哈希表(即,覆盖网络)303中查找与作为终端(被呼叫方)302的哈希值的关键字相关联的值(即,终端(被呼叫方)302的IP地址),并且(2)终端(呼叫方)301从分布式哈希表303获得与所述关键字相关联的值。(3)终端(呼叫方)301使用已经从分布式哈希表303获得的与所述关键字相关联的值(即,终端(被呼叫方)302的IP地址)来向终端(被呼叫方)302发送INVITE消息。(4)终端(被呼叫方)302接收来自终端(呼叫方)301的INVITE消息,并执行诸如使电话铃响铃之类的响铃处理。(5)然后,在电话接收者等摘机之后,终端(被呼叫方)302向终端(呼叫方)301发送成功响应(200OK)。(6)终端(呼叫方)301接收来自终端(被呼叫方)302的成功响应,并向终端(被呼叫方)302发送ACK响应(接受会话建立)。结果,在终端(呼叫方)301和终端(被呼叫方)302之间创建了会话,并且在所创建的会话上在它们两者之间交换音频数据,也就是建立了通信。
发明内容为了通过使用分布式哈希表而不是通过使用服务器来实现通常由SIP服务器执行的基本功能,可能有必要解决以下在采用服务器时不会出现的问题例如,当单个SIPURI具有多个联系目的地时,应当如何在分布式哈希表中登记所述多个联系目的地。因为分布式哈希表是由多个节点共享的资源,所以需要排他性的访问控制(exclusiveaccesscontrol)。本发明已经被设计以实现针对单个节点地址来登记多条联系目的地信自本发明的概念在于被用在包括多个节点并采用分布式哈希表的网络系统中的联系目的地信息登记方法。当在分布式哈希表中登记与预定节点地址相对应的联系目的地信息时,该节点首先执行第一请求操作,S卩,在分布式哈希表中查找与作为所述预定节点地址的哈希值的关键字相关联的值,并且,如果在所述分布式哈希表中没有登记与所述关键字相关联的值,则在该分布式哈希表中登记临时联系目的地信息以与所述关键字相关联,并且获得所述临时联系目的地信息的登记时间。但是,如果在所述分布式哈希表中登记了与所述关键字相关联的任何值,则获取所登记的所述值的登记时间。然后,如果被登记在所述分布式哈希表中以与所述关键字相关联的值的登记时间与由第一请求操作所获得的登记时间相一致,则执行第二请求操作,S卩,在所述分布式哈希表中登记正式的联系目的地信息以使得与所述关键字相关联。根据本发明,所述节点顺序地执行第一和第二请求操作,以将针对预定节点地址的联系目的地信息(例如,IP地址)登记在分布式哈希表中。具体而言,当在分布式哈希表中登记与预定节点地址相对应的联系目的地信息时,节点首先执行第一请求操作以获得被登记在分布式哈希表中以与作为所述预定节点地址的哈希值的关键字相关联的值的登记时间。此时,如果搜索所述分布式哈希表的结果是发现在该分布式哈希表中没有登记与所述关键字相关联的值,则所述节点在该分布式哈希表中登记临时联系目的地信息以与所述关键字相关联,并且获得该临时联系目的地信息的登记时间。此后,如果被登记在分布式哈希表中以与所述关键字相关联的值的登记时间与第一请求操作所获得的登记时间相一致,则所述节点执行第二请求操作,即,在所述分布式哈希表中登记正式的联系目的地信息以与所述关键字相关联。这使得可以针对一个节点地址来登记多条联系目的地信息。图1是示出根据本发明一个实施例的采用分布式哈希表的网络系统的配置的示图2是示出形成采用分布式哈希表的网络系统的一部分的节点的结构的框图3和4示出了一次只能够登记一条联系目的地信息的通信环境中的联系目的地信息的登记序列;图5示出了用于描述当在一次仅能够登记一条联系目的地信息的通信环境中,试图登记多条联系目的地信息时发生的问题的序列;图6和7示出了根据下述方法的登记序列,在所述方法中,当对被登记在分布式哈希表中的数据进行改变时,始终对所述数据被更新的时间进行检査;图8是示出在分布式哈希表中执行的过程的流程图9示出了在采用分布式哈希表的网络系统中的基本信令的示例性序列;图10是示出采用SIP的通信系统的基本配置的框图;图ll示出了采用SIP的信令的示例;以及图12示出了采用分布式哈希表的信令的示例。具体实施例方式图1示出了根据本发明一个实施例采用分布式哈希表的由多个节点形成的网络系统100。在该网络系统100中,N个节点(终端)101-1到101-N与IP网络102相连接。在这种情况下,节点101-1到IOI-N总起来形成分布式哈希表(覆盖网络)103。存在各种分布式哈希表的算法,例如Chord和Kademlia。这里,为了描述分布式哈希表与算法无关的基本功能,使用了以下抽象概念Name:被分配以标识数据的名称。hash(x):用于计算关键字的哈希函数。key:使用哈希函数而计算得到的哈希值。PUT(key,value):将与key(关键字)相对应的value(值)加入到分布式哈希表中。DELETE(key):从分布式哈希表中删除与key相关联的value。此时,获得被删除的value。LOOKUP(key;):在分布式哈希表中查找与key相关联的值。例如,当将名称name的值value登记在分布式哈希表中时,使用PUT(hash(name),value)。这使得值被存储在与通过hash(name)所计算得到的关键字相对应的节点的存储单元中。类似地,当从分布式哈希表删除与名称name相关联的值时,使用DELETE(hash(name))。图2示出了节点101的结构,节点101是形成图1所示的网络系统100的节点101-1到101-N中的任一个。节点101包括节点管理部分101a、分布式哈希表部分101b、P2PSIP处理部分101c和应用部分101d。节点管理部分101a是用于管理加入覆盖网络(即,形成分布式哈希表)的节点中的每一个节点的单元。分布式哈希表部分101b是用于执行向或从分布式哈希表加入、删除或获取数据的过程的单元。P2PSIP处理部分lOlc是用于将与SIP中根据REGISTER(登记)请求或PUBLISH(公布)请求而登记数据的过程相等同的过程映射到分布式哈希表上的单元。为了使用分布式哈希表来实现与当使用SIP服务器时所执行的过程相等同的过程,有必要将与在REGISTER请求时要被存储在SIP服务器中的联系信息相等同的信息存储在分布式哈希表中。以下的XML文档是用XML写的节点地址sip:alice@sony.net的联系信息的示例。在该示例中,IPv4被用于IP地址,但是按类似方式IPv6也适用。在该XML文档中,sip:alice@sony.net的联系目的地是用〈contact〉标记来描述的sip:alice@192.168.0.1:5060。<xmlversion="1.0,,encoding="utf-8,,?><contactinfoentry="sip:alice@sony.net,,xmlns="http:〃xmlns.sony.net/dht/sip,,〉<entry〉<contact>sip:alice@l92.168.0.1:5060</contact><updated〉2006-08-16T20:48:32+09:00</updated〉<expires>3600</expires><methods><allow>INVITE</allow〉<allow>CANCEL</allow〉<allow>BYE</allow〉<allow>ACK</allow><allow>OPTIONS</allow><allow>PRACK</allow><allow>UPDATE</allow></methods〉<extensions〉<supported〉100rel</supported></extensions〉</entry></contactinfo>当在分布式哈希表中登记联系信息时,需要考虑以下两种情况。(a)对于单个SIPURI,一次向分布式哈希表加入一条联系目的地信息。(b)对于单个SIPURI,向分布式哈希表同时加入多条联系目的地信息。可以相对简单地处理以上的情况(a)。图3和4是示出在一次仅可登记一条联系目的地信息的通信环境中联系目的地信息的登记的顺序图。图3是示出sip:alice@sony.net的联系目的地信息第一次被登记的情况的顺序图。登记顺序如下所示(1)在sip:alice⑥sony.net登录之后,节点Nl向分布式哈希表DHT发送LOOKUP(査找)请求。(2)分布式哈希表DHT查找与关键字hash("sip:alice@sony.net")相关联的值。因为没有找到这样的值,所以分布式哈希表DHT向节点N1发送404NOTFOUND(404没有找到)响应。(3)为了将sip:alice@sony.net的联系目的地信息contactinfo登记在分布式哈希表DHT中,节点Nl向分布式哈希表DHT发送PUT请求。(4)在登记完成之后,分布式哈希表DHT向节点Nl发送200OK响应。图4是示出已经登记的联系目的地信息被更新的情况的顺序图。更新顺序如下所示(1)在sip:alice⑥sony.net登录之后,节点Nl向分布式哈希表DHT发送LOOKUP请求。(2)分布式哈希表DHT査找与关键字hash("sip:alice@sony.net")相关联的值。因为该值已经被找到,所以分布式哈希表DHT向节点N1发送200OK响应。(3)为了将sip:alice@sony.net的联系目的地信息contactinfo登记在分布式哈希表DHT中,节点N1向分布式哈希表DHT发送PUT请求。(4)在登记完成之后,分布式哈希表DHT向节点Nl发送200OK响应。在上述情况(b)中,按以上的顺序可能会发生问题。图5是示出发生问题的情况的顺序图。(1)在sip:alice⑥sony.net登录之后,节点Nl向分布式哈希表DHT发送LOOKUP请求。(2)分布式哈希表DHT查找与关键字hash("sip:alice@sony.net")相关联的值。因为没有找到这样的值,所以分布式哈希表DHT向节点Nl发送404NOTFOUND响应。(3)在sip:alice⑨sony.net登录之后,节点N2向分布式哈希表DHT发送LOOKUP请求。(4)分布式哈希表DHT查找与关键字hash("sip:alice@sony.net")相关联的值。因为没有找到这样的值,所以分布式哈希表DHT向节点N2发送404NOTFOUND响应。(5)因为接收到404NOTFOUND响应,为了将针对sip:alice@sony.net的节点Nl自身的联系目的地信息登记在分布式哈希表DHT中,节点Nl向分布式哈希表DHT发送具有联系信息CI的PUT请求。(6)分布式哈希表DHT登记联系信息C1,并向节点N1发送200OK响应。(7)因为接收到404NOTFOUND响应,为了将针对sip:alice@sony.net的节点N2自身的联系目的地信息登记在分布式哈希表DHT中,节点N2向分布式哈希表DHT发送具有联系信息C2的PUT请求。(8)分布式哈希表DHT用联系信息C2来覆写联系信息C1,并向节点N2发送200OK响应。如上所述,以上的顺序具有这样的问题之前所登记的联系信息Cl被联系信息C2所覆写。为了解决这个问题,在本实施例中,当对登记在分布式哈希表中的数据进行改变时,所述数据被更新的时间总是被检查。为此,在本实施例中,另外准备了以下的LOOKUP2和UPDATE(更新),作为针对分布式哈希表的新的操作。LOOKUP2(key,value):在分布式哈希表中查找与key相关联的value。如果在分布式哈希表中登记了与key相关联的任何值,则从分布式哈希表返回该登记值,而如果在分布式哈希表中没有登记与key相关联的值,则在分布式哈希表中登记指定的value。UPDATE(key,value,time):将与key相关联的值更新为value。但是,注意,如果登记在分布式哈希表中的值被登记的时间与time不一致,则不执行更新,并且从分布式哈希表返回错误。通过使用L00KUP2,即使当分布式哈希表中没有登记值时,也在分布式哈希表中登记临时值,并且基于被登记值的登记时间,对数据更新的时间管理变为可能。另外,通过使用UPDATE,可以检査当更新之前节点引用分布式哈希表时的值与节点试图更新的值是否不同。图6是检查更新时间的方法的顺序图。(1)在sip:alice@sony.net登录之后,节点Nl向分布式哈希表DHT发送具有临时联系信息C0的LOOKUP2请求。(2)分布式哈希表DHT查找与关键字hash("sip:alice@sony.net")相关联的值。因为没有找到这样的值,所以分布式哈希表DHT登记在LOOKUP2中指定的临时联系信息C0,并向节点Nl发送具有其登记时间Tl的404NOTFOUND响应。(3)在sip:alice@sony.net登录之后,节点N2向分布式哈希表DHT发送具有临时联系信息C0的LOOKUP2请求。(4)分布式哈希表DHT査找与关键字hash("sip:alice@sony.net")相关联的值。因为联系信息CO己经被登记,所以分布式哈希表DHT向节点N2发送具有联系信息C0及其登记时间Tl的200OK响应。(5)因为接收到404NOTFOUND响应,所以为了将针对sip:alice②sony.net的、节点N1自身的联系目的地信息登记在分布式哈希表DHT中,节点N1向分布式哈希表DHT发送具有联系信息C1(包括临时联系信息C0和附加的节点N1自身的联系目的地信息)和登记时间T1的UPDATE请求。(6)分布式哈希表DHT将分布式哈希表内的信息T1与在UPDATE请求中的信息T1进行比较。因为它们相互一致,所以分布式哈希表DHT登记该联系信息Cl,并向节点N1发送200OK响应。(7)因为接收到200OK响应,所以为了将针对sip:alice⑥sony.net的、节点N2自身的联系目的地信息登记在分布式哈希表DHT中,节点N2向分布式哈希表DHT发送具有联系信息C2(包括临时联系信息C0和附加的节点N2自身的联系目的地信息)和登记时间T1的UPDATE请求。(8)分布式哈希表DHT将分布式哈希表DHT内的信息T2与UPDATE请求中的信息Tl进行比较。因为分布式哈希表DHT内的信息T2比UPDATE请求中的信息Tl更新,所以分布式哈希表DHT向节点N2发送错误响应,而不登记联系信息C2。图7是示出了在检查更新时间的方法中多条联系信息被登记的情况的顺序图。(1)在sip:alice⑥sony.net登录之后,节点Nl向分布式哈希表DHT发送具有临时联系信息CO的LOOKUP2请求。(2)分布式哈希表DHT查找与关键字hash("sip:alice@sony.net")相关联的值。因为没有找到这样的值,所以分布式哈希表DHT登记在LOOKUP2中所指定的临时联系信息C0,并发送具有登记时间Tl的404NOTFOUND响应。(3)因为接收到404NOTFOUND响应,所以为了将针对sip:alice⑥sony.net的、节点Nl自身的联系目的地信息登记在分布式哈希表DHT中,节点N1向分布式哈希表DHT发送具有联系信息C1(包括临时联系信息C0和附加的节点N1自身的联系目的地信息)和登记时间Tl的UPDATE请求。(4)分布式哈希表DHT将分布式哈希表DHT内的信息Tl与UPDATE请求中的信息T1进行比较。因为它们相互一致,所以分布式哈希表DHT登记所述联系信息CI,并向节点Nl发送200OK响应。(5)在sip:alice@sony.net登录之后,节点N2向分布式哈希表DHT发送具有临时联系信息CO的LOOKUP2请求。(6)分布式哈希表DHT查找与关键字hash("sip:alice@sony.net")相关联的值。因为联系信息C1已经被登记,所以分布式哈希表DHT向节点N2发送具有联系信息CI及其登记时间T2的200OK响应。(7)因为接收到200OK响应,所以为了将针对sip:alice⑥sony.net的、节点N2自身的联系目的地信息登记在分布式哈希表DHT中,节点N2向分布式哈希表DHT发送具有联系信息Cl'(包括由节点Nl所登记的联系信息Cl和附加的节点N2自身的联系目的地信息)和登记时间T2的UPDATE请求。(8)分布式哈希表DHT将分布式哈希表DHT内的信息T2与UPDATE请求中的信息T2进行比较。因为它们相互一致,所以分布式哈希表DHT登记联系信息Cl',并向节点N2发送200OK响应。图8的流程图示出了当己经接收到UPDATE请求时在分布式哈希表DHT中执行的过程。在步骤ST1处开始所述过程之后,分布式哈希表DHT前进到步骤ST2。在步骤ST2中,分布式哈希表DHT从UPDATE请求中获取所参考的数据的最后一次更新的时间Ta。然后,在步骤ST3中,分布式哈希表DHT判断在该分布式哈希表DHT中的数据的最后一次更新时间Tb是否与在步骤ST2中获得的时间Ta相一致。如果时间Ta与时间Tb不相一致,则在步骤ST4中,分布式哈希表DHT向发送UPDATE请求的节点返回错误响应。同时,如果时间Ta与时间Tb相一致,则在步骤ST5中,分布式哈希表DHT将该分布式哈希表DHT内的数据更新为在所述UPDATE请求中指定的数据。以下的XML文档是用XML写的临时联系信息CO的示例。在LOOKUP2请求中指定的临时联系信息CO不包括联系目的地信息。这是因为在发送LOOKUP2请求时,重要的不是联系目的地信息,而是通知节点更新信息的意图。<xmlversion="l.0"encoding="utf-8"><contactinfoentry="sip:alice(^sony.net,,xmlns=http:〃xmlns.sony.net/dht/sip><updated>2006-08-16T20:48:32+09:00</updated></contactinfo>在图6和7中从节点Nl向分布式哈希表DHT发送的联系信息Cl包括联系信息C0和附加的节点N1自身的联系目的地信息。以下的XML文档是用XML写的联系信息Cl的示例。<xmlversion="l.0"encoding="utf-8"><contactinfoentry="sip:alice@sony.net"xmlns=http:〃xmlns.sony.net/dht/sip><updated〉2006-08-16T20:51:16+09:00</updated><entry><contact〉sip:alice@192.168.0.1:5060</contact〉<updated>2006-08-16T20:51:16+09:00</updated〉<expires>3600</expires><methods〉<allow>INVITE</allow><allow>CANCEL</allow><allow>BYE</allow><allow>ACK</allow><allow>OPTIONS</allow><allow>PRACK</allow><allow〉UPDATE</allow></methods><extensions>〈supported〉100rel</supported〉</extensions></entry〉</contactinfo>如上所述,在图7中从节点N2向分布式哈希表DHT发送的联系信息C1'包括联系信息C1和附加的节点N2自身的联系目的地信息。以下的XML文档是用XML写的联系信息Cl'的示例。<xmlversion="l.0"encoding="utf-8"〉<contactinfoentry="sip:alice@sony.net"xmlns=http:〃xmlns.sony.net/dht/sip><updated>2006-08-16T21:34:26+09:00</updated><entry><contact〉sip:alice@192.168,0.1:5060</contact〉<updated>2006-08-16T20:51:16+09:00</updated〉<expires>3600</expires><methods〉<allow〉INVITE</allow〉<allow>CANCEL</allow><allow>BYE</allow><allow>ACK</allow><allow>OPTIONS</allow><allow>PRACK</allow><allow>UPDATE</allow></methods〉<extensions〉<supported>100rel</supported><formula>formulaseeoriginaldocumentpage18</formula>如上所述,LOOKUP2请求和UPDATE请求的引入使得可以针对单个SIPURI登记多条联系目的地信息。上述方法被用于实现SIP信令。首先,当sip:alice@sony.net已经登录终端时,联系信息被登记在分布式哈希表中。当在分布式哈希表中登记联系信息时,在分配名称方面需要小心。例如,以下的SIPURI意思相同,但是如果它们被用作用于计算分布式哈希表中的关键字的名称,则将得到不同的关键字。sip:alice@sony.netsip:alice@sony.net:5060sip:alice@192.168,0.1sip:alice@192.168.0.1:5060如果用于同一用户的多条信息被使用不同的关键字来登记在分布式哈希表中,则分布式哈希表的存储容量可能很容易被用完,因此,如果可能,则希望作为一条联系信息来对待所述同一用户的多条信息。因此,在本方法中,仅有sip:alice⑥sony.net被登记在分布式哈希表中,而其它的不被登记在分布式哈希表中。在"sip:alice@sony.net"之后跟随端口号的情况下,首先,禾U用sip:alice@sony.net来获得〈contactinfo〉,从〈contact〉中提取省略了端口号的地址,并发送所提取的添加了指定的端口号的地址。在IP地址跟在"@"之后的情况下,名称解析并不是使用分布式哈希表来执行的。在写了主机名称而没有使用"@"的情况下,名称解析是使用DNS来执行的,而不执行通过使用分布式哈希表的名称解析。图9是sip:alice@sony.net向sip:bob@sony.net发起呼叫的基本信令的示例性序列。这里假设各个SIPURI的联系目的地信息已经按上述方式被登记在分布式哈希表中。(1)为了获取sip:bob⑨sony.net的联系目的地信息,节点N1向分布式哈希表DHT发送LOOKUP请求。(2)分布式哈希表DHT使用200OK响应来向节点Nl返回与sip:bob⑥sony.net相对应的联系目的地信息。(3)节点Nl从Sip:bob@Sony.net的联系目的地信息中获得联系目的地,并直接向作为联系目的地的节点N2发送INVITE请求。(4)在接收到INVITE请求之后,节点N2向节点Nl发送200OK响应。(5)节点N1向节点N2发送ACK响应。其结果是,在节点N1和节点N2之间创建了会话,并且在所创建的会话上开始音频数据、图像数据等的交换。当sip:alice⑨sony.net退出所述节点时,或者当该节点自己离开覆盖网络时,有必要在离开之前从分布式哈希表中删除联系信息。在毫无问题可以完全删除联系信息的情况下,可以使用DELETE(关键字)来删除联系信息。但是,因为可能有多个联系目的地被登记,所以希望根据与登记序列相类似的序列来仅删除XML文档中的联系信息的不必要部分,并且,仅当没有登记其它联系目的地时,才使用DELETE(关键字)来用于删除。本发明使得可以针对一个节点地址登记多条联系目的地信息,并且适用于采用分布式哈希表的网络系统。本领域技术人员应当了解,在所附权利要求或其等同物的范围内,根据设计要求和其它因素可以作出各种修改、组合、子组合和变化。相关申请的交叉引用本申请包含与2006年11月22日在日本专利局提交的日本专利申请JP2006-316360相关的主题,该申请的全部内容通过引用结合于此。权利要求1.一种在包括多个节点并采用分布式哈希表的网络系统中使用的联系目的地信息登记方法,其中当在所述分布式哈希表中登记与预定节点地址相对应的联系目的地信息时,所述节点首先执行第一请求操作,即,在所述分布式哈希表中查找与作为所述节点地址的哈希值的关键字相关联的值,并且,如果在所述分布式哈希表中没有登记与所述关键字相关联的值,则在所述分布式哈希表中登记临时联系目的地信息以与所述关键字相关联,并且获得所述临时联系目的地信息的登记时间,但是,如果在所述分布式哈希表中登记了任何与所述关键字相关联的值,则获取被登记的所述值的登记时间,然后如果被登记在所述分布式哈希表中以与所述关键字相关联的值的登记时间,与通过所述第一请求操作获得的登记时间相一致,则执行第二请求操作,即,在所述分布式哈希表中登记正式的联系目的地信息以与所述关键字相关联。2.—种网络系统,其包括多个节点并采用分布式哈希表,所述节点中的每一个节点都包括被配置用于访问所述分布式哈希表的分布式哈希表部分,其中当在所述分布式哈希表中登记与预定节点地址相对应的联系目的地信息时,所述分布式哈希表部分首先执行第一请求操作,即,在所述分布式哈希表中查找与作为所述预定节点地址的哈希值的关键字相关联的值,并且,如果在所述分布式哈希表中没有登记与所述关键字相关联的值,则在所述分布式哈希表中登记临时联系目的地信息以与所述关键字相关联,并获得所述临时联系目的地信息的登记时间,但是,如果在所述分布式哈希表中登记了任何与所述关键字相关联的值,则获取被登记的所述值的登记时间,然后如果被登记在所述分布式哈希表中以与所述关键字相关联的值的登记时间,与通过所述第一请求操作获得的登记时间相一致,则执行第二请求操作,即,在所述分布式哈希表中登记正式的联系目的地信息以与所述关键字相关联。3.—种形成采用分布式哈希表的网络系统的一部分的节点,所述节点包括分布式哈希表部分,其被配置用于访问所述分布式哈希表,其中当在所述分布式哈希表中登记与预定节点地址相对应的联系目的地信息时,所述分布式哈希表部分首先执行第一请求操作,即,在所述分布式哈希表中査找与作为所述预定节点地址的哈希值的关键字相关联的值,并且,如果在所述分布式哈希表中没有登记与所述关键字相关联的值,则在所述分布式哈希表中登记临时联系目的地信息以与所述关键字相关联,并获得所述临时联系目的地信息的登记时间,但是,如果在所述分布式哈希表中登记了任何与所述关键字相关联的值,则获取被登记的所述值的登记时间,然后如果被登记在所述分布式哈希表中以与所述关键字相关联的值的登记时间,与通过所述第一请求操作获得的登记时间相一致,则执行第二请求操作,即,在所述分布式哈希表中登记正式的联系目的地信息以与所述关键字相关联。4.一种联系目的地信息登记程序,其使得形成采用分布式哈希表的网络系统的一部分的节点,在所述分布式哈希表中登记与预定节点地址相对应的联系目的地信息时,执行以下步骤a)在所述分布式哈希表中査找与作为所述预定节点地址的哈希值的关键字相关联的值,并且,如果在所述分布式哈希表中没有登记与所述关键字相关联的值时,在所述分布式哈希表中登记临时联系目的地信息以与所述关键字相关联,并获得所述临时联系目的地信息的登记时间,但是,如果在所述分布式哈希表中登记了任何与所述关键字相关联的值,则获取被登记的所述值的登记时间;以及b)在所述步骤a)之后,如果被登记在所述分布式哈希表中以与所述关键字相关联的值的登记时间,与在所述步骤a)中获得的登记时间相一致,则在所述分布式哈希表中登记正式的联系目的地信息以与所述关键字相关联。全文摘要本发明公开了一种联系目的地信息登记方法及程序、网络系统和节点。这里所公开的是一种在包括多个节点并采用分布式哈希表的网络系统中使用的联系目的地信息登记方法。当在表中登记与预定节点地址相对应的联系目的地信息时,所述节点首先执行第一操作,即,在所述表中查找与对应于所述节点地址的关键字相关联的值,并且,如果没有找到这样的值,则在所述表中登记临时联系目的地信息以与所述关键字相关联,并获取该临时信息的登记时间,但是,如果找到了任何这样的值,则获取该值的登记信息,然后,如果在所述表中与所述关键字相关联的值的登记时间与通过第一操作所获得的登记时间相一致,则执行第二操作,即,在所述表中登记正式的联系目的地信息。文档编号H04M3/42GK101188643SQ20071019482公开日2008年5月28日申请日期2007年11月22日优先权日2006年11月22日发明者保木本晃弘申请人:索尼株式会社