一种数据传输方法和系统的制作方法

文档序号:8433758阅读:221来源:国知局
一种数据传输方法和系统的制作方法
【技术领域】
[0001]本发明涉及数据通讯技术领域,特别涉及一种数据传输方法和系统。
【背景技术】
[0002]HDFS (Hadoop Distributed File System, Hadoop 分布式文件系统)具有高容错性、高传输率和可以部署在低廉的硬件上等特点,适用于具有超大数据集的应用程序。HDFS包括名字节点(NameNode )和多个数据节点(DataNode ),其中,包含名字节点的服务器为名字服务器,包含数据节点的服务器为数据服务器。目前客户端和名字服务器与数据服务器的交互主要包括客户端写入文件到数据服务器和客户端从数据服务器读取文件,下面将分别进行介绍。
[0003]其中,目前客户端写入文件到数据服务器的过程,包括:
[0004]步骤Al、客户端向名字服务器发送包含文件的名称和大小的第一写入请求消息;
[0005]步骤A2、名字服务器根据所述文件的大小、以及数据服务器当前的剩余存储容量,确定将所述文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系,并将所述文件的名称、以及确定的划分策略和各数据块名称与数据服务器的对应关系发送给客户端;
[0006]步骤A3、客户端根据所述划分策略,将所述文件的名称对应的文件划分成数据块,并将包含所述数据块的数据和所述数据块的名称的第二写入请求消息发送给所述数据块对应的数据服务器;
[0007]步骤A4、数据服务器将客户端发送的数据块的数据进行存储,并保存数据块的名称和所述数据块的数据的存储地址的对应关系。
[0008]其中,目前客户端从数据服务器读取文件的过程,包括:
[0009]步骤B1、客户端向名字服务器发送包含文件的名称的第一读取请求消息;
[0010]步骤B2、名字服务器将所述文件的名称对应的文件包含的各数据块的名称与存储各数据块数据的数据服务器的对应关系发送给所述客户端;
[0011]步骤B3、客户端将包含所述数据块的名称的第二读取请求消息发送给所述数据块对应的数据服务器;
[0012]步骤B4、数据服务器根据数据块的名称,确定数据块的数据的存储地址,并到所述存储地址获取所述数据块的数据,向客户端发送所述数据块的数据。
[0013]目前客户端文件以块数据的形式存储在数据服务器中,而由于数据服务器中的块数据实际是存储在硬盘中,因此,其他客户端可以通过非法手段,使得数据服务器的硬盘丢失,从而获取所述数据服务器中存储的块数据,并根据所述块数据,得到客户端文件内容。
[0014]综上所述,目前数据服务器对客户端文件的保密程度比较低。

【发明内容】

