CN105827416A - 一种数据包传输方法、发送端设备及接收端设备 - Google Patents
一种数据包传输方法、发送端设备及接收端设备 Download PDFInfo
- Publication number
- CN105827416A CN105827416A CN201610305878.5A CN201610305878A CN105827416A CN 105827416 A CN105827416 A CN 105827416A CN 201610305878 A CN201610305878 A CN 201610305878A CN 105827416 A CN105827416 A CN 105827416A
- Authority
- CN
- China
- Prior art keywords
- data packets
- matrix
- lost
- data packet
- receiving device
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1863—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast comprising mechanisms for improved reliability, e.g. status reports
- H04L12/1868—Measures taken after transmission, e.g. acknowledgments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
本发明实施例提供一种数据包传输方法、发送端设备及接收端设备,该方法包括:在向各接收端设备发送一批次的原始数据包后,接收各接收端设备报告的数据包丢失信息;根据各接收端设备的丢失数据包集合,确定所有接收端设备的总丢失数据包集合;根据总丢失数据包集合确定重传编码数据包的次数;根据所述次数、发送的原始数据包的数目,以改进范德蒙矩阵对编码数据包进行编码,确定每次重传的编码数据包;基于所确定的每次重传的编码数据包,在每次重传时向各接收端设备重传相应的编码数据包。本发明实施例可在多播通信***中,高效的实现丢失数据包的重传,提升多播通信***的数据传输时效性及可靠性。
Description
技术领域
本发明涉及通信技术领域,更具体地说,涉及一种数据包传输方法、发送端设备及接收端设备。
背景技术
近年来,物联网,云计算,移动互联网发展的如火如荼,随之而来各种新的应用层出不穷,越来越多的服务使得带宽资源更加紧张,如何提高带宽利用率已成为最受关注的研究热点之一;而多播技术可以有效提高带宽的利用率,其已经广泛应用在网络视频、无线路由、卫星通信等领域;采用多播技术的通信***称为多播通信***。有别于点对点通信方式的通信***,多播通信***是包含一个发送端设备,多个接收端设备的通信***,因此多播通信***的数据传输时效性及可靠性非常值得关注。
目前多播通信***中,发送端设备发送一批数据包给各接收端设备后,接收端设备由于信道状态的异构性,会使得不同接收端设备可能存在丢失不同数据包的情况,而发送端设备重传某个接收端设备丢失的数据包,会使得已经接到该数据包的接收端设备重复接收数据包,导致带宽的浪费,甚至在接收端设备的数量较多时,可能造成多播灾难;因此,如何提供一种数据包传输方法,以在多播通信***中,高效的实现丢失数据包的重传,提升多播通信***的数据传输时效性及可靠性,成为了本领域技术人员需要考虑的问题。
发明内容
有鉴于此,本发明实施例提供一种数据包传输方法、发送端设备及接收端设备,以在多播通信***中,高效的实现丢失数据包的重传,提升多播通信***的数据传输时效性及可靠性。
为实现上述目的,本发明实施例提供如下技术方案:
一种数据包传输方法,应用于发送端设备,所述方法包括:
在向R个接收端设备的各接收端设备发送一批次的L个原始数据包后,接收各接收端设备报告的数据包丢失信息;其中,第ri个接收端设备报告的数据包丢失信息标识有该第ri个接收端设备的丢失数据包集合L(ri),ri属于R,一丢失数据包集合对应至少一丢失数据包;
根据各接收端设备的丢失数据包集合,确定所有接收端设备的总丢失数据包集合L(R);
根据总丢失数据包集合确定重传编码数据包的次数lmax,lmax与L(R)中丢失数据包最多的丢失数据包集合的丢失数据包数目相应;
根据所述lmax、L值,以改进范德蒙矩阵对编码数据包进行编码,确定每次重传的编码数据包;
基于所确定的每次重传的编码数据包,在每次重传时向各接收端设备重传相应的编码数据包,各重传的编码数据包的包头里包含编码系数。
可选的,所述改进范德蒙矩阵以V表示,且表达式为:
可选的,定义发送端设备发送的一批次的L个原始数据包为{q1,q2,q3,…qL};定义lmax次重传编码数据包为{q1',q2',q3',…qlmax'},则确定(q1,q2,q3,…qL)×V=(q1',q2',q3',…qlma'x)。
可选的,所述根据所述lmax、L值,以改进范德蒙矩阵对编码数据包进行编码,确定每次重传的编码数据包包括:
确定第i次重传的编码数据包qi'为,
本发明实施例还提供一种数据包传输方法,应用于接收端设备,所述方法包括:
接收发送端设备发送的原始数据包并缓存,确定发送端设备发送的L个原始数据包中的丢失数据包,并生成数据包丢失信息报告给发送端设备,所述数据包丢失信息标识有丢失数据包集合;
接收发送端设备lmax次重传的编码数据包;
根据已接收的原始数据包和重传的编码数据包,构造第一矩阵M和第二矩阵B;
基于第一矩阵和第二矩阵,以改进范德蒙矩阵求逆运算对所述重传的编码数据包进行解码,得到对应的丢失数据包。
可选的,所述构造第一矩阵M包括:
对于第ri个接收端设备每一个接收的原始数据包qi,建立L-|L(ri)|个L维的向量v1,v1=(0,…,βj,…,0),其中βj=1;
从接收到的lmax次重传的编码数据包中选取前|L(ri)|个编码数据包,并基于该前|L(ri)|个编码数据包的包头包含的编码系数,获得|L(ri)|个L维的向量v2,v2=(1,(x1)i…(xL)i);
基于v1和v2构造出L×L维的矩阵,得到第一矩阵M。
可选的,所述构造第二矩阵B包括:
从第一矩阵M中确定各重传的编码数据包相应的向量所在行,令第二矩阵B中与所述所在行对应的向量为相应的重传的编码数据包;
从第一矩阵M中确定各接收的原始数据包相应向量的所在列,令第二矩阵B中与所述所在列对应的向量为相应的原始数据包;
以确定的第二矩阵B中各行与各列对应的向量,构造出L×1维的矩阵,得到第二矩阵B。
可选的,所述基于第一矩阵和第二矩阵,以改进范德蒙矩阵求逆运算对所述重传编码数据包进行解码,得到对应的丢失数据包包括:
利用部分高斯消元的方法将第一矩阵M转换为新的矩阵M’,M’中包含一个范德蒙行列式M”;
利用部分高斯消元的方法将第二矩阵B转换为新的矩阵B’,B’中包含一个范德蒙行列式B”;
对于第ri个接收端设备,基于相应的丢失数据包集合L(ri)构建出新的向量P”;
根据公式|M”|·(P”)T=(M”)*·B”,确定属于集合P”的数据包,恢复第ri个接收端设备的丢失数据包。
本发明实施例还提供一种发送端设备,包括:
数据包丢失信息接收模块,用于在向R个接收端设备的各接收端设备发送一批次的L个原始数据包后,接收各接收端设备报告的数据包丢失信息;其中,第ri个接收端设备报告的数据包丢失信息标识有该第ri个接收端设备的丢失数据包集合L(ri),ri属于R,一丢失数据包集合对应至少一丢失数据包;
总丢失数据包集合确定模块,用于根据各接收端设备的丢失数据包集合,确定所有接收端设备的总丢失数据包集合L(R);
重传次数确定模块,用于根据总丢失数据包集合确定重传编码数据包的次数lmax,lmax与L(R)中丢失数据包最多的丢失数据包集合的丢失数据包数目相应;
每次重传的数据包确定模块,用于根据所述lmax、L值,以改进范德蒙矩阵对编码数据包进行编码,确定每次重传的编码数据包;
重传执行模块,用于基于所确定的每次重传的编码数据包,在每次重传时向各接收端设备重传相应的编码数据包,各重传的编码数据包的包头里包含编码系数。
本发明实施例还提供一种接收端设备,包括:
数据包丢失信息报告模块,用于接收发送端设备发送的原始数据包并缓存,确定发送端设备发送的L个原始数据包中的丢失数据包,并生成数据包丢失信息报告给发送端设备,所述数据包丢失信息标识有丢失数据包集合
重传的数据包接收模块,用于接收发送端设备lmax次重传的编码数据包;
矩阵构造模块,用于根据已接收的原始数据包和重传的编码数据包,构造第一矩阵M和第二矩阵B;
丢失数据包恢复模块,用于基于第一矩阵和第二矩阵,以改进范德蒙矩阵求逆运算对所述重传的编码数据包进行解码,得到对应的丢失数据包。
基于上述技术方案,本发明实施例提供的数据包传输方法包括:发送端设备在向R个接收端设备的各接收端设备发送一批次的L个原始数据包后,接收各接收端设备报告的数据包丢失信息;其中,第ri个接收端设备报告的数据包丢失信息标识有该第ri个接收端设备的丢失数据包集合L(ri),ri属于R,一丢失数据包集合对应至少一丢失数据包;根据各接收端设备的丢失数据包集合,确定所有接收端设备的总丢失数据包集合L(R);根据总丢失数据包集合确定重传编码数据包的次数lmax,lmax与L(R)中丢失数据包最多的丢失数据包集合的丢失数据包数目相应;根据所述lmax、L值,以改进范德蒙矩阵对编码数据包进行编码,确定每次重传的编码数据包;基于所确定的每次重传的编码数据包,在每次重传时向各接收端设备重传相应的编码数据包,各重传的编码数据包的包头里包含编码系数。可以看出,本发明实施例可在多播环境下,接收端设备发送的数据包丢失后,在进行数据包重传时,减少数据重传的次数,并且基于改进范德蒙矩阵编解码编码数据包,可降低计算复杂度,在多播通信***中,高效的实现丢失数据包的重传,提升多播通信***的数据传输时效性及可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的数据包传输***的结构框图;
图2为本发明实施例提供的数据包传输方法的流程图;
图3为一般形式的范德蒙矩阵的n阶行列式示意图;
图4为本发明实施例提供的数据包传输方法的另一流程图;
图5为接收端设备丢失数据包的示意图;
图6为本发明实施例提供的发送端设备的结构框图;
图7为本发明实施例提供的接收端设备的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的数据包传输***的结构框图,参照图1,该数据包传输***为多播通信***,主要包括:发送端设备10和多个接收端设备20;
在本发明实施例中,发送端设备可向各接收端设备发送一批次的多个原始数据包;
对于各接收端设备,接收端设备接收原始数据包后可进行缓存,并将标识有自己所丢失的数据包集合的数据包丢失信息报告给发送端设备,接收端设备的数据包丢失信息标识有接收端设备的丢失数据包集合,一丢失数据包集合对应至少一丢失数据包;
发送端设备获悉各接收端设备的丢失数据包集合后,可进一步得到所有接收端设备的总丢失数据包集合,总丢失数据包集合可以为各接收端设备的丢失数据包集合的并集;进而,发送端设备基于总丢失数据包集合中,各丢失数据包集合对应的丢失数据包数目,可确定重传编码数据包的次数;
发送端设备基于总丢失数据包集合,可采用改进范德蒙矩阵对编码数据包进行编码,确定出每次重传的编码数据包;
发送端设备可在每次重传时向各接收端设备重传相应的编码数据包;
对于各接收端设备,接收端设备接收编码数据包后,可基于所接收的原始数据包和所述编码数据包,构造第一矩阵和第二矩阵;
对于各接收端设备,接收端设备可基于第一矩阵和第二矩阵,以改进范德蒙矩阵求逆运算对所述编码数据包进行解码,得到对应的丢失数据包。
本发明实施例可在多播环境下,接收端设备发送的数据包丢失后,在进行数据包重传时,减少数据重传的次数,并且基于改进范德蒙矩阵编解码编码数据包,可降低计算复杂度,在多播通信***中,高效的实现丢失数据包的重传,提升多播通信***的数据传输时效性及可靠性。
下面以发送端设备的角度,对本发明实施例提供的数据包传输方法进行介绍。
图2为本发明实施例提供的数据包传输方法的流程图,该方法可应用于发送端设备,参照图2,该方法可以包括:
步骤S100、在向R个接收端设备的各接收端设备发送一批次的L个原始数据包后,接收各接收端设备报告的数据包丢失信息;其中,第ri个接收端设备报告的数据包丢失信息标识有该第ri个接收端设备的丢失数据包集合L(ri),ri属于R,一丢失数据包集合对应至少一丢失数据包;
可选的,发送端设备向各接收端设备发送一批次的L个原始数据包后,接收端设备可接收到原始数据包(原始数据包的数目小于或等于L;即原始数据包的数目小于L时,说明L个数据包在传输给接收端设备的过程中,存在丢包,而原始数据包的数目等于L时,说明L个数据包在传输给接收端设备的过程中,不存在丢包);L的数目可根据实际的数据包传输应用场景而定,并没有严格限制;
各接收端设备在接收到原始数据包后可缓存,并向发送端设备返回ACKs/NAKs信息,报告未正常接收到的数据包(即丢失数据包);
一接收端设备报告的数据包丢失信息中,标识有该接收端设备丢失的数据包的信息的集合,称为丢失数据包集合,一个丢失数据包集合对应至少一丢失数据包,即接收端设备可能丢失至少一个数据包;
在本发明实施例中,可设第ri个接收端设备的丢失数据包集合为L(ri),且ri∈R。
步骤S110、根据各接收端设备的丢失数据包集合,确定所有接收端设备的总丢失数据包集合L(R);
总丢失数据包集合可以为各接收端设备的丢失数据包集合的并集,即L(R)=L(r1)∪L(r2)∪…∪L(rn),R的数值可与rn对应。
步骤S120、根据总丢失数据包集合确定重传编码数据包的次数lmax,lmax与L(R)中丢失数据包最多的丢失数据包集合的丢失数据包数目相应;
|L(ri)|表示丢失数据包集合L(ri)中的元素数目,即丢失数据包的数目,则以lmax表示重传数据包个数,则
步骤S130、根据所述lmax、L值,以改进范德蒙矩阵对编码数据包进行编码,确定每次重传的编码数据包;
范德蒙矩阵为是法国数学家范德蒙提出的一种各列为几何级数的矩阵,一般形式的范德蒙矩阵的n阶行列式可如图3所示,其第i行、第j列可以表示为(αi)^(j-1);
而本发明实施例的改进范德蒙矩阵是在一般范德蒙矩阵的基础上改进形成的范德蒙矩阵,其形式可如下所示:
其中,V表示改进范德蒙矩阵;
值得注意的是,如果取x=2,在计算机运算中仅是移位操作,与改进范德蒙矩阵中的元素相乘表示对数据包进行移位操作,如qi×2t代表数据包qi向左移动t位,即基于改进范德蒙矩阵,重传的编码数据包是由原始数据包以一定的方式移位后,再对数据包的对应位进行模2加操作得到;数据包移位操作后会导致数据包不等长,为了解决这一问题,将对数据包进行补0填充操作,每个数据包在原始信息数据包长度的基础上增加(lmax-1)(L-1)个比特;当数据包的长度很大时,移位带来的额外开销并不大,仅利用低代价的数据包的填充技术使得数据包等长是很容易达到的;
因此,本发明实施例以改进范德蒙矩阵对编码数据包进行编码,确定每次重传的编码数据包的方式可以是,对于各原始数据包,基于改进范德蒙矩阵将原始数据包以特定方式移位后,再对移位后的数据包的对应位进行模2加操作,并在原始数据包的长度基础上增加(lmax-1)(L-1)个比特得到。
进一步定义发送端设备发送的一批次的L个原始数据包为{q1,q2,q3,…qL};定义lmax次重传编码数据包为{q1',q2',q3',…qlmax'},即第一次重传编码数据包为q1',第二次重传编码数据包为q2',第lmax次重传的编码数据包为qlmax';
则(q1,q2,q3,…qL)×V=(q1',q2',q3',…qlmax');
相应的,第i次重传的编码数据包qi'可以表达为:
步骤S140、基于所确定的每次重传的编码数据包,在每次重传时向各接收端设备重传相应的编码数据包,各重传的编码数据包的包头里包含编码系数。
可选的,发送端设备在发送了重传的编码数据包后,如果还接收到接收端设备报告的数据包丢失信息,则可循环进行图2所示方法,直至接收端设备不存在丢失数据包的情况;在接收端设备不存在丢失数据包的情况,发送端设备可进行下一批次的原始数据包发送。
本发明实施例可在多播环境下,接收端设备发送的数据包丢失后,在进行数据包重传时,减少数据重传的次数,并且基于改进范德蒙矩阵编解码编码数据包,可降低计算复杂度,在多播通信***中,高效的实现丢失数据包的重传,提升多播通信***的数据传输时效性及可靠性。
可选的,在本发明实施例中,接收端设备的处理流程可以如下:
发送端设备每向R个接收端设备发送一批次的L个原始数据包后,L个原始数据包为{q1,q2,q3,…qL},各接收端设备将自己的数据包丢失信息报告给发送端设备,发送端设备根据各接收端设备反馈的数据包丢失信息,发送端设备可以获悉第ri个接收端设备的丢失数据包集合L(ri);
进一步,发送端设备可以得到所有接收端设备的总丢失数据包集合L(R),L(R)=L(r1)∪L(r2)∪…∪L(rn),R的数值可与rn对应;
当不考虑重传数据包丢失的情况下,重传数据包的次数可以为lmax,|L(ri)|表示丢失数据包集合L(ri)中的元素数目,即丢失数据包的数目;
调取改进范德蒙矩阵V:
则(q1,q2,q3,…qL)×V=(q1',q2',q3',…qlmax');
计算第i次重传的编码数据包qi',
编码数据包确定后,发送端设备可以在每次重传时向各接收端设备重传相应的编码数据包,且每一编码数据包中包含编码系数;
发送端设备获取接收端设备的反馈信息,如果仍有丢包,则重复上述步骤,如果没有丢包,则发送下一批次的原始数据包。
下面以接收端设备的角度,对本发明实施例提供的数据包传输方法进行介绍。
图4为本发明实施例提供的数据包传输方法的另一流程图,该方法可应用于接收端设备,参照图4,该方法可以包括:
步骤S200、接收发送端设备发送的原始数据包并缓存,确定发送端设备发送的L个原始数据包中的丢失数据包,并生成数据包丢失信息报告给发送端设备,所述数据包丢失信息标识有丢失数据包集合;
步骤S210、接收发送端设备lmax次重传的编码数据包;
可选的,发送端设备可以图2所示方法确定lmax次重传的编码数据包,并在每次重传时向各接收端设备重传相应的编码数据包,以便接收端设备接收。
步骤S220、根据已接收的原始数据包和重传的编码数据包,构造第一矩阵M和第二矩阵B;
可选的,第一矩阵M的构造方式可以如下:
对于第ri个接收端设备每一个接收的原始数据包qi,本发明实施例可建立L-|L(ri)|个L维的向量v1,v1=(0,…,βj,…,0),其中βj=1;
则可从接收到的lmax次重传的编码数据包中选取前|L(ri)|个编码数据包,并基于该前|L(ri)|个编码数据包的包头包含的编码系数,获得|L(ri)|个L维的向量v2,v2=(1,(x1)i…(xL)i),从而基于v1和v2构造出L×L维的矩阵,得到第一矩阵M。
第二矩阵B的构造方式可以如下:
从第一矩阵M中确定各重传的编码数据包相应的向量所在行,令第二矩阵B中与所述所在行对应的向量为相应的重传的编码数据包,如与重传的编码数据qi'相应的向量是第一矩阵M的第t1行,则令B(t1)=qi';
类似的,本发明实施例可以从第一矩阵M中确定各接收的原始数据包相应向量的所在列,令第二矩阵B中与所述所在列对应的向量为相应的原始数据包,如与原始数据包qi相应的向量是第一矩阵M的第t2行,则令B(t2)=qi;从而以确定的第二矩阵B中各行与各列对应的向量,构造出L×1维的矩阵,得到第二矩阵B。
步骤S230、基于第一矩阵和第二矩阵,以改进范德蒙矩阵求逆运算对所述重传的编码数据包进行解码,得到对应的丢失数据包。
可选的,本发明实施例可利用部分高斯消元的方法将第一矩阵M转换为新的矩阵M’,M’中包含一个范德蒙行列式M”;
相应的,可利用部分高斯消元的方法将第二矩阵B转换为新的矩阵B’,B’中包含一个范德蒙行列式B”;
同时,对于第ri个接收端设备,本发明实施例可基于相应的丢失数据包集合L(ri)构建出新的向量P”;
则M”·(P”)T=B”;
进一步变形后有:
(P”)T=(M”)-1·B”
然而,(M”)-1是M”的逆矩阵,不采用常规的矩阵求逆的方式来计算,而是由简单的移位和模二加的操作来实现:
其中,(M”)*是M”的共轭矩阵,为了计算M”,必须先计算出(M”)*,然后乘以(P”)T后,再除以|M”|,等价的上述公式可以写为:
|M”|·(P”)T=(M”)*·B”;
因此可以得到所有属于集合P”的数据包,进而可恢复第ri个接收端设备的丢失数据包。
可选的,接收端设备在恢复出全部丢失数据包后,可向发送端设备返回ACKs信息,如果接收端设备未恢复出全部丢失数据包,则还可向发送端设备报告尚未恢复的数据包。
本发明实施例提出的改进范德蒙矩阵的特性为:矩阵的任意k列一定是线性无关的,即任意k个方程一定能解出任意k个未知数,映射到数据包层面上,所有接收端设备只要正确接收到任意k个数据包,就一定能恢复出其丢失的k个数据包;这样可以将重传的次数降低到理论上最低值;当发送端设备接收到接收端设备的重传请求时,发送端设备将选择所有属于集合L(R)的数据包,利用改进范德蒙矩阵进行编码,然后向所有接收端设备广播重传的编码数据包;对于每一个接收端设备,当第ri个接收端设备接收到的重传的编码数据包达到|L(ri)|个时,第ri个接收端设备所丢失的数据包都可以被恢复。
本发明实施例提供的数据包传输方法的应用例可以如下:
为了更好说明本发明实施例所提出的方案,首先说明一种传统的多播重传编码的方案;考虑一种多播通信***的场景,假定有1个发送端设备s和6个接收端设备r1,r2,…,r6;假设发送节点s已经广播了一个6个原始数据包的数据包组到所有接收端设备,由于无线信道的链路丢包或拥塞丢包等因素,每个接收端设备可能只接收到一个数据包组中的部分数据包;
如图5所示,通过接收端设备反馈的ACKs/NAKs,发送端设备获悉了r1仅接收到了数据包{p1,p2,p3,p4,p5},r2仅接收到了数据包{p1,p2,p3},r3仅接收到了数据包{p1,p5,p6},r4仅接收到了数据包{p1,p2,p4},r5仅接收到了数据包{p1,p3,p5},r6仅接收到了数据包{p1,p4,p6};
基于接收端设备反馈的信息,发送端设备可确定所有接收端设备共丢失了5个不同的数据包,传统的方式中接收端设备需要重传5次,如重传时依次传输p2,p3,p4,p5,p6,重传次数非常多;
假设每个接收端设备可以缓存其每次接收到的编码重传数据包,则当接收端设备收集到足够多有用的信息后再进行编码,从而恢复丢失数据包,这样则可以减少重传的次数;基于这种思路,只需要重传如下3个编码数据包:和当接收端设备r5接收到第一次的编码数据包,发现这个数据包对r5没用,因为r5丢失了p2和p6;如果r5可以缓存这些编码数据包,则当r5接收到第二次的编码数据包后,r5能够首先恢复出p6,因为r5已具有p3和p5,当r5恢复p6后,r5可以利用第一次的编码数据包恢复p2,因为r5已拥有正确的p6和p1;
本发明实施例提出的基于进范德蒙矩阵进行编解码方案可以如下:
对于一有1个发送端设备,5个接收端设备的多播通信***;假设一次传输6个原始数据包,发送端设备发送6个原始数据包后,则设lmax=3,L=5,对于第三个接收端设备r3,其丢失数据包集合L(r3)={p2,p3,p6},6个原始数据包为{p1,p2,p3,p4,p5,p6},每个接收端设备的数据包丢失情况如下表1所示:
p1 | p2 | p3 | p4 | p5 | p6 | |
r1 | 0 | 1 | 0 | 0 | 0 | 0 |
r2 | 1 | 0 | 1 | 0 | 0 | 0 |
r3 | 0 | 1 | 1 | 0 | 0 | 1 |
r4 | 1 | 0 | 0 | 0 | 1 | 0 |
r5 | 0 | 1 | 0 | 0 | 0 | 1 |
表1
则对于第三个接收端设备r3,可得到第一矩阵M和第二矩阵B:
对第一矩阵M进行部分高斯消元后,可以相应的得到矩阵M’和B’
进而可得到M”和B”如下:
因此有|M”|·(p2,p3,p6)T=(M”)*·B”,所以第三个接收端设备r3可以恢复出丢失的数据包p2,p3,p6,此处的矩阵求逆运算采用移位及模2加运算。
下面对本发明实施例提供的发送端设备进行介绍,下文描述的发送端设备可与上文以发送端设备角度描述的数据包传输方法相互对应参照。
图6为本发明实施例提供的发送端设备的结构框图,参照图6,该发送端设备可以包括:
数据包丢失信息接收模块100,用于在向R个接收端设备的各接收端设备发送一批次的L个原始数据包后,接收各接收端设备报告的数据包丢失信息;其中,第ri个接收端设备报告的数据包丢失信息标识有该第ri个接收端设备的丢失数据包集合L(ri),ri属于R,一丢失数据包集合对应至少一丢失数据包;
总丢失数据包集合确定模块110,用于根据各接收端设备的丢失数据包集合,确定所有接收端设备的总丢失数据包集合L(R);
重传次数确定模块120,用于根据总丢失数据包集合确定重传编码数据包的次数lmax,lmax与L(R)中丢失数据包最多的丢失数据包集合的丢失数据包数目相应;
每次重传的数据包确定模块130,用于根据所述lmax、L值,以改进范德蒙矩阵对编码数据包进行编码,确定每次重传的编码数据包;
重传执行模块140,用于基于所确定的每次重传的编码数据包,在每次重传时向各接收端设备重传相应的编码数据包,各重传的编码数据包的包头里包含编码系数。
下面对本发明实施例提供的接收端设备进行介绍,下文描述的接收端设备可与上文以接收端设备角度描述的数据包传输方法相互对应参照。
图7为本发明实施例提供的接收端设备的结构框图,参照图7,该接收端设备可以包括:
数据包丢失信息报告模块200,用于接收发送端设备发送的原始数据包并缓存,确定发送端设备发送的L个原始数据包中的丢失数据包,并生成数据包丢失信息报告给发送端设备,所述数据包丢失信息标识有丢失数据包集合
重传的数据包接收模块210,用于接收发送端设备lmax次重传的编码数据包;
矩阵构造模块220,用于根据已接收的原始数据包和重传的编码数据包,构造第一矩阵M和第二矩阵B;
丢失数据包恢复模块230,用于基于第一矩阵和第二矩阵,以改进范德蒙矩阵求逆运算对所述重传的编码数据包进行解码,得到对应的丢失数据包。
本发明实施例可在多播环境下,接收端设备发送的数据包丢失后,在进行数据包重传时,减少数据重传的次数,并且基于改进范德蒙矩阵编解码编码数据包,可降低计算复杂度,在多播通信***中,高效的实现丢失数据包的重传,提升多播通信***的数据传输时效性及可靠性。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种数据包传输方法,其特征在于,应用于发送端设备,所述方法包括:
在向R个接收端设备的各接收端设备发送一批次的L个原始数据包后,接收各接收端设备报告的数据包丢失信息;其中,第ri个接收端设备报告的数据包丢失信息标识有该第ri个接收端设备的丢失数据包集合L(ri),ri属于R,一丢失数据包集合对应至少一丢失数据包;
根据各接收端设备的丢失数据包集合,确定所有接收端设备的总丢失数据包集合L(R);
根据总丢失数据包集合确定重传编码数据包的次数lmax,lmax与L(R)中丢失数据包最多的丢失数据包集合的丢失数据包数目相应;
根据所述lmax、L值,以改进范德蒙矩阵对编码数据包进行编码,确定每次重传的编码数据包;
基于所确定的每次重传的编码数据包,在每次重传时向各接收端设备重传相应的编码数据包,各重传的编码数据包的包头里包含编码系数。
2.根据权利要求1所述的数据包传输方法,其特征在于,所述改进范德蒙矩阵以V表示,且表达式为:
3.根据权利要求2所述的数据包传输方法,其特征在于,定义发送端设备发送的一批次的L个原始数据包为{q1,q2,q3,…qL};定义lmax次重传编码数据包为{q1',q2',q3',...qlmax'},则确定(q1,q2,q3,...qL)×V=(q1',q2',q3',...qlmax')。
4.根据权利要求3所述的数据包传输方法,其特征在于,所述根据所述lmax、L值,以改进范德蒙矩阵对编码数据包进行编码,确定每次重传的编码数据包包括:
确定第i次重传的编码数据包qi'为,
5.一种数据包传输方法,其特征在于,应用于接收端设备,所述方法包括:
接收发送端设备发送的原始数据包并缓存,确定发送端设备发送的L个原始数据包中的丢失数据包,并生成数据包丢失信息报告给发送端设备,所述数据包丢失信息标识有丢失数据包集合;
接收发送端设备lmax次重传的编码数据包;
根据已接收的原始数据包和重传的编码数据包,构造第一矩阵M和第二矩阵B;
基于第一矩阵和第二矩阵,以改进范德蒙矩阵求逆运算对所述重传的编码数据包进行解码,得到对应的丢失数据包。
6.根据权利要求5所述的数据包传输方法,其特征在于,所述构造第一矩阵M包括:
对于第ri个接收端设备每一个接收的原始数据包qi,建立L-|L(ri)|个L维的向量v1,v1=(0,...,βj,...,0),其中βj=1;
从接收到的lmax次重传的编码数据包中选取前|L(ri)|个编码数据包,并基于该前|L(ri)|个编码数据包的包头包含的编码系数,获得|L(ri)|个L维的向量v2,v2=(1,(x1)i...(xL)i);
基于v1和v2构造出L×L维的矩阵,得到第一矩阵M。
7.根据权利要求6所述的数据包传输方法,其特征在于,所述构造第二矩阵B包括:
从第一矩阵M中确定各重传的编码数据包相应的向量所在行,令第二矩阵B中与所述所在行对应的向量为相应的重传的编码数据包;
从第一矩阵M中确定各接收的原始数据包相应向量的所在列,令第二矩阵B中与所述所在列对应的向量为相应的原始数据包;
以确定的第二矩阵B中各行与各列对应的向量,构造出L×1维的矩阵,得到第二矩阵B。
8.根据权利要求5所述的数据包传输方法,其特征在于,所述基于第一矩阵和第二矩阵,以改进范德蒙矩阵求逆运算对所述重传编码数据包进行解码,得到对应的丢失数据包包括:
利用部分高斯消元的方法将第一矩阵M转换为新的矩阵M’,M’中包含一个范德蒙行列式M”;
利用部分高斯消元的方法将第二矩阵B转换为新的矩阵B’,B’中包含一个范德蒙行列式B”;
对于第ri个接收端设备,基于相应的丢失数据包集合L(ri)构建出新的向量P”;
根据公式|M”|·(P”)T=(M”)*·B”,确定属于集合P”的数据包,恢复第ri个接收端设备的丢失数据包。
9.一种发送端设备,其特征在于,包括:
数据包丢失信息接收模块,用于在向R个接收端设备的各接收端设备发送一批次的L个原始数据包后,接收各接收端设备报告的数据包丢失信息;其中,第ri个接收端设备报告的数据包丢失信息标识有该第ri个接收端设备的丢失数据包集合L(ri),ri属于R,一丢失数据包集合对应至少一丢失数据包;
总丢失数据包集合确定模块,用于根据各接收端设备的丢失数据包集合,确定所有接收端设备的总丢失数据包集合L(R);
重传次数确定模块,用于根据总丢失数据包集合确定重传编码数据包的次数lmax,lmax与L(R)中丢失数据包最多的丢失数据包集合的丢失数据包数目相应;
每次重传的数据包确定模块,用于根据所述lmax、L值,以改进范德蒙矩阵对编码数据包进行编码,确定每次重传的编码数据包;
重传执行模块,用于基于所确定的每次重传的编码数据包,在每次重传时向各接收端设备重传相应的编码数据包,各重传的编码数据包的包头里包含编码系数。
10.一种接收端设备,其特征在于,包括:
数据包丢失信息报告模块,用于接收发送端设备发送的原始数据包并缓存,确定发送端设备发送的L个原始数据包中的丢失数据包,并生成数据包丢失信息报告给发送端设备,所述数据包丢失信息标识有丢失数据包集合
重传的数据包接收模块,用于接收发送端设备lmax次重传的编码数据包;
矩阵构造模块,用于根据已接收的原始数据包和重传的编码数据包,构造第一矩阵M和第二矩阵B;
丢失数据包恢复模块,用于基于第一矩阵和第二矩阵,以改进范德蒙矩阵求逆运算对所述重传的编码数据包进行解码,得到对应的丢失数据包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610305878.5A CN105827416B (zh) | 2016-05-10 | 2016-05-10 | 一种数据包传输方法、发送端设备及接收端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610305878.5A CN105827416B (zh) | 2016-05-10 | 2016-05-10 | 一种数据包传输方法、发送端设备及接收端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105827416A true CN105827416A (zh) | 2016-08-03 |
CN105827416B CN105827416B (zh) | 2019-03-05 |
Family
ID=56529269
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610305878.5A Active CN105827416B (zh) | 2016-05-10 | 2016-05-10 | 一种数据包传输方法、发送端设备及接收端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105827416B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109495213A (zh) * | 2018-11-23 | 2019-03-19 | 辽宁工程技术大学 | 一种基于汉明重量编码的广播重传方法及*** |
CN112600647A (zh) * | 2020-12-08 | 2021-04-02 | 西安电子科技大学 | 基于网络编码续航的多跳无线网络传输方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117718A1 (en) * | 2002-12-16 | 2004-06-17 | Microsoft Corporation | Systems and methods for providing improved encoding and reconstruction of data |
CN1925382A (zh) * | 2005-08-29 | 2007-03-07 | 中兴通讯股份有限公司 | 一种混合自动请求重传的方法 |
CN101411188A (zh) * | 2006-04-04 | 2009-04-15 | 三星电子株式会社 | 数字广播***及其数据处理方法 |
CN101729364A (zh) * | 2008-10-10 | 2010-06-09 | 清华大学 | 数据传送***和方法 |
CN101741511A (zh) * | 2008-11-11 | 2010-06-16 | 任晓红 | 无线数据通信技术的传送*** |
-
2016
- 2016-05-10 CN CN201610305878.5A patent/CN105827416B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040117718A1 (en) * | 2002-12-16 | 2004-06-17 | Microsoft Corporation | Systems and methods for providing improved encoding and reconstruction of data |
CN1925382A (zh) * | 2005-08-29 | 2007-03-07 | 中兴通讯股份有限公司 | 一种混合自动请求重传的方法 |
CN101411188A (zh) * | 2006-04-04 | 2009-04-15 | 三星电子株式会社 | 数字广播***及其数据处理方法 |
CN101729364A (zh) * | 2008-10-10 | 2010-06-09 | 清华大学 | 数据传送***和方法 |
CN101741511A (zh) * | 2008-11-11 | 2010-06-16 | 任晓红 | 无线数据通信技术的传送*** |
Non-Patent Citations (2)
Title |
---|
曹震等: "《单向信道的信息可靠传输机制研究》", 《计算机工程与应用》 * |
高振国: "《基于随机网络编码的无线报文重传最优策略》", 《北京航空航天大学学报》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109495213A (zh) * | 2018-11-23 | 2019-03-19 | 辽宁工程技术大学 | 一种基于汉明重量编码的广播重传方法及*** |
CN112600647A (zh) * | 2020-12-08 | 2021-04-02 | 西安电子科技大学 | 基于网络编码续航的多跳无线网络传输方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105827416B (zh) | 2019-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101714915B (zh) | 一种数据重传方法及*** | |
Nonnenmacher et al. | How bad is reliable multicast without local recovery? | |
Chatzigeorgiou et al. | Decoding delay performance of random linear network coding for broadcast | |
CN101394555B (zh) | 适用于深空通信的高容错低延时的视频传输方法及装置 | |
US9166734B2 (en) | Method and device for frame aggregation transmission of wireless network system | |
CN102497248B (zh) | 基于网络编码的数据重传方法 | |
CN103580773A (zh) | 数据帧的传输方法及装置 | |
CN109714130B (zh) | 一种基于喷泉码的文件传输方法 | |
WO2010139265A1 (zh) | 基于前向纠错的重传方法、设备和通信*** | |
Khalaf et al. | Improving video transmission over heterogeneous network by using ARQ and FEC error correction algorithm | |
WO2021012727A1 (zh) | 数据传输方法、装置和存储介质 | |
CN103312478A (zh) | 用于数据网络中的数据传输的方法和*** | |
US20150333874A1 (en) | A transmitting and a receiving device and respective methods performed thereby for improving retransmissions in wireless networks | |
CN102239658B (zh) | 按需差错控制 | |
JP5950433B2 (ja) | データフレームの再送信減少方法及びこのための受信ノード | |
CN105391530A (zh) | 一种基于网络编码的卫星网络可靠组播方法 | |
Chakraborty et al. | Investigation of Two New Protocols of Aggressive Packet combining scheme in achieving better throughput | |
Rossi et al. | On the delay statistics of SR ARQ over Markov channels with finite round-trip delay | |
CN105827416A (zh) | 一种数据包传输方法、发送端设备及接收端设备 | |
CN101552661A (zh) | 一种差错控制方法 | |
CN111865491B (zh) | 一种极化编码混合自动请求重传自解码方法、装置及*** | |
CN102025473A (zh) | 分组网中基于代间网络编码的重传方法 | |
Schütz et al. | Adding a network coding extension to CoAP for large resource transfer | |
CN109982264A (zh) | 一种车联网的数据发送方法及相关装置 | |
Malak et al. | ARQ with cumulative feedback to compensate for burst errors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |