一种p2p资源共享的方法、设备及系统的利记博彩app
【专利摘要】本发明公开一种P2P资源共享的方法、设备及系统。涉及通信领域,通过引入边缘超级节点,实现P2P文件共享。本发明实施例提供的方法包括:第一边缘超级节点确定本地信息中不包含第一资源ID,第一边缘超级节点接收第二边缘超级节点发送的查询响应报文,该查询响应报文中包含目的地址,源地址,以及Payload,源地址为存储第一资源的第二节点的地址,且源地址经过IPV4/IPV6互通网关翻译后,与第一边缘超级节点网络域类型相同,Payload中包含第二节点ID,第一资源的文件key,以及第一资源的实际IP地址;对第一查询响应报文进行解析,将Payload中的实际IP地址替换成源地址并转发至请求查询的第一节点。
【专利说明】一种P2P资源共享的方法、设备及系统
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种P2P资源共享方法、设备及系统。
【背景技术】
[0002]点对点(peer-to-peer,简称P2P)技术又称对等互联网络技术,P2P网络中,任何一台计算机既可以作为服务器端,又可以作为客户端,节点与节点之间的关系是平等的。每个用户可以直接连接到其他用户的计算机,并进行文件的交换,而不需要连接到服务器上再进行浏览与下载。在整个过程中,消息通过节点的转发,沿着P2P网络中的路径进行传播。因为消除了中间环节,P2P技术使得网络上的沟通变得更容易、更直接。P2P改变了Internet以大网站为中心的现状,使其重返非中心化,并把权力交还给用户。而且在性能上,因为负载分担在各个节点,所以网络效率更高;功能上,各个节点重要性相同,单个节点失效对整个系统的损坏程度是相同的,很少出现重要节点故障时服务瘫痪的情况。
[0003]IPv6 (Internet Protocol Version 6)为 IPv4 的下一代 IP 协议,IPv6 技术将IPv4中32位地址扩展为128位,可以充分满足未来各种业务对IP地址的需求,并且简化了包头,增强了安全性能。然而,IPv6技术的部署实施不是一蹴而就的,IPv6与IPv4共存的场景将要持续很长时间,所以两网间的互通技术对于实现IPv4向IPv6的平滑过渡十分重要。
[0004]在P2P网络中,路由表包含静态IP地址,路由表将全局节点号与IP地址紧密耦合,路由查询、对象定位以及消息转发需要节点之间建立底层的传输控制协议(Transmission Control Protocol,简称TCP)连接,这要求远端节点拥有永久的IP地址,以保证P2P路由、定位的顺利进行。如果远端IP地址有变化,将无法和远端节点建立正常的连接和通信,导致目的端不可到达,从而影响P2P路由和对象资源定位的有效性和准确性。
[0005]而在IPv4与IPv6网络互通协议的场景下,当使用地址翻译时,IPv6与IPv4的地址翻译存在非一一映射,或者动态映射的情况,导致不同时间内相同的IPv6地址可能会被翻译成不同的IPv4地址,这样对端的IP地址可能发生变化而导致路由不可达。
【发明内容】
[0006]本发明实施例提供一种P2P资源共享的方法、设备及系统,实现IPv6与IPv4混合组网下的P2P资源分享。
[0007]为了实现上述目的,本发明实施例采用的技术方案是,
[0008]第一方面,提供了一种P2P资源共享方法,包括:
[0009]第一边缘超级节点接收第一超级节点转发的第一查询请求,其中,所述第一查询请求包含第一节点请求查询的第一资源ID ;
[0010]所述第一边缘超级节点根据所述第一资源ID查询所述第一边缘超级节点的本地信息,其中,所述第一边缘超级节点的本地信息包含所述第一边缘超级节点能够获取的资源ID,以及每个资源ID对应的节点ID和IP地址;[0011]若所述第一边缘超级节点确定所述第一边缘超级节点的本地信息中不包含所述第一资源ID,则将所述第一查询请求转发至第二边缘超级节点,以使得所述第二边缘超级节点在所述第二边缘超级节点所在的网络域中查找所述第一资源,其中,所述第一边缘超级节点和所述第二边缘超级节点通过IPV4/IPV6互通网关连接,所述第一边缘超级节点处于IPV4网络域,所述第二边缘超级节点处于IPV6网络域;或者,所述第一边缘超级节点处于IPV6网络域,所述第二边缘超级节点处于IPV4网络域;
[0012]所述第一边缘超级节点接收所述第二边缘超级节点发送的第一查询响应报文,其中,所述第一查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第一节点的地址,所述源地址为存储所述第一资源的第二节点的地址,且所述源地址经过所述IPV4/IPV6互通网关翻译后,与所述第一边缘超级节点所处网络域类型相同,所述Payload中包含所述第二节点ID,所述第一资源的文件key,以及所述第一资源的实际IP地址;
[0013]所述第一边缘超级节点对所述第一查询响应报文进行解析,若确定所述Payload中所述实际IP地址的类型与所述第一边缘超级节点所处的网络域的IP地址类型不同,则将所述Payload中的所述实际IP地址替换成所述第一查询响应报文中的源地址;
[0014]所述第一边缘超级节点将所述第一查询响应报文转发至所述第一节点,以使得所述第一节点根据所述第一查询响应报文与所述第二节点建立P2P连接,并进行所述第一资源的共享。
[0015]第二方面,提供了第一边缘超级节点,包括:
[0016]第一接收模块,用于接收第一超级节点转发的第一查询请求,其中,所述第一查询请求包含第一节点请求查询的第一资源ID ;
[0017]查询模块,用于根据所述第一资源ID查询所述第一边缘超级节点的本地信息,其中,所述第一边缘超级节点的本地信息包含所述第一边缘超级节点能够获取的资源ID,以及每个资源ID对应的节点ID和IP地址;
[0018]第一发送模块,用于若所述查询模块确定所述第一边缘超级节点的本地信息中不包含所述第一资源ID,则将所述第一查询请求转发至第二边缘超级节点,以使得所述第二边缘超级节点在所述第二边缘超级节点所在的网络域中查找所述第一资源,其中,所述第一边缘超级节点和所述第二边缘超级节点通过IPV4/IPV6互通网关连接,所述第一边缘超级节点处于IPV4网络域,所述第二边缘超级节点处于IPV6网络域;或者,所述第一边缘超级节点处于IPV6网络域,所述第二边缘超级节点处于IPV4网络域;
[0019]第二接收模块,用于接收所述第二边缘超级节点发送的第一查询响应报文,其中,所述第一查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第一节点的地址,所述源地址为存储所述第一资源的第二节点的地址,且所述源地址经过所述IPV4/IPV6互通网关翻译后,与所述第一边缘超级节点所处网络域类型相同,所述Payload中包含所述第二节点ID,所述第一资源的文件key,以及所述第一资源的实际IP地址;
[0020]解析模块,用于对所述第一查询响应报文进行解析,若确定所述Payload中所述实际IP地址的类型与所述第一边缘超级节点所处的网络域的IP地址类型不同,则将所述Payload中的所述实际IP地址替换成所述第一查询响应报文中的源地址;
[0021]第二发送模块,用于将所述第一查询响应报文转发至所述第一节点,以使得所述第一节点根据所述第一查询响应报文与所述第二节点建立P2P连接,并进行所述第一资源的共享。
[0022]第三方面,提供一种系统,包括:第一边缘超级节点,第二边缘超级节点,所述第一边缘超级节点和所述第二边缘超级节点通过IPV4/IPV6互通网关连接,所述第一边缘超级节点处于IPV4网络域,所述第二边缘超级节点处于IPV6网络域;或者,所述第一边缘超级节点处于IPV6网络域,所述第二边缘超级节点处于IPV4网络域;
[0023]其中,所述第一边缘超级节点用于,
[0024]接收第一超级节点转发的第一查询请求,其中,所述第一查询请求包含第一节点请求查询的第一资源ID ;
[0025]根据所述第一资源ID查询所述第一边缘超级节点的本地信息,其中,所述第一边缘超级节点的本地信息包含所述第一边缘超级节点能够获取的资源ID,以及每个资源ID对应的节点ID和IP地址;
[0026]若确定所述第一边缘超级节点的本地信息中不包含所述第一资源ID,则将所述第一查询请求转发至第二边缘超级节点,以使得所述第二边缘超级节点在所述第二边缘超级节点所在的网络域中查找所述第一资源;
[0027]接收所述第二边缘超级节点发送的第一查询响应报文,其中,所述第一查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第一节点的地址,所述源地址为存储所述第一资源的第二节点的地址,且所述源地址经过所述IPV4/IPV6互通网关翻译后,与所述第一边缘超级节点所处网络域类型相同,所述Payload中包含所述第二节点ID,所述第一资源的文件key,以及所述第一资源的实际IP地址;
[0028]对所述第一查询响应报文进行解析,若确定所述Payload中所述实际IP地址的类型与所述第一边缘超级节点所处的网络域的IP地址类型不同,则将所述Payload中的所述实际IP地址替换成所述第一查询响应报文中的源地址;
[0029]将所述第一查询响应报文转发至所述第一节点,以使得所述第一节点根据所述第一查询响应报文与所述第二节点建立P2P连接,并进行所述第一资源的共享。
[0030]由上可见,本发明实施例提供一种P2P资源共享方法、设备及系统,第一边缘超级节点接收第一超级节点转发的第一查询请求,其中,所述第一查询请求包含第一节点请求查询的第一资源ID ;所述第一边缘超级节点根据所述第一资源ID查询所述第一边缘超级节点的本地信息,其中,所述第一边缘超级节点的本地信息包含所述第一边缘超级节点能够获取的资源ID,以及每个资源ID对应的节点ID和IP地址;若所述第一边缘超级节点确定所述第一边缘超级节点的本地信息中不包含所述第一资源ID,则将所述第一查询请求转发至第二边缘超级节点,以使得所述第二边缘超级节点在所述第二边缘超级节点所在的网络域中查找所述第一资源,其中,所述第一边缘超级节点和所述第二边缘超级节点通过IPV4/IPV6互通网关连接,所述第一边缘超级节点处于IPV4网络域,所述第二边缘超级节点处于IPV6网络域;或者,所述第一边缘超级节点处于IPV6网络域,所述第二边缘超级节点处于IPV4网络域;所述第一边缘超级节点接收所述第二边缘超级节点发送的第一查询响应报文,其中,所述第一查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第一节点的地址,所述源地址为存储所述第一资源的第二节点的地址,且所述源地址经过所述IPV4/IPV6互通网关翻译后,与所述第一边缘超级节点所处网络域类型相同,所述Payload中包含所述第二节点ID,所述第一资源的文件key,以及所述第一资源的实际IP地址;所述第一边缘超级节点对所述第一查询响应报文进行解析,若确定所述Payload中所述实际IP地址的类型与所述第一边缘超级节点所处的网络域的IP地址类型不同,则将所述Payload中的所述实际IP地址替换成所述第一查询响应报文中的源地址;所述第一边缘超级节点将所述第一查询响应报文转发至所述第一节点,以使得所述第一节点根据所述第一查询响应报文与所述第二节点建立P2P连接,并进行所述第一资源的共享。如此,通过引入边缘超级节点,实现IPv6与IPv4混合组网下的P2P资源分享。克服了现有技术中IPv6与IPv4混合组网下,容易造成IPv6与IPv4的地址翻译非——映射时或者动态映射时导致的P2P资源分享失败的缺陷。
【专利附图】
【附图说明】
[0031]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0032]图1为本发明实施例提供一种IPv6和IPv4混合组网的系统图;
[0033]图2为本发明实施例提供的一种P2P资源共享方法的流程图;
[0034]图3为本发明实施例提供的一种第一边缘超级节点的装置结构示意图;
[0035]图4为本发明实施例提供的另一种第一边缘超级节点的装置结构示意图。
【具体实施方式】
[0036]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037]为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个术语;
[0038]资源(Piece):为文件资源,以分块Piece形式储存在各普通节点中。
[0039]资源ID:为资源的标识符。
[0040]节点ID:为节点标识符,每个节点拥有的全局唯一的标示符。
[0041]普通节点:普通P2P节点,可以用来存储资源以及发出资源查询请求,可以保存资源块和相邻节点(包括相邻节点所包含的资源块标示符)等信息,每个网络域有多个普通节点。
[0042]超级节点:维护下游普通节点信息,用于资源检索,不做文件存储,每个网络域可以有多个超级节点。
[0043]边缘超级节点:为本发明实施例在现有IPv4与IPv6网络架构下引入的新型节点,每个网络域可以包含一个边缘超级节点,也可以包含多个边缘超级节点,具体可以根据网络域的实际情况进行部署,边缘超级节点只在网络域的边缘部署,不做文件资源存储,边缘超级节点可以同时运行多种类型协议,例如,可以同时运行IPv6和IPv4协议。边缘超级节点与至少一个超级节点直连,该超级节点将该边缘超级节点的地址信息扩展给其他超级节点。
[0044]IPv4/IPv6互通网关,用于连接IPv4网络域与IPv6网络域中的边缘超级节点,维护IPv4网络域与IPv6网络域地址的对应关系,能够将IPv4网络域与IPv6网络域之间的IP地址进行翻译。
[0045]边缘超级节点控制器:与一个广域内所有边缘超级节点逻辑直连,能够对边缘超级节点进行注册和管理,增强网络可管理性,当网络规模较大时、网络出口较多、边缘超级节点故障并启用新边缘超级的节点时,边缘超级节点控制器提供边缘超级节点间的寻址和新边缘超级节点注册并下发通知等功能,不做文件资源存储。
[0046]应理解,本发明实施例可以应用于各种混合组网中的P2P资源共享,本发明实施例对此不进行限制。
[0047]仅是示例性的,本发明实施例的方法以应用于IPv6和IPv4混合组网场景下的P2P资源共享进行说明,但这并不对本发明实施例构成任何限定。参见图1,为本发明实施例设定的一种IPv6和IPv4混合组网的系统图,该系统包含IPV4网络域和IPV6网络域,其中,IPV4网络域中包含节点20,超级节点40、50,边缘超级节点30,IPV4网络域中包含节点80,超级节点70,边缘超级节点60,边缘超级节点30和边缘超级节点60通过IPv4/IPv6互通网关90连接。
[0048]一方面,本发明实施例提供一种P2P资源共享方法,需要说明的是,参见图1,本发明实施例假设节点20为第一节点,超级节点40为第一超级节点,边缘超级节点30为第一边缘超级节点,节点80为第二节点,超级节点70为第二超级节点,边缘超级节点60为第二边缘超级节点。
[0049]参见图2,可以包括以下步骤:
[0050]201:第一边缘超级节点接收第一超级节点转发的第一查询请求,其中,所述第一查询请求包含第一节点请求查询的第一资源ID ;
[0051]其中,第一节点在首次注册登录P2P网络时,生成全域唯一的第一节点的ID并注册。第一节点作为新节点时,至少知道P2P网络中的一个节点,第一节点可以从P2P应用中得到节点的具体位置信息。第一节点加入网络后可通知与第一节点相关联的其他节点(例如图1中的节点50),来更新其他节点的查询表。
[0052]其中,第一边缘超级节点初始时可以人工配置,并将其连通IPv4和IPv6域以进行分布式哈希表(Distributed Hash Table,简称DHT散列表计算。
[0053]假设第一节点需要从其他节点共享第一资源,则第一节点发送第一查询请求到与第一节点相邻的节点,该查询请求包含第一资源ID ;
[0054]第一节点的相邻节点查询该相邻节点的本地信息,该相邻节点的本地信息可以包含该相邻节点存储的资源的资源ID信息,以及该相邻节点可以获取的资源的资源ID及对应的地址信息,如果相邻节点确定本地信息包含第一资源的定位信息缓存,例如节点(NodeIdentifier,简称NID),第一资源的IP地址,那么就返回第一资源的定位信息的数据源;如果相邻节点的本地信息没有第一资源的定位信息,那么该相邻节点可以将该查询请求转发到第一超级节点。
[0055]当第一超级节点接到该第一查询请求时,可以优先查看第一超级节点的本地信息,第一超级节点的本地信息可以包含第一超级节点记录的资源ID,以及每个资源ID对应的节点ID和IP地址;例如,第一超级节点的本地信息可以以路由表的形式存在,若第一超级节点的本地信息中包含第一资源ID以及第一资源对应的地址信息(包含该第一资源对应的节点ID和IP地址),则第一超级节点可以向第一节点返回该第一资源的地址信息,若第一超级节点的本地信息中不包含第一资源ID以及第一资源对应的地址信息,则第一超级节点可以将第一查询请求转发给其他超级节点进行查询,若所有超级节点都无法查找到第一资源的位置信息时,将第一查询请求转发给第一边缘超级节点。
[0056]202:所述第一边缘超级节点根据所述第一资源ID查询所述第一边缘超级节点的本地信息,其中,所述第一边缘超级节点的本地信息包含所述第一边缘超级节点能够获取的资源ID,以及每个资源ID对应的节点ID和IP地址;
[0057]当第一边缘超级节点接到该第一查询请求时,可以优先查看第一边缘超级节点的本地信息,第一边缘超级节点的本地信息可以包含第一边缘超级节点记录的资源ID,以及每个资源ID对应的节点ID和IP地址;例如,第一边缘超级节点的本地信息可以以路由表的形式存在,若第一边缘超级节点的本地信息中包含第一资源ID以及第一资源对应的地址信息(包含该第一资源对应的节点ID和IP地址),则第一边缘超级节点可以向第一资源的地址信息逐级传送给第一节点。
[0058]203:若所述第一边缘超级节点确定所述第一边缘超级节点的本地信息中不包含所述第一资源ID,则将所述第一查询请求转发至第二边缘超级节点,以使得所述第二边缘超级节点在所述第二边缘超级节点所在的网络域中查找所述第一资源,其中,所述第一边缘超级节点和所述第二边缘超级节点通过IPV4/IPV6互通网关连接,所述第一边缘超级节点处于IPV4网络域,所述第二边缘超级节点处于IPV6网络域;或者,所述第一边缘超级节点处于IPV6网络域,所述第二边缘超级节点处于IPV4网络域;
[0059]若第一边缘超级节点的本地信息中不包含第一资源ID以及第一资源对应的地址信息,若当前网络域中存在其他边缘超级节点,则第一边缘超级节点可以将第一查询请求转发给其他边缘超级节点进行查询,若所有边缘超级节点都无法查找到第一资源的位置信息时,第一边缘超级节点将第一查询请求转发给其他网络域中的第二边缘超级节点。
[0060]当IPV6网络域中第二边缘超级节点接收到IPV6网络域的第一边缘超级节点发送的第一查询请求时,可以在自身存储和域内超级节点进行查找直至找到或完成全网查找为止。若找到,第二边缘超级节点将第一查询响应报文发送给第一边缘超级节点。若没有找至IJ,如果存在的话其他边缘超级节点,则将第一查询请求转发给其他边缘超级节。若直到查询完整个网络为止,都没有找到第一资源的位置信息,则返回第一资源不存在。
[0061]204、所述第一边缘超级节点接收所述第二边缘超级节点发送的第一查询响应报文,其中,所述第一查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第一节点的地址,所述源地址为存储所述第一资源的第二节点的地址,且所述源地址经过所述IPV4/IPV6互通网关翻译后,与所述第一边缘超级节点所处网络域类型相同,所述Payload中包含所述第二节点ID,所述第一资源的文件key,以及所述第一资源的实际IP地址;
[0062]其中,IPV4/IPV6互通网关可以维护IPV4和IPV6之间的对应关系,第一查询响应报文在经过IPV4/IPV6互通网关时,IPV4/IPV6互通网关可以对其中的源地址进行翻译,使得翻译后的源地址与所述第一边缘超级节点所处网络域类型相同。例如,在本实施例中,存储第一资源的第二节点的IP地址为IPV6地址,第二边缘超级节点将IPV6形式的第二节点的IP地址作为源地址加入第一查询响应报文,IPV4/IPV6互通网关将IPV6形式的第二节点的IP地址翻译IPV4形式的第二节点的IP地址,并将翻译后的IPV4形式的第二节点的IP地址作为源地址加入第一查询响应报文。
[0063]205、所述第一边缘超级节点对所述第一查询响应报文进行解析,若确定所述Payload中所述实际IP地址的类型与所述第一边缘超级节点所处的网络域的IP地址类型不同,则将所述Payload中的所述实际IP地址替换成所述第一查询响应报文中的源地址;
[0064]例如,第一边缘超级节点对所述第一查询响应报文进行解析后,获得所述第一查询响应报文中的目的地址,源地址,以及Payload,所述目的地址为所述第一节点的地址,所述源地址为经过IPV4/IPV6互通网关翻译后第二节点地址,经过解析后,第一边缘超级节点获取Payload中包含的第二节点ID,第一资源的文件key,以及第一资源的实际IP地址;为了使得第一节点能够识别第一资源的IP地址,所以,第一边缘超级节点解析得到第一资源的实际IP地址,判断该实际IP地址与当前网络域的IP地址类型是否相同,如过不同,说明第一节点不能识别该实际IP地址,因为源地址为经过IPV4/IPV6互通网关翻译后的第二节点地址,能够被第一节点识别,所以,第一边缘超级节点将源地址替换该实际IP地址。
[0065]206、所述第一边缘超级节点将所述第一查询响应报文转发至所述第一节点,以使得所述第一节点根据所述第一查询响应报文与所述第二节点建立P2P连接,并进行所述第一资源的共享。
[0066]第一节点获取第一查询响应报文后,根据所述第一查询响应报文中Payload中的第二节点ID,第一资源的文件key,以及第一资源的IP地址(翻译后的)可以与第二节点建立P2P连接,并在建立P2P连接后共享第二节点的第一资源,所以,经过IPV4/IPV6互通网关对IP地址的翻译,以及第一边缘超级节点对解析后的Payload中的IP地址的判断和替换,使得第一节点收到的IP地址可识别,确保P2P建立成功。
[0067]进一步的,为了提高查询的效率以及确保地址翻译的有效性,所述方法还包括:
[0068]所述第一边缘超级节点将所述第一资源ID与所述第一资源的实际IP地址存储至文件地址信息,其中,所述文件地址信息包含所述第一边缘超级节点每次查询所得的资源ID以及与所述资源ID对应的实际IP地址。
[0069]第一边缘超级节点通过存储每次查询的文件地址信息,当某一资源之前被查询过后,当再次查询该资源时,可以快速获取该资源的真实IP地址,因为IPV4/IPV6互通网关维护的IPV4和IPV6之间的地址映射对可能是动态的对应关系,所以,该资源的真实IP地址在不同时刻可以对应不同的翻译的IP地址,所以,第一边缘超级节点不能直接向请求节点返回之间查询的翻译IP地址,但是,该资源对应的真实IP地址不变,所以,第一边缘超级节点可以根据该资源的真实IP地址请求IPV4/IPV6互通网关当前时刻的翻译IP地址,具体可以通过下述过程体现。
[0070]第一边缘超级节点接收所述第一超级节点转发的第二查询请求,其中,所述第二查询请求包含第三节点请求查询的第二资源ID,所述第三节点为所述第一边缘超级节点所在网络域中任意一个节点。
[0071]第一边缘超级节点根据所述第二资源ID查询所述文件地址信息,若确定所述文件地址信息中包含所述第二资源ID,则向所述IPV4/IPV6互通网关发送所述第二资源ID对应的实际IP地址,以使得所述IPV4/IPV6互通网关为所述第二资源ID的实际IP地址提供翻译地址。
[0072]其中,若IPV4/IPV6互通网关当前时刻存在第二资源ID对应的实际IP地址的翻译IP地址,则可以直接向第一边缘超级节点返回该翻译IP地址,若当前时刻IPV4/IPV6互通网关不存在第二资源ID对应的实际IP地址的翻译IP地址,则IPV4/IPV6互通网关可立即为该第二资源ID对应的实际IP地址分配翻译IP地址。
[0073]第一边缘超级节点接收所述IPV4/IPV6互通网关发送的所述第二资源的实际IP地址的翻译地址;
[0074]第一边缘超级节点将第二查询响应报文转发至所述第三节点,以使得所述第三节点根据所述第二查询响应报文与所述第二资源ID所在的节点建立P2P连接,并进行所述第二资源的共享,其中,所述第二查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第三节点的地址,所述源地址为所述第二资源的实际IP地址的翻译地址,所述Payload中包含所述第二资源所在的节点ID,所述第二资源的文件key,以及所述第二资源的实际IP地址的翻译地址。
[0075]由上可见,本发明实施例提供一种P2P资源共享方法,第一边缘超级节点接收第一超级节点转发的第一查询请求,其中,所述第一查询请求包含第一节点请求查询的第一资源ID ;所述第一边缘超级节点根据所述第一资源ID查询所述第一边缘超级节点的本地信息,其中,所述第一边缘超级节点的本地信息包含所述第一边缘超级节点能够获取的资源ID,以及每个资源ID对应的节点ID和IP地址;若所述第一边缘超级节点确定所述第一边缘超级节点的本地信息中不包含所述第一资源ID,则将所述第一查询请求转发至第二边缘超级节点,以使得所述第二边缘超级节点在所述第二边缘超级节点所在的网络域中查找所述第一资源,其中,所述第一边缘超级节点和所述第二边缘超级节点通过IPV4/IPV6互通网关连接,所述第一边缘超级节点处于IPV4网络域,所述第二边缘超级节点处于IPV6网络域;或者,所述第一边缘超级节点处于IPV6网络域,所述第二边缘超级节点处于IPV4网络域;所述第一边缘超级节点接收所`述第二边缘超级节点发送的第一查询响应报文,其中,所述第一查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第一节点的地址,所述源地址为存储所述第一资源的第二节点的地址,且所述源地址经过所述IPV4/IPV6互通网关翻译后,与所述第一边缘超级节点所处网络域类型相同,所述Payload中包含所述第二节点ID,所述第一资源的文件key,以及所述第一资源的实际IP地址;所述第一边缘超级节点对所述第一查询响应报文进行解析,若确定所述Payload中所述实际IP地址的类型与所述第一边缘超级节点所处的网络域的IP地址类型不同,则将所述Payload中的所述实际IP地址替换成所述第一查询响应报文中的源地址;所述第一边缘超级节点将所述第一查询响应报文转发至所述第一节点,以使得所述第一节点根据所述第一查询响应报文与所述第二节点建立P2P连接,并进行所述第一资源的共享。如此,通过引入边缘超级节点,实现IPv6与IPv4混合组网下的P2P资源分享。克服了现有技术中IPv6与IPv4混
合组网下,容易造成IPv6与IPv4的地址翻译非--映射关系或者动态映射导致的P2P资
源分享失败的缺陷。
[0076]一方面,本发明实施例提供一种第一边缘超级节点30,参见图3,包括:[0077]第一接收模块301,用于接收第一超级节点转发的第一查询请求,其中,所述第一查询请求包含第一节点请求查询的第一资源ID ;
[0078]查询模块302,用于根据所述第一资源ID查询所述第一边缘超级节点的本地信息,其中,所述第一边缘超级节点的本地信息包含所述第一边缘超级节点能够获取的资源ID,以及每个资源ID对应的节点ID和IP地址;
[0079]第一发送模块303,用于若所述查询模块确定所述第一边缘超级节点的本地信息中不包含所述第一资源ID,则将所述第一查询请求转发至第二边缘超级节点,以使得所述第二边缘超级节点在所述第二边缘超级节点所在的网络域中查找所述第一资源,其中,所述第一边缘超级节点和所述第二边缘超级节点通过IPV4/IPV6互通网关连接,所述第一边缘超级节点处于IPV4网络域,所述第二边缘超级节点处于IPV6网络域;或者,所述第一边缘超级节点处于IPV6网络域,所述第二边缘超级节点处于IPV4网络域;
[0080]第二接收模块304,用于接收所述第二边缘超级节点发送的第一查询响应报文,其中,所述第一查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第一节点的地址,所述源地址为存储所述第一资源的第二节点的地址,且所述源地址经过所述IPV4/IPV6互通网关翻译后,与所述第一边缘超级节点所处网络域类型相同,所述Payload中包含所述第二节点ID,所述第一资源的文件key,以及所述第一资源的实际IP地址;
[0081]解析模块305,用于对所述第一查询响应报文进行解析,若确定所述Payload中所述实际IP地址的类型与所述第一边缘超级节点所处的网络域的IP地址类型不同,则将所述Payload中的所述实际IP地址替换成所述第一查询响应报文中的源地址;
[0082]第二发送模块306,用于将所述第一查询响应报文转发至所述第一节点,以使得所述第一节点根据所述第一查询响应报文与所述第二节点建立P2P连接,并进行所述第一资源的共享。
[0083]进一步的,参见图4,第一边缘超级节点30还包括:
[0084]存储模块307,用于将所述第一资源ID与所述第一资源的实际IP地址存储至文件地址信息,其中,所述文件地址信息包含所述第一边缘超级节点每次查询所得的资源ID以及与所述资源ID对应的实际IP地址。
[0085]进一步的,
[0086]第一接收模块301还用于,接收所述第一超级节点转发的第二查询请求,其中,所述第二查询请求包含第三节点请求查询的第二资源ID,所述第三节点为所述第一边缘超级节点所在网络域中任意一个节点;
[0087]所述查询模块302还用于,根据所述第二资源ID查询所述文件地址信息;
[0088]所述第一发送模块303还用于,若所述查询模块确定所述文件地址信息中包含所述第二资源ID,则向所述IPV4/IPV6互通网关发送所述第二资源ID对应的实际IP地址,以使得所述IPV4/IPV6互通网关为所述第二资源ID的实际IP地址提供翻译地址;
[0089]所述第二接收模块304还用于,接收所述IPV4/IPV6互通网关发送的所述第二资源的实际IP地址的翻译地址;
[0090]所述第二发送模块306还用于,将第二查询响应报文转发至所述第三节点,以使得所述第三节点根据所述第二查询响应报文与所述第二资源ID所在的节点建立P2P连接,并进行所述第二资源的共享,其中,所述第二查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第三节点的地址,所述源地址为所述第二资源的实际IP地址的翻译地址,所述Payload中包含所述第二资源所在的节点ID,所述第二资源的文件key,以及所述第二资源的实际IP地址的翻译地址。
[0091]由上可见,本发明实施例提供一种第一边缘超级节点,接收第一超级节点转发的第一查询请求,其中,所述第一查询请求包含第一节点请求查询的第一资源ID ;所述第一边缘超级节点根据所述第一资源ID查询所述第一边缘超级节点的本地信息,其中,所述第一边缘超级节点的本地信息包含所述第一边缘超级节点能够获取的资源ID,以及每个资源ID对应的节点ID和IP地址;若所述第一边缘超级节点确定所述第一边缘超级节点的本地信息中不包含所述第一资源ID,则将所述第一查询请求转发至第二边缘超级节点,以使得所述第二边缘超级节点在所述第二边缘超级节点所在的网络域中查找所述第一资源,其中,所述第一边缘超级节点和所述第二边缘超级节点通过IPV4/IPV6互通网关连接,所述第一边缘超级节点处于IPV4网络域,所述第二边缘超级节点处于IPV6网络域;或者,所述第一边缘超级节点处于IPV6网络域,所述第二边缘超级节点处于IPV4网络域;所述第一边缘超级节点接收所述第二边缘超级节点发送的第一查询响应报文,其中,所述第一查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第一节点的地址,所述源地址为存储所述第一资源的第二节点的地址,且所述源地址经过所述IPV4/IPV6互通网关翻译后,与所述第一边缘超级节点所处网络域类型相同,所述Payload中包含所述第二节点ID,所述第一资源的文件key,以及所述第一资源的实际IP地址;所述第一边缘超级节点对所述第一查询响应报文进行解析,若确定所述Payload中所述实际IP地址的类型与所述第一边缘超级节点所处的网络域的IP地址类型不同,则将所述Payload中的所述实际IP地址替换成所述第一查询响应报文中的源地址;所述第一边缘超级节点将所述第一查询响应报文转发至所述第一节点,以使得所述第一节点根据所述第一查询响应报文与所述第二节点建立P2P连接,并进行所述第一资源的共享。如此,通过引入边缘超级节点,实现IPv6与IPv4混合组网下的P2P资源分享。克服了现有技术中IPv6与IPv4混合组网下,容易造成IPv6与IPv4的地址翻译非一一映射关系或者动态映射导致的P2P资源分享失败的缺陷。
[0092]一方面,本发明实施例提供一种系统,参见图1,该系统包括:第一边缘超级节点30,第二边缘超级节点60,所述第一边缘超级节点30和所述第二边缘超级节点60通过IPV4/IPV6互通网关90连接,
[0093]需要说明的,所述第一边缘超级节点30处于IPV4网络域,所述第二边缘超级节点60处于IPV6网络域;或者,所述第一边缘超级节点30处于IPV6网络域,所述第二边缘超级节点60处于IPV4网络域;本发明实施例对此不进行限定,图1仅是以一种情况进行的示例性说明。
[0094]其中,所述第一边缘超级节点30用于,
[0095]接收第一超级节点40转发的第一查询请求,其中,所述第一查询请求包含第一节点20请求查询的第一资源ID ;
[0096]根据所述第一资源ID查询所述第一边缘超级节点的本地信息,其中,所述第一边缘超级节点30的本地信息包含所述第一边缘超级节点能够获取的资源ID,以及每个资源ID对应的节点ID和IP地址;[0097]若确定所述第一边缘超级节点30的本地信息中不包含所述第一资源ID,则将所述第一查询请求转发至第二边缘超级节点60,以使得所述第二边缘超级节点60在所述第二边缘超级节点60所在的网络域中查找所述第一资源;[0098]接收所述第二边缘超级节点60发送的第一查询响应报文,其中,所述第一查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第一节点的地址,所述源地址为存储所述第一资源的第二节点80的地址,且所述源地址经过所述IPV4/IPV6互通网关翻译后,与所述第一边缘超级节点30所处网络域类型相同,所述Payload中包含所述第二节点ID,所述第一资源的文件key,以及所述第一资源的实际IP地址;[0099]对所述第一查询响应报文进行解析,若确定所述Payload中所述实际IP地址的类型与所述第一边缘超级节点30所处的网络域的IP地址类型不同,则将所述Payload中的所述实际IP地址替换成所述第一查询响应报文中的源地址;[0100]将所述第一查询响应报文转发至所述第一节点20,以使得所述第一节点20根据所述第一查询响应报文与所述第二节点80建立P2P连接,并进行所述第一资源的共享。[0101]进一步的,所述第一边缘超级节点30还用于:将所述第一资源ID与所述第一资源的实际IP地址存储至文件地址信息,其中,所述文件地址信息包含所述第一边缘超级节点每次查询所得的资源ID以及与所述资源ID对应的实际IP地址。[0102]进一步的,所述第一边缘超级节点30还用于:[0103]接收所述第一超级节点40转发的第二查询请求,其中,所述第二查询请求包含第三节点请求查询的第二资源ID,所述第三节点为所述第一边缘超级节点所在网络域中任意一个节点;[0104]根据所述第二资源ID查询所述文件地址信息;[0105]若确定所述文件地址信息中包含所述第二资源ID,则向所述IPV4/IPV6互通网关发送所述第二资源ID对应的实际IP地址,以使得所述IPV4/IPV6互通网关为所述第二资源ID的实际IP地址提供翻译地址;[0106]接收所述IPV4/IPV6互通网关发送的所述第二资源的实际IP地址的翻译地址;[0107]将第二查询响应报文转发至所述第三节点,以使得所述第三节点根据所述第二查询响应报文与所述第二资源ID所在的节点建立P2P连接,并进行所述第二资源的共享,其中,所述第二查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第三节点的地址,所述源地址为所述第二资源的实际IP地址的翻译地址,所述Payload中包含所述第二资源所在的节点ID,所述第二资源的文件key,以及所述第二资源的实际IP地址的翻译地址。[0108]进一步的,所述系统还包括:边缘超级节点控制器,所述边缘超级节点控制器与所述系统中的边缘超级节点逻辑连接,用于对新的边缘超级节点进行注册及管理,提供所述边缘超级节点控制器所管理的边缘超级节点之间的寻址及通知的下发。[0109]由上可见,本发明实施例提供的系统,通过引入边缘超级节点,实现IPv6与IPv4混合组网下的P2P资源分享。克服了现有技术中IPv6与IPv4混合组网下,容易造成IPv6与IPv4的地址翻译非--映射关系或者动态映射导致的P2P资源分享失败的缺陷。[0110]最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
【权利要求】
1.一种P2P资源共享方法,其特征在于,该方法包括: 第一边缘超级节点接收第一超级节点转发的第一查询请求,其中,所述第一查询请求包含第一节点请求查询的第一资源ID ; 所述第一边缘超级节点根据所述第一资源ID查询所述第一边缘超级节点的本地信息,其中,所述第一边缘超级节点的本地信息包含所述第一边缘超级节点能够获取的资源ID,以及每个资源ID对应的节点ID和IP地址; 若所述第一边缘超级节点确定所述第一边缘超级节点的本地信息中不包含所述第一资源ID,则将所述第一查询请求转发至第二边缘超级节点,以使得所述第二边缘超级节点在所述第二边缘超级节点所在的网络域中查找所述第一资源,其中,所述第一边缘超级节点和所述第二边缘超级节点通过IPV4/IPV6互通网关连接,所述第一边缘超级节点处于IPV4网络域,所述第二边缘超级节点处于IPV6网络域;或者,所述第一边缘超级节点处于IPV6网络域,所述第二边缘超级节点处于IPV4网络域; 所述第一边缘超级节点接收所述第二边缘超级节点发送的第一查询响应报文,其中,所述第一查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第一节点的地址,所述源地址为存储所述第一资源的第二节点的地址,且所述源地址经过所述IPV4/IPV6互通网关翻译后,与所述第一边缘超级节点所处网络域类型相同,所述Payload中包含所述第二节点ID,所述第一资源的文件key,以及所述第一资源的实际IP地址; 所述第一边缘超级节点对所述第一查询响应报文进行解析,若确定所述Payload中所述实际IP地址的类型与所述第一边缘超级节点所处的网络域的IP地址类型不同,则将所述Payload中的所述实际IP地址替换成所述第一查询响应报文中的源地址; 所述第一边缘超级节点将所述第一查询响应报文转发至所述第一节点,以使得所述第一节点根据所述第一查询响应报文与所述第二节点建立P2P连接,并进行所述第一资源的共享。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 所述第一边缘超级节点将所述第一资源ID与所述第一资源的实际IP地址存储至文件地址信息,其中,所述文件地址信息包含所述第一边缘超级节点每次查询所得的资源ID以及与所述资源ID对应的实际IP地址。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括: 所述第一边缘超级节点接收所述第一超级节点转发的第二查询请求,其中,所述第二查询请求包含第三节点请求查询的第二资源ID,所述第三节点为所述第一边缘超级节点所在网络域中任意一个节点; 所述第一边缘超级节点根据所述第二资源ID查询所述文件地址信息,若确定所述文件地址信息中包含所述第二资源ID,则向所述IPV4/IPV6互通网关发送所述第二资源ID对应的实际IP地址,以使得所述IPV4/IPV6互通网关为所述第二资源ID的实际IP地址提供翻译地址; 所述第一边缘超级节点接收所述IPV4/IPV6互通网关发送的所述第二资源的实际IP地址的翻译地址; 所述第一边缘超级节点将第二查询响应报文转发至所述第三节点,以使得所述第三节点根据所述第二查询响应报文与所述第二资源ID所在的节点建立P2P连接,并进行所述第二资源的共享,其中,所述第二查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第三节点的地址,所述源地址为所述第二资源的实际IP地址的翻译地址,所述Payload中包含所述第二资源所在的节点ID,所述第二资源的文件key,以及所述第二资源的实际IP地址的翻译地址。
4.一种第一边缘超级节点,其特征在于,包括: 第一接收模块,用于接收第一超级节点转发的第一查询请求,其中,所述第一查询请求包含第一节点请求查询的第一资源ID ; 查询模块,用于根据所述第一资源ID查询所述第一边缘超级节点的本地信息,其中,所述第一边缘超级节点的本地信息包含所述第一边缘超级节点能够获取的资源ID,以及每个资源ID对应的节点ID和IP地址; 第一发送模块,用于若所述查询模块确定所述第一边缘超级节点的本地信息中不包含所述第一资源ID,则将所述第一查询请求转发至第二边缘超级节点,以使得所述第二边缘超级节点在所述第二边缘超级节点所在的网络域中查找所述第一资源,其中,所述第一边缘超级节点和所述第二边缘超级节点通过IPV4/IPV6互通网关连接,所述第一边缘超级节点处于IPV4网络域,所述第二边缘超级节点处于IPV6网络域;或者,所述第一边缘超级节点处于IPV6网络域,所述第二边缘超级节点处于IPV4网络域; 第二接收模块,用于接收所述第二边缘超级节点发送的第一查询响应报文,其中,所述第一查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第一节点的地址,所述源地址为存储所述第一资源的第二节点的地址,且所述源地址经过所述IPV4/IPV6互通网关翻译后,与所述第一边缘超级节点所处网络域类型相同,所述Payload中包含所述第二节点ID,所述第一资源的文件key,以及所述第一资源的实际IP地址; 解析模块,用于对所述第一查询响应报文进行解析,若确定所述Payload中所述实际IP地址的类型与所述第一边缘超级节点所处的网络域的IP地址类型不同,则将所述Payload中的所述实际IP地址替换成所述第一查询响应报文中的源地址; 第二发送模块,用于将所述第一查询响应报文转发至所述第一节点,以使得所述第一节点根据所述第一查询响应报文与所述第二节点建立P2P连接,并进行所述第一资源的共享。
5.根据权利要求4所述的第一边缘超级节点,其特征在于,所述第一边缘超级节点还包括:存储模块,用于将所述第一资源ID与所述第一资源的实际IP地址存储至文件地址信息,其中,所述文件地址信息包含所述第一边缘超级节点每次查询所得的资源ID以及与所述资源ID对应的实际IP地址。
6.根据权利要求5所述的第一边缘超级节点,其特征在于, 第一接收模块还用于,接收所述第一超级节点转发的第二查询请求,其中,所述第二查询请求包含第三节点请求查询的第二资源ID,所述第三节点为所述第一边缘超级节点所在网络域中任意一个节点; 所述查询模块还用于,根据所述第二资源ID查询所述文件地址信息; 所述第一发送模块还用于,若所述查询模块确定所述文件地址信息中包含所述第二资源ID,则向所述IPV4/IPV6互通网关发送所述第二资源ID对应的实际IP地址,以使得所述IPV4/IPV6互通网关为所述第二资源ID的实际IP地址提供翻译地址;所述第二接收模块还用于,接收所述IPV4/IPV6互通网关发送的所述第二资源的实际IP地址的翻译地址; 所述第二发送模块还用于,将第二查询响应报文转发至所述第三节点,以使得所述第三节点根据所述第二查询响应报文与所述第二资源ID所在的节点建立P2P连接,并进行所述第二资源的共享,其中,所述第二查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第三节点的地址,所述源地址为所述第二资源的实际IP地址的翻译地址,所述Payload中包含所述第二资源所在的节点ID,所述第二资源的文件key,以及所述第二资源的实际IP地址的翻译地址。
7.一种系统,其特征在于,包括:第一边缘超级节点,第二边缘超级节点,所述第一边缘超级节点和所述第二边缘超级节点通过IPV4/IPV6互通网关连接,所述第一边缘超级节点处于IPV4网络域,所述第二边缘超级节点处于IPV6网络域;或者,所述第一边缘超级节点处于IPV6网络域,所述第二边缘超级节点处于IPV4网络域; 其中,所述第一边缘超级节点用于, 接收第一超级节点转发的第一查询请求,其中,所述第一查询请求包含第一节点请求查询的第一资源ID ; 根据所述第一资源ID查询所述第一边缘超级节点的本地信息,其中,所述第一边缘超级节点的本地信息包含所述第一边缘超级节点能够获取的资源ID,以及每个资源ID对应的节点ID和IP地址; 若确定所述第一边缘超级节点的本地信息中不包含所述第一资源ID,则将所述第一查询请求转发至第二边缘超级节点,以使得所述第二边缘超级节点在所述第二边缘超级节点所在的网络域中查找所述第一资源; 接收所述第二边缘超级节点发送的第一查询响应报文,其中,所述第一查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第一节点的地址,所述源地址为存储所述第一资源的第二节点的地址,且所述源地址经过所述IPV4/IPV6互通网关翻译后,与所述第一边缘超级节点所处网络域类型相同,所述Payload中包含所述第二节点ID,所述第一资源的文件key,以及所述第一资源的实际IP地址; 对所述第一查询响应报文进行解析,若确定所述Payload中所述实际IP地址的类型与所述第一边缘超级节点所处的网络域的IP地址类型不同,则将所述Payload中的所述实际IP地址替换成所述第一查询响应报文中的源地址; 将所述第一查询响应报文转发至所述第一节点,以使得所述第一节点根据所述第一查询响应报文与所述第二节点建立P2P连接,并进行所述第一资源的共享。
8.根据权利要求7所述的系统,其特征在于,所述第一边缘超级节点还用于:将所述第一资源ID与所述第一资源的实际IP地址存储至文件地址信息,其中,所述文件地址信息包含所述第一边缘超级节点每次查询所得的资源ID以及与所述资源ID对应的实际IP地址。
9.根据权利要求8所述的系统,其特征在于,所述第一边缘超级节点还用于: 接收所述第一超级节点转发的第二查询请求,其中,所述第二查询请求包含第三节点请求查询的第二资源ID,所述第三节点为所述第一边缘超级节点所在网络域中任意一个节占.根据所述第二资源ID查询所述文件地址信息;若确定所述文件地址信息中包含所述第二资源ID,则向所述IPV4/IPV6互通网关发送所述第二资源ID对应的实际IP地址,以使得所述IPV4/IPV6互通网关为所述第二资源ID的实际IP地址提供翻译地址; 接收所述IPV4/IPV6互通网关发送的所述第二资源的实际IP地址的翻译地址;将第二查询响应报文转发至所述第三节点,以使得所述第三节点根据所述第二查询响应报文与所述第二资源ID所在的节点建立P2P连接,并进行所述第二资源的共享,其中,所述第二查询响应报文中包含目的地址,源地址,以及Payload,所述目的地址为所述第三节点的地址,所述源地址为所述第二资源的实际IP地址的翻译地址,所述Payload中包含所述第二资源所在的节点ID,所述第二资源的文件key,以及所述第二资源的实际IP地址的翻译地址。
10.根据权利要求7-9任一项所述的系统,其特征在于,所述系统还包括:边缘超级节点控制器,所述边缘超级节点控制器与所述系统中的边缘超级节点逻辑连接,用于对新的边缘超级节点进行注册及管理,提供所述边缘超级节点控制器所管理的边缘超级节点之间的寻址及通知的下发。
【文档编号】H04L29/08GK103618801SQ201310664771
【公开日】2014年3月5日 申请日期:2013年12月9日 优先权日:2013年12月9日
【发明者】任梦璇, 郭爱鹏, 周光涛 申请人:中国联合网络通信集团有限公司