连接建立方法及相关设备
文献发布时间:2023-06-19 19:28:50
本申请是分案申请,原申请的申请号是201811595825.7,原申请日是2018年12月25日,原申请的全部内容通过引用结合在本申请中。
技术领域
本申请涉及通信技术领域,尤其涉及一种连接建立方法及相关设备。
背景技术
传输层(transport layer)是国际标准化组织(International Organizationfor Standardization,ISO)制定的开放式系统互联模型(Open System Interconnect,OSI)的第四层,该层的协议为应用进程提供端到端的通信服务。传输层是两台计算机经过网络进行数据通信时,第一个端到端的层次。传统的传输层协议仅支持单路径功能,即:一个传输层连接只能绑定一条端到端路径,用于数据传输。传输控制协议(TransmissionControl Protocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议,它完成OSI中的传输层所指定的功能。
随着互联网协议第6版(IPv6)的兴起,多地址主机(multihome host)变得越来越普及。多地址主机是指有多条路径连接到某一网络的主机。即使是目前广泛使用的互联网协议第4版(IPv4),多地址主机也越来越多了。从数据中心胖树(Fat-tree)网络架构下的服务器到具有4G、WiFi、3G、蓝牙等多种连接的智能手机,都是多地址主机。为了充分利用设备的多连接特性,采用新型的多径传输层协议已经成为当前的趋势。MPTCP(MultiPath TCP)是由互联网工程任务组(IETF)MultiPath TCP工作组研发的一种多径TCP协议,其目的是允许TCP连接使用多个路径来最大化信道资源使用。MPTCP与传统TCP协议向后兼容。MPTCP是一种利用多条路径并发传输的传输层协议。MPTCP是按顺序初始化多个连接,即:当一条通道按照三次握手的方式建立起来后,再按照四次握手(MPTCP JOIN)的方式建立其他的子通道。这些通道都会绑定于MPTCP会话(session),发送端的数据可以选择其中一条通道进行传输,或者通过调度器在多条通道上进行传输。
在上述方案中,设备采用缺省方式配置设备建链的初始路径,例如手机默认走WiFi路径作为首发路径。这种方案的缺陷在于在缺省初始连接无法建立的情况下,后续子连接将无法建立。因此,需要研究性能更好的传输层连接建立方法。
发明内容
本申请实施例第一方面提供了一种建立连接的方法及相关设备,用于提高建立连接的成功率以及保证建立的连接的传输性能。
本申请实施例第一方面提供了一种建立连接的方法,该方法用于所述连接的一个端节点,包括:获取至少两个可用路径各自的传输状态信息,其中所述至少两个可用路径中的每个可用路径的传输状态信息表示所述每个可用路径的传输性能,所述至少两个可用路径分别对应不同种类的网络;根据所述至少两个可用路径的传输状态信息,确定所述至少两个可用路径中传输性能较优的可用路径;使用所述传输性能较优的可用路径对应的网络建立所述连接。
端节点可以是终端,例如手机、笔记本电脑、平板电脑、可穿戴设备、个人数字助理等;也可以是服务器。由于可用路径与网络相对应,网络又与网络接口(networkinterface)相对应。可以理解,可用路径与网络接口相对应,即不同的可用路径对应于不同的网络接口。可选的,每个可用路径对应一个网络接口。可用路径的传输状态信息也就是网络接口的传输状态信息。由于网路接口与网络相对应,选择网络接口也就是选择网络。举例来说,LIE接口对应于LTE网络,WiFi接口对应于WiFi网络。连接(connection),用于发端(sender)与收端(reciever,)之间传输数据。传输是指双向的信息交互,也就是说,既包括发送,也包括接收。本申请实施例中,一个端节点对应发端,另一个端节点对应收端。一个连接可以对应网络拓扑中的多条路径(path),一个连接上可以传输多个流(flow)的报文。路径是发端(sender)与收端(reciever)之间的链路(link)。路径可以用四元组或者五元组来标识。例如,五元组包括源IP地址,源端口号,目的IP地址,目的端口号以及传输层协议名称。本申请中,可用路径(Available path)可以理解为网络接口,而不是链路(link)。
本申请实施例中,端节点根据可用路径的传输状态信息来从多条可用路径中确定一条传输性能较优的路径,进而与另一端节点建立一条连接;可以准确地确定一条传输性能较优的路径,实现简单。
在一个可选的实现方式中,所述至少两个可用路径中的每个可用路径的传输状态信息包括以下至少一种参数:信号强度,吞吐量,往返时延和建链成功率。
所述至少两个可用路径中的每个可用路径的传输状态信息还可以包括丢包率、排队时延、拥塞窗口值以及其他用于表征可用路径的传输性能的参数。所述至少两条可用路径中每条可用路径的传输状态信息可以包括相同种类的参数。端节点确定每条可用路径的传输性能的方式可以相同或不同。
在一个可选的实现方式中,所述连接为多路径连接,所述使用所述传输性能较优的可用路径对应的网络建立所述连接,包括:使用所述传输性能较优的可用路径对应的网络与所述连接的另一个端节点通信,以建立所述多路径连接的初始路径。
初始路径(initial path)是指初始连接的路径,例如多路径连接中首先建立的子流。子流(subflow)是在单个路径(path)上运行的TCP段(segment)的流,也是MP(multiplepath)连接的一部分。MP连接:通过(over)一个应用,在两个端节点间可以通信的一组子流,该组子流包括多个子流。其中,连接和应用的接口(socket)之间有一一映射。MP连接就是使用多个路径传输数据的连接,每个路径(即子流)可以使用不同的传输协议,例如路径使用TCP协议,则MP连接为MPTCP连接。子流的启动(start)和终止(terminate)与常规(regular)的TCP连接相似。本文中一条子流就对应一条路径。所述多路径连接可以是MPTCP连接。
在该实现方式中,根据至少两个可用路径的传输状态信息来选择一个传输性能较优的可用路劲,进而建立一个多路劲连接的初始路径;可以提高建立连接的成功率。
在一个可选的实现方式中,所述获取至少两个可用路径各自的传输状态信息是由所述端节点中一个应用下发的请求触发的。
可选的,所述端节点接收到所述应用下发的请求后,获取所述至少两个可用路径各自的传输状态信息,以从所述至少两个可用路径中选择一个传输性能较优的可用路径。可以理解,所述端节点不是实时或周期性获取各可用路径的传输状态信息,而是在接收到应用下发的请求后,获取各可用路径的传输状态信息;可以有效减少端节点的工作量,并及时获取到最新的传输状态信息。
在一个可选的实现方式中,所述至少两个可用路径的传输状态信息为所述至少两个可用路径中每个可用路径的信号强度,所述获取至少两个可用路径的传输状态信息,包括:检测所述至少两个可用路径各自的信号强度。
可选的,所述端节点获取所述至少两个可用路径中每个可用路径对应的网络接口接收的信号强度指示(Received Signal Strength Indication,RSSI);根据每个网络接口接收到的RSSI确定每个网络接口的信号强度;将每个网络接口的信号强度作为每个网络接口对应的可用路径的信号强度。
在该实现方式中,可以准确、快速地从多种可用路径中确定一条信号强度较高的可用路径,进而建立一条连接。
在一个可选的实现方式中,所述至少两个可用路径的传输状态信息为所述至少两个可用路径中每个可用路径的往返时延,所述获取至少两个可用路径的传输状态信息,包括:接收来自至少一个服务器的多个往返时延,所述多个往返时延中的每一个对应所述至少一个服务器与所述端节点已连接的路径或正连接的路径,所述多个往返时延对应的网络种类中,包括所述至少两个可用路径各自对应的网络的种类;根据所述多个往返时延,得到所述至少两个可用路径的往返时延。
往返时延(Round-robin Transmit Time,RTT)表示发送端(端节点)从发送数据开始,到接收到接收端(另一端节点)发送的对应该数据的接收确认消息(如ACK消息)的过程,所经历的时延。应理解,在一种实现方式下,接收端收到数据后便立即发送该数据对应的确认信息,其中,“立即”应理解为包括接收端从接收到数据直至发送确认消息的必要的处理时间。应理解,往返时延简写为RTT或者rtt都可以。例如在某些代码中,使用rtt表示。端节点确定每个可用路径的往返时延的方式相同。端节点可以确定一个可用路径的往返时延为该可用路径对应的至少一个子流的平均时延;也可以是该可用路径对应的至少一个子流对应的最大时延;还可以是该可用路径对应的至少一个子流对应的最小时延;还可以是端节点最近接收到的一个该可用路径对应的一个子流的时延。
在实现方式中,端节点可以准确、快速地确定各可用路径的往返时延,进而从多个可用路径中确定一个往返时延较低的可用路径。
在一个可选的实现方式中,所述至少两个可用路径中任一可用路径的往返时延携带在所述另一个端节点发送来的报文的头部的选项字段。
报文的头部的选项字段为预留字段,也就是报文中闲置的字段。在该实现方式中,利用选项字段携带子流的往返时延,可以有效利用报文的预留字段,不需要改变现有报文的格式,实现简单,兼容性强。
在一个可选的实现方式中,所述至少两个可用路径的传输状态信息为所述至少两个可用路径中每个可用路径的吞吐量,所述获取至少两条可用路径的传输状态信息,包括:
检测所述至少两个可用路径各自的吞吐量。
端节点可以实时或周期性检测所述至少两个可用路径各自的吞吐量。在实际应用中,端节点可以实时或周期性检测各可用路径对应的网络(网络接口)的吞吐量,将各可用路径对应的网络接口的吞吐量作为各可用路径的吞吐量。在实现方式中,端节点可以准确、快速地确定各可用路径的吞吐量,进而从多个可用路径中确定一个吞吐量较大的可用路径。
在一个可选的实现方式中,所述至少两个可用路径的传输状态信息为所述至少两个可用路径中每个可用路径的建链成功率,所述获取至少两条可用路径的传输状态信息,包括:统计所述至少两个可用路径中每个可用路径的建链成功率。
建链是指建立一条连接(链路)。在实现方式中,端节点可以准确、快速地确定各可用路径的建链成功率,进而从多个可用路径中确定一个建链成功率较高的可用路径;可以有效提高建链的成功率。
在一个可选的实现方式中,所述获取至少两个可用路径各自的传输状态信息之前,所述方法还包括:基于所述应用下发的请求,确定所述应用在所述端节点上曾建立过连接。
不同的应用对传输性能的要求很可能不同。举例来说,应用A对往返时延要求较高,对吞吐量要求较低;应用B对吞吐量要求较高,对往返时延要求较低。若端节点上的应用下发的请求首次触发建链请求,该端节点可能缺少来为该应用选择一条传输性能较优的可用路径的信息。
在该实现方式中,确定应用下发的请求非首次触发建链请求后,获取多个可用路径的传输状态信息并选择较优的可用路径;可以避免由于缺少相应信息导致确定一个传输性能较差的可用路径的问题。
在一个可选的实现方式中,所述方法还包括:接收另一应用下发的请求,所述另一应用下发的请求触发所述端节点建立另一连接的过程;在所述应用未在所述端节点上建立过连接的情况下,基于所述另一应用下发的请求,采用缺省路径对应的网络建立所述连接,所述缺省路径为所述至少两个可用路径中的任一可用路径。
在该实现方式中,在应用下发的请求首次触发建链请求的情况下,采用缺省路径对应的网络建立连接;可以避免由于缺少相应信息导致确定一个传输性能较差的可用路径的问题。
在一个可选的实现方式中,所述根据所述至少两个可用路径的传输状态信息,确定所述至少两个可用路径中传输性能较优的可用路径包括:在通过参考可用路径对应的网络建立连接失败的情况下,根据所述至少两个可用路径中除所述参考可用路径之外的可用路径的传输状态信息,确定所述至少两个可用路径中传输性能较优的可用路径;所述参考可用路径为所述至少两个可用路径中任一可用路径。
在该实现方式中,在通过一个可用路径建立连接失败后,从去除该可用路径的多个路径中重新确定一个传输性能较优的可用路径;可以提高建链的成功率。
在一个可选的实现方式中,所述根据所述至少两个可用路径的传输状态信息,确定所述至少两个可用路径中传输性能较优的可用路径包括:在通过参考可用路径对应的网络建立连接失败的情况下,采用第一路径选择方式根据所述至少两个可用路径的传输状态信息,确定所述至少两个可用路径中传输性能较优的可用路径;所述参考可用路径为采用第二路径选择方式根据所述至少两个可用路径的传输状态信息,确定所述至少两个可用路径中传输性能较优的可用路径;所述第一路径选择方式与所述第二路径选择方式不同。
在该实现方式中,通过结合多种路径选择方式来从多个可用路径中确定一个传输性能较优的可用路径,可以提高建链的成功率,实现简单。
在一个可选的实现方式中,所述方法还包括:接收路径设置指令;根据所述路径设置指令,设置所述端节点根据所述至少两个可用路径的传输状态信息,确定所述至少两个可用路径中传输性能较优的可用路径的方式。
在该实现方式中,用户可以根据自己的需求设备路径选择方式,以便于满足不同应用场景的需求,提高用户体验。
在一个可选的实现方式中,所述端节点保存有候选路径表,所述候选路径表包括所述至少两条可用路径与所述至少两条可用路径的传输状态信息之间的对应关系。
在该实现方式中,可以快速地获取各可用路径的传输状态信息。
本申请实施例第二方面提供了一种建立多路径连接的方法,该方法用于所述多路径连接的一个端节点,该方法包括:获取所述端节点中的至少两个网络接口各自对应的传输状态信息,其中所述至少两个网络接口中的每个网络接口的传输状态信息表示所述每个网络接口对应网络的传输性能,所述至少两个网络接口分别对应不同种类的网络;根据所述至少两个网络接口各自对应的传输状态信息,给所述多路径连接的初始路径配置所述至少两个网络接口各自对应的网络中传输性能较优的网络,所述初始路径对应所述多路径连接的初始子流;使用所述传输性能较优的网络建立所述初始路径。
在一个可选的实现方式中,所述至少两个网络接口中的每个网络接口的传输状态信息使用以下至少一种参数表征:信号强度,吞吐量,往返时延和建链成功率。
在一个可选的实现方式中,获取所述端节点中的至少两个网络接口各自对应的传输状态信息是由所述端节点中一个应用下发的请求触发的。
在一个可选的实现方式中,所述至少两个网络接口各自对应的传输状态信息为所述至少两个网络接口各自对应的往返时延,所述获取所述端节点中的至少两个网络接口各自对应的传输状态信息,包括:接收来自至少一个服务器的多个路径的往返时延,所述多个路径的一端为所述端节点,所述多个路径对应的网络的种类中,包括所述至少两个可用路径各自对应的网络的种类;
根据所述多个往返时延,得到所述至少两个可用路径的往返时延。
在一个可选的实现方式中,所述应用曾在所述端节点上建立过连接。
本申请实施例第三方面提供了一种通信方法,该方法用于一个连接的一个端节点,该方法包括:所述端节点向所述连接的另一个端节点发送所述连接的路径的往返时延,所述往返时延用于指示所述另一端节点在所述路径对应的网络的传输性能。
本申请实施例中,端节点向其连接的另一个端节点发送往返时延,以便于另一端节点确定该连接的路径的往返时延,实现简单。
在一个可选的实现方式中,所述往返时延承载于一个报文的头部的选项字段。
本申请实施例第四方面提供了一种端节点,包括:
信息获取单元,用于获取至少两个可用路径各自的传输状态信息,其中所述至少两个可用路径中的每个可用路径的传输状态信息表示所述每个可用路径的传输性能,所述至少两个可用路径分别对应不同种类的网络;
路径选择单元,用于根据所述至少两个可用路径的传输状态信息,确定所述至少两个可用路径中传输性能较优的可用路径;
连接建立单元,用于使用所述传输性能较优的可用路径对应的网络建立所述连接。
在一个可选的实现方式中,所述至少两个可用路径中的每个可用路径的传输状态信息包括以下至少一种参数:信号强度,吞吐量,往返时延和建链成功率。
在一个可选的实现方式中,所述连接为多路径连接;所述连接建立单元,具体用于使用所述传输性能较优的可用路径对应的网络与所述连接的另一个端节点通信,以建立所述多路径连接的初始路径。
在一个可选的实现方式中,所述获取至少两个可用路径各自的传输状态信息是由所述端节点中一个应用下发的请求触发的。
在一个可选的实现方式中,所述至少两个可用路径的传输状态信息为所述至少两个可用路径中每个可用路径的信号强度;所述信息获取单元,具体用于检测所述至少两个可用路径各自的信号强度。
在一个可选的实现方式中,所述至少两个可用路径的传输状态信息为所述至少两个可用路径中每个可用路径的往返时延;所述信息获取单元,具体用于接收来自至少一个服务器的多个往返时延,所述多个往返时延中的每一个对应所述至少一个服务器与所述端节点已连接的路径或正连接的路径,所述多个往返时延对应的网络种类中,包括所述至少两个可用路径各自对应的网络的种类;根据所述多个往返时延,得到所述至少两个可用路径的往返时延。
在一个可选的实现方式中,所述至少两个可用路径中任一可用路径的往返时延携带在所述另一个端节点发送来的报文的头部的选项字段。
在一个可选的实现方式中,所述至少两个可用路径的传输状态信息为所述至少两个可用路径中每个可用路径的吞吐量;所述信息获取单元,具体用于检测所述至少两个可用路径各自的吞吐量。
在一个可选的实现方式中,所述至少两个可用路径的传输状态信息为所述至少两个可用路径中每个可用路径的建链成功率;所述信息获取单元,具体用于统计所述至少两个可用路径中每个可用路径的建链成功率。
在一个可选的实现方式中,所述端节点还包括:确定单元,用于基于所述应用下发的请求,确定所述应用在所述端节点上曾建立过连接。
在一个可选的实现方式中,所述信息获取单元,还用于接收另一应用下发的请求,所述另一应用下发的请求触发所述端节点建立另一连接的过程;所述连接建立单元,还用于在所述应用未在所述端节点上建立过连接的情况下,基于所述另一应用下发的请求,采用缺省路径对应的网络建立所述连接,所述缺省路径为所述至少两个可用路径中的任一可用路径。
在一个可选的实现方式中,所述路径选择单元,具体用于在通过参考可用路径对应的网络建立连接失败的情况下,根据所述至少两个可用路径中除所述参考可用路径之外的可用路径的传输状态信息,确定所述至少两个可用路径中传输性能较优的可用路径;所述参考可用路径为所述至少两个可用路径中任一可用路径。
在一个可选的实现方式中,所述路径选择单元,具体用于在通过参考可用路径对应的网络建立连接失败的情况下,采用第一路径选择方式根据所述至少两个可用路径的传输状态信息,确定所述至少两个可用路径中传输性能较优的可用路径;所述参考可用路径为采用第二路径选择方式根据所述至少两个可用路径的传输状态信息,确定所述至少两个可用路径中传输性能较优的可用路径;所述第一路径选择方式与所述第二路径选择方式不同。
在一个可选的实现方式中,所述端节点还包括:接收单元,用于接收路径设置指令;
路径设置单元,用于根据所述路径设置指令,设置所述端节点根据所述至少两个可用路径的传输状态信息,确定所述至少两个可用路径中传输性能较优的可用路径的方式。
本申请实施例第五方面提供了另一种端节点,该端节点为多路径连接的一个端节点,包括:信息获取单元,用于获取所述端节点中的至少两个网络接口各自对应的传输状态信息,其中所述至少两个网络接口中的每个网络接口的传输状态信息表示所述每个网络接口对应网络的传输性能,所述至少两个网络接口分别对应不同种类的网络;
网络配置单元,用于根据所述至少两个网络接口各自对应的传输状态信息,给所述多路径连接的初始路径配置所述至少两个网络接口各自对应的网络中传输性能较优的网络,所述初始路径对应所述多路径连接的初始子流;
连接建立单元,用于使用所述传输性能较优的网络建立所述初始路径。
在一个可选的实现方式中,所述至少两个网络接口中的每个网络接口的传输状态信息使用以下至少一种参数表征:信号强度,吞吐量,往返时延和建链成功率。
在一个可选的实现方式中,所述至少两个网络接口各自对应的传输状态信息为所述至少两个网络接口各自对应的往返时延;所述信息获取单元,具体用于接收来自至少一个服务器的多个路径的往返时延,所述多个路径的一端为所述端节点,所述多个路径对应的网络的种类中,包括所述至少两个可用路径各自对应的网络的种类;根据所述多个往返时延,得到所述至少两个可用路径的往返时延。
在一个可选的实现方式中,获取所述端节点中的至少两个网络接口各自对应的传输状态信息是由所述端节点中一个应用下发的请求触发的。
在一个可选的实现方式中,所述应用曾在所述端节点上建立过连接。
本申请实施例第六方面提供了又一种端节点,该端节点为一个连接的端节点,包括:发送单元,用于向所述连接的另一个端节点发送所述连接的路径的往返时延,所述往返时延用于指示所述另一端节点在所述路径对应的网络的传输性能。
在一个可选的实现方式中,所述往返时延承载于一个报文的头部的选项字段。
本申请实施例第七方面提供了一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面至第三方面以及任一项可选的实现方式所述的方法。
本申请实施例第八方面提供了一种端节点,该端节点包括处理器、存储器以及通信接口;该存储器用于存储代码;该处理器可以调用该通信接口与其他端节点建立连接,该处理器通过读取该存储器中存储的该代码,以用于执行第一方面至第三方面以及任一项可选的实现方式所述的方法。
本申请实施例第九方面提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面至第三方面的任意一种方法的部分或全部步骤。
附图说明
图1为本申请实施例提供的一种系统架构示意图;
图2为本申请实施例提供的一种路径选择模块的结构示意图;
图3为本申请实施例提供的一种TCP连接示意图;
图4为本申请实施例提供的一种MPTCP连接示意图;
图5为本申请实施例提供的信息获取单元的结构示意图;
图6为本申请实施例提供的一种路径选择方法流程图;
图7为本申请实施例提供的另一种路径选择方法流程图;
图8为本申请实施例提供的一种流量不对称业务的数据传输流程示意图;
图9为本申请实施例提供的又一种路径选择方法流程图;
图10为本申请实施例提供的另一种路径选择方法流程图;
图11为本申请实施例提供的一种另一种路径选择方法流程图;
图12为本申请实施例提供的另一种路径选择方法流程图;
图13为本申请实施例提供的另一种路径选择方法流程图;
图14为本申请实施例提供的另一种路径选择方法流程图;
图15为本申请实施例提供的一种数据传输方法流程示意图;
图16为本申请实施例提供的一种端节点的结构示意图;
图17为本申请实施例提供的另一种端节点的结构示意图
图18为本申请实施例提供的另一种端节点的结构示意图;
图19为本申请实施例提供的又一种端节点的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请实施例方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。
本申请的说明书实施例和权利要求书及上述附图中的术语“第一”、“第二”、和“第三”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。“和/或”用于表示在其所连接的两个对象之间选择一个或全部。例如“A和/或B”表示A、B或A+B。术语“多个”是指两个或两个以上。
目前,采用传统的传输层协议(例如TCP、MPTCP等)建立传输层连接时,所有连接信息(信道,目的IP地址,多径时的主路径选择等)都是终端的系统预配置的。终端采用缺省方式建立传输层连接,即采用缺省配置建立传输层连接,而不会考虑各路径的传输性能。终端采用系统预配置的方式选择路径无法实时评估各个路径的真实情况,例如终端到服务器实时的往返时延以及各个路径的吞吐量等,这就导致选择的路径很可能不能满足传输需求。本申请提供了根据多条可用路径的传输状态信息来选择一条传输性能较优的路径的方案。一条可用路径的传输状态信息可以包括该可用路径的吞吐量、往返时延、信号强度以及丢包率等中的至少一项。本申请中的终端可以是手机、平板电脑、笔记本电脑、个人数字助理、可穿戴设备、个人计算机等需要建立传输层连接的设备。下面详细介绍本申请提供的连接建立方法以及实施该方法的终端。
图1为本申请实施例提供的一种系统架构示意图。如图1所示,101表示终端(端节点),102表示服务器(另一端节点),103表示终端101和服务器102之间的一条传输层连接(前序连接)。如图1所示,终端101具备“建链路径选择”功能,即终端101在采用传输层协议与服务器102建立传输层连接之前,根据多条可用路径的传输状态信息来选择一条传输性能较优的(主)路径,进而建立新的传输层连接。对于TCP、用户数据报协议(User DatagramProtocol,UDP)等单路径协议来说,终端101是选择路径,进而建立一条传输层连接,例如TCP连接。对于MPTCP这种多径协议来说,终端101是选择主路径。主路径也可以称为初始路径或主链。可选的,终端101中的一个独立的功能模块来实现“建链路径选择”功能。可选的,终端101中实现“建链路径选择”功能的功能模块与实现传输层协议的功能模块集成在一起。举例来说,终端101中的中央处理器(Central Processing Unit,CPU)运行的代码可以实现“建链路径选择”功能以及传输层协议。图1中的终端101和服务器102可以采用如下操作以建立一条传输层连接:(1)、终端101根据目标应用发起的应用请求,生成目标建链请求并向路径选择模块发送。该目标应用可以是终端101上运行的任一应用。该目标建链请求用于请求终端101建立至少一条传输层连接。路径选择模块可以是终端101中的一个独立的功能模块,用于实现“建链路径选择”功能。(2)、路径选择模块获取多条可用路径的传输状态信息。(3)、路径选择模块根据多个可用路径的传输状态信息,选择该多个可用路径中一条传输性能较优的目标可用路径并向传输层协议栈发送该目标可用路径的标识。(4)、采用传输层协议通过目标可用路径与服务器102建立一条传输层连接。本申请提供的连接建立方法,可以实时或接近实时的获取多条可用路径的传输状态信息,并根据获取的传输状态信息来从该多条可用路径中选择一条传输性能较优的路径。由于一条路径的传输性能在短时间内不会发生较大的变化,因此可以根据一条路径在最近一段时间的传输性能来预测该路径在未来一段时间内的传输性能。本申请中,可用路径对应于网络接口,例如LTE接口、WiFi接口等。举例来说,终端的两条可用路径分别对应LTE接口和WiFi接口,从这两条路径中选择一条传输性能较优的路径就是选择LTE接口和WiFi接口中传输性能较好的接口,以便于建立传输性能较优的传输层连接。
图1未详细介绍终端101如何实现“建链路径选择”功能,下面结合终端101中实现建链路径选择功能的部件来介绍如何实现“建链路径选择”功能。图2为本申请实施例提供的一种路径选择模块的结构示意图。如图2所示,路径选择模块20包括信息获取单元201和路径选择单元202。信息获取单元201,用于获取与M条可用路径一一对应的M组传输状态信息。路径选择单元202,用于根据与M条可用路径一一对应的M组传输状态信息,确定该M条可用路径中一条传输性能较好的目标可用路径。这M组传输状态信息中任一组传输状态信息包括至少一项用于表征该任一组传输状态参数对应的一条可用路径的传输性能的参数。任一可用路径的传输状态信息包括以下至少一项:所述任一可用路径的信号强度、所述任一可用路径的吞吐量、所述任一可用路径的往返时延、所述任一可用路径的建链成功率。任一可用路径的传输状态信息还可以包括其他参数,本申请不做限定。下面介绍信息获取单元201获取可用路径的传输状态信息的方式。
图3为本申请实施例提供的一种TCP连接示意图。图3示出了应用、TCP连接以及网络接口(图中是指WiFi,LTE,其它的如5G)的对应关系;其中,WiFi对应一条可用路径,LTE对应另一条可用路径。可以理解,图3中的终端可以同时有多个应用在运行,1个应用在运行过程中可以建立多个TCP连接,每个TCP连接可以搭建在不同的网络接口上。图4为本申请实施例提供的一种MPTCP连接示意图。图4示出了应用、MPTCP连接以及网络接口(图中是指WiFi,LTE,其它的如4G、5G等)的对应关系;其中,WiFi对应一条可用路径,LTE对应一条可用路径。如图4所示,终端可以同时有多个应用在运行,其中1个应用在运行过程中可以建立多个MPTCP连接,每个MPTCP连接可以有至少2个子流,每个子流搭建在不同的网络接口上。每个子流为一个传输层连接。图3和图4可以理解为终端接收到一个新的建链请求时已有的传输层连接(传输层连接)。终端可以根据接收到建链请求时已有的传输层连接的传输状态来确定各可用路径的传输状态。举例来说,终端可以检测各传输层连接的往返时延(Round TripTime,RTT)、网络接口的吞吐量等。表1示出了终端(例如手机)可以获取的各信息以及获取各信息的方式。应理解,这里只是用Android手机作为一种示例,而不应理解为终端仅可以是Android手机。
表1
/>
终端可以根据表1中的部分或全部信息来从多条可用路径中选择一条传输性能较好的目标可用路径,进而建立一条新的传输层连接。
前面介绍了如何获取可用路径的传输状态信息的方式,下面介绍如何从多条可用路径中选择一条传输性能较优的目标可用路径的方式。
终端的M条可用路径中任一可用路径的传输状态信息包括以下至少一项:所述任一可用路径的信号强度、所述任一可用路径的吞吐量、所述任一可用路径的往返时延、所述任一可用路径的建链成功率。该M条可用路径中任一可用路径对应一组传输状态信息。终端采用相同的方式确定各条可用路径的传输性能,该终端可以采用以下方式从多条候选连接中选出一条传输性能较好的目标可用路径,进而建立一条初始传输层连接。
方式一、终端根据可用路径的信号强度选择一条传输性能较优的目标可用路径。
所述任一可用路径的信号强度可以为终端101最近一次检测到的所述任一可用路径对应的网络接口的信号强度;终端101周期性或实时检测所述任一可用路径对应的网络接口的信号强度;所述任一可用路径的传输性能与所述任一可用路径的信号强度正相关。在实际应用中,终端101可以实时或周期性监测各可用路径对应的网络接口的信号强度,并将最近一次监测到的每个网络接口的信号强度作为该网络接口对应的可用路径的信号强度。举例来说,若终端检测到的WiFi接口的信号强度大于LTE接口的信号强度,则该终端通过WiFi接口建立一条传输层连接,即通过WiFi建立一条新的传输层连接。所示信号强度的指示可以是网络接口接收的信号强度指示(Received Signal Strength Indication,RSSI)。
方式二、终端根据可用路径的吞吐量选择一条传输性能较优的目标可用路径。
所述任一可用路径的吞吐量可以为终端101在接收到建链请求之前的第一时长内监测到的所述任一可用路径对应的网络接口的最大吞吐量;所述任一可用路径的传输性能与所述最大吞吐量正相关。所述第一时长可以是100毫秒、1秒、3秒、10秒等。在实际应用中,终端101可以实时或接近实时地监测各可用路径对应的网络接口的吞吐量,并将每个网络接口在接收到建链请求(目标建链请求)之前的第一时长内的最大吞吐量作为该网络接口对应的可用路径的吞吐量。举例来说,终端101监测LTE接口和WiFi接口的吞吐量,若LTE接口在接收到建链请求之前的3秒内的最大吞吐量大于WiFi接口在接收到该建链请求之前的3秒内的最大吞吐量,则终端101通过该LTE接口建立一条传输层连接,否者,终端101通过该WiFi接口建立一条传输层连接。
终端中的信息获取单元201可以理解为在终端的系统后台运行的一个带宽探测器,如图5所示,该信息获取单元201包括:流量监控子单元501、可用路径管理子单元502、时钟控制子单元503。流量监控子单元501,用于实时或周期性的监测M个可用路径对应的M个网络接口的吞吐量以及统计有效时间窗口内M个可用路径的历史最大吞吐量。有效时间窗口由时钟控制子单元503进行管理,该有效时间窗口对应于终端在接收到建链请求之前的第一时长。如果流量监控子单元501统计的某个可用路径的历史最大吞吐量不在有效时间窗口内,则该最大吞吐量无效。例如,终端上有应用A和应用B,如果在有效时间窗口内(例如,10分钟,依据是用户移动的行为具有一定的确定性,比如在家里和公司)两个应用分别在LTE路径和WiFi路径上的最大吞吐量为5Mbps和7Mbps,则流量监控子单元501向信息获取单元201(带宽探测器)的反馈结果为:WiFi路径的吞吐量高于LTE路径的吞吐量。可用路径管理子单元502,用于将流量监控子单元501在有效时间窗口内监控到有效吞吐量记录的路径添加至可用路径表以及将流量监控子单元501在有效时间窗口内未监控到有效吞吐量记录的路径从该可用路径表中删除。也就是说,如果在有效时间窗口内流量监控子单元501在某条路径上获得有效的吞吐量记录,则可用路径管理模块把该路径加入到可用路径表中;如果流量监控子单元501未在某条路径上获得有效的吞吐量记录,则可用路径管理模块从可用路径表中删除该路径。路径选择模块可以根据可用路径表中的各可用路径在有效时间窗口内的最大吞吐量,选择一条吞吐量最大的可用路径。若可用路径表中的可用路径数小于2,则采用其他方式从多条可用路径中选择一条传输性能较优的路径。
图6为本申请实施例提供的一种路径选择方法流程图。如图6所示,该方法包括:
601、终端根据来自应用的应用请求,生成一个建链请求。
该建链请求用于请求建立至少一个传输层连接。
602、终端获取M条可用路径的吞吐量。
终端获取M条可用路径的吞吐量可以是终端中的信息获取单元201监测M条可用路径对应的M个网络接口的吞吐量,以在接收到建链请求之前的第一时长内监测到的各网络接口的最大吞吐量作为各网络接口对应的可用路径的吞吐量。举例来说,一条可用路径为WiFi,终端将WiFi接口在接收到建链请求之前的第一时长内的最大吞吐量作为该条可用路径的吞吐量。
603、终端根据M条可用路径的吞吐量,确定该M条可用路径中一条传输性能较优的目标可用路径。
目标可用路径可以是该M条可用路径中吞吐量最大的可用路径,也可以是该M条可用路径中除吞吐量最小的一条可用路径之外的任一条可用路径。可选的,目标可用路径的吞吐量大于该应用请求要求的吞吐量且在该M条可用路径中该目标可用路径的吞吐量与该应用请求要求的吞吐量的差值最小。应理解,终端可以采用其他方式根据各可用路径的吞吐量来选择一条可用路径以建立传输层连接,本申请不做限定。
604、终端以目标可用路径为主路径(或叫“初始路径”)建立一条MPTCP连接。
604可以替代为以目标可用路径建立一条TCP连接,可以替代为以目标可用路径采用其他传输层协议建立一条传输层连接。
图7为本申请实施例提供的另一种路径选择方法流程图。如图7所示,该方法包括:
701、终端根据来自应用的应用请求,生成一个建链请求。
702、终端获取LTE的吞吐量和WiFi的吞吐量。
可以理解,LTE为一条可用路径,WiFi为一条可用路径,终端需要从这两条可用路径中选择一条传输性能较优的路径以建立MPTCP连接或TCP连接。
703、终端判断WiFi的吞吐量是否低于LTE的吞吐量。
若是,执行704;否则,执行705。
704、终端以LTE为主路径建立MPTCP连接。
705、终端以WiFi为主路径建立MPTCP连接。
可以理解,吞吐量为影响网络传输性能的一项重要参数,一条可用路径的吞吐量与其传输性能正相关。终端根据各可用路径的吞吐量来比较各可用路径的传输性能,可以准确、快速地选择一条传输性能较优的路径,实现简单。
方式三、终端根据可用路径的往返时延选择一条传输性能较优的目标可用路径。
所述任一可用路径的往返时延可以为终端101通过所述任一可用路径已建立的至少一条传输层连接中参考连接的往返时延;其中,终端101最近接收到所述至少一条传输层连接中所述参考连接的往返时延;所述任一可用路径的传输性能与所述参考连接的往返时延负相关。终端101通过所述任一可用路径已建立的至少一条传输层连接可以为终端101在在接收到建链请求时通过所述任一可用路径建立的全部传输层连接。举例来说,终端101通过WiFi接口建立了10条传输层连接(子流也是传输层连接),终端101最近确定的这10条传输层连接中的一条传输层连接的往返时延为该WiFi接口对应的可用路径的往返时延。终端可以向服务器发送时延通知请求以获得该终端与该服务器之间的N条传输层连接的往返时延。该时延通知请求用于请求服务器向终端发送该终端与该服务器之间的N条传输层连接的往返时延,N为大于0的整数。服务器可以专门发送一条信息以携带传输层连接的往返时延,也可以在发送的数据中顺便携带传输层连接的往返时延。终端在向服务器发送时延通知请求后,接收该服务器发送的参考连接的往返时延,该参考连接的往返时延可以携带在服务器向终端发送的信息的头部的选项字段(option字段)。该参考连接为终端与该服务器之间的任一条传输层连接。
对于下载这种流量不对称业务,可以根据各可用路径的RTT选择一条传输性能较优的目标可用路径。每条传输层连接的RTT由数据发送方(服务器)计算,通过数据头部的选项字段(TCP option)传递给数据接收方(终端)。图8为HTTP下载这种流量不对称业务的数据传输流程示意图,即:网络流量主要是数据发送方(服务器)发送,数据接收方(终端)仅发送确认消息。图8中的ACK是指确认消息。在这种应用场景中,服务器可以计算各条传输层连接的往返时延,并将计算得到的往返时延携带在向终端发送的数据中。
图9为本申请实施例提供的又一种路径选择方法流程图。如图9所示,该方法包括:
901、终端获取M条可用路径的往返时延。
902、终端根据M条可用路径的往返时延,确定该M条可用路径中一条传输性能较优的目标可用路径。
目标可用路径可以该M条可用路径中往返时延最小的可用路径,也可以是该M条可用路径中除往返时延最大的一条可用路径之外的任一条可用路径。应理解,终端可以采用其他方式根据各可用路径的往返时延来选择一条可用路径以建立传输层连接,本申请不做限定。
903、终端以目标可用路径为主路径建立一条MPTCP连接。
903可以替代为以目标可用路径建立一条TCP连接,可以替代为以目标可用路径采用其他传输层协议建立一条传输层连接。例如终端采用三次握手的方式建立一条传输层连接(TCP连接)。
图10为本申请实施例提供的另一种路径选择方法流程图。如图10所示,该方法包括:
1001、终端获取LTE的往返时延和WiFi的往返时延。
可以理解,LTE为一条可用路径,WiFi为一条可用路径,终端需要从这两条可用路径中选择一条传输性能较优的路径以建立MPTCP连接或TCP连接。
1002、终端判断WiFi的往返时延是否低于LTE的往返时延。
若是,执行1003;否则,执行1004。
1003、终端以WiFi为主路径建立MPTCP连接。
1004、终端以LTE为主路径建立MPTCP连接。
可以理解,往返时延为影响网络传输性能的一项重要参数,对于时延要求较高的数据传输场景来说尤为重要。因此在一些数据传输场景中,可以利用往返时延来评估各可用路径的传输性能。终端根据各可用路径的往返时延来比较各可用路径的传输性能,可以准确、快速地选择一条传输性能较优的路径,实现简单。
方式四、终端根据可用路径的建链成功率选择一条传输性能较优的目标可用路径。
所述任一可用路径的建链成功率可以为终端101在接收到建链请求之前的第二时长内通过所述任一候选连接建立传输层连接的成功率;所述任一可用路径的传输性能与所述任一可用路径的建链成功率正相关。所述任一可用路径的建链成功率可以是终端101在接收到建链请求之前的第二时长内通过所述任一候选连接建立传输层连接的成功次数(建链成功次数)与总建链次数(建链成功次数和建链失败次数之和)的比值。所述目标可用路径可以是在接收到建链请求之前的第二时长内建链成功率最高的可用路径;也可以是在该第二时长内无失败建链记录的可用路径。可以理解,一条可用路径的建链成功率越高,该可用路径的传输性能越好。第二时长可以是1秒、2秒、10秒、30秒等。在实际应用中,终端101可以记录通过各可用路径建立传输层连接的时间以及是否成功建立传输层连接的情况。通过这种方式,可以有效提高建立传输层连接的成功率。
方式五终端根据可用路径的拥塞
方式六终端根据可用路径的多项传输参数来选择一条传输性能较优的目标可用路径。
终端可以根据可用路径的吞吐量、往返时延、信号强度、建链成功率等传输参数中的两项或两项以上的加权和来选择一条传输性能较优的目标可用路径。举例来说,终端计算任一可用路径的传输性能的公式如下:
S=Th×A+RTT×B;
其中,S表示该任一可用路径的传输性能,一条可用路径计算得到的S越大表示其传输性能越好;TH为该任一可用路径的吞吐量,RTT为该任一可用路径的往返时延,A和B均为系统参数。终端可以通过计算多项传输参数的加权的方式以及其他方式来综合多项传输参数来确定各可用路径的传输性能的优劣,进而选择一条传输性能较优的可用路径。可选的,A和B的取值取决于应用对传输性能的需求。也就是说,对应传输性能要求不同的应用来说,计算可用路径的传输性能的公式不同,即A和B的取值不同。举例来说,对吞吐量要求较高的应用来说,A较大,B较小,这样吞吐量为影响可用路径的传输性能的主要因素。又举例来说,对往返时延要求较高的应用来说,A较小,B较大,往返时延为影响可用路径的传输性能的主要因素。在实际应用中,终端可以根据应用要求的传输性能指标(例如,吞吐量、往返时延等)来设置A和B的值,以便于确定一条可以满足该应用的数据传输要求的可用路径,进而建立一条传输性能较优的连接。
需要强调,终端是在初始建链时,采用上述五种方式从多条可用路径中选择一条传输性能较优的可用路径,而不是在已有主路径(主链)的基础上建立一条子流时选择一条可用路径。
前述实施例介绍了如何从多条可用路径中选择一条传输性能较优的可用路径的方式,下面介绍如何结合缺省方式来选择一条传输性能较优的可用路径的方式。
终端在首次为目标应用建立一条传输层连接时,可以采用缺省路径建立一条传输层连接,后续每次为该目标应用建立传输层连接时根据多条可用路径的传输状态信息来选择一条传输性能较优的目标可用路径。图11为本申请实施例提供的一种另一种路径选择方法流程图,如图11所示,该方法可包括:
1101、终端获取目标应用的应用请求。
该目标应用为该终端上运行的任一应用。
1102、终端根据应用请求,生成目标建链请求。
该目标建链请求用于请求建立至少一条传输层连接。
1103、终端判断目标建链请求是否为目标应用对应的首个建链请求。
若是,执行1105;否则,执行1104。
1104、终端从多条可用路径中选择一条传输性能较优的目标可用路径。
终端可以启动“建链路径选择”功能来从多条可用路径中选择一条传输性能较优的目标可用路径。终端可以采用前述实施例介绍的任一种方式来选择目标可用路径。1105可以理解为执行建链路径选择。
1105、终端获取缺省路径。
缺省路径可以理解为终端预先配置的路径。
1106、终端通过目标可用路径或缺省路径建立一条传输层连接。
可选的,终端中的信息获取单元201收集建链成功和建链失败的信息,以便于为路径选择单元202从多条可用路径中选择一条传输性能较优的路径提供参考数据。
本申请实施例中,终端在首次为目标应用建立一条传输层连接时,获取的传输状态信息可能较少,采用缺省路径建立传输层连接,可以避免选择一条传输性能较差的可用路径。
终端可以在每次建链时,都进行路径选择。如果选择的可用路径建链失败,则收集信息,重新一条新的可用路径,通过新的可用路径建链。图12为本申请实施例提供的另一种路径选择方法流程图,如图12所示,该方法可包括:
1201、终端根据应用请求,生成目标建链请求。
1202、终端执行建链路径选择。
终端可以采用前面任一种路径选择方式从多条可用路径中选择一条传输性能较优的目标可用路径。
1203、判断通过目标可用路径建立传输层连接是否成功。
若是,执行1204;否则,终端中的信息获取单元201收集建链失败信息,以便于路径选择单元201重新选择一条不同于该目标可用路径的可用路径。
1204、通过新建立的传输层连接传输数据。
本申请实施例中,终端建链失败时,收集建链失败信息进而重新选择一条新的可用路径,可以大大提高建链的成功率。
终端在首次为目标应用建立一条传输层连接时,可以按照缺省路径建立一条传输层连接,如果缺省路径建链失败,则收集信息,重新一条可用路径,在新选择的可用路径上建链。图13为本申请实施例提供的另一种路径选择方法流程图,如图13所示,该方法可包括:
1301、终端获取目标应用的应用请求。
1302、终端根据应用请求,生成目标建链请求。
1303、终端判断目标建链请求是否为目标应用对应的首个建链请求。
若是,执行1305;否则,执行1304。
1304、终端执行建链路径选择以得到目标可用路径。
1305、终端获取缺省路径。
1306、判断通过目标可用路径建立传输层连接是否成功。
若是,执行1307;否则,终端中的信息获取单元201收集建链失败信息,以便于路径选择单元201重新选择一条不同于该目标可用路径的可用路径。也就是说,终端在通过目标可用路径建立传输层连接失败后,通过M条可用路径中除该目标可用路径之外的一条可用路径建立一条传输层连接。可以理解,终端当前选择的一条可用路径建链失败后,从除去该条可用路径之外的可用路径中重现选择一条可用路径以建立传输层连接。
1307、通过新建立的传输层连接传输数据。
本申请实施例中,终端建链失败时,收集建链失败信息进而重新选择一条新的可用路径,可以大大提高建链的成功率。
在实际应用中,终端可以结合多种路径选择方式来从多种可用路径中选择一条传输性能较优的目标可用路径。图14为本申请实施例提供的另一种路径选择方法流程图,如图14所示,该方法可包括:
1401、终端根据应用请求,生成建链请求。
1402、终端采用第一路径选择方式从多条可用路径中选择一条传输性能较优的路径,得到目标可用路径。
该第一路径选择方式可以是前面提到的任一种路径选择方式。举例来说,第一路径选择方式可以根据各可用路径的吞吐量选择一条传输性能较优的可用路径。
1403、判断通过目标可用路径建链是否成功。
若是,执行1404;否则,执行1405。
1404、通过新建立的传输层连接传输数据。
1405、终端采用第二路径选择方式从多条可用路径中选择一条传输性能较优的路径,得到参考可用路径。
该第二路径选择可以采用前面提到的多种路径选择方式中除第一路径选择方式之外的任一种路径选择方式。举例来说,终端首先采用前面提出的方式一来从多条可用路径中选择一条可用路径,若该终端通过该条可用路径建链失败,则采用前面提到的方式三来重新选择一条可用路径。应理解,图14仅仅是一种举例,通过组合多种路径选择方式来从多条可用路径中选择一条可用路径的方式均为本申请所要求保护的方案。由于组合的方式太多,这里不再一一举例。
本申请实施例中,终端的路径选择方式,即终端的“建链路径选择”功能选择传输性能较优的一条可用路径的规则,可以是终端预先配置的,也可以由用户根据需要进行设置和调整;还可以由专业人员通过终端提供的对外接口来调整。终端可以提供给用户多种路径选择方式,用户可以根据需要选择一种路径选择方式,并可以随时调整设置。举例来说,用户在利用终端看视频时,可以设置该终端利用前面介绍的方式二来选择路径;在玩在线游戏时可以设置该终端利用前面介绍的方式三来选择路径。终端可以提供一个用于更新路径选择方式的对外接口,专业人员可以通过该对外接口不断优化该终端的路径选择方式。
前述实施例未详细介绍路径选择、建链以及数据传输的完整过程,下面以MPTCP为例介绍应用客户端(终端)和应用服务器进行数据传输的方法流程。图15为本申请实施例提供的一种数据传输方法流程示意图,该方法可包括:
1501、应用客户端接收到用户请求。
该用户请求对应于前面的应用请求,用于请求建立至少一条传输层连接。应用客户端即终端。举例来说,用户启动终端上的视频应用就可以理解为该终端接收到一个用户请求。
1502、应用客户端发送建链请求至路径选择模块。
终端实现“建链路径选择”功能的协议可以与MPTCP协议栈集成在一起,也可以不集成在一起。
1503、路径选择模块根据缺省配置选择主路径。
终端采用缺省路径作为主路径。1503可以替代为路径选择模块根据配置的路径选择方式(建链规则)选择主路径。
1504、路径选择模块返回路径选择结果至MPTCP协议栈;
1505、MPTCP协议栈完成应用客户端与应用服务器之间的MPTCP连接建立,包括建立主路径与子路径。
1506、数据发送方(应用服务器)计算子流1RTT。
数据发送方计算子流1RTT包括以下流程:(1)应用服务器通过子流1发送数据至应用客户端;(2)应用服务器记录子流1数据包的传输时间戳;(3)应用客户端返回数据确认(ACK消息);(4)应用服务器根据返回数据确认时间计算子流1RTT:RTT=客户端返回数据确认时间戳-子流1数据包的传输时间戳;(5)应用服务器返回子流1RTT至应用客户端。该RTT传输可以通过新增TCP Option(TCP协议中一个新增的参数)在传输层中承载。
1507、数据发送方(应用服务器)计算子流2RTT。
应用服务器计算子流2RTT的方式与计算子流1RTT的方式相同。
1508、应用客户端接收到新用户请求。
1509、应用客户端发送建链请求至路径选择模块。
1510、路径选择模块选择RTT小的路径作为主路径。
路径选择模块可以采用前面提到任一种路径选择方式选择一条路径作为主路径。
1511、路径选择模块返回路径选择结果至MPTCP协议栈。
1512、MPTCP协议栈完成应用客户端与应用服务器建链。
1513、数据发送方计算子流1RTT。
1514、数据发送方计算子流2RTT。
1506、1507、1513、1514所示的“数据发送方计算RTT”的方法也可以为:(1)数据发送方发送数据给数据接收方,其中包括发送时间戳(timestamp);(2)数据接收方返回确认消息(ACK消息),同时把接收到的时间戳(timestamp)返回给数据发送方;(3)数据发送方根据确认消息中的时间戳,对比接收到确认消息的时间,计算RTT。这样可以避免数据发送方保存数据发送时间戳。
图16为本申请实施例提供的一种端节点的结构示意图。如图16所示,该端节点包括:
信息获取单元201,用于获取至少两个可用路径各自的传输状态信息,其中所述至少两个可用路径中的每个可用路径的传输状态信息表示所述每个可用路径的传输性能,所述至少两个可用路径分别对应不同种类的网络;
路径选择单元202,用于根据所述至少两个可用路径的传输状态信息,确定所述至少两个可用路径中传输性能较优的可用路径;
连接建立单元1601,用于使用所述传输性能较优的可用路径对应的网络建立所述连接。
在一个可选的实现方式中,所述端节点还包括:接收单元,用于接收路径设置指令;
路径设置单元,用于根据所述路径设置指令,设置所述端节点根据所述至少两个可用路径的传输状态信息,确定所述至少两个可用路径中传输性能较优的可用路径的方式。
图16中的端节点可以实现前述实施例中任一数据传输方法以及路径选择方法。
图17为本申请实施例提供的一种端节点的结构示意图,如图17所示,该端节点包括:
信息获取单元201,用于获取所述端节点中的至少两个网络接口各自对应的传输状态信息,其中所述至少两个网络接口中的每个网络接口的传输状态信息表示所述每个网络接口对应网络的传输性能,所述至少两个网络接口分别对应不同种类的网络;
网络配置单元1701,用于根据所述至少两个网络接口各自对应的传输状态信息,给所述多路径连接的初始路径配置所述至少两个网络接口各自对应的网络中传输性能较优的网络,所述初始路径对应所述多路径连接的初始子流;
连接建立单元1702,用于使用所述传输性能较优的网络建立所述初始路径。
图17中的端节点可以实现前述实施例中任一数据传输方法以及路径选择方法。
图18为本申请实施例提供的另一种端节点,如图18所示,该端节点包括:
发送单元1801,用于向所述连接的另一个端节点发送所述连接的路径的往返时延,所述往返时延用于指示所述另一端节点在所述路径对应的网络的传输性能。可选的,所述往返时延承载于一个报文的头部的选项字段。可选的,图18中的端节点为一个服务器。
图19描述了本申请实施例提供的终端的结构示意图。该终端1900包括:至少一个处理电路1901,通信接口1904,通信接口1904包括至少一个物理网卡,存储介质1905,至少一个通信总线1902。通信总线1902用于实现这些组件之间的连接通信。其中,存储介质905中保存有用于执行本申请记载的任一种方法的代码。通信接口1904可以包括各种类用于通信的硬件,这些硬件中用于接入网络的端节点(终端或服务器)上的接口是网络接口。
在一些实施方式中,存储介质1905存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作系统19051,包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;应用程序模块19052,包含各种应用程序,例如桌面(launcher)、媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。而在该设备为网关的情况下,该存储介质905可以只存储用于执行上文所述的方法所需要的程序代码。
本申请的另一个实施例还记载一种芯片或者存储介质,这种芯片或者存储介质可以放置在上文所述的端节点,用于执行本申请中描述的方法,或者保存有用于执行本申请描述的方法的代码。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请实施例提供的方法中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、网络设备、终端或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机可以存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,SSD)等。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
- 一种功率控制方法、接收方法、功率分配方法及相关设备
- 基于智能交互设备的数据处理方法及相关设备
- 一种基于指纹控制设备的方法及相关设备
- 一种信息处理方法、区块链节点设备以及相关设备
- 连接建立方法、故障处理方法、通信系统及相关设备
- 连接建立方法及相关设备