局域网内的数据分发方法、服务器及终端设备的制造方法_3

文档序号:8248226阅读:来源:国知局
抛弃不能得到正确待分发数据的数据单元,而继续接收服务器反复发送的多个数据单元,从而同样可以使得出于各种原因导致的数据单元丢失或错误均可以在下一轮的数据单元发送过程中重新接收,以进一步保障通信的可靠性。
[0108]在上述两种方式均失效的情况下,也可以向服务器或其他终端设备发送对应的数据单元传输请求,一方面可以通过收集缺失的数据单元来获得待分发数据,另一方面也可以重新以其他传输方式来获取待分发数据(在上述方法的传输的可靠性可以得到保证时,这种情况发生的概率会相当小,因而在总体上不会大幅度增加通信网络的负荷)。
[0109]更具体地,上述多个原始数据单元由多个大小相同的数据块分得,所述多个相同大小的数据块由多个文件传输单元分得,每一所述文件传输单元包括由所述待分发数据分得的文件片段以及与该文件片段对应的校验信息,生成所述校验信息的数据校验编码算法包括文件完整性校验编码算法和/或循环冗余校验编码算法,
[0110]上述步骤4031:当接收到的数据单元的数目达到预设值时,所述利用前向纠错编码算法根据接收到的多个数据单元得到所述待分发数据,可以具体包括图4中未示出的下述步骤:
[0111]步骤40311:当与任一数据块对应的接收到的原始数据单元和校验数据单元的数目之和达到预设值时,利用前向纠错编码算法根据所述原始数据单元和校验数据单元得到该数据块;
[0112]步骤40312:当与任一文件传输单元对应的多个数据块均已得到时,根据所述多个数据块还原该文件传输单元,并利用文件传输单元中的所述校验信息对该文件传输单元进行校验。
[0113]采用上述方式利用文件传输单元中的校验信息以实现对接收数据的校验,保障传输过程的可靠性。
[0114]对应于校验失败的情形,可以在任一文件传输单元的校验失败时,使终端设备执行以下操作中的任意一项或多项:
[0115]利用前向纠错编码算法根据与该文件传输单元对应的多个数据块对该文件传输单元进行纠错;
[0116]抛弃已经接收到的所有与该文件传输单元对应的数据块,并继续接收与该文件传输单元对应的数据块;
[0117]向其他终端设备或服务器发送包括该文件传输单元的标识的传输请求,以使其他终端设备或服务器回传该文件传输单元。
[0118]首先,在服务器重复发送多个数据单元时,可以抛弃校验失败的数据,并继续接收与该文件传输单元对应的数据块,也可以尝试从其他通信节点获取校验失败的文件传输单元,以减少低质量通信链路对传输过程所造成的影响。当然,还可以利用上述前向纠错编码算法根据接收到的多余数据单元对文件传输单元进行纠错,以尽可能地保障整个传输过程的可靠性。
[0119]更具体地,在本发明一个较佳的实施例中,利用上述局域网内的数据分发方法进行补丁文件传输的具体流程如下所述(设待传输的补丁文件以及作为传输对象的多个终端的内网IP地址均是给定的):
[0120]在文件层次上,主机对于待传输的补丁文件(或者补丁文件目录),会先进行分片处理,比如将所有待传输的补丁文件分为多个大小相同的文件片段(当然有个别文件片段的大小可能会不同,其可以通过如添加空白数据的常用手段进行规范化或者特殊处理,下文的类似情况均不再赘述)。为了保障通信的可靠性,可以在文件片段中添加校验信息,比如根据文件片段生成的文件完整性校验编码和循环冗余校验编码,以生成文件层次上的文件传输单元。对于每个终端而言,在得到每个文件传输单元后,可以利用校验信息校验得到的文件片段与原始文件片段的一致性。若存在不一致的情况,可以抛弃该文件传输单元并重新传输;若校验可以顺利通过,则将得到的文件片段存储,待得到所有文件片段后再通过分片的逆向操作得到原始的补丁文件。以上则为主机与终端在文件层次上的处理流程。
[0121]在数据层次上,主机将每一文件传输单元分为多个大小较小的、适于前向纠错编码的数据块,比如说大小均为64KB的多个数据块。对于每一数据块,再根据前向纠错编码生成多个相同大小的原始数据单元和校验数据单元,比如64个1024字节的原始数据单元和64个1024字节的纠错数据单元(可以使原始数据单元的个数与校验数据单元的个数相同以得到较佳的文件传输可靠性和较小的数据冗余度)。在进行前向纠错编码时,所基于的编码标准可以选用Reed-Solomon编码标准。基于前向纠错编码的原理,对于上述总数为128个的数据单元,接收数据单元的终端可以容忍最多64个原始数据单元或校验数据单元同时丢失,即接收到这些数据单元的终端可以通过对应的数据还原算法根据总数至少为64的原始数据单元和校验数据单元得到原始的数据块。以上则为主机与终端在数据层次上的处理流程。
[0122]在传输层次上,主机以IP多播的通信方式将与每一数据块对应的多个数据单元传输给终端(位于通信链路上的每一数据包包括加了协议信息头的数据单元),终端则通过接收接收到的数据单元为还原数据块做准备。
[0123]具体的,主机可以将原始数据单元或校验数据单元作为通信协议头的负载同时发送给指定的多个终端,并在发送完一轮后紧接着发送下一轮,无限循环下去直到主机主动终止这一过程。即:当发送完一个数据单元后紧接着发送下一个数据单元直到整个数据块发送完毕,当发送完一个数据块的所有数据单元后紧接着发送下一个数据块直到整个文件传输单元发送完毕,当发送完一个文件传输单元的所有数据块后可以再重新发送这一文件传输单元中的所有数据块,直到主机主动终止这一过程。当然,上述IP多播的通信协议可以有很多种,比如异步分层编码协议等等,但这些协议都满足同一个基本特征:通信过程的整个链路上只存在一份数据,而不需要同时传输多份相同的数据。
[0124]同时,主机可以采用如下方式控制终端的文件传输过程:在通信协议头中加入“正在发送”、“即将停止”和“停止发送”三类标识,分别代表“当前文件传输单元是新发送的,终端应当接收”、“当前文件传输单元已经发送完毕,若终端已经收全则可以停止接收”和“终端应立即停止接收”。主机在发送文件传输单元时会先给数据单元添加“正在发送”的标识;在已经发送完该文件传输单元的所有数据块的所有数据单元之后、在停止发送数据单元之前,给数据单元添加“即将停止”的标识;并在最终停止发送时,给数据单元添加“停止发送”的标识。相应地,若终端接收到带有“正在发送”标识的数据单元,则按照通信协议头中的信息将接收到的数据单元存放到与该数据单元的标识对应的位置,并在接收到足够的数据单元后通过数据还原算法来还原数据块;若终端接收到带有“即将停止”标识的数据单元,则检测是否已经得到了该文件传输单元中的所有数据块,若是则停止接收;若终端接收到带有“停止发送”标识的数据单元时,则立刻停止接收并进行意外处理(例如向附近的通信节点或主机请求重新传输没有成功接收的文件传输单元)。
[0125]以上为主机与终端在传输层次上的处理流程。
[0126]可见,本发明实施例的技术方案分别在文件层次、数据层次和传输层次上说明了上述方法的【具体实施方式】,不仅实现了局域网内的数据分发,还进一步使得整个通信链路上只存在至多几份同样的数据,因而大大减少了数据分发过程对通信资源的占用,降低了通信网络的负荷。
[0127]基于同样的发明构思,本发明实施例提供了一种服务器,参见图5所示出的结构框图,该服务器包括:
[0128]接收装置51,用于接收数据分发请求,所述数据分发请求包括待分发数据的信息以及多个终端设备的标识;
[0129]生成装置52,用于根据所述接收装置51接收到的数据分发请求中的待分发数据的信息获取所述待分发数据,并根据所述待分发数据生成多个数据单元;
[0130]发送装置53,用于以多播的通信方式将所述生成装置52生成的多个数据单元发送给与所述多个终端设备的标识对应的多个终端设备,以使所述多个终端设备根据接收到的所述多个数据单元得到所述待分发数据。
[0131]其中,上述生成装置可以包括图5中未示出的:
[0132]获取模块521,用于根据所述接收装置51接收到的数据分发请求中的所述待分发数据的信息获取所述待分发数据;
[0133]分割模块522,用于将所述获取模块521获取到的待分发数据分为多个原始数据单元;
[0134]计算模块523,用于利用前向纠错编码算法根据所述分割模块522分得的多个原始数据单元得到多个校验数据单元,以得到包括多个原始数据单元和多个校验数据单元的多个数据单元。
[0135]相应地,上述前向纠错(Forward Error Correct1n,FEC)编码算法可以说是一种增加传输数据冗余度来提高传输可靠性的算法。通过该算法,终端不需要接收到服务器所发送的所有数据单元,也可以还原出服务器所发送的全部原始数据,即通信过程中可以允许丢包。同时,接收到的多个数据单元还可以用于对接收到的原始数据进行纠错,以进一步提高传输过程的可靠性。
[0136]进一步地,上述分割模块522可以包括图5中未示出的:
[0137]分割子模块5221,用于将所述获取模块521获取到的待分发数据分为多个文件片段;
[0138]生成子模块5222,用于利用数据校验编码算法根据所述分割子模块5221分得的文件片段生成与每一文件片段对应的校验信息,所述数据校验编码算法包括文件完整性校验编码算法和/或循环冗余校验编码算法;
[0139]添加子模块5223,用于在每一所述分割子模块5221分得的文件片段中添加所述生成子模块5222生成的与该文件片段对应的校验信息,得到多个文件传输单元;
[0140]相应地,所述分割子模块5221还用于将每一所述添加子模块5223得到的文件传输单元分为多个大小相同的数据块,并将每一所述数据块分为多个原始数据单元。
[0141]采用上述方式利用文件传输单元中的校验信息以实现对接收数据的校验,保障传输过程的可靠性。
[0142]另外,可选地,上述发送装置53可以进一步用于以多播的通信方式重复发送所述生成装置生成的多个数据单元给待接收数据的多个终端设备直至满足预设条件。即,可使服务器反复发送多份相同的多个数据单元,使得出于各种原因导致的数据单元丢失或错误均可以在下一轮的数据单元发送过程中重新接收,以进一步保障通信的可靠性。
[0143]此外,本实施例的服务器可执行前述的图1至图3所示的方法实施例中的流程,本实施例不在此进行详述。
[0144]基于同样的发明构思,本发明实施例提供了一种终端设备,参见图6所示出的结构框图,该终端设
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1