一种数据传输方法及设备

申请号 CN201480008041.3 申请日 2014-06-25 公开(公告)号 CN104995950A 公开(公告)日 2015-10-21
申请人 华为技术有限公司; 发明人 黄敏; 张姝;
摘要 本 发明 实施例 公开了一种数据传输方法及设备,涉及通信技术领域,可以减少第一设备和第二设备之间的无线空口链路中传输的TCP层ACK包的数量,进而降低无线空口链路的资源消耗,从而可以提高无线业务数据的传输效率。具体方案为:第一设备获取TCP层ACK;若TCP层ACK所对应的TCP层数据包为第一设备解析第一设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且TCP层ACK满足预设条件,则拦截TCP层ACK。本发明用于基于TCP连接的数据包传输过程中。
权利要求

1.一种数据传输方法,其特征在于,包括:
第一设备获取传输控制协议TCP层确认ACK;
若所述TCP层ACK所对应的TCP层数据包为所述第一设备解析所述第一设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且所述TCP层ACK满足预设条件,则拦截所述TCP层ACK;
其中,所述TCP层ACK满足所述预设条件包括:所述TCP层ACK不符合第一过滤标准中的至少一个过滤条件,且所述TCP层ACK属于第一拦截类和第二拦截类中的至少一项。
2.根据权利要求1所述的数据传输方法,其特征在于,所述方法还包括:
在通过所述无线空口链路接收到来自所述第二设备的链路层数据包后,发送链路层ACK至所述第二设备,以使所述第二设备根据所述链路层ACK确定所述第一设备已接收到所述TCP层数据包。
3.根据权利要求1所述的数据传输方法,其特征在于,还包括:
若所述TCP层ACK所对应的TCP层数据包不是所述第一设备解析所述第一设备通过所述无线空口链路接收到的链路层数据包得到的TCP层数据包,则发送所述TCP层ACK至所述第二设备;或者,
若所述TCP层ACK所对应的TCP层数据包为所述第一设备解析所述第一设备通过所述无线空口链路接收到的链路层数据包得到的TCP层数据包,且所述TCP层ACK不满足所述预设条件,则发送所述TCP层ACK至所述第二设备。
4.根据权利要求1至3任一项所述的数据传输方法,其特征在于,所述第一过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合;
所述TCP层ACK是所述第一设备在接收到链路层数据包后,携带在发送至所述第二设备的其他数据包中,延迟发送至所述第二设备的ACK;
所述TCP层ACK是SYN比特位未置1的ACK;
所述TCP层ACK中携带有TCP最大报文长度选项、TCP窗口扩大因子选项以及TCP Sack使能选项;
所述TCP层ACK中携带有多路TCP协议中的TCP选项;
所述TCP层ACK中携带的接收窗口不小于预设限。
5.根据权利要求1至4任一项所述的数据传输方法,其特征在于,在所述第一拦截类中,所述TCP层ACK的序列号所对应的TCP层数据包未记录在TCP层数据包的缓存中,且所述TCP层ACK的序列号之前的ACK序列号所对应的TCP层数据包均记录在所述TCP层数据包的缓存中;
在所述第二拦截类中,所述TCP层ACK的序列号等于第一序列号,所述第一序列号在每次获取到TCP层ACK但未拦截获取到的TCP层ACK之前进行一次更新。
6.根据权利要求1至5任一项所述的数据传输方法,其特征在于,所述TCP层ACK满足所述预设条件,还包括:所述TCP层ACK不符合第二过滤标准中的至少一个过滤条件;
其中,所述第二过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合;
所述TCP层ACK中携带有TCP时间戳选项;
所述TCP层ACK中携带有TCP Sack选项。
7.根据权利要求1至6中任一项所述的数据传输方法,其特征在于,在所述获取传输控制协议TCP层确认ACK之前,所述方法还包括:
接收来自所述第二设备的第一能协商信令,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
根据所述第一拦截操作和第二ACK种类确定ACK种类交集,并根据所述第一拦截参数和第二拦截参数确定拦截参数交集,所述ACK种类交集为所述第一ACK种类与所述第二ACK种类的交集,所述拦截参数交集为所述第一拦截参数与所述第二拦截参数的交集,所述第二ACK种类为所述第一设备进行拦截判定时,拦截的TCP层ACK所归属的ACK种类,所述第二ACK种类包括所述第一拦截类和/或所述第二拦截类,所述第二拦截参数为所述第一设备进行拦截判定所采用的拦截参数,所述第二拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
根据所述ACK种类交集,确定所述第一设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述第二设备均支持的拦截参数;
发送第二能力协商信令至所述第二设备,所述第二能力协商信令中包含所述第二ACK种类和所述第二拦截参数;
其中,所述第二能力协商信令用于指示所述第二设备获取ACK种类交集和拦截参数交集,进而根据所述ACK种类交集,确定所述第一设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述第二设备均支持的拦截参数。
8.根据权利要求1至6中任一项所述的数据传输方法,其特征在于,在所述获取传输控制协议TCP层确认ACK之前,所述方法还包括:
接收来自所述第二设备的第一能力协商信令,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
根据所述第一拦截操作,确定所述第一设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述第一设备支持的拦截参数。
9.根据权利要求1至8中任一项所述的数据传输方法,其特征在于,所述第一设备为用户设备,所述第二设备无线接入网RAN侧设备,或者,所述第一设备为所述RAN侧设备,所述第二设备为所述用户设备。
10.一种数据传输方法,其特征在于,包括:
第二设备接收来自第一设备的链路层确认ACK,所述链路层ACK为所述第一设备在接收到第二设备发送的链路层数据包后发送的;
根据所述链路层ACK确定所述第一设备已接收到TCP层数据包;
其中,所述TCP层数据包为所述第一设备解析所述链路层数据包得到的。
11.根据权利要求10所述的数据传输方法,其特征在于,在所述第二设备接收来自第一设备的链路层ACK之前,所述方法还包括:
获取所述TCP层数据包与所述链路层数据包之间的映射关系,所述TCP层数据包与所述链路层数据包之间的映射关系至少包括:所述TCP层数据包的序列号与所述链路层数据包的序列号之间的映射关系。
12.根据权利要求11所述的数据传输方法,其特征在于,所述链路层ACK中包含与所述链路层ACK对应的链路层数据包的序列号;
所述根据所述链路层ACK确定所述第一设备已接收到TCP层数据包,包括:
根据所述链路层数据包的序列号、所述TCP层数据包的序列号与所述链路层数据包的序列号之间的映射关系,确定所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号,所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号为所述第一设备成功接收的TCP层数据包的序列号。
13.根据权利要求12所述的数据传输方法,其特征在于,所述第一设备为用户设备,所述第二设备无线接入网RAN侧设备;
在所述确定所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号之后,所述方法还包括:
根据所述第一设备成功接收的TCP层数据包的序列号,构造TCP层ACK;
其中,所述TCP层ACK的序列号为确认连续数据包的序列号与所述确认连续数据包的包长之和;所述TCP层ACK用于向应用服务器指示所述第一设备已接收到所述TCP层数据包;所述链路层数据包为所述第二设备封装接收自所述应用服务器的TCP层得到的;
所述确认连续数据包为所述第二设备已确定的所述第一设备成功接收的所有TCP层数据包中,序列号按照从小到大的顺序连续的TCP层数据包中,所述序列号最大的TCP层数据包。
14.根据权利要求10所述的数据传输方法,其特征在于,在所述根据所述链路层ACK确定所述第一设备已接收到TCP层数据包之前,所述方法还包括:
接收来自所述第一设备的第二能力协商信令,所述第二能力协商信令中包含所述第二ACK种类和所述第二拦截参数,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第二拦截参数至少包括所述第一ACK中携带的接收窗口的预设门限;
根据所述第二ACK种类和第一拦截操作确定ACK种类交集,并根据所述第二拦截参数和第一拦截参数确定拦截参数交集,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括所述第一拦截类和/或所述第二拦截类,所述ACK种类交集为所述第一ACK种类与所述第二ACK种类的交集,所述拦截参数交集为第一拦截参数与第二拦截参数的交集,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
根据所述ACK种类交集,确定所述第一设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述第二设备均支持的拦截参数;
发送第一能力协商信令至所述第一设备,所述第一能力协商信令中包含所述第一拦截操作和所述第一拦截参数;
其中,所述第一能力协商信令用于指示所述第一设备获取ACK种类交集和拦截参数交集,进而根据所述ACK种类交集,确定所述第一设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述第二设备均支持的拦截参数。
15.根据权利要求10所述的数据传输方法,其特征在于,在所述根据所述链路层ACK确定所述第一设备已接收到所述TCP层数据包之前,所述方法还包括:
发送第一能力协商信令至所述第一设备,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
根据所述第一ACK种类,确定所述所述第二设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述第二设备支持的拦截参数;
其中,所述第一能力协商信令用于指示所述第一设备设备根据所述第一ACK种类,确定所述第一设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述第一设备支持的拦截参数。
16.根据权利要求10至12、14或15中任一项所述的数据传输方法,其特征在于,所述第一设备为用户设备,所述第二设备RAN侧设备,或者,所述第一设备为所述RAN侧设备,所述第二设备为所述用户设备。
17.一种设备,其特征在于,包括:
获取单元,用于获取传输控制协议TCP层确认ACK;
拦截单元,用于若所述获取单元获取的所述TCP层ACK所对应的TCP层数据包为所述设备解析所述设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且所述TCP层ACK满足预设条件,则拦截所述TCP层ACK;
其中,所述TCP层ACK满足所述预设条件包括:所述TCP层ACK不符合第一过滤标准中的至少一个过滤条件,且所述TCP层ACK属于第一拦截类和第二拦截类中的至少一项。
18.根据权利要求17所述的设备,其特征在于,还包括:
接收单元,用于通过所述无线空口链路接收来自所述第二设备的链路层数据包;
发送单元,用于在所述接收单元通过所述无线空口链路接收到来自所述第二设备的链路层数据包后,发送链路层ACK至所述第二设备,以使所述第二设备根据所述链路层ACK确定所述设备已接收到所述TCP层数据包。
19.根据权利要求17所述的设备,其特征在于,还包括:
发送单元,用于若所述获取单元获取的所述TCP层ACK所对应的TCP层数据包不是所述设备解析所述设备通过所述无线空口链路接收到的链路层数据包得到的TCP层数据包,则发送所述TCP层ACK至所述第二设备;或者,
所述发送单元,还用于若所述TCP层ACK所对应的TCP层数据包为所述设备解析所述设备通过所述无线空口链路接收到的链路层数据包得到的TCP层数据包,且所述TCP层ACK不满足所述预设条件,则发送所述TCP层ACK至所述第二设备。
20.根据权利要求17至19任一项所述的设备,其特征在于,所述第一过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合;
所述TCP层ACK是所述设备在接收到链路层数据包后,携带在发送至所述第二设备的其他数据包中,延迟发送至所述第二设备的ACK;
所述TCP层ACK是SYN比特位未置1的ACK;
所述TCP层ACK中携带有TCP最大报文长度选项、TCP窗口扩大因子选项以及TCP Sack使能选项;
所述TCP层ACK中携带有多路TCP协议中的TCP选项;
所述TCP层ACK中携带的接收窗口不小于预设门限。
21.根据权利要求17至20任一项所述的设备,其特征在于,在所述第一拦截类中,所述TCP层ACK的序列号所对应的TCP层数据包未记录在TCP层数据包的缓存中,且所述TCP层ACK的序列号之前的ACK序列号所对应的TCP层数据包均记录在所述TCP层数据包的缓存中;
在所述第二拦截类中,所述TCP层ACK的序列号等于第一序列号,所述第一序列号在每次获取到TCP层ACK但未拦截获取到的TCP层ACK之前进行一次更新。
22.根据权利要求17至21任一项所述的设备,其特征在于,所述TCP层ACK满足所述预设条件,还包括:所述TCP层ACK不符合第二过滤标准中的至少一个过滤条件;
其中,所述第二过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合;
所述TCP层ACK中携带有TCP时间戳选项;
所述TCP层ACK中携带有TCP Sack选项。
23.根据权利要求17至22中任一项所述的设备,其特征在于,还包括:
接收单元,用于在所述获取单元获取所述TCP层ACK之前,接收来自所述第二设备的第一能力协商信令,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
第一确定单元,用于根据所述接收单元接收的所述第一拦截操作和第二ACK种类确定ACK种类交集,并根据所述接收单元接收的所述第一拦截参数和第二拦截参数确定拦截参数交集,所述ACK种类交集为所述第一ACK种类与所述第二ACK种类的交集,所述拦截参数交集为所述第一拦截参数与所述第二拦截参数的交集,所述第二ACK种类为所述设备进行拦截判定时,拦截的TCP层ACK所归属的ACK种类,所述第二ACK种类包括所述第一拦截类和/或所述第二拦截类,所述第二拦截参数为所述设备进行拦截判定所采用的拦截参数,所述第二拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
第二确定单元,用于根据所述第一确定单元确定的所述ACK种类交集,确定所述设备和所述第二设备均支持拦截的ACK种类,并根据所述第一确定单元确定的所述拦截参数交集,确定所述设备和所述第二设备均支持的拦截参数;
发送单元,用于发送第二能力协商信令至所述第二设备,所述第二能力协商信令中包含所述第二ACK种类和所述第二拦截参数;
其中,所述第二能力协商信令用于指示所述第二设备获取ACK种类交集和拦截参数交集,进而根据所述ACK种类交集,确定所述设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述设备和所述第二设备均支持的拦截参数。
24.根据权利要求1至22中任一项所述的设备,其特征在于,还包括:
接收单元,用于在所述获取单元获取所述TCP层ACK之前,接收来自所述第二设备的第一能力协商信令,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
第三确定单元,用于根据所述接收单元接收的所述第一拦截操作,确定所述设备支持拦截的ACK种类,并根据所述接收单元接收的所述第一拦截参数,确定所述设备支持的拦截参数。
25.根据权利要求1至24中任一项所述的设备,其特征在于,所述设备为用户设备,所述第二设备无线接入网RAN侧设备,或者,所述设备为所述RAN侧设备,所述第二设备为所述用户设备。
26.一种设备,其特征在于,包括:
接收单元,用于接收来自第一设备的链路层确认ACK,所述链路层ACK为所述第一设备在接收到设备发送的链路层数据包后发送的;
第一确定单元,用于根据所述接收单元接收的所述链路层ACK确定所述第一设备已接收到TCP层数据包;
其中,所述TCP层数据包为所述第一设备解析所述链路层数据包得到的。
27.根据权利要求26所述的设备,其特征在于,还包括:
获取单元,用于在所述接收单元接收来自所述第一设备的所述链路层ACK之前,获取所述TCP层数据包与所述链路层数据包之间的映射关系,所述TCP层数据包与所述链路层数据包之间的映射关系至少包括:所述TCP层数据包的序列号与所述链路层数据包的序列号之间的映射关系。
28.根据权利要求27所述的设备,其特征在于,所述链路层ACK中包含与所述链路层ACK对应的链路层数据包的序列号;
所述第一确定单元,还用于根据所述链路层数据包的序列号、所述TCP层数据包的序列号与所述链路层数据包的序列号之间的映射关系,确定所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号,所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号为所述第一设备成功接收的TCP层数据包的序列号。
29.根据权利要求28所述的设备,其特征在于,所述第一设备为用户设备,所述设备无线接入网RAN侧设备;
所述设备,还包括:
构造单元,用于在所述第一确定单元确定所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号之后,根据所述第一设备成功接收的TCP层数据包的序列号,构造TCP层ACK;
其中,所述TCP层ACK的序列号为确认连续数据包的序列号与所述确认连续数据包的包长之和;所述TCP层ACK用于向应用服务器指示所述第一设备已接收到所述TCP层数据包;所述链路层数据包为所述设备封装接收自所述应用服务器的TCP层得到的;
所述确认连续数据包为所述设备已确定的所述第一设备成功接收的所有TCP层数据包中,序列号按照从小到大的顺序连续的TCP层数据包中,所述序列号最大的TCP层数据包。
30.根据权利要求26所述的设备,其特征在于,所述接收单元,还用于在所述第一确定单元根据所述链路层ACK确定所述第一设备已接收到所述TCP层数据包之前,接收来自所述第一设备的第二能力协商信令,所述第二能力协商信令中包含所述第二ACK种类和所述第二拦截参数,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第二拦截参数至少包括所述第一ACK中携带的接收窗口的预设门限;
所述设备,还包括:
第二确定单元,还用于根据所述接收单元接收的所述第二ACK种类和第一拦截操作确定ACK种类交集,并根据所述接收单元接收的所述第二拦截参数和第一拦截参数确定拦截参数交集,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括所述第一拦截类和/或所述第二拦截类,所述ACK种类交集为所述第一ACK种类与所述第二ACK种类的交集,所述拦截参数交集为第一拦截参数与第二拦截参数的交集,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
第三确定单元,用于根据所述第二确定单元确定的所述ACK种类交集,确定所述第一设备和所述设备均支持拦截的ACK种类,并根据所述第二确定单元确定的所述拦截参数交集,确定所述第一设备和所述设备均支持的拦截参数;
发送单元,用于发送第一能力协商信令至所述第一设备,所述第一能力协商信令中包含所述第一拦截操作和所述第一拦截参数;
其中,所述第一能力协商信令用于指示所述第一设备获取ACK种类交集和拦截参数交集,进而根据所述ACK种类交集,确定所述第一设备和所述设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述设备均支持的拦截参数。
31.根据权利要求26所述的设备,其特征在于,还包括:
发送单元,用于在所述第一确定单元根据所述链路层ACK确定所述第一设备已接收到所述TCP层数据包之前,发送第一能力协商信令至所述第一设备,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
第四确定单元,用于根据所述第一ACK种类,确定所述所述设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述设备支持的拦截参数;
其中,所述第一能力协商信令用于指示所述第一设备设备根据所述第一ACK种类,确定所述第一设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述第一设备支持的拦截参数。
32.根据权利要求26-28、30或31中任一项所述的设备,其特征在于,所述第一设备为用户设备,所述设备RAN侧设备,或者,所述第一设备为所述RAN侧设备,所述设备为所述用户设备。

