一种p2p网络安全数据传输方法及其系统的制作方法

文档序号:7896041阅读:570来源:国知局
专利名称:一种p2p网络安全数据传输方法及其系统的制作方法
技术领域
本发明涉及一种P2P网络安全数据传输方法及其系统,属于网络通信领域;本发 明是以P2P网络为基础,能够传输大量数据的系统,具有高安全性、高传输率、高可靠性等 优点。
背景技术
随着计算机技术和网络技术的高速发展和应用的普及,越来越多的企业依靠信息 化系统进行日常生产和管理来提高企业效益。由于计算机技术发展迅速,以及企业对信息 处理和整合提出更多的需求,而企业现存着大量孤立的系统,它们之间各自独立,无法对 接,不仅造成企业数据孤立,无法共享,增加系统操作性和维护性的复杂度,同时造成了资 源的浪费。目前系统集成技术的发展呈现出分布式和多元化的趋势。具体表现在,要求系统 能在异构信息的整合;各个遗留系统在不重新开发的基础上实现企业信息化整合。随着信 息技术与网络技术的持续发展,以及对构建越来越复杂的信息整合、资源共享平台的需要, 中间件技术势必成为这些应用最具竞争的解决方案。数据传输中间件是目前中间件技术发展的热点。目前,大多数数据传输中间件都 是以集中式为基础,即所有的数据传输服务由中心服务器来提供,各个通信节点通过中心 服务器来实现数据间的传输。集中式数据传输中间件的一个主要问题是低效,易造成中心 服务器“单点拥挤”和“单点失败”等弊病,严重影响整个数据传输系统传输效率和数据传 输安全性。一旦中心服务器崩溃,整个数据传输系统也随之瘫痪。对于另外的一些基于DHT结构化分布式的数据传输的安全问题也越来越引起重 视。DHT查找目的节点时首先向所处网络的其它节点发出路由查询请求,其它接收到查询请 求的节点需要通过查询路由表来找到下一跳的节点,并转发查询请求,直到找到目的节点 为止。当正常运行时网络节点性能都很高,但假如网络中存在恶意节点时,其恶意节点散播 虚假路由信息使查整个网络系统受到攻击,网络其他节点必然受到严重威胁。本发明在对P2P技术和现代互联网技术的优缺点进行比较的基础上,以P2P为基 础,提高了传统的基于DHT结构化分布式的安全性,避免了上述弊病,确保了数据可以安全 高效的传输。

发明内容
本发明的目的在于提供一种P2P网络安全数据传输方法及其系统,可以实现进行 大量数据、文件的传输,使得文件和数据可以安全、可靠、高效的传输到目的节点。本发明采用如下技术方案一种P2P网络安全数据传输方法,其步骤为1)将普通节点连接为chord环;同时设置一命名服务器和一文件服务器;2)所述命名服务器分配所述普通节点的ID,并将ID分配信息发送给数据库服务
4器;3)所述普通节点向所述文件服务器和所述命名服务器发送节点信息,所述文件服 务器、命名服务器将接收的节点信息发送给所述数据库服务器;4)所述文件服务器对所述普通节点上的文件资源生成文件块编号并将编号存储 到数据库服务器中;5)所述文件服务器根据普通节点的搜索条件查询所述数据库服务器,检索资源所 在节点及其完成情况,并为该普通节点与资源所在节点建立连接、进行资源或数据传输。进一步的,所述节点信息包括IP地址、端口号、MAC地址、资源列表、资源传输完 成情况、数据列表和数据传输完成情况。进一步的,所述命名服务器根据普通节点的MAC地址,使用哈希算法得出其哈希 值,作为该普通节点的ID。进一步的,所述数据库服务器上存储一资源节点列表,所述数据库服务器根据搜 索条件对所述资源节点列表进行检索,得到资源所在节点及其完成情况。进一步的,所述命令服务器将所述普通节点的ID及其IP进行绑定,当某普通节点 接收到路由更新请求时,查询所述命令服务器,通过请求节点的ID和IP来验证请求节点的 身份。进一步的,所述文件服务器根据普通节点的搜索条件查询所述数据库服务器,将 该普通节点与资源所在节点的路由通过多条不相交的路径转发给该普通节点。进一步的,所述普通节点发送数据时,对发送数据进行封装并加上一 MD5校验码, 普通节点接收数据时根据封装数据的MD5码验证接收数据的完整性。进一步的,所述普通节点发送数据时,对发送数据进行编号,普通节点检测接收数 据的编号是否连续,验证接收数据的完整性。进一步的,所述普通节点记录发送节点提供给本节点的数据下载速率,优先为数 据下载速率大的节点提供数据下载。进一步的,所述普通节点退出系统时分别向所述文件服务器和所述命名服务器发 出退出消息,所述文件服务器和所述命名服务器通知正在从该普通节点传输数据的各个普 通节点更新路由和数据列表信息。进一步的,所述数据库服务器、文件服务器、命名服务器的ID分别为预设定的ID ; 所述普通节点包括一缓存池模块,用于将本节点的资源或需要转发的资源进行存储。一种P2P网络安全数据传输系统,其特征在于包括数据库服务器、文件服务器、命 名服务器以及多个普通节点;其中所述普通节点之间连接为chord环,每一所述普通节点 分别与所述文件服务器、命名服务器通过网络连接,所述文件服务器、命名服务器通过网络 分别与所述数据库服务器连接;其中所述命名服务器用于控制所述普通节点的ID分配,并将ID分配信息发送给所述 数据库服务器;所述文件服务器用于生成普通节点上文件资源的文件块编号并将编号存储到数 据库服务器中;以及根据普通节点的搜索条件查询所述数据库服务器,检索资源所在节点 及其完成情况,并为该普通节点与资源所在节点建立连接、进行资源或数据传输;所述数据库服务器用于存储文件块编号信息以及所述命名服务器发送的普通节点ID分配信息;所述普通节点用于数据的接收与发送,并向所述文件服务器和所述命名服务器发 送节点信息,所述文件服务器、命名服务器将接收的节点信息发送给所述数据库服务器。本发明的基本功能模块可分为系统管理模块、数据处理模块、消息队列模块、缓 存池模块、资源服务管理模块和数据传输模块。1系统管理模块从系统角度配置当前节点,并起到内核的作用,调控各个模块之间的交流。所包括 的主要功能有提供可扩展的消息处理机制,对不同种类型的消息,各个节点可以使用系统 的消息处理接口 -Message Handler来定义自己的消息器。除去这两个主要功能外,系统管 理模块的功能还包括(1)读取配置文件,获得当前节点的配置信息。包括的内容当前节点的类型、指 定的共享目录等。(2)保存当前内核的状态启动中、运行中、关闭中。(3)初始化内核。根据不同的节点类型来进行初始化,节点类型包括微型 节点(minipeer) —仅包含数据的传输功能的节点,不具备数据处理能力、完全节点 (full-featuredpeer) 一包含数据传输和数据处理的节点和聚合节点(rendezvous peer) 一负责将微型节点的数据汇集的节点。(4)重启内核。(5)关闭内核。(6)内核的功能根据从消息队列中接收到的消息,产生特定类型的xml消息,如 心跳消息,发现请求消息,发现响应消息等系统消息。(7)内核可以获得当前节点的全局ID。(8)加入组,隶属哪些组的标识信息只保存在rendezvous peer中。(9)退出组。(10)支持微型节点加入某聚合节点的管理。(11)支持微型节点退出某聚合节点的管理。(12)连接管理。管理当前建立的连接。(13)对各个模块提供日志支持。2消息队列消息队列包含发送队列、接收队列和死信队列。主要功能是提供消息接收队列和 消息发送队列,使得节点可以接收其他节点发送过来的消息,同时本节点向其他节点发送 消息;提供死信队列来保存消息的生存期过期或消息传递失败的消息。具体地,该模块包含 下面的功能(1)从系统管理模块得到运行时需要的各个参数,包括发送队列、接收队列和死信 队列的长度;消息的失效时间;消息失败重发的尝试次数等。(2)对于发送队列而言,当待发送的消息被封装好之后,由发送队列调用数据传输 模块的接口,将封装好的消息发送出去。(3)对于接收队列而言,当待接收消息被封装好之后,由接收队列调用数据传输模 块的接口,对封装好的消息进行接收处理。
6
(4)从本节点上收集不同终端或设备待发送的数据,如果数据存放于内存中,则将 相应内存中的数据转换为xml消息格式,放入发送队列等待发送。(5)从本节点上收集不同终端或设备待发送的数据,如果数据存放于文件中,则将 相应文件中的数据转换为xml消息格式,放入发送队列等待发送。(6)如果消息长期错误或者不完整,死信队列通过调用数据传输模块的接口,将错 误或者不完整的消息接收过来,试图解析不完整消息的内容,如果成功则转入发送队列进 行再次尝试发送;否则做删除处理(7)使用多个发送接收队列来支持不同的优先级,以保证高优先级的消息先行发 送或处理。(8)支持备份,软件系统做出的任何动作将会记录在备份文件上。(9)支持恢复,当软件系统出现异常错误时,可以从备份文件上进行事务回滚,来 恢复系统。3数据处理模块提供对系统数据的各种处理。数据来源包括本节点内部产生的数据和从其他对等 节点传输过来的数据。处理的流程为如果数据需要在本节点进行处理,就利用本节点的消 息处理器进行处理;否则直接转发到其他对等节点。具体地,该模块包含下面的功能(1)从系统管理模块得到运行时需要的各个参数(如消息处理器的类名,消息处 理器的初始化变量值等),用来初始化本节点的各个消息处理器。(2)判断从消息队列的接收队列中取出的某个消息是否属于自己处理,如果不属 于自己处理,则通过消息队列模块将消息发送出去。否则,如果该消息属于自己处理,则进 行步骤⑶。(3)判断该消息是否完整,如果不完整或者有错误,则产生出错消息,放入发送队 列,等待重新发送。如果到了时间周期,消息仍然不完整或者有错误,则按照相应的算法将 该消息放入到死信队列当中。(4)处理接收队列中接收到的消息,根据消息中的标识,如果接收到的数据原来的 形式是内存中的数据,则将xml消息格式转换为内存中的数据。(5)处理接收队列中接收到的消息,根据消息中的标识,如果接收到的数据原来的 形式是文件中的数据,将xml消息格式转换为文件块。(6)如果从另一节点发送过来消息并且该消息需要回执消息,则会产生回执消息。(7)对将要进行传输的数据进行加密处理,以确保数据传输的安全性。(8)按照一定的解密算法,对传输过来的数据进行数据的解密处理,以确保数据传 输的安全性。(9)对(4)或者( 步骤产生的数据根据系统管理模块中配置的消息处理器进行处理。4缓冲池模块缓冲池模块缓存了当前运行时暂存的数据,这些数据的来源可以是本节点产生的 数据,也可以是从其他对等节点传输过来的数据,本模块的作用是将一些需要反复发送和 接受的数据缓存下来,减少与其他对等节点的通讯次数,这样的数据包括但不局限于本节 点所拥有的资源块编号列表,本节点的说明性信息,本节点的邻接节点编号列表等。具体包括(1)从系统管理模块得到运行时需要的各个参数来对缓冲池进行初始化。读取的 参数包括缓冲池大小、内存中创建对象的最大值、某个元素消亡前的停顿时间等。( 支持多种可见度的缓存数据。分为私有,公有,组公有等。私有的数据只能本 节点自己可以读取、改写和更新。公有的数据可以供所有的节点和服务器进行读取、改写和 更新。组公有的数据可以供本组的所有节点进行读取、改写和更新。有的节点公布出的资 源只能部分被可见,在资源公布的时候会设定权限。如果权限设定为私有,则只能是自己来 查看该资源的基本信息。如果权限设定为组,则同一组内的节点可以查看并拥有该资源,如 果权限是完全公开的,则连网的所有机器节点都可以查询并拥有该资源。(3)支持多种类型的缓存数据,包括路由表的信息、节点描述信息等。(4)包括已知的其他节点资源服务的公告。在本节点上可以看到网络上的所有节 点公告fn息。(5)包括本节点的资源服务的公告。本节点在公布资源时,会将相应的描述公布出去。(6)管理公布,支持对公布进行增删改查。拥有资源的节点可以随时对公布出去的 资源进行增加、删除、修改和查询。(7)缓冲池支持备份。(8)缓冲池支持恢复。5资源服务管理模块包括资源管理和服务管理。本模块的主要功能是对本节点所能提供的资源和服 务进行管理。其中服务是本节点能够提供给其他节点的基于本节点的资源的操作。如 FileService 里面有一个操作是 GetFilekctionB於ectionID (long sectionID)指的是通 过资源的编号得到本地资源。本模块具体的功能如下(1)从系统管理模块得到运行时需要的各个参数来对本模块进行初始化。具体地, 读取参数包括本节点服务的类的名称、资源编号的算法的名称(目前支持MD5、SHAl和 SHA2三种编码方式)等。(2)获取本地所有指定目录下的资源列表,包括内存中的和文件中的。(3)对资源进行编号。(4)对系统服务进行编号。(5)对非系统服务进行编号。(6)获取本地所有的服务列表。(7)构造资源描述公告。(8)构造服务描述公告。(9)根据缓存池模块提供的接口,对缓存池中的公告信息有增加、删除、修改和查 询的功能。(10)读取指定内存中的数据。(11)读取指定文件的指定分块的数据,并修改与其对应的缓存池中的公告信息。(12)修改指定内存中的数据,并修改与其对应的缓存池中的公告信息。(13)修改指定文件的指导分块的数据,并修改与其对应的缓存池中的公告信息。
8
(14)增加一个文件,并修改与其对应的缓存池中的公告信息。(15)增加一个内存数据,并修改与其对应的缓存池中的公告信息。(16)删除指定内存中的数据,并修改与其对应的缓存池中的公告信息。(17)删除指定文件的指定分块的数据,并修改与其对应的缓存池中的公告信息。(18)资源的加密;(19)资源的解密;(20)判断联网节点是否为合法节点,如果发现节点被篡改,则将该篡改节点与网 络断开。6数据传输模块数据传输模块负责使用不同的传输方式进行数据传递。本模块的主要功能是提供 各个对等节点之间的通讯,可以支持TCP的通讯方式也可以支持UDP的通讯方式;同时对于 处在不同的NAT之后的对等节点提供了 NAT穿越的功能,保证各个节点的通讯可以正常进 行。(1)从系统管理模块得到运行时需要的各个参数。(2)发送消息。(3)接收消息。(4)身份认证。(5)支持不同的传输协议。(6)路由选择。与现有技术相比,本发明的积极效果是提高了基于P2P的数据传输的服务质量 (QoS)和安全性。具体的体现在下面几个方面1.数据及时性和完整性监测。由于本数据传输系统支持多种传输协议,而在使用 无连接的UDP协议进行数据传输的时候,数据的及时性和完整性检测就是必不可少的。本 发明对于数据及时性的具体检测方法为首先给节点间传输的消息打上时间戳。其次,当当 前节点(peer)和其他节点通过UDP发送数据后,立即启动对数据的及时性检测。第一个检 测周期只记录数据,不计算延迟,也就是记下当前发送数据的时间点。在这个周期内,计算 得出发送消息的最大时间戳备用。在接下来的检测中,用当前的周期的最大时间戳减去上 一个周期的最大时间戳,便可以得到当前周期内数据可以到达特定节点的时间长度。用这 个时间长度减去QoS检测周期,就得到当前周期的两个节点之间数据传输的时延。通过时 延的大小,来判断两个节点间数据传输的及时性。本发明对于数据完整性的检测分为两个 方面一个是在发送节点对数据进行消息封装的时候,就在消息内部加上一个MD5的校验 码,如果在接收节点检验正确,那么就验证了数据的完整性;另一个是对发送的消息进行消 息编号,如果接收节点收到的消息是连续的编号,那么就验证了消息的发送接收的完整性。2.负载均衡机制。随着节点的增多,由于待传输的数据可能在不同的节点上都存 在,因此如何选择合适的节点就决定了是否数据能够在网络中顺利的传输。本发明提出的 方法是一个改进的阻塞算法由于采用了 Chord环作为本系统的拓扑结构,因此节点能够 一直与固定数量的节点保持连接。每个节点会给其他若干节点提供上次服务,这些节点是 曾经提供给此节点最大下载速率的节点。并拒绝那些之前提供给此节点下载速率较慢的节 点。然后,每隔10秒钟,对这两种类型的节点列表进行更新。该算法可以使每个参与的节点
9尽量地给其他节点提供数据传输服务,只有这样它才能从其他节点处得到更好的服务。因 此,既激励了共享的节点,也惩罚了自私的节点,使得数据可以顺利的在本发明所提出的系 统中进行传输,不会因为节点的增多而崩溃。3. ID分配安全。ID分配是节点加入本发明的数据传输系统的重要步骤。ID的获 取关系着节点身份的获取、传输数据的恢复、资源存储位置和控制权等重要因素。因此,ID 分配安全是其他安全机制的基础。本发明采用的是改进后Chord的ID生成算法,输入采用 了节点的MAC地址,然后使用SHA-512得出其哈希值,作为输出得到一个512位的串。一 个MAC地址对应一个512的哈希串。全网使用统一的ID分配算法,防止出现ID碰撞,具 有统一性;生成算法由本发明中的命名服务器控制,普通数据传输的节点不能控制,具有封 闭性;由于引入了服务器来分配ID,因此对于重要ID可以控制获取该ID的节点,具有可控 性;节点不能通过频繁运行ID分配算法得到自己想要的ID,具有不可重复性。4.路由安全算法。本系统的路由信息均是通过普通节点与命名服务器之间的消息 交换完成。当普通节点A将与普通节点B建立连接的时候,通过向命名服务器发送路由查询 消息,从而得到需要的路由信息。路由攻击一般指的是攻击者作为DHT查找系统的参与者, 冒充正常节点把通过它的查找请求转发至不正确或不存在的节点,同时向其他节点发送不 正确的路由信息来破坏其他节点的路由表,从而导致整个网络系统不能进行正确的路由操 作。本发明的路由安全算法包括两个部分路由更新消息的安全和路由查询消息的安全。a)本发明的路由更新消息安全算法为了避免节点伪造其他节点身份向被攻击 节点发送路由更新信息,本发明采用了通过命名服务器将节点512位的字符串ID和节点 IP进行绑定的方式,因此当被攻击节点接收到路由更新的时候,可以通过ID和IP来验证 身份,避免了伪造的可能;为了避免恶意节点生成错误的路由更新消息毒害被攻击节点的 路由表,本发明采用了通过多个节点获取路由信息,即通过命名服务器,将路由信息(比如 普通节点A到普通节点B的路由信息)不仅仅传送到A和B上,也传送到从A到B的路径 节点上并在这些节点上缓存起来(比如普通节点C和普通节点D);这样下次从C到D建立 连接的时候,就不仅可以从命名服务器获得路由信息,也可以从缓存的A到B的路由信息中 得到C到D的路由信息,并对这些消息进行比对,从而避免了恶意节点的路由更新消息的攻 击οb)本发明的路由查询消息安全算法本算法的目的是节点根据路由转发规则,将 接收到的路由信息进行正确的转发。为此,本发明提出路由查询消息安全算法将普通节点 发送至命名服务器的路由查询消息,通过多条不相交的路径转发至命名服务器上,从而避 免了路由查询消息被拦截或者冒充的攻击。


