当前位置: 首页 > 专利查询>南京大学专利>正文

一种基于纠删码的RDMA网络数据传输方法技术

技术编号:19125926 阅读:351 留言:0更新日期:2018-10-10 07:25
本发明专利技术公开了一种基于纠删码的RDMA网络数据传输方法,所述方法包括以下步骤:(1)发送端获取应用的数据,将数据切分成固定大小的数据帧,再将每一帧数据切分为k个大小相同的数据块,然后发送给接收端;(2)若在指定时间阈值内还有数据块没有到达接收端,则发送端对这k个数据块编码生成m个校验块,将校验块发送给接收端;(3)接收端接收到这k+m块中的任意k个就可以恢复出一帧数据,当收到所有的数据帧就完成了一次数据传输。本发明专利技术通过纠删码生成冗余数据让接收端不用等待延迟路径上的数据包,从而降低传输延迟;通过纠删码硬件卸载,不增加CPU的计算开销。

【技术实现步骤摘要】
一种基于纠删码的RDMA网络数据传输方法
本专利技术属于网络
,具体涉及一种基于纠删码的RDMA网络数据传输方法。
技术介绍
面对云计算、大数据、人工智能计算等高并发低延时的应用,传统的TCP/IP软硬件架构无法满足需求。因为TCP/IP软硬件架构的多次内存拷贝、中断处理,上下文切换、复杂的TCP/IP协议处理、存储转发模式和丢包导致了过高的传输时延和额外的CPU计算开销。远程直接数据存取(RemoteDirectMemoryAccess,RDMA)作为TCP/IP的一个互补技术,提供直接访问远程机器上的虚拟内存的消息服务。由于RDMA网卡可以直接拷贝数据,所以可以绕开复杂的网络协议栈,并且最小化操作系统的参与。这种设计实现了数据传输的延迟、高吞吐、并降低了CPU的开销。现代的数据中心通常由成百上千的服务器组成,内部需要TB级别的双向带宽来发送数据。为了满足这样的网络需求并降低开销,大多数的数据中心采用Clos拓扑结构的网络(通常三层甚至更多),水平地扩展网络容量。这些网络使用交换机来替换具有大量网路端口的路由器。图1是一个典型的Clos结构的数据中心网络的拓扑。数据中心服务器运行着大量的云服务。这些服务产生了多种多样的流量模式。这些不同的数据流对网络性能有不同的要求,其中大流传输的数据量大,对带宽要求高;小流传输的数据量小但一般都携带有控制信息,对传输延时要求较高。大流和小流在网络中混合传输的时候,小流可能因为调度到大流之后传输而产生很高的延时。如果采用细粒度的传输,将大流切分成固定大小的小流进行传输,可以避免上述问题,而且大流切分以后还可以通过数据中心中RDMA网络的多路径并行传输,从而降低数据的传输时延。但是与此同时,这也带来了问题:一个数据流的完成时间由最后到达的数据块决定,会产生长尾效应;而且接收方需要实现一个复杂的排序算法来重排出原始数据。
技术实现思路
专利技术目的:基于现有技术的不足,本专利技术提出一种基于纠删码的RDMA网络数据传输方法,通过细粒度传输和多路径并行传输降低传输时延,并利用纠删码消除网络传输的长尾效应和简化接收端的重排序操作,同时利用RDMA网卡的纠删码硬件卸载计算纠删码,降低CPU计算开销。技术方案:本专利技术所述的一种基于纠删码的RDMA网络数据传输方法,包括以下步骤:S1、发送端获取应用的数据,将数据切分成固定大小的数据帧,再将每一帧数据切分为k个大小相同的数据块,然后发送给接收端;S2、若在指定时间阈值内还有数据块没有到达接收端,则发送端对这k个数据块编码生成m个校验块,将校验块发送给接收端;S3、接收端接收到这k+m个数据块中的任意k个时,恢复出一帧数据,当接收端收到所有的数据帧时,就完成了一次数据传输。进一步地,所述步骤S1包括:发送端将应用内存中的数据按照帧大小逐个拷贝到缓冲区中,并为这一帧数据分配一个帧号,每发送一帧数据帧号都会加一。将一帧数据切分为k个数据块,每一个数据块的大小为block_size个字节。然后用k个QP并行地将这些数据块发送给接收端。然后将这个数据帧加入到定时器的事件序列中。所述步骤S2包括:发送端为每一帧数据设置一个定时器,超时后对数据帧计算纠删码,将校验块发送给接收端。定时器模块检查每一个发送的数据帧是否超时,如果超时后k个数据中还有没成功到达接收端,则可能出现了延迟,这时通过纠删码模块对这一帧数据进行编码,生成m个校验块,然后调用数据传输模块用另外m个QP将它发送给接收端。所述步骤S3包括:接收端接收到数据块后解码出数据帧。接收端收到一个数据块以后,通过RDMA的Writewithimmediate操作的立即数识别出它属于哪个数据帧,根据接收的数据块的QP获知是这个数据帧中的哪一个数据块或者校验块,当收集到一个数据帧的数据块加校验块的总数达到k个的时候,通过纠删码的解码得到这一帧数据的原始内容,最后将这一帧数据添加到已接收数据的队列中,等待应用程序读取。进一步地,接收端将接收到的所有数据帧排序成原始数据,完成接收。接收端按照帧号逐个读取已经接收到的数据帧,接收端用一个变量read_pos记录接下来要读取的数据帧的帧号,读取数据分为阻塞式和非阻塞式,在阻塞式下应用程序一直等待直到已接收的数据队列中出现帧号为read_pos的数据帧,在非阻塞模式下,如果在已接收的数据队列中没有帧号为read_pos的数据帧就直接返回,应用程序从系统的接收缓冲区读取完一帧数据以后,将read_pos加一,然后读取下一帧数据,直到用户的缓冲区满或者遇到一个数据传输的最后一帧数据。有益效果:相比于现有技术,本专利技术具有以下优点:1、本专利技术使用纠删码将数据切分为大小相同的数据帧,再将每一帧数据切分为k个大小相同的数据块,将数据块发送给接收端,对这k个数据块计算纠删码,生成m个校验块,再将k个数据块发送给接收端。接收端只需要接收这k+m个块中的k个就可以恢复出数据,而不需要等待所有的数据块,通过数据冗余降低传输延迟。2、为了降低编码的CPU计算开销,本专利技术使用RDMA网卡的纠删码硬件卸载功能,使用硬件计算纠删码,在使用纠删码的时候不增加CPU的计算开销。3、本专利技术使用系统码编码方案,系统码中包含有原始数据信息,当k个数据块都先于校验块到达接收端的时候,可以直接得到原始数据,不需要解码计算,降低解码开销。4、本专利技术系统使用延迟编码的策略,网络中数据的延迟和丢失相对是较少发生的,通过设定一个时间阈值,只有当在超时过后还有数据块没有成功到达接收端的时候,再计算校验块并发送,进一步降低编码开销。5、本专利技术提出了一种基于纠删码的重新排序的算法。在发送端将数据分片,然后计算纠删码,将数据块和校验块通过多路径并行传输的时候,因为不会出现数据丢失或无限期等待的情况,所以接收端可以利用这个特点简化重新排序的算法。附图说明图1是使用Clos架构的数据中心的网络拓扑图;图2是根据本专利技术实施例的传输系统结构图;图3是根据本专利技术实施例的网络传输的数据帧结构图;图4是RDMA纠删码计算硬件卸载的异步模型示意图。具体实施方式下面结合附图对本专利技术的技术方案作进一步说明。图1是一个典型的Clos结构的数据中心网络的拓扑。机架上的交换机(ToR)通过d0个10G的链路连接机架(Rack)上的服务器,然后通过d1个40G的链路连接到聚合交换机(Agg)上。每一个聚合交换机连接d2个机架上的交换机(ToR)和d3个主交换机(Spine)。所以,同一汇聚区域(pod)内的主机之间有d1条同样的路径,跨越主交换机的不同的区域之间有d1*d3条同样的路径。比如,当d1=d3=8的时候,这样的路径有64条。充分利用这些平行的路径,将数据流切分为细粒度的数据块进行并行传输,能够有效地加速节点间的数据传输,降低数据传输的网络时延。本专利技术的数据传输方法主要包括以下步骤:(1)发送端获取应用的数据,将数据切分成固定大小的数据帧,再将每一帧数据切分为k个大小相同的数据块,然后发送给接收端;(2)若在指定时间阈值内还有数据块没有到达接收端,则发送端对这k个数据块编码生成m个校验块,将校验块发送给接收端;(3)接收端接收到这k+m块中的任意k个就可以恢复出一帧数据,当收到所有的数据帧就完成了一次数据传输。在一个实施例中,本文档来自技高网
...
一种基于纠删码的RDMA网络数据传输方法