说明书全文

一种数据传输方法及设备

技术领域

[0001] 本发明涉及通信技术领域,尤其涉及一种数据传输方法及设备。

背景技术

[0002] 传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的可靠传输协议。其中,TCP可以提供TCP数据传输过程中的确认机制。具体的,数据包接收端在接收到一个TCP数据包后,可以向数据包发送端回复一个确认(Acknowledgement,ACK),以告知数据包发送端:数据包接收端已经接收到该TCP数据包。当然,数据包接收端也可以一次确认多个TCP数据包,例如,数据包接收端在依次接收到序列号(Sequence Number,SN)连续的TCP数据包1、TCP数据包2、TCP数据包3后,则只需要对TCP数据包3进行确认。
[0003] 现有技术中,数据包接收端和数据包发送端之间的TCP连接一般由TCP无线连接和TCP有线连接组成。如图1所示,终端与应用服务器之间的TCP连接中可以由终端与无线接入网(Residential Access Network,RAN)侧设备之间的TCP无线连接以及RAN侧设备经过核心网与应用服务器之间的TCP有线连接组成。
[0004] 其中,基于上述确认机制,无论是TCP有线连接中的数据包接收端,还是TCP无线连接中的数据包接收端在接收到数据包发送端发送的TCP数据包后,均需要向数据包发送端回复ACK。以图1中的TCP无线连接为例,在下行数据传输过程中,终端在接收到RAN侧设备发送的TCP数据包后,需要向RAN侧设备回复ACK。
[0005] 但是,存在的问题是:现网中的TCP数据传输过程中,数据包接收端向数据包发送端回复的ACK的数量较多(据统计,在TCP下行数据传输过程中,其上行数据中90%的数据为ACK),而TCP无线连接中的大量ACK的传输则会占用无线空口链路资源,加剧无线空口链路资源的消耗,影响无线业务数据的传输效率。

发明内容

[0006] 本发明的实施例提供一种数据传输方法及设备,可以减少无线空口链路中传输的TCP层ACK包的数量,进而降低无线空口链路资源消耗,从而提高无线业务数据的传输效率。
[0007] 本发明实施例的第一方面,提供一种数据传输方法,包括:
[0008] 第一设备获取传输控制协议TCP层确认ACK;
[0009] 若所述TCP层ACK所对应的TCP层数据包为所述第一设备解析所述第一设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且所述TCP层ACK满足预设条件,则拦截所述TCP层ACK;
[0010] 其中,所述TCP层ACK满足所述预设条件包括:所述TCP层ACK不符合第一过滤标准中的至少一个过滤条件,且所述TCP层ACK属于第一拦截类和第二拦截类中的至少一项。
[0011] 结合第一方面,在一种可能的实现方式中,所述方法还包括:
[0012] 在通过所述无线空口链路接收到来自所述第二设备的链路层数据包后,发送链路层ACK至所述第二设备,以使所述第二设备根据所述链路层ACK确定所述第一设备已接收到所述TCP层数据包。
[0013] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述方法还包括:
[0014] 若所述TCP层ACK所对应的TCP层数据包不是所述第一设备解析所述第一设备通过所述无线空口链路接收到的链路层数据包得到的TCP层数据包,则发送所述TCP层ACK至所述第二设备;或者,
[0015] 若所述TCP层ACK所对应的TCP层数据包为所述第一设备解析所述第一设备通过所述无线空口链路接收到的链路层数据包得到的TCP层数据包,且所述TCP层ACK不满足所述预设条件,则发送所述TCP层ACK至所述第二设备。
[0016] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合;
[0017] 所述TCP层ACK是所述第一设备在接收到链路层数据包后,携带在发送至所述第二设备的其他数据包中,延迟发送至所述第二设备的ACK;
[0018] 所述TCP层ACK是SYN比特位未置1的ACK;
[0019] 所述TCP层ACK中携带有TCP最大报文长度选项、TCP窗口扩大因子选项以及TCP Sack使能选项;
[0020] 所述TCP层ACK中携带有多路TCP协议中的TCP选项;
[0021] 所述TCP层ACK中携带的接收窗口不小于预设限。
[0022] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述第一拦截类中,所述TCP层ACK的序列号所对应的TCP层数据包未记录在TCP层数据包的缓存中,且所述TCP层ACK的序列号之前的ACK序列号所对应的TCP层数据包均记录在所述TCP层数据包的缓存中;
[0023] 在所述第二拦截类中,所述TCP层ACK的序列号等于第一序列号,所述第一序列号在每次获取到TCP层ACK但未拦截获取到的TCP层ACK之前进行一次更新。
[0024] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述TCP层ACK满足所述预设条件,还包括:所述TCP层ACK不符合第二过滤标准中的至少一个过滤条件;
[0025] 其中,所述第二过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合;
[0026] 所述TCP层ACK中携带有TCP时间戳选项;
[0027] 所述TCP层ACK中携带有TCP Sack选项。
[0028] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述获取传输控制协议TCP层确认ACK之前,所述方法还包括:
[0029] 接收来自所述第二设备的第一能协商信令,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
[0030] 根据所述第一拦截操作和第二ACK种类确定ACK种类交集,并根据所述第一拦截参数和第二拦截参数确定拦截参数交集,所述ACK种类交集为所述第一ACK种类与所述第二ACK种类的交集,所述拦截参数交集为所述第一拦截参数与所述第二拦截参数的交集,所述第二ACK种类为所述第一设备进行拦截判定时,拦截的TCP层ACK所归属的ACK种类,所述第二ACK种类包括所述第一拦截类和/或所述第二拦截类,所述第二拦截参数为所述第一设备进行拦截判定所采用的拦截参数,所述第二拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
[0031] 根据所述ACK种类交集,确定所述第一设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述第二设备均支持的拦截参数;
[0032] 发送第二能力协商信令至所述第二设备,所述第二能力协商信令中包含所述第二ACK种类和所述第二拦截参数;
[0033] 其中,所述第二能力协商信令用于指示所述第二设备获取ACK种类交集和拦截参数交集,进而根据所述ACK种类交集,确定所述第一设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述第二设备均支持的拦截参数。
[0034] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,在所述获取传输控制协议TCP层确认ACK之前,所述方法还包括:
[0035] 接收来自所述第二设备的第一能力协商信令,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
[0036] 根据所述第一拦截操作,确定所述第一设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述第一设备支持的拦截参数。
[0037] 结合第一方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一设备为用户设备,所述第二设备无线接入网RAN侧设备,或者,所述第一设备为所述RAN侧设备,所述第二设备为所述用户设备。
[0038] 本发明实施例的第二方面,提供一种数据传输方法,包括:
[0039] 第二设备接收来自第一设备的链路层确认ACK,所述链路层ACK为所述第一设备在接收到第二设备发送的链路层数据包后发送的;
[0040] 根据所述链路层ACK确定所述第一设备已接收到TCP层数据包;
[0041] 其中,所述TCP层数据包为所述第一设备解析所述链路层数据包得到的。
[0042] 结合第二方面,在一种可能的实现方式中,在所述第二设备接收来自第一设备的链路层ACK之前,所述方法还包括:
[0043] 获取所述TCP层数据包与所述链路层数据包之间的映射关系,所述TCP层数据包与所述链路层数据包之间的映射关系至少包括:所述TCP层数据包的序列号与所述链路层数据包的序列号之间的映射关系。
[0044] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述链路层ACK中包含与所述链路层ACK对应的链路层数据包的序列号;
[0045] 所述根据所述链路层ACK确定所述第一设备已接收到TCP层数据包,包括:
[0046] 根据所述链路层数据包的序列号、所述TCP层数据包的序列号与所述链路层数据包的序列号之间的映射关系,确定所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号,所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号为所述第一设备成功接收的TCP层数据包的序列号。
[0047] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一设备为用户设备,所述第二设备无线接入网RAN侧设备;
[0048] 在所述确定所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号之后,所述方法还包括:
[0049] 根据所述第一设备成功接收的TCP层数据包的序列号,构造TCP层ACK;
[0050] 其中,所述TCP层ACK的序列号为确认连续数据包的序列号与所述确认连续数据包的包长之和;所述TCP层ACK用于向应用服务器指示所述第一设备已接收到所述TCP层数据包;所述链路层数据包为所述第二设备封装接收自所述应用服务器的TCP层得到的;
[0051] 所述确认连续数据包为所述第二设备已确定的所述第一设备成功接收的所有TCP层数据包中,序列号按照从小到大的顺序连续的TCP层数据包中,所述序列号最大的TCP层数据包。
[0052] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,在所述根据所述链路层ACK确定所述第一设备已接收到TCP层数据包之前,所述方法还包括:
[0053] 接收来自所述第一设备的第二能力协商信令,所述第二能力协商信令中包含所述第二ACK种类和所述第二拦截参数,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第二拦截参数至少包括所述第一ACK中携带的接收窗口的预设门限;
[0054] 根据所述第二ACK种类和第一拦截操作确定ACK种类交集,并根据所述第二拦截参数和第一拦截参数确定拦截参数交集,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括所述第一拦截类和/或所述第二拦截类,所述ACK种类交集为所述第一ACK种类与所述第二ACK种类的交集,所述拦截参数交集为第一拦截参数与第二拦截参数的交集,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
[0055] 根据所述ACK种类交集,确定所述第一设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述第二设备均支持的拦截参数;
[0056] 发送第一能力协商信令至所述第一设备,所述第一能力协商信令中包含所述第一拦截操作和所述第一拦截参数;
[0057] 其中,所述第一能力协商信令用于指示所述第一设备获取ACK种类交集和拦截参数交集,进而根据所述ACK种类交集,确定所述第一设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述第二设备均支持的拦截参数。
[0058] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,在所述根据所述链路层ACK确定所述第一设备已接收到所述TCP层数据包之前,所述方法还包括:
[0059] 发送第一能力协商信令至所述第一设备,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
[0060] 根据所述第一ACK种类,确定所述所述第二设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述第二设备支持的拦截参数;
[0061] 其中,所述第一能力协商信令用于指示所述第一设备设备根据所述第一ACK种类,确定所述第一设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述第一设备支持的拦截参数。
[0062] 结合第二方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一设备为用户设备,所述第二设备RAN侧设备,或者,所述第一设备为所述RAN侧设备,所述第二设备为所述用户设备。
[0063] 本发明实施例的第三方面,还提供一种设备,包括:
[0064] 获取单元,用于获取传输控制协议TCP层确认ACK;
[0065] 拦截单元,用于若所述获取单元获取的所述TCP层ACK所对应的TCP层数据包为所述设备解析所述设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且所述TCP层ACK满足预设条件,则拦截所述TCP层ACK;
[0066] 其中,所述TCP层ACK满足所述预设条件包括:所述TCP层ACK不符合第一过滤标准中的至少一个过滤条件,且所述TCP层ACK属于第一拦截类和第二拦截类中的至少一项。
[0067] 结合第三方面,在一种可能的实现方式中,所述设备还包括:
[0068] 接收单元,用于通过所述无线空口链路接收来自所述第二设备的链路层数据包;
[0069] 发送单元,用于在所述接收单元通过所述无线空口链路接收到来自所述第二设备的链路层数据包后,发送链路层ACK至所述第二设备,以使所述第二设备根据所述链路层ACK确定所述设备已接收到所述TCP层数据包。
[0070] 结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,所述设备还包括:
[0071] 发送单元,用于若所述获取单元获取的所述TCP层ACK所对应的TCP层数据包不是所述设备解析所述设备通过所述无线空口链路接收到的链路层数据包得到的TCP层数据包,则发送所述TCP层ACK至所述第二设备;或者,
[0072] 所述发送单元,还用于若所述TCP层ACK所对应的TCP层数据包为所述设备解析所述设备通过所述无线空口链路接收到的链路层数据包得到的TCP层数据包,且所述TCP层ACK不满足所述预设条件,则发送所述TCP层ACK至所述第二设备。
[0073] 结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合;
[0074] 所述TCP层ACK是所述设备在接收到链路层数据包后,携带在发送至所述第二设备的其他数据包中,延迟发送至所述第二设备的ACK;
[0075] 所述TCP层ACK是SYN比特位未置1的ACK;
[0076] 所述TCP层ACK中携带有TCP最大报文长度选项、TCP窗口扩大因子选项以及TCP Sack使能选项;
[0077] 所述TCP层ACK中携带有多路TCP协议中的TCP选项;
[0078] 所述TCP层ACK中携带的接收窗口不小于预设门限。
[0079] 结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,在所述第一拦截类中,所述TCP层ACK的序列号所对应的TCP层数据包未记录在TCP层数据包的缓存中,且所述TCP层ACK的序列号之前的ACK序列号所对应的TCP层数据包均记录在所述TCP层数据包的缓存中;
[0080] 在所述第二拦截类中,所述TCP层ACK的序列号等于第一序列号,所述第一序列号在每次获取到TCP层ACK但未拦截获取到的TCP层ACK之前进行一次更新。
[0081] 结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,所述TCP层ACK满足所述预设条件,还包括:所述TCP层ACK不符合第二过滤标准中的至少一个过滤条件;
[0082] 其中,所述第二过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合;
[0083] 所述TCP层ACK中携带有TCP时间戳选项;
[0084] 所述TCP层ACK中携带有TCP Sack选项。
[0085] 结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,所述设备还包括:
[0086] 接收单元,用于在所述获取单元获取所述TCP层ACK之前,接收来自所述第二设备的第一能力协商信令,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
[0087] 第一确定单元,用于根据所述接收单元接收的所述第一拦截操作和第二ACK种类确定ACK种类交集,并根据所述第一拦截参数和第二拦截参数确定拦截参数交集,所述ACK种类交集为所述第一ACK种类与所述第二ACK种类的交集,所述拦截参数交集为所述第一拦截参数与所述第二拦截参数的交集,所述第二ACK种类为所述设备进行拦截判定时,拦截的TCP层ACK所归属的ACK种类,所述第二ACK种类包括所述第一拦截类和/或所述第二拦截类,所述第二拦截参数为所述设备进行拦截判定所采用的拦截参数,所述第二拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
[0088] 第二确定单元,用于根据所述第一确定单元确定的所述ACK种类交集,确定所述设备和所述第二设备均支持拦截的ACK种类,并根据所述第一确定单元确定的所述拦截参数交集,确定所述设备和所述第二设备均支持的拦截参数;
[0089] 发送单元,用于发送第二能力协商信令至所述第二设备,所述第二能力协商信令中包含所述第二ACK种类和所述第二拦截参数;
[0090] 其中,所述第二能力协商信令用于指示所述第二设备获取ACK种类交集和拦截参数交集,进而根据所述ACK种类交集,确定所述设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述设备和所述第二设备均支持的拦截参数。
[0091] 结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,所述设备还包括:
[0092] 接收单元,用于在所述获取单元获取所述TCP层ACK之前,接收来自所述第二设备的第一能力协商信令,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
[0093] 第三确定单元,用于根据所述接收单元接收的所述第一拦截操作,确定所述设备支持拦截的ACK种类,并根据所述接收单元接收的所述第一拦截参数,确定所述设备支持的拦截参数。
[0094] 结合第三方面和上述可能的实现方式,在另一种可能的实现方式中,所述设备为用户设备,所述第二设备无线接入网RAN侧设备,或者,所述设备为所述RAN侧设备,所述第二设备为所述用户设备。
[0095] 本发明实施例的第四方面,提供一种设备,包括:
[0096] 接收单元,用于接收来自第一设备的链路层确认ACK,所述链路层ACK为所述第一设备在接收到设备发送的链路层数据包后发送的;
[0097] 第一确定单元,用于根据所述接收单元接收的所述链路层ACK确定所述第一设备已接收到TCP层数据包;
[0098] 其中,所述TCP层数据包为所述第一设备解析所述链路层数据包得到的。
[0099] 结合第四方面,在一种可能的实现方式中,所述设备还包括:
[0100] 获取单元,用于在所述接收单元接收来自所述第一设备的所述链路层ACK之前,获取所述TCP层数据包与所述链路层数据包之间的映射关系,所述TCP层数据包与所述链路层数据包之间的映射关系至少包括:所述TCP层数据包的序列号与所述链路层数据包的序列号之间的映射关系。
[0101] 结合第四方面和上述可能的实现方式,在另一种可能的实现方式中,所述链路层ACK中包含与所述链路层ACK对应的链路层数据包的序列号;
[0102] 所述第一确定单元,还用于根据所述链路层数据包的序列号、所述TCP层数据包的序列号与所述链路层数据包的序列号之间的映射关系,确定所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号,所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号为所述第一设备成功接收的TCP层数据包的序列号。
[0103] 结合第四方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一设备为用户设备,所述设备无线接入网RAN侧设备;
[0104] 所述设备,还包括:
[0105] 构造单元,用于在所述第一确定单元确定所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号之后,根据所述第一设备成功接收的TCP层数据包的序列号,构造TCP层ACK;
[0106] 其中,所述TCP层ACK的序列号为确认连续数据包的序列号与所述确认连续数据包的包长之和;所述TCP层ACK用于向应用服务器指示所述第一设备已接收到所述TCP层数据包;所述链路层数据包为所述设备封装接收自所述应用服务器的TCP层得到的;
[0107] 所述确认连续数据包为所述设备已确定的所述第一设备成功接收的所有TCP层数据包中,序列号按照从小到大的顺序连续的TCP层数据包中,所述序列号最大的TCP层数据包。
[0108] 结合第四方面和上述可能的实现方式,在另一种可能的实现方式中,所述接收单元,还用于在所述第一确定单元根据所述链路层ACK确定所述第一设备已接收到所述TCP层数据包之前,接收来自所述第一设备的第二能力协商信令,所述第二能力协商信令中包含所述第二ACK种类和所述第二拦截参数,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第二拦截参数至少包括所述第一ACK中携带的接收窗口的预设门限;
[0109] 所述设备,还包括:
[0110] 第二确定单元,还用于根据所述接收单元接收的所述第二ACK种类和第一拦截操作确定ACK种类交集,并根据所述接收单元接收的所述第二拦截参数和第一拦截参数确定拦截参数交集,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括所述第一拦截类和/或所述第二拦截类,所述ACK种类交集为所述第一ACK种类与所述第二ACK种类的交集,所述拦截参数交集为第一拦截参数与第二拦截参数的交集,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
[0111] 第三确定单元,用于根据所述第二确定单元确定的所述ACK种类交集,确定所述第一设备和所述设备均支持拦截的ACK种类,并根据所述第二确定单元确定的所述拦截参数交集,确定所述第一设备和所述设备均支持的拦截参数;
[0112] 发送单元,用于发送第一能力协商信令至所述第一设备,所述第一能力协商信令中包含所述第一拦截操作和所述第一拦截参数;
[0113] 其中,所述第一能力协商信令用于指示所述第一设备获取ACK种类交集和拦截参数交集,进而根据所述ACK种类交集,确定所述第一设备和所述设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述设备均支持的拦截参数。
[0114] 结合第四方面和上述可能的实现方式,在另一种可能的实现方式中,所述设备还包括:
[0115] 发送单元,用于在所述第一确定单元根据所述链路层ACK确定所述第一设备已接收到所述TCP层数据包之前,发送第一能力协商信令至所述第一设备,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
[0116] 第四确定单元,用于根据所述第一ACK种类,确定所述所述设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述设备支持的拦截参数;
[0117] 其中,所述第一能力协商信令用于指示所述第一设备设备根据所述第一ACK种类,确定所述第一设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述第一设备支持的拦截参数。
[0118] 结合第四方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一设备为用户设备,所述设备RAN侧设备,或者,所述第一设备为所述RAN侧设备,所述设备为所述用户设备。
[0119] 本发明实施例的第五方面,提供一种设备,包括:
[0120] 处理器,用于获取传输控制协议TCP层确认ACK;若所述TCP层ACK所对应的TCP层数据包为所述设备解析所述设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且所述TCP层ACK满足预设条件,则拦截所述TCP层ACK;
[0121] 其中,所述TCP层ACK满足所述预设条件包括:所述TCP层ACK不符合第一过滤标准中的至少一个过滤条件,且所述TCP层ACK属于第一拦截类和第二拦截类中的至少一项。
[0122] 结合第五方面,在一种可能的实现方式中,所述设备还包括:
[0123] 接收器,用于通过所述无线空口链路接收来自所述第二设备的链路层数据包;
[0124] 发送器,用于在所述接收器通过所述无线空口链路接收到来自所述第二设备的链路层数据包后,发送链路层ACK至所述第二设备,以使所述第二设备根据所述链路层ACK确定所述设备已接收到所述TCP层数据包。
[0125] 结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,发送器,还用于若所述TCP层ACK所对应的TCP层数据包不是所述设备解析所述设备通过所述无线空口链路接收到的链路层数据包得到的TCP层数据包,则发送所述TCP层ACK至所述第二设备;或者,
[0126] 所述发送器,还用于若所述TCP层ACK所对应的TCP层数据包为所述设备解析所述设备通过所述无线空口链路接收到的链路层数据包得到的TCP层数据包,且所述TCP层ACK不满足所述预设条件,则发送所述TCP层ACK至所述第二设备。
[0127] 结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,所述第一过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合;
[0128] 所述TCP层ACK是所述设备在接收到链路层数据包后,携带在发送至所述第二设备的其他数据包中,延迟发送至所述第二设备的ACK;
[0129] 所述TCP层ACK是SYN比特位未置1的ACK;
[0130] 所述TCP层ACK中携带有TCP最大报文长度选项、TCP窗口扩大因子选项以及TCP Sack使能选项;
[0131] 所述TCP层ACK中携带有多路TCP协议中的TCP选项;
[0132] 所述TCP层ACK中携带的接收窗口不小于预设门限。
[0133] 结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,在所述第一拦截类中,所述TCP层ACK的序列号所对应的TCP层数据包未记录在TCP层数据包的缓存中,且所述TCP层ACK的序列号之前的ACK序列号所对应的TCP层数据包均记录在所述TCP层数据包的缓存中;
[0134] 在所述第二拦截类中,所述TCP层ACK的序列号等于第一序列号,所述第一序列号在每次获取到TCP层ACK但未拦截获取到的TCP层ACK之前进行一次更新。
[0135] 结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,所述TCP层ACK满足所述预设条件,还包括:所述TCP层ACK不符合第二过滤标准中的至少一个过滤条件;
[0136] 其中,所述第二过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合;
[0137] 所述TCP层ACK中携带有TCP时间戳选项;
[0138] 所述TCP层ACK中携带有TCP Sack选项。
[0139] 结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,所述接收器,还用于在所述处理器获取传输控制协议TCP层确认ACK之前,接收来自所述第二设备的第一能力协商信令,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
[0140] 所述处理器,还用于根据所述第一拦截操作和第二ACK种类确定ACK种类交集,并根据所述第一拦截参数和第二拦截参数确定拦截参数交集,所述ACK种类交集为所述第一ACK种类与所述第二ACK种类的交集,所述拦截参数交集为所述第一拦截参数与所述第二拦截参数的交集,所述第二ACK种类为所述设备进行拦截判定时,拦截的TCP层ACK所归属的ACK种类,所述第二ACK种类包括所述第一拦截类和/或所述第二拦截类,所述第二拦截参数为所述设备进行拦截判定所采用的拦截参数,所述第二拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;根据所述ACK种类交集,确定所述设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述设备和所述第二设备均支持的拦截参数;
[0141] 所述发送器,还用于发送第二能力协商信令至所述第二设备,所述第二能力协商信令中包含所述第二ACK种类和所述第二拦截参数;
[0142] 其中,所述第二能力协商信令用于指示所述第二设备获取ACK种类交集和拦截参数交集,进而根据所述ACK种类交集,确定所述设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述设备和所述第二设备均支持的拦截参数。
[0143] 结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,所述接收器,还用于在所述处理器获取传输控制协议TCP层确认ACK之前,接收来自所述第二设备的第一能力协商信令,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
[0144] 所述处理器,还用于根据所述接收器接收的所述第一拦截操作,确定所述设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述设备支持的拦截参数。
[0145] 结合第五方面和上述可能的实现方式,在另一种可能的实现方式中,所述设备为用户设备,所述第二设备无线接入网RAN侧设备,或者,所述设备为所述RAN侧设备,所述第二设备为所述用户设备。
[0146] 本发明实施例的第六方面,提供一种设备,包括:
[0147] 接收器,用于接收来自第一设备的链路层确认ACK,所述链路层ACK为所述第一设备在接收到设备发送的链路层数据包后发送的;
[0148] 处理器,用于根据所述接收器所述链路层ACK确定所述第一设备已接收到TCP层数据包;
[0149] 其中,所述TCP层数据包为所述第一设备解析所述链路层数据包得到的。
[0150] 结合第六方面,在一种可能的实现方式中,所述处理器,还用于在所述接收器接收来自第一设备的链路层ACK之前,获取所述TCP层数据包与所述链路层数据包之间的映射关系,所述TCP层数据包与所述链路层数据包之间的映射关系至少包括:所述TCP层数据包的序列号与所述链路层数据包的序列号之间的映射关系。
[0151] 结合第六方面和上述可能的实现方式中,在另一种可能的实现方式中,所述链路层ACK中包含与所述链路层ACK对应的链路层数据包的序列号;
[0152] 所述处理器,还用于根据所述链路层数据包的序列号、所述TCP层数据包的序列号与所述链路层数据包的序列号之间的映射关系,确定所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号,所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号为所述第一设备成功接收的TCP层数据包的序列号。
[0153] 结合第六方面和上述可能的实现方式中,在另一种可能的实现方式中,所述第一设备为用户设备,所述设备无线接入网RAN侧设备;
[0154] 所述处理器,还用于在确定所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号之后,根据所述第一设备成功接收的TCP层数据包的序列号,构造TCP层ACK;
[0155] 其中,所述TCP层ACK的序列号为确认连续数据包的序列号与所述确认连续数据包的包长之和;所述TCP层ACK用于向应用服务器指示所述第一设备已接收到所述TCP层数据包;所述链路层数据包为所述设备封装接收自所述应用服务器的TCP层得到的;
[0156] 所述确认连续数据包为所述设备已确定的所述第一设备成功接收的所有TCP层数据包中,序列号按照从小到大的顺序连续的TCP层数据包中,所述序列号最大的TCP层数据包。
[0157] 结合第六方面和上述可能的实现方式中,在另一种可能的实现方式中,所述接收器,还用于在所述处理器根据所述链路层ACK确定所述第一设备已接收到TCP层数据包之前,接收来自所述第一设备的第二能力协商信令,所述第二能力协商信令中包含所述第二ACK种类和所述第二拦截参数,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第二拦截参数至少包括所述第一ACK中携带的接收窗口的预设门限;
[0158] 所述处理器,还用于根据所述接收器接收的所述第二ACK种类和第一拦截操作确定ACK种类交集,并根据所述接收器接收的所述第二拦截参数和第一拦截参数确定拦截参数交集,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括所述第一拦截类和/或所述第二拦截类,所述ACK种类交集为所述第一ACK种类与所述第二ACK种类的交集,所述拦截参数交集为第一拦截参数与第二拦截参数的交集,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;根据所述ACK种类交集,确定所述第一设备和所述设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述设备均支持的拦截参数;
[0159] 所述设备,还包括:
[0160] 发送器,还用于发送第一能力协商信令至所述第一设备,所述第一能力协商信令中包含所述第一拦截操作和所述第一拦截参数;
[0161] 其中,所述第一能力协商信令用于指示所述第一设备获取ACK种类交集和拦截参数交集,进而根据所述ACK种类交集,确定所述第一设备和所述设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述设备均支持的拦截参数。
[0162] 结合第六方面和上述可能的实现方式中,在另一种可能的实现方式中,所述发送器,还用于在所述处理器根据所述链路层ACK确定所述第一设备已接收到所述TCP层数据包之前,发送第一能力协商信令至所述第一设备,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;
[0163] 所述处理器,还用于根据所述第一ACK种类,确定所述所述设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述设备支持的拦截参数;
[0164] 其中,所述第一能力协商信令用于指示所述第一设备设备根据所述第一ACK种类,确定所述第一设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述第一设备支持的拦截参数。
[0165] 结合第六方面和上述可能的实现方式中,在另一种可能的实现方式中,所述第一设备为用户设备,所述设备RAN侧设备,或者,所述第一设备为所述RAN侧设备,所述设备为所述用户设备。
[0166] 本发明实施例提供的数据传输方法及设备,第一设备获取TCP层ACK;若TCP层ACK所对应的TCP层数据包为所述第一设备解析第一设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且TCP层ACK满足预设条件,则拦截TCP层ACK。
[0167] 与现有技术中大量的TCP层ACK包传输会占据无线空口链路资源,加剧无线空口链路资源的消耗相比。在本方案中,第一设备可以对TCP层ACK进行拦截判定,并在TCP层ACK满足预设条件时,拦截TCP层ACK,即不发送TCP层ACK至第二设备;第二设备可以通过接收自第一设备的链路层ACK确定第一设备已接收到TCP层数据包,可以在不影响第一设备和第二设备之间TCP确认机制的情况下,减少第一设备和第二设备之间的无线空口链路中传输的TCP层ACK包的数量,进而降低无线空口链路的资源消耗,从而可以提高无线业务数据的传输效率,提高无线通信系统的容量。附图说明
[0168] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0169] 图1为本发明背景技术中的跨越有线网络和无线网络的TCP连接示意图;
[0170] 图2为本发明实施例1中的一种数据传输方法流程图
[0171] 图3为本发明实施例2中的一种数据传输方法流程图;
[0172] 图4为本发明实施例3中的另一种数据传输方法流程图;
[0173] 图5为本发明实施例4中的一种数据传输方法流程图;
[0174] 图6为本发明实施例中的一种数据包传输过程示意图;
[0175] 图7为本发明实施例中的另一种数据包传输过程示意图;
[0176] 图8为本发明实施例中的另一种数据包传输过程示意图;
[0177] 图9为本发明实施例5中的一种数据传输方法流程图;
[0178] 图10为本发明实施例中的一种Netfilter机制示意图;
[0179] 图11为本发明实施例6中的一种设备的组成示意图;
[0180] 图12为本发明实施例6中的另一种设备的组成示意图;
[0181] 图13为本发明实施例6中的另一种设备的组成示意图;
[0182] 图14为本发明实施例6中的另一种设备的组成示意图;
[0183] 图15为本发明实施例7中的一种设备的组成示意图;
[0184] 图16为本发明实施例7中的另一种设备的组成示意图;
[0185] 图17为本发明实施例7中的另一种设备的组成示意图;
[0186] 图18为本发明实施例7中的另一种设备的组成示意图;
[0187] 图19为本发明实施例8中的一种设备的组成示意图;
[0188] 图20为本发明实施例8中的另一种设备的组成示意图;
[0189] 图21为本发明实施例9中的一种设备的组成示意图;
[0190] 图22为本发明实施例9中的另一种设备的组成示意图。