图1本发明系统部署图;图2为系统整体功能框架;图3节点加入网络;图4节点进行资源搜索;图5节点进行数据传输;图6节点退出网络。
具体实施例方式1.本发明系统部署图如附图1所示,本系统部署一般包含三个服务器和多个节点。服务器之间通过消 息进行交互。节点之间构成一个chord环。数据库服务器、文件服务器和命名服务器与普 通节点的构成都如附图2所示,不同之处在于,数据库服务器中的消息处理所处理的消息 均为与数据的操作相关的消息处理,如AataSaveMessage消息里面包含有需要存储的数 据;DataDeleteMessage消息里面包含有需要删除的数据等。文件服务器中的消息处理所 处理的消息均为文件的定位,查找,传输相关的消息,如TileSectior^earchMessage消息 里面包含有需要查询的消息块编号;FileSectionTransferMessage消息里面包含有需要 传输消息块等。命名服务器的消息处理所处理的消息均为节点或者文件块的命名消息,使 用一个512位的字符串来标识节点或者文件块。处理的消息如AodeIDGenMessage消息用 来请求得到当前节点的编号;FileSectionGenMessage消息用来请求得到当前文件块的编 号等。普通节点根据功能不同将会加载不同的消息处理。服务器及节点构成,如附图2所示,包括六个模块系统管理模块、消息传输模块、 消息队列模块、数据处理模块、缓存池模块和资源服务管理模块。2.节点启动节点启动的过程也就是加入本发明的P2P的网络过程。每个节点需要向文件服务 器和命名服务器发送节点节点的信息,包括IP地址、端口号、MAC地址、资源列表、资源传 输完成情况、数据列表和数据传输完成情况。具体流程如附图3所示节点向文件服务器和 命名服务器发出连接请求,如果成功连接,就将本地的这些信息分别发送到两个服务器上。这里本发明的系统管理模块的职责是收集本节点的信息(包括IP地址、端口号、 MAC地址、资源列表、资源传输完成情况、数据列表和数据传输完成情况等)。输入为节点配 置文件;输出为上述信息。数据处理模块在这里的职责是将系统管理模块收集到的信息组装成系统消息 NodehfoMessage。输入为系统管理模块收集到的信息;输出为包含这些信息的两份目标地 址分别为文件服务器和命名服务器的消息一NodehfoMessage。消息队列模块在这里的职责是将两个NodehfoMessage放入到发送队列。输入 为两个NodehfoMessage消息;输出无。消息传输模块在这里的职责是将消息发送队列中的消息发送出去。由于消息传 输模块是自动到发送队列中获取消息。因此输入为发送队列。输出为消息发送成功与否 的标识。3.资源搜索资源搜索的过程是节点连接文件服务器,查找资源所在节点ID的过程。由于本发 明对资源采用了文件服务器对各个节点的资源进行管理,生成普通节点上文件资源的文件 块编号并将编号存储到数据库服务器中,因此本过程的第一步是节点和文件服务器建立连 接。然后,是根据搜索条件对文件服务器上存储在数据库服务器中的资源节点列表进行检 索,得到资源分布地存储在哪些节点上,及其完成情况。接着,就是将文件服务器的查询结 果构造成消息返回给节点。最后一步就是与资源所在的节点建立连接,进行资源或者数据传输。这里本发明的系统管理模块的职责是读取缓存模块的大小等配置参数,初始化 缓冲池。输入为节点配置文件;输出为配置参数。数据处理模块在这里的职责是将搜索条件构造成查询消息-QueryMessage。输 入为用户输入的查询条件;输出为包含这些条件的查询消息-QueryMessage。另外,数据处理模块也负责将文件服务器返回的查询结果消 息-QueryResultMessage进行解析,得到资源所在节点的ID和各个节点上的资源完成情 况。输入为QueryResultMessage ;输出为资源所在节点的ID和各个节点上的资源完成情 况。消息队列模块在这里的职责是将QueryMessage放入到发送队列。输入为 QueryMessage消息;输出无。另外,消息队列模块也负责接收文件服务器发送回来的QueryResultMessage。消息传输模块在这里的职责是将消息发送队列中的消息发送出去。由于消息传 输模块是自动到发送队列中获取消息。因此输入为发送队列。输出为消息发送成功与否 的标识。另外,消息传输模块也负责将文件服务器的消息传输到消息队列模块的接收队列 中。缓存池模块这里负责将本节点的资源或者需要转发的资源缓存下来的作用。4.数据传输数据传输的过程如附图5所示。本发明将资源进行了分片处理,每4KB作为一片, 每50片作为一个簇。因此,在进行数据或者资源传输之前,需要通过文件服务器确定普通 节点所拥有的资源或者数据所在的位置,然后得到需要传输的数据或者资源所在的节点 ID,与他们建立连接,传输数据。这里本发明的系统管理模块的职责是读取分片信息和簇信息(比如4KB每片, 50片作为一簇)。输入为节点配置文件;输出为配置参数。数据处理模块在这里的职责是对普通节点的数据进行处理得到未完成的片数和 簇数。同时,对从其他对等节点传输过来的消息进行解析,得到其中的数据。最后在数据或 者资源的片段接收完毕,需要将所有的数据进行组合得到完整的数据。消息队列模块在这里的职责是将待发送的数据放入到发送队列。将接收到的数 据放入到接收队列。消息传输模块在这里的职责是将消息发送队列中的消息发送出去。由于消息传 输模块是自动到发送队列中获取消息。因此输入为发送队列。输出为消息发送成功与否 的标识。5.退出网络退出网络的过程如附图6所示。主要流程为节点分别向文件服务器和命名服务 器发出退出消息QuitMessage。然后,两个服务器负责通知正在从该节点传输数据的各个节 点,使得他们能够更新路由和数据列表信息。最后,该节点退出。
1权利要求
1.一种P2P网络安全数据传输方法,其步骤为1)将普通节点连接为chord环;同时设置一命名服务器和一文件服务器;2)所述命名服务器分配所述普通节点的ID,并将ID分配信息发送给数据库服务器;3)所述普通节点向所述文件服务器和所述命名服务器发送节点信息,所述文件服务 器、命名服务器将接收的节点信息发送给所述数据库服务器;4)所述文件服务器对所述普通节点上的文件资源生成文件块编号并将编号存储到数 据库服务器中;5)所述文件服务器根据普通节点的搜索条件查询所述数据库服务器,检索资源所在节 点及其完成情况,并为该普通节点与资源所在节点建立连接、进行资源或数据传输。
2.如权利要求1所述的方法,其特征在于所述节点信息包括IP地址、端口号、MAC地 址、资源列表、资源传输完成情况、数据列表和数据传输完成情况。
3.如权利要求2所述的方法,其特征在于所述命名服务器根据普通节点的MAC地址,使 用哈希算法得出其哈希值,作为该普通节点的ID。
4.如权利要求1或2或3所述的方法,其特征在于所述数据库服务器上存储一资源节 点列表,所述数据库服务器根据搜索条件对所述资源节点列表进行检索,得到资源所在节 点及其完成情况。
5.如权利要求1或2或3所述的方法,其特征在于所述命令服务器将所述普通节点的 ID及其IP进行绑定,当某普通节点接收到路由更新请求时,查询所述命令服务器,通过请 求节点的ID和IP来验证请求节点的身份。
6.如权利要求1或2或3所述的方法,其特征在于所述文件服务器根据普通节点的搜 索条件查询所述数据库服务器,将该普通节点与资源所在节点的路由通过多条不相交的路 径转发给该普通节点。
7.如权利要求1所述的方法,其特征在于所述普通节点发送数据时,对发送数据进行 封装并加上一 MD5校验码,普通节点接收数据时根据封装数据的MD5码验证接收数据的完 整性。
8.如权利要求1所述的方法,其特征在于所述普通节点发送数据时,对发送数据进行 编号,普通节点检测接收数据的编号是否连续,验证接收数据的完整性。
9.如权利要求1或7或8所述的方法,其特征在于所述普通节点记录发送节点提供给 本节点的数据下载速率,优先为数据下载速率大的节点提供数据下载。
10.如权利要求1所述的方法,其特征在于所述普通节点退出系统时分别向所述文件 服务器和所述命名服务器发出退出消息,所述文件服务器和所述命名服务器通知正在从该 普通节点传输数据的各个普通节点更新路由和数据列表信息。
11.如权利要求1所述的方法,其特征在于所述数据库服务器、文件服务器、命名服务 器的ID分别为预设定的ID ;所述普通节点包括一缓存池模块,用于将本节点的资源或需要 转发的资源进行存储。
12.—种P2P网络安全数据传输系统,其特征在于包括数据库服务器、文件服务器、命 名服务器以及多个普通节点;其中所述普通节点之间连接为chord环,每一所述普通节点 分别与所述文件服务器、命名服务器通过网络连接,所述文件服务器、命名服务器通过网络 分别与所述数据库服务器连接;其中所述命名服务器用于控制所述普通节点的ID分配,并将ID分配信息发送给所述数据 库服务器;所述文件服务器用于生成普通节点上文件资源的文件块编号并将编号存储到数据库 服务器中;以及根据普通节点的搜索条件查询所述数据库服务器,检索资源所在节点及其 完成情况,并为该普通节点与资源所在节点建立连接、进行资源或数据传输;所述数据库服务器用于存储文件块编号信息以及所述命名服务器发送的普通节点ID 分配信息;所述普通节点用于数据的接收与发送,并向所述文件服务器和所述命名服务器发送节 点信息,所述文件服务器、命名服务器将接收的节点信息发送给所述数据库服务器。
13.如权利要求12所述的系统,其特征在于所述节点信息包括IP地址、端口号、MAC 地址、资源列表、资源传输完成情况、数据列表和数据传输完成情况。
14.如权利要求12或13所述的系统,其特征在于所述命令服务器将所述普通节点的 ID及其IP进行绑定,当某普通节点接收到路由更新请求时,查询所述命令服务器,通过请 求节点的ID和IP来验证请求节点的身份。
15.如权利要求14所述的系统,其特征在于所述文件服务器根据普通节点的搜索条件 查询所述数据库服务器,将该普通节点与资源所在节点的路由通过多条不相交的路径转发 给该普通节点。
16.如权利要求14所述的系统,其特征在于所述普通节点退出系统时分别向所述文件 服务器和所述命名服务器发出退出消息,所述文件服务器和所述命名服务器通知正在从该 普通节点传输数据的各个普通节点更新路由和数据列表信息。
全文摘要
本发明公开了一种P2P网络安全数据传输方法及其系统,属于网络通信领域。本方法为1)命名服务器分配普通节点的ID,并将其发送给数据库服务器;2)普通节点经文件服务器和命名服务器将节点信息发送给数据库服务器;3)文件服务器生成节点资源文件块编号并将编号存储到数据库服务器中;4)文件服务器根据搜索条件查询数据库服务器,并为该节点与资源所在节点建立传输连接。本系统包括数据库服务器、文件服务器、命名服务器以及多个普通节点;其中,所述普通节点之间连接为chord环,文件服务器、命名服务器通过网络分别与普通节点、数据库服务器连接。本发明可以进行大量数据、文件的传输,使得文件和数据可以安全、可靠、高效的传输到目的节点。
文档编号H04L29/08GK102065136SQ20101059516
公开日2011年5月18日 申请日期2010年12月10日 优先权日2010年12月10日
发明者孙薇, 戴健, 杜栓柱, 汪美玲, 肖红德 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1