[0015]本发明实施例提供的一种数据传输方法和系统,用以解决现有技术中存在的数据服务器对客户端文件的保密程度比较低的问题。
[0016]第一方面,本发明实施例提供的一种数据传输方法,包括:
[0017]所述名字服务器接收客户端发送的包含用户名、文件名和文件大小的写入请求消息;
[0018]所述名字服务器根据所述写入请求消息确定并返回加密密钥、指示所述客户端将所述文件名对应的文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系;以使所述客户端在按照所述划分策略划分出数据块后,将所述加密密钥以及所述数据块的数据和名称发送给所述数据块对应的数据服务器进行加密保存;以及
[0019]所述名字服务器接收客户端发送的包含用户名和文件名的读取请求消息;
[0020]所述名字服务器根据所述读取请求消息确定并返回对应的解密密钥、所述文件名对应的文件包含的各数据块的名称与存储各数据块数据的数据服务器的对应关系,以使所述客户端将所述解密密钥和所述数据块的名称发送给对应的数据服务器获取解密后对应的数据块的数据。
[0021]较佳地,所述名字服务器根据所述写入请求消息确定所述划分策略、以及各数据块名称与数据服务器的对应关系,包括:
[0022]所述名字服务器根据所述写入请求消息中包含的文件大小、以及数据服务器当前的剩余存储容量,确定将所述文件划分为数据块的划分策略、以及各数据块名称与数据服务器的对应关系。
[0023]较佳地,所述名字服务器根据所述写入请求消息确定所述加密密钥,包括:
[0024]所述名字服务器确定是否本地存储有所述写入请求消息中包含的用户名;
[0025]在确定本地存储有所述用户名时,向所述客户端发送密钥版本请求消息,接收所述客户端发送的针对所述密钥版本请求消息的密钥版本,确定是否本地存储有与所述用户名对应的所述客户端发送的密钥版本;以及,
[0026]在确定本地存储有与所述用户名对应的所述客户端发送的密钥版本时,根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述用户名和密钥版本对应的密钥,并将所述用户名和密钥版本对应的密钥,作为所述加密密钥;
[0027]所述名字服务器根据所述读取请求消息确定所述解密密钥,包括:
[0028]所述名字服务器根据本地存储的文件名和密钥版本的对应关系,确定所述读取请求消息中包含的文件名对应的密钥版本;
[0029]根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述读取请求消息中包含的用户名和所述密钥版本对应的密钥;并且,
[0030]将所述用户名和密钥版本对应的密钥,作为所述解密密钥。
[0031]较佳地,所述名字服务器在确定本地未存储所述用户名时,向所述客户端发送未注册提示消息,指示所述客户端向名字服务器发送包含用户名、密钥版本和密钥的注册消肩、O
[0032]较佳地,所述名字服务器在确定本地未存储与所述用户名对应的所述客户端发送的密钥版本时,向所述客户端发送密钥版本错误提示消息,指示所述客户端向名字服务器发送新的密钥版本。
[0033]较佳地,所述写入请求消息还包括密钥版本,所述名字服务器根据所述写入请求消息确定加密密钥,包括:
[0034]所述名字服务器在确定本地存储有所述用户名和密钥版本时,根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述用户名和密钥版本对应的密钥,并将所述用户名和密钥版本对应的密钥,作为所述加密密钥;
[0035]所述名字服务器根据所述读取请求消息确定所述解密密钥,包括:
[0036]所述名字服务器根据本地存储的文件名和密钥版本的对应关系,确定所述读取请求消息中包含的文件名对应的密钥版本;
[0037]根据本地存储的用户名、密钥版本和密钥的对应关系,确定所述读取请求消息中包含的用户名和所述密钥版本对应的密钥;并且,
[0038]将所述用户名和密钥版本对应的密钥,作为所述解密密钥。
[0039]较佳地,所述名字服务器确定所述加密密钥之前,还包括:
[0040]所述名字服务器接收所述客户端发送的包含用户名、密钥版本和密钥的注册消息,并本地存储所述注册消息中指示的所述用户名、密钥版本和密钥的对应关系;
[0041]所述方法还包括:
[0042]所述名字服务器接收所述客户端发送的至少一条包含用户名、密钥版本和密钥的新增密钥版本请求消息,并本地存储所述新增密钥版本请求消息中指示的所述用户名、密钥版本和密钥的对应关系。
[0043]第二方面,本发明实施例提供的一种数据传输方法,包括:
[0044]接收客户端发送的加密密钥、以及数据块的数据和名称,按照所述加密密钥对所述数据块的数据进行加密处理,保存加密处理后的所述数据块的数据,并保存所述数据块的名称和所述数据块的数据的存储地址的对应关系;以及
[0045]接收客户端发送的数据块的名称和解密密钥,确定所述数据块的名称对应的存储地址,确定所述存储地址中的数据,并按照所述解密密钥对所述数据进行解密处理,向客户端发送解密处理后的所述数据;
[0046]其中,所述数据块是所述客户端在接收到名字服务器发送的关于客户端文件的划分策略后,对所述文件进行划分得到的数据块;所述加密密钥和解密密钥是所述客户端在与所述名字服务器进行交互后确定的。
[0047]较佳地,对所述数据块的数据进行加密处理,包括:
[0048]基于高级加密标准AES加密方式,对所述数据块的数据进行加密处理;
[0049]对所述数据进行解密处理,包括:
[0050]基于AES解密方式,对所述数据进行解密处理。
[0051]第三方面,本发明实施例提供的一种数据传输系统,包括:
[0052]名字服务器,用于接收客户端发送的包含用户名、文件名和文件大小的写入请求消息;根据所述写入请求消息确定并返回加密密钥、指示所述客户端将所述文件名对应的
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1