专利名称::对等网络节点故障检测/处理方法及装置的制作方法
技术领域:
:本发明涉及对等网络技术,具体涉及对等网络节点故障检测/处理方法及装置。
背景技术:
:对等(P2P:PeerToPeer)网络由多个独立的节点相互连接而成,这些节点被称为对等节点(Peer)。在对等网络中,每个对等节点贡献自己的能力并相互协作来提供对等网络服务,当前对等网络服务主要包括分布式存储服务和分布式传送服务。与传统的客户/服务器架构(Client/Server)不同,对等网络中的节点位置是对等的,也就是说在这个网络中没有集中式的服务器,组成对等网络的节点以分布式的方式提供服务。组成对等网络的对等节点在对等网络中有着自己独立而且唯一的标识,这个标识被称为为对等节点标识(Peer-ID);使用分布式存储服务保存在对等网络中的资源在对等网络中也有自己独立的标识,这个标识4皮称为为资源标识(Resource-ID)。对等网络使用标识(即对等节点标识和资源标识)进行路由,在对等网络为转发作路由决策时,对等网络节点在自己维护的对等网络路由表中选择具有比自己的Peer-ID更接近目的标识的Peer-ID的对等网络节点作为对等网络路由的下一跳。当前存在三种对等网络路由模式,也称为转发模式,它们分别是迭代模式、递归模式以及半递归模式。其中,迭代模式与递归模式/半递归模式的区别主要在于迭代模式下中间节点不转发报文而是将自己找到的下一跳节点告知源节点然后由源节点与下一跳节点通讯,重复这个过程直至到达目的节点;而递归模式/半递归模式下中间节点直接转发报文给自己找到的下一跳节点,中间节点重复这个过程直至到达目的节点。递归模式与半递归模式的主要在于递归模式下应答消息由目的节点沿着转发路径反向逐步应答给上游节点直至到达源节点,应答消息须经中间节点转发;半递归模式下应答消息由目的节点直接发送给源节点,应答消息无需中间节点转发。递归和半递归模式因其实现简单并且效率高得到广泛的应用。对等网络具有良好的自组织与自管理特性,对等网络中的对等节点可以自由的加入和退出对等网络,这使得对等网络具有良好的可扩展性。同时,对等网络是由多个对等网络节点协作提供服务,可以避免传统的客户端/服务器架构下网络的单点失效风险。虽然一个对等节点的故障不会影响从对等网络获取服务的所有节点,但是它必定会导致部分对等网络节点不能正常获得对等网络服务,即导致供给的对等网络服务质量下降甚至在一段时间内中断。对等网络的分布式特征使得其转发路径上的故障(如节点失效、节点拥塞或错误转发等)难以检测和处理。虽然现有对等网络的维护与管理系统能够检测并定位对等节点的加入与退出,但是缺少相应的机制来检测并处理对等节点的故障,从而影响对等网络服务的供给。
发明内容本发明实施例提供了对等网络节点故障检测/处理方法及装置,使用本发明实施例提供的技术方案,可以对对等网络中转发路径上的对等网络节点的故障进行检测。本发明实施例的目的是通过以下技术方案实现的本发明实施例提供了一种对等网络节点故障检测方法,包括接收诊断请求消息;按照预置的故障检测方法检测对等网络节点是否故障;向构建所述诊断请求消息的源节点或所述诊断请求消息所指定的网络节点发送响应所述诊断请求消息的诊断响应消息,所述诊断响应消息包括所述检测的检测结果;若检测到对等网络节点故障,所述检测结果包括发生故障的对等网络节点的信息。本发明实施例提供了一种对等网络节点故障处理方法,包括接收诊断响应消息;根据所述诊断响应消息确定出现故障的对等网络节点;构建需要发送的数据包;在所述数据包中携带所述出现故障的对等网络节点的信息,指示中间对等网络节点转发所述数据包时绕开所述出现故障的对等网络节点;发送所述需要发送的数据包。本发明实施例提供了一种对等网络节点故障检测装置,包括消息接收单元,用于接收诊断请求消息;故障检测单元,用于按照预置故障检测方法检测对等网络节点是否故障;发送单元,用于向构建所述诊断请求消息的源节点或所述诊断请求消息所指定的网络节点发送响应所述诊断请求消息的诊断响应消息,所述诊断响应消息包括所述检测的检测结果;若检测到对等网络节点故障,所述检测结果包括发生故障的对等网络节点的信息。本发明实施例提供了一种对等网络节点故障处理装置,包括接收单元,用于接收诊断响应消息;节点识别单元,用于根据所述诊断响应消息确定出现故障的对等网络节点;数据包构建单元,用于构建需要发送的数据包;在所述数据包中携带所述出现故障的对等网络节点的信息,指示中间对等网络节点转发所述数据包时绕开所述出现故障的对等网络节点;数据包发送单元,用于发送所述需要发送的数据包。从本发明实施例提供的以上技术方案可以看出,由于本发明实施例通过诊断请求消息触发网络节点对本节点的故障状态进行检测,从而为对等网络提供相应的路径故障检测机制;网络节点检测到故障后,将检测结果发送给相应的网络节点,如源节点等,使源节点可以获知转发路径是否畅通,从而确定是否发送数据包;进一步,返回的检测结果包括发生故障的网络节点的信息,使源节点可以定位具体发生故障的网络节点,从而可以选择在发送数据包时绕开发生故障的网络节点,提高对等网络的数据传输的可靠性和效率。图1为本发明实施例中对等网络节点故障检测方法实施例一的流程图;图2为本发明实施例中对等网络节点故障检测方法实施例二的流程图;图3为本发明实施例中对等网络节点故障检测方法实施例三的流程图;图4为本发明实施例中对等网络节点故障检测方法实施例四的流程图;图5为本发明实施例中对等网络节点故障处理方法实施例的流程图;图6为本发明实施例中对等网络节点故障检测方法实施例五的流程图;图7为本发明实施例中对等网络节点故障检测装置实施例一的结构图;图8为本发明实施例中对等网络节点故障检测装置实施例二的结构图;图9为本发明实施例中对等网络节点故障检测装置实施例三的结构图;图10为本发明实施例中对等网络节点故障检测装置实施例四的结构图11为本发明实施例中对等网络节点故障处理装置实施例的结构图。具体实施例方式为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。本发明实施例提供的对等网络节点故障检测方法实施例一如图1所示,包括步骤101、接收诊断请求消息;接收的诊断请求消息可以直接来自需要对网络节点故障进行检测的源节点,也可以是来自转发路径的上游对等网络节点;步骤102、按照预置的故障检测方法检测对等网络节点是否故障;检测的故障可以是本节点拥塞或处理繁忙等;检测方法可以是检查本节点的处理器资源利用率或网络带宽利用率,如果达到或超过预置的阈值就认为拥塞或处理繁忙;其中阈值可以根据具体的使用环境或本节点的处理效率等进行设置;检测的故障也可以是上游对等网络节点的故障,如上游对等网络节点转发诊断请求消息错误等;检测的方法可以是比较上游节点标识与诊断请求消息的目的标识,如果上游节点标识即Peer-ID比本节点标识即Peer-ID更接近诊断请求消息的目的标识,则认为上游节点转发错误;检测的故障还可以是下游对等网络节点的故障,如下游对等网络节点不可达等;此时可以利用标准协议的消息来来判定下游对等网络节点的故障,例如可以向下游对等网络节点发送一个需要响应的消息,如果没有接收到响应则可以判断下游对等网络节点发生故障;步骤103、向构建诊断请求消息的源节点或诊断请求消息所指定的网络节点发送响应诊断请求消息的诊断响应消息,诊断响应消息包括检测的检测结果;若检测到对等网络节点故障,检测结果包括发生故障的对等网络节点的"息。一般按照预置的发送方式发送诊断响应消息,但是当诊断请求消息指定了发送方式时,则按照诊断请求消息所指定的发送方式发送诊断响应消息;进一步,一般向构建诊断请求消息的源节点发送诊断响应消息,但是当诊断请求消息指定了接收诊断响应消息的网络节点时,则向诊断请求消息所指定的网络节点发送诊断响应消息;其中,发送检测的结果所包括的发生故障的对等网络节点的信息可以让接收诊断响应消息的网络节点定位发生故障的对等网络节点;优选的,还可以在诊断响应消息中携带发生的故障的类型等信息;其中,接收诊断响应消息的网络节点可以是构建诊断请求消息的源节点,也可以是诊断请求消息所指定的网络节点。从上可知,使用本实施例可以通过诊断请求消息触发网络节点对本节点的故障状态进行检测,从而为对等网络提供相应的故障检测机制;网络节点检测到故障后,将检测结果发送给相应的网络节点,如源节点等,使源节点可以获知转发路径是否畅通,从而确定是否发送数据包;进一步,返回的检测结果包括发生故障的网络节点的信息,使源节点可以定位具体发生故障的网络节点,从而可以选择在发送数据包时绕开发生故障的网络节点,提高对等网络的数据传输的可靠性和效率。在接收诊断请求消息时可以进一步记录接收该诊断请求消息的时间,并将接收该诊断请求消息的时间发送给构建诊断请求消息的源节点或诊断请求消息所指定的网络节点;由于转发路径上的网络节点都会向构建诊断请求消息的源节点或诊断请求消息所指定的网络节点发送其接收诊断请求消息的时间,因此构建诊断请求消息的源节点或诊断请求消息所指定的网络节点可以知道诊断请求消息在两个网络节点之间的传输时间,从而根据预置的规则判断诊断请求消息在两个网络节点之间的传输时延,从而判断转发路径是否出现故障,如是否出现拥塞等。其中,接收诊断请求消息的时间可以携带在诊断响应消息中发送,也可以携带在其他消息中发送,也可以单独发送,本发明实施例并不对如何发送进行限定。实际应用中,按照预置故障检测方法检测本节点是否故障前进一步包括如下步骤判断诊断请求消息是否有效;如果是,进入按照预置故障检测方法检测本节点是否故障。判断诊断请求消息是否有效可以根据诊断请求消息所遵循的协议规范来判断,例如在使用P2PSIPPeer协议时,就判断诊断请求消息是否遵循了P2PSIPPeer协议;进一步,还可以按照预先约定的安全机制来判断诊断请求消息是否有效,如采用校验码判断等;进一步,当诊断请求消息中携带了该诊断请求消息在网络中的有效期,如以跳数计量的存在时间(TTL:TimeToLive)或以时间计量的存活时间等,还可以判断该-珍断请求消息是否已经达到了该诊断请求消息在网络中的有效期,如果尚未达到有效期,则该诊断请求消息有效。在判断诊断请求消息有效时,继续进行后续的操作;当判断诊断请求消息无效时,则可以将诊断请求消息抛弃,还可以进一步将该诊断请求消息已经无效的信息发送给相应的网络节点,如源节点等;当然也可以不进行任何操作;本发明实施例并不对判断诊断请求消息无效时的操作作任何限制。图2描述了本发明提供的对等网络节点故障检测方法实施例二的流程,包括步骤201、接收诊断请求消息,记录接收诊断请求消息的时间;步骤202、判断诊断请求消息是否有效,如果是,进入步骤203;如果否,结束流程;步骤203、按照预置故障检测方法检测对等网络节点是否故障;步骤204、判断诊断请求消息携带的目的节点是否为本节点;如果是,进入步骤206;如果否,进入步骤205;如果本节点即为目的节点,则不需要再转发诊断请求消息,本节点即目的节点检测了本节点是否故障后,直接发送诊断响应消息就完成了整个转发路径的it断;步骤205、向更接近目的节点的下游对等网络节点或目的节点转发诊断请求消息;在转发诊断请求消息前,可以根据路由表中的路径查找更接近目的节点的下游节点即下一跳对等网络节点,向查找到的下游节点转发诊断请求消息;若下游节点就是目的节点,则直接向目的节点转发诊断请求消息;步骤206、向构建诊断请求消息的源节点或诊断请求消息所指定的网络节点发送响应诊断请求消息的诊断响应消息,-珍断响应消息包括4企测的4企测结果、接收诊断请求消息的时间和转发诊断请求消息的接收节点的信息。其中,当向更接近目的节点的下游对等网络节点转发诊断请求消息时,转发诊断请求消息的接收节点的信息为该更接近目的节点的下游对等网络节点的信息;当向目的节点转发诊断请求消息时,转发诊断请求消息的接收节点的信息为目的节点的信息;本实施例中检测的检测结果、接收诊断请求消息的时间和转发诊断请求消息的接收节点的信息都放在诊断响应消息中,实际上,检测的检测结果、接收诊断请求消息的时间和转发诊断请求消息的接收节点的信息也可以分别单独发送;本实施例在本节点不是目的节点时,将诊断请求消息向下游对等网络节点或目的节点转发,使诊断可以逐步接近目的节点,最终将整个转发路径上的网络节点都进行检测,从而使相应的网络节点如源节点可以获知整个转发路径的状况,进而为后续的数据包的转发选择路径提供相应的依据。在实际应用中,在确定了向哪个下游对等网络节点或目的节点转发诊断请求消息后,可以进一步将该下游对等网络节点的信息或目的节点的信息发送给相应的网络节点如源节点等,使相应的网络节点可以知道下一个诊断响应消息应该来自哪个网络节点;进一步,如果相应的网络节点设置了相应的时限,如果超过时限还没有收到来自上述下游对等网络节点或目的节点的诊断响应消息,则可以判断上述下游对等网络节点或目的节点发生了故障即失效,并且可以根据下游对等网络节点的信息或目的节点的信息定位到该下游对等网络节点或目的节点,从而可以在后续的数据包转发中选择绕开故障节点。其中,上述下游对等网络节点的信息或目的节点的信息可以通过诊断响应消息发送,也可以单独发送,还可以附带在发往构建诊断请求消息的源节点或诊断请求消息所指定的网络节点的其他消息中发送。可以理解的是,上述步骤204和步骤205也可以发生在步骤206之后,只需要保证步骤205在步骤204之后,步骤206在步骤203之后,都不会影响本发明该实施例的实现。本发明提供的对等网络节点故障检测方法实施例三的流程如图3所示,包括步骤301、接收诊断请求消息,记录接收诊断请求消息的时间;步骤302、判断诊断请求消息是否有效,如果是,进入步骤303;如果否,结束流程;步骤303、按照预置故障检测方法检测对等网络节点是否故障;步骤304、判断诊断请求消息携带的目的节点是否为本节点;如果是,进入步骤307;如果否,进入步骤305;步骤305、判断上游对等网络节点向本节点转发诊断请求消息时是否转发出错;如果否,进入步骤306;如果是,进入步骤307;具体的可以基于对等网络所使用的分布式算法、诊断请求消息的目的节点标识、对等网络上游对等网络节点的网络节点标识以及本节点的对等网络路由表判断上游对等网络节点是否转发出错;步骤306、向更接近目的节点的下游对等网络节点或目的节点转发诊断请求消息;步骤307、向构建诊断请求消息的源节点或诊断请求消息所指定的网络节点发送响应诊断请求消息的诊断响应消息,诊断响应消息包括检测的4全测结果和接收诊断请求消息的时间和转发诊断请求消息的接收节点的信息。本实施例进一步对上游对等网络节点转发诊断请求消息是否出错进行判断,在上游对等网络节点转发诊断请求消息出错时,不继续向下游对等网络节点转发诊断请求消息,从而可以保证整个转发路径的收敛性,这是因为转发路径上每个节点的转发必须是一致的即逐步逼近目的节点。当然,在实际应用中,即使上游对等网络节点转发诊断请求消息出错也可以继续向下游对等网络节点转发诊断请求消息,特别适用于希望了解整个转发路径信息的情况;此时,虽然继续向下游对等网络节点转发诊断请求消息,也需要将上游对等网络节点转发诊断请求消息出错的情况通知构建诊断请求消息的源节点或诊断请求消息所指定的网络节点,使构建诊断请求消息的源节点或诊断请求消息所指定的网络节点知道出现了故障,并且可以定位到故障节点,从而对故障的排除及诊断提供帮助。可以理解的是,上述步骤304、步骤305和步骤306也可以发生在步骤307之后,只要保证步骤307在步骤303之后,步骤306在步骤305之后,步骤305在步骤304之后,都不会影响本发明该实施例的实现。在实际应用中,源节点可能允许在上游对等网络节点转发路断请求消息出错时,继续尝试向下游对等网络节点转发诊断请求消息,此时,网络判断上游对等网络节点向本节点转发诊断请求消息时转发出错时,需要进一步判断诊断请求消息是否携带在上游对等网络节点转发出错时停止转发诊断请求消息的标记;如果诊断请求消息携带在上游对等网络节点转发出错时停止转发诊断请求消息的标记,则停止向下游对等网络节点转发诊断请求消息;如果诊断请求消息携带在上游对等网络节点转发出错时继续转发诊断请求消息的标记、或没有携带在上游对等网络节点转发出错时停止转发诊断请求消息的标记,则继续向下游对等网络节点转发诊断请求消息。具体携带哪个标记可以预先约定,本发明实施例不对其进行限定。进一步,向下游对等网络节点转发诊断请求消息时可能由于网络问题,下游对等网络节点并没有收到,此时为了让构建诊断请求消息的源节点或诊断请求消息所指定的网络节点更好的对网络节点故障进行定位,向下游对等网络节点转发诊断请求消息后要进一步检测是否成功转发,本发明提供的对等网络节点故障检测方法实施例四描述了这种情况,如图4所示,包括步骤401、接收诊断请求消息,记录接收诊断请求消息的时间;步骤402、判断诊断请求消息是否有效,如果是,进入步骤403;如果否,结束流程;步骤403、按照预置故障检测方法检测对等网络节点是否故障;步骤404、判断诊断请求消息携带的目的节点是否为本节点;如果是,进入步骤407;如果否,进入步骤405;步骤405、判断上游对等网络节点向本节点转发诊断请求消息时是否转发出错;如果否,进入步骤406;如果是,进入步骤407;步骤406、向更接近目的节点的下游对等网络节点或目的节点转发诊断请求消息;步骤407、向构建诊断请求消息的源节点或诊断请求消息所指定的网络节点发送响应诊断请求消息的诊断响应消息,-珍断响应消息包括;险测的检测结果和接收诊断请求消息的时间和转发诊断请求消息的接收节点的信息;步骤408、判断是否成功向下游对等网络节点或目的节点转发诊断请求消息;如果是,结束流程;如果否,进入步骤409;判断是否成功向下游对等网络节点或目的节点转发诊断请求消息可以有多种方式,例如可以要求接收诊断请求消息的下游对等网络节点返回一个响应消息,如果没有接收到响应消息则认定没有成功转发;也可以由转发所采用的方式的机制的响应消息来确定,例如可以检查是否收到互联网控制消息协议(ICMP:InternetControlMessageProtocol)的告警消息,比如目的节点不可达(DestinationUnreachable)或超时(TimeExceeded)等,如果收到ICMP告警消息也说明转发失败;当然也可以采用其他的方式,此处不对其——描述;步骤409、向构建诊断请求消息的源节点或诊断请求消息所指定的网络节点发送向更接近目的节点的下游对等网络节点或目的节点转发诊断请求消息失败的信息。其中,若判断向下游对等网络节点或目的节点转发诊断请求消息发生在发送诊断响应消息之前,向下游对等网络节点或目的节点转发诊断请求消息失败的信息可以携带在诊断响应消息中发送。本实施例在转发了诊断请求消息后,对是否成功转发诊断请求消息进行判断,在判断没有成功转发时,将发送失败的信息发送给构建诊断请求消息的源节点或诊断请求消息所指定的网络节点,使构建诊断请求消息的源节点或诊断请求消息所指定的网络节点可以获知出现故障的下游对等网络节点的信息,从而定位到相应的故障网络节点并进行处理。在实际应用中,源节点可能已经知道某个对等网络节点发生了故障,因而可以在诊断请求消息中要求转发时绕开发生故障的对等网络节点,因而中间对等网络节点在判断转发诊断请求消息失败后,可以进一步判断诊断请求消息是否携带转发诊断请求消息时绕开发生故障的下游对等网络节,l的标记;在诊断请求消息携带绕开发生故障的下游对等网络节点的标记时,可以选择另一个下游对等网络节点转发诊断请求消息;具体的可以从路由表中选择一个不是发生故障的对等网络节点但是比本节点更接近目的节点的对等网络节点作为另一下游对等网络节点。在转发时绕开发生故障的下游对等网络节点可以让诊断请求消息更可能抵达目的节点。进一步,在实际应用中,网络节点在接收到诊断请求消息后,也可以根据本节点已有的信息判断目的节点是否可达,如果不可达,则直接将目的节点不可达的信息通知构建诊断请求消息的源节点或诊断请求消息所指定的网络节点,从而可以提高路径诊断的效率。具体可以通过协议规范来检测,例如可以通过对等网络会话初始化对等协议(P2PSIP-PeerProtocol:Peer-to-PeerSessionInitiationProtocol-PeerProtocol)检测诊断请求消息是否环回等。4妻收诊断响应消息;根据所述诊断响应消息确定出现故障的对等网络节点;构建需要发送的数据包;在所述数据包中携带所述出现故障的对等网络节点的信息,指示中间对等网络节点转发所述数据包时绕开所述出现故障的对等网络节点;发送所述需要发送的数据包。本发明实施例提供的对等网络节点故障处理方法如图5所示,包括步骤501、接收诊断响应消息;步骤502、根据所述诊断响应消息确定出现故障的对等网络节点;如果检测到对等网络节点发生故障,诊断响应消息中会携带出现故障的对等网络节点的信息,因而可以根据诊断响应消息中携带的出现故障的对等网络节点的信息确定出现故障的对等网络节点;步骤503、构建需要发送的数据包;在数据包中携带出现故障的对等网络节点的信息,指示中间对等网络节点转发数据包时绕开出现故障的对等网络节点;为了使需要发送的数据包能够到达目的节点,可以在数据包中的预置字段填充出现故障的对等网络节点的信息,预置字段可以为明确的路由排除对象字段(XRO:ExcludeRoutingObject)等;从而下游的对等网络节点在转发数据包时,可以先判断需要转发的下游对等网络节点是否为出现故障的对等网络节点,即XRO指明的节点,如果是,则选择另一个下游对等网络节点转发数据包;也可以按照默认规则先转发数据包,在判断转发不成功时,再判断下游对等网络节点是否为出现故障的对等网络节点,如果是,再选择另一个下游对等网络节点转发数据包;当然,还可以采用其他的方式。本发明实施例并不限定具体采用哪种方式。'步骤504、发送需要发送的数据包。本实施例中,收到诊断响应消息后,如果诊断响应消息携带有出现故障的对等网络节点的信息,则在构建数据包时在预置字段填充出现故障的对等网络节点的信息,使下游对等网络节点在转发数据包时可以绕开出现故障的对等网络节点,从而使数据包能够最终到达目的节点,提高数据包的转发成功率。上述的操作可以部分或全部由源节点在构建诊断请求消息时,在诊断请求消息的相应字段填充相应的信息触发;其中,诊断请求消息可以使用现有的消息,也可以构造新的消息。目前互联网工程工作小组(IETF:InternetEngineeringTaskForce)正在开发和标准化P2PSIP-Peer协议,该协议主要用于创建并维护对等覆盖网络会话初始化(P2PSIPOverlay)拓朴以及提供对等覆盖网络(P2POverlay)服务,如分布式存储和分布式转发等,该协i义可以为所有基于P2POverlay的采用对等网络会话初始化(P2PSIP)相同架构的应用提供P2POverlay服务。该协议的一个实现就是一个消息对应请求与应答两种形式,一个消息由一个消息头与多个对象组成,每个对象又由一个对象头与多个子对象组成,所有的对象与子对象均采用类型长度值(TLV:Type-Length-Value)格式。本发明的一个实施例就是扩展P2PSIPPeer协议以提供用于故障检测的诊断消息即Echo消息,该消息携带Echo对象以指明诊断源指定的处理规则信息,本发明实施例提供的一种Echo对象头格式如表1所示表1、P2PSIPPeer协议Echo对象头信息<table>tableseeoriginaldocumentpage21</column></row><table>其中对象类型(ObjectType)字段使用扩展的定义值来指明对象类型为Echo对象;该字段占用8个比特;M标志值为1以指明这个对象必须被对等网络上所有支持P2PSIPPeer协议的节点识别并处理,对于Echo对象这个值为1;该标志占用l个比特;U标志值为1以指明诊断源要求应答消息携带其上游节点信息,值为0表示不需要携带其上游节点信息;该标志位占用l个比特;P标志值为1以指明诊断源要求应答节点即便检测到上游转发故障也需要继续转发检测消息,值为O表示此时应终止转发;该标志位占用l个比特;保留字段(Reserved)为预留值,对于Echo对象而言全为0;该字段占用5个比特;长度(Length)字段占用16比特,以字节为单位的整个Echo对象的长度,包括对象头与所有子对象;转发模式(Forwardmode)字段占用8个比特,指明中间节点的转发模式,值为0表示由中间节点自己决定、值为1表示必须使用递归模式进行转发、值为2表示必须使用迭代模式进行转发、值为3表示优先使用递归模式进行转发、值为4表示优先使用迭代模式进行转发;响应模式(Replymode)字段占用8个比特,指明下游节点的诊断应答消息的发送模式,值为0表示由下游节点自己决定、值为1表示使用IP直接传送应答消息、值为2表示使用Overlay传送应答消息;转发规则(Replyrule)字段占用8个比特,指明下游节点的诊断应答规则,值为0表示无需应答、值为l表示中间节点不应答、值为2表示转发路径上每个节点都需要应答;下层存在时间(UnderlayTTL)字段占用8个比特,指明下游节点的转发诊断请求消息的时候在IP层使用的TTL值。在实际应用中,上述的Echo对象可以包括如下子对象(l)表征诊断源发送诊断请求消息时间的子对象;(2)表示下游节点收到诊断请求消息时间的子对象;(3)表征诊断请求消息存活时间长度的子对象;(4)表征诊断请求消息有效时间的子对象。源节点构造了上述的Echo对象后发送给下游的网络节点,下游对等网络节点在收到诊断请求消息的时候首先检测接收该诊断请求消息的时间是否超过该诊断请求消息的有效时间,如果超过就直接丢弃,否则就在向下游转发该诊断请求消息的时候以接收该诊断请求消息的时间加上诊断源指定的该诊断请求消息存活时间长度作为新的诊断请求消息有效时间,以此来抑制无效的诊断请求消息在对等网络上游荡。P2PSIPOverlay上任何一个Peer都可以通过Echo消息来诊断P2PSIPOverlay指定路径上可能存在的故障,包括检测与定位节点失效、节点拥塞以及节点转发故障。具体而言,该诊断操作可以由诊断源节点构造一个P2PSIPEcho请求消息,这个消息的目的ID为指定的Peer-ID或Resource-ID,源ID为自己的Peer-ID。这个请求消息中Echo对象的ReplyRule设置为2,Forwardmode设置为1或3,而Replymode则由节点自己决定。在到达目的之前,中间节点转发这个Echo请求消息给对等网络的下游节点,然后发送Echo响应消息给源节点,最终目的Peer节点会返回一个Echo应答消息。如下介绍本发明实施例使用上述Echo消息的对等网络节点故障检测方法的实施例五,如图6所示,包括步骤601、源节点P2PSIPPeer-l构造并发送一个目的指向P2PSIPPeer-4的Echo请求消息来诊断对等网络转发路径上的故障;步骤602、P2PSIPPeer-2收到来自P2PSIPPeer-l的Echo请求消息,发现自己不是目的节点就在对等网络上继续转发该Echo请求消息;步骤603、P2PSIPPeer-2通过Echo响应消息告知诊断源P2PSIPPeer-l自己的本地诊断结果与诊断信息,在该Echo应答消息中携带转发的下游节点P2PSIPPeer-2的信息,该信息为P2PSIPPeer-2的节点标识;步骤604、P2PSIPPeer-3收到来自上游对等P2PSIPPeer-2的Echo请求消息,发现自己不是目的节点就在对等网络上继续转发该Echo请求消息;步骤605、P2PSIPPeer-3通过Echo响应消息告知诊断源P2PSIPPeer-l自己的本地诊断结果与诊断信息,在该Echo响应消息中携带转发的下游节点P2PSIPPeer-4的4言息;步骤606、P2PSIPPeer-4收到来自上游对等P2PSIPPeer-3的Echo请求消息,发现自己是目的节点终结该Echo请求消息,不继续转发Echo请求消息,通过Echo响应消息告知i貪断源P2PSIPPeer-l自己的本地i貪断结果与诊断信息。本是实例中,P2PSIPPeer-2、P2PSIPPeer-3和P2PSIPPeer-4都会按照Echo请求消息的要求进行相应的操作,使用本实施例可以检测P2PSIPPeer-l到P2PSIPPeer-4的转发路径上的网络节点的故障。需要说明的是,图6仅描述了本发明实施例的一种实现方式,在实际应用中,步骤603可能发生在步骤602之前,同样,步骤605也可能发生在步骤604之前等。与对等网络节点故障检测方法对应,本发明实施例提供了相应的对等网络节点故障检测装置,如图7所示,本发明提供的对等网络节点故障检测装置实施例一包括消息接收单元701,用于接收诊断请求消息;故障检测单元702,用于按照预置的故障检测方法检测对等网络节点是否故障;发送单元703,用于向构建诊断请求消息的源节点或诊断请求消息所指定的网络节点发送响应所述诊断请求消息的诊断响应消息,所述诊断响应消息包括所述检测的检测结果;若检测到对等网络节点故障,所述检测结果包括发生故障的对等网络节点的信息。从上可知,本实施例中的诊断请求消息触发对等网络节点对本节点的故障状态进行检测,从而为对等网络提供相应的故障检测机制;对等网络节点检测到故障后,将检测结果发送给构建诊断请求消息的源节点或诊断请求消息所指定的网络节点,使构建诊断请求消息的源节点或诊断请求消息所指定的网络节点可以获知转发路径是否畅通,从而确定是否发送数据包;进一步,返回的检测结果包括发生故障的网络节点的信息,使构建诊断请求消息的源节点或诊断请求消息所指定的网络节点可以定位具体发生故障的对等网络节点,从而可以选择在发送数据包时绕开发生故障的对等网络节点,提高对等网络的数据传输的可靠性和效率。进一步,为了让构建诊断请求消息的源节点或诊断请求消息所指定的网络节点可以知道网络节点之间是否发生拥塞或其他故障,本发明实施例提供的对等网络节点故障检测装置还可以包括时间记录单元,用于记录消息接收单元接收诊断请求消息的时间;所述发送单元,还用于向构建诊断请求消息的源节点或诊断请求消息所指定的网络节点发送消息接收单元接收诊断请求消息的时间。进一步,为了让网络节点仅对有效的消息进行处理,本发明实施例提供的对等网络节点故障检测装置还可以包括消息有效性判断单元,用于判断诊断请求消息是否有效;此时,故障检测单元用于在故障检测单元判断诊断请求消息有效时,按照预置故障检测方法检测本节点是否故障。一般来说,诊断请求消息是诊断到目的节点的所有网络节点的故障,在网络节点不是目的节点时,还需要将诊断请求消息转发,因而本发明实施例提供的对等网络节点故障检测装置实施例二如图8所示,包括消息接收单元801,用于接收诊断请求消息,记录接收诊断请求消息的时间;故障检测单元802,用于按照预置的故障检测方法检测对等网络节点是否故障;发送单元803,用于向构建诊断请求消息的源节点或诊断请求消息所指定的网络节点发送响应所述诊断请求消息的诊断响应消息,所述诊断响应消息包括所述检测的检测结果;若检测到对等网络节点故障,所述检测结果包括发生故障的对等网络节点的信息;目的节点判断单元804,用于判断诊断请求消息携带的目的节点是否为本节点;所述发送单元803,用于在目的节点判断单元判断本节点不是目的节点时,向更接近目的节点的下游对等网络节点或目的节点转发诊断请求消息。本实施例在本节点不是目的节点时,将诊断请求消息向下游对等网络节点或目的节点转发,使诊断可以逐步接近或到达目的节点,最终将整个转发路径上的网络节点都进行检测,从而使构建诊断请求消息的源节点或诊断请求消息所指定的网络节点可以获知整个转发路径的状况,进而为后续的数据包的转发选择路径提供相应的依据。进一步,并不是所有情况下对等网络节点都会无条件的将诊断请求消息转发,例如上游对等网络节点转发诊断请求消息出错时可以不继续转发;本发明提供的对等网络节点故障检测装置实施例三的结构如图9所示,包括消息接收单元901,用于4妄收诊断请求消息,记录接收诊断请求消息的时间;故障检测单元902,用于按照预置的故障检测方法检测对等网络节点是否故障;发送单元903,用于向构建诊断请求消息的源节点或诊断请求消息所指定的网络节点发送响应诊断请求消息的诊断响应消息,诊断响应消息包括检测的检测结果和接收诊断请求消息的时间;目的节点判断单元904,用于判断诊断请求消息携带的目的节点是否为本节点;上游对等网络节点判断单元905,用于在消息转发单元向更接近目的节点的下游对等网络节点或目的节点转发诊断请求消息前,判断上游对等网络节点向本节点转发诊断请求消息时是否转发出错;发送单元903,用于在目的节点判断单元判断本节点不是目的节点、且上游对等网络节点判断单元判断上游对等网络节点转发诊断请求消息没有出错时,向更接近目的节点的下游对等网络节点或目的节点转发诊断请求消息。本实施例进一步对上游对等网络节点转发诊断请求消息是否出错进行判断,在上游对等网络节点转发诊断请求消息出错时,不继续向下游对等网络节点转发诊断请求消息,从而可以保证整个转发路径的收敛性,这是因为上游对等网络节点转发诊断请求消息出错就说明上游对等网络节点有故障或上游对等网络节点至本节点的网络路径有故障。当然,在实际应用中,即使上游对等网络节点转发诊断请求消息出错也可以继续向下游对等网络节点转发诊断请求消息,特别适用于希望了解整个转发路径信息的情况;此时,虽然继续向下游对等网络节点转发诊断请求消息,也需要将上游对等网络节点转发诊断请求消息出错的情况通知构建诊断请求消息的源节点或诊断请求消息所指定的网络节点,使构建诊断请求消息的源节点或诊断请求消息所指定的网络节点可以知道出现了故障,并且可以定位到故障节点,从而对故障的排除及诊断提供帮助。进一步,源节点可能要求在上游对等网络节点转发出错时继续转发诊断请求消息,此时会在诊断请求消息中携带相应的信息,因而本发明实施例提供的网络节点故障检测装置还可以包括转发判断单元,用于在上游对等网络节点判断单元判断上游对等网络节点向本节点转发诊断请求消息时转发出错时,判断诊断请求消息是否携带在上游节点转发出错时停止转发诊断请求消息的标记;消息转发单元,用于在目的节点判断单元判断本节点不是目的节点、上游对等网络节点判断单元判断上游对等网络节点转发诊断请求消息没有出错、且转发判断单元判断诊断请求消息没有携带在上游节点转发出错时停止转发诊断请求消息的标记时,向更接近目的节点的下游对等网络节点或目的节点转发诊断请求消息。同样,在可以确定目的节点不可达时也可以不继续转发,因而本发明实施例提供的对等网络节点故障检测装置,还可以包括目的节点可达判断单元,用于在消息转发单元向更接近目的节点的下游对等网络节点或目的节点转发诊断请求消息前,判断目的节点是否可达;发送单元,用于在目的节点可达判断单元判断目的节点可达时,向更接近目的节点的下游对等网络节点或目的节点转发诊断请求消息。在确定目的节点不可达时,不转发诊断请求消息,可以减少系统不必要的开支。进一步,网络节点还可以对是否成攻向下游对等网络节点转发诊断请求消息进行判断,如果判断没有成功转发r则将没有成功转发的信息通知给构建诊断请求消息的源节点或诊断请求消息所指定的网络节点,使构建诊断请求消息的源节点或诊断请求消息所指定的网络节点可以直接定位上述的下游对等网络节点,因而,本发明提供的对等网络节点故障检测装置实施例四的结构如图IO所示,包括消息接收单元1001,用于接收诊断请求消息,记录接收诊断请求消息的时间;故障检测单元1002,用于按照预置的故障检测方法检测对等网络节点是发送单元1003,用于发送响应诊断请求消息的诊断响应消息,诊断响应消息包括检测的检测结果和接收诊断请求消息的时间;目的节点判断单元1004,用于判断诊断请求消息携带的目的节点是否为本节点;上游对等网络节点判断单元1005,用于在目的节点判断单元判断诊断请求消息携带的目的节点不是本节点时,判断上游对等网络节点向本节点转发诊断请求消息时是否出错;发送单元1003,用于在目的节点判断单元判断本节点不是目的节点,且上游对等网络节点判断单元判断上游对等网络节点转发诊断请求消息没有出错时,向更接近目的节点的下游对等网络节点或目的节点转发诊断请求消息;转发成功判断单元1007,用于在消息转发单元向更接近目的节点的下游对等网络节点或目的节点转发诊断请求消息后,判断是否成功向更接近目的节点的下游对等网络节点或目的节点转发诊断请求消息;发送单元1003,用于在转发成功判断单元判断向下游对等网络节点或目的节点转发诊断请求消息失败时,向构建诊断请求消息的源节点或诊断请求消息所指定的网络节点发送向下游对等网络节点或目的节点转发诊断请求消息失败的信息。本实施例在转发了诊断请求消息后,对是否成功转发诊断请求消息进行判断,在判断没有成功转发时,将发送失败的信息发送给构建诊断请求消息的源节点或诊断请求消息所指定的网络节点,使构建诊断请求消息的源节点或诊断请求消息所指定的网络节点可以获知出现故障的下游对等网络节点的信息,从而定位到相应的故障网络节点。进一步,为了使诊断请求消息能够最终到达目的节点,本发明实施例提供的网络节点故障检测装置还可以包括选择单元,用于在转发成功判断单元判断向下游对等网络节点转发诊断请求消息失败时,判断诊断请求消息是否要求转发诊断请求消息时绕开下游对等网络节点;如果是,选择另一下游对等网络节点;所述发送单元,用于向另一下游对等网络节点转发诊断请求消息。本发明实施例提供的对等网络节点故障检测装置可以是对等网络中的对等网络节点。本发明实施例提供的对等网络节点故障处理装置如图ll所示,包括接收单元1101,用于接收诊断响应消息;节点识别单元1102,用于根据诊断响应消息确定出现故障的对等网络节点;数据包构建单元1103,用于构建需要发送的数据包;在数据包中携带出现故障的对等网络节点的信息,指示中间对等网络节点转发数据包时绕开出现故障的对等网络节点;数据包发送单元1104,用于发送需要发送的数据包。本实施例中,收到诊断响应消息后,如果诊断响应消息携带有出现故障的对等网络节点的信息,则在构建数据包时在预置字段填充出现故障的对等网络节点的信息,从而使下游对等网络节点在转发数据包时可以绕开出现故障的对等网络节点,从而使数据包能够最终到达目的节点,提高数据包的转发成功率。本发明实施例提供的对等网络节点故障处理装置可以作为对等网络中发起路径诊断的源节点,在实际应用中,对等网络节点既可以作为源节点使用,也可以作为中间对等网络节点使用,还可以作为目的节点使用。因此,实际应用中的对等网络节点既具有对等网络节点故障检测装置的功能,也会有对等网络节点故障处理装置的功能。是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括如下步骤接收诊断请求消息;按照预置的故障检测方法检测对等网络节点是否故障;向构建诊断请求消息的源节点或诊断请求消息所指定的网络节点发送响应所述诊断请求消息的诊断响应消息,所述诊断响应消息包括所述检测的检测结果;若检测到对等网络节点故障,所述检测结果包括发生故障的对等网络节点的信息。上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上对本发明实施例所提供的对等网络节点故障检测/处理方法及装置进行了详细介绍,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。权利要求1、一种对等网络节点故障检测方法,其特征在于包括接收诊断请求消息;按照预置的故障检测方法检测对等网络节点是否故障;向构建所述诊断请求消息的源节点或所述诊断请求消息所指定的网络节点发送响应所述诊断请求消息的诊断响应消息,所述诊断响应消息包括所述检测的检测结果;若检测到对等网络节点故障,所述检测结果包括发生故障的对等网络节点的信息。2、如权利要求1所述的对等网络节点故障检测方法,其特征在于,所述方法还包括记录接收所述诊断请求消息的时间;向构建所述诊断请求消息的源节点或所述诊断请求消息所指定的网络节点发送接收所述诊断请求消息的时间。3、如权利要求1所述的对等网络节点故障检测方法,其特征在于,按照预置的故障检测方法检测节点是否故障前进一步包括判断所述诊断请求消息是否有效;如果是,进入按照预置故障检测方法检测本节点是否故障。4、如权利要求1所述的对等网络节点故障检测方法,其特征在于,所述按照预置的故障检测方法检测节点是否故障包括按照预置的故障检测方法检测上游对等网络节点的故障、本节点的故障和下游对等网络节点的故障中的任一或其任意组合。5、如权利要求4所述的对等网络节点故障检测方法,其特征在于,所述接收诊断请求消息后进一步包括判断所述诊断请求消息的目的节点是否为本节点;如果否,向更接近所述目的节点的下游对等网络节点或所述目的节点转发所述诊断请求消息;如果是,向构建所述诊断请求消息的源节点或所述诊断请求消息所指定的网络节点发送本节点为目的节点的信息。6、如权利要求5所述的对等网络节点故障检测方法,其特征在于,若向更接近所述目的节点的下游对等网络节点转发所述诊断请求消息,所述方法进一步包括向构建所述诊断请求消息的源节点或所述诊断请求消息所指定的网络节点发送更4^近所述目的节点的下游对等网络节点的信息的步骤;若向所述目的节点转发所述诊断请求消息,所述方法进一步包括向构建所述诊断请求消息的源节点或所述诊断请求消息所指定的网络节点发送所述目的节点的信息的步骤。7、如权利要求5所述的对等网络节点故障检测方法,其特征在于,所述向更接近所述目的节点的下游对等网络节点或所述目的节点转发所述诊断请求消息前进一步包括判断上游对等网络节点向本节点转发所述诊断请求消息时是否转发出错;如果否,进入向更接近所述目的节点的下游对等网络节点或所述目的节点转发所述诊断请求消息。8、如权利要求7所述的对等网络节点故障检测方法,其特征在于,若判断所述上游对等网络节点向本节点转发所述诊断请求消息时转发出错,进一步判断所述诊断请求消息是否携带上游对等网络节点转发出错时停止转发所述诊断请求消息的标记;如果否,进入向更接近所述目的节点的下游对等网络节点或所述目的节点转发所述诊断请求消息。9、如权利要求5所述的对等网络节点故障检测方法,其特征在于,所述向更接近所述目的节点的下游对等网络节点或所述目的节点转发所述诊断请求消息前进一步包括判断所述目的节点是否可达;如果是,进入向更接近所述目的节点的下游对等网络节点或所述目的节点转发所述诊断请求消息。10、如权利要求5-9中任意一项所述的对等网络节点故障检测方法,其特征在于,所述向更接近所述目的节点的下游对等网络节点或所述目的节点转发所述诊断请求消息后进一步包括判断是否成功向所述下游对等网络节点或所述目的节点转发所述诊断请求消息;如果否,向构建所述诊断请求消息的源节点或所述诊断请求消息所指定的网络节点发送本节点向所述下游对等网络节点或所述目的节点转发所述诊断请求消息失败的信息。11、如权利要求IO所述的对等网络节点故障检测方法,其特征在于,若判断没有成功向所述下游对等网络节点转发所述诊断请求消息,判断所述诊断请求消息是否携带要求转发所述诊断请求消息时绕开所述下游对等网络节点的标i己;如果是,选择另一下游对等网络节点转发所述诊断请求消息。12、如权利要求1所述的对等网络节点故障检测方法,其特征在于,采用预置发送方式发送所述诊断响应消息;或采用所述诊断请求消息指定的发送方式发送所述诊断响应消息。13、一种对等网络节点故障处理方法,其特征在于,包括接收诊断响应消息;根据所述诊断响应消息确定出现故障的对等网络节点;构建需要发送的数据包;在所述数据包中携带所述出现故障的对等网络节点的信息,指示中间对等网络节点转发所述数据包时绕开所述出现故障的对等网络节点;发送所述需要发送的数据包。14、如权利要求13所述的对等网络节点故障处理方法,其特征在于,所述在所述数据包中携带所述出现故障的网络节点的信息具体为在所述数据包中携带明确的路由排除对象字段,所述路由排除对象字段中填充所述出现故障的对等网络节点的信息。15、一种对等网络节点故障检测装置,其特征在于,包括消息接收单元,用于接收诊断请求消息;故障检测单元,用于按照预置故障检测方法检测对等网络节点是否故障;发送单元,用于向构建所述诊断请求消息的源节点或所述诊断请求消息所指定的网络节点发送响应所述诊断请求消息的诊断响应消息,所述诊断响应消息包括所述检测的检测结果;若检测到对等网络节点故障,所述检测结果包括发生故障的对等网络节点的信息。'16、如权利要求15所述的对等网络节点故障检测装置,其特征在于,还包括时间记录单元,用于记录所述消息接收单元接收所述诊断请求消息的时间;所述发送单元,还用于在所述时间记录单元记录了所述消息接收单元接收所述诊断请求消息的时间时,向构建所述诊断请求消息的源节点或所述诊断请求消息所指定的网络节点发送所述消息接收单元接收所述诊断请求消息的时间。17、如权利要求15或16所述的对等网络节点故障检测装置,其特征在于,还包括目的节点判断单元,用于判断所述诊断请求消息携带的目的节点是否为本节点;所述发送单元,还用于在所述目的节点判断单元判断本节点不是所述目的节点时,向更接近所述目的节点的下游对等网络节点或所述目的节点转发所述诊断请求消息。18、如权利要求17所述的对等网络节点故障检测装置,其特征在于,还包括上游对等网络节点判断单元,用于在所述发送单元向更接近所述目的节点的下游对等网络节点或所述目的节点转发所述诊断请求消息前,判断上游对等网络节点向本节点转发所述诊断请求消息时是否出错;所述发送单元,用于在所述上游对等网络节点判断单元判断上游对等网络节点转发所述诊断请求消息没有出错时,向更接近所述目的节点的下游对等网络节点或所述目的节点转发所述诊断请求消息。19、如权利要求18所述的对等网络节点故障检测装置,其特征在于,还包括转发判断单元,用于在所述上游对等网络节点判断单元判断所述上游对等网络节点向本节点转发所述诊断请求消息时转发出错时,判断所述诊断请求消息是否携带在上游节点转发出错时停止转发所述诊断请求消息的标记;所述发送单元,用于在所述转发判断单元判断所述诊断请求消息没有要求在上游节点转发出错时停止转发所述诊断请求消息时,向更接近所述目的节点的下游对等网络节点或所述目的节点转发所述诊断请求消息。20、如权利要求17所述的对等网络节点故障检测装置,其特征在于,还包括转发成功判断单元,用于在所述消息转发单元向更接近所述目的节点的下游对等网络节点或所述目的节点转发所述诊断请求消息后,判断是否成功向所述下游对等网络节点或所述目的节点转发所述诊断请求消息;所述发送单元,还用于在所述转发成功判断单元判断向所述下游对等网络节点或所述目的节点转发所述诊断请求消息失败时,向构建所述诊断请求消息的源节点或所述诊断请求消息所指定的网络节点发送向所述下游对等网络节点或所述目的节点转发所述诊断请求消息失败的信息。21、如权利要求20所述的对等网络节点故障检测装置,其特征在于,还包括选择单元,用于在所述转发成功判断单元判断向所述下游对等网络节点转发所述诊断请求消息失败时,判断所述诊断请求消息是否携带转发所述诊断请求消息时绕开所述下游对等网络节点的标记;如果是,选择另一下游对等网络节点;所述发送单元,还用于向所述另一下游对等网络节点转发所述诊断请求消息。22、一种对等网络节点故障处理装置,其特征在于,包括接收单元,用于接收诊断响应消息;节点识别单元,用于根据所述诊断响应消息确定出现故障的对等网络节点;数据包构建单元,用于构建需要发送的数据包;在所述数据包中携带所述出现故障的对等网络节点的信息,指示中间对等网络节点转发所述数据包时绕开所述出现故障的对等网络节点;数据包发送单元,用于发送所述需要发送的数据包。全文摘要本发明涉及对等网络技术,公开了对等网络节点故障检测/处理方法及装置,其中,对等网络节点故障检测方法包括接收诊断请求消息;按照预置的故障检测方法检测对等网络节点是否故障;向构建所述诊断请求消息的源节点或所述诊断请求消息所指定的网络节点发送响应所述诊断请求消息的诊断响应消息,所述诊断响应消息包括所述检测的检测结果;若检测到对等网络节点故障,所述检测结果包括发生故障的对等网络节点的信息。使用本发明实施例提供的技术方案,可以对对等网络中转发路径上的对等网络节点的故障进行检测。文档编号H04L29/06GK101420335SQ20071016551公开日2009年4月29日申请日期2007年10月26日优先权日2007年10月26日发明者郑合文申请人:华为技术有限公司