一种流量动态控制方法、设备及网关、融合接入汇聚点
技术领域
本发明涉及通信技术领域,尤其涉及一种流量动态控制方法、设备及网关、融合接入汇聚点。
背景技术
网络宽带接入的融合已经是一种趋势,包括各种固网和有线:数字用户线路(x Digital Subscriber Line/Very High Rate Digital Subscriber Line,简称:xDSL/VDSL),有线电视电缆(Cable),光纤,无线保真(Wirless Fidelity,简称:WiFi),以太网,第三代移动通信技术(the 3rd-generation,简称:3G)、第四代移动通信技术(the 4th-generation,简称:4G),来最大限度地保证网络的覆盖。通过这些融合的接入方式,可以实现数据报文的并发,为用户提供访问因特网(internet),提供个性化的互动的电视(Interactive Personality TV,简称:IPTV)、基于IP的语音呼叫(Voice over IP,简称:VoIP)语音通话等各个方面的业务体验。
在数字用户线路(Digital Subscriber Line,简称:DSL)和长期演进(Long Term Evolution,简称:LTE)的组网中,将同时支持DSL和LTE接入的终端和核心网作为网络的两个汇聚点。如图1所示,在LTE链路包括网关(Home Gateway,简称HG)演进型节点B(evolved Node B,简称:eNodeB)、分组核心演进(Evolved Packet Core,简称:EPC)设备以及融合接入汇聚点(Hybrid Access Aggregation Point,简称:HAAP)。在DSL链路包括HG、数字用户线路接入复用器(Data Subscriber Line Access Multiplexer,简称:DSLAM)、宽带网络网关控制设备(Broadband Network Gateway,简称:BNG)以及HAAP。这两个点之间分别通过LTE和DSL的链路建立两条通用路由封装(generic routing encapsulation,简称GRE)隧道,并对两条隧道进行绑定,来完成数据报文在两个隧道的同时转发。
在数据处理上是对这两个隧道进行叠加绑定,即系统总的带宽即为两条链路的带宽之和。在绑定的隧道内会重新分配数据连接的互联网协议(Internet Protocol,简称:IP)地址,即隧道外层地址只负责两个隧道的链路的连接和传输,隧道内层地址为用户数据的封装地址,用来和因特网(Internet)进行通讯。
现有技术中,在数据传输时,是根据一个静态配置的门限值在DSL隧道上进行流量填充,在实际数据报文达到门限值后,数据流会溢出(overflow)到LTE隧道上。在两个隧道的另外一端对接收到的数据报文进行排序整合,来完成整个数据的绑定。
核心网的出口带宽一般是针对各个用户基于百分比的比例分配的,但是当用户量多且同时都在线并发时,核心网的网络的出口带宽会成为瓶颈,无法达到终端用户激活或核心网设备分配的带宽。因此在第一个隧道上流量始终无法溢出到第二个隧道进行传输。
发明内容
本发明实施例提供一种流量动态控制方法、设备及网关、融合接入汇聚点,用于解决现有技术存在的在第一隧道上的流量始终无法溢出到另一个隧道上的问题。
第一方面,本发明实施例提供了一种流量动态控制方法,包括:
第一设备接收到数据流;
所述第一设备根据存储的与第二设备进行传输控制协议(Transmission Control Protocol,简称:TCP)连接的连接信息,与所述第二设备建立N条封装TCP连接通道,N为大于等于2的正整数;
所述第一设备根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述第二设备;
其中,N条TCP连接通道中每条TCP连接通道对应的流量溢出门限是针
对每条TCP连接通道,分别根据对该条TCP连接通道,在预设时长内统计的数据报文环回时延以及丢包率预先确定的;L为小于N的正整数。
结合第一方面,在第一方面的第一种可能的实现方式中,所述第一设备获取与所述第二设备进行TCP连接的连接信息,包括:
所述第一设备通过第一接口向所述第二设备的第二接口发送的第一GRE协议控制信令,所述第一GRE协议控制信令中携带所述第一接口的互联网协议IP地址,所述第一接口与所述第二接口之间配置有GRE隧道;使得所述第二设备将所述第一接口的IP地址记录为所述第一接口与所述第二接口之间的TCP连接通道的目的IP地址;
所述第一设备通过所述第一接口接收到所述第二设备通过第二接口发送的第一GRE协议控制信令答复信令,所述第一GRE协议控制信令答复信令中携带所述第二接口的IP地址;
所述第一设备记录所述第二接口的IP地址作为所述第一接口与所述第二接口之间的TCP连接通道的目的IP地址。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,针对每条TCP连接通道,分别根据对该条TCP连接通道,在预设时长内统计的数据报文环回时延及丢包率确定流量溢出门限,包括:
所述第一设备针对每条TCP连接通道分别执行:
分别统计该条TCP连接通道在预设时长内的数据报文环回时延以及丢包率;根据统计的所述数据报文环回时延以及所述丢包率确定该条TCP连接通道的通道能力值,根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限。
结合第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式,根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限,包括:
将确定的该条TCP连接通道的通道能力值乘以X后的值作为该条TCP
连接通道对应的流量溢出门限,其中0<X<1;或者
将确定的该条TCP连接通道的通道能力值与上一个比较周期确定的流量溢出门限进行比较,根据得到的比较结果在当前比较周期内调节当前比较周期的流量溢出门限,所述比较周期等于M个预设时长,M为正整数。
结合第一方面的第二种或第三种可能的实现方式,在第一方面的第四种可能的实现方式中,根据统计的所述数据报文环回时延以及所述丢包率确定该TCP连接通道的通道能力值,包括:
根据如下公式确定该TCP连接通道的通道能力值:
其中,Through out表示通道能力值,BW表示连接通道的激活带宽,CWND表示数据报文发送拥塞窗口大小,MSS表示最大分片报文的大小,P表示丢包率,RTT表示数据报文的环回时延,min表示取最小值。
结合第一方面和第一方面的第一种至第四种可能的实现方式中的任意一种,在第一方面的第五种可能的实现方式中,还包括:
第一设备接收到数据流后,对所述数据流对应的各个数据报文进行TCP封装,并在各个数据报文头部中添加序列号;所述序列号是根据各个数据报文到达的先后顺序确定的。
结合第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述第一设备根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述第二设备,包括:
所述第一设备若建立的TCP连接通道为两个,确认其中第一TCP连接通道为默认传输通道;
所述第一设备在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限时,在所述数据流的各个数据报文的头部添加标识号,所述标识号用于标识各个TCP连接通道对应的链路;
所述第一设备将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述第二设备。
结合第一方面的第五种可能的实现方式,在第一方面的第七种可能的实现方式中,所述第一设备根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述第二设备,包括:
所述第一设备若建立的TCP连接通道为至少三个,确定所述建立的TCP连接通道的优先级;
所述第一设备根据各个TCP连接通道的优先级以及各个TCP连接通道对应的流量溢出门限,将所述各个数据报文头部添加标识号;所述标识号用于标识各个TCP连接通道对应的链路;
所述第一设备将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述第二设备。
结合第一方面的第六种或第七种可能的实现方式,在第一方面的第八种可能的实现方式中,所述添加的TCP连接通道的标识号位于各个数据报文的数据字段之前。
结合第一方面和第一方面的第一种至第八种可能的实现方式中的任意一种,在第一方面的第九种可能的实现方式中,所述第一设备为HG,所述第二设备为HAAP。
第二方面,本发明实施例还提供了一种流量动态控制方法,包括:
第二设备接收到数据流;
所述第二设备根据N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述第一设备;
其中,所述N条TCP连接通道为已建立的所述第二设备与第一设备之间的TCP连接通道;N条TCP连接通道中每条TCP连接通道对应的流量溢出门限是针对每条TCP连接通道,分别根据对该条TCP连接通道,在预设时长
内统计的数据报文环回时延以及丢包率预先确定的;L为小于N的正整数。
结合第二方面,在第二方面的第一种可能的实现方式中,针对每条TCP连接通道,分别根据对该条TCP连接通道,在预设时长内统计的数据报文环回时延及丢包率确定流量溢出门限,包括:
所述第二设备针对每条TCP连接通道分别执行:
分别统计该条TCP连接通道在预设时长内的数据报文环回时延以及丢包率;根据统计的所述数据报文环回时延以及所述丢包率确定该条TCP连接通道的通道能力值,根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限,包括:
将确定的该条TCP连接通道的通道能力值乘以X后的值作为流量溢出门限,其中0<X<1;或者
将确定的该条TCP连接通道的通道能力值与上一个比较周期确定的流量溢出门限进行比较,根据得到的比较结果在当前比较周期内调节当前比较周期的流量溢出门限,所述比较周期等于M个预设时长,M为正整数。
结合第二方面的第一种或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,根据统计的所述数据报文环回时延以及所述丢包率确定该TCP连接通道的通道能力值,包括:
根据如下公式确定该TCP连接通道的通道能力值:
其中,Through out表示通道能力值,BW表示连接通道的激活带宽,CWND表示数据报文发送拥塞窗口大小,MSS表示最大分片报文的大小,P表示丢包率,RTT表示数据报文的环回时延,min表示取最小值。
结合第二方面和第二方面的第一种至第三种可能的实现方式中的任意一
种,在第二方面的第四种可能的实现方式中,还包括:
第二设备接收到数据流后,对所述数据流对应的各个数据报文进行TCP封装,并在各个数据报文头部中添加序列号;所述序列号是根据各个数据报文到达的先后顺序确定的。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述第二设备根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述第一设备,包括:
所述第二设备若建立的TCP连接通道为两个,确认其中第一TCP连接通道为默认传输通道;
所述第二设备在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限时,在所述数据流的各个数据报文的头部添加标识号,所述标识号用于标识各个TCP连接通道对应的链路;
所述第二设备将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述第一设备。
结合第二方面的第四种可能的实现方式,在第二方面的第六种可能的实现方式中,所述第二设备根据至少两条TCP连接通道对应的流量溢出门限,将所述数据流通过所述至少两条TCP连接通道中的至少一条TCP连接通道发送给所述第一设备,包括:
所述第二设备若建立的TCP连接通道为至少三个,确定所述建立的TCP连接通道的优先级;
所述第二设备根据各个TCP连接通道的优先级以及各个TCP连接通道对应的流量溢出门限,将所述各个数据报文头部添加标识号;所述标识号用于标识各个TCP连接通道对应的链路;
所述第二设备将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述第一设备。
结合第二方面的第五种或第六种可能的实现方式,在第二方面的第七种
可能的实现方式中,所述添加的TCP连接通道的标识号位于各个数据报文的数据字段之前。
结合第二方面和第二方面的第一种至第七种可能的实现方式中的任意一种,在第二方面的第八种可能的实现方式中,所述第一设备为HG,所述第二设备为HAAP。
第三方面,本发明实施例一种流量动态控制设备,包括:
接收模块,用于接收数据流;
存储模块,用于存储与所述存储模块所在的设备对应的对端设备进行TCP连接的连接信息;
处理模块,用于根据所述存储模块存储的与所述对端设备进行TCP连接的连接信息,与对端设备建立N条TCP连接通道,N为大于等于2的正整数;
发送模块,用于根据所述处理模块建立的所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述对端设备;
其中,N条TCP连接通道中每条TCP连接通道对应的流量溢出门限是针对每条TCP连接通道,分别根据对该条TCP连接通道,在预设时长内统计的数据报文环回时延以及丢包率预先确定的;L为小于N的正整数。
结合第三方面,在第三方面的第一种可能的实现方式中,所述发送模块,还用于通过第一接口向所述对端设备的第二接口发送的第一GRE协议控制信令,所述第一GRE协议控制信令中携带所述第一接口的互联网协议IP地址,所述第一接口与所述第二接口之间配置有GRE隧道;使得所述对端设备将所述第一接口的IP地址记录为所述第一接口与所述第二接口之间的TCP连接通道的目的IP地址;
所述接收模块,还用于通过所述第一接口接收到所述对端设备通过第二接口发送的第一GRE协议控制信令答复信令,所述第一GRE协议控制信令答复信令中携带所述第二接口的IP地址;
所述存储模块,用于存储所述第二接口的IP地址作为所述第一接口与所
述第二接口之间的TCP连接通道的目的IP地址。
结合第三方面或第三方面的第一种可能的实现方式,所述处理模块,还用于针对每条TCP连接通道分别执行:
分别统计该条TCP连接通道在预设时长内的数据报文环回时延以及丢包率;根据统计的所述数据报文环回时延以及所述丢包率确定该条TCP连接通道的通道能力值,根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式,在根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限时,所述处理模块,具体用于将确定的该条TCP连接通道的通道能力值乘以X后的值作为流量溢出门限,其中0<X<1;或者
将确定的该条TCP连接通道的通道能力值与上一个比较周期确定的流量溢出门限进行比较,根据得到的比较结果在当前比较周期内调节当前比较周期的流量溢出门限,所述比较周期等于M个预设时长,M为正整数。
结合第三方面的第二种或第三种可能的实现方式,在第三方面的第四种可能的实现方式中,根据统计的所述数据报文环回时延以及所述丢包率确定该TCP连接通道的通道能力值时,所述处理模块具体用于根据如下公式确定该TCP连接通道的通道能力值:
其中,Through out表示通道能力值,BW表示连接通道的激活带宽,CWND表示数据报文发送拥塞窗口大小,MSS表示最大分片报文的大小,P表示丢包率,RTT表示数据报文的环回时延,min表示取最小值。
结合第三方面和第三方面的第一种至第四种可能的实现方式中的任意一种,在第三方面的第五种可能的实现方式中,所述处理模块还用于在所述接收模块接收到数据流后,对所述数据流对应的各个数据报文进行TCP封装,并在各个数据报文头部中添加序列号;所述序列号是根据各个数据报文到达
的先后顺序确定的。
结合第三方面的第五种可能的实现方式,在第三方面的第六种可能的实现方式中,在根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述对端设备,所述处理模块具体用于:
若建立的TCP连接通道为两个,确认其中第一TCP连接通道为默认传输通道;在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限时,在所述数据流的各个数据报文的头部添加标识号,所述标识号用于标识各个TCP连接通道对应的链路;
所述发送模块,具体用于:
将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述对端设备。
结合第三方面的第五种可能的实现方式,在第三方面的第七种可能的实现方式中,在根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述对端设备时,所述处理模块具体用于:
若建立的TCP连接通道为至少三个,确定所述建立的TCP连接通道的优先级;根据各个TCP连接通道的优先级以及各个TCP连接通道对应的流量溢出门限,将所述各个数据报文头部添加标识号;所述标识号用于标识各个TCP连接通道对应的链路;
所述发送模块,具体用于将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述对端设备。
结合第三方面的第六种或第七种可能的实现方式,在第三方面的第八种可能的实现方式中,所述处理模块将TCP连接通道的标识号添加在各个数据报文的数据字段之前。
结合第三方面和第三方面的第一种至第八种可能的实现方式中的任意一种,在第三方面的第九种可能的实现方式中,所述存储模块所在的设备为HG,
所述对端设备为HAAP。
第四方面,本发明实施例还提供了一种流量动态控制设备,包括:
接收模块,用于接收数据流;
发送模块,用于根据N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述发送模块所在的设备对应的对端设备;
其中,所述N条TCP连接通道为已建立的所述对端设备与所述发送模块所在的设备之间的TCP连接通道;N条TCP连接通道中每条TCP连接通道对应的流量溢出门限是针对每条TCP连接通道,分别根据对该条TCP连接通道,在预设时长内统计的数据报文环回时延以及丢包率预先确定的;L为小于N的正整数。
结合第四方面,在第四方面的第一种可能的实现方式中,还包括:
处理模块,用于针对每条TCP连接通道分别执行:
分别统计该条TCP连接通道在预设时长内的数据报文环回时延以及丢包率;根据统计的所述数据报文环回时延以及所述丢包率确定该条TCP连接通道的通道能力值,根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限。
结合第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,在根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限,所述处理模块具体用于:
将确定的该条TCP连接通道的通道能力值乘以X后的值作为流量溢出门限,其中0<X<1;或者
将确定的该条TCP连接通道的通道能力值与上一个比较周期确定的流量溢出门限进行比较,根据得到的比较结果在当前比较周期内调节当前比较周期的流量溢出门限,所述比较周期等于M个预设时长,M为正整数。
结合第四方面的第一种或第二种可能的实现方式,在第四方面的第三种可能的实现方式中,在根据统计的所述数据报文环回时延以及所述丢包率确
定该TCP连接通道的通道能力值,所述处理模块具体用于:
根据如下公式确定该TCP连接通道的通道能力值:
其中,Through out表示通道能力值,BW表示连接通道的激活带宽,CWND表示数据报文发送拥塞窗口大小,MSS表示最大分片报文的大小,P表示丢包率,RTT表示数据报文的环回时延,min表示取最小值。
结合第四方面和第四方面的第一种至第三种可能的实现方式中的任意一种,在第四方面的第四种可能的实现方式中,所述处理模块,还用于在所述接收模块接收到数据流后,对所述数据流对应的各个数据报文进行TCP封装,并在各个数据报文头部中添加序列号;所述序列号是根据各个数据报文到达的先后顺序确定的。
结合第四方面的第四种可能的实现方式,在第四方面的第五种可能的实现方式中,在根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述对端设备时,所述处理模块具体用于:
若建立的TCP连接通道为两个,确认其中第一TCP连接通道为默认传输通道;在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限时,在所述数据流的各个数据报文的头部添加标识号,所述标识号用于标识各个TCP连接通道对应的链路;
所述发送模块,具体用于:
将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述对端设备。
结合第四方面的第四种可能的实现方式,在第四方面的第六种可能的实现方式中,在根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述对端设备时,所述处理模块具体用于:
若建立的TCP连接通道为至少三个,确定所述建立的TCP连接通道的优先级;根据各个TCP连接通道的优先级以及各个TCP连接通道对应的流量溢出门限,将所述各个数据报文头部添加标识号;所述标识号用于标识各个TCP连接通道对应的链路;
所述发送模块,具体用于:
将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述对端设备。
结合第四方面的第五种或第六种可能的实现方式,在第四方面的第七种可能的实现方式中,所述处理模块,具体用于将TCP连接通道的标识号添加在各个数据报文的数据字段之前。
结合第四方面和第四方面的第一种至第七种可能的实现方式中的任意一种,在第四方面的第八种可能的实现方式中,所述发送模块所在的设备为HAAP,所述对端设备为HG。
第五方面,本发明实施例还提供了一种网关,包括:
收发器、存储器以及处理器;
所述收发器,用于接收数据流;
所述存储器,用于存储与HAAP进行TCP连接的连接信息;
处理器,用于根据所述存储器存储的与所述HAAP进行TCP连接的连接信息,与所述HAAP建立N条TCP连接通道,N为大于等于2的正整数;
收发器,还用于根据所述存储器存储的所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述HAAP;
其中,N条TCP连接通道中每条TCP连接通道对应的流量溢出门限是针对每条TCP连接通道,分别根据对该条TCP连接通道,在预设时长内统计的数据报文环回时延以及丢包率预先确定的;L为小于N的正整数。
结合第五方面,在第五方面的第一种可能的实现方式中,所述收发器还用于:通过第一接口向所述融合接入汇聚点的第二接口发送的第一GRE协议
控制信令,所述第一GRE协议控制信令中携带所述第一接口的IP地址,所述第一接口与所述第二接口之间配置有GRE隧道;使得所述融合接入汇聚点将所述第一接口的IP地址记录为所述第一接口与第二接口之间的TCP连接通道的目的IP地址;并通过所述第一接口接收到所述对端设备通过第二接口发送的第一GRE协议控制信令答复信令,所述第一GRE协议控制信令答复信令中携带所述第二接口的IP地址;
所述存储器,用于存储所述第二接口的IP地址作为所述第一接口与第二接口之间的TCP连接通道的目的IP地址。
结合第五方面或第五方面的第一种可能的实现方式,所述处理器还用于针对每条TCP连接通道分别执行:
分别统计该条TCP连接通道在预设时长内的数据报文环回时延以及丢包率;根据统计的所述数据报文环回时延以及所述丢包率确定该条TCP连接通道的通道能力值,根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限。
结合第五方面的第二种可能的实现方式,在第五方面的第三种可能的实现方式,在根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限时,所述处理器,具体用于将确定的该条TCP连接通道的通道能力值乘以X后的值作为流量溢出门限,其中0<X<1;或者
将确定的该条TCP连接通道的通道能力值与上一个比较周期确定的流量溢出门限进行比较,根据得到的比较结果在当前比较周期内调节当前比较周期的流量溢出门限,所述比较周期等于M个预设时长,M为正整数。
结合第五方面的第二种或第三种可能的实现方式,在第三方面的第四种可能的实现方式中,根据统计的所述数据报文环回时延以及所述丢包率确定该TCP连接通道的通道能力值时,所述处理器具体用于根据如下公式确定该TCP连接通道的通道能力值:
其中,Through out表示通道能力值,BW表示连接通道的激活带宽,CWND表示数据报文发送拥塞窗口大小,MSS表示最大分片报文的大小,P表示丢包率,RTT表示数据报文的环回时延,min表示取最小值。
结合第五方面和第五方面的第一种至第四种可能的实现方式中的任意一种,在第五方面的第五种可能的实现方式中,在所述收发器接收到数据流后,所述处理器还用于对所述数据流对应的各个数据报文进行TCP封装,并在各个数据报文头部中添加序列号;所述序列号是根据各个数据报文到达的先后顺序确定的。
结合第五方面的第五种可能的实现方式,在第五方面的第六种可能的实现方式中,在根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述HAAP,所述处理器具体用于:
若建立的TCP连接通道为两个,确认其中第一TCP连接通道为默认传输通道;在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限时,在所述数据流的各个数据报文的头部添加标识号,所述标识号用于标识各个TCP连接通道对应的链路;
所述收发器用于将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述HAAP。
结合第五方面的第五种可能的实现方式,在第五方面的第七种可能的实现方式中,在根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述HAAP时,所述处理器具体用于:
若建立的TCP连接通道为至少三个,确定所述建立的TCP连接通道的优先级;根据各个TCP连接通道的优先级以及各个TCP连接通道对应的流量溢出门限,将所述各个数据报文头部添加标识号;所述标识号用于标识各个TCP连接通道对应的链路;
所述发送模块,具体用于:
将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述融合接入汇聚点。
结合第五方面的第六种或第七种可能的实现方式,在第五方面的第八种可能的实现方式中,所述处理模块将TCP连接通道的标识号添加在各个数据报文的数据字段之前。
第六方面,本发明实施例还提供了一种融合接入汇聚点,包括:
收发器,用于接收数据流;
存储器,用于存储N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限;
收发器,还用于根据所述存储器存储的N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给网关;
其中,所述N条TCP连接通道为已建立的所述网关与所述融合接入汇聚点之间的TCP连接通道;N条TCP连接通道中每条TCP连接通道对应的流量溢出门限是针对每条TCP连接通道,分别根据对该条TCP连接通道,在预设时长内统计的数据报文环回时延以及丢包率预先确定的;L为小于N的正整数。
结合第六方面,在第六方面的第一种可能的实现方式中,处理器还用于针对每条TCP连接通道分别执行:
分别统计该条TCP连接通道在预设时长内的数据报文环回时延以及丢包率;根据统计的数据报文环回时延以及丢包率确定该条TCP连接通道的通道能力值,根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限。
结合第六方面的第一种可能的实现方式,在第六方面的第二种可能的实现方式中,在根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限,所述处理器具体用于:
将确定的该条TCP连接通道的通道能力值乘以X后的值作为流量溢出门
限,其中0<X<1;或者
将确定的该条TCP连接通道的通道能力值与上一个比较周期确定的流量溢出门限进行比较,根据得到的比较结果在当前比较周期内调节当前比较周期的流量溢出门限,所述比较周期等于M个预设时长,M为正整数。
结合第六方面的第一种或第二种可能的实现方式,在第六方面的第三种可能的实现方式中,在根据统计的所述数据报文环回时延以及所述丢包率确定该TCP连接通道的通道能力值,所述处理器具体用于:
根据如下公式确定该TCP连接通道的通道能力值:
其中,Through out表示通道能力值,BW表示连接通道的激活带宽,CWND表示数据报文发送拥塞窗口大小,MSS表示最大分片报文的大小,P表示丢包率,RTT表示数据报文的环回时延,min表示取最小值。
结合第六方面和第六方面的第一种至第三种可能的实现方式中的任意一种,在第六方面的第四种可能的实现方式中,在所述收发器接收到数据流后,所述处理器还用于对所述数据流对应的各个数据报文进行TCP封装,并在各个数据报文头部中添加序列号;所述序列号是根据各个数据报文到达的先后顺序确定的。
结合第六方面的第四种可能的实现方式,在第六方面的第五种可能的实现方式中,在根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述网关,所述处理器具体用于:
若建立的TCP连接通道为两个,确认其中第一TCP连接通道为默认传输通道;在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限时,在所述数据流的各个数据报文的头部添加标识号,所述标识号用于标识各个TCP连接通道对应的链路;
所述发送模块,具体用于:
将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述所述网关。
结合第六方面的第四种可能的实现方式,在第六方面的第六种可能的实现方式中,在根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述网关,所述处理器具体用于:
若建立的TCP连接通道为至少三个,确定所述建立的TCP连接通道的优先级;根据各个TCP连接通道的优先级以及各个TCP连接通道对应的流量溢出门限,将所述各个数据报文头部添加标识号;所述标识号用于标识各个TCP连接通道对应的链路;
所述收发器用于将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述网关。
结合第六方面的第五种或第六种可能的实现方式,在第六方面的第七种可能的实现方式中,所述处理器具体用于将TCP连接通道的标识号添加在各个数据报文的数据字段之前。
第七方面,本发明实施例还提供了一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当被包括多个应用程序的电子设备执行时使所述电子设备执行根据第一方面和第一方面的第一种至第八种可能的实现方式中的任意一种实现方式中所述方法。
第八方面,本发明实施例还提供了一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当被包括多个应用程序的电子设备执行时使所述电子设备执行第二方面和第二方面的第一种至第七种可能的实现方式中的任意一种实现方式中所述方法。
通过本发明实施例提供的方案,通过实时统计的数据报文环回时延以及丢包率确定流量溢出门限,然后根据动态变化的流量溢出门限动态对流量进行控制,使得数据在一个通道能够溢出到另一个通道上。
附图说明
图1为GRE隧道示意图;
图2为本发明实施例提供的一种流量动态控制方法流程图;
图3为本发明实施例提供的另一种流量动态控制方法流程图;
图4为本发明实施例提供的一种流量动态控制设备示意图;
图5为本发明实施例提供的另一种流量动态控制设备示意图;
图6为本发明实施例提供的一种网关示意图;
图7为本发明实施例提供的一种融合接入汇聚点示意图;
图8为本发明实施例提供的流量动态控制系统示意图;
图9为本发明实施例提供的LTE链路参数学习方法示意图;
图10为本发明实施例提供的DSL链路参数学习方法示意图
图11为本发明实施例提供的网关将所述数据报文路由到绑定虚拟接口进行TCP处理方法示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
本发明实施例提供一种流量动态控制方法、设备及网关、融合接入汇聚点,用于解决现有技术存在的在第一隧道上的流量达到门限后无法溢出到另一个隧道上的问题。本发明实施例中将数据承载的方式从现有的方式中分离,数据传输以及信令交互使用不同的承载协议,数据承载的通道由当前基于GRE隧道的方式升级到通过TCP协议方式,并通过动态的统计在预设时长内的数据报文环回时延以及丢包率确定通过哪个TCP连接通道传输数据。其中,
方法及装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
本发明实施例提供了一种流量动态控制方法,如图2所示,该方法包括:
步骤201,第一设备接收到数据流。
步骤202,所述第一设备根据存储的与第二设备进行TCP连接的连接信息,与第二设备建立N条TCP连接通道,N为大于等于2的正整数。
其中,建立的TCP连接通道的数量,与所述连接信息相关。
其中连接信息中包括了建立的TCP连接通道两端的接口IP地址。因此连接通道数量与接口数量相关。
其中,存储的与第二设备进行TCP连接的连接信息是预先获取后存储的。
步骤203,所述第一设备根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述第二设备。
其中,N条TCP连接通道中每条TCP连接通道对应的流量溢出门限是针对每条TCP连接通道,分别根据对该条TCP连接通道,根据在预设时长内统计的数据报文环回时延以及丢包率预先确定的;L为小于N的正整数。
一条TCP连接通道对应一个流量溢出门限,并且该流量溢出门限是在该TCP连接通道上,在预设时长内统计的数据报文环回时延以及丢包率预先确定的。
其中,第一设备可以网关,第二设备可以是融合接入汇聚点。
通过本发明实施例提供的方案,通过实时统计的数据报文环回时延以及丢包率确定流量溢出门限,然后根据动态变化的流量溢出门限动态对流量进行控制,使得数据在一个通道能够溢出到另一个通道上。
具体的,第一设备获取与所述第二设备进行TCP连接的连接信息,可以通过以下方式实现:
所述第一设备通过第一接口向所述第二设备的第二接口发送的第一GRE协议控制信令,所述第一GRE协议控制信令中携带所述第一接口的互联网协
议IP地址,所述第一接口与所述第二接口之间配置有GRE隧道;使得所述第二设备将所述第一接口的IP地址记录为所述第一接口与所述第二接口之间的TCP连接通道的目的IP地址;
所述第一设备通过所述第一接口接收到所述第二设备通过第二接口发送的第一GRE协议控制信令答复信令,所述第一GRE协议控制信令答复信令中携带所述第二接口的IP地址;
所述第一设备记录所述第二接口的IP地址作为所述第一接口与所述第二接口之间的TCP连接通道的目的IP地址。
可选地,所述第一GRE协议控制信令中在携带所述第一接口的互联网协议IP地址时,还可以携带第一接口的端口号。同理在所述第一GRE协议控制信令答复信令中携带所述第二接口的IP地址时,还可以携带第二接口的端口号。
例如:在DSL和LTE的组网中,将同时支持DSL和LTE接入的网关和HAAP作为网络的两个汇聚点。这两个点之间分别通过LTE和DSL的链路建立两条GRE隧道。在网关上包括DSL接口和LTE接口,在HAAP上仅包括一个接口,称为T3。
在LTE链路的LTE接口上,网关向HAAP发送GRE协议控制信令,在该GRE协议控制信令中携带该LTE接口的IP地址。还可以携带端口号。
然后HAAP接收到该GRE协议控制信令后,将该LTE接口的IP地址以及端口号记录下来,并作为HAAP的T3接口与网关的LTE接口之间的TCP连接通道的目的IP地址以及目的端口号。
之后HAAP向网关发送GRE协议控制信令答复信令,并在GRE协议控制信令答复信令中携带HAAP的T3接口的IP地址以及端口号。从而网关在接收到该GRE协议控制信令答复信令后,将该T3接口的IP地址记录下来,并作为网关的LTE接口与HAAP的T3接口之间的TCP连接通道的目的IP地址及目的端口号。
在DSL链路的DSL接口上,网关向HAAP发送GRE协议控制信令,在
该GRE协议控制信令中携带该DSL接口的IP地址。还可以携带该DSL接口的端口号。
然后HAAP通过T3接口接收到该GRE协议控制信令后,将该DSL接口的IP地址记录下来,并作为HAAP的T3接口与网关的DSL接口之间的TCP连接通道的目的IP地址。
之后HAAP通过T3接口向网关的DSL接口发送GRE协议控制信令答复信令,并在GRE协议控制信令答复信令中携带HAAP的T3接口的IP地址。从而网关在接收到该GRE协议控制信令答复信令后,将该T3接口的IP地址记录下来,并作为网关的DSL接口与HAAP的T3接口之间的TCP连接通道的目的IP地址。
可选地,第一设备接收到数据流后,对所述数据流对应的各个数据报文进行TCP封装,并在各个数据报文头部中添加序列号;所述序列号是根据各个数据报文到达的先后顺序确定的。
其中,针对各个TCP连接通道,根据在预设时长内统计的数据报文环回时延及丢包率确定流量溢出门限,可以通过以下方式实现:
所述第一设备针对每个TCP连接通道分别执行:
分别统计该条TCP连接通道在预设时长内的数据报文环回时延以及丢包率,根据统计的所述数据报文环回时延以及所述丢包率确定该条TCP连接通道的通道能力值,根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限。
具体的,由于每个数据报文的头部中添加有序列号,则可以统计在预设时长内,各个数据报文在TCP连接通道上发送时间到接收的同序列号的数据报文的ACK反馈的时间差,然后获取各个数据报文的发送及接收的时间差的平均值作为该预设时长内的RTT值。通过每个数据报文是否接收到ACK反馈的情况可以确定该预设时长内的该TCP连接通道的丢包率。添加有序列号的数据报文发送后,由于数据报文的序列号是连续的,因此可以统计出数据报文的ACK反馈中的各个序列号,因此可以确定丢包率。
进一步地,根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道的流量溢出门限,可以通过如下实现方式:
第一种实现方式:
将确定的该条TCP连接通道的通道能力值乘以X后的值作为流量溢出门限,其中0<X<1。
第二种实现方式:
将确定的该条TCP连接通道的通道能力值与上一个比较周期确定的流量溢出门限进行比较,根据得到的比较结果在当前比较周期内调节当前比较周期的流量溢出门限,并将调节后的流量溢出门限作为本次比较周期的流量溢出门限。其中,所述比较周期等于M个预设时长,M为正整数。一个预设时长也可以称为一个时间窗口,本发明实施例中表示一个时间概念。
其中,首先,针对每条TCP连接通道分别执行:在预定一个初始流量溢出门限可以是最开始一个时间窗口(一个时间窗口等于一个预设时长)统计的该条TCP连接通道数据报文环回时延以及丢包率确定该条TCP连接通道的通道能力值再乘以一个百分比(例如,50%)后得到的。然后,在之后的每个时间窗口内统计的数据报文环回时延以及丢包率再确定该条TCP连接通道的通道能力值,并将确定的通道能力值与初始流量溢出门限值进行比较,得到比较结果,并将比较结果保存,根据比较周期内的比较结果调节流量门限值,并将调节后的流量门限值保存。一个比较周期等于M个时间窗口。
例如,连续3个时间窗口(一个比较周期)内确定的通道能力值均大于当前保存的流量溢出门限值,则将流量溢出门限值调高5%。若连续3个时间窗口内确定的通道能力值均小于当前保存的流量溢出门限值,则将流量溢出门限值调低5%,其余情况,流量溢出门限值不变。则将调节后的流量溢出门限作为该比较周期的下一个比较周期流量动态控制的流量溢出门限。从而能够动态实时的调整流量溢出门限,保证双通道带宽的叠加使用。
进一步地,根据统计数据报文环回时延以及丢包率确定该TCP连接通道的通道能力值,可以通过以下公式实现:
根据如下公式确定该TCP连接通道的通道能力值:
其中,Through out表示通道能力值,BW表示连接通道的激活带宽,CWND表示数据报文发送拥塞窗口大小,MSS表示最大分片报文的大小,P表示丢包率,RTT表示数据报文的环回时延。min表示取最小值。min(A,B)表示取A和B的值的最小值,例如min(5,4)=4。
其中,BW是连接通道的激活带宽,是预先确定的,一旦确定后,一般不再变化。CWND和MSS由TCP协商获取,也为固定值。因此上述公式中的RTT和P为动态变化的,需要实时统计。
其中,预设时长为T,即周期长度。则RTT值可以是上一个时间周期中统计的数据报文环回时延。P可以是上一个时间周期统计的数据报文的丢包率。因此溢出流量门限是实时动态变化,网关和HAAP周期性的统计RTT和P值,并确定出该周期的溢出流量门限值,并实时保存。
具体地,对所述数据流对应的各个数据报文进行TCP封装,即将数据流对应的各个数据报文作为TCP报文的载荷。
进一步地,所述第一设备根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述第二设备,包括:
所述第一设备若建立的TCP连接通道为两个,确认其中第一TCP连接通道为默认传输通道;
所述第一设备在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限时,在所述数据流的各个数据报文的头部添加标识号,所述标识号用于标识各个TCP连接通道对应的链路;
所述第一设备将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述第二设备。
其中,TCP连接通道对应TCP链路,则标识号可以用于标识TCP链路的,
当然也可以说标识号是用于标识TCP连接通道的。
在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限时,在所述数据流的各个数据报文的头部添加标识号,其中添加标识号标识第一TCP连接通道的数据报文的数量等于流量溢出门限值。在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限,还可以将数据报文在两条TCP连接通道上平均分配传输。
可选地,所述第一设备若建立的TCP连接通道为至少三个,可以确定所述建立的TCP连接通道的优先级;
所述第一设备根据各个TCP连接通道的优先级以及各个TCP连接通道对应的流量溢出门限,将所述各个数据报文头部添加标识号;
所述第一设备将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述第二设备。
例如:若建立的TCP连接通道为3个,分别为TCP1、TCP2和TCP3。其中,TCP1的优先级大于TCP2的优先级,且TCP2的优先级大于TCP3的优先级。
其中所述第一设备可以将序列号未达到TCP1对应的流量溢出门限的数据报文的头部添加TCP1的标识号;并将序列号达到TCP1对应的流量溢出门限的数据报文的序列号减去TCP1对应的流量溢出门限后,得到的序号值未达到TCP2对应的流量溢出门限的数据报文的头部添加TCP2的标识号;在其余的数据报文的头部添加TCP3的标识号。
第一设备还可以在确定所述数据流的数据报文的数量达到TCP1的流量溢出门限以及TCP2的流量溢出门限之和时,在所述数据流的各个数据报文的头部添加标识号时,添加的标识TCP1的标识号的数据报文的数量小于等于TCP1的流量溢出门限值。添加的标识TCP2的标识号的数据报文的数量小于等于TCP2的流量溢出门限值。
在第一设备在确定所述数据流的数据报文的数量达到TCP1的流量溢出门限,但是未达到TCP1的流量溢出门限以及TCP2的流量溢出门限之和时,
可以将数据报文仅通过TCP1以及TCP2传输。
进一步的,添加的TCP连接通道的标识号位于各个数据报文的数据字段之前。如表1所示。
表1
本发明实施例提供了一种流量动态控制方法,如图3所示,该方法包括:
步骤301,第二设备接收到数据流;
步骤302,所述第二设备根据N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述第一设备;
其中,所述N条TCP连接通道为已建立的所述第二设备与第一设备之间的TCP连接通道;N条TCP连接通道中每条TCP连接通道对应的流量溢出门限是针对每条TCP连接通道,分别根据对该条TCP连接通道,在预设时长内统计的数据报文环回时延以及丢包率预先确定的;L为小于N的正整数。
其中,第一设备在向第二设备发送数据报文时,已经建立了第一设备与第二设备之间的TCP连接通道。
其中,第二设备可以是融合接入汇聚点,以及其他可以用于实现融合汇聚功能的网络设备均适用于本发明,第一设备可以是网关。
通过本发明实施例提供的方案,通过实时统计的数据报文环回时延以及丢包率确定流量溢出门限,然后根据动态变化的流量溢出门限动态对流量进行控制,使得数据在一个通道能够溢出到另一个通道上。
可选地,针对每条TCP连接通道,分别根据对该条TCP连接通道,在预设时长内统计的数据报文环回时延及丢包率确定流量溢出门限,可以通过以下方式实现:
所述第二设备针对每条TCP连接通道分别执行:
分别统计该条TCP连接通道在预设时长内的数据报文环回时延以及丢包率;根据统计的数据报文环回时延以及丢包率确定该条TCP连接通道的通道能力值,根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限。
具体的,由于每个数据报文的头部中添加有序列号,则可以统计预设时长内,各个数据报文在TCP连接通道上发送时间到接收的同序列号的数据报文的ACK反馈的时间差,然后获取各个数据报文的发送及接收的时间差的平均值作为该预设时长内的RTT值。通过每个数据报文是否接收到ACK反馈的情况可以确定该预设时长内的该TCP连接通道的丢包率。添加有序列号的数据报文发送后,由于数据报文的序列号是连续的,因此可以统计出数据报文的ACK反馈中的各个序列号,因此可以确定丢包率。
进一步地,在根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限,可以通过以下方式实现:
第一种实现方式:
将确定的该条TCP连接通道的通道能力值乘以X后的值作为流量溢出门限,其中0<X<1。
第二种实现方式:
将确定的该条TCP连接通道的通道能力值与上一个比较周期确定的流量溢出门限进行比较,根据得到的比较结果在当前比较周期内调节当前比较周期的流量溢出门限,所述比较周期等于M个预设时长,M为正整数。
可选地,根据统计的数据报文环回时延以及丢包率确定该TCP连接通道的通道能力值,可以通过以下公式实现:
根据如下公式确定该TCP连接通道的通道能力值:
其中,Through out表示通道能力值,BW表示连接通道的激活带宽,CWND表示数据报文发送拥塞窗口大小,MSS表示最大分片报文的大小,P表示丢包率,RTT表示数据报文的环回时延,min表示取最小值。
进一步地,若N等于2时,所述第二设备根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述第一设备,可以通过以下方式实现:
所述第二设备若建立的TCP连接通道为两个,确认其中第一TCP连接通道为默认传输通道;
所述第二设备在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限时,在所述数据流的各个数据报文的头部添加标识号,所述标识号用于标识各个TCP连接通道对应的链路;
所述第二设备将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述第一设备。
其中,TCP连接通道对应TCP链路,则标识号可以用于标识TCP链路的,当然也可以说标识号是用于标识TCP连接通道的。
在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限时,在所述数据流的各个数据报文的头部添加标识号,其中添加标识号标识第一TCP连接通道的数据报文的数量等于流量溢出门限值。在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限,还可以将数据报文在两条TCP连接通道上平均分配传输。
若N为大于等于3的正整数,所述第二设备根据所述N条TCP连接通道
中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述第一设备,可以通过以下方式实现:
所述第二设备若建立的TCP连接通道为至少三个,确定所述建立的TCP连接通道的优先级;
所述第二设备根据各个TCP连接通道的优先级以及各个TCP连接通道对应的流量溢出门限,将所述各个数据报文头部添加标识号;所述标识号用于标识各个TCP连接通道对应的链路;
所述第二设备将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述第一设备。
例如:若建立的TCP连接通道为3个,分别为TCP1、TCP2和TCP3。其中,TCP1的优先级大于TCP2的优先级,且TCP2的优先级大于TCP3的优先级。
其中所述第一设备可以将序列号未达到TCP1对应的流量溢出门限的数据报文的头部添加TCP1的标识号;并将序列号达到TCP1对应的流量溢出门限的数据报文的序列号减去TCP1对应的流量溢出门限后,得到的序号值未达到TCP2对应的流量溢出门限的数据报文的头部添加TCP2的标识号;在其余的数据报文的头部添加TCP3的标识号。
第一设备还可以在确定所述数据流的数据报文的数量达到TCP1的流量溢出门限以及TCP2的流量溢出门限之和时,在所述数据流的各个数据报文的头部添加标识号时,添加的标识TCP1的标识号的数据报文的数量小于等于TCP1的流量溢出门限值。添加的标识TCP2的标识号的数据报文的数量小于等于TCP2的流量溢出门限值。
在第一设备在确定所述数据流的数据报文的数量达到TCP1的流量溢出门限,但是未达到TCP1的流量溢出门限以及TCP2的流量溢出门限之和时,可以将数据报文仅通过TCP1以及TCP2传输。
进一步地,所述添加的TCP连接通道的标识号位于各个数据报文的数据
字段之前。
本发明实施例中还提供了一种流量动态控制设备,该设备可以是HG,如图4所示,该设备包括:
接收模块401,用于接收数据流;
存储模块402,用于存储与所述存储模块402所在的设备对应的对端设备进行TCP连接的连接信息;
处理模块403,用于根据所述存储模块402存储的与对应的对端设备进行TCP连接的连接信息,与对端设备建立N条TCP连接通道,N为大于等于2的正整数;
发送模块404,用于根据所述处理模块403建立的所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述对端设备;
其中,N条TCP连接通道中每条TCP连接通道对应的流量溢出门限是针对每条TCP连接通道,分别根据对该条TCP连接通道,在预设时长内统计的数据报文环回时延以及丢包率预先确定的;L为小于N的正整数。
通过本发明实施例提供的方案,通过实时统计的数据报文环回时延以及丢包率确定流量溢出门限,然后根据动态变化的流量溢出门限动态对流量进行控制,使得数据在一个通道能够溢出到另一个通道上。
可选地,所述发送模块404,还用于通过第一接口向所述对端设备的第二接口发送的第一GRE协议控制信令,所述第一GRE协议控制信令中携带所述第一接口的互联网协议IP地址,所述第一接口与所述第二接口之间配置有GRE隧道;使得所述对端设备将所述第一接口的IP地址记录为所述第一接口与所述第二接口之间的TCP连接通道的目的IP地址;
所述接收模块401,还用于通过所述第一接口接收到所述对端设备通过第二接口发送的第一GRE协议控制信令答复信令,所述第一GRE协议控制信令答复信令中携带所述第二接口的IP地址;
所述存储模块402,用于存储所述第二接口的IP地址作为所述第一接口
与所述第二接口之间的TCP连接通道的目的IP地址。
可选地,所述处理模块403,还用于针对每条TCP连接通道分别执行:
分别统计该条TCP连接通道在预设时长内的数据报文环回时延以及丢包率;根据统计的数据报文环回时延以及丢包率确定该条TCP连接通道的通道能力值,根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限。
进一步地,在根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限时,所述处理模块403,具体用于将确定的该条TCP连接通道的通道能力值乘以X后的值作为流量溢出门限,其中0<X<1;或者
将确定的该条TCP连接通道的通道能力值与上一个比较周期确定的流量溢出门限进行比较,根据得到的比较结果在当前比较周期内调节当前比较周期的流量溢出门限,所述比较周期等于M个预设时长,M为正整数。
根据统计的数据报文环回时延以及丢包率确定该TCP连接通道的通道能力值时,所述处理模块403具体用于根据如下公式确定该TCP连接通道的通道能力值:
其中,Through out表示通道能力值,BW表示连接通道的激活带宽,CWND表示数据报文发送拥塞窗口大小,MSS表示最大分片报文的大小,P表示丢包率,RTT表示数据报文的环回时延,min表示取最小值。
可选地,所述处理模块403还用于在所述接收模块接收到数据流后,对所述数据流对应的各个数据报文进行TCP封装,并在各个数据报文头部中添加序列号;所述序列号是根据各个数据报文到达的先后顺序确定的。
进一步地,在根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述对端设备,所述处理模块403具体用于:
若建立的TCP连接通道为两个,确认其中第一TCP连接通道为默认传输通道;在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限时,在所述数据流的各个数据报文的头部添加标识号,所述标识号用于标识各个TCP连接通道对应的链路;
所述发送模块404,具体用于:
将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述对端设备。
在根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述对端设备时,所述处理模块403具体用于:
若建立的TCP连接通道为至少三个,确定所述建立的TCP连接通道的优先级;根据各个TCP连接通道的优先级以及各个TCP连接通道对应的流量溢出门限,将所述各个数据报文头部添加标识号;所述标识号用于标识各个TCP连接通道对应的链路;
所述发送模块,具体用于将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述对端设备。
所述处理模块403在将所述各个数据报文头部添加TCP连接通道的标识号时,具体是将TCP连接通道的标识号添加在各个数据报文的数据字段之前。
本发明实施例还提供了一种流量动态控制设备,该设备可以为HAAP,如图5所示,该设备包括:
接收模块501,用于接收数据流;
发送模块502,用于根据N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述发送模块所在的设备对应的对端设备;
其中,所述N条TCP连接通道为已建立的所述对端设备与所述发送模块所在的设备之间的TCP连接通道;N条TCP连接通道中每条TCP连接通道对应的流量溢出门限是针对每条TCP连接通道,分别根据对该条TCP连接通
道,在预设时长内统计的数据报文环回时延以及丢包率预先确定的;L为小于N的正整数。
通过本发明实施例提供的方案,通过实时统计的数据报文环回时延以及丢包率确定流量溢出门限,然后根据动态变化的流量溢出门限动态对流量进行控制,使得数据在一个通道能够溢出到另一个通道上。
可选地,该设备还包括:
处理模块,用于针对每条TCP连接通道分别执行:
分别统计该条TCP连接通道在预设时长内的数据报文环回时延以及丢包率;根据统计的数据报文环回时延以及丢包率确定该条TCP连接通道的通道能力值,根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限。
在根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限,所述处理模块具体用于:
将确定的该条TCP连接通道的通道能力值乘以X后的值作为流量溢出门限,其中0<X<1;或者
将确定的该条TCP连接通道的通道能力值与上一个比较周期确定的流量溢出门限进行比较,根据得到的比较结果在当前比较周期内调节当前比较周期的流量溢出门限,所述比较周期等于M个预设时长,M为正整数。
在根据统计的数据报文环回时延以及丢包率确定该TCP连接通道的通道能力值,所述处理模块具体用于:
根据如下公式确定该TCP连接通道的通道能力值:
其中,Through out表示通道能力值,BW表示连接通道的激活带宽,CWND表示数据报文发送拥塞窗口大小,MSS表示最大分片报文的大小,P表示丢包率,RTT表示数据报文的环回时延,min表示取最小值。
可选地,所述处理模块,还用于在所述接收模块501接收到数据流后,
对所述数据流对应的各个数据报文进行TCP封装,并在各个数据报文头部中添加序列号;所述序列号是根据各个数据报文到达的先后顺序确定的。
其中,在根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述对端设备,所述处理模块具体用于:
若建立的TCP连接通道为两个,确认其中第一TCP连接通道为默认传输通道;在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限时,在所述数据流的各个数据报文的头部添加标识号,所述标识号用于标识各个TCP连接通道对应的链路;
所述发送模块502,具体用于:
将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述对端设备。
其中,在根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述对端设备时,所述处理模块具体用于:
若建立的TCP连接通道为至少三个,确定所述建立的TCP连接通道的优先级;根据各个TCP连接通道的优先级以及各个TCP连接通道对应的流量溢出门限,将所述各个数据报文头部添加标识号;所述标识号用于标识各个TCP连接通道对应的链路;
所述发送模块,具体用于:
将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述对端设备。
所述处理模块,具体用于将TCP连接通道的标识号添加在各个数据报文的数据字段之前。
本发明实施例中还提供了一种网关,如图6所示,该网关包括:
收发器601、存储器602以及处理器603;
收发器601、处理器602以及存储器603相互连接。本发明实施例中不限
定上述部件之间的具体连接介质。本发明实施例在图6中以存储器603、处理器602以及收发器之间通过总线604连接,总线在图6中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线604可以是外设部件互连标准(英文:peripheral component interconnect,简称:PCI)总线或扩展工业标准结构(英文:extended industry standard architecture,简称:EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例中存储器603,用于存储处理器602执行的程序代码,可以是只读存储器(英文:read-only memory,简称:ROM),随机存取存储器(英文:random-access memory,简称:RAM),也可以是电可擦可编程只读存储器(英文:Electrically Erasable Programmable Read-Only Memory,简称:EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此,例如存储器603可以是上述存储器的组合。
本发明实施例中处理器602,可以是一个通用的中央处理单元(英文:central processing unit,简称CPU)。
收发器601可以包括但不仅限于天线,用于实现收发数据报文功能的收发设备均适用于本发明。
所述收发器601,用于接收数据流;
所述存储器603,用于存储与融合接入汇聚点进行TCP连接的连接信息;
处理器602,用于根据所述存储器603存储的与所述融合接入汇聚点进行TCP连接的连接信息,与所述融合接入汇聚点建立N条TCP连接通道,N为大于等于2的正整数;
收发器601,还用于根据所述存储器存储的所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述融合接入汇聚点;
其中,N条TCP连接通道中每条TCP连接通道对应的流量溢出门限是针对每条TCP连接通道,分别根据对该条TCP连接通道,在预设时长内统计的数据报文环回时延以及丢包率预先确定的;L为小于N的正整数。
所述收发器601通过第一接口向所述融合接入汇聚点的第二接口发送的第一GRE协议控制信令,所述第一GRE协议控制信令中携带所述第一接口的互联网协议IP地址,所述第一接口与所述第二接口之间配置有GRE隧道;使得所述融合接入汇聚点将所述第一接口的IP地址记录为所述第一接口与所述第二接口之间的TCP连接通道的目的IP地址;
通过所述第一接口接收到所述融合接入汇聚点通过第二接口发送的第一GRE协议控制信令答复信令,所述第一GRE协议控制信令答复信令中携带所述第二接口的IP地址;存储器603将存储所述第二接口的IP地址并作为所述第一接口与所述第二接口之间的TCP连接通道的目的IP地址。
处理器602,针对每条TCP连接通道分别执行:
分别统计该条TCP连接通道在预设时长内的数据报文环回时延以及丢包率;根据统计的数据报文环回时延以及丢包率确定该条TCP连接通道的通道能力值,根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限。
在根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限时,处理器602将确定的该条TCP连接通道的通道能力值乘以X后的值作为流量溢出门限,其中0<X<1;或者处理器602将确定的该条TCP连接通道的通道能力值与上一个比较周期确定的流量溢出门限进行比较,根据得到的比较结果在当前比较周期内调节当前比较周期的流量溢出门限,所述比较周期等于M个预设时长,M为正整数。
在根据统计的数据报文环回时延以及丢包率确定该TCP连接通道的通道能力值时,所述处理器602根据如下公式确定该TCP连接通道的通道能力值:
其中,Through out表示通道能力值,BW表示连接通道的激活带宽,CWND表示数据报文发送拥塞窗口大小,MSS表示最大分片报文的大小,P表示丢包率,RTT表示数据报文的环回时延,min表示取最小值。
在收发器601接收到数据流后,处理器602对所述数据流对应的各个数据报文进行TCP封装,并在各个数据报文头部中添加序列号;所述序列号是根据各个数据报文到达的先后顺序确定的。
在根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述融合接入汇聚点,所述处理器602确定若建立的TCP连接通道为两个,确认其中第一TCP连接通道为默认传输通道;在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限时,在所述数据流的各个数据报文的头部添加标识号,所述标识号用于标识各个TCP连接通道对应的链路;收发器601将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述HAAP。
在根据至少两条TCP连接通道对应的流量溢出门限,将所述数据流通过所述至少两条TCP连接通道中的至少一条TCP连接通道发送给所述融合接入汇聚点时,所述处理器602确定若建立的TCP连接通道为至少三个,确定所述建立的TCP连接通道的优先级;根据各个TCP连接通道的优先级以及各个TCP连接通道对应的流量溢出门限,将所述各个数据报文头部添加标识号;所述标识号用于标识各个TCP连接通道对应的链路;收发器601将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述HAAP。
处理器602将TCP连接通道的标识号添加在各个数据报文的数据字段之前。
通过本发明实施例提供的方案,通过实时统计的数据报文环回时延以及丢包率确定流量溢出门限,然后根据动态变化的流量溢出门限动态对流量进行控制,使得数据在一个通道能够溢出到另一个通道上。
本发明实施例还提供了一种融合接入汇聚点,如图7所示,该融合接入
汇聚点包括:
收发器701、处理器702、存储器703。
收发器701、处理器702以及存储器703相互连接。本发明实施例中不限定上述部件之间的具体连接介质。本发明实施例在图6中以存储器703、处理器702以及收发器之间通过总线704连接,总线在图6中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。总线704可以是外设部件互连标准(英文:peripheral component interconnect,简称:PCI)总线或扩展工业标准结构(英文:extended industry standard architecture,简称:EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图6中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例中存储器703,用于存储处理器702执行的程序代码,可以是只读存储器(英文:read-only memory,简称:ROM),随机存取存储器(英文:random-access memory,简称:RAM),也可以是电可擦可编程只读存储器(英文:Electrically Erasable Programmable Read-Only Memory,简称:EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此,例如存储器703可以是上述存储器的组合。
本发明实施例中处理器702,可以是一个通用的中央处理单元(英文:central processing unit,简称CPU)。
收发器701可以包括但不仅限于天线,用于实现收发数据报文功能的收发设备均适用于本发明。
存储器703还存储N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限;
收发器701接收到数据流后,根据所述存储器703存储的N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给网关;
其中,所述N条TCP连接通道为已建立的所述网关与所述融合接入汇聚点之间的TCP连接通道;N条TCP连接通道中每条TCP连接通道对应的流量溢出门限是针对每条TCP连接通道,分别根据对该条TCP连接通道,在预设时长内统计的数据报文环回时延以及丢包率预先确定的;L为小于N的正整数。
可选地,处理器702针对每条TCP连接通道分别执行:
分别统计该条TCP连接通道在预设时长内的数据报文环回时延以及丢包率;根据统计的数据报文环回时延以及丢包率确定该条TCP连接通道的通道能力值,根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限。
在根据确定的该条TCP连接通道的通道能力值确定该条TCP连接通道对应的流量溢出门限,所述处理器702将确定的该条TCP连接通道的通道能力值乘以X后的值作为流量溢出门限,其中0<X<1;或者处理器702将确定的该条TCP连接通道的通道能力值与上一个比较周期确定的流量溢出门限进行比较,根据得到的比较结果在当前比较周期内调节当前比较周期的流量溢出门限,所述比较周期等于M个预设时长,M为正整数。
在根据统计的数据报文环回时延以及丢包率确定该TCP连接通道的通道能力值,所述处理器702根据如下公式确定该TCP连接通道的通道能力值:
其中,Through out表示通道能力值,BW表示连接通道的激活带宽,CWND表示数据报文发送拥塞窗口大小,MSS表示最大分片报文的大小,P表示丢包率,RTT表示数据报文的环回时延,min表示取最小值。
在收发器701接收到数据流后,处理器702对所述数据流对应的各个数据报文进行TCP封装,并在各个数据报文头部中添加序列号;所述序列号是根据各个数据报文到达的先后顺序确定的。
其中,在根据所述N条TCP连接通道中的L条TCP连接通道对应的流
量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述网关,所述处理器702确定若建立的TCP连接通道为两个,确认其中第一TCP连接通道为默认传输通道;将序列号未达到第一TCP连接通道对应的流量溢出门限的数据报文的头部添加第一TCP连接通道的标识号;在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限时,在所述数据流的各个数据报文的头部添加标识号,所述标识号用于标识各个TCP连接通道对应的链路;然后收发器701将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述网关。
其中,在根据所述N条TCP连接通道中的L条TCP连接通道对应的流量溢出门限,将所述数据流通过所述N条TCP连接通道中的至少一条TCP连接通道发送给所述网关时,处理器702若确定建立的TCP连接通道为至少三个,确定所述建立的TCP连接通道的优先级;根据各个TCP连接通道的优先级以及各个TCP连接通道对应的流量溢出门限,将所述各个数据报文头部添加标识号;所述标识号用于标识各个TCP连接通道对应的链路;然后收发器701将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给所述第一设备。
所述处理器将TCP连接通道的标识号添加在各个数据报文的数据字段之前。
通过本发明实施例提供的方案,通过实时统计的数据报文环回时延以及丢包率确定流量溢出门限,然后根据动态变化的流量溢出门限动态对流量进行控制,使得数据在一个通道能够溢出到另一个通道上。
本发明实施例还提供了一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当被包括多个应用程序的电子设备执行时使所述电子设备执行上述图2所对应的实施例中任意一种情况下的流量动态控制方法。
本发明实施例还提供了一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,所述指令当被包括多个应用程序的电子
设备执行时使所述电子设备执行上述图3所对应的实施例中任意一种情况下的流量动态控制方法。
下面结合具体应用场景对本发明实施例作具体说明。
流量动态控制系统,如图8所示,包括:网关,融合接入汇聚点(Hybrid Access Aggregation Point,简称:HAAP),以及宽带网络网关设备(简称:BNG)和分组核心网设备(简称:EPC)。
其中,网关的LAN地址同时支持IPv4地址(或者称为A4地址)和IPv6地址(或者称为A6地址)。并且网关通过PHCP给终端设备分配IPv4或者IPv6地址。
网关包括两个接口为DSL接口和LTE接口,HAAP包括一个接口为Tx/Rx接口。
DSL接口的地址D是网关通过DSL链路从BNG设备获取的,LTE接口的地址E是网关通过EPC设备获取的。
T3为HAAP和网关之间连接的Tx/Rx接口的地址。
在传输数据流之前,需要在DSL接口和Tx/Rx接口,LTE接口和Tx/Rx接口之间建立两条TCP连接通道。两条TCP连接通道的地址等参数需要通过GRE协议控制信令获取并保存以便后续使用。具体的获取方式如下:
如图9所示,在LTE接口上:
P1:网关向HAAP发送GRE协议控制信令,在该GRE协议控制信令中携带该LTE接口的IP地址(E)以及端口号。然后HAAP接收到该GRE协议控制信令后,将该LTE接口的IP地址记录下来,并作为HAAP的Tx/Rx接口与网关的LTE接口之间的TCP连接通道的目的IP地址。
P2:HAAP向网关发送GRE协议控制信令答复信令,并在GRE协议控制信令答复信令中携带HAAP的Tx/Rx接口的IP地址。从而网关在接收到该GRE协议控制信令答复信令后,将该Tx/Rx接口的IP地址记录下来,并作为网关的LTE接口与HAAP的Tx/Rx接口之间的TCP连接通道的目的IP地址。
如图10所示,在DSL接口上:
S1:网关向HAAP发送GRE协议控制信令,在该GRE协议控制信令中携带该DSL接口的IP地址及端口号。然后HAAP通过Tx/Rx接口接收到该GRE协议控制信令后,将该DSL接口的IP地址及端口号记录下来,并作为HAAP的Tx/Rx接口与网关的DSL接口之间的TCP连接通道的目的IP地址,即作为连接信息。
S2:HAAP通过Tx/Rx接口向网关的DSL接口发送GRE协议控制信令答复信令,并在GRE协议控制信令答复信令中携带HAAP的Tx/Rx接口的IP地址。从而网关在接收到该GRE协议控制信令答复信令后,将该Tx/Rx接口的IP地址记录下来,并作为网关的DSL接口与HAAP的Tx/Rx接口之间的TCP连接通道的目的IP地址,即作为连接信息。
通过上述图9和图10所述的两个交互过程,完成的TCP连接通道两端的地址参数的学习。
网关接收到终端发送的数据报文,数据报文中携带终端的IP地址。终端的IP地址可以为A4地址或者A6地址。若为A4地址,网关将所述数据报文路由到绑定虚拟接口进行TCP处理,然后将所述A4地址经过NAT,NAT为T1地址。然后通过DSL接口或者LTE接口发送给HAAP。若为A6地址,网关将所述数据报文路由到绑定虚拟接口进行TCP处理,然后直接通过DSL接口或者LTE接口发送给HAAP。由于针对A4地址来说,在网络侧则作为私有网络地址,因此携带有A4地址的数据报文无法在因特网中传输,则需要转换为一个公共网络地址,则T1地址为一个预设的公网地址。针对A6地址在网络侧本身就是一个公共网络地址,因此不需要再进行转换。
网关将所述数据报文路由到绑定虚拟接口进行TCP处理,具体可以通过以下方式,如图11所示:
步骤1101,网关根据存储的与HAAP进行TCP连接的连接信息,与HAAP建立两条TCP连接通道。具体为DSL接口与Tx/Rx接口之间的第一TCP连接通道,以及LTE接口与Tx/Rx接口之间的第二TCP连接通道。
步骤1102,网关对数据报文进行TCP封装,并在各个数据报文头部中添
加序列号。
其中,对数据报文进行TCP封装,即将数据报文添加TCP报文的头部,如表2所示。
表2
步骤1103,所述网关在确定所述数据流的数据报文的数量达到第一TCP连接通道对应的流量溢出门限时,在所述数据流的各个数据报文的头部添加标识号,所述标识号用于标识各个TCP连接通道对应的链路。
步骤1104,所述网关将各个数据报文通过各个数据报文中的标识号对应的TCP连接通道发送给HAAP。
具体的,网关在一个时间窗口内统计数据报文环回时延以及丢包率,然后确定第一TCP连接通道的通道能力。可以根据如下公式确定第一TCP连接通道的通道能力值:
其中,Through out表示通道能力值,BW表示连接通道的激活带宽,CWND表示数据报文发送拥塞窗口大小,MSS表示最大分片报文的大小,P表示丢包率,RTT表示数据报文的环回时延。
然后根据第一TCP连接通道的通道能力确定流量溢出门限。具体的,可
以是:将通道能力乘以一个预期的百分比(比如50%),作为初始的流量溢出门限值。例如:其中,R表示流量溢出门限,0<X<1。
当前,还可以将每个时间窗口内确定的第一TCP连接通道(DSL链路所对应)的通道能力保存,将确定的第一TCP连接通道的通道能力值与流量溢出门限值进行比较,并将比较结果进行保存,当确认连续M个时间窗口内,第一TCP连接通道的通道能力值均大于流量溢出门限值,则调高流量溢出门限值。当确认连续M个时间窗口内,第一TCP连接通道的通道能力值均小于流量溢出门限值,则调低流量溢出门限。
其中,可以根据每个数据报文在DSL的连接通道发送和接收到ACK反馈的时间差确定RTT。由于每个数据报文会添加序列号,根据该序列号对应数据报文发送和接收到ACK反馈的时间差确定RTT。RTT的变化反映了连接通道时延的变化。然后根据各个序列号对应的报文的ACK反馈情况可以确定时间窗口内的丢包率。
具体的,HAAP在接收到网关发送的数据报文后,根据序列号对数据报文进行排序整理,针对未接收到的数据报文在该时间窗口内进行超时重传,如果达到预定时间未接收到的数据报文,则认为丢包,并对接收到的数据报文,向网关发送ACK反馈。然后将接收到的数据报文去除TCP报文头部发送出去。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图
和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理模块的处理器以产生一个机器,使得通过计算机或其他可编程数据处理模块的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理模块以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理模块上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。