发明内容
有鉴于此,本发明的主要目的在于提供一种减少状态报告长度的方法、系统及接收端,能够有效减少接收端生成的状态报告的长度。
为达到上述目的,本发明的技术方案是这样实现的:
本发明提供一种减少状态报告长度的方法,该方法包括:
当接收端确定状态报告开关小于预设的状态报告门限时,对生成的状态报告进行修改,将已收到的数据分段的起止位置作为状态报告的内容发送给发送端。
上述方法中,
所述当接收端确定状态报告开关小于预设的状态报告门限时,对生成的状态报告进行修改之前,该方法还包括:接收端生成状态报告,并计算状态报告开关,判断状态报告开关与预设的状态报告门限的大小;
该方法还包括:当接收端确定状态报告开关大于或等于预设的状态报告门限时,接收端将生成的状态报告直接发送给发送端;
该方法还包括:发送端根据收到的状态报告,将需要重传的数据分段发送给接收端。
上述方法中,所述接收端生成状态报告,并计算状态报告开关为:
接收端生成状态报告,所述状态报告的内容是接收端未收到的数据分段的起止位置;接收端计算状态报告开关K,其中,
,flag
sn表示的是状态报告中状态变量NACK_SN中,已收到的数据分段的数量或未收到的数据分段的数量。
上述方法中,所述对生成的状态报告进行修改,将已收到的数据分段的起止位置作为状态报告的内容发送给发送端为:
接收端对利用非000字段填充所述生成的状态报告中的CPT分段,重新构造所述生成的状态报告中的未收到的数据分段的起止位置,即利用已收到的数据分段的起止位置替代未收到的数据分段的起止位置;接收端将修改后的状态报告发送给发送端,其中修改后的状态报告的内容是已收到的数据分段的起止位置。
上述方法中,所述发送端根据收到的状态报告,将需要重传的数据分段发送给接收端为:
发送端根据收到的状态报告中的CPT分段确定收到的状态报告是否经过修改,如果该CPT分段不为000,则发送端根据状态报告中的已收到的数据分段的起止位置,反推获得未收到的数据分段的起止位置,将与该未收到的数据分段的起止位置对应的需要重传的数据发送给接收端;如果该CPT分段为000,则发送端直接将状态报告中的未收到的数据分段的起止位置对应的需要重传的数据发送给接收端。
本发明还提供一种减少状态报告长度的系统,该系统包括:接收端,发送端;其中,
接收端,用于当确定状态报告开关小于预设的状态报告门限时,对生成的状态报告进行修改,将已收到的数据分段的起止位置作为状态报告的内容发送给发送端;
发送端,用于接收接收端发送的状态报告。
上述系统中,
所述接收端还用于,生成状态报告,并计算状态报告开关,判断状态报告开关与预设的状态报告门限的大小;
所述接收端还用于,当确定状态报告开关大于或等于预设的状态报告门限时,将生成的状态报告直接发送给发送端;
所述发送端,还用于根据收到的状态报告,将需要重传的数据分段发送给接收端。
本发明还提供一种接收端,该接收端包括:生成和计算模块、判断模块、修改模块、发送模块;其中,
生成和计算模块,用于生成状态报告,并计算状态报告开关;
判断模块,用于判断状态报告开关与预设的状态报告门限的大小;
修改模块,用于当判断模块确定状态报告开关小于预设的状态报告门限时,对生成的状态报告进行修改,将已收到的数据分段的起止位置作为状态报告的内容发送给发送模块;
发送模块,用于将从修改模块收到的状态报告发送给发送端,或当判断模块确定状态报告开关大于或等于预设的状态报告门限时,将生成的状态报告直接发送给发送端。
本发明提供的减少状态报告长度的方法、系统及接收端,当接收端确定状态报告开关小于预设的状态报告门限时,对生成的状态报告进行修改,将已收到的数据分段的起止位置作为状态报告的内容发送给发送端,在不影响RLC AM模式的ARQ机制下,能够有效减少接收端生成的状态报告的长度,从而降低状态报告在无线资源中的占用率,节省资源;此外,利用状态报告开关K准确估算出节省资源的比例,可以根据状态报告开关设置状态报告门限,灵活方便。
具体实施方式
本发明的基本思想是:当接收端确定状态报告开关小于预设的状态报告门限时,对生成的状态报告进行修改,将已收到的数据分段的起止位置作为状态报告的内容发送给发送端。
下面通过附图及具体实施例对本发明再做进一步的详细说明。
本发明提供一种减少状态报告长度的方法,图1是本发明实现减少状态报告长度的方法的流程示意图,如图1所示,该方法包括以下步骤:
步骤101,接收端生成状态报告,并计算状态报告开关;
具体的,接收端会开启一个缓冲区,用于存储从发送端收到的数据包,在传输数据包的过程中,由于存在无线波动等影响,数据包中会有部分的数据丢失,此时,接收端需要通知发送端将丢失的数据进行重新发送,因此接收端需要按照TS36.322协议中描述的方法生成状态报告,利用该状态报告通知发送端需要重新发送的数据;其中,该状态报告的内容是接收端未收到的数据分段的起止位置,该起止位置是指起始地址和结尾地址;
接收端计算状态报告开关K,这里
其中,变量flag
sn表示的是状态报告中状态变量NACK_SN中,已收到的数据分段的数量或未收到的数据分段的数量,一个已收到的数据分段对应的flag
sn的值是+1,一个未收到的数据分段对应的flag
sn的值是-1;根据flag
sn的取值,该状态报告开关K存在三种取值,分别是-1、0、+1。
步骤102,接收端判断状态报告开关与预设的状态报告门限的大小,如果状态报告开关小于状态报告门限,执行步骤103,如果状态报告开关大于或等于状态报告门限,执行步骤104;
具体的,接收端根据计算出的状态报告开关,判断该状态报告开关与预设的状态报告门限的大小,其中,预设的状态报告门限是预先在接收端设置的,本实施例中,预设的状态报告门限为0;如果状态报告开关小于该状态报告门限,即K<0,执行步骤103,如果状态报告开关大于或等于状态报告门限,即K≥0,执行步骤104。
步骤103,接收端对状态报告进行修改,将已收到的数据分段的起止位置作为状态报告的内容发送给发送端;
具体的,接收端对状态报告进行修改,即利用非000字段填充步骤101中生成的状态报告中的CPT分段,用于表示接收端对状态报告进行了修改,这里非000字段包括:001、010、011、100、101、110或111;图2是本发明中步骤101中生成的状态报告的示意图,如图2所示,接收端重新构造步骤101中生成的状态报告中的未收到的数据分段的起止位置(Sostart和Soend分段);图3是本发明中步骤101中生成的状态报告的部分数据分段的示意图,如图3所示,阴影部分表示接收端已收到的数据分段,该已收到的数据分段如图2中的NACK_SN分段,已收到的数据分段的起止位置是图3中的数据分段的上面的SOstart和SOend,图3中的空白部分表示未收到的数据分段,未收到的数据分段的起止位置是图3中的数据分段的下面的两个SOstart和SOend,这里,将图3中数据分段上面的SOstart和SOend替代图3中数据分段下面的两个SOstart和SOend,即将已收到的数据分段的起止位置替代未收到的数据分段的起止位置;这样,如图3所示的情况,未修改的状态报告中的内容是两个未收到的数据分段的起止位置,修改后的状态报告的内容是一个已收到的数据分段的起始位置,状态报告的长度缩短为原来的二分之一;接收端将修改后的状态报告发送给发送端,其中修改后的状态报告的内容是已收到的数据分段的起止位置。
步骤104,接收端将生成的状态报告直接发送给发送端。
步骤105,发送端根据收到的状态报告,将需要重传的数据分段发送给接收端;
具体的,发送端收到接收端发送的状态报告后,根据其中的CPT分段确定收到的状态报告是否经过修改,如果该CPT分段不为000,表示状态报告已经经过修改,则发送端根据状态报告中的已收到的数据分段的起止位置,反推获得未收到的数据分段的起止位置,将与该未收到的数据分段的起止位置对应的需要重传的数据发送给接收端;如果该CPT分段为000,表示状态报告未经过修改,则发送端直接将状态报告中的未收到的数据分段的起止位置对应的需要重传的数据发送给接收端。
图4是本发明实现减少状态报告长度的方法的实施例一的流程示意图,如图4所示,该方法包括以下步骤:
步骤401,接收端生成状态报告,并计算出状态报告开关等于-1;
具体的,图5~图7是接收端需要发送端重传的数据,如图5~图7所示,阴影部分表示接收端已收到的数据分段,空白部分表示接收端未收到的数据分段;图8是本发明实现减少状态报告长度的方法的实施例一的状态报告的示意图,按照TS36.322协议中描述的方法生成如图8所示的状态报告;根据生成的状态报告计算状态报告开关,本实施例中,图8所示的状态报告的状态报告开关K=-1。
步骤402,接收端对状态报告进行修改,将已收到数据分段的起止位置作为状态报告的内容发送给发送端;
具体的,由于状态报告开关K小于状态报告门限,即K<0,接收端对状态报告进行修改,修改后的状态报告如图9所示,原状态报告中与修改后的状态报告中的数据分段有如下对应关系:SN=B的Sostart5=0,Soend6=Sostart1,Sostart7=Soend2,Soend8=Sostart3;SN=C的Sostart5=Soend2,Soend6=Sostart3;接收端将修改后的状态报告发送给发送端。
步骤403,发送端根据收到的状态报告,反推获得未收到的数据分段的起止位置,将该未收到的的数据分段发送给接收端;
具体的,发送端收到接收端发送的状态报告后,由于其中的CPT分段为001,表示状态报告已经经过修改,则发送端根据状态报告中的已经收到的数据分段的起止位置,反推获得未收到的数据分段的起止位置,将与该未收到的数据分段的起止位置对应的需要重传的数据发送给接收端。
这里,参考图3和图6对K的计算方法进行说明:图3中没有收到的数据分段是2段,因此在对flagsn求和时,存在两个flagsn等于-1,已收到的数据分段是1段,因此在对flagsn求和时,存在一个flagsn等于+1,因此K=(-1)+(+1)+(-1)=-1;图6中,没有收到的数据分段是2段,因此在对flagsn求和时,存在两个flagsn等于-1,已收到的数据分段是2段,因此在对flagsn求和时,存在两个flagsn等于+1,因此K=(+1)+(-1)+(+1)+(-1)=0。
将图8和图9进行比较可以看出,利用上述方法对状态报告进行修改后,大大减小了状态报告的长度。
为实现上述方法,本发明还提供一种减少状态报告长度的系统,图10是本发明实现减少状态报告长度的系统的结构示意图,如图10所示,该系统包括:接收端101,发送端102;其中,
接收端101,用于当确定状态报告开关小于预设的状态报告门限时,对生成的状态报告进行修改,将已收到的数据分段的起止位置作为状态报告的内容发送给发送端102;
发送端102,用于接收接收端101发送的状态报告。
所述接收端101还用于,生成状态报告,并计算状态报告开关,判断状态报告开关与预设的状态报告门限的大小;
所述接收端101还用于,当确定状态报告开关大于或等于预设的状态报告门限时,将生成的状态报告直接发送给发送端102;
所述发送端102,还用于根据收到的状态报告,将需要重传的数据分段发送给接收端。
所述接收端101生成状态报告,并计算状态报告开关为:接收端101生成状态报告,所述状态报告的内容是未收到的数据分段的起止位置;接收端101计算状态报告开关K,其中,
,flag
sn表示的是状态报告中状态变量NACK_SN中,已收到的数据分段的数量或未收到的数据分段的数量。
所述对生成的状态报告进行修改,将已收到的数据分段的起止位置作为状态报告的内容发送给发送端102为:接收端101对利用非000字段填充所述生成的状态报告中的CPT分段,重新构造所述生成的状态报告中的未收到的数据分段的起止位置,即利用已收到的数据分段的起止位置替代未收到的数据分段的起止位置;接收端将修改后的状态报告发送给发送端102,其中修改后的状态报告的内容是已收到的数据分段的起止位置。
所述发送端102根据收到的状态报告,将需要重传的数据分段发送给接收端101为:发送端102根据收到的状态报告中的CPT分段确定收到的状态报告是否经过修改,如果该CPT分段为不000,则发送端102根据状态报告中的已收到的数据分段的起止位置,反推获得未收到的数据分段的起止位置,将与该未收到的数据分段的起止位置对应的需要重传的数据发送给接收端101;如果该CPT分段为000,则发送端102直接将状态报告中的未收到的数据分段的起止位置对应的需要重传的数据发送给接收端101。
所述接收端101进一步包括:生成和计算模块1011、判断模块1012、修改模块1013、发送模块1014;其中,
生成和计算模块1011,用于生成状态报告,并计算状态报告开关;
判断模块1012,用于判断状态报告开关与预设的状态报告门限的大小;
修改模块1013,用于当判断模块确定状态报告开关小于预设的状态报告门限时,对生成的状态报告进行修改,将已收到的数据分段的起止位置作为状态报告的内容发送给发送模块1014;
发送模块1014,用于将从修改模块1013收到的状态报告发送给发送端,或当判断模块1012确定状态报告开关大于或等于预设的状态报告门限时,将生成的状态报告直接发送给发送端102。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。