【技术保护点】
1.一种基于纠删码的RDMA网络数据传输方法,其特征在于,所述方法包括以下步骤:S1、发送端获取应用的数据,将数据切分成固定大小的数据帧,再将每一帧数据切分为k个大小相同的数据块,然后发送给接收端;S2、若在指定时间阈值内还有数据块没有到达接收端,则发送端对这k个数据块编码生成m个校验块,将校验块发送给接收端;S3、接收端接收到这k+m个数据块中的任意k个时,恢复出一帧数据,当接收端收到所有的数据帧时,就完成了一次数据传输。

【技术特征摘要】
1.一种基于纠删码的RDMA网络数据传输方法,其特征在于,所述方法包括以下步骤:S1、发送端获取应用的数据,将数据切分成固定大小的数据帧,再将每一帧数据切分为k个大小相同的数据块,然后发送给接收端;S2、若在指定时间阈值内还有数据块没有到达接收端,则发送端对这k个数据块编码生成m个校验块,将校验块发送给接收端;S3、接收端接收到这k+m个数据块中的任意k个时,恢复出一帧数据,当接收端收到所有的数据帧时,就完成了一次数据传输。2.根据权利要求1所述的一种基于纠删码的RDMA网络数据传输方法,其特征在于,所述步骤S1包括:发送端将应用内存中的数据按照帧大小逐个拷贝到缓冲区中,并为这一帧数据分配一个帧号,每发送一帧数据帧号都会加一;然后将一帧数据切分为k个数据块,用k个QP并行地将这些数据块发送给接收端。3.根据权利要求1所述的一种基于纠删码的RDMA网络数据传输方法,其特征在于,所述步骤S2包括:发送端为每一帧数据设置一个定时器,超时后对数据帧计算纠删码,将校验块发送给接收端。4.根据权利要求3所述的一种基于纠删码的RDMA网络数据传输方法,其特征在于,所述步骤S2具体为:定时器模块检查每一个发送的数据帧是否超时,如果超时后k个数据中还有没成功到达接收端,则...

【专利技术属性】
技术研发人员:易怀杰叶保留陆桑璐
申请(专利权)人:南京大学
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1