传输数据的校验方法、装置及系统的制作方法_3

文档序号:9202498阅读:来源:国知局
由沙箱模拟的虚拟机来对模拟数据块进行校验。
[0055]步骤S22,在将待传输文件的数据块划分为η个数据段之后,通过第一传输通道将η个数据段依次传输至虚拟接收模块。优选地,可以以字节为单位将待传输文件的数据块划分为η个数据段,其中,数据段的大小为字节单位大小的数据字段。
[0056]具体的,如图3所示,在上述步骤S22中,用户发送待传输文件时,可以通过自定义的切割数量将待传输文件进行初步切割,将待传输文件进行切割生成m个数据块(数据块1、数据块2、……、数据块m),此处关键的是,在每个数据块传输之前或传输过程中,进一步的将数据块进行更加细粒化的分割,即将数据块进一步分割成η个数据段,例如,将数据块以一个字节为单位进行分割成,具体的,如果已知待传输文件自定义分割后的数据块为300个字节,此时可以将300字节的数据块在模拟数据块I中分割成300个I字节的数据段进行依次传输。这种将待传输文件在传输之前进行进一步细粒化的处理,使得传输出错率减低。
[0057]步骤S24,每传输一个数据段,生成一个对应的校验码,并将每个数据段对应的校验码依次通过第二传输通道发送至虚拟接收模块。具体的,以一个数据段为I字节为例,每传输I个字节,均需要通过校验通道对该I字节进行一次校验码的生成。
[0058]上述步骤S24中对应每个传输的数据段生成校验码的方法可以采用MD5校验算法或者任何文件校验码形式的校验算法。
[0059]步骤S26,虚拟接收模块对依次接收到的数据段依次进行校验,将校验成功的数据段通过第一传输通道进行转发,并将校验成功的数据段对应的校验码通过第二传输通道进行转发。
[0060]由上可知,在上述步骤S22-S26中,在将待传输文件的数据块划分为η个数据段之前,可以将待传输文件切割成m个数据块,并自定义每个数据块的大小。其中,每一个数据段在传输之前,如图3所示,还可以创建两个独立的数据传输通道,两个独立的传输通道中的第一传输通道用于依次传输η个数据段,两个独立的传输通道中的第二传输通道(即校验通道)用于传输数据块对应的校验码。上述虚拟接收模块按照数据段的传输次序依次进行本地校验,从而在本地验证待传输的文件是否存在错误。此处需要说明的是,上述方法步骤中,数据段和对应的校验码分别采用独立的传输通道进行传输,其中,第一传输通道为用户传输数据段的数据传输通道,第二传输通道为用户传输校验码的校验通道。
[0061]综上分析可知,本申请提供的上述方法实施例,发送客户端在向接收客户端传输数据之前,在发送客户端本地模拟一个虚拟接收装置,传输的数据段需要先经过本地的虚拟接收装置并进行验证后再进行对外传输,既虚拟接收装置用于将细粒化后的待传输数据段进行本地校验,同时使用两个独立的传输通道分别传输数据段和校验码,由于发送客户端的本地校验是实时的,且校验的数据段粒度较小,因此将传输前的本地文件校验结合传输过程的动态文件块校验来降低传输数据出错,可以实现较低的传输数据出错率。从而实现了降低传输文件出错风险的技术效果,进而解决了无法降低传输文件错误的风险的技术问题。
[0062]具体的,上述发送客户端在传输数据之前,在本地建立用于传输数据段对应的校验码的实时校验通道可以是一个独立的校验MD5内存通道,使得虚拟接收模块可以时刻对传输的数据段文件块进行内存校验,由于校验是实时的,因此可以尽可能较低传输数据出错。此处需要说明的是,为了尽可能降低风险上述方案将传输块尽可能分散切割得到传输的数据段,可以避免由于DNS劫持等原因导致的数据块错误。
[0063]本申请上述实施例中,虚拟接收模块用于模拟发送客户端与接收客户端之间的网络传输通道,其中,发送客户端的发送模块与虚拟接收模块之间采用网络传输协议进行通信,且发送模块与虚拟接收模块之间的传输通道包括第一传输通道和第二传输通道。
[0064]具体的,本申请上述实施例中的虚拟接收模块采用发送客户端的本地网络通信协议来模拟传输数据的交互过程以及校验过程。虚拟接收模块实现了在发送客户端本地对待发送的文件进行一次完整的数据校验过程,从而在保证了传输出去的数据段出错率低的情况下,同时验证发送客户端的本地网络是否正常。
[0065]此处需要进一步说明的是,发送客户端可以在本地内存中创建上述第一传输通道和第二传输通道,分别用于传输待传输的数据段和校验码。具有传输效率高、资源占有率小的优点。
[0066]优选地,本申请上述实施例中,步骤S24实现的每传输一个数据段,生成一个对应的校验码的步骤可以包括如下实施过程:
[0067]步骤S241,将η个数据段中当前进行传输的数据段保存在预设的存储空间中,生成该数据段对应的发送文件。
[0068]步骤S242,使用预定的校验算法对发送文件进行校验处理,生成当前进行传输的数据段对应的校验码。其中,预设的存储空间可以与η个数据段对应的数据块的大小相同。
[0069]具体的,如图3所示,以字节为单位对待传输文件分割的数据块进行进一步切割为例,例如,将300字节大小的数据块划分为300个I字节的数据段进行传输,每个字节的数据段为一个模拟数据块。下面就以300字节中的第一个字节进行传输和校验的过程为例进行详细说明:
[0070]在传输第一个I字节数据的过程中,系统首先可以获知当前第一个I字节数据是由300字节的数据块I划分而来的,因此,可以在本地创建一个用于存储该I字节数据的存储空间,该存储空间的大小可以为一个存储300字节大小的空间,优选的,可以将第一个I字节存储至该存储空间的第一分区中。在将上述I字节数据保存至上述存储空间之后可以获得一个发送文件,此时,系统使用校验算法对上述发送文件进行校验处理生成一个对应的校验码,例如,采用MD5校验算法对发送文件进行校验处理生成MD5校验码,此处校验算法只是举例说明。
[0071]本申请上述各个实施例中,在步骤S26执行将校验成功的数据段通过第一传输通道进行转发,并将每个数据段对应的校验码通过第二传输通道进行转发的步骤之后,还可以包括如下实施步骤:
[0072]步骤S261,与发送客户段具有网络通信关系的接收客户端依次接收上述发送客户端转发的各个数据段,并接收每个数据段对应的校验码。
[0073]其中,由于数据段和校验码是分别通过两个独立的传输通道进行传输,因此,接收客户端会分别依次接收到数据段以及对应的校验码,此时接收到的数据段可以是在发送客户端已经进行了一次校验后的传输数据。
[0074]步骤S262,接收客户端在本地依次生成每个数据段的校验值。
[0075]步骤S263,接收客户端每生成一个数据段的校验值之后,将数据段的校验值与对应的接收到的校验码进行匹配,如果匹配一致,则保存数据段,如果匹配不一致,则告知发送客户端数据段发送失败。
[0076]由上可知,本申请上述步骤S261至步骤S263实现了接收客户端的接收后校验。具体的,发送客户端将传输文件按照分割后的数据段依次通过任意网络传输至接收客户端时,接收客户端生成一个接收机数据模块,用于接收数据段(例如,依次接收I字节数据)和对应的校验码,然后根据数据段在本地生成数据段对应的校验值,通过判断校验码与校验值是否一致来确定当前接收到的数据段是否成功。
[0077]具体的,由于接收客户端的接收到的校验码与本地生成的数据段对应的校验值理论上应该一致,因此利用校验通道获得的校验码进行校验,如果校验正确,则将当前接收到的数据段保存至内存或本地存储,如校验错误,则通过校验通道告知发送客户端,重新发送该数据段。以字节为单位传输的数据进行校验为例,在上述过程中,校验值是指定数据块每接收I个字节产生的新校验码。
[0078]优选地,在本申请上述实施例中,在将校验成功的数据段通过第一传输通道进行转发的同时,虚拟接收模块同时将用于保存校验成功的数据段对应的存储空间值通过第一传输通道进行转发;其中,上述实施例中步骤S262和步骤S263实现的接收客户端在本地依次生成每个数据段的校验值,并在接收客户端每生成一个数据段的校验值的步骤可以包括如下实施方案:
[0079]首先,接收客户端读取当前接收到的数据段以及当前接收到的数据段对应的存储空间值。
[0080]然后,在根据当前接收到的数据段对应的存储空间值创建一个校验存储空间之后,将当前接收到的数据段保存至校验存储空间,生成当前接收到的数据段对应的接收文件。
[0081]最后,使用预定的校验算法对接收文件进行校验处理,生成当前接收到的数据段对应的校验值。
[0082]由上述方案可知,由于本申请提供的一种可选实施例中,由于发送客户端会在将η个数据段中当前进行传输的数据段保存在预设的存储空间之后,将存储了当前数据段的存储空间作为一个整体的发送文件进行校验处理,因此,接收客户端在做接收后校验的过程中,需要首先创建一个与发
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1