MPTCP子流的建立方法及设备
技术领域
本发明涉及无线通信领域,尤其涉及多路径传输控制协议(Multipath Transmission Control Protocol,简称:MPTCP)MPTCP子流的建立方法及设备。
背景技术
在标准传输控制协议(Transmission Control Protocol,简称:TCP)协议中,每个连接只使用一条路径进行传输。然而在新的移动互联网环境中,不同的无线接入技术相互融合,终端具有多种网络接口,例如无线保真(Wireless Fidelity,简称:WiFi)和蜂窝网络(cellular network)接口。这时两个互相通信的终端之间存在多条可用路径,如果依然按照标准TCP协议只同时使用一条路径,就会浪费其它路径资源。另一方面,当前终端上越来越多的应用程序需要互联网接入,如果这些应用程序能够通过不同接口的多路径同时接入,就可以保证更高水平的用户体验,减少无线网络因链路变化、高误码率等特点受到的影响。互联网工程任务组(Internet Engineering Task Force,简称:IETF)正是基于此目的成立MPTCP工作组对MPTCP进行研究。
如图1所示,MPTCP的核心思想是在应用层和传输层中间加入支持多路径传输的MPTCP层,将传统的TCP数据分为多个TCPMPTCP子流,不同TCPMPTCP子流沿不同路径传输,并在终端处聚合。原有的TCP层只对MPTCP子流起作用,从而使MPTCP与原TCP可以兼容,对网络其他层次透明,网络不必做太大的变化。
虽然MPTCP技术可以使得终端同时利用多个接口进行通信,但是MPTCP要求参与通信的双方要同时支持MPTCP,当其中某一个通信方不支持MPTCP时就无法使用MPTCP进行通信。为了使得具有MPTCP能力的终端能够与不具有MPTCP能力的终端之间进行通信,现有技术中提出了MPTCP代理(proxy)的概念。MPTCP代理的最终目的是在MPTCP终端与TCP终
端之间实现MPTCP会话与TCP会话之间的映射。
然而,当MPTCP代理由运营商部署时,当MPTCP终端已经通过MPTCP代理建立了MPTCP会话,那么,通常该MPTCP代理只允许MPTCP终端使用运营商自己所部署的无线接入点来建立MPTCP子流,或者由于某些其他原因,例如MPTCP代理当前负载过重等原因要拒绝MPTCP新子流的建立,此时如果MPTCP终端要与MPTCP代理之间建立MPTCP新子流,那么可能会导致MPTCP子流建立失败。
现有机制中[RFC6824]规定,出于安全考虑如果MPTCP代理建立MPTCP子流失败,那么MPTCP终端就不应该再向同一个目的地址+端口号发起子流建立请求,这将导致MPTCP终端无法再充分的利用MPTCP的多路径功能。
发明内容
本发明实施例提供MPTCP子流的建立方法及相关设备,以至少解决现有技术中如果MPTCP子流建立失败,则MPTCP终端再向同一个目的地址+端口号发起子流建立请求时,MPTCP子流无法建立成功,导致MPTCP终端无法再充分的利用MPTCP的多路径功能的问题。
为达到上述目的,本发明实施例提供以下技术方案:
第一方面,提供一种多路径传输控制协议MPTCP子流的建立方法,所述方法包括:
第一终端发送第一子流建立请求,所述第一子流建立请求用于指示建立MPTCP新子流;
所述第一终端接收子流建立拒绝响应,所述子流建立拒绝响应携带不允许所述MPTCP新子流建立的原因;
所述第一终端根据所述原因及预设策略,发送第二子流建立请求,所述第二子流建立请求用于指示建立MPTCP新子流。
在第一方面第一种可能的实现方式中,结合第一方面,所述第一终端发送第一子流建立请求,包括:
所述第一终端向MPTCP代理发送子流建立请求,所述第一子流建立请求用于指示所述MPTCP代理建立MPTCP新子流。
在第一方面第二种可能的实现方式中,结合第一方面第一种可能的实现方式,所述不允许MPTCP新子流建立的原因,包括:
所述MPTCP代理禁止所述第一终端使用当前接入点发起MPTCP子流;或者,
所述MPTCP代理当前的负载不小于第一阈值;或者,
所述第一终端当前通过所述MPTCP代理建立的MPTCP连接上的MPTCP子流个数不小于第二阈值。
在第一方面第三种可能的实现方式中,结合第一方面第二种可能的实现方式,所述预设策略包括:
若所述不允许所述MPTCP新子流建立的原因为所述MPTCP代理禁止所述第一终端使用当前接入点发起MPTCP子流,则所述第一终端停止在当前接入点向所述MPTCP代理发送子流建立请求,直至所述第一终端接入到新的接入点后向所述MPTCP代理发送所述第二子流建立请求;
若所述不允许所述MPTCP新子流建立的原因为所述MPTCP代理当前的负载不小于第一阈值,则所述第一终端在第一预设时间之后向所述MPTCP代理发送所述第二子流建立请求;
若所述不允许所述MPTCP新子流建立的原因为所述第一终端当前通过所述MPTCP代理建立的MPTCP连接上的MPTCP子流个数不小于第二阈值,则所述第一终端在至少一个其它MPTCP子流结束后向所述MPTCP代理发送所述第二子流建立请求。
在第一方面第四种可能的实现方式中,结合第一方面,所述第一终端发送第一子流建立请求,包括:
所述第一终端向第二终端发送第一子流建立请求,所述第一子流建立请求用于指示所述第二终端建立MPTCP新子流。
在第一方面第五种可能的实现方式中,结合第一方面第四种可能的实现方式,所述不允许所述MPTCP新子流建立的原因,包括:
所述第二终端当前的负载不小于第三阈值;或者,
所述第一终端当前通过所述第二终端建立的MPTCP连接上的MPTCP子流个数不小于第四阈值。
在第一方面第六种可能的实现方式中,结合第一方面第五种可能的实现方式,所述预设策略包括:
若所述不允许所述MPTCP新子流建立的原因为所述第二终端当前的负载不小于第三阈值,则所述第一终端在第二预设时间之后向所述第二终端发送所述第二子流建立请求;
若所述不允许所述MPTCP新子流建立的原因为所述第一终端当前通过所述第二终端建立的MPTCP连接上的MPTCP子流个数不小于第四阈值,则所述第一终端在至少一个其它MPTCP子流结束后向所述第二终端发送所述第二子流建立请求。
第二方面,提供一种多路径传输控制协议MPTCP子流的建立方法,所述方法包括:
接收第一终端发送的子流建立请求,所述子流建立请求用于指示建立MPTCP新子流;
根据所述子流建立请求,确定是否允许MPTCP新子流建立;
若确定不允许MPTCP新子流建立,向所述第一终端发送子流建立拒绝响应,所述子流建立拒绝响应携带不允许所述MPTCP新子流建立的原因。
在第二方面第一种可能的实现方式中,结合第二方面,所述接收第一终端发送的子流建立请求,包括:
MPTCP代理接收第一终端发送的子流建立请求,所述子流建立请求用于指示MPTCP代理建立MPTCP新子流。
在第二方面第二种可能的实现方式中,结合第二方面第一种可能的实现方式,所述不允许所述MPTCP新子流建立的原因,包括:
所述MPTCP代理禁止所述第一终端使用当前接入点发起MPTCP子流;或者,
所述MPTCP代理当前的负载不小于第一阈值;或者,
所述第一终端当前通过所述MPTCP代理建立的MPTCP连接上的MPTCP子流个数不小于第二阈值。
在第二方面第三种可能的实现方式中,结合第二方面,所述接收第
一终端发送的子流建立请求,包括:
第二终端接收第一终端发送的子流建立请求,所述子流建立请求用于指示第二终端建立MPTCP新子流。
在第二方面第四种可能的实现方式中,结合第二方面第三种可能的实现方式,所述不允许MPTCP新子流建立的原因,包括:
所述第二终端当前的负载不小于第三阈值;或者,
所述第一终端当前通过所述第二终端建立的MPTCP连接上的MPTCP子流个数不小于第四阈值。
第三方面,提供一种第一终端,所述第一终端包括发送单元、接收单元;
所述发送单元,用于发送第一子流建立请求,所述第一子流建立请求用于指示建立多路径传输控制协议MPTCP新子流;
所述接收单元,用于接收子流建立拒绝响应,所述子流建立拒绝响应携带不允许所述MPTCP新子流建立的原因;
所述发送单元,还用于根据所述原因及预设策略,发送第二子流建立请求。
在第三方面第一种可能的实现方式中,结合第三方面,所述发送单元具体用于:
向MPTCP代理发送第一子流建立请求,所述第一子流建立请求用于指示所述MPTCP代理建立MPTCP新子流。
在第三方面第二种可能的实现方式中,结合第三方面第一种可能的实现方式,所述不允许所述MPTCP新子流建立的原因,包括:
所述MPTCP代理禁止所述第一终端使用当前接入点发起MPTCP子流;或者,
所述MPTCP代理当前的负载不小于第一阈值;或者,
所述第一终端当前通过所述MPTCP代理建立的MPTCP连接上的MPTCP子流个数不小于第二阈值。
在第三方面第三种可能的实现方式中,结合第三方面第而种可能的实现方式,所述预设策略包括:
若所述不允许所述MPTCP新子流建立的原因为所述MPTCP代理禁止所述第一终端使用当前接入点发起MPTCP子流,则所述发送单元停止在当前接入点向所述MPTCP代理发送子流建立请求,直至所述第一终端接入到新的接入点后向所述MPTCP代理发送所述第二子流建立请求;
若所述不允许所述MPTCP新子流建立的原因为所述MPTCP代理当前的负载不小于第一阈值,则所述发送单元在第一预设时间之后向所述MPTCP代理发送所述第二子流建立请求;
若所述不允许所述MPTCP新子流建立的原因为所述第一终端当前通过所述MPTCP代理建立的MPTCP连接上的MPTCP子流个数不小于第二阈值,则所述发送单元在至少一个其它MPTCP子流结束后向所述MPTCP代理发送所述第二子流建立请求。
在第三方面第四种可能的实现方式中,结合第三方面,所述发送单元具体用于:
向第二终端发送第一子流建立请求,所述第一子流建立请求用于指示所述第二终端建立MPTCP新子流。
在第三方面第五种可能的实现方式中,结合第三方面第四种可能的实现方式,所述不允许所述MPTCP新子流建立的原因,包括:
所述第二终端当前的负载不小于第三阈值;或者,
所述第一终端当前通过所述第二终端建立的MPTCP连接上的MPTCP子流个数不小于第四阈值。
在第三方面第六种可能的实现方式中,结合第三方面第五种可能的实现方式,所述预设策略包括:
若所述不允许所述MPTCP新子流建立的原因为所述第二终端当前的负载不小于第三阈值,则所述发送单元在第二预设时间之后向所述第二终端发送所述第二子流建立请求;
若所述不允许所述MPTCP新子流建立的原因为所述第一终端当前通过所述第二终端建立的MPTCP连接上的MPTCP子流个数不小于第四阈值,则所述发送单元在至少一个其它MPTCP子流结束后重新向所述第二终端发送所述第二子流建立请求。
第四方面,提供一种多路径传输控制协议MPTCP子流的建立装置,所述MPTCP子流的建立装置包括:接收单元、确定单元、以及发送单元;
所述接收单元,用于接收第一终端发送的子流建立请求,所述子流建立请求用于指示建立MPTCP新子流;
所述确定单元,用于根据所述子流建立请求,确定是否允许MPTCP新子流建立;
所述发送单元,用于若所述确定单元确定不允许MPTCP新子流建立,向所述第一终端发送子流建立拒绝响应,所述子流建立拒绝响应携带不允许所述MPTCP新子流建立的原因。
在第四方面第一种可能的实现方式中,结合第四方面,所述MPTCP子流的建立装置为MPTCP代理;所述接收单元具体用于:
接收第一终端发送的子流建立请求,所述子流建立请求用于指示所述MPTCP代理建立MPTCP新子流。
在第四方面第二种可能的实现方式中,结合第四方面第一种可能的实现方式,所述不允许所述MPTCP新子流建立的原因,包括:
所述MPTCP代理禁止所述第一终端使用当前接入点发起MPTCP子流;或者,
所述MPTCP代理当前的负载不小于第一阈值;或者,
所述第一终端当前通过所述MPTCP代理建立的MPTCP连接上的MPTCP子流个数不小于第二阈值。
在第四方面第三种可能的实现方式中,结合第四方面,所述MPTCP子流的建立装置为第二终端;所述接收单元具体用于:
接收第一终端发送的子流建立请求,所述子流建立请求用于指示第二终端建立MPTCP新子流。
在第四方面第四种可能的实现方式中,结合第四方面第三种可能的实现方式,所述不允许所述MPTCP新子流建立的原因,包括:
所述第二终端当前的负载不小于第三阈值;或者,
所述第一终端当前通过所述第二终端建立的MPTCP连接上的MPTCP子流个数不小于第四阈值。
第五方面,提供一种多路径传输控制协议第一终端,所述第一终端包括处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述第一终端运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述第一终端执行如第一方面中任一项所述的MPTCP子流的建立方法。
第六方面,提供一种多路径传输控制协议MPTCP子流的建立装置,所述MPTCP子流的建立装置包括处理器、存储器、总线和通信接口;
所述存储器用于存储计算机执行指令,所述处理器与所述存储器通过所述总线连接,当所述MPTCP子流的建立装置运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述MPTCP子流的建立装置执行如第二方面中任一项所述的MPTCP子流的建立方法。
基于本发明实施例提供的MPTCP子流的建立方法及相关设备,由于本发明实施例中,若不允许MPTCP新子流建立,第一终端会接收子流建立拒绝响应,该子流建立拒绝响应携带不允许MPTCP新子流建立的原因,进而第一终端在获知不允许MPTCP子流建立的原因之后,可以根据预设策略重新发送子流建立请求。比如,若不允许MPTCP新子流建立的原因为MPTCP代理禁止第一终端使用当前接入点发起MPTCP子流,则第一终端停止在当前接入点向MPTCP代理发送子流建立请求,直至第一终端接入到新的接入点后可以向MPTCP代理发送子流建立请求。避免了现有技术中如果MPTCP子流建立失败,则第一终端再向同一个目的地址+端口号发起子流建立请求时,MPTCP子流无法建立成功,导致第一终端无法再充分的利用MPTCP的多路径功能的问题,使得即使MPTCP子流建立失败,则第一终端再向同一个目的地址+端口号发起子流建立请求时,MPTCP子流仍可能建立成功,从而使得第一终端充分的利用MPTCP的多路径功能。
附图说明
图1为本发明实施例提供的MPTCP协议栈示意图;
图2为本发明实施例提供的MPTCP的典型应用场景示意图;
图3为现有移动网络核心网的架构示意图;
图4为本发明实施例提供的MPTCP子流的建立方法流程示意图一;
图5为本发明实施例提供的MPTCP子流的建立方法流程示意图二;
图6为本发明实施了提供的MPTCP子流建立失败场景示意图;
图7为本发明实施例提供的MPTCP子流的建立方法流程示意图三;
图8为本发明实施例提供的MPTCP子流的建立方法流程示意图四;
图9为本发明实施例提供的MPTCP子流的建立方法流程示意图五;
图10为本发明实施例提供的MPTCP子流的建立方法流程示意图六;
图11为本发明实施例提供的MPTCP子流的建立方法交互示意图一;
图12为本发明实施例提供的MPTCP子流的建立方法交互示意图二;
图13为本发明实施例提供的第一终端结构示意图一;
图14为本发明实施例提供的MPTCP子流的建立装置结构示意图一;
图15为本发明实施例提供的第一终端结构示意图二;
图16为本发明实施例提供的MPTCP子流的建立装置结构示意图二。
具体实施方式
图2所示为MPTCP的典型应用场景。终端A和终端B是两个相互通信的多接口(包括一个WiFi接口和一个蜂窝网络接口)终端。两个终端上各个接口的IP地址分别是A1,A2和B1,B2。当终端A要使用MPTCP与终端B进行通信时,终端A可以同时使用WiFi接口和蜂窝网络接口与终端B进行通信,即分别在WiFi接口和蜂窝网络接口上建立一个TCP的MPTCP子流,因此终端A和终端B就可以同时利用两个接口来进行通信,从而提高通信带宽。
其次,给出本发明所涉及的核心网架构的简要说明:
图3所示为移动网络核心网的架构示意图。该移动网络包括终端、演进型通用移动通信系统(Universal Mobile Telecommunications System,简称:UMTS)陆地无线接入网(Evolved UMTS Terrestrial Radio Access Network,简称:E-UTRAN)、移动管理实体(Mobility Management Entity,简称:MME)、通用分组无线服务技术(General Packet Radio Service,简称:GPRS)服务支持节点(Serving GPRS Support Node,简称:SGSN)、归属用户服务器(Home
Subscriber Server,简称:HSS)、服务网关(Serving Gateway,简称:SGW)、分组数据网网关(Public Data Network Gateway,简称:PGW)、策略与计费实体(Policy and Charging Rules Function,简称:PCRF)、网络之间互连的协议(Internet Protocol,简称:IP)服务等。
当然,本发明实施例所涉及的核心网还可能是其它网络中的核心网或者固定网络中的核心网,本发明实施例仅是以现有移动网络核心网为例进行说明,对现有移动网络核心网之外的核心网不作具体限定。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。在下文描述中,处于解释而非限定的目的,阐述了一些特定细节以便清楚理解。在一些实施例中,省略了公知的装置、电路和方法的详细描述,以免因不必要的细节使得描述模糊。通篇描述中,相同的引用数字和相同的名称指代相同或相似的元素。
需要说明的是,为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定。
本发明实施例提供一种MPTCP子流的建立方法,不仅适用于第一终端知道自己正在与MPTCP代理交互的情况下,同样适用于第一终端不知道自己正在与MPTCP代理交互的情况下,如图4所示,方法包括:
S401、第一终端发送第一子流建立请求,所述第一子流建立请求用于指示建立MPTCP新子流。
其中,第一终端为支持MPTCP的终端,例如:支持MPTCP的智能手机、支持MPTCP的平板电脑等。
S402、所述第一终端接收子流建立拒绝响应,所述子流建立拒绝响应携带不允许所述MPTCP新子流建立的原因。
S403、所述第一终端根据所述原因及预设策略,发送第二子流建立请求,所述第二子流建立请求用于指示建立MPTCP新子流。
一种可能的实现方式中,第一终端的通信对端(即第二终端)不支持MPTCP,比如第二终端为TCP终端。为了使得第一终端能够与TCP终端之间进行通信,需要在第一终端与TCP终端之间增加MPTCP代理,以使得在MPTCP终端与TCP终端之间实现MPTCP会话与TCP会话之间的映射。该场景下,如图5所示,步骤S401具体包括:
S401a、第一终端向MPTCP代理发送第一子流建立请求,所述第一子流建立请求用于指示所述MPTCP代理建立MPTCP新子流。
相应的,步骤S403具体包括:
S403a、第一终端根据所述原因及预设策略,向MPTCP代理发送第二子流建立请求,所述第二子流建立请求用于指示所述MPTCP代理建立MPTCP新子流。
其中,本发明实施例中的MPTCP代理可以独立部署,也可以部署在如图3所示的现有的移动网络核心网的网络设备上,比如部署在PGW上或者部署在上行方向PGW后面的网络设备上,本发明实施例对此不作具体限定。
进一步的,步骤S402中,所述不允许所述MPTCP新子流建立的原因,可以包括:
所述MPTCP代理禁止所述第一终端使用当前接入点发起MPTCP子流;或者,
所述MPTCP代理当前的负载不小于第一阈值;或者,
所述第一终端当前通过所述MPTCP代理建立的MPTCP连接上的MPTCP子流个数不小于第二阈值。
当然,MPTCP代理不允许MPTCP新子流建立的原因还可能为其它,上述仅是示例性的提供几种可能的MPTCP代理不允许MPTCP新子流建立的原因,本发明实施例对MPTCP代理不允许MPTCP新子流建立的其它原因不作具体限定。
进一步的,步骤S403中,所述预设策略可以包括:
若所述不允许所述MPTCP新子流建立的原因为所述MPTCP代理禁止所述第一终端使用当前接入点发起MPTCP子流,则所述第一终端停止在
当前接入点向所述MPTCP代理发送子流建立请求,直至所述第一终端接入到新的接入点后向所述MPTCP代理发送所述第二子流建立请求;
若所述不允许所述MPTCP新子流建立的原因为所述MPTCP代理当前的负载不小于第一阈值,则所述第一终端在第一预设时间之后向所述MPTCP代理发送所述第二子流建立请求;
若所述不允许所述MPTCP新子流建立的原因为所述第一终端当前通过所述MPTCP代理建立的MPTCP连接上的MPTCP子流个数不小于第二阈值,则所述第一终端在至少一个其它MPTCP子流结束后向所述MPTCP代理发送所述第二子流建立请求。
示例性的,如图6所示,若第一终端A使用的是运营商A的MPTCP代理,并已经通过长期演进(Long Term Evolution,简称:LTE)接口建立了MPTCP子流1,之后若通过WiFi接口请求建立MPTCP子流2,那么由于此时所采用的WiFi接入点是其他运营商的(例如,属于运营商B),则该MPTCP子流2的建立请求会被拒绝。
该场景下,现有技术中,由于第一终端A不知道为何MPTCP新子流建立被拒绝而可能不再使用WiFi接口建立MPTCP新子流,即便是后来第一终端A移动到运营商A所部署的WiFi网络的覆盖范围内也不再使用WiFi接口建立MPTCP新子流。这将导致第一终端A无法再充分的利用MPTCP的多路径功能。
本发明实施例中,第一终端A会接收MPTCP代理返回的子流建立拒绝响应,该子流建立拒绝响应携带MPTCP代理不允许MPTCP新子流建立的原因,例如,原因为所述MPTCP代理禁止所述第一终端A使用当前接入点发起MPTCP子流。进而,所述第一终端A会停止在当前接入点向所述MPTCP代理发送子流建立请求,直至所述第一终端A接入到新的接入点后向所述MPTCP代理发送第二子流建立请求。即,若后来第一终端A移动到运营商A所部署的WiFi网络的覆盖范围内,则第一终端A可以使用WiFi接口建立MPTCP新子流,从而充分的利用MPTCP的多路径功能。
另一种可能的实现方式中,第一终端的通信对端(即第二终端)支持MPTCP。该场景下,第一终端能够与第二终端之间进行通信。如图7所
示,步骤S401具体包括:
S401b、第一终端向第二终端发送第一子流建立请求,所述第一子流建立请求用于指示所述第二终端建立MPTCP新子流。
相应的,步骤S403具体包括:
S403b、第一终端根据所述原因及预设策略,向第二终端发送第二子流建立请求,所述第二子流建立请求用于指示所述第二终端建立MPTCP新子流。
其中,本发明实施例中的第二终端可以是支持MPTCP的智能手机、支持MPTCP的平板电脑等;也可以是MPTCP服务器,本发明实施例对此不作具体限定。
进一步的,步骤S402中,所述不允许所述MPTCP新子流建立的原因,可以包括:
所述第二终端当前的负载不小于第一阈值;或者,
所述第一终端当前通过所述第二终端建立的MPTCP连接上的MPTCP子流个数不小于第二阈值。
当然,第二终端不允许MPTCP新子流建立的原因还可能为其它,上述仅是示例性的提供几种可能的第二终端不允许MPTCP新子流建立的原因,本发明实施例对第二终端不允许MPTCP新子流建立的其它原因不作具体限定。
进一步的,步骤S403中,所述预设策略可以包括:
若所述不允许所述MPTCP新子流建立的原因为所述第二终端当前的负载不小于第三阈值,则所述第一终端在第二预设时间之后向所述第二终端发送所述第二子流建立请求;
若所述不允许所述MPTCP新子流建立的原因为所述第一终端当前通过所述第二终端建立的MPTCP连接上的MPTCP子流个数不小于第四阈值,则所述第一终端在至少一个其它MPTCP子流结束后向所述第二终端发送所述第二子流建立请求。
示例性的,假设第一终端通过第二终端建立的MPTCP连接上的MPTCP子流个数最大不超过3个,第一终端A当前通过第二终端建立的MPTCP
连接上的MPTCP子流个数已经为3个,若要请求第二终端建立MPTCP新子流,那么由于此时第一终端A当前通过所述第二终端建立的MPTCP连接上的MPTCP子流个数不小于第四阈值(该示例中第四阈值为3),则该MPTCP子流的建立请求会被拒绝。
该场景下,现有技术中,由于第一终端A不知道为何新的MPTCP子流建立被拒绝而可能不再通过第二终端建立MPTCP新子流,即使后续某些MPTCP子流结束,第一终端A通过第二终端建立的MPTCP连接上的MPTCP子流个数小于第四阈值也不再通过第二终端建立新的MPTCP子流,这将导致第一终端A无法再充分的利用MPTCP的多路径功能。
本发明实施例中,第一终端A会接收第二终端返回的子流建立拒绝响应,该子流建立拒绝响应携带第二终端不允许MPTCP新子流建立的原因,该原因为所述第一终端A当前通过所述第二终端建立的MPTCP连接上的MPTCP子流个数不小于第四阈值。进而,所述第一终端A会在其它MPTCP子流结束后向所述第二终端发送第二子流建立请求。即,若后来第一终端A通过第二终端建立的MPTCP连接上的MPTCP子流个数小于第四阈值,则第一终端A可以通过第二终端建立MPTCP新子流,从而充分的利用MPTCP的多路径功能。
基于本发明实施例提供的MPTCP子流的建立方法,由于本发明实施例中,若不允许MPTCP新子流建立,第一终端会接收子流建立拒绝响应,该子流建立拒绝响应携带不允许MPTCP新子流建立的原因,进而第一终端在获知不允许MPTCP新子流建立的原因之后,可以根据预设策略重新发送子流建立请求。比如,若不允许MPTCP新子流建立的原因为MPTCP代理禁止第一终端使用当前接入点发起MPTCP子流,则第一终端停止在当前接入点向MPTCP代理发送子流建立请求,直至第一终端接入到新的接入点后可以向MPTCP代理发送子流建立请求。避免了现有技术中如果MPTCP子流建立失败,则第一终端再向同一个目的地址+端口号发起子流建立请求时,MPTCP子流无法建立成功,导致第一终端无法再充分的利用MPTCP的多路径功能的问题,使得即使MPTCP子流建立失败,则第一终端再向同一个目的地址+端口号发起子流建立请求时,MPTCP子流仍
可能建立成功,从而使得第一终端充分的利用MPTCP的多路径功能。
本发明实施例提供一种MPTCP子流的建立方法,如图8所示,所述方法包括:
S801、接收第一终端发送的子流建立请求,所述子流建立请求用于指示建立MPTCP新子流。
如上所述,第一终端为支持MPTCP的终端,例如:支持MPTCP的智能手机、支持MPTCP的平板电脑等。
S802、根据所述子流建立请求,确定是否允许MPTCP新子流建立。
S803、若确定不允许MPTCP新子流建立,向所述第一终端发送子流建立拒绝响应给所述第一终端,所述子流建立拒绝响应携带不允许所述MPTCP新子流建立的原因。
具体的,本发明实施例提供的MPTCP子流的建立方法的执行主体可以为上述方法实施例中所述的第二终端或MPTCP代理,本发明实施例对此不作具体限定。
当本发明实施例提供的MPTCP子流的建立方法的执行主体为上述方法实施例中所述的MPTCP代理时,如图9所示,步骤S801具体可以包括:
S801a、MPTCP代理接收第一终端发送的子流建立请求,所述子流建立请求用于指示MPTCP代理建立MPTCP新子流。
其中,本发明实施例中的MPTCP代理可以独立部署,也可以部署在如图3所示的现有的移动网络核心网的网络设备上,比如部署在PGW上或者部署在上行方向PGW后面的网络设备上,本发明实施例对此不作具体限定。
进一步的,步骤S802中,所述不允许所述MPTCP新子流建立的原因,可以包括:
所述MPTCP代理禁止所述第一终端使用当前接入点发起MPTCP子流;或者,
所述MPTCP代理当前的负载不小于第一阈值;或者,
所述第一终端当前通过所述MPTCP代理建立的MPTCP连接上的MPTCP子流个数不小于第二阈值。
当然,MPTCP代理不允许MPTCP新子流建立的原因还可能为其它,上述仅是示例性的提供几种可能的MPTCP代理不允许MPTCP新子流建立的原因,本发明实施例对MPTCP代理不允许MPTCP新子流建立的其它原因不作具体限定。
当本发明实施例提供的MPTCP子流的建立方法的执行主体为上述方法实施例中所述的第二终端时,如图10所示,步骤S801具体可以包括:
S801b、第二终端接收第一终端发送的子流建立请求,所述子流建立请求用于指示第二终端建立MPTCP新子流。
其中,本发明实施例中的第二终端可以支持MPTCP的智能手机、支持MPTCP的平板电脑等;也可以是MPTCP服务器,本发明实施例对此不作具体限定。
进一步的,步骤S802中,所述不允许所述MPTCP新子流建立的原因,可以包括:
所述第二终端当前的负载不小于第三阈值;或者,
所述第一终端当前通过所述第二终端建立的MPTCP连接上的MPTCP子流个数不小于第四阈值。
当然,第二终端不允许MPTCP新子流建立的原因还可能为其它,上述仅是示例性的提供几种可能的第二终端不允许MPTCP新子流建立的原因,本发明实施例对第二终端不允许MPTCP新子流建立的其它原因不作具体限定。
基于本发明实施例提供的MPTCP子流的建立方法,由于本发明实施例中,若不允许MPTCP新子流建立,会将不允许MPTCP新子流建立的原因发送给第一终端,从而使得第一终端在获知不允许MPTCP新子流建立的原因之后,可以根据预设策略发送子流建立请求。比如,若不允许MPTCP新子流建立的原因为MPTCP代理禁止第一终端使用当前接入点发起MPTCP子流,则第一终端停止在当前接入点向MPTCP代理发送子流建立请求,直至第一终端接入到新的接入点后可以向MPTCP代理发送子流建立
请求。避免了现有技术中如果MPTCP子流建立失败,则第一终端再向同一个目的地址+端口号发起子流建立请求时,MPTCP子流无法建立成功,导致第一终端无法再充分的利用MPTCP的多路径功能的问题,使得即使MPTCP子流建立失败,则第一终端再向同一个目的地址+端口号发起子流建立请求时,MPTCP子流仍可能建立成功,从而使得第一终端充分的利用MPTCP的多路径功能。
本发明实施例提供一种MPTCP子流的建立方法,具体以第一终端与MPTCP代理的交互为例进行说明,如图11所示,方法包括:
S1101、第一终端向MPTCP代理发送第一子流建立请求,所述第一子流建立请求用于指示MPTCP代理建立MPTCP新子流。
S1102、MPTCP代理接收子流建立请求,并根据子流建立请求,确定是否允许MPTCP新子流建立。
S1103、若MPTCP代理确定不允许MPTCP新子流建立,向第一终端发送子流建立拒绝,子流建立拒绝响应携带MPTCP代理不允许MPTCP新子流建立的原因。
S1104、第一终端接收子流建立拒绝响应。
S1105、第一终端根据MPTCP代理不允许MPTCP新子流建立的原因及预设策略,向MPTCP代理发送第二子流建立请求,所述第二子流建立请求用于指示MPTCP代理建立MPTCP新子流。
其中,MPTCP代理确定不允许MPTCP新子流建立的原因以及相应的预设策略具体可参考上述方法实施例中的描述,本发明实施例在此不再赘述。
可选的,本发明实施例提供一种MPTCP子流的建立方法,具体以第一终端与第二终端的交互为例进行说明,如图12所示,方法包括:
S1201、第一终端向第二终端发送子流建立请求,所述子流建立请求用于指示第二终端建立MPTCP新子流。
S1202、第二终端接收子流建立请求,并根据子流建立请求,确定是否允许MPTCP新子流建立。
S1203、若第二终端确定不允许MPTCP新子流建立,向第一终端发送子流建立拒绝响应,子流建立拒绝响应携带第二终端不允许MPTCP新子流建立的原因。
S1204、第一终端接收子流建立拒绝响应。
S1205、第一终端根据第二终端不允许MPTCP新子流建立的原因及预设策略,向第二终端发送第二子流建立请求,所述第二子流建立请求用于指示第二终端建立MPTCP新子流。
其中,第二终端确定不允许MPTCP新子流建立的原因以及相应的预设策略具体可参考上述方法实施例中的描述,本发明实施例在此不再赘述。
由于图11与图12对应的实施例是对上述实施例的具体描述,其所能达到的技术效果也可以参照上述描述,此处不再赘述。
本发明实施例提供一种第一终端130,如图13所示,所述第一终端130包括发送单元1301、接收单元1302。
所述发送单元1301,用于发送第一子流建立请求,所述第一子流建立请求用于指示建立多路径传输控制协议MPTCP新子流。
所述接收单元1302,用于接收子流建立拒绝响应,所述子流建立拒绝响应携带不允许所述MPTCP新子流建立的原因。
所述发送单元1301,还用于根据所述原因及预设策略,发送第二子流建立请求,所述第二子流建立请求用于指示建立MPTCP新子流。
一种可能的实现方式中,所述发送单元1301具体用于:
向MPTCP代理发送第一子流建立请求,所述第一子流建立请求用于指示所述MPTCP代理建立MPTCP新子流。
进一步的,所述不允许所述MPTCP新子流建立的原因,可以包括:
所述MPTCP代理禁止所述第一终端130使用当前接入点发起MPTCP子流;或者,
所述MPTCP代理当前的负载不小于第一阈值;或者,
所述第一终端130当前通过所述MPTCP代理建立的MPTCP连接上的
MPTCP子流个数不小于第二阈值。
相应的,所述预设策略可以包括:
若所述不允许所述MPTCP新子流建立的原因为所述MPTCP代理禁止所述第一终端130使用当前接入点发起MPTCP子流,则所述发送单元1301停止在当前接入点向所述MPTCP代理发送子流建立请求,直至所述第一终端130接入到新的接入点后向所述MPTCP代理发送所述第二子流建立请求;
若所述不允许所述MPTCP新子流建立的原因为所述MPTCP代理当前的负载不小于第一阈值,则所述发送单元1301在第一预设时间之后重新向所述MPTCP代理发送所述第二子流建立请求;
若所述不允许所述MPTCP新子流建立的原因为所述第一终端130当前通过所述MPTCP代理建立的MPTCP连接上的MPTCP子流个数不小于第二阈值,则所述发送单元1301在至少一个其它MPTCP子流结束后重新向所述MPTCP代理发送所述第二子流建立请求。
一种可能的实现方式中,所述发送单元1301具体用于:
向第二终端发送第一子流建立请求,所述第一子流建立请求用于指示所述第二终端建立MPTCP新子流。
进一步的,所述不允许所述MPTCP新子流建立的原因,可以包括:
所述第二终端当前的负载不小于第三阈值;或者,
所述第一终端130当前通过所述第二终端建立的MPTCP连接上的MPTCP子流个数不小于第四阈值。
相应的,所述预设策略可以包括:
若所述不允许所述MPTCP新子流建立的原因为所述第二终端当前的负载不小于第三阈值,则所述发送单元1301在第二预设时间之后可以向所述第二终端发送所述第二子流建立请求;
若所述不允许所述MPTCP新子流建立的原因为所述第一终端130当前通过所述第二终端建立的MPTCP连接上的MPTCP子流个数不小于第四阈值,则所述发送单元1301在至少一个其它MPTCP子流结束后重新向所述第二终端发送所述第二子流建立请求。
需要说明的是,在硬件实现上,上述发送单元1301可以采用发送器实现,上述接收单元1302可以采用接收器实现。其中,该发送器和接收器可以集成在一起构成收发器,本发明实施例对此不做限制。
具体的,通过本发明实施例提供的第一终端130进行MPTCP子流建立的方法可参考上述方法实施例的描述,本发明实施例在此不再赘述。
基于本发明实施例提供的第一终端,由于本发明实施例中,若不允许MPTCP新子流建立,第一终端会接收子流建立拒绝响应,该子流建立拒绝响应携带不允许MPTCP新子流建立的原因,进而第一终端在获知不允许MPTCP子流建立的原因之后,可以根据预设策略重新发送子流建立请求。比如,若不允许MPTCP新子流建立的原因为MPTCP代理禁止第一终端使用当前接入点发起MPTCP子流,则第一终端停止在当前接入点向MPTCP代理发送子流建立请求,直至第一终端接入到新的接入点后可以向MPTCP代理发送子流建立请求。避免了现有技术中如果MPTCP子流建立失败,则第一终端再向同一个目的地址+端口号发起子流建立请求时,MPTCP子流无法建立成功,导致第一终端无法再充分的利用MPTCP的多路径功能的问题,使得即使MPTCP子流建立失败,则第一终端再向同一个目的地址+端口号发起子流建立请求时,MPTCP子流仍可能建立成功,从而使得第一终端充分的利用MPTCP的多路径功能。
本发明实施例提供一种MPTCP子流的建立装置140,如图14所示,所述MPTCP子流的建立装置140包括:接收单元1401、确定单元1402、以及发送单元1403。
所述接收单元1401,用于接收第一终端发送的子流建立请求,所述子流建立请求用于指示建立MPTCP新子流。
所述确定单元1402,用于根据所述子流建立请求,确定是否允许MPTCP新子流建立。
所述发送单元1403,用于若所述确定单元1402确定不允许MPTCP新子流建立,向所述第一终端发送子流建立拒绝响应,所述子流建立拒绝响应携带不允许所述MPTCP新子流建立的原因。
一种可能的实现方式中,所述MPTCP子流的建立装置140为MPTCP代理;所述接收单元1401具体用于:
接收第一终端发送的子流建立请求,所述子流建立请求用于指示所述MPTCP代理建立MPTCP新子流。
进一步的,所述不允许所述MPTCP新子流建立的原因,包括:
所述MPTCP代理禁止所述第一终端使用当前接入点发起MPTCP子流;或者,
所述MPTCP代理当前的负载不小于第一阈值;或者,
所述第一终端当前通过所述MPTCP代理建立的MPTCP连接上的MPTCP子流个数不小于第二阈值。
一种可能的实现方式中,所述MPTCP子流的建立装置140为第二终端;所述接收单元1401具体用于:
接收第一终端发送的子流建立请求,所述子流建立请求用于指示第二终端建立MPTCP新子流。
进一步的,所述不允许所述MPTCP新子流建立的原因,包括:
所述第二终端当前的负载不小于第三阈值;或者,
所述第一终端当前通过所述第二终端建立的MPTCP连接上的MPTCP子流个数不小于第四阈值。
需要说明的是,在硬件实现上,上述发送单元1403可以采用发送器实现,上述接收单元1401可以采用接收器实现,上述确定单元1402可以采用处理器实现。其中,该发送器和接收器可以集成在一起构成收发器,本发明实施例对此不做限制。
具体的,通过本发明实施例提供的MPTCP子流的建立装置140进行MPTCP子流建立的方法可参考上述方法实施例的描述,本发明实施例在此不再赘述。
基于本发明实施例提供的MPTCP子流的建立装置,由于本发明实施例中,若MPTCP子流的建立装置不允许MPTCP新子流建立,会将不允许MPTCP新子流建立的原因发送给第一终端,从而使得第一终端在获知不允许MPTCP子流建立的原因之后,可以根据预设策略发送子流建立请求。比
如,若不允许MPTCP新子流建立的原因为MPTCP代理禁止第一终端使用当前接入点发起MPTCP子流,则第一终端停止在当前接入点向MPTCP代理发送子流建立请求,直至第一终端接入到新的接入点后可以向MPTCP代理发送子流建立请求。避免了现有技术中如果MPTCP子流建立失败,则第一终端再向同一个目的地址+端口号发起子流建立请求时,MPTCP子流无法建立成功,导致第一终端无法再充分的利用MPTCP的多路径功能的问题,使得即使MPTCP子流建立失败,则第一终端再向同一个目的地址+端口号发起子流建立请求时,MPTCP子流仍可能建立成功,从而使得第一终端充分的利用MPTCP的多路径功能。
本发明实施例提供一种第一终端150,如图15所示,所述第一终端150包括处理器1501、存储器1502、总线1503和通信接口1504。其中,处理器1501、存储器1502和通信接口1504之间通过总线1503连接并完成相互问的通信。
处理器1501可能为单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。
存储器1502可以为高速随机存取存储器1502(Random Access Memory,简称:RAM)存储器1502,也可以为非易失性存储器1502(non-volatile memory),例如至少一个磁盘存储器1502。
存储器1502用于存储计算机执行指令15021。具体的,计算机执行指令15021中可以包括程序代码。
当所述第一终端150运行时,处理器1501运行计算机执行指令15021,可以执行如图4、图5、图7任一方法实施例所述的MPTCP子流的建立方法流程。
由于本实施例提供的第一终端150能够用于执行上述方法,因此,其所能获得的技术效果也可以参照上述方法实施例的描述,此处不再赘述。
本发明实施例提供一种MPTCP子流的建立装置160,如图16所示,
所述MPTCP子流的建立装置160包括处理器1601、存储器1602、总线1603和通信接口1604。其中,处理器1601、存储器1602和通信接口1604之间通过总线1603连接并完成相互问的通信。
处理器1601可能为单核或多核中央处理单元,或者为特定集成电路,或者为被配置成实施本发明实施例的一个或多个集成电路。
存储器1602可以为RAM存储器1602,也可以为非易失性存储器1602(non-volatile memory),例如至少一个磁盘存储器1602。
存储器1602用于存储计算机执行指令16021。具体的,计算机执行指令16021中可以包括程序代码。
当所述MPTCP子流的建立装置160运行时,处理器1601运行计算机执行指令16021,可以执行如图8-10任一方法实施例所述的MPTCP子流的建立方法流程。其中,当执行如图9对应的方法实施例所述的MPTCP子流的建立方法流程时,所述MPTCP子流的建立装置160为MPTCP代理;当执行如图10对应的方法实施例所述的MPTCP子流的建立方法流程时,所述MPTCP子流的建立装置160为第二终端。
由于本实施例提供的MPTCP子流的建立装置能够用于执行上述方法,因此,其所能获得的技术效果也可以参照上述方法实施例的描述,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称:ROM)、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。