具体实施方式

[0191] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0192] 本文中描述的各种技术可用于各种无线通信系统,例如当前2G,3G通信系统和下一代通信系统,例如全球移动通信系统(GSM,Global System for Mobile communications),码分多址(CDMA,Code Division Multiple Access)系统,时分多址(TDMA,Time Division Multiple Access)系统,宽带码分多址(WCDMA,Wideband Code Division Multiple Access Wireless),频分多址(FDMA,Frequency Division Multiple Addressing)系统,正交频分多址(OFDMA,Orthogonal Frequency-Division Multiple Access)系统,单载波FDMA(SC-FDMA)系统,通用分组无线业务(GPRS,General Packet Radio Service)系统,长期演进(LTE,Long Term Evolution)系统,以及其他此类通信系统。
[0193] 本文中结合终端和/或基站和/或基站控制器来描述各种方面。
[0194] 另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0195] 实施例1
[0196] 本发明实施例提供一种数据传输方法,可以应用于第一设备,本实施例可以应用于第一设备和第二设备进行上行数据传输或者下行数据传输的过程中,如图2所示,该数据传输方法包括:
[0197] S101、第一设备获取传输控制协议(Transmission Control Protocol,TCP)层确认(Acknowledgement,ACK)。
[0198] 一方面,在基于TCP连接的下行数据传输场景中,第一设备为用户设备,第二设备为无线接入网(Residential Access Network,RAN)侧设备。其中,RAN侧设备可以为RAN中的任意一个设备,如基站、控制器等。
[0199] 在基于TCP连接的下行数据传输过程中,RAN侧设备(第二设备)可以接收来自应用服务器的TCP层数据包,然后封装TCP层数据包,以得到链路层数据包,然后发送链路层数据包至用户设备(第一设备),用户设备(第一设备)在接收到链路层数据包后可以解析该链路层数据包,以得到相应的TCP层数据包,然后根据TCP层数据包生成TCP层数据包的确认信息,即TCP层ACK。
[0200] 另一方面,在基于TCP连接的上行数据传输场景中,第一设备为RAN侧设备,第二设备为用户设备。
[0201] 在上行数据传输场景中,用户设备(第二设备)在获取到TCP层数据包后,可以封装TCP层数据包,以得到链路层数据包,然后发送链路层数据包至RAN侧设备(第一设备),RAN侧设备(第一设备)在接收到来自用户设备(第二设备)的链路层数据包后,可以解析该链路层数据包,以得到相应的TCP层数据包,然后发送解析得到的TCP层数据包至应用服务器,并接收来自应用服务器的TCP层ACK。
[0202] 需要说明的是,第一设备(下行数据传输场景中的用户设备或者上行数据传输场景中的RAN侧设备)在获取到TCP层ACK后,可以对TCP层ACK进行拦截判定,在获取到的TCP层ACK所对应的TCP层数据包为所述第一设备解析所述第一设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且该TCP层ACK满足预设条件时,则拦截TCP层ACK,即执行S102;在获取到的TCP层ACK所对应的TCP层数据包不是第一设备解析第一设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包时,才发送TCP层ACK至第二设备;在获取到的TCP层ACK所对应的TCP层数据包为所述第一设备解析所述第一设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且该TCP层ACK不满足预设条件时,才发送TCP层ACK至第二设备。
[0203] S102、若TCP层ACK所对应的TCP层数据包为第一设备解析第一设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且TCP层ACK满足预设条件,第一设备则拦截TCP层ACK。
[0204] 需要说明的是,为了减少无线空口链路中TCP层ACK包的数量,第一设备可以对TCP层ACK进行拦截判定。
[0205] 示例性的,所述TCP层ACK满足所述预设条件,具体包括:TCP层ACK所对应的TCP层数据包为通过无线空口链路接收的TCP层数据包,且TCP层ACK不符合第一过滤标准中的中的至少一个过滤条件,且TCP层ACK属于第一拦截类和/或第二拦截类。
[0206] 或者,TCP层ACK所对应的TCP层数据包为通过无线空口链路接收的TCP层数据包,且TCP层ACK不符合第一过滤标准中的至少一个过滤条件,且TCP层ACK不符合第二过滤标准中的至少一个过滤条件,且TCP层ACK归属于第一拦截类和/或第二拦截类。
[0207] 示例性的,第一过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合:1)TCP层ACK是第一设备在接收到链路层数据包后,携带在发送至第二设备的其他数据包中,延迟发送至第二设备的ACK;2)TCP层ACK是SYN比特位未置1的ACK;3)TCP层ACK中携带有TCP最大报文长度选项(TCP Maximum Segment Size Option)、TCP窗口扩大因子选项(TCP Window Scale Option)以及TCP Sack使能选项(TCP Sack-Permitted Option);4)TCP层ACK中携带有多路TCP协议中的TCP选项;5)TCP层ACK中携带的接收窗口不小于预设门限。
[0208] 第二过滤标准中的过滤条件至少包括:1)TCP层ACK中携带有TCP时间戳选项(TCP Timestamps Option);2)TCP层ACK中携带有TCP Sack选项(TCP Sack Option)。
[0209] 其中,在第一拦截类中,TCP层ACK的序列号所对应的TCP层数据包未记录在TCP层数据包的缓存中,且TCP层ACK的序列号之前的ACK序列号所对应的TCP层数据包均记录在TCP层数据包的缓存中。
[0210] 在第二拦截类中,TCP层ACK的序列号等于第一序列号,第一序列号为第一设备每次获取到TCP层ACK但未拦截获取到的TCP层ACK之前所保留的TCP层ACK的序列号,第一序列号在每次获取到TCP层ACK但未拦截获取到的TCP层ACK之前进行一次更新。
[0211] 在本发明实施例的一种应用场景中,第一设备与第二设备之间的无线空口链路可以为第三代合作伙伴计划(The 3rd Generation Partnership Project,3GPP)链路,第一设备与第二设备之间通过3GPP空中接口传输数据。在基于TCP连接的数据传输过程中,第一设备中可以包含TCP IP协议栈所在的处理实体和3GPP空中接口协议栈所在的处理实体。
[0212] 在该应用场景的一种情形中,拦截模可以部署在TCP IP协议栈所在处理实体的TCP层或者IP层。
[0213] 在该应用场景的另一种情形中,拦截模块可以部署在3GPP空中接口协议栈所在的处理实体的第一个处理空口上行数据的协议层,如LTE网络和UMTS网络中的分组数据汇聚协议(Packet Data Convergence Protocol,PDCP)层。
[0214] 在本发明实施例的另一种应用场景中,第一设备与第二设备之间的无线空口链路也可以为WiFi链路,第一设备与第二设备之间通过WiFi空中接口传输数据。在基于TCP连接的数据传输过程中,第一设备中可以包含TCP IP协议栈所在的处理实体和WiFi空中接口协议栈所在的处理实体。
[0215] 在该应用场景的一种情形中,拦截模块可以部署在TCP IP协议栈所在处理实体的TCP层或者IP层。
[0216] 在该应用场景的另一种情形中,拦截模块可以部署在WiFi空中接口协议栈所在的处理实体的第一个处理空口上行数据的协议层,即媒体介入控制(Media Access Control,MAC)层。
[0217] 进一步的,在本发明实施例的另一种应用场景中,第一设备可以借用操作系统所提供的抓包机制来插入TCP层ACK的拦截功能,以实现对TCP层ACK的拦截判定。其中,在这种应用场景中,可以不修改原有协议栈。
[0218] 示例性的,以下行数据传输为例,在如图10所示,可以用Netfilter机制在任意一个椭圆虚线框示意的捕获点捕获空口上行ACK包,同时将上述的拦截模块的拦截功能处理挂在Netfilter下即可。
[0219] 其中,此处分别对如图10所示的IP层的五个检测(HOOK)点的功能进行描述:如图10所示的检测点1(NF_IP_PRE_ROUTING):刚刚进入网络层的数据包通过此点(进行完版本号校验等检测),进行目的地址的转换;检测点2(NF_IP_LOCAL_IN):经路由查找后,送往本机的数据包通过此检查点,进行Input包的过滤;检查点3(NF_IP_FORWARD)要转发的包通过此检测点,进行FORWARD包的过滤;检查点4(NF_IP_POST_ROUTING):所有将要通过网络设备发出去的数据包通过此检测点,内置的源地址转换功能(包括地址伪装)在此点进行;检查点5(NF_IP_LOCAL_OUT):本机进程发出的包通过此检测点,Output包过滤在此点进行。
[0220] 本发明实施例提供的数据传输方法,第一设备获取TCP层ACK;若TCP层ACK所对应的TCP层数据包为第一设备解析第一设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且TCP层ACK满足预设条件,则拦截TCP层ACK。
[0221] 与现有技术中大量的TCP层ACK包传输会占据无线空口链路资源,加剧无线空口链路资源的消耗相比。在本方案中,第一设备可以对TCP层ACK进行拦截判定,并在所对应的TCP层数据包为第一设备解析第一设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且TCP层ACK满足预设条件时,拦截TCP层ACK,即不发送TCP层ACK至第二设备,可以减少第一设备和第二设备之间的无线空口链路中传输的TCP层ACK包的数量,进而降低无线空口链路的资源消耗,从而可以提高无线业务数据的传输效率,提高无线通信系统的容量。
[0222] 实施例2
[0223] 本发明实施例提供一种数据传输方法,可以应用于第二设备,本实施例可以应用于第一设备和第二设备进行上行数据传输或者下行数据传输的过程中,如图3所示,该数据传输方法包括:
[0224] S201、第二设备接收来自第一设备的链路层ACK,链路层ACK为第一设备在接收到第二设备发送的链路层数据包后发送的。
[0225] 一方面,在基于TCP连接的下行数据传输场景中,第一设备为用户设备,第二设备为RAN侧设备。
[0226] 在基于TCP连接的下行数据传输过程中,RAN侧设备(第二设备)可以接收来自应用服务器的TCP层数据包,然后封装TCP层数据包,以得到链路层数据包,然后发送链路层数据包至用户设备(第一设备),用户设备(第一设备)在接收到链路层数据包后,可以发送链路层ACK至RAN侧设备(第二设备),同时在接收到链路层数据包后,可以解析链路层数据包以得到相应的TCP层数据包,并根据解析得到的TCP层数据包生成TCP层ACK。
[0227] 另一方面,在基于TCP连接的上行数据传输场景中,第一设备为RAN侧设备,第二设备为用户设备。
[0228] 在上行数据传输场景中,用户设备(第二设备)在获取到TCP层数据包后,可以封装TCP层数据包,以得到链路层数据包,然后发送链路层数据包至RAN侧设备(第一设备),RAN侧设备(第一设备)在接收到链路层数据包后,可以发送链路层ACK至用户设备(第二设备),同时,RAN侧设备(第一设备)在接收到链路层数据包后,可以解析链路层数据包以得到相应的TCP层数据包,并发送解析得到的TCP层数据包至应用服务器,然后接收来自应用服务器的TCP层ACK,TCP层ACK为RAN侧设备(第一设备)解析得到的TCP层数据包所对应的TCP层ACK。
[0229] S202、第二设备根据链路层ACK确定第一设备已接收到TCP层数据包。
[0230] 其中,第二设备可以获取TCP层数据包与链路层数据包之间的映射关系(TCP层数据包与链路层数据包之间的映射关系至少包括:TCP层数据包的序列号与链路层数据包的序列号之间的映射关系);然后根据链路层数据包的序列号、TCP层数据包的序列号与链路层数据包的序列号之间的映射关系,确定第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号,第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号为第一设备成功接收的TCP层数据包的序列号。
[0231] 本发明实施例提供的数据传输方法,第二设备接收来自第一设备的链路层确认ACK,链路层ACK为第一设备在接收到第二设备发送的链路层数据包后发送的;根据链路层ACK确定第一设备已接收到TCP层数据包。
[0232] 与现有技术中大量的TCP层ACK包传输会占据无线空口链路资源,加剧无线空口链路资源的消耗相比。在本方案中,第二设备在第一设备拦截了TCP层ACK后,可以根据第一设备发送的链路层ACK确定第一设备是否已成功接收TCP层数据包。这样,在减少第一设备和第二设备之间的无线空口链路中传输的TCP层ACK包的数量的情况下,还能够保证数据发送端和接收端的确认机制。
[0233] 实施例3
[0234] 本发明实施例提供一种数据传输方法,可以应用于基于TCP连接的下行数据传输过程中,即第一设备具体为用户设备,第二设备具体为RAN侧设备。
[0235] 其中,本实施例以RAN侧设备中不存在任何类型的TCP代理或者RAN侧设备中存在类型为Snoop TCP的TCP代理时,RAN侧设备与用户设备进行下行数据传输为例,对本发明实施例的方法进行进一步说明。具体的,如图4所示,该数据传输方法可以包括:
[0236] S301、RAN侧设备接收来自应用服务器的TCP层数据包。
[0237] S302、RAN侧设备在接收到来自应用服务器的TCP层数据包后,记录TCP层数据包的序列号和TCP层数据包的包长。
[0238] S303、RAN侧设备封装TCP层数据包,以得到链路层数据包,并获取TCP层数据包与链路层数据包之间的映射关系。
[0239] 其中,TCP层数据包与链路层数据包之间的映射关系至少包括:TCP层数据包的序列号与链路层数据包的序列号之间的映射关系。
[0240] 需要说明的是,RAN侧设备将TCP层数据包封装成链路层数据包的具体方法可以参考现有技术中数据包封装的相应描述,本实施例这里不再赘述。
[0241] S304、RAN侧设备发送链路层数据包至用户设备。
[0242] S305、用户设备在接收到链路层数据包后,解析链路层数据包,以得到相应的TCP层数据包。
[0243] S306、用户设备根据解析得到的TCP层数据包生成TCP层ACK。
[0244] 其中,在本实施例的第一种应用场景中,用户设备与RAN侧设备之间的无线空口链路可以为3GPP链路,即用户设备与RAN侧设备之间通过3GPP空中接口传输数据。
[0245] 在第一种应用场景中,用户设备中可以包含TCP IP协议栈所在的处理实体和3GPP空中接口协议栈所在的处理实体。用户设备可以通过用户设备中的3GPP空中接口协议栈所在的处理实体接收来自RAN侧设备的链路层数据包,并解析链路层数据包以得到相应的TCP层数据包,然后将解析出的TCP层数据包传输至该用户设备中的TCP IP协议栈所在的处理实体,TCP IP协议栈所在的处理实体可以根据接收自3GPP空中接口协议栈所在的处理实体的TCP层数据包生成TCP层ACK,然后TCP IP协议栈所在的处理实体将TCP层ACK传输至3GPP空中接口协议栈所在的处理实体,由3GPP空中接口协议栈所在的处理实体封装该TCP层ACK,并将封装后的TCP层ACK通过用户设备和RAN侧设备之间的无线空口连接发送至RAN侧设备。
[0246] 需要说明的是,在本实施例的第二种应用场景中,用户设备与RAN侧设备之间的无线空口链路可以为WiFi链路,即用户设备与RAN侧设备之间通过WiFi空中接口传输数据。
[0247] 在第二种应用场景中,用户设备中可以包含TCP IP协议栈所在的处理实体和WiFi空中接口协议栈所在的处理实体。用户设备可以通过用户设备中的WiFi空中接口协议栈所在的处理实体接收来自RAN侧设备的链路层数据包,并解析链路层数据包以得到相应的TCP层数据包,然后将解析出的TCP层数据包传输至该用户设备中的TCP IP协议栈所在的处理实体,TCP IP协议栈所在的处理实体可以根据接收自WiFi空中接口协议栈所在的处理实体的TCP层数据包生成TCP层ACK,然后TCP IP协议栈所在的处理实体将TCP层ACK传输至WiFi空中接口协议栈所在的处理实体,由WiFi空中接口协议栈所在的处理实体封装该TCP层ACK,并将封装后的TCP层ACK通过用户设备和RAN侧设备之间的无线空口连接发送至RAN侧设备。
[0248] 需要说明的是,TCP层ACK所对应的TCP层数据包可以为用户设备解析用户设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包;TCP层ACK所对应的TCP层数据包也可以为用户设备解析用户设备通过有线链路接收到的链路层数据包得到的TCP层数据包。由于本发明实施例中仅对用户设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包进行拦截判定,因此,本实施例上述仅描述根据通过无线空口链路接收到的链路层数据包得到的TCP层数据包生成TCP层ACK的具体过程。
[0249] 进一步可选的,在本发明实施例中,由于用户设备在生成TCP层ACK后,需要判断TCP层ACK是否满足预设条件,然后根据判断结果确定是否拦截TCP层ACK,而RAN需要确定在用户设备拦截TCP层ACK之后RAN侧设备所需要配合的操作处理,即RAN侧设备和用户设备需要交互对方对拦截能力的支持情况。因此,本发明实施例的方法还可以包括:
[0250] S307、用户设备和RAN侧设备交互拦截能力信息,拦截能力信息包括:用户设备和RAN侧设备均支持拦截的ACK种类,用户设备和RAN侧设备均支持的拦截参数。
[0251] 具体的,用户设备和RAN侧设备可以通过能力协商的过程实现其拦截能力的的交互。S307可以包括S307a-S307f:
[0252] S307a、用户设备接收来自RAN侧设备的第一能力协商信令,第一能力协商信令中包含第一拦截操作和第一拦截参数。
[0253] 其中,第一拦截操作为第一ACK种类所对应的操作处理,第一ACK种类为RAN侧设备支持用户设备进行拦截判定时,拦截的TCP层ACK所归属的ACK种类,第一ACK种类包括第一拦截类和/或第二拦截类,第一拦截参数为RAN侧设备支持用户设备进行拦截判定所采用的拦截参数,第一拦截参数至少包括TCP层ACK中携带的接收窗口的预设门限。
[0254] S307b、用户设备根据第一拦截操作和第二ACK种类确定ACK种类交集,并根据第一拦截参数和第二拦截参数确定拦截参数交集。
[0255] 其中,ACK种类交集为所述第一ACK种类与所述第二ACK种类的交集,所述拦截参数交集为第一拦截参数与第二拦截参数的交集,所述第二ACK种类为用户设备进行拦截判定时,拦截的TCP层ACK所归属的ACK种类,第二ACK种类包括第一拦截类和/或第二拦截类,第二拦截参数为用户设备进行拦截判定所采用的拦截参数,第二拦截参数至少包括TCP层ACK中携带的接收窗口的预设门限。
[0256] S307c、用户设备根据ACK种类交集,确定用户设备和RAN侧设备均支持拦截的ACK种类,并根据拦截参数交集,确定用户设备和RAN侧设备均支持的拦截参数。
[0257] S307d、用户设备发送第二能力协商信令至RAN侧设备,第二能力协商信令中包含第二ACK种类和所述第二拦截参数。
[0258] S307e、RAN侧设备根据第二ACK种类和第一拦截操作确定ACK种类交集,并根据第二拦截参数和第一拦截参数确定拦截参数交集。
[0259] 示例性的,假设第一ACK种类(即RAN侧设备支持用户设备设备进行拦截判定时,拦截的ACK所归属的ACK种类)包括:第一拦截类和第二拦截类,而第二ACK种类(即用户设备进行拦截判定时,拦截的ACK所归属的ACK种类)包括:第一拦截类,则RAN侧设备可以确定ACK种类交集为第一ACK种类与第二ACK种类的交集:第一拦截类。
[0260] 假设第一拦截参数中的预设门限为2,而第二拦截参数中的预设门限为3。由于用户设备判定TCP层ACK满足预设条件时,要求TCP层ACK中携带的接收窗口不小于预设门限,因此,RAN侧设备可以将第一拦截参数中的预设门限和第二拦截参数中的预设门限为中较大的一个门限值作为拦截参数交集(第一拦截参数与第二拦截参数的交集),即RAN侧设备可以将门限值3作为拦截参数交集。
[0261] S307f、RAN侧设备根据ACK种类交集,确定用户设备和RAN侧设备均支持拦截的ACK种类,并根据拦截参数交集,确定用户设备和RAN侧设备均支持的拦截参数。
[0262] 进一步可选的,在本发明实施例的第二种应用场景中,RAN侧设备可以向用户设备指定RAN侧设备对拦截能力的支持情况,用户设备根据RAN侧设备指定的拦截能力确定用户设备对拦截能力的支持情况。S307可以替换为S307′:
[0263] S307′、RAN侧设备向用户设备指定交互拦截能力信息,拦截能力信息包括:RAN侧设备支持拦截的ACK种类,RAN侧设备支持的拦截参数。
[0264] S307′可以包括S307a、S307g和S307h:
[0265] S307a、用户设备接收来自RAN侧设备的第一能力协商信令,第一能力协商信令中包含第一拦截操作和第一拦截参数,
[0266] 其中,第一拦截操作为第一ACK种类所对应的操作处理,第一ACK种类为RAN侧设备支持用户设备进行拦截判定时,拦截的TCP层ACK所归属的ACK种类,第一ACK种类包括第一拦截类和/或第二拦截类,第一拦截参数为RAN侧设备支持用户设备进行拦截判定所采用的拦截参数,第一拦截参数至少包括TCP层ACK中携带的接收窗口的预设门限。
[0267] 示例性的,第一ACK种类为RAN侧设备支持用户设备进行拦截判定时,拦截的TCP层ACK所归属的ACK种类,例如,RAN侧设备支持用户设备进行拦截判定时,拦截属于第一拦截类的TCP层ACK,此时,若用户设备进行拦截该属于第一拦截类的TCP层ACK,RAN侧设备则可以在不接收TCP层ACK的条件下,通过执行第一拦截操作保证RAN侧设备和用户设备之间的TCP数据传输的确认机制。第一拦截操作可以为当TCP层ACK为第一ACK种类中的第一拦截类或者第二拦截类时,RAN侧设备执行的以保证RAN侧设备和用户设备之间的TCP数据传输的确认机制的操作。
[0268] S307g、用户设备根据第一拦截操作,确定用户设备支持拦截的ACK种类,并根据第一拦截参数,确定用户设备支持的拦截参数。
[0269] 具体的,用户设备可以将第一ACK种类确定为用户设备和RAN侧设备均支持拦截的ACK种类,并将第一拦截参数确定为用户设备和RAN侧设备均支持的拦截参数。
[0270] S307h、RAN侧设备根据第一拦截操作,确定RAN侧设备支持拦截的ACK种类,并根据第一拦截参数,确定RAN侧设备支持的拦截参数。
[0271] 具体的,RAN侧设备可以将第一ACK种类确定为用户设备和RAN侧设备均支持拦截的ACK种类,并将第一拦截参数确定为用户设备和RAN侧设备均支持的拦截参数。
[0272] 需要说明的是,在本发明实施例中可以先执行S301-S306,再执行S307,也可以先执行S307,再执行S301-S306;还可以同时执行S301-S306和S307。本发明实施例对S301-S306和S307执行的先后顺序不做限制。
[0273] S308、用户设备判断TCP层ACK所对应的TCP层数据包是否为用户设备解析用户设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包。
[0274] 具体的,若TCP层ACK所对应的TCP层数据包为用户设备解析用户设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,则继续执行S309;若TCP层ACK所对应的TCP层数据包不是用户设备解析用户设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,则继续执行S310-S311。
[0275] S309、用户设备判断TCP层ACK是否满足预设条件。
[0276] 示例性的,在本发明实施例的一种应用场景中,TCP层ACK满足预设条件可以包括:TCP层ACK不符合第一过滤标准中的至少一个过滤条件,且TCP层ACK属于第一拦截类和第二拦截类中的至少一项。
[0277] 其中,第一过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合:1)TCP层ACK是用户设备在接收到链路层数据包后,携带在发送至RAN侧设备的其他数据包中,延迟发送至RAN侧设备的ACK;2)TCP层ACK是SYN比特位未置1的ACK;3)TCP层ACK中携带有TCP最大报文长度选项(TCP Maximum Segment Size Option)、TCP窗口扩大因子选项(TCP Window Scale Option)以及TCP Sack使能选项(TCP Sack-Permitted Option);4)TCP层ACK中携带有多路TCP协议中的TCP选项;5)TCP层ACK中携带的接收窗口不小于预设门限。
[0278] 在第一拦截类中,TCP层ACK的序列号所对应的TCP层数据包未记录在TCP层数据包的缓存中,且TCP层ACK的序列号之前的ACK序列号所对应的TCP层数据包均记录在TCP层数据包的缓存中。
[0279] 在第二拦截类中,TCP层ACK的序列号等于第一序列号,第一序列号在每次获取到TCP层ACK但未拦截获取到的TCP层ACK之前进行一次更新。
[0280] 进一步可选的,TCP层ACK满足预设条件还可以包括:TCP层ACK不符合第二过滤标准中的至少一个过滤条件。
[0281] 其中,第二过滤标准中的过滤条件至少包括:1)TCP层ACK中携带有TCP时间戳选项(TCP Timestamps Option);2)TCP层ACK中携带有TCP Sack选项(TCP Sack Option)。
[0282] 具体的,若TCP层ACK满足预设条件,则直接执行S312(即拦截TCP层ACK);若TCP层ACK不满足预设条件,则继续执行S310-S311:
[0283] S310、用户设备发送TCP层ACK至RAN侧设备。
[0284] S311、RAN侧设备发送TCP层ACK至应用服务器。
[0285] S312、用户设备拦截TCP层ACK。
[0286] 具体的,用户设备可以通过配置在用户设备中的拦截模块,实现对TCP层ACK的拦截判定。
[0287] 其中,在本实施例的第一种应用场景中,用户设备与RAN侧设备之间的无线空口链路可以为3GPP链路,用户设备与RAN侧设备之间通过3GPP空中接口传输数据,即用户设备为3GPP链路使能的终端。用户设备中包含TCP IP协议栈所在的处理实体和3GPP空中接口协议栈所在的处理实体。
[0288] 优选的,在第一种应用场景的一种情形下,拦截模块可以部署在TCP IP协议栈所在处理实体的TCP层或者IP层。
[0289] 在这种情形下,TCP IP协议栈所在处理实体实现对TCP层ACK的拦截判定,并在TCP层ACK满足预设条件时,拦截TCP层ACK,不传输该TCP层ACK至3GPP空中接口协议栈所在的处理实体;当TCP层ACK不满足预设条件时,传输该TCP层ACK至3GPP空中接口协议栈所在的处理实体。
[0290] 可选的,在第一种应用场景的另一种情形下,拦截模块可以部署在3GPP空中接口协议栈所在处理实体的第一个处理空口上行数据的协议层,如在LTE网络和UMTS网络中,如拦截模块可以部署在3GPP空中接口协议栈所在处理实体中的PDCP层。
[0291] 在这种情形下,3GPP空中接口协议栈所在处理实体实现对TCP层ACK的拦截判定。具体的,当3GPP空中接口协议栈所在处理实体接收到来自TCP IP协议栈所在处理实体的TCP层ACK后,可以对TCP层ACK的拦截判定,并在TCP层ACK满足预设条件时,拦截TCP层ACK。
[0292] 需要说明的是,当用户设备为3GPP链路使能的终端时,用户设备的拦截模块接收到的TCP层ACK(TCP层ACK)可能包括来自两条链路的TCP层数据包所对应的ACK:1)有线链路的TCP层数据包所对应的TCP层ACK(当用户设备与RAN侧设备存在有线TCP连接时);2)3GPP链路的空口下行TCP层数据包所对应的TCP层ACK。因此,用户设备需要对TCP层ACK所对应的TCP层数据包是否为通过无线空口链路接收的TCP层数据包进行判断;当TCP层ACK所对应的TCP层数据包为通过无线空口链路(3GPP无线空口链路)接收的TCP层数据包时,才进一步判断该TCP层ACK是否符合过滤标准(第一过滤标准,或者第一过滤标准和第二过滤标准);当TCP层ACK所对应的TCP层数据包为通过有线链路接收的TCP层数据包时,用户设备并不拦截该TCP层ACK。
[0293] 在本实施例的第二种应用场景中,用户设备中包含TCP IP协议栈所在的处理实体和WiFi空中接口协议栈所在的处理实体。
[0294] 优选的,在第二种应用场景的一种情形下,拦截模块可以部署在TCP IP协议栈所在处理实体的TCP层或者IP层。
[0295] 在这种情形下,TCP IP协议栈所在处理实体实现对TCP层ACK的拦截判定,并在TCP层ACK满足预设条件时,拦截TCP层ACK,不传输该TCP层ACK至WiFi空中接口协议栈所在的处理实体;当TCP层ACK不满足预设条件时,传输该TCP层ACK至WiFi空中接口协议栈所在的处理实体。
[0296] 可选的,在第二种应用场景的另一种情形下,用户设备与RAN侧设备之间的无线空口链路可以为WiFi链路,用户设备与RAN侧设备之间通过WiFi空中接口传输数据,即用户设备为WiFi链路使能的终端。拦截模块可以部署在WiFi空中接口协议栈所在处理实体的第一个处理空口上行数据的协议层,如拦截模块可以部署在WiFi空中接口协议栈所在处理实体中的MAC层。
[0297] 在这种情形下,WiFi空中接口协议栈所在处理实体实现对TCP层ACK的拦截判定。具体的,当WiFi空中接口协议栈所在处理实体接收到来自TCP IP协议栈所在处理实体的TCP层ACK后,可以对TCP层ACK的拦截判定,并在TCP层ACK满足预设条件时,拦截TCP层ACK,不对该TCP层ACK进行封装和发送。
[0298] 需要说明的是,当用户设备为WiFi链路使能的终端时,用户设备的拦截模块接收到的TCP层ACK(TCP层ACK)可能包括来自两条链路的TCP层数据包所对应的ACK:1)有线链路的TCP层数据包所对应的TCP层ACK(当用户设备与RAN侧设备存在有线TCP连接时);2)WiFi链路的空口下行TCP层数据包所对应的TCP层ACK。因此,用户设备需要对TCP层ACK所对应的TCP层数据包是否为通过无线空口链路接收的TCP层数据包进行判断;当TCP层ACK所对应的TCP层数据包为通过无线空口链路(WiFi无线空口链路)接收的TCP层数据包时,才进一步判断该TCP层ACK是否符合过滤标准(第一过滤标准,或者第一过滤标准和第二过滤标准);当TCP层ACK所对应的TCP层数据包为通过有线链路接收的TCP层数据包时,用户设备并不拦截该TCP层ACK。
[0299] 进一步的,当用户设备为无线并发使能的终端时(即当用户设备与RAN侧设备之间不仅建立有WiFi无线空口链路,还建立有3GPP无线空口链路时),用户设备的拦截模块接收到的TCP层ACK可能包括来自三条链路的TCP层数据包所对应的ACK:1)有线链路的TCP层数据包所对应的TCP层ACK(当用户设备与RAN侧设备存在有线TCP连接时);2)WiFi链路的空口下行TCP层数据包所对应的TCP层ACK;3)3GPP链路的空口下行TCP层数据包所对应的TCP层ACK。因此,用户设备需要对TCP层ACK所对应的TCP层数据包是否为通过无线空口链路(WiFi无线空口链路或者3GPP无线空口链路)接收的TCP层数据包进行判断;当TCP层ACK所对应的TCP层数据包为通过无线空口链路接收的TCP层数据包时,才进一步判断该TCP层ACK是否符合过滤标准(第一过滤标准,或者第一过滤标准和第二过滤标准);当TCP层ACK所对应的TCP层数据包为通过有线链路接收的TCP层数据包时,用户设备并不拦截该TCP层ACK。
[0300] 需要说明的是,当用户设备为无线并发使能的终端时,拦截模块一般都部署在TCP IP协议栈所在处理实体。具体的,当拦截模块一般都部署在用户设备的3GPP空中接口协议栈所在的处理实体或者WiFi空中接口协议栈所在的处理实体时,并发场景下3GPP空中接口协议栈所在的处理实体和WiFi空中接口协议栈所在的处理实体时获取不到下行TCP层数据包的报数据信息的,则需要通过有效、快速的数据传输通道交互各自的信息,实现较为复杂;而TCP IP协议栈所在处理实体是多条链路(下行TCP层数据包传输链路和上行TCP层ACK)的汇聚点,当拦截模块部署在TCP IP协议栈所在处理实体时,则不需要各个处理实体之间进行信息交互,可以简化处理流程。
[0301] 其中,基于链路层确认机制,用户设备在接收到链路层数据包后,可以向RAN侧设备回复链路层ACK。
[0302] S313、用户设备在接收到链路层数据包后,发送链路层ACK至RAN侧设备。
[0303] 需要说明的是,在本发明实施例中可以先执行S305,再执行S313;也可以先执行S313,再执行S305;还可以同时执行S305和S313。本发明实施例对S305和S313执行的先后顺序不做限制。
[0304] S314、RAN侧设备根据链路层ACK确定用户设备已接收到TCP层数据包。
[0305] 具体的,RAN侧设备可以根据链路层数据包的序列号、TCP层数据包的序列号与链路层数据包的序列号之间的映射关系,确定用户设备成功接收的链路层数据包所对应的TCP层数据包的序列号,用户设备成功接收的链路层数据包所对应的TCP层数据包的序列号为用户设备成功接收的TCP层数据包的序列号。
[0306] 需要说明的是,在本实施例中,RAN侧设备中不存在任何类型的TCP代理或者RAN侧设备中存在类型为Snoop TCP的TCP代理。当RAN侧设备中不存在任何类型的TCP代理或者RAN侧设备中存在类型为Snoop TCP的TCP代理时,RAN侧设备在接收到来自应用服务器的TCP层数据包后,是不能够直接向应用服务器回复相应的TCP层ACK的,RAN侧设备只能够在确定用户设备已经成功接收到该TCP层数据包后,才能够向应用服务器回复相应的TCP层ACK。在现有技术中,对TCP层ACK进行拦截,因此,RAN侧设备可以直接在接收到来自用户设备的TCP层ACK后,直接发送该TCP层ACK至应用服务器,以便于向应用服务器指示相应的TCP层数据包已经成功发送至用户设备。但是,在本发明实施例中,若用户设备拦截了TCP层ACK,RAN侧设备则需要根据链路层ACK确定用户设备已接收到TCP层数据包,此时,RAN侧设备则需要生成一个能够向应用服务器指示相应的TCP层数据包已经成功发送至用户设备的TCP层ACK,因此,本发明实施例的方法还可以包括S315:
[0307] S315、RAN侧设备根据用户设备成功接收的TCP层数据包的序列号,构造TCP层ACK。
[0308] 其中,TCP层ACK的序列号为确认连续数据包的序列号与确认连续数据包的包长之和;TCP层ACK用于向应用服务器指示用户设备已接收到TCP层数据包;链路层数据包为RAN侧设备封装接收自应用服务器的TCP层得到的。确认连续数据包为RAN侧设备已确定的用户设备成功接收的所有TCP层数据包中,序列号按照从小到大的顺序连续的TCP层数据包中,序列号最大的TCP层数据包。
[0309] 具体的,RAN侧设备根据通过链路层接收自用户设备的链路层ACK构造TCP层ACK的方法可以为:RAN侧设备根据该链路层ACK所对应的链路层数据包的序列号以及TCP层数据包的序列号与链路层数据包的序列号之间的映射关系,查找相应的TCP层数据包,查找到的TCP层数据包即为用户设备成功接收的链路层数据包所对应的TCP层数据包的序列号以及用户设备未成功接收的链路层数据包所对应的TCP层数据包。S315具体可以包括S315a-S315c:
[0310] S315a、RAN侧设备根据链路层数据包的序列号、TCP层数据包的序列号与链路层数据包的序列号之间的映射关系,确定用户设备成功接收的链路层数据包所对应的TCP层数据包的序列号以及用户备未成功接收的链路层数据包所对应的TCP层数据包的序列号。
[0311] S315b、RAN侧设备根据用户设备成功接收的TCP层数据包的序列号,构造TCP层ACK。
[0312] 具体的,RAN侧设备构造TCP层ACK的方法可以包括:RAN侧设备根据用户设备成功接收的链路层数据包所对应的TCP层数据包的序列号,结合用户设备和RAN侧设备均支持拦截的ACK种类,构造TCP层ACK,待构造的TCP层ACK的序列号为确认连续数据包的序列号与确认连续数据包的包长之和。其中,确认连续数据包的详细描述见本发明实施例中的相关描述,本发明实施例这里不再赘述。
[0313] 示例性的,在本发明实施例的一种应用场景中,用户设备和RAN侧设备均支持拦截的ACK种类为第一拦截类(在第一拦截类中,当前ACK序列号所对应的链路层数据包在未记录在下行链路层数据包的缓存中,且当前ACK序列号之前的ACK序列号所对应的链路层数据包均记录在下行链路层数据包的缓存中)。
[0314] 在这种应用场景中,S315b具体可以包括如下步骤A:
[0315] 步骤A、RAN侧设备在第一次接收到来自用户设备的链路层ACK时,将第一数据包作为确认连续数据包,然后将确认连续数据包的序列号与确认连续数据包的包长之和作为待构造的TCP层ACK的序列号,构造TCP层ACK。
[0316] 其中,第一数据包为RAN侧设备第一次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包中,从序列号最小的数据包开始,按照序列号由小到大的排列顺序排列的序列号连续的TCP层数据包中序列号最大的数据包。
[0317] 例如,如图6中的情况1所示,当RAN侧设备第一次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包,包括:序列号为1的TCP层数据包(即TCP层数据包1)、序列号为2的TCP层数据包(即TCP层数据包2)和序列号为3的TCP层数据包(即TCP层数据包3)时,第一数据包则为TCP层数据包1、TCP层数据包2和TCP层数据包3中的TCP层数据包3,即序列号为3的TCP层数据包,则RAN侧设备可以将TCP层数据包3的序列号3与TCP层数据包3的包长之和作为待构造的TCP层ACK的序列号,以构造TCP层ACK,即TCP层数据包3为确认连续数据包。
[0318] 如图6中的情况2所示,当RAN侧设备第一次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包,仅包括:序列号为1的TCP层数据包(即TCP层数据包1)时,第一数据包则为TCP层数据包1,即序列号为1的TCP层数据包,则RAN侧设备可以将TCP层数据包1的序列号1与TCP层数据包1的包长之和作为待构造的TCP层ACK的序列号,以构造TCP层ACK,即TCP层数据包1为确认连续数据包。
[0319] 如图6中的情况3所示,当RAN侧设备第一次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包,包括:序列号为1的TCP层数据包(即TCP层数据包1)和序列号为3的TCP层数据包(即TCP层数据包3)时,第一数据包则为TCP层数据包1和TCP层数据包3中的TCP层数据包1,即序列号为1的TCP层数据包,则RAN侧设备可以将TCP层数据包1的序列号1与TCP层数据包1的包长之和作为待构造的TCP层ACK的序列号,以构造TCP层ACK,即TCP层数据包1为确认连续数据包。
[0320] 进一步可选的,在如图6所示的情况3中,由于RAN侧设备第一次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包,可能还包括序列号不连续的TCP层数据包3。因此,S315b还可以包括:
[0321] 步骤A′、RAN侧设备在第一次接收到来自用户设备的链路层ACK时,将第二数据包的信息添加至确定不连续集合。
[0322] 其中,第二数据包为RAN侧设备第一次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包中,序列号大于第一数据包的序列号,且序列号与第一数据包的序列号不连续的TCP层数据包。
[0323] 例如,在图6所示的情况3中TCP层数据包3为第二数据包。
[0324] 进一步的,假设RAN侧设备第N-1次接收到链路层ACK后确定的用户设备成功接收的链路层数据包所对应的TCP层数据包的序列号均为连续排列的序列号,如图7所示的任意一种情况中,RAN侧设备第N-1次接收到链路层ACK后确定的用户设备成功接收的链路层数据包所对应的TCP层数据包包括:序列号为1的TCP层数据包(即TCP层数据包1)、序列号为2的TCP层数据包(即TCP层数据包2)和序列号为3的TCP层数据包(即TCP层数据包3)。即RAN侧设备第N-1次接收到链路层ACK后确定的确认连续数据包为序列号为3的TCP层数据包(即TCP层数据包3),则S315b′还可以包括步骤B和步骤C:
[0325] 步骤B、若RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包中包含第三数据包,则将第四数据包作为确认连续数据包,然后将确认连续数据包的序列号与确认连续数据包的包长之和作为待构造的TCP层ACK的序列号。
[0326] 其中,所述第三数据包为序列号与RAN侧设备第N-1次接收到链路层ACK后确定的确认连续数据包的序列号连续的TCP层数据包。
[0327] 第四数据包为RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包中,从第三数据包开始,按照序列号由小到大的排列顺序排列的序列号连续的TCP层数据包中序列号最大的数据包。
[0328] 例如,如图7中的情况1、情况2和情况3所示,由于RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包中包含序列号与RAN侧设备第N-1次接收到链路层ACK后确定的确认连续数据包的序列号3连续的数据包TCP层数据包4,即序列号为4的TCP层数据包,因此,RAN侧设备可以将第四数据包作为确认连续数据包,然后将确认连续数据包的序列号与确认连续数据包的包长之和作为待构造的TCP层ACK的序列号。
[0329] 具体的,在如图7中的情况1中,RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包除了序列号为4的TCP层数据包(即TCP层数据包4)之外,还包括序列号为5的TCP层数据包(即TCP层数据包5)和序列号为6的TCP层数据包(即TCP层数据包6),则第四数据包为RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包中,从第三数据包(TCP层数据包4)开始,按照序列号由小到大的排列顺序排列的序列号连续的TCP层数据包中序列号最大的数据包-TCP层数据包6。
[0330] 在如图7所示的情况1中,RAN侧设备可以将则将TCP层数据包6作为确认连续数据包,然后将TCP层数据包6的序列号与TCP层数据包6的包长之和作为待构造的TCP层ACK的序列号,构造TCP层ACK。
[0331] 可选的,在如图7中的情况2中,RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包除了序列号为4的TCP层数据包(即TCP层数据包4)之外,不包括其他的TCP层数据包,则第四数据包为TCP层数据包4。
[0332] 在如图7所示的情况2中,RAN侧设备可以将则将TCP层数据包4作为确认连续数据包,然后将TCP层数据包4的序列号与TCP层数据包4的包长之和作为待构造的TCP层ACK的序列号,构造TCP层ACK。
[0333] 可选的,在如图7中的情况3中,RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包除了序列号为4的TCP层数据包(即TCP层数据包4)之外,还包括序列号为6的TCP层数据包(即TCP层数据包6),由于TCP层数据包6)的序号与TCP层数据包4的序列号不连续,因此第四数据包为TCP层数据包4。
[0334] 在如图7所示的情况3,RAN侧设备可以将则将TCP层数据包4作为确认连续数据包,然后将TCP层数据包4的序列号与TCP层数据包4的包长之和作为待构造的TCP层ACK的序列号,构造TCP层ACK。
[0335] 进一步可选的,在如图7所示的情况3中,由于RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包中,除了第三数据包(序列号与RAN侧设备第N-1次接收到链路层ACK后确定的确认连续数据包的序列号连续的TCP层数据包)外,可能还包括序列号与第三数据包(TCP层数据包4)的序列号不连续的TCP层数据包6。因此,S315b还可以包括:
[0336] 步骤B′、若RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包中包含第三数据包,将第五数据包的信息添加至确定不连续集合。
[0337] 其中,第五数据包为RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包中,序列号大于第三数据包的序列号,且序列号与第N数据包的序列号不连续的TCP层数据包。
[0338] 例如,在图7所示的情况3中TCP层数据包6为第五数据包。
[0339] 步骤C、若RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包中不包含第三数据包,则将第六数据包的信息添加至确定不连续集合。
[0340] 其中,第三数据包为序列号与RAN侧设备第N-1次接收到链路层ACK后确定的确认连续数据包的序列号连续的TCP层数据包。
[0341] 第六数据包可以包括RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包。
[0342] 例如,如图7中的情况4、情况5和情况6所示,由于RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包中不包含序列号与RAN侧设备第N-1次接收到链路层ACK后确定的确认连续数据包的序列号3连续的数据包TCP层数据包4,即序列号为4的TCP层数据包,因此,RAN侧设备不需要更新确认连续数据包,只需要将第六数据包的信息添加至确定不连续集合。
[0343] 具体的,在如图7中的情况4中,RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包中包括序列号为5的TCP层数据包(即TCP层数据包5),则第六数据包为TCP层数据包5。
[0344] 在如图7所示的情况4中,RAN侧设备可以将则将TCP层数据包5的信息添加至确认不连续数据包集合。
[0345] 可选的,在如图7中的情况5中,RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包中包括序列号为5的TCP层数据包(即TCP层数据包5)和序列号为7的TCP层数据包(即TCP层数据包7),则第六数据包为TCP层数据包5和TCP层数据包7。
[0346] 在如图7所示的情况5中,RAN侧设备可以将则将TCP层数据包5和TCP层数据包7的信息添加至确认不连续数据包集合。
[0347] 可选的,在如图7中的情况6中,RAN侧设备第N次接收到链路层ACK后,确定的用户设备成功接收的链路层数据包所对应的TCP层数据包中包括序列号为5的TCP层数据包(即TCP层数据包5)和序列号为6的TCP层数据包(即TCP层数据包6),则第六数据包为TCP层数据包5和TCP层数据包6。
[0348] 在如图7所示的情况6中,RAN侧设备可以将则将TCP层数据包5和TCP层数据包6的信息添加至确认不连续数据包集合。
[0349] 进一步可选的,如图8所示,假设RAN侧设备第N-2次接收到链路层ACK后确定的用户设备成功接收的链路层数据包所对应的TCP层数据包包括:序列号为1的TCP层数据包(即TCP层数据包1)、序列号为2的TCP层数据包(即TCP层数据包2)和序列号为3的TCP层数据包(即TCP层数据包3)。此时,确定连续数据包为TCP层数据包3,确定不连续集合中未添加任何的TCP层数据包的信息。RAN侧设备可以将TCP层数据包3的序列号3与TCP层数据包3的包长之和作为待构造的TCP层ACK的序列号,以构造TCP层ACK,并执行S316:RAN侧设备发送构造的TCP层ACK至应用服务器。
[0350] RAN侧设备第N-1次接收到链路层ACK后确定的用户设备成功接收的链路层数据包所对应的TCP层数据包包括:序列号为5的TCP层数据包(即TCP层数据包5)和序列号为7的TCP层数据包(即TCP层数据包7)。此时,RAN侧设备不更新确定连续数据包,确定连续数据包仍为TCP层数据包3,RAN侧设备在确定不连续集合中添加TCP层数据包5的信息和TCP层数据包7的信息。由于确定连续数据包未更新,因此RAN侧设备可以在第N-1次接收到链路层ACK后不构造相应的TCP层ACK,或者RAN侧设备可以在将TCP层数据包3的序列号3与TCP层数据包3的包长之和作为TCP层ACK的序列号,以构造TCP层ACK后,不执行S316:发送构造的TCP层ACK至应用服务器。
[0351] 在如图8所示的情况1中,RAN侧设备第N次接收到链路层ACK后确定的用户设备成功接收的链路层数据包所对应的TCP层数据包包括:序列号为4的TCP层数据包(即TCP层数据包4)和序列号为6的TCP层数据包(即TCP层数据包6)。此时,RAN侧设备将确定连续数据包更新为TCP层数据包7),RAN侧设备删除确定不连续集合中的TCP层数据包5的信息和TCP层数据包7的信息。RAN侧设备可以将TCP层数据包7的序列号7与TCP层数据包7的包长之和作为待构造的TCP层ACK的序列号,以构造TCP层ACK,并执行S316:RAN侧设备发送构造的TCP层ACK至应用服务器。
[0352] 在如图8所示的情况2中,RAN侧设备第N次接收到链路层ACK后确定的用户设备成功接收的链路层数据包所对应的TCP层数据包包括:序列号为4的TCP层数据包(即TCP层数据包4)和序列号为8的TCP层数据包(即TCP层数据包8)。此时,RAN侧设备将确定连续数据包更新为TCP层数据包5),RAN侧设备在确定不连续集合中添加TCP层数据包8的信息,RAN侧设备删除确定不连续集合中的TCP层数据包5的信息。RAN侧设备可以将TCP层数据包5的序列号5与TCP层数据包5的包长之和作为待构造的TCP层ACK的序列号,以构造TCP层ACK,并执行S316:RAN侧设备发送构造的TCP层ACK至应用服务器。
[0353] 示例性的,在本发明实施例的另一种应用场景中,用户设备和RAN侧设备均支持拦截的ACK种类为第二拦截类(在第二拦截类中,所述TCP层ACK的序列号等于第一序列号,第一序列号记录在所述下行链路层数据包的缓存中的最新更新的ACK的序列号)。
[0354] 在这种应用场景中,S315b具体可以参考用户设备和RAN侧设备均支持拦截的ACK种类为第一拦截类时的相关描述。不同的是,在步骤A和步骤B中RAN侧设备在每次更新确认连续数据包(步骤A:RAN侧设备将第一数据包作为确认连续数据包,步骤B:将第四数据包作为确认连续数据包)时,都需要将用于构造第二拦截类的ACK的判决计数清零;并且,在步骤A′和步骤B中RAN侧设备在每次向确定不连续集合中添加一个新的数据包的信息时,都需要为构造第二拦截类的ACK的判决计数加1,若RAN侧设备向确定不连续集合中添加N个新的数据包的信息,则需要为构造第二拦截类的ACK的判决计数加N。
[0355] S315c、RAN侧设备根据用户设备未成功接收的链路层数据包所对应的TCP层数据包的序列号,重新发送未成功接收的链路层数据包至用户设备。
[0356] S316、RAN侧设备发送构造的TCP层ACK至应用服务器。
[0357] 其中,构造的TCP层ACK用于向应用服务器指示相应的TCP层数据包已经被用户设备接收。
[0358] 本发明实施例提供的数据传输方法,用户设备获取TCP层ACK;若TCP层ACK所对应的TCP层数据包为所述用户设备解析用户设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且TCP层ACK满足预设条件,则拦截TCP层ACK。
[0359] 与现有技术中大量的TCP层ACK包传输会占据无线空口链路资源,加剧无线空口链路资源的消耗相比。在本方案中,用户设备可以对TCP层ACK进行拦截判定,并在TCP层ACK满足预设条件时,拦截TCP层ACK,即不发送TCP层ACK至RAN侧设备;RAN侧设备可以通过接收自用户设备的链路层ACK确定用户设备已接收到TCP层数据包,可以在不影响用户设备和RAN侧设备之间TCP确认机制的情况下,减少用户设备和RAN侧设备之间的无线空口链路中传输的TCP层ACK包的数量,进而降低无线空口链路的资源消耗,从而可以提高无线业务数据的传输效率,提高无线通信系统的容量。
[0360] 实施例4
[0361] 本发明实施例提供一种数据传输方法,可以应用于基于TCP连接的下行数据传输过程中,即第一设备具体为用户设备,第二设备具体为RAN侧设备。
[0362] 其中,本实施例以RAN侧设备中存在类型为Split TCP的TCP代理时,RAN侧设备与用户设备进行下行数据传输为例,对本发明实施例的方法进行进一步说明。
[0363] 具体的,如图5所示,该数据传输方法可以包括:
[0364] S401、RAN侧设备接收来自应用服务器的TCP层数据包。
[0365] S402、RAN侧设备在接收到来自应用服务器的TCP层数据包后,根据接收到的TCP层数据包生成并发送TCP层ACK至应用服务器。
[0366] 其中,该TCP层ACK用于指示应用服务器:RAN侧设备已接收到来自应用服务器的TCP层数据包。
[0367] 需要说明的是,RAN侧设备根据接收到的TCP层数据包生成TCP层ACK的方法可以参考现有技术中设备在接收到TCP层数据包后生成TCP层ACK的具体方法,本实施例这里不再赘述。
[0368] S403、RAN侧设备在接收到来自应用服务器的TCP层数据包后,记录TCP层数据包的序列号和TCP层数据包的包长。
[0369] S404、RAN侧设备封装TCP层数据包,以得到链路层数据包,并获取TCP层数据包与链路层数据包之间的映射关系。
[0370] 其中,TCP层数据包与链路层数据包之间的映射关系至少包括:TCP层数据包的序列号与链路层数据包的序列号之间的映射关系。
[0371] 需要说明的是,RAN侧设备将TCP层数据包封装成链路层数据包的具体方法可以参考现有技术中数据包封装的相应描述,本实施例这里不再赘述。
[0372] 需要说明的是,在本发明实施例中可以先执行S402,再执行S403-S404;也可以先执行S403-S404,再执行S402;还可以同时执行S402和S403-S404。本发明实施例对S402和S403-S404执行的先后顺序不作限制。
[0373] S405、RAN侧设备发送链路层数据包至用户设备。
[0374] S406、用户设备在接收到链路层数据包后,解析链路层数据包,以得到相应的TCP层数据包。
[0375] S407、用户设备根据解析得到的TCP层数据包生成TCP层ACK。
[0376] 需要说明的是,本发明实施例中用户设备在接收到链路层数据包后,解析链路层数据包,以得到相应的TCP层数据包,并根据解析得到的TCP层数据包生成TCP层ACK的具体方法可以参考实施例3中用户设备在接收到链路层数据包后,解析链路层数据包,以得到相应的TCP层数据包,并根据解析得到的TCP层数据包生成TCP层ACK中的相关描述,本实施例这里不再赘述。
[0377] 进一步可选的,在本发明实施例中,由于用户设备在生成TCP层ACK后,需要判断TCP层ACK是否满足预设条件,然后根据判断结果确定是否拦截TCP层ACK,而RAN需要确定在用户设备拦截TCP层ACK之后RAN侧设备所需要配合的操作处理,即RAN侧设备和用户设备需要交互对方对拦截能力的支持情况。因此,本发明实施例的方法还可以包括:
[0378] S408、用户设备和RAN侧设备交互拦截能力信息,拦截能力信息包括:用户设备和RAN侧设备均支持拦截的ACK种类,用户设备和RAN侧设备均支持的拦截参数。
[0379] 需要说明的是,本实施例中用户设备和RAN侧设备交互拦截能力信息的具体方法与实施例3中用户设备和RAN侧设备交互拦截能力信息的方法类似,因此,可以参考实施例3中对用户设备和RAN侧设备交互拦截能力信息的具体描述,本实施例这里不再赘述。
[0380] S409、用户设备判断TCP层ACK所对应的TCP层数据包是否为用户设备解析用户设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包。
[0381] 具体的,若TCP层ACK所对应的TCP层数据包为用户设备解析用户设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,则继续执行S410;若TCP层ACK所对应的TCP层数据包不是用户设备解析用户设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,则继续执行S411。
[0382] S410、用户设备判断TCP层ACK是否满足预设条件。
[0383] 需要说明的是,本发明实施例中,用户设备判断TCP层ACK是否满足预设条件的方法以及拦截模块的部署可以参考实施例3中的相关描述,本实施例这里不再赘述。
[0384] 具体的,若TCP层ACK满足预设条件,则直接执行S412(即拦截TCP层ACK);若TCP层ACK不满足预设条件,则继续执行S411:
[0385] S411、用户设备发送TCP层ACK至RAN侧设备。
[0386] S412、用户设备拦截TCP层ACK。
[0387] 需要说明的是,本实施例中用户设备拦截TCP层ACK的具体方法与实施例3中用户设备拦截TCP层ACK的方法类似,因此,可以参考实施例3中对用户设备拦截TCP层ACK的相关描述,本实施例这里不再赘述。
[0388] S413、用户设备在接收到链路层数据包后,发送链路层ACK至RAN侧设备。
[0389] 需要说明的是,在本发明实施例中可以先执行S406,再执行S413;也可以先执行S413,再执行S406;还可以同时执行S406和S413。本发明实施例对S406和S413执行的先后顺序不做限制。
[0390] S414、RAN侧设备根据链路层ACK确定用户设备已接收到TCP层数据包。
[0391] 需要说明的是,本实施例中RAN侧设备根据链路层ACK确定用户设备已接收到TCP层数据包的具体方法与实施例3中RAN侧设备根据链路层ACK确定用户设备已接收到TCP层数据包的方法类似,因此可以参考实施例3中对RAN侧设备根据链路层ACK确定用户设备已接收到TCP层数据包的相关描述,本实施例这里不再赘述。
[0392] 需要注意的是,在本实施例中,RAN侧设备中存在类型为Split TCP的TCP代理。当RAN侧设备中存在类型为Split TCP的TCP代理时,RAN侧设备在接收到来自应用服务器的TCP层数据包后,可以直接向应用服务器回复相应的TCP层ACK,因此,RAN侧设备在发送TCP层数据包至用户设备,并确定用户设备已接收到该TCP层数据包时,则不需要再次向应用服务器回复相应的TCP层ACK。
[0393] 因此,在本实施例中,RAN侧设备在确定用户设备已接收到TCP层数据包后,则不需要构造用于向应用服务器指示相应的TCP层数据包已经成功发送至用户设备的TCP层ACK。
[0394] 本发明实施例提供的数据传输方法,用户设备获取TCP层ACK;若TCP层ACK所对应的TCP层数据包为所述用户设备解析用户设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且TCP层ACK满足预设条件,则拦截TCP层ACK。
[0395] 与现有技术中大量的TCP层ACK包传输会占据无线空口链路资源,加剧无线空口链路资源的消耗相比。在本方案中,用户设备可以对TCP层ACK进行拦截判定,并在TCP层ACK满足预设条件时,拦截TCP层ACK,即不发送TCP层ACK至RAN侧设备;RAN侧设备可以通过接收自用户设备的链路层ACK确定用户设备已接收到TCP层数据包,可以在不影响用户设备和RAN侧设备之间TCP确认机制的情况下,减少用户设备和RAN侧设备之间的无线空口链路中传输的TCP层ACK包的数量,进而降低无线空口链路的资源消耗,从而可以提高无线业务数据的传输效率,提高无线通信系统的容量。
[0396] 实施例5
[0397] 本发明实施例提供一种数据传输方法,可以应用于基于TCP连接的上行数据传输过程中,即第一设备具体为RAN侧设备,第二设备具体为用户设备。
[0398] 具体的,如图9所示,该数据传输方法可以包括:
[0399] S501、用户设备获取TCP层数据包。
[0400] S502、用户设备记录TCP层数据包的序列号和TCP层数据包的包长。
[0401] S503、用户设备封装TCP层数据包,以得到链路层数据包,并获取TCP层数据包与链路层数据包之间的映射关系。
[0402] 其中,TCP层数据包的包数据信息包括:TCP层数据包的序列号、所述TCP层数据包的包长以及所述TCP层数据包的序列号与所述链路层数据包的序列号之间的映射关系。
[0403] 需要说明的是,用户设备将TCP层数据包封装成链路层数据包的具体方法可以参考现有技术中数据包封装的相应描述,本实施例这里不再赘述。
[0404] S504、用户设备发送链路层数据包至RAN侧设备。
[0405] S505、RAN侧设备在接收到链路层数据包后,解析链路层数据包,以得到相应的TCP层数据包。
[0406] S506、RAN侧设备发送TCP层数据包至应用服务器。
[0407] 需要说明的是,在本实施例的第一种应用场景中,RAN侧设备与用户设备之间的无线空口链路可以为3GPP链路,即RAN侧设备与用户设备之间通过3GPP空中接口传输数据。
[0408] 在第一种应用场景中,RAN侧设备中可以包含TCP IP协议栈所在的处理实体和3GPP空中接口协议栈所在的处理实体。RAN侧设备可以通过RAN侧设备中的3GPP空中接口协议栈所在的处理实体接收来自用户设备的链路层数据包,并解析链路层数据包以得到相应的TCP层数据包,然后将解析出的TCP层数据包传输至该RAN侧设备中的TCP IP协议栈所在的处理实体,RAN侧设备通过TCP IP协议栈所在的处理实体发送TCP层数据包至应用服务器。
[0409] 需要说明的是,在本实施例的第二种应用场景中,RAN侧设备与用户设备之间的无线空口链路可以为WiFi链路,即RAN侧设备与用户设备之间通过WiFi空中接口传输数据。
[0410] 在第二种应用场景中,RAN侧设备中可以包含TCP IP协议栈所在的处理实体和WiFi空中接口协议栈所在的处理实体。RAN侧设备可以通过RAN侧设备中的WiFi空中接口协议栈所在的处理实体接收来自用户设备的链路层数据包,并解析链路层数据包以得到相应的TCP层数据包,然后将解析出的TCP层数据包传输至该RAN侧设备中的TCP IP协议栈所在的处理实体,RAN侧设备通过TCP IP协议栈发送TCP层数据包至应用服务器。
[0411] 需要说明的是,TCP层ACK所对应的TCP层数据包可以为RAN侧设备解析RAN侧设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包;TCP层ACK所对应的TCP层数据包也可以为RAN侧设备解析RAN侧设备通过有线链路接收到的链路层数据包得到的TCP层数据包。由于本发明实施例中仅对RAN侧设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包进行拦截判定,因此,本实施例上述仅描述根据通过无线空口链路接收到的链路层数据包得到的TCP层数据包生成TCP层ACK的具体过程。
[0412] S507、RAN侧设备接收来自应用服务器的TCP层ACK。
[0413] 进一步可选的,在本发明实施例中,由于RAN侧设备在接收到来自应用服务器的TCP层ACK后,需要判断TCP层ACK是否满足预设条件,然后根据判断结果确定是否拦截TCP层ACK,而RAN需要确定在RAN侧设备拦截TCP层ACK之后用户设备所需要配合的操作处理,即用户设备和RAN侧设备需要交互对方对拦截能力的支持情况。因此,本发明实施例的方法还可以包括:
[0414] S508、用户设备和RAN侧设备交互拦截能力信息,拦截能力信息包括:用户设备和RAN侧设备均支持拦截的ACK种类,用户设备和RAN侧设备均支持的拦截参数。
[0415] 需要说明的是,本实施例中用户设备和RAN侧设备交互拦截能力信息的具体方法可以参考本发明实施例3中的相关描述,本实施例这里不再赘述。
[0416] 需要说明的是,在本发明实施例中可以先执行S501-S507,再执行S508,也可以先执行S508,再执行S501-S507;还可以同时执行S501-S507和S508。本发明实施例对S501-S507和S508执行的先后顺序不做限制。
[0417] S509、RAN侧设备判断TCP层ACK所对应的TCP层数据包是否为RAN侧设备解析RAN侧设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包。
[0418] 具体的,若TCP层ACK所对应的TCP层数据包为RAN侧设备解析RAN侧设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,则继续执行S510;若TCP层ACK所对应的TCP层数据包不是RAN侧设备解析RAN侧设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,则继续执行S511。
[0419] S510、RAN侧设备判断TCP层ACK是否满足预设条件。
[0420] 需要说明的是,本实施例中RAN侧设备判断TCP层ACK是否满足预设条件的具体方法可以参考本发明上述实施例中用户设备判断TCP层ACK是否满足预设条件的方法。本实施例这里不再赘述。
[0421] 需要说明的是,本发明实施例中,RAN侧设备中拦截模块的部署可以参考实施例3中用户设备中拦截模块的部署的相关描述,本实施例这里不再赘述。
[0422] 具体的,若TCP层ACK满足预设条件,则直接执行S512(即拦截TCP层ACK);若TCP层ACK不满足预设条件,则继续执行S511:
[0423] S511、RAN侧设备发送TCP层ACK至用户设备。
[0424] S512、RAN侧设备拦截TCP层ACK。
[0425] 具体的,RAN侧设备可以通过配置在RAN侧设备中的拦截模块,实现对TCP层ACK的拦截判定。
[0426] 其中,在本实施例的第一种应用场景中,RAN侧设备与用户设备之间的无线空口链路可以为3GPP链路,RAN侧设备与用户设备之间通过3GPP空中接口传输数据,即RAN侧设备为3GPP链路使能的终端。RAN侧设备中包含TCP IP协议栈所在的处理实体和3GPP空中接口协议栈所在的处理实体。
[0427] 优选的,在第一种应用场景的一种情形下,拦截模块可以部署在TCP IP协议栈所在处理实体的TCP层或者IP层。
[0428] 在这种情形下,TCP IP协议栈所在处理实体实现对TCP层ACK的拦截判定,并在TCP层ACK满足预设条件时,拦截TCP层ACK,不传输该TCP层ACK至3GPP空中接口协议栈所在的处理实体;当TCP层ACK不满足预设条件时,传输该TCP层ACK至3GPP空中接口协议栈所在的处理实体。
[0429] 可选的,在第一种应用场景的另一种情形下,拦截模块可以部署在3GPP空中接口协议栈所在处理实体的第一个处理空口上行数据的协议层,如在LTE网络和UMTS网络中,如拦截模块可以部署在3GPP空中接口协议栈所在处理实体中的PDCP层。
[0430] 在这种情形下,3GPP空中接口协议栈所在处理实体实现对TCP层ACK的拦截判定。具体的,当3GPP空中接口协议栈所在处理实体接收到来自TCP IP协议栈所在处理实体的TCP层ACK后,可以对TCP层ACK的拦截判定,并在TCP层ACK满足预设条件时,拦截TCP层ACK。
[0431] 需要说明的是,当RAN侧设备为3GPP链路使能的终端时,RAN侧设备的拦截模块接收到的TCP层ACK(TCP层ACK)可能包括来自两条链路的TCP层数据包所对应的ACK:1)有线链路的TCP层数据包所对应的TCP层ACK(当RAN侧设备与用户设备存在有线TCP连接时);2)3GPP链路的空口下行TCP层数据包所对应的TCP层ACK。因此,RAN侧设备需要对TCP层ACK所对应的TCP层数据包是否为通过无线空口链路接收的TCP层数据包进行判断;当TCP层ACK所对应的TCP层数据包为通过无线空口链路(3GPP无线空口链路)接收的TCP层数据包时,才进一步判断该TCP层ACK是否符合过滤标准(第一过滤标准,或者第一过滤标准和第二过滤标准);当TCP层ACK所对应的TCP层数据包为通过有线链路接收的TCP层数据包时,RAN侧设备并不拦截该TCP层ACK。
[0432] 在本实施例的第二种应用场景中,RAN侧设备中包含TCP IP协议栈所在的处理实体和WiFi空中接口协议栈所在的处理实体。
[0433] 优选的,在第二种应用场景的一种情形下,拦截模块可以部署在TCP IP协议栈所在处理实体的TCP层或者IP层。
[0434] 在这种情形下,TCP IP协议栈所在处理实体实现对TCP层ACK的拦截判定,并在TCP层ACK满足预设条件时,拦截TCP层ACK,不传输该TCP层ACK至WiFi空中接口协议栈所在的处理实体;当TCP层ACK不满足预设条件时,传输该TCP层ACK至WiFi空中接口协议栈所在的处理实体。
[0435] 可选的,在第二种应用场景的另一种情形下,RAN侧设备与用户设备之间的无线空口链路可以为WiFi链路,RAN侧设备与用户设备之间通过WiFi空中接口传输数据,即RAN侧设备为WiFi链路使能的终端。拦截模块可以部署在WiFi空中接口协议栈所在处理实体的第一个处理空口上行数据的协议层,如拦截模块可以部署在WiFi空中接口协议栈所在处理实体中的MAC层。
[0436] 在这种情形下,WiFi空中接口协议栈所在处理实体实现对TCP层ACK的拦截判定。具体的,当WiFi空中接口协议栈所在处理实体接收到来自TCP IP协议栈所在处理实体的TCP层ACK后,可以对TCP层ACK的拦截判定,并在TCP层ACK满足预设条件时,拦截TCP层ACK,不对该TCP层ACK进行封装和发送。
[0437] 需要说明的是,当RAN侧设备为WiFi链路使能的终端时,RAN侧设备的拦截模块接收到的TCP层ACK(TCP层ACK)可能包括来自两条链路的TCP层数据包所对应的ACK:1)有线链路的TCP层数据包所对应的TCP层ACK(当RAN侧设备与用户设备存在有线TCP连接时);2)WiFi链路的空口下行TCP层数据包所对应的TCP层ACK。因此,RAN侧设备需要对TCP层ACK所对应的TCP层数据包是否为通过无线空口链路接收的TCP层数据包进行判断;当TCP层ACK所对应的TCP层数据包为通过无线空口链路(WiFi无线空口链路)接收的TCP层数据包时,才进一步判断该TCP层ACK是否符合过滤标准(第一过滤标准,或者第一过滤标准和第二过滤标准);当TCP层ACK所对应的TCP层数据包为通过有线链路接收的TCP层数据包时,RAN侧设备并不拦截该TCP层ACK。
[0438] 进一步的,当RAN侧设备为无线并发使能的终端时(即当RAN侧设备与用户设备之间不仅建立有WiFi无线空口链路,还建立有3GPP无线空口链路时),RAN侧设备的拦截模块接收到的TCP层ACK可能包括来自三条链路的TCP层数据包所对应的ACK:1)有线链路的TCP层数据包所对应的TCP层ACK(当RAN侧设备与用户设备存在有线TCP连接时);2)WiFi链路的空口下行TCP层数据包所对应的TCP层ACK;3)3GPP链路的空口下行TCP层数据包所对应的TCP层ACK。因此,RAN侧设备需要对TCP层ACK所对应的TCP层数据包是否为通过无线空口链路(WiFi无线空口链路或者3GPP无线空口链路)接收的TCP层数据包进行判断;当TCP层ACK所对应的TCP层数据包为通过无线空口链路接收的TCP层数据包时,才进一步判断该TCP层ACK是否符合过滤标准(第一过滤标准,或者第一过滤标准和第二过滤标准);当TCP层ACK所对应的TCP层数据包为通过有线链路接收的TCP层数据包时,RAN侧设备并不拦截该TCP层ACK。
[0439] 需要说明的是,当RAN侧设备为无线并发使能的终端时,拦截模块一般都部署在TCP IP协议栈所在处理实体。具体的,当拦截模块一般都部署在RAN侧设备的3GPP空中接口协议栈所在的处理实体或者WiFi空中接口协议栈所在的处理实体时,并发场景下3GPP空中接口协议栈所在的处理实体和WiFi空中接口协议栈所在的处理实体时获取不到下行TCP层数据包的报数据信息的,则需要通过有效、快速的数据传输通道交互各自的信息,实现较为复杂;而TCP IP协议栈所在处理实体是多条链路(下行TCP层数据包传输链路和上行TCP层ACK)的汇聚点,当拦截模块部署在TCP IP协议栈所在处理实体时,则不需要各个处理实体之间进行信息交互,可以简化处理流程。
[0440] 其中,基于链路层确认机制,RAN侧设备在接收到链路层数据包后,可以向用户设备回复链路层ACK。
[0441] S513、RAN侧设备在接收到链路层数据包后,发送链路层ACK至用户设备。
[0442] S514、用户设备根据链路层ACK确定RAN侧设备已接收到TCP层数据包。
[0443] 需要说明的是,本实施例中用户设备根据链路层ACK确定RAN侧设备已接收到TCP层数据包的具体方法与实施例3中RAN侧设备根据链路层ACK确定用户设备已接收到TCP层数据包的方法类似,因此可以参考实施例3中对RAN侧设备根据链路层ACK确定用户设备已接收到TCP层数据包的相关描述,本实施例这里不再赘述。
[0444] 本发明实施例提供的数据传输方法,第一设备获取TCP层ACK;若TCP层ACK所对应的TCP层数据包为所述第一设备解析第一设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且TCP层ACK满足预设条件,则拦截TCP层ACK。
[0445] 与现有技术中大量的TCP层ACK包传输会占据无线空口链路资源,加剧无线空口链路资源的消耗相比。在本方案中,第一设备可以对TCP层ACK进行拦截判定,并在TCP层ACK满足预设条件时,拦截TCP层ACK,即不发送TCP层ACK至第二设备;第二设备可以通过接收自第一设备的链路层ACK确定第一设备已接收到TCP层数据包,可以在不影响第一设备和第二设备之间TCP确认机制的情况下,减少第一设备和第二设备之间的无线空口链路中传输的TCP层ACK包的数量,进而降低无线空口链路的资源消耗,从而可以提高无线业务数据的传输效率,提高无线通信系统的容量。
[0446] 实施例6
[0447] 本发明一实施例提供一种设备,如图11所示,该设备包括:获取单元61和拦截单元62。
[0448] 获取单元61,用于获取传输控制协议TCP层确认ACK。
[0449] 拦截单元62,用于若所述获取单元61获取的所述TCP层ACK所对应的TCP层数据包为所述设备解析所述设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且所述TCP层ACK满足预设条件,则拦截所述TCP层ACK。
[0450] 其中,所述TCP层ACK满足所述预设条件包括:所述TCP层ACK不符合第一过滤标准中的至少一个过滤条件,且所述TCP层ACK属于第一拦截类和第二拦截类中的至少一项。
[0451] 进一步的,如图12所示,所述设备,还可以包括:接收单元63和发送单元64。
[0452] 接收单元63,用于通过所述无线空口链路接收来自所述第二设备的链路层数据包。
[0453] 发送单元64,用于在所述接收单元63通过所述无线空口链路接收到来自所述第二设备的链路层数据包后,发送链路层ACK至所述第二设备,以使所述第二设备根据所述链路层ACK确定所述设备已接收到所述TCP层数据包。
[0454] 进一步的,发送单元64,用于若所述获取单元61获取的所述TCP层ACK所对应的TCP层数据包不是所述设备解析所述设备通过所述无线空口链路接收到的链路层数据包得到的TCP层数据包,则发送所述TCP层ACK至所述第二设备。
[0455] 或者,所述发送单元64,还用于若所述获取单元61获取的所述TCP层ACK所对应的TCP层数据包为所述设备解析所述设备通过所述无线空口链路接收到的链路层数据包得到的TCP层数据包,且所述TCP层ACK不满足所述预设条件,则发送所述TCP层ACK至所述第二设备。
[0456] 进一步的,所述第一过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合。
[0457] 第一过滤标准中的过滤条件可以为:所述TCP层ACK是所述设备在接收到链路层数据包后,携带在发送至所述第二设备的其他数据包中,延迟发送至所述第二设备的ACK;所述TCP层ACK是SYN比特位未置1的ACK;所述TCP层ACK中携带有TCP最大报文长度选项、TCP窗口扩大因子选项以及TCP Sack使能选项;所述TCP层ACK中携带有多路TCP协议中的TCP选项;所述TCP层ACK中携带的接收窗口不小于预设门限。
[0458] 进一步的,在所述第一拦截类中,所述TCP层ACK的序列号所对应的TCP层数据包未记录在TCP层数据包的缓存中,且所述TCP层ACK的序列号之前的ACK序列号所对应的TCP层数据包均记录在所述TCP层数据包的缓存中。
[0459] 在所述第二拦截类中,所述TCP层ACK的序列号等于第一序列号,所述第一序列号在每次获取到TCP层ACK但未拦截获取到的TCP层ACK之前进行一次更新。
[0460] 进一步的,所述TCP层ACK满足所述预设条件,还包括:所述TCP层ACK不符合第二过滤标准中的至少一个过滤条件。
[0461] 其中,所述第二过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合。
[0462] 第二过滤标准中的过滤条件可以为:所述TCP层ACK中携带有TCP时间戳选项;所述TCP层ACK中携带有TCP Sack选项。
[0463] 进一步的,接收单元63,用于在所述获取单元61获取所述TCP层ACK之前,接收来自所述第二设备的第一能力协商信令,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限。
[0464] 如图13所示,所述设备,还可以包括:第一确定单元65、第二确定单元66。
[0465] 第一确定单元65,用于用于根据所述接收单元63接收的所述第一拦截操作和第二ACK种类确定ACK种类交集,并根据所述接收单元63接收的所述第一拦截参数和第二拦截参数确定拦截参数交集,所述ACK种类交集为所述第一ACK种类与所述第二ACK种类的交集,所述拦截参数交集为所述第一拦截参数与所述第二拦截参数的交集,所述第二ACK种类为所述设备进行拦截判定时,拦截的TCP层ACK所归属的ACK种类,所述第二ACK种类包括所述第一拦截类和/或所述第二拦截类,所述第二拦截参数为所述设备进行拦截判定所采用的拦截参数,所述第二拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限。
[0466] 第二确定单元66,用于用于根据所述第一确定单元65确定的所述ACK种类交集,确定所述设备和所述第二设备均支持拦截的ACK种类,并根据所述第一确定单元65确定的所述拦截参数交集,确定所述设备和所述第二设备均支持的拦截参数。
[0467] 发送单元64,用于发送第二能力协商信令至所述第二设备,所述第二能力协商信令中包含所述第二ACK种类和所述第二拦截参数。
[0468] 其中,所述第二能力协商信令用于指示所述第二设备获取ACK种类交集和拦截参数交集,进而根据所述ACK种类交集,确定所述设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述设备和所述第二设备均支持的拦截参数。
[0469] 进一步的,接收单元63,用于在所述获取单元61获取所述TCP层ACK之前,接收来自所述第二设备的第一能力协商信令,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限。
[0470] 如图14所示,所述设备,还包括:第三确定单元68。
[0471] 第三确定单元67,用于用于根据所述接收单元63接收的所述第一拦截操作,确定所述设备支持拦截的ACK种类,并根据所述接收单元接收的所述第一拦截参数,确定所述设备支持的拦截参数。
[0472] 进一步的,所述设备为用户设备,所述第二设备无线接入网RAN侧设备,或者,所述设备为所述RAN侧设备,所述第二设备为所述用户设备。
[0473] 需要说明的是,本发明实施例提供的第一设备中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
[0474] 本发明实施例提供的设备(第一设备),可以获取TCP层ACK;若TCP层ACK所对应的TCP层数据包为所述设备解析所述设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且TCP层ACK满足预设条件,则拦截TCP层ACK。
[0475] 与现有技术中大量的TCP层ACK包传输会占据无线空口链路资源,加剧无线空口链路资源的消耗相比。在本方案中,该设备可以对TCP层ACK进行拦截判定,并在所对应的TCP层数据包为第一设备解析该设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且TCP层ACK满足预设条件时,拦截TCP层ACK,即不发送TCP层ACK至第二设备,可以减少该设备和第二设备之间的无线空口链路中传输的TCP层ACK包的数量,进而降低无线空口链路的资源消耗,从而可以提高无线业务数据的传输效率,提高无线通信系统的容量。
[0476] 实施例7
[0477] 本发明一实施例提供一种设备,如图15所示,该设备包括:接收单元71和第一确定单元72。
[0478] 接收单元71,用于接收来自第一设备的链路层确认ACK,所述链路层ACK为所述第一设备在接收到设备发送的链路层数据包后发送的。
[0479] 第一确定单元72,用于根据所述接收单元71接收的所述链路层ACK确定所述第一设备已接收到TCP层数据包。
[0480] 其中,所述TCP层数据包为所述第一设备解析所述链路层数据包得到的。
[0481] 进一步的,如图16所示,所述设备还可以包括:获取单元73。
[0482] 获取单元73,用于在所述接收单元71接收来自所述第一设备的所述链路层ACK之前,获取所述TCP层数据包与所述链路层数据包之间的映射关系,所述TCP层数据包与所述链路层数据包之间的映射关系至少包括:所述TCP层数据包的序列号与所述链路层数据包的序列号之间的映射关系。
[0483] 进一步的,所述链路层ACK中包含与所述链路层ACK对应的链路层数据包的序列号。
[0484] 所述第一确定单元72,还用于根据所述链路层数据包的序列号、所述TCP层数据包的序列号与所述链路层数据包的序列号之间的映射关系,确定所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号,所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号为所述第一设备成功接收的TCP层数据包的序列号。
[0485] 在本发明实施例的一种应用场景中,所述第一设备为用户设备,所述设备无线接入网RAN侧设备。
[0486] 在这种应用场景中,如图17所示,所述设备,还包括:构造单元74。
[0487] 构造单元74,用于在所述第一确定单元72确定所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号之后,根据所述第一设备成功接收的TCP层数据包的序列号,构造TCP层ACK。
[0488] 其中,所述TCP层ACK的序列号为确认连续数据包的序列号与所述确认连续数据包的包长之和;所述TCP层ACK用于向应用服务器指示所述第一设备已接收到所述TCP层数据包;所述链路层数据包为所述设备封装接收自所述应用服务器的TCP层得到的。
[0489] 所述确认连续数据包为所述设备已确定的所述第一设备成功接收的所有TCP层数据包中,序列号按照从小到大的顺序连续的TCP层数据包中,所述序列号最大的TCP层数据包。
[0490] 进一步的,在本发明实施例的一种应用场景中,所述接收单元71,还用于在所述第一确定单元72根据所述链路层ACK确定所述第一设备已接收到所述TCP层数据包之前,接收来自所述第一设备的第二能力协商信令,所述第二能力协商信令中包含所述第二ACK种类和所述第二拦截参数,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第二拦截参数至少包括所述第一ACK中携带的接收窗口的预设门限。
[0491] 如图18所示,在这种应用场景中,所述设备,还可以包括:第二确定单元75、第三确定单元76和发送单元77。
[0492] 第二确定单元75,还用于根据所述接收单元71接收的所述第二ACK种类和第一拦截操作确定ACK种类交集,并根据所述接收单元接收的所述第二拦截参数和第一拦截参数确定拦截参数交集,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括所述第一拦截类和/或所述第二拦截类,所述ACK种类交集为所述第一ACK种类与所述第二ACK种类的交集,所述拦截参数交集为第一拦截参数与第二拦截参数的交集,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限。
[0493] 第三确定单元76,用于根据所述第二确定单元75确定的所述ACK种类交集,确定所述第一设备和所述设备均支持拦截的ACK种类,并根据所述第二确定单元75确定的所述拦截参数交集,确定所述第一设备和所述设备均支持的拦截参数。
[0494] 发送单元77,用于发送第一能力协商信令至所述第一设备,所述第一能力协商信令中包含所述第一拦截操作和所述第一拦截参数。
[0495] 其中,所述第一能力协商信令用于指示所述第一设备获取ACK种类交集和拦截参数交集,进而根据所述ACK种类交集,确定所述第一设备和所述设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述设备均支持的拦截参数。
[0496] 进一步的,在本发明实施例的另一种应用场景中,发送单元77,用于在所述第一确定单元72根据所述链路层ACK确定所述第一设备已接收到所述TCP层数据包之前,发送第一能力协商信令至所述第一设备,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限。
[0497] 在这种应用场景中,所述设备还包括:第四确定单元。
[0498] 第四确定单元,用于根据所述第一ACK种类,确定所述所述设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述设备支持的拦截参数。
[0499] 其中,所述第一能力协商信令用于指示所述第一设备设备根据所述第一ACK种类,确定所述第一设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述第一设备支持的拦截参数。
[0500] 进一步的,所述第一设备为用户设备,所述设备RAN侧设备,或者,所述第一设备为所述RAN侧设备,所述设备为所述用户设备。
[0501] 需要说明的是,本发明实施例提供的设备中部分功能模块的具体描述可以参考方法实施例中的对应内容,本实施例这里不再详细赘述。
[0502] 本发明实施例提供的设备(第二设备),可以接收来自第一设备的链路层确认ACK,链路层ACK为第一设备在接收到所述设备发送的链路层数据包后发送的;根据链路层ACK确定第一设备已接收到TCP层数据包。
[0503] 与现有技术中大量的TCP层ACK包传输会占据无线空口链路资源,加剧无线空口链路资源的消耗相比。在本方案中,该设备在第一设备拦截了TCP层ACK后,可以根据第一设备发送的链路层ACK确定第一设备是否已成功接收TCP层数据包。这样,在减少第一设备和该设备之间的无线空口链路中传输的TCP层ACK包的数量的情况下,还能够保证数据发送端和接收端的确认机制。
[0504] 实施例8
[0505] 本发明一实施例提供一种设备,如图19所示,包括:处理器81。
[0506] 处理器81,用于获取传输控制协议TCP层确认ACK;若所述TCP层ACK所对应的TCP层数据包为所述设备解析所述设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且所述TCP层ACK满足预设条件,则拦截所述TCP层ACK。
[0507] 其中,所述TCP层ACK满足所述预设条件包括:所述TCP层ACK不符合第一过滤标准中的至少一个过滤条件,且所述TCP层ACK属于第一拦截类和第二拦截类中的至少一项。
[0508] 进一步的,如图20所示,所述设备,还包括:接收器82和发送器83。
[0509] 接收器82,用于通过所述无线空口链路接收来自所述第二设备的链路层数据包。
[0510] 发送器83,用于在所述接收器82通过所述无线空口链路接收到来自所述第二设备的链路层数据包后,发送链路层ACK至所述第二设备,以使所述第二设备根据所述链路层ACK确定所述设备已接收到所述TCP层数据包。
[0511] 进一步的,发送器83,还用于若所述TCP层ACK所对应的TCP层数据包不是所述设备解析所述设备通过所述无线空口链路接收到的链路层数据包得到的TCP层数据包,则发送所述TCP层ACK至所述第二设备。
[0512] 或者,所述发送器83,还用于若所述TCP层ACK所对应的TCP层数据包为所述设备解析所述设备通过所述无线空口链路接收到的链路层数据包得到的TCP层数据包,且所述TCP层ACK不满足所述预设条件,则发送所述TCP层ACK至所述第二设备。
[0513] 进一步的,所述第一过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合。
[0514] 所述TCP层ACK是所述设备在接收到链路层数据包后,携带在发送至所述第二设备的其他数据包中,延迟发送至所述第二设备的ACK;所述TCP层ACK是SYN比特位未置1的ACK;所述TCP层ACK中携带有TCP最大报文长度选项、TCP窗口扩大因子选项以及TCP Sack使能选项;所述TCP层ACK中携带有多路TCP协议中的TCP选项;所述TCP层ACK中携带的接收窗口不小于预设门限。
[0515] 进一步的,在所述第一拦截类中,所述TCP层ACK的序列号所对应的TCP层数据包未记录在TCP层数据包的缓存中,且所述TCP层ACK的序列号之前的ACK序列号所对应的TCP层数据包均记录在所述TCP层数据包的缓存中。
[0516] 在所述第二拦截类中,所述TCP层ACK的序列号等于第一序列号,所述第一序列号在每次获取到TCP层ACK但未拦截获取到的TCP层ACK之前进行一次更新。
[0517] 进一步的,所述TCP层ACK满足所述预设条件,还包括:所述TCP层ACK不符合第二过滤标准中的至少一个过滤条件。
[0518] 其中,所述第二过滤标准中至少包含以下一个过滤条件或者多个过滤条件的组合;所述TCP层ACK中携带有TCP时间戳选项。
[0519] 所述TCP层ACK中携带有TCP Sack选项。
[0520] 进一步的,在本发明实施例的一种应用场景中,接收器82,还用于,在所述处理器81获取传输控制协议TCP层确认ACK之前,接收来自所述第二设备的第一能力协商信令,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限。
[0521] 所述处理器81,还用于根据所述接收器82接收的所述第一拦截操作和第二ACK种类确定ACK种类交集,并根据所述接收器82接收的所述第一拦截参数和第二拦截参数确定拦截参数交集,所述ACK种类交集为所述第一ACK种类与所述第二ACK种类的交集,所述拦截参数交集为所述第一拦截参数与所述第二拦截参数的交集,所述第二ACK种类为所述第一设备进行拦截判定时,拦截的TCP层ACK所归属的ACK种类,所述第二ACK种类包括所述第一拦截类和/或所述第二拦截类,所述第二拦截参数为所述第一设备进行拦截判定所采用的拦截参数,所述第二拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;根据所述ACK种类交集,确定所述第一设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述第二设备均支持的拦截参数。
[0522] 发送器83,还用于发送第二能力协商信令至所述第二设备,所述第二能力协商信令中包含所述第二ACK种类和所述第二拦截参数。
[0523] 其中,所述第二能力协商信令用于指示所述第二设备获取ACK种类交集和拦截参数交集,进而根据所述ACK种类交集,确定所述第一设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述第二设备均支持的拦截参数。
[0524] 进一步的,在本发明实施例的另一种应用场景中,接收器82,还用于在所述处理器81获取传输控制协议TCP层确认ACK之前,接收来自所述第二设备的第一能力协商信令,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限。
[0525] 处理器81,还用于根据所述接收器82所述第一拦截操作,确定所述第一设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述第一设备支持的拦截参数。
[0526] 进一步的,所述设备为用户设备,所述第二设备无线接入网RAN侧设备,或者,所述设备为所述RAN侧设备,所述第二设备为所述用户设备。
[0527] 本发明实施例提供的设备(第一设备),可以获取TCP层ACK;若TCP层ACK所对应的TCP层数据包为所述设备解析所述设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且TCP层ACK满足预设条件,则拦截TCP层ACK。
[0528] 与现有技术中大量的TCP层ACK包传输会占据无线空口链路资源,加剧无线空口链路资源的消耗相比。在本方案中,该设备可以对TCP层ACK进行拦截判定,并在所对应的TCP层数据包为该设备解析该设备通过无线空口链路接收到的链路层数据包得到的TCP层数据包,且TCP层ACK满足预设条件时,拦截TCP层ACK,即不发送TCP层ACK至第二设备,可以减少该设备和第二设备之间的无线空口链路中传输的TCP层ACK包的数量,进而降低无线空口链路的资源消耗,从而可以提高无线业务数据的传输效率,提高无线通信系统的容量。
[0529] 实施例9
[0530] 本发明一实施例提供一种设备,如图21所示,该设备包括:接收器91和处理器92。
[0531] 接收器91,用于接收来自第一设备的链路层确认ACK,所述链路层ACK为所述第一设备在接收到设备发送的链路层数据包后发送的。
[0532] 处理器92,用于根据所述接收器91接收的所述链路层ACK确定所述第一设备已接收到TCP层数据包。
[0533] 其中,所述TCP层数据包为所述第一设备解析所述链路层数据包得到的。
[0534] 进一步的,所述处理器92,还用于,在所述接收器91接收来自第一设备的链路层ACK之前,获取所述TCP层数据包与所述链路层数据包之间的映射关系,所述TCP层数据包与所述链路层数据包之间的映射关系至少包括:所述TCP层数据包的序列号与所述链路层数据包的序列号之间的映射关系。
[0535] 进一步的,所述链路层ACK中包含与所述链路层ACK对应的链路层数据包的序列号。
[0536] 所述处理器92,还用于根据所述链路层数据包的序列号、所述TCP层数据包的序列号与所述链路层数据包的序列号之间的映射关系,确定所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号,所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号为所述第一设备成功接收的TCP层数据包的序列号。
[0537] 进一步的,在本发明实施例的一种应用场景中,所述第一设备为用户设备,所述设备无线接入网RAN侧设备。
[0538] 在这种应用场景中,所述处理器92,还用于在所述确定所述第一设备成功接收的链路层数据包所对应的TCP层数据包的序列号之后,根据所述第一设备成功接收的TCP层数据包的序列号,构造TCP层ACK。
[0539] 其中,所述TCP层ACK的序列号为确认连续数据包的序列号与所述确认连续数据包的包长之和;所述TCP层ACK用于向应用服务器指示所述第一设备已接收到所述TCP层数据包;所述链路层数据包为所述设备封装接收自所述应用服务器的TCP层得到的。
[0540] 所述确认连续数据包为所述设备已确定的所述第一设备成功接收的所有TCP层数据包中,序列号按照从小到大的顺序连续的TCP层数据包中,所述序列号最大的TCP层数据包。
[0541] 进一步的,在本发明实施例的一种应用场景中,所述接收器91,还用于在所述处理器92根据所述链路层ACK确定所述第一设备已接收到TCP层数据包之前,接收来自所述第一设备的第二能力协商信令,所述第二能力协商信令中包含所述第二ACK种类和所述第二拦截参数,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第二拦截参数至少包括所述第一ACK中携带的接收窗口的预设门限。
[0542] 所述处理器92,还用于根据所述接收器91接收的所述第二ACK种类和第一拦截操作确定ACK种类交集,并根据所述第二拦截参数和第一拦截参数确定拦截参数交集,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括所述第一拦截类和/或所述第二拦截类,所述ACK种类交集为所述第一ACK种类与所述第二ACK种类的交集,所述拦截参数交集为第一拦截参数与第二拦截参数的交集,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限;根据所述ACK种类交集,确定所述第一设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述第二设备均支持的拦截参数。
[0543] 在这种应用场景中,如图22所示,所述设备,还包括:发送器93。
[0544] 发送器93,用于发送第一能力协商信令至所述第一设备,所述第一能力协商信令中包含所述第一拦截操作和所述第一拦截参数。
[0545] 其中,所述第一能力协商信令用于指示所述第一设备获取ACK种类交集和拦截参数交集,进而根据所述ACK种类交集,确定所述第一设备和所述第二设备均支持拦截的ACK种类,并根据所述拦截参数交集,确定所述第一设备和所述第二设备均支持的拦截参数。
[0546] 在本发明实施例的另一种应用场景中,发送器93,还用于,在所述处理器92根据所述链路层ACK确定所述第一设备已接收到所述TCP层数据包之前,发送第一能力协商信令至所述第一设备,所述第一能力协商信令中包含第一拦截操作和第一拦截参数,所述第一拦截操作为第一ACK种类所对应的操作处理,所述第一ACK种类包括第一拦截类和/或第二拦截类,所述第一拦截参数至少包括所述TCP层ACK中携带的接收窗口的预设门限。
[0547] 所述处理器92,还用于根据所述第一ACK种类,确定所述所述第二设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述第二设备支持的拦截参数。
[0548] 其中,所述第一能力协商信令用于指示所述第一设备设备根据所述第一ACK种类,确定所述第一设备支持拦截的ACK种类,并根据所述第一拦截参数,确定所述第一设备支持的拦截参数。
[0549] 本发明实施例提供的设备(第二设备),可以接收来自第一设备的链路层确认ACK,链路层ACK为第一设备在接收到所述设备发送的链路层数据包后发送的;根据链路层ACK确定第一设备已接收到TCP层数据包。
[0550] 与现有技术中大量的TCP层ACK包传输会占据无线空口链路资源,加剧无线空口链路资源的消耗相比。在本方案中,该设备在第一设备拦截了TCP层ACK后,可以根据第一设备发送的链路层ACK确定第一设备是否已成功接收TCP层数据包。这样,在减少第一设备和该设备之间的无线空口链路中传输的TCP层ACK包的数量的情况下,还能够保证数据发送端和接收端的确认机制。
[0551] 通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0552] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0553] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0554] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0555] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0556] 以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
QQ群二维码
意见反馈