CN104484295B - 并行计算机系统中基于接收方滑动窗口的数据传输方法 - Google Patents
并行计算机系统中基于接收方滑动窗口的数据传输方法 Download PDFInfo
- Publication number
- CN104484295B CN104484295B CN201410782208.3A CN201410782208A CN104484295B CN 104484295 B CN104484295 B CN 104484295B CN 201410782208 A CN201410782208 A CN 201410782208A CN 104484295 B CN104484295 B CN 104484295B
- Authority
- CN
- China
- Prior art keywords
- message
- rdma
- window
- node
- receiving
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4204—Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种并行计算机系统中基于接收方滑动窗口的数据传输方法,目的是保证现有并行计算机系统设计中基于乱序和不可靠网络的RDMA传输数据的完整正确性。技术方案是先在发送节点和接收节点间建立连接,在接收节点设置接收窗口,接收窗口只记录接收RDMA报文的编号,不对进入接收窗口的RDMA报文进行缓存;发送节点向接收节点发送RDMA报文并响应接收节点发回的重传请求报文,同时接收节点接收报文编号位于接收窗口之内的RDMA报文,并将RDMA报文中的数据写入接收节点的内存中;发送节点收到了接收节点发送的RDMA完成响应报文,发送节点结束本次RDMA传输。本发明相比于现有方法能够减少硬件资源开销,降低重传开销,提高传输的效率。
Description
技术领域
本发明涉及并行计算机系统中,在两个计算节点之间进行内存数据搬移的方法,特别是基于乱序和不可靠网络实现计算节点间基于接收方滑动窗口的数据传输方法。
背景技术
并行计算机系统通常是由多个计算节点(简记为节点)和互连网络组成,节点由处理器、网络接口和内存组成,节点通过网络接口进行数据的发送接收,节点间通过互连网络进行通信。并行计算机系统中,一种基本的通信模式是在两个节点(记为发送节点和接收节点)间的内存中进行数据拷贝,也就是发送节点将本节点内存区域中的数据写入到接收节点的指定内存区域中,这种通信模式通常称为远程直接内存访问(Remote Direct MemoryAccess,RDMA)。
RDMA通信需要依赖并行计算机的互连网络完成,一般来说,一次RDMA传输的数据量很大,在互连网络上进行数据传输时,需要将一次RDMA传输拆分成多个报文,各个报文独立地由发送节点传输到接收节点。
互连网络中,为了提高网络的传输性能,在两个节点间可以设计多条路径,设计路由算法在发送节点和接收节点间的多条路径中选择某一条路径进行报文传输。路由算法考虑的因素一般包括:路径负载平衡、死锁避免、路径延迟等。由于多条路径的存在,发送节点向接收节点发出的多个报文,到达接收节点的顺序可能与发送节点发出的顺序不一致,也就是存在乱序传输的特点。
大规模并行计算机系统中,互连网络的规模通常很大,在实现上,难以保证互连网络的可靠性,例如,网络中的某条通路可能会断开。不可靠的互连网络造成的结果是发送节点向接收节点传输的报文,不一定能够最终到达接收节点。
从节点上运行的软件看来,RDMA传输的数据应该是正确完整的。如何基于乱序和不可靠网络实现快速正确的RDMA传输是并行计算机系统设计中的重要问题之一。目前现有的RDMA传输方法主要有两类:
1 基于发送节点滑动窗口的RDMA传输方法
采用这种方法的主要是美国Cray公司并行计算机系统,发送节点将已经发出、但还未收到响应的报文保存在一个缓冲区中,称为发送滑动窗口,发送滑动窗口的大小代表在没有收到接收节点确认信息的情况下发送节点最多可以发送的报文个数,一般根据设计需要设置发送滑动窗口的大小。采用基于发送节点滑动窗口的RDMA传输方法进行一次RDMA数据传输流程如下:发送节点向接收节点发送报文,同时将该报文保存在发送滑动窗口中,启动硬件上的超时计数器,如果发送滑动窗口中的报文超时还未收到接收节点返回的响应报文,则发送节点将重新向接收节点发送该报文;接收节点接收到报文后,向报文的发送节点返回表明已经接收成功的响应报文;发送节点一旦接收到响应报文,就将响应报文所对应的发送报文从发送滑动窗口中移除;如果发送节点的发送滑动窗口满,则发送节点暂停向接收节点发送报文,直到有报文从发送滑动窗口中移除后再恢复报文的发送;发送节点将一次RDMA传输的所有报文发送完成,并且收齐了所有的响应报文后,一次RDMA传输操作完成。
这类方法存在如下缺点:1)由于接收节点需要为每个报文向发送节点返回响应报文,因而网络中响应报文的数量很多,容易引起网络拥塞;2)发送滑动窗口需要设置存储空间对每一个发送报文进行缓存,只有收到接收节点确认信息时才将报文从发送滑动窗口中移除,消耗芯片上的存储器资源,因而硬件开销比较大。
2 基于接收方计数器的方法
采用这种方法的主要是天河系列计算机系统,采用基于接收方计数器的方法进行一次RDMA数据传输流程如下:发送节点向接收节点进行RDMA传输时,首先告知接收节点本次RDMA传输中所包含的报文总数,然后才进行报文的传输;接收节点对收到的报文进行计数,当计数器达到报文总数时,接收节点向发送节点返回响应报文,告知发送节点所有的报文都收齐;在接收节点上,为报文计数器设置超时机制,当计数器的值超过一定时间还未收齐报文时,将通知发送节点重新发送本次RDMA传输的报文。
这类方法存在的缺点是,当接收节点的计数器超时后,要求发送节点将此次RDMA传输的所有报文全部重发,重发的报文中可能大部分已经被接收节点成功接收到,因此,当发送失败需要重传时此类方法重传开销大、易引起网络拥塞、传输效率低。
发明内容
本发明要解决的技术问题是:现有并行计算机系统设计中基于乱序和不可靠网络的RDMA传输过程中需要保证传输数据的完整正确性,同时要保证数据传输性能较好,而现有方法存在易引起网络拥塞、硬件开销大和重传开销大的问题。
为了解决上述技术问题,本发明提出一种基于接收方滑动窗口的快速数据传输方法,该方法能够相比于现有方法减少硬件资源开销,降低重传开销,提高传输的效率。
具体技术方案为:
1)因为网络中每次RDMA传输的数据大小不固定,记系统支持的一次RDMA传输的最大数据量为X字节(X为自然数,X的取值和系统设计相关),一次RDMA传输的实际数据量为Y字节(Y为自然数,Y≤X),一个RDMA报文的数据大小为P字节(P为自然数,和硬件实现中的RDMA报文格式有关,一般为512),一次RDMA数据传输最多被划分成M个RDMA报文,(表示上取整),实际一次RDMA数据传输被划分成N个RDMA报文,依照RDMA报文中所传输数据在内存中的相对位置,将发送节点发出的RDMA报文进行编号,则报文的编号范围为0~N-1。记一次RDMA传输的数据在发送节点内存中的基地址为Addr_Send,在接收节点内存中的基地址为Addr_Recv,则此次RDMA传输第k(k为整数,0≤k≤N-1)个RDMA报文的数据在发送节点内存中的地址为Addr_Send+k*P,并相应地存储到接收节点中地址为Addr_Recv+k*P的内存中。发送节点将一次RDMA传输分解为N个RDMA报文独立的进行传输,依次将发送节点内存中的数据传输到接收节点对应的内存区间中。发送节点从内存中取出数据,封装成如图2所示的RDMA报文。RDMA报文包括四个域:报文类型TYPE(3位)、报文编号PIDX(位)、尾标志位TAIL(1位)、数据DATA(8*Y位),本发明中涉及到的报文类型有6种:RDMA报文、RDMA完成响应报文、单报文重传请求报文、区间重传请求报文、连接请求报文、连接响应报文。其中,RDMA报文是数据报文,另外5种是控制报文,与现有技术中的控制报文格式一样,因此,RDMA报文中,报文类型占据3位;一次RDMA数据传输最多被划分成M个RDMA报文,因此,报文编号占据位;每个RDMA报文中的数据为Y字节,即8*Y位。发送节点从内存中取出数据,将数据封装成N个RDMA报文,每个RDMA报文封装方法如下:将报文类型域置为RDMA报文,报文编号填入PIDX域,TAIL域初始值为0,如果报文编号等于N-1,则将TAIL置1,将内存中取出的数据填入数据域。
2)接收节点中设置接收滑动窗口(简记为接收窗口),接收节点设置R(R为正整数,设计时根据系统规模和资源限制设置R的大小,一般为256~512)个接收窗口,一次RDMA传输占用一个接收窗口,在网络中可能同时会有多个RDMA传输,占用多个接收窗口,因此,在接收节点设置有指针变量W_Ptr,通过W_Ptr访问R个接收窗口中任意一个接收窗口的信息,本发明只涉及一次RDMA传输过程中的改进,因此,对接收窗口的数量R不作探讨。接收窗口的大小代表在接收窗口没有滑动时接收节点最多可以接收的RDMA报文个数,记一个接收窗口的大小为W(W为正整数,根据网络乱序程度选择不同的值,网络乱序程度越大,W取值越大,W一般为32~256)位。如图4所示,每个接收窗口中的信息包括:1、窗口基地址索引号WBASE(位),WBASE表示接收窗口接收的报文编号从WBASE开始,接收窗口可以接收RDMA报文的报文编号范围为[WBASE,WBASE+W-1],若收到的报文编号落在接收窗口之外,则接收节点一律将其丢弃,一次RDMA传输最多被拆分成M个RDMA报文,因此,WBASE位宽为位;2、窗口接收向量WVEC(W位),WVEC向量从左至右计算位索引号,索引号的范围为0~W-1,WVEC对应接收窗口中W个报文的接收状态;WVEC第m(m为整数,0≤m≤W-1)位的状态代表报文编号为WBASE+m的RDMA报文的接收状态,若第m位为0,表明接收节点没有接收到报文编号为WBASE+m的RDMA报文,若第m位为1,表明接收节点已经接收到报文编号为WBASE+m的RDMA报文;3、标志位W_Tail(1位),W_Tail值为1时表明接收窗口已经接收到此次RDMA传输的最后一个RDMA报文。在接收节点只有当收到RDMA报文的报文编号落入接收窗口(即报文编号介于[WBASE,WBASE+W-1])时接收节点才将该RDMA报文收下,若收到的报文编号落在接收窗口之外,则一律将其丢弃。记LOC(WVEC)表示向量WVEC从左边开始、连续为1的位数(代表接收窗口已经连续成功接收的RDMA报文个数),接收的报文编号刚好是滑动窗口的基地址WBASE,且该RDMA报文不是此次RDMA传输的尾报文时,接收窗口向右滑动LOC(WVEC)位(表示接收节点成功接收LOC(WVEC)个RDMA报文),接收节点更新WBASE的值为WBASE+LOC(WVEC)(表示接收窗口接下来接收的报文编号从WBASE+LOC(WVEC)开始),WVEC更新为WVEC<<LOC(WVEC)(这是因为接收节点成功接收LOC(WVEC)个RDMA报文后,接收窗口向右滑动LOC(WVEC)位,接收窗口向右滑动后,原WVEC中第LOC(WVEC)+1位成为接收窗口向右滑动后WVEC的第1位,原WVEC中第LOC(WVEC)+2位成为接收窗口向右滑动后WVEC的第2位,…,原WVEC中第W位成为接收窗口向右滑动后WVEC的第W-LOC(WVEC)位,接收窗口向右滑动后WVEC的第W-LOC(WVEC)+1位至第W位均为0,相当于WVEC左移LOC(WVEC)位),其中<<为计算机中的左移运算符。可以看出,本发明接收节点滑动窗口与背景技术发送节点滑动窗口的区别在于背景技术发送节点滑动窗口中需要对进入滑动窗口的RDMA报文进行缓存,而本发明接收节点滑动窗口只记录接收RDMA报文的编号,不存储RDMA报文的数据信息,即不对进入接收窗口的RDMA报文进行缓存;因此,本发明可以减少硬件资源开销。
3)接收节点为每个接收窗口设置硬件超时计数器,由硬件寄存器实现。硬件超时计数器用于判断接收窗口是否超过一定时长还未滑动,也就是接收节点在一定时长内未收到任何RDMA报文。
本发明进行一次RDMA传输的过程如下:
第一步,在发送节点和接收节点间建立连接,具体过程如下:
1.1发送节点向接收节点发送连接请求报文,通过连接请求报文,接收节点为发送节点分配好此次RDMA传输的接收窗口。接收窗口初始状态置WBASE为0,WVEC为全0,W_Tail为0。
1.2接收节点分配好接收窗口后,向发送节点返回接收窗口在接收节点的指针W_Ptr,通过该指针,接收节点能够从多个接收窗口中访问到此次RDMA传输使用的接收窗口信息。
第二步,发送节点执行2.1步,向接收节点发送RDMA报文并响应接收节点发回的重传请求报文,同时接收节点执行2.2步,接收报文编号位于接收窗口之内的RDMA报文,并将RDMA报文中的数据写入接收节点的内存中。发送节点向接收节点发送RDMA报文的过程中可能会收到接收节点发送过来的重传请求报文,重传请求报文中携带着报文编号PIDX,发送节点对重传请求报文做出响应,向接收节点重新发送RDMA报文。发送节点接收到的重传请求报文有两种类型,一种是单报文重传请求报文,即要求发送节点重新发出编号PIDX的RDMA报文;另一种是区间重传请求报文,即要求发送节点重传编号范围为[PIDX,N-1]的所有RDMA报文。
2.1发送节点向接收节点发送RDMA报文并响应接收节点发回的重传请求报文:
2.1.1发送节点从内存中取出数据,将数据拆分并封装成N个RDMA报文,每个RDMA报文封装方法如下:将报文类型域置为RDMA报文,报文编号填入PIDX域,TAIL域初始值为0,如果报文编号等于N-1,则将TAIL置1,将内存中取出的数据填入数据域;
2.1.2如果发送节点没有收到重传请求报文,发送节点向接收节点发送编号为i的RDMA报文,转2.1.3;如果发送节点收到了接收节点返回的重传请求报文,则接收节点对重传请求报文做出响应,向接收节点重新发送RDMA报文,如果是单报文重传请求报文,则执行2.1.2.1,如果是区间重传请求报文,则执行2.1.2.2;
2.1.2.1发送节点获取重传请求报文中的报文编号PIDX,从内存中重新取出编号PIDX的RDMA报文的数据,封装成RDMA报文,发送给接收节点;转2.1.3;
2.1.2.2发送节点取出重传请求报文中的报文编号PIDX,从内存中重新取出编号PIDX的RDMA报文的数据,封装成RDMA报文,发送给接收节点;i置为PIDX,转2.1.3;
2.1.3i增1,若i<N-1,表明此次RDMA传输的报文还没有发送完,转2.1.2;若i=N-1,表明要发送的是本次RDMA传输的最后一个RDMA报文,将此报文的尾标志位TAIL置1,转2.1.2;否则,i>N-1,表明发送节点已经将此次RDMA传输的所有RDMA报文发送完毕,转2.1.4;
2.1.4若发送节点收到了接收节点发送的RDMA完成响应报文,转第三步;若发送节点收到了单报文重传请求报文,发送节点获取重传请求报文中的报文编号PIDX,从发送节点内存中地址为Addr_Send+PIDX*P的数据,封装成RDMA报文,发送给接收节点,转2.1.4;若发送节点收到区间重传请求报文,转2.1.2.2;否则,发送节点停止发送RDMA报文,转2.1.4;
2.2接收节点接收报文编号位于接收窗口之内(编号为WBASE~WBASE+W-1)的RDMA报文,并将RDMA报文中的数据写入接收节点的内存中。对于接收窗口之外的RDMA报文,接收节点丢弃报文。记接收节点收到的报文编号是PIDX,接收节点接收RDMA报文过程如下:
2.2.1接收节点等待接收发送节点发来的RDMA报文,如果接收节点超时计数器超时后还未收到RDMA报文,则转到2.2.2执行;如果收到了RDMA报文,则根据报文编号PIDX,执行以下的步骤:
2.2.1.1如果PIDX<WBASE,表明接收的报文编号不在接收窗口内,则接收节点将该RDMA报文丢弃,转2.2.1;
2.2.1.2如果PIDX=WBASE,表明接收的报文编号刚好是接收窗口的基地址,如果该报文的TAIL为1,表明接收节点接收到了此次RDMA传输的尾报文,且该尾报文编号刚好是接收窗口的基地址,表示接收节点已经将所有RDMA报文收齐,接收节点将此报文存入接收节点内存中地址为Addr_Recv+PIDX*P的地址空间,并将接收窗口的W_Tail位置1,转2.2.3;若该报文的TAIL为0,表明接收节点收到了接收窗口的窗口基地址对应的RDMA报文,而且该报文不是此次RDMA传输的尾报文,这表示接收节点成功接收编号范围为[WBASE,WBASE+LOC(WVEC)]的LOC(WVEC)个RDMA报文,接收节点将此报文存入接收节点内存中地址为Addr_Recv+PIDX*P的地址空间,接收窗口此时向右滑动LOC(WVEC)位,窗口基地址增加LOC(WVEC),并按照下述方式相应修改接收窗口中的变量:WBASE更新为WBASE+LOC(WVEC);WVEC更新为WVEC<<LOC(WVEC),转2.2.1;
2.2.1.3如果WBASE<PIDX≤WBASE+W-1,表明接收的报文编号落在接收窗口范围内,且不是接收窗口基地址,则将WVEC的第PIDX–WBASE位置1,将此报文存入接收节点内存中地址为Addr_Recv+PIDX*P的地址空间;如果此时RDMA报文的TAIL为1,将接收窗口的尾标志位W_Tail置1,如果接收窗口的WVEC中低位为1的位是连续的,这表示接收窗口已经接收到尾报文且接收窗口中尾报文之前的RDMA报文均已接收到,所有的RDMA报文均已收齐,转2.2.3;否则,RDMA报文的TAIL为0即还没有收到尾报文,或RDMA报文的TAIL为1但接收窗口的WVEC中低位为1的位不是连续的(表示虽然收到了RDMA传输的尾报文,但是[WBASE,N-1]之间还有RDMA报文没有收到,因此,WVEC中第1位至尾报文对应的位之间存在0),表明还有RDMA报文没有收到,转2.2.1;
2.2.1.4如果PIDX>WBASE+W-1,则将报文丢弃,并向发送节点发回单报文重传请求报文,重传请求报文中携带的报文编号为PIDX,转2.2.1;
2.2.2如果接收节点连续K(K为正整数,根据经验值设定,一般取值范围为3~10)次超时计数器超时,向发送节点返回区间重传请求报文,否则,向发送节点返回单报文重传请求报文,报文中携带的报文编号均为WBASE,转2.2.1;
2.2.3接收节点向发送节点返回RDMA完成响应报文,接收节点释放接收窗口,即WBASE置为0,WVEC置为全0,W_Tail置为0,窗口可以分配给其他RDMA请求,转第三步;
第三步,发送节点收到了接收节点发送的RDMA完成响应报文,发送节点结束本次RDMA传输。
发送节点向接收节点发送RDMA报文,接收节点从发送节点接收RDMA报文,2.1和2.2是并行进行的。另外,本发明只对一次RDMA传输过程进行了描述,多个RDMA传输过程是并行进行的,每次RDMA传输占用一个接收窗口,因为每个接收节点设置R个接收窗口,一个接收节点最多可以同时并行进行R个RDMA传输,每个RDMA传输的发送和接收均是并行的。
与现有技术相比,采用本发明可达到以下技术效果:
1.本发明在接收节点设置接收窗口,接收窗口只记录进入接收窗口中RDMA报文的报文编号,不存储RDMA报文的数据信息,即不对进入接收窗口的RDMA报文进行缓存;因此,相对背景技术发送节点滑动窗口需要对进入滑动窗口的RDMA报文进行缓存,本发明可以节省芯片上的存储器资源,减少硬件资源开销;
2.本发明发送节点将一次RDMA传输的数据拆分并封装成N个RDMA报文,每个RDMA报文携带一个编号,当接收节点将N个RDMA报文收齐后向发送节点返回一个RDMA完成响应报文,发送节点收到接收节点发送的RDMA完成响应报文后结束本次RDMA传输,因此,本发明可以降低网络中响应报文的数量,避免引起网络拥塞;
3.本发明接收节点如果连续K(K为正整数,根据经验值设定,一般取值范围为3~10)次超时计数器超时,向发送节点返回区间重传请求报文,否则,接收节点向发送节点发送单报文重传请求,报文中携带的报文编号均为PIDX,对于单报文重传请求只需要将编号为PIDX的RDMA报文进行重传;对于区间报文重传请求,发送节点重传编号范围为[PIDX,N-1]的所有RDMA报文,因此,当发生重传时,本发明不需要将此次RDMA传输的所有RDMA报文进行重传,降低重传开销,避免网络拥塞,提高传输效率。
4.本发明接收窗口中设置表明是否收到此次RDMA传输尾报文的标志位W_Tail,当接收窗口接收到尾报文时,将W_Tail位置1,但接收节点收到尾报文时并不一定表明接收节点已经成功接收此次RDMA传输的所有RDMA报文,只有当接收到此次RDMA传输的尾报文,且接收窗口的WVEC中低位为1的位是连续的,表示接收窗口已经接收到尾报文且接收窗口中尾报文之前的RDMA报文均已接收到,所有的RDMA报文均已收齐,才表明已经此次RDMA传输成功完成,确保本发明RDMA传输的数据完整性,提高数据传输的可靠性。
附图说明
图1是背景技术传统的并行计算机系统中两个节点间RDMA传输示意图。
图2是本发明RDMA传输中发送节点从内存中取出数据封装成RDMA报文的报文格式示意图。
图3是本发明基于接收方滑动窗口的一次RDMA传输流程图。
图4是本发明第一步接收节点设置的滑动窗口的结构示意图。
图5是本发明一次RDMA传输过程中第二步2.1发送节点向接收节点发送RDMA报文并响应接收节点发回的重传请求报文流程图。
图6是本发明一次RDMA传输过程中第二步2.2接收节点接收RDMA报文流程图。
具体实施方式
图1是背景技术所述传统的并行计算机系统中两个节点间RDMA传输示意图。并行计算机系统通常是由多个计算节点(简记为节点)和互连网络组成,节点由处理器、网络接口和内存组成,节点通过网络接口进行数据的发送接收,节点间通过互连网络进行通信。RDMA传输是并行计算机中一种基本的通信模式,它将发送节点内存中的某个区域的数据传输到接收节点内存中的接收区间。在实现上,一次RDMA的传输通常被分解为多个RDMA报文,独立的在互连网络上进行传输。
图2是本发明RDMA传输中发送节点从内存中取出数据封装成RDMA报文的报文格式示意图。RDMA报文包括四个域:报文类型TYPE(3位)、报文编号PIDX(位)、尾标志位TAIL(1位)、数据DATA(8*Y位),本发明中涉及到的报文类型有6种:RDMA报文、RDMA完成响应报文、单报文重传请求报文、区间重传请求报文、连接请求报文、连接响应报文。其中,RDMA报文是数据报文,另外5种是控制报文,因此,RDMA报文中,报文类型占据3位;一次RDMA数据传输最多被划分成M个RDMA报文,因此,报文编号占据位;每个RDMA报文中的数据为Y字节,即8*Y位。发送节点从内存中取出数据,将数据封装成N个RDMA报文,每个RDMA报文封装方法如下:将报文类型域置为RDMA报文,报文编号填入PIDX域,TAIL域初始值为0,如果报文编号等于N-1,则将TAIL置1,将内存中取出的数据填入数据域。
图3是本发明基于接收方滑动窗口的一次RDMA传输流程图。主要流程是:
第一步,在发送节点和接收节点间建立连接,具体过程如下:
1.1发送节点向接收节点发送连接请求报文,通过连接请求报文,接收节点为发送节点分配好此次RDMA传输的接收窗口。接收窗口初始状态置WBASE为0,WVEC为全0,W_Tail为0。
1.2接收节点分配好接收窗口后,向发送节点返回接收窗口在接收节点的指针W_Ptr,通过该指针,接收节点能够从多个接收窗口中访问到此次RDMA传输使用的接收窗口信息。
第二步,发送节点执行2.1步,向接收节点发送RDMA报文并响应接收节点发回的重传请求报文,同时接收节点执行2.2步,接收报文编号位于接收窗口之内的RDMA报文,并将RDMA报文中的数据写入接收节点的内存中。发送节点向接收节点发送RDMA报文的过程中可能会收到接收节点发送过来的重传请求报文,重传请求报文中携带着报文编号PIDX,发送节点对重传请求报文做出响应,向接收节点重新发送RDMA报文。发送节点接收到的重传请求报文有两种类型,一种是单报文重传请求报文,即要求发送节点重新发出编号PIDX的RDMA报文;另一种是区间重传请求报文,即要求发送节点重传编号范围为[PIDX,N-1]的所有RDMA报文。
2.1发送节点向接收节点发送RDMA报文并响应接收节点发回的重传请求报文,结合图5,流程如下:
2.1.1发送节点从内存中取出数据,将数据拆分并封装成N个RDMA报文,每个RDMA报文封装方法如下:将报文类型域置为RDMA报文,报文编号填入PIDX域,TAIL域初始值为0,如果报文编号等于N-1,则将TAIL置1,将内存中取出的数据填入数据域;
2.1.2如果发送节点没有收到重传请求报文,发送节点向接收节点发送编号为i的RDMA报文,转2.1.3;如果发送节点收到了接收节点返回的重传请求报文,则接收节点对重传请求报文做出响应,向接收节点重新发送RDMA报文,如果是单报文重传请求报文,则执行2.1.2.1,如果是区间重传请求报文,则执行2.1.2.2;
2.1.2.1发送节点获取重传请求报文中的报文编号PIDX,从内存中重新取出编号PIDX的RDMA报文的数据,封装成RDMA报文,发送给接收节点;转2.1.3;
2.1.2.2发送节点取出重传请求报文中的报文编号PIDX,从内存中重新取出编号PIDX的RDMA报文的数据,封装成RDMA报文,发送给接收节点;i置为PIDX,转2.1.3;
2.1.3i增1,若i<N-1,表明此次RDMA传输的报文还没有发送完,转2.1.2;若i=N-1,表明要发送的是本次RDMA传输的最后一个RDMA报文,将此报文的尾标志位TAIL置1,转2.1.2;否则,i>N-1,表明发送节点已经将此次RDMA传输的所有RDMA报文发送完毕,转2.1.4;
2.1.4若发送节点收到了接收节点发送的RDMA完成响应报文,转第三步;若发送节点收到了单报文重传请求报文,发送节点获取重传请求报文中的报文编号PIDX,从发送节点内存中地址为Addr_Send+PIDX*P的数据,封装成RDMA报文,发送给接收节点,转2.1.4;若发送节点收到区间重传请求报文,转2.1.2.2;否则,发送节点停止发送RDMA报文,转2.1.4;
2.2接收节点接收报文编号位于接收窗口之内(编号为WBASE~WBASE+W-1)的RDMA报文,并将RDMA报文中的数据写入接收节点的内存中。对于接收窗口之外的RDMA报文,接收节点丢弃报文。记接收节点收到的报文编号是PIDX,结合图6,接收节点接收RDMA报文过程如下:
2.2.1接收节点等待接收发送节点发来的RDMA报文,如果接收节点超时计数器超时后还未收到RDMA报文,则转到2.2.2执行;如果收到了RDMA报文,则根据报文编号PIDX,执行以下的步骤:
2.2.1.1如果PIDX<WBASE,表明接收的报文编号不在接收窗口内,则接收节点将该RDMA报文丢弃,转2.2.1;
2.2.1.2如果PIDX=WBASE,表明接收的报文编号刚好是接收窗口的基地址,如果该报文的TAIL为1,表明接收节点接收到了此次RDMA传输的尾报文,且该尾报文编号刚好是接收窗口的基地址,表示接收节点已经将所有RDMA报文收齐,接收节点将此报文存入接收节点内存中地址为Addr_Recv+PIDX*P的地址空间,并将接收窗口的W_Tail位置1,转2.2.3;若该报文的TAIL为0,表明接收节点收到了接收窗口的窗口基地址对应的RDMA报文,而且该报文不是此次RDMA传输的尾报文,这表示接收节点成功接收编号范围为[WBASE,WBASE+LOC(WVEC)]的LOC(WVEC)个RDMA报文,接收节点将此报文存入接收节点内存中地址为Addr_Recv+PIDX*P的地址空间,接收窗口此时向右滑动LOC(WVEC)位,窗口基地址增加LOC(WVEC),并按照下述方式相应修改接收窗口中的变量:WBASE更新为WBASE+LOC(WVEC);WVEC更新为WVEC<<LOC(WVEC),转2.2.1;
2.2.1.3如果WBASE<PIDX≤WBASE+W-1,表明接收的报文编号落在接收窗口范围内,且不是接收窗口基地址,则将WVEC的第PIDX–WBASE位置1,将此报文存入接收节点内存中地址为Addr_Recv+PIDX*P的地址空间;如果此时RDMA报文的TAIL为1,将接收窗口的尾标志位W_Tail置1,如果接收窗口的WVEC中低位为1的位是连续的,这表示接收窗口已经接收到尾报文且接收窗口中尾报文之前的RDMA报文均已接收到,所有的RDMA报文均已收齐,转2.2.3;否则,RDMA报文的TAIL为0即还没有收到尾报文,或RDMA报文的TAIL为1但接收窗口的WVEC中低位为1的位不是连续的(表示虽然收到了RDMA传输的尾报文,但是[WBASE,N-1]之间还有RDMA报文没有收到,因此,WVEC中第1位至尾报文对应的位之间存在0),表明还有RDMA报文没有收到,转2.2.1;
2.2.1.4如果PIDX>WBASE+W-1,则将报文丢弃,并向发送节点发回单报文重传请求报文,重传请求报文中携带的报文编号为PIDX,转2.2.1;
2.2.2如果接收节点连续K(K为正整数,根据经验值设定,一般取值范围为3~10)次超时计数器超时,向发送节点返回区间重传请求报文,否则,向发送节点返回单报文重传请求报文,报文中携带的报文编号均为WBASE,转2.2.1;
2.2.3接收节点向发送节点返回RDMA完成响应报文,接收节点释放接收窗口,即WBASE置为0,WVEC置为全0,W_Tail置为0,窗口可以分配给其他RDMA请求,转第三步;
第三步,发送节点收到了接收节点发送的RDMA完成响应报文,发送节点结束本次RDMA传输。
图4是本发明第一步接收节点设置的滑动窗口的结构示意图。接收节点中设置接收滑动窗口(简记为接收窗口),接收节点设置R(R为正整数,设计时根据系统规模和资源限制设置R的大小,一般为256~512)个接收窗口,一次RDMA传输占用一个接收窗口,在网络中可能同时会有多个RDMA传输,占用多个接收窗口,因此,在接收节点设置有指针变量W_Ptr,通过W_Ptr访问R个接收窗口中任意一个接收窗口的信息,本发明只涉及一次RDMA传输过程中的改进,因此,对接收窗口的数量R不作探讨。接收窗口的大小代表在接收窗口没有滑动时接收节点最多可以接收的RDMA报文个数,记一个接收窗口的大小为W(W为正整数,根据网络乱序程度选择不同的值,网络乱序程度越大,W取值越大,W一般为32~256)位。每个接收窗口中的信息包括:1、窗口基地址索引号WBASE(位),WBASE表示接收窗口接收的报文编号从WBASE开始,接收窗口可以接收RDMA报文的报文编号范围为[WBASE,WBASE+W-1],若收到的报文编号落在接收窗口之外,则接收节点一律将其丢弃,一次RDMA传输最多被拆分成M个RDMA报文,因此,WBASE位宽为位;2、窗口接收向量WVEC(W位),WVEC向量从左至右计算位索引号,索引号的范围为0~W-1,WVEC对应接收窗口中W个报文的接收状态;WVEC第m(m为整数,0≤m≤W-1)位的状态代表报文编号为WBASE+m的RDMA报文的接收状态,若第m位为0,表明接收节点没有接收到报文编号为WBASE+m的RDMA报文,若第m位为1,表明接收节点已经接收到报文编号为WBASE+m的RDMA报文;3、标志位W_Tail(1位),W_Tail值为1时表明接收窗口已经接收到此次RDMA传输的最后一个RDMA报文。在接收节点只有当收到RDMA报文的报文编号落入接收窗口(即报文编号介于[WBASE,WBASE+W-1])时接收节点才将该RDMA报文收下,若收到的报文编号落在接收窗口之外,则一律将其丢弃。记LOC(WVEC)表示向量WVEC从左边开始、连续为1的位数(代表接收窗口已经连续成功接收的RDMA报文个数),接收的报文编号刚好是滑动窗口的基地址WBASE,且该RDMA报文不是此次RDMA传输的尾报文时,接收窗口向右滑动LOC(WVEC)位(表示接收节点成功接收LOC(WVEC)个RDMA报文),接收节点更新WBASE的值为WBASE+LOC(WVEC)(表示接收窗口接下来接收的报文编号从WBASE+LOC(WVEC)开始),WVEC更新为WVEC<<LOC(WVEC)(这是因为接收节点成功接收LOC(WVEC)个RDMA报文后,接收窗口向右滑动LOC(WVEC)位,接收窗口向右滑动后,原WVEC中第LOC(WVEC)+1位成为接收窗口向右滑动后WVEC的第1位,原WVEC中第LOC(WVEC)+2位成为接收窗口向右滑动后WVEC的第2位,…,原WVEC中第W位成为接收窗口向右滑动后WVEC的第W-LOC(WVEC)位,接收窗口向右滑动后WVEC的第W-LOC(WVEC)+1位至第W位均为0,相当于WVEC左移LOC(WVEC)位),其中<<为计算机中的左移运算符。
Claims (5)
1.一种并行计算机系统中基于接收方滑动窗口的数据传输方法,其特征在于包括以下步骤:
第一步,在发送节点和接收节点间建立连接,具体过程如下:
1.1发送节点向接收节点发送连接请求报文,通过连接请求报文,接收节点为发送节点分配好此次远程直接内存访问传输即RDMA传输的接收窗口,接收窗口初始状态置WBASE为0,WVEC为全0,W_Tail为0;接收节点设置R个接收窗口,R为正整数,一次RDMA传输占用一个接收窗口,在接收节点设置有指针变量W_Ptr,通过W_Ptr访问R个接收窗口中任意一个接收窗口的信息,接收窗口的大小代表在接收窗口没有滑动时接收节点最多可以接收的RDMA报文个数,记一个接收窗口的大小为W位,W为正整数,每个接收窗口中的信息包括:窗口基地址索引号WBASE,占位,M为一次RDMA数据传输最多被划分成的RDMA报文的个数,WBASE表示接收窗口接收的RDMA报文编号从WBASE开始,接收窗口可以接收报文的报文编号范围为[WBASE,WBASE+W-1],若收到的报文编号落在接收窗口之外,则接收节点一律将其丢弃;窗口接收向量WVEC,占W位,WVEC向量从左至右计算位索引号,索引号的范围为0~W-1,WVEC对应接收窗口中W个RDMA报文的接收状态;WVEC第m位的状态代表报文编号为WBASE+m的RDMA报文的接收状态,m为整数,0≤m≤W-1,若第m位为0,表明接收节点没有接收到报文编号为WBASE+m的RDMA报文,若第m位为1,表明接收节点已经接收到报文编号为WBASE+m的RDMA报文;标志位W_Tail,占1位,W_Tail值为1时表明接收窗口已经接收到此次RDMA传输的最后一个RDMA报文;记LOC(VEC)表示向量WVEC从左边开始、连续为1的位数,接收的报文编号刚好是滑动窗口的基地址WBASE,且该RDMA报文不是此次RDMA传输的尾报文时,接收窗口向右滑动LOC(VEC)位,接收节点更新WBASE的值为WBASE+LOC(VEC),WVEC更新为WBASE<<LOC(VEC),其中<<为计算机中的左移运算符;
1.2接收节点向发送节点返回接收窗口在接收节点的指针W_Ptr;
第二步,发送节点执行2.1步,向接收节点发送RDMA报文并响应接收节点发回的重传请求报文,同时接收节点执行2.2步,接收报文编号位于接收窗口之内的RDMA报文,并将RDMA报文中的数据写入接收节点的内存中;
2.1发送节点向接收节点发送RDMA报文并响应接收节点发回的重传请求报文:
2.1.1发送节点从内存中取出数据,将数据拆分并封装成N个RDMA报文,N为自然数,N<M;
2.1.2如果发送节点没有收到重传请求报文,发送节点向接收节点发送报文编号为i的RDMA报文,转2.1.3;如果发送节点收到了接收节点发回的重传请求报文,重传请求报文中携带着报文编号PIDX,则接收节点对重传请求报文做出响应,向接收节点重新发送RDMA报文,如果是单报文重传请求报文即要求发送节点重新发送报文编号PIDX的RDMA报文,则执行2.1.2.1,如果是区间重传请求报文即要求发送节点重传报文编号范围为[PIDX,N-1]的所有RDMA报文,则执行2.1.2.2;
2.1.2.1发送节点获取重传请求报文中的报文编号PIDX,从发送节点内存中重新取出报文编号PIDX的RDMA报文的数据,封装成RDMA报文,发送给接收节点;转2.1.3;
2.1.2.2发送节点取出重传请求报文中的报文编号PIDX,从发送节点内存中重新取出报文编号PIDX的RDMA报文的数据,封装成RDMA报文,发送给接收节点;i置为PIDX,转2.1.3;
2.1.3i增1,若i<N-1,表明此次RDMA传输的报文还没有发送完,转2.1.2;若i=N-1,表明要发送的是本次RDMA传输的最后一个RDMA报文,将此报文的尾标志位TAIL置1,转2.1.2;否则,i>N-1,表明发送节点已经将此次RDMA传输的所有RDMA报文发送完毕,转2.1.4;
2.1.4若发送节点收到了接收节点发送的RDMA完成响应报文,转第三步;若发送节点收到了单报文重传请求报文,发送节点获取重传请求报文中的报文编号PIDX,从发送节点内存中地址为Addr_Send+PIDX*P的数据,封装成RDMA报文,发送给接收节点,转2.1.4,所述Addr_Send为此次RDMA传输的数据在发送节点内存中的基地址,P为一个RDMA报文的数据大小;若发送节点收到区间重传请求报文,转2.1.2.2;否则,发送节点停止发送RDMA报文,转2.1.4;
2.2接收节点接收报文编号位于接收窗口之内即编号为WBASE~WBASE+W-1的RDMA报文,并将RDMA报文中的数据写入接收节点的内存中,记接收节点收到的报文编号是PIDX,接收节点接收RDMA报文过程如下:
2.2.1接收节点等待接收发送节点发来的RDMA报文,如果接收节点超时计数器超时后还未收到RDMA报文,则转到2.2.2执行;如果收到了RDMA报文,则根据报文编号PIDX,执行以下的步骤:
2.2.1.1如果PIDX<WBASE,表明接收的报文编号不在接收窗口内,则接收节点将该RDMA报文丢弃,转2.2.1;
2.2.1.2如果PIDX=WBASE,表明接收的报文编号刚好是接收窗口的基地址,如果该报文的TAIL为1,表明接收节点接收到了此次RDMA传输的尾报文,且该尾报文编号刚好是接收窗口的基地址,表示接收节点已经将所有RDMA报文收齐,接收节点将此报文存入接收节点内存中地址为Addr_Recv+PIDX*P的地址空间,并将接收窗口的W_Tail位置1,转2.2.3,所述Addr_Recv为此次RDMA传输的数据在接收节点内存中的基地址;若该报文的TAIL为0,表明接收节点收到了接收窗口的窗口基地址对应的RDMA报文,而且该报文不是此次RDMA传输的尾报文,这表示接收节点成功接收编号范围为[WBASE,WBASE+LOC(VEC)]的LOC(VEC)个报文,接收节点将此报文存入接收节点内存中地址为Addr_Recv+PIDX*P的地址空间,接收窗口此时向右滑动LOC(VEC)位,窗口基地址增加LOC(VEC),并按照下述方式相应修改接收窗口中的变量:WBASE更新为WBASE+LOC(VEC);WVEC更新为WBASE<<LOC(VEC),转2.2.1;
2.2.1.3如果WBASE<PIDX≤WBASE+W-1,表明接收的报文编号落在接收窗口范围内,且不是接收窗口基地址,则将WVEC的第PIDX–WBASE位置1,将此RDMA报文存入接收节点内存中地址为Addr_Recv+PIDX*P的地址空间;如果此时RDMA报文的TAIL为1,将接收窗口的尾标志位W_Tail置1,如果接收窗口的WVEC中低位为1的位是连续的,这表示接收窗口已经接收到尾报文且接收窗口中尾报文之前的RDMA报文均已接收到,所有的RDMA报文均已收齐,转2.2.3;否则,RDMA报文的TAIL为0即还没有收到尾报文,或RDMA报文的TAIL为1但接收窗口的WVEC中低位为1的位不是连续的,表明还有RDMA报文没有收到,转2.2.1;
2.2.1.4如果PIDX>WBASE+W-1,则将该RDMA报文丢弃,并向发送节点返回单报文重传请求报文,重传请求报文中携带的报文编号为PIDX,转2.2.1;
2.2.2如果接收节点的硬件超时计数器连续K次超时,K为正整数,向发送节点返回区间重传请求报文,否则,向发送节点返回单报文重传请求报文,报文中携带的报文编号均为WBASE,转2.2.1;
2.2.3接收节点向发送节点返回RDMA完成响应报文,接收节点释放接收窗口,即WBASE置为0,WVEC置为全0,W_Tail置为0,窗口可以分配给其他RDMA请求,转第三步;
第三步,发送节点收到了接收节点发送的RDMA完成响应报文,发送节点结束本次RDMA传输。
2.如权利要求1所述的并行计算机系统中基于接收方滑动窗口的数据传输方法,其特征在于所述R根据系统规模和资源限制设置,取256~512;所述W的取值范围为32~256。
3.如权利要求1所述的并行计算机系统中基于接收方滑动窗口的数据传输方法,其特征在于所述RDMA报文包括四个域:报文类型TYPE,共3位;报文编号PIDX,共位;尾标志位TAIL,为1位;数据DATA,共8*Y位,Y为自然数,为一次RDMA传输的数据的字节数;所述RDMA报文封装方法是:将报文类型域置为RDMA报文,报文编号填入PIDX域,TAIL域初始值为0,如果报文编号等于N-1,则将TAIL置1,将内存中取出的数据填入数据域。
4.如权利要求1所述的并行计算机系统中基于接收方滑动窗口的数据传输方法,其特征在于所述硬件超时计数器由接收节点为每个接收窗口设置,由硬件寄存器实现。
5.如权利要求1所述的并行计算机系统中基于接收方滑动窗口的数据传输方法,其特征在于所述K取值范围为3~10。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410782208.3A CN104484295B (zh) | 2014-12-16 | 2014-12-16 | 并行计算机系统中基于接收方滑动窗口的数据传输方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410782208.3A CN104484295B (zh) | 2014-12-16 | 2014-12-16 | 并行计算机系统中基于接收方滑动窗口的数据传输方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104484295A CN104484295A (zh) | 2015-04-01 |
CN104484295B true CN104484295B (zh) | 2017-03-22 |
Family
ID=52758838
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410782208.3A Active CN104484295B (zh) | 2014-12-16 | 2014-12-16 | 并行计算机系统中基于接收方滑动窗口的数据传输方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104484295B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104935597B (zh) * | 2015-06-17 | 2018-08-24 | 新华三技术有限公司 | 防重放窗口控制方法以及装置 |
CN107104902B (zh) * | 2017-04-05 | 2021-04-23 | 广东浪潮大数据研究有限公司 | 一种rdma数据传输的方法、相关装置与系统 |
CN107623646B (zh) * | 2017-09-06 | 2020-11-17 | 华为技术有限公司 | 数据流传输方法、发送设备及接收设备 |
CN107844405B (zh) * | 2017-10-12 | 2021-11-19 | 华为技术有限公司 | 日志处理方法及装置、服务器 |
CN109981480A (zh) * | 2017-12-27 | 2019-07-05 | 华为技术有限公司 | 一种数据传输方法及第一设备 |
CN109067506A (zh) * | 2018-08-15 | 2018-12-21 | 无锡江南计算技术研究所 | 一种基于多滑动窗口并发的轻量级异步消息实现方法 |
CN110677220B (zh) * | 2019-09-09 | 2022-06-14 | 无锡江南计算技术研究所 | 一种基于多轨冗余应答的rdma消息机制及其实现装置 |
CN111796772B (zh) * | 2020-07-07 | 2024-05-07 | 西北工业大学 | 缓存的管理方法、缓存节点及分布式存储系统 |
CN112068997B (zh) * | 2020-09-09 | 2023-12-19 | 恒生电子股份有限公司 | 数据备份方法、装置、设备及存储介质 |
CN113608686B (zh) * | 2021-06-30 | 2023-05-26 | 苏州浪潮智能科技有限公司 | 一种远程内存直接访问方法及相关装置 |
CN113572582B (zh) * | 2021-07-15 | 2022-11-22 | 中国科学院计算技术研究所 | 数据发送、重传控制方法及系统、存储介质及电子设备 |
CN116248231A (zh) * | 2022-12-29 | 2023-06-09 | 成都赛力斯科技有限公司 | 一种应用于汽车的报文传输方法、装置、设备和介质 |
CN116566921B (zh) * | 2023-07-04 | 2024-03-22 | 珠海星云智联科技有限公司 | 远程直接内存访问读取的拥塞控制方法、系统及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149717A (zh) * | 2007-11-16 | 2008-03-26 | 威盛电子股份有限公司 | 计算机系统及直接内存访问传输方法 |
CN103248467A (zh) * | 2013-05-14 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 基于片内连接管理的rdma通信方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8775718B2 (en) * | 2008-05-23 | 2014-07-08 | Netapp, Inc. | Use of RDMA to access non-volatile solid-state memory in a network storage system |
-
2014
- 2014-12-16 CN CN201410782208.3A patent/CN104484295B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149717A (zh) * | 2007-11-16 | 2008-03-26 | 威盛电子股份有限公司 | 计算机系统及直接内存访问传输方法 |
CN103248467A (zh) * | 2013-05-14 | 2013-08-14 | 中国人民解放军国防科学技术大学 | 基于片内连接管理的rdma通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN104484295A (zh) | 2015-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104484295B (zh) | 并行计算机系统中基于接收方滑动窗口的数据传输方法 | |
CN111786748B (zh) | 数据重传方法和系统、网卡、装置、服务器和存储介质 | |
US5664091A (en) | Method and system for a voiding unnecessary retransmissions using a selective rejection data link protocol | |
CN103905300B (zh) | 一种数据报文发送方法、设备及系统 | |
US20100205502A1 (en) | Enabling memory transactions across a lossy network | |
CN112153696B (zh) | Rlc sdu分段处理方法、装置及终端 | |
CN110460412A (zh) | 用于数据传输的方法和rdma网卡 | |
CN104506280B (zh) | 一种基于时分多址接入空间动态网络的可靠数据传输方法 | |
CN103684707A (zh) | 服务端、用户端消息传输处理方法、消息传输方法及系统 | |
CN103368703B (zh) | 数据包重传方法、数据包接收方法及装置 | |
CN102916902A (zh) | 数据存储方法及装置 | |
WO2019047573A1 (zh) | 一种下行数据传输的缓存方法、终端及基站 | |
CN103517225B (zh) | 彩信重试方法及装置 | |
EP1994695B1 (en) | Method and device for transmitting data packets | |
CN102457387B (zh) | 多播封包的接收方法 | |
CN104426638A (zh) | 一种数据递交方法和装置 | |
CN103647622A (zh) | 一种实现跨机房数据传输的方法、装置和系统 | |
CN107548104A (zh) | 数据传输方法、接入点及站点 | |
KR100859499B1 (ko) | 데이터 송수신 방법 및 그에 따른 통신 시스템 | |
CN103166747A (zh) | 一种harq合并的方法及装置 | |
CN113645008B (zh) | 一种基于链表的报文协议超时重发方法及系统 | |
CN102843224B (zh) | Harq的合并方法及装置 | |
CN105264808A (zh) | 一种信息传输方法及设备 | |
JP2778618B2 (ja) | 伝送制御方法 | |
CN109698843A (zh) | 一种实现数据传输的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |