CN112205036A - 动态信道绑定的系统和方法 - Google Patents
动态信道绑定的系统和方法 Download PDFInfo
- Publication number
- CN112205036A CN112205036A CN201980036540.6A CN201980036540A CN112205036A CN 112205036 A CN112205036 A CN 112205036A CN 201980036540 A CN201980036540 A CN 201980036540A CN 112205036 A CN112205036 A CN 112205036A
- Authority
- CN
- China
- Prior art keywords
- network
- networks
- request
- communication device
- portable communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 110
- 230000004044 response Effects 0.000 claims abstract description 109
- 238000004891 communication Methods 0.000 claims abstract description 69
- 238000012545 processing Methods 0.000 claims abstract description 26
- 238000012544 monitoring process Methods 0.000 claims abstract description 20
- 230000001413 cellular effect Effects 0.000 claims description 52
- 230000008859 change Effects 0.000 claims description 11
- 238000013442 quality metrics Methods 0.000 claims description 4
- 239000003795 chemical substances by application Substances 0.000 description 58
- 230000000694 effects Effects 0.000 description 32
- 238000013459 approach Methods 0.000 description 17
- 238000005259 measurement Methods 0.000 description 11
- 238000012360 testing method Methods 0.000 description 11
- 230000001934 delay Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000007423 decrease Effects 0.000 description 7
- 230000007246 mechanism Effects 0.000 description 6
- 238000000060 site-specific infrared dichroism spectroscopy Methods 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 4
- 230000001965 increasing effect Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 3
- 230000000052 comparative effect Effects 0.000 description 3
- 238000006731 degradation reaction Methods 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W48/00—Access restriction; Network selection; Access point selection
- H04W48/18—Selecting a network or a communication service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
- H04L43/0829—Packet loss
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0894—Packet rate
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/08—Load balancing or load distribution
- H04W28/086—Load balancing or load distribution among access entities
- H04W28/0861—Load balancing or load distribution among access entities between base stations
- H04W28/0865—Load balancing or load distribution among access entities between base stations of different Radio Access Technologies [RATs], e.g. LTE or WiFi
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/08—Load balancing or load distribution
- H04W28/09—Management thereof
- H04W28/0958—Management thereof based on metrics or performance parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/14—Reselecting a network or an air interface
- H04W36/144—Reselecting a network or an air interface over a different radio air interface technology
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/16—Performing reselection for specific purposes
- H04W36/22—Performing reselection for specific purposes for handling the traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W8/00—Network data management
- H04W8/02—Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
- H04W8/04—Registration at HLR or HSS [Home Subscriber Server]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W88/00—Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
- H04W88/02—Terminal devices
- H04W88/06—Terminal devices adapted for operation in multiple networks or having at least two operational modes, e.g. multi-mode terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W36/00—Hand-off or reselection arrangements
- H04W36/0005—Control or signalling for completing the hand-off
- H04W36/0011—Control or signalling for completing the hand-off for data sessions of end-to-end connection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/10—Small scale networks; Flat hierarchical networks
- H04W84/12—WLAN [Wireless Local Area Networks]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Mobile Radio Communication Systems (AREA)
- Telephonic Communication Services (AREA)
Abstract
一种用于管理便携式通信设备上的网络流量的方法,该便携式通信设备包括处理器、存储器以及被配置成连接至多个网络的多个网络接口,该方法包括:经由多个网络中的第一网络处理在处理器上运行的应用的网络流量,第一网络被在处理器上运行的操作系统指定为主网络;监测与第一网络相关联的多个网络状态信息;当所接收的网络状态信息的一个或更多个参数在一个或更多个阈值之外时,检测到第一网络的问题;响应于检测到第一网络的问题,选择多个网络中的第二网络作为主网络;以及经由作为经更新的主网络的第二网络处理网络流量。
Description
相关申请的交叉引用
本申请要求于2018年5月31日向美国专利和商标局提交的美国临时专利申请第62/678,810号的权益,其全部公开内容通过引用合并于本文。
技术领域
本发明的实施方式的方面涉及计算机网络领域。
背景技术
连接绑定或链路聚合涉及用于组合或聚合多个网络连接的方法。
在一些网络状况下,例如当计算设备接近或超出网络可及范围(reach)的可用范围,或者接近或超出网络容量的可用限制时,计算设备上的网络连接可能变差。例如,当连接至无线局域网或WLAN(例如Wi-Fi网络)的智能电话移动到无线网络有效范围的边缘时(例如处于家里的私人车道上的车上时),即使在与无线网络的连接较差的情况下,智能电话通常也会继续尝试经由无线网络发送和请求数据,而不是切换到其蜂窝连接。这可能会导致较差的用户体验,例如当用户位于本地无线网络的边缘时(即使蜂窝网络信号强),可能暂时丢失网络连接。另一示例是智能电话连接至(流量超过其可以处理的流量的)无线网络,例如体育赛事期间繁忙的咖啡厅或体育场内的拥塞的Wi-Fi网络。这可能会导致较差的用户体验,例如在尝试访问互联网内容时出现挂起或超时。
WLAN连接的示例包括网络诸如基于IEEE 802.11标准(也称为Wi-Fi)的网络。蜂窝网络连接的示例包括3G无线蜂窝网络(有时称为例如通用移动电信服务或UMTS、全球移动系统或GSM以及码分多址2000或CDMA2000)或4G无线蜂窝网络(有时称为例如高级长期演进或高级LTE)等。
连接至其他类型的网络例如Wi-Fi时,存在其他问题,例如:性能(例如,可能比蜂窝连接慢),可访问性(例如,可能需要在授予互联网访问权限之前登录)或质量(例如,可能会存在信号或性能更好的另一接入点)。通常,设备(包括在其上运行的软件)并未很好地解决或根本没有解决这些问题,因此用户通常必须手动管理这些连接,包括禁用或断开其设备上的Wi-Fi以手动强制设备使用蜂窝连接。这会导致非常差的用户体验(例如,要求用户记住何时重新打开Wi-Fi),并带来其他后果,例如,对于用户(例如,当用户有计量数据套餐时)或移动网络运营商(例如,当用户有无限数据套餐(data plan)时)的较高的蜂窝成本。
设备还可以连接至其他网络类型例如蓝牙或者(可能是)将来的网络类型,其中的任何一种网络类型可能在其边缘引起类似的问题。通常,当存在设备可以连接至的多个可能不同的异构网络时,该设备应该如何以及何时使用这些可用网络中的每一个网络都存在挑战。
相关技术
管理设备可用的多个可能异构网络的使用的问题已经遇到了解决它们的其他相关方法。这些方法包括以下范围:提供用户接口(UI)设置以使得用户能够手动控制;基于软件的方法以使至网络的连接(例如,用于Wi-Fi的)自动化;以及控制如何以及何时使用多个可用网络(例如,多路径TCP)。
例如,一些比较网络协议已经被设计为:通过跨多个可用网络划分网络流量,然后使用相关联的中介在下游将划分的流量重新组合,同时利用多个网络例如多路径TCP(MPTCP),从而实现可能较高的性能(例如,通过同时在蜂窝网络和Wi-Fi网络上对数据进行负载平衡)和较高的弹性(例如,通过将丢失的Wi-Fi分组重试/重新发送至蜂窝网络)。多年来,已经开发了许多这样的网络协议,包括专有协议,它们遵循这种集成的客户端-服务器模型,该模型在客户端划分流量,然后使服务器(或等效中介)在下游将流量重新组合。然而,这些方法要求所有设备流量都通过中介进行定向,这可能会产生重大影响(例如,较高的运营成本)。该成本通常由设备使用的网络之一的运营商例如移动网络运营商(MNO)承担,其中,附加成本包括新服务器以及先前在该用户设备连接至Wi-Fi网络时MNO不需要处理的(例如Wi-Fi流量的)附加带宽。
采取的另一种比较方法是使应用具有多网络感知能力,以便该应用同时(经由负载平衡实现性能)或有选择地(针对一个不工作的网络,出于弹性)通过Wi-Fi网络和/或蜂窝网络定向其流量。例如,Download Booster可以经由蜂窝和Wi-Fi上的负载平衡来加速大文件下载(>30MB)。然而,该方法没有扩展成提供跨不同应用的网络性能的总体改进(例如,该方法没有改进网页浏览或观看视频),因为它仅专门用于通过某些应用(例如网页浏览器)执行的文件下载。这些方法还缺乏基于每个网络的动态变化性能特征来动态调整可用网络之间的负载的认识。另一比较示例是iOS中的Wi-Fi辅助功能,如果它检测到Wi-Fi无响应,则可以将应用切换为使用蜂窝网络。然而,该实现在从Wi-Fi切换到蜂窝网络之前需要网络请求挂起或超时,因为它缺乏快速、无缝(例如,几乎实时)检测实际响应的网络的能力。另外,Wi-Fi辅助功能仅限于“前台”应用(即,用户当前与之交互的前台运行的应用),因为对于用户或MNO而言,它缺乏控制使用多少蜂窝数据的策略控制。
发明内容
本发明的实施方式的方面涉及用于自动管理计算设备中的多个网络连接以改善网络连接性的系统和方法。
根据本发明的一个实施方式,一种用于管理便携式通信设备上的网络流量(traffic)的方法,该便携式通信设备包括处理器、存储器以及被配置成连接至多个网络的多个网络接口,该方法包括:由在处理器上运行的流量管理器拦截去往和来自在处理器上运行的应用的网络数据;由流量管理器经由多个网络向服务器发送网络数据的幂等请求;由流量管理器经由多个网络中的第一网络从服务器接收对幂等请求的响应;以及由流量管理器选择多个网络中的第一网络,以用于接收和发送对该应用的响应。
经由多个网络向服务器发送幂等请求可以包括在多个网络中的第二网络上发送幂等请求,且该方法还可以包括终止第二网络上的幂等请求。
经由多个网络向服务器发送幂等请求可以包括:经由多个网络中的一个网络向服务器发送幂等请求;以及根据延迟,经由多个网络中的一个或更多个其他网络向服务器发送幂等请求。
该延迟可以短于在便携式通信设备上运行的应用的应用级超时。
该延迟可以基于对幂等请求的典型响应时间来设置。
该幂等请求可以与网络协议相关联,并且该延迟可以基于与幂等请求相关联的网络协议来设置。
该延迟可以基于对幂等请求的响应的大小来设置。
该延迟可以基于网络质量度量来设置。
多个网络可以按照偏好排序排列,并且可以根据偏好排序来选择一个或更多个其他网络。
根据偏好排序,网络中的各网络可以与不同的延迟相关联。
该方法还可以包括:根据一个或更多个动态因素,重新按照偏好排序排列多个网络。
一个或更多个动态因素可以包括网络性能。
一个或更多个动态因素可以包括网络流量成本。
多个网络可以包括多个不同类型的网络。
网络的类型可以包括以下中的一个或更多个:蜂窝网络、蓝牙网络和Wi-Fi网络。
根据本发明的一个实施方式,一种用于管理便携式通信设备上的网络流量的方法,该便携式通信设备包括处理器、存储器以及被配置成连接至多个网络的多个网络接口,该方法包括:经由多个网络中的第一网络处理在处理器上运行的应用的网络流量,第一网络被在处理器上运行的操作系统指定为主网络;监测与第一网络相关联的多个网络状态信息;当所接收的网络状态信息的一个或更多个参数在一个或更多个阈值之外时,检测到第一网络的问题;响应于检测到第一网络的问题,选择多个网络中的第二网络作为主网络;以及经由作为经更新的主网络的第二网络处理网络流量。
网络流量可以包括请求和对请求的响应,并且其中,基于请求的时间戳与响应的时间戳之间的响应时间超过最大阈值,检测到第一网络的问题。
检测到第一网络的问题可以包括:监测关于第一网络的网络统计信息中的至少一个;以及当网络统计信息的变化超过阈值时,检测到问题。
网络统计信息可以包括分组丢失率或不良分组率。
第一网络可以是无线网络,并且检测到第一网络的问题可以包括:监测无线网络的信号强度;以及在信号强度下降至阈值信号强度以下时,检测到问题。
可以根据多个网络的偏好排序来选择多个网络中的第二网络。
可以基于在第一网络上接收到响应之前在其他网络上接收到的响应,检测到第一网络的问题。
根据本发明的一个实施方式,一种便携式通信设备,包括处理器、存储器以及被配置成连接至多个网络的多个网络接口,存储器存储指令,指令在由处理器执行时使处理器通过以下操作来管理便携式通信设备的网络流量:由在处理器上运行的流量管理器拦截去往和来自在处理器上运行的应用的网络数据;由流量管理器经由多个网络向服务器发送网络数据的幂等请求;由流量管理器经由多个网络中的第一网络从服务器接收对幂等请求的响应;以及由流量管理器选择多个网络中的第一网络,以用于接收和发送对该应用的响应。
经由多个网络向服务器发送幂等请求可以包括在多个网络中的第二网络上发送幂等请求,并且指令还可以包括使处理器终止第二网络上的幂等请求的指令。
经由多个网络向服务器发送幂等请求可以包括:经由多个网络中的一个网络向服务器发送幂等请求;以及根据延迟,经由多个网络中的一个或更多个其他网络向服务器发送幂等请求。
该延迟可以短于在便携式通信设备上运行的应用的应用级超时。
该延迟可以基于对幂等请求的典型响应时间来设置。
幂等请求可以与网络协议相关联,并且该延迟可以基于与幂等请求相关联的网络协议来设置。
该延迟可以基于对幂等请求的响应的大小来设置。
该延迟可以基于网络质量度量来设置。
多个网络可以按照偏好排序排列,并且可以根据偏好排序来选择一个或更多个其他网络。
根据偏好排序,网络中的各网络可以与不同的延迟相关联。
该存储器还可以存储在由处理器执行时使处理器执行以下操作的指令:根据一个或更多个动态因素,重新按照偏好排序排列多个网络。
一个或更多个动态因素可以包括网络性能。
一个或更多个动态因素可以包括网络流量成本。
多个网络可以包括多个不同类型的网络。
网络的类型可以包括以下中的一个或更多个:蜂窝网络、蓝牙网络和Wi-Fi网络。
根据本发明的一个实施方式,一种便携式通信设备,包括处理器、存储器以及被配置成连接至多个网络的多个网络接口,存储器存储指令,指令在由处理器执行时使处理器通过以下操作来管理便携式通信设备的网络流量:经由多个网络中的第一网络处理在处理器上运行的应用的网络流量,第一网络被在处理器上运行的操作系统指定为主网络;监测与第一网络相关联的多个网络状态信息;当所接收的网络状态信息的一个或更多个参数在一个或更多个阈值之外时,检测到第一网络的问题;响应于检测到第一网络的问题,选择多个网络中的第二网络作为主网络;以及经由作为经更新的主网络的第二网络处理网络流量。
网络流量可以包括请求和对该请求的响应,并且可以基于请求的时间戳与响应的时间戳之间的响应时间超过最大阈值,检测到第一网络的问题。
用于检测到第一网络的问题的指令可以包括在由处理器执行时使处理器执行以下操作的指令:监测关于第一网络的网络统计信息中的至少一个;以及当网络统计信息的变化超过阈值时,检测到问题。
网络统计信息可以包括分组丢失率或不良分组率。
第一网络可以是无线网络,并且检测到第一网络的问题可以包括:监测无线网络的信号强度;以及在信号强度下降至阈值信号强度以下时,检测到问题。
可以根据多个网络的偏好排序来选择多个网络中的第二网络。
可以基于在第一网络上接收到响应之前在其他网络上接收到的响应,检测到第一网络的问题。
本发明的实施方式的各方面涉及通过基于活动请求计数在不同网络上发送请求来提供改进的性能,包括:基于不同网络之间的活动请求的比率分配负载;基于包括时延和带宽的因素动态调整活动请求的比率;检测并跟踪加密流量的活动请求,包括经由出站/请求数据的存在来检测新的活动请求,并且如果自上次入站/响应数据以来的延迟足够长,则请求完成。
根据本发明的一个实施方式,一种便携式通信设备上的网络流量管理的方法,该便携式通信设备具有计算机处理器和用于向计算机服务器发送数据或接收数据的多个网络接口,该方法包括:由流量管理器应用拦截去往或来自第一应用的第一数据的电子流量;由流量管理器应用跟踪每个网络接口的活动数据请求或响应的数量;以及由流量管理器应用基于活动数据交换的数量选择用于将来自第一应用的第一数据传递至服务器或者将第一数据从服务器传递至第一应用的网络接口。
根据本发明的一个实施方式,一种用于管理便携式通信设备上的流量的方法,该便携式通信设备包括处理器、存储器以及被配置成连接至多个网络的多个网络接口,该方法包括:由在处理器上运行的流量管理器拦截去往和来自在处理器上运行的应用的网络数据;由流量管理器向服务器发送多个请求,请求经由多个网络发送;由流量管理器跟踪与每个网络接口相关联的多个活动数据请求的数量;以及由流量管理器根据与网络接口相关联的多个活动数据请求的数量选择多个网络接口中用于向服务器发送网络数据以及从服务器接收网络数据的网络接口。
多个网络中的一个网络可以被指定为主网络,并且选择网络接口可以包括:确定与主网络相关联的活动数据请求的数量超过阈值;以及选择与多个网络中的活动数据请求的数量未超过阈值的另一网络相对应的网络接口。
选择多个网络接口中的网络接口可以包括:选择多个网络接口中的第二网络接口;根据与网络接口相关联的活动数据请求的数量和与第二网络接口相关联的活动数据请求的数量计算活动请求的比率;以及根据活动请求的比率在该网络接口与第二网络接口之间分配网络数据的网络流量。
该方法还可以包括:根据多个网络的多个网络状况动态地调整活动请求的比率。
网络状况可以包括与多个网络相对应的时延测量结果。
网络状况可以包括与多个网络相对应的最大带宽测量结果。
该方法还可以包括:检测与该网络接口相关联的第一网络或与该第二网络接口相关联的第二网络何时是无响应网络;以及放弃无响应网络。
本发明实施方式的各方面涉及连接管理,包括:当绑定(例如,双击(doubletap)或负载平衡)检测到主网络/默认网络的降级时切换到另一网络;基于双击(例如,当其关闭主网络时)切换到另一网络;以及基于负载平衡(例如当在当前主网络上活动请求并未足够快速地完成时)切换到另一网络。
附图说明
附图与说明书一起示出了本发明的示例性实施方式,并且与说明书一起用于解释本发明的原理。
图1是根据本发明的实施方式的适合与设备上的信道绑定实现一起使用的示例便携式通信设备(例如智能电话)架构的示意图。
图2是根据本发明的实施方式的代理内的软件组件的框图,软件组件使得能够监测和控制应用与服务器之间的网络流量。
图3是示出根据本发明的一个实施方式的用于设置主网络的方法的高级流程图。
图4是示出根据本发明的一个实施方式的用于利用提前信号来控制网络访问的方法的高级流程图。
图5是示出根据本发明的一个实施方式的负载平衡方法的示例方法的高级流程图。
图6示出了具有多个Wi-Fi网络的街区的示例,其中每个Wi-Fi网络具有指示信号质量好的区域的内部绿色圆形区域和指示信号质量差的区域(即Wi-Fi死区)的外部红色圆形区域。
图7示出了与图6相同的示例,但是利用了根据本发明的实施方式的技术。
具体实施方式
在下面的详细描述中,通过说明的方式仅示出和描述了本发明的某些示例性实施方式。如本领域技术人员将认识到的,本发明可以以许多不同的形式来实施,并且不应被解释为限于本文阐述的实施方式。
移动网络中的一个挑战在于,例如在异构网络的情况下,不同网络之间的切换通常不是无缝的。当在移动设备支持的不同类型的网络之间进行切换(例如在Wi-Fi与蜂窝网络之间进行切换)时,通常会使用异构网络。例如,在移动设备加入/附接至Wi-Fi网络时,即使Wi-Fi信号太弱(或太差)而无法用于可靠的通信,该设备仍将停留在该Wi-Fi网络上并使用Wi-Fi网络进行网络通信,因为难以检测到Wi-Fi不可用,直到使用Wi-Fi的所有尝试失败(例如,在长时间超时后)。这种状态通常被称为“死区”,在死区中设备没有互联网连接,因为设备仍连接至并正在使用(或尝试使用)不可用的网络。当在相同类型的网络之间切换时,也会发生这种问题,因为这些网络之间通常没有协调。例如,当设备处于一个Wi-Fi网络的死区中,但在范围内存在另一更好且可用的Wi-Fi网络时,在这些Wi-Fi网络之间没有某种明确的协调的情况下,该设备将不会切换到另一Wi-Fi网络。明确的协调的示例是通常由公司运营的具有多个Wi-Fi接入点的“企业”网状网络,并利用切换技术诸如IEEE802.11r或802.11v。然而,用户经常——例如在可能存在一个或更多个交叠或邻接的Wi-Fi网络的公共空间中——使用不相关的Wi-Fi网络,这些Wi-Fi网络彼此不知道(例如,未进行合作),因此无法前瞻性地在它们之间切换设备。换句话说,这是异构网络阻止无缝切换的另一情况。
跨多个网络分配负载的一个挑战是:当每个网络具有不同的性能特征时确定负载的最佳分配。例如,简单的负载平衡策略通常无法在性能上获得改善,因为总体性能是由最慢的路径决定的。在下面的表1中,假设Wi-Fi网络的速度为40mbps,而蜂窝网络的速度为20mbps。下表示出了使用较快的Wi-Fi连接与较慢的蜂窝连接之间的各种负载分配来下载40MB文件和100MB文件所花费的时间的各种计算:
表1
表1示出了期望与可用网络的相对性能成比例地分配负载,以便能够获得实际的性能增益,例如,速度是蜂窝网络的速度的两倍的Wi-Fi网络应获得两倍的流量,以显著减少总等待时间。
然而,跨多个网络适当分配负载的一个问题是确定实际需要这样做的时间,因为在没有尝试生成比网络可以处理的网络负载和/或流量多的网络负载和/或流量的情况下,客户端设备难以确定何时它达到了网络的容量,这在正常使用(例如浏览网页)期间很少发生。确定是否已达到网络容量上限的一些方法是例如经由“速度测试”生成测试流量,速度测试连续增加大的测试文件的多个并发下载,直到总带宽速率不再增加为止。然而,这种方法通常无法在正常用户活动期间应用,因为它会产生不必要的额外负载(这可能会影响电池寿命或网络使用),可能会干扰用户的活动/与用户的活动竞争,并可能增加额外的网络使用成本(例如,在使用计量网络时)。此外,该技术没有考虑可用网络容量的动态变化(例如,基于同一网络上的其他用户而变化的拥塞),并且通常不期望不断生成测试流量以连续重新计算当前网络容量。
因此,本发明的实施方式的方面涉及如下方法:该方法有能力实时(例如,在网络使用时根据需要)检测终端用户(客户端)设备处的可用网络的质量和性能,而不需要中介/服务器对流量进行划分和重新组合,也不需要生成网络流量来测试是否已达到网络的当前容量。本发明的实施方式的一些方面涉及对可用网络的细粒度了解,使得可以动态地调整负载平衡以加速不同类型的网络流量(例如,不仅有大文件下载,而且有网页浏览等),以及能够快速从Wi-Fi故障转移(failover)到蜂窝网络,从而避免客户端处的挂起和超时。
本发明的实施方式的方面涉及用于自动管理计算设备中的多个网络连接以改善网络连接性的系统和方法。为了方便起见,本文将针对改善具有无线局域网(例如,WLAN或Wi-Fi)连接性和具有蜂窝网络(例如,3G GSM、4G LTE)连接性的移动设备中的网络连接性来描述本发明的实施方式。然而,本发明的实施方式不限于此,并且还可以应用于具有两种不同的网络连接(例如,无线局域网连接和有线局域网连接)的设备以及具有多于两种不同的网络连接(例如,第三网络连接诸如有线局域网连接或卫星数据连接)的设备。
现在将参照附图描述本发明的示例实施方式。在附图中,相同或相似的附图标记贯穿全文表示相同或相似的元素。在本文中,在描述本发明的实施方式时,术语“可以”的使用是指“本发明的一个或更多个实施方式”。另外,在描述本发明的实施方式时,替选语言诸如“或”的使用是指针对所列出的每个对应项的“本发明的一个或更多个实施方式”。
图1是根据本发明的实施方式的适合与设备上的信道绑定实现一起使用的示例便携式通信设备(例如智能电话)架构100的示意图。为了说明的目的,将便携式通信设备或移动设备100假定为智能手机。然而,本发明的实施方式不限于此,并且可以应用于其他计算设备,诸如运行除之外的操作系统的智能电话和平板计算机、膝上型计算机等。此外,尽管这样的移动设备可能能够支持许多用户,但是为了便于描述,将假设移动设备专用于特定用户,因此,术语“用户”和“移动设备”(或以个人或便携式方式使用的任何计算设备)可以贯穿全文同义使用。
根据本发明的一个或更多个实施方式,便携式通信设备或移动设备上的通用架构(例如架构100)提供了集中式代理130(或流量管理器),该集中式代理130被配置成对从应用(例如,移动应用或“应用(app)”)到例如(移动设备例如经由Wi-Fi或蜂窝网络访问的)应用服务器(或app服务器)250的数据流量进行监测或控制。该方法使得能够跨多个网络(例如,Wi-Fi和蜂窝网络)并跨多个应用执行信道绑定,并且允许对信道绑定进行集中管理,尽管本发明的实施方式不限于此。在其他实施方式中,可以在每个应用内或针对应用的特定子集私下执行信道绑定。
便携式通信设备100的应用和其他可编程组件可以实现为例如存储在便携式通信设备100的非暂态存储设备(例如,闪存170)上并被配置成在便携式通信设备100的一个或更多个处理器上执行的计算机指令集。代理130还可以管理针对特定网站诸如来自网页浏览器的流量。因此,为了便于描述,贯穿本申请,当引用代理130所管理的内容的类别时,诸如“应用”、“app”、“网站”或“站点”的术语可以在某种程度上互换使用。
可以从多个不同的机制——例如使用套接字层120的代理服务器(例如,经由操作系统(OS)网络设置),使用网络隧道(TUN)设备230的虚拟专用网络(VPN)服务140(例如,经由OS网络设置)——使用代理130,或者代理130可以嵌入到使用拦截层150的应用内。代理130可以在Java虚拟机(JVM)、运行时(ART)或其他托管运行时环境160上运行,或者可以在没有托管运行时环境的情况下直接在操作系统上运行。代理130可以包括用于管理物理存储设备例如闪存170或其他非易失性存储设备上的缓存内容的缓存引擎110。在不失一般性的情况下,这样的设备有时可以称为“盘”,尽管它可以是任何类型的非暂态存储设备,例如固态驱动器(例如NAND闪存)。另外,可以将缓存的或任何其他存储的内容全部或部分地存储在易失性存储器诸如动态随机存取存储器(DRAM)上,并且该易失性存储器可以诸如以分层方式与非易失性存储器组合使用,其中,最近访问的内容在被转换至较慢的非易失性存储器之前存储在较快的易失性存储器中。
代理130可以以诸如应用、内核驱动器的各种形式运行,或者在移动设备上的OS内运行,并且可以被配置(例如,经由OS网络设置)成从内部应用180和外部应用服务器250接收网络连接。在一个或更多个实施方式中,代理服务器可以在托管运行时环境诸如JVM 160中运行。代理130可以代表客户端应用180充当中介。例如,代理130可以服务在另一托管运行时环境例如JVM 165中运行的应用180的请求。
作为一个操作示例,应用180可以使用例如安卓服务诸如HttpURLConnection 190来请求访问互联网。(这里,HTTP代表超文本传输协议,URL代表统一资源定位符,例如网址)。HttpURLConnection 190然后可以调用由OS提供的网络服务200以访问因特网。网络服务200可以例如使用接入点名称(APN)210(例如移动网络诸如3G或4G蜂窝网络)或Wi-Fi连接220来访问因特网。网络服务200可以被配置成使用全局适用于系统或者适用于APN 210或Wi-Fi连接220的代理配置将请求从应用180路由到代理服务器130,如图1中的点线所示。网络服务200还可以使用各种其他方式例如经由网络隧道(TUN)设备230或IP路由表(也称为“ip表”)将请求从应用180路由到代理130,如图1中的虚线所示。
网络服务200可以被配置成直接或间接指定代理(例如,指定作为由设备上运行的应用直接检测到和使用的全局系统代理,或者通过APN210或Wi-Fi连接220上的设置来间接指定)来访问因特网,使得请求可以通过标准通信层例如套接字120(例如,用于连接至因特网的网络套接字)发送,该请求被代理130接收。代理130进而可以通过网络服务200(同时绕过APN或Wi-Fi代理配置以避免循环回到自身)并通过外部网络240对应用服务器250进行请求,其中,应用服务器250服务请求,并经由外部网络240和网络服务200将任何响应的通信返回至代理130。因此,代理130然后可以监测或控制应用180与服务器250之间的通信。代理130还可以在通过相同描述的阶段反向地(例如,APN 210连接/Wi-Fi 220连接、网络服务200和HttpURLConnection库190)将响应通过网络套接字120返回到应用180之前,经由缓存引擎110对从服务器250接收到的响应中的一些或全部响应进行缓存,或者不缓存响应。
代替使用APN或Wi-Fi连接上的代理配置,网络服务200还可以被配置成通过各种其他手段将请求路由到代理服务器130。例如,另一方法是使用网络隧道(TUN)230建立VPN连接,该连接可以将网络活动路由到用于处理网络传输的VPN服务140。然后,VPN服务140可以将请求路由到代理130以使用套接字120(视情况)管理应用180与应用服务器250之间的流量,以服务请求并经由网络隧道230返回响应。
用于使代理130参与的另一机制是在应用内使用拦截层(例如拦截层150和155)将流量重新定向到代理进程。例如,在上面的示例中,在使HttpURLConnection 190调用网络服务200来访问因特网之前,或者代替使HttpURLConnection 190调用网络服务200来访问因特网,HttpURLConnection 190可以使拦截层150拦截来自应用180的请求,并将其流量直接转发至代理130。可以通过网络服务200或使用标准进程间通信(IPC)机制来执行从拦截层150到代理130的转发,标准进程间通信(IPC)机制对于本领域的普通技术人员而言是明显的,例如消息队列、命名管道或共享存储器。
在其他实施方式中,除了代理130在单独进程中诸如在JVM 160内操作外,代理130还可以嵌入在请求进程诸如JVM 165或浏览器185(诸如网页浏览器)内。然后,代理130可以管理应用的网络流量,而不需要任何进程间通信。
在另一示例中,网页浏览器185试图访问因特网(例如,外部网络240)。类似于上面的应用180,网页浏览器185可以通过多个不同的方法来利用代理130。例如,网页浏览器185可以被配置成通过使用网络套接字125访问因特网,然后其可以使用网络服务200以使用例如上述套接字120或VPN服务140来访问应用服务器250和/或代理130。以类似的方式,拦截层155可以被添加到网页浏览器185,其然后可以拦截来自网页浏览器185的请求,并将其流量转发至代理130。
更详细地,以上技术可以被集成到现有接口中,其中在一些实施方式中,在安全套接字层(SSL,例如,加密)通信和非SSL(例如,未加密)通信之间区分这些技术。例如,可以在网络栈中的集中位置中针对非SSL通信实现与应用的集成。例如,代理130可以被配置为针对网络协议的全部或子集(诸如仅针对HTTP、HTTPS或两者)的代理。类似地,代理130可以被配置为针对网络接口的全部或子集(诸如针对蜂窝、Wi-Fi或两者)的代理。例如,对于APN210访问,可以将蜂窝访问点设置为代理130。对于ip表访问,可以设置相应的因特网协议(IP)路由表条目。对于VPN服务,VPN客户端(例如VPN服务140)可以将流量路由到代理130。对于Wi-Fi,可以针对每个Wi-Fi接入点(AP)设置代理130。对于全局系统代理,系统可以将针对所有应用流量的流量引导到代理130。
另外,与使用加密通信诸如SSL或TLS的应用集成可能需要访问未加密的网络数据(例如,在加密之前的网络数据)。存在这里可以使用的多个方法。对于中间人(man-in-the-middle)方法,可以通过经由受信任的认证机构(CA)模拟服务器来获得对加密数据的访问。对于软件开发工具包(SDK)方法(例如对于图1中的拦截层155),构建时间链接可以与到加密层上方(例如之前)的网络API的挂钩(hook)一起使用。对于重新链接方法,可以对现有应用进行反编译和重新链接,以使用自定义替换应用编程接口(API),例如使用HttpURLConnection 190。对于替选方法,例如对于浏览器如网页浏览器185,可以提供拦截已被插入的应用的替选版本。这可能特别适合于广泛使用的开源应用。
尽管图1主要针对便携式通信设备或移动设备100的架构,但是设备上的信道绑定也可能需要其他组件,例如被配置成在移动设备100的一个或更多个处理器上运行的软件组件。图2是根据本发明的一些示例性实施方式的代理130内的软件组件的框图,所述软件组件使得能够监测和控制应用280与服务器250之间的网络流量。
在图2中,在移动设备100内运行的应用280与应用服务器250通信,并且代理130将使用先前讨论的任何方法(诸如通过系统代理设置或VPN)来拦截应用的网络流量。在本发明的一个或更多个实施方式中,在代理130内存在执行网络流量监测和控制的逻辑软件组件,并且这些软件组件可以包括客户端处理装置132和请求处理装置134,该客户端处理装置132可以处理与应用280的内部数据路径133(在移动设备100内部),并且该请求处理装置134可以处理与应用服务器250的外部网络数据路径135(例如,通过外部网络诸如因特网,在移动设备100外部)。图2描绘了代理130与应用服务器250之间的几个箭头,所述几个箭头表示便携式通信设备100可以经由便携式通信设备100的不同网络接口访问的不同网络(例如,不同的Wi-Fi网络、不同的蜂窝网络等)。
应用280与客户端处理装置132之间的数据路径133可以通过不同的机制发生,这取决于用于拦截应用的网络流量的方法,例如网络套接字或对于普通技术人员而言是明显的任何其他标准的进程间通信机制。请求处理装置133与应用服务器250之间的数据路径135也可以通过不同的机制发生,这取决于应用280通常如何与应用服务器250通信,例如通过使用TCP/IP的网络套接字。通过将与应用280的内部数据路径133和与应用服务器250的外部数据路径135去耦,这使得代理130能够将应用280使用的网络路径和与应用服务器250进行通信时使用的网络路径分开,例如,以在使用去往和/或来自应用服务器250(通过外部网络数据路径135)的一个或更多个可用网络连接的同时,向应用280和/或从应用280传递数据(通过内部数据路径133)。
根据本发明的另一实施方式,路径管理器136可以用于管理请求处理装置133所使用的外部网络数据路径135。当存在多个可以使用的可用网络时,路径管理器136可以实现一个或更多个策略以在使用哪个网络与应用服务器250通信的方面指导请求处理装置。例如,可能存在如下策略:该策略用于通过指示请求处理装置133跨多个网络(例如,跨多个外部网络数据路径135)分配(也称为负载平衡)多个请求来确定如何处理慢速网络(例如,繁忙的咖啡店中拥塞的Wi-Fi网络)。作为另一示例,可能存在如下策略:该策略用于确定何时在多个网络上冗余地发出数据请求以提供无缝和响应的数据连接,即使网络中的一个网络可能没有响应。
任何前述策略都可以例如由用户提供,由应用预先配置,或从外部系统诸如管理服务器接收。任何上述策略也可以扩展为具有多个或可变参数,例如性能度量、成本因素、每个参数的相对权重等。例如,负载平衡策略可以考虑网络速度/带宽、每字节的时延和成本,以计算关于如何/何时使用另一网络(例如,蜂窝网络)来增强默认的主网络(例如,Wi-Fi)的策略。
双击
本发明的实施方式的一些方面涉及通过在计算设备可用的网络连接或网络接口中的多于一个上发送对数据的相同请求,从可用网络或外部网络数据路径135中进行选择。继续以上描述的示例,智能电话可以在其无线局域网(或Wi-Fi)连接和其蜂窝网络连接上发送冗余或“双击(doubletap)”请求(例如DNS查询或对网页的请求)。此处,术语“请求”通常用于指代存在相应响应的任何网络请求。为了双击请求,该请求只需要是幂等的(例如,可以安全地在另一连接上重新发送,或者可以由应用服务器250安全地接收多次)。例如,对帐户状态的请求通常是幂等的,因为作为请求的结果,在应用服务器250处没有改变用户数据,但是向信用卡收费的请求通常不是幂等的,因为每次接收到请求时应用服务器250可能向信用卡收费。由于许多网络协议的初始请求通常都是幂等的,因此该方法几乎可以用于任何类型的网络流量。这样的幂等请求的示例包括域名系统(DNS)查询,用于传输控制协议(TCP)连接的SYN分组,用于传输层安全性(TLS)握手的ClientHello或HTTP GET请求。通常不是幂等(或非幂等)的请求的示例包括HTTP POST。
本发明的实施方式可以立即在一个或更多个其他可用网络上双击(例如,冗余地发送相同的数据请求),例如当冗余请求/响应的成本可忽略/小(例如DNS请求,其中响应的大小由协议定义为小的)时,或者,本发明可以首先在优选网络(例如Wi-Fi)上发送请求,然后在初始延迟之后在任何其他可用网络(例如,蜂窝网络)上双击同一请求,例如,在成本高的情况下(例如,预期会生成较大响应的请求例如文件下载,或消耗大量服务器资源的请求例如建立TCP连接)。因此,延迟的长度可以基于对幂等请求的响应的已知或预期大小来设置(例如,对于小响应延迟短,对于大响应延迟较长),或者基于其他成本考虑来设置(例如,对于低成本延迟短,对于高成本延迟长)。然后,计算设备100可以检测哪个连接具有较好的性能(例如,连接中的哪一个首先传递响应),并在丢弃(例如,避免接收响应和/或发送其他请求)另一连接的同时继续使用较好的连接。在以上示例中,当在Wi-Fi连接弱的区域中并且使用根据本发明实施方式的双击技术时,与通过Wi-Fi连接接收响应相比,计算设备100可以经由蜂窝连接更快地接收响应,并且可以立即提供结果。相比之下,在比较例中,计算设备100可以首先尝试Wi-Fi连接,并且仅在Wi-Fi连接在短暂延迟(例如,比应用级超时短得多的时段)内没有响应之后,才沿着蜂窝连接发送请求,该延迟在本文被称为双击延迟。
冗余请求越早发送,就可以越早检测到一个网络是否比另一网络响应更快。通常,当存在多个网络时,在确定使用哪个网络方面存在偏好或优先级。例如,Wi-Fi通常是无限的或未计量的网络,而蜂窝网络通常可以是计量的或节流的网络,因此默认情况下,Wi-Fi可以优选作为“主”网络使用,而蜂窝网络以及可能的其他网络可以在Wi-Fi速度慢或无响应时辅助使用。不同的网络可能具有不同的成本和性能特征,因此可以存在与各网络相关联的不同的优先级,例如相比于蓝牙优先选择蜂窝,或者仅当其具有无限数据套餐时才允许蜂窝作为次级网络。换句话说,可以基于网络的一个或更多个特征例如性能或成本来确定对可用网络的偏好的顺序。在本发明的一些实施方式中,通过用户提供的配置数据来设置对可用网络的偏好的顺序。本发明的实施方式可以以不同的偏好的顺序利用次级网络的组合以用于冗余请求。
例如,当应用从服务器请求数据时,它可以发送对与应用服务器的域名相关联的IP地址的DNS请求,随后发送TCP SYN分组以与应用服务器建立连接,可能随后还会发送TLSClientHello(例如,如果用于HTTPS请求),最后发送HTTP GET以请求数据。这些请求中的每一个都是幂等的请求,并且可以在次级网络上冗余地发出,以针对主网络的任何问题提供弹性。然而,这些请求中的每一个都具有不同的成本,并对网络和/或服务器有影响。例如,DNS请求/响应小且无状态,因此可以在多个网络上冗余地发送它们,而不会在网络或DNS服务器上产生大量成本或开销。然而,TCP连接是更有限的资源(例如,服务器对并发连接有限制),因此,在一些实施方式中,代理130在次级网络上延迟对至服务器的TCP连接的冗余请求(例如,发送SYN分组),直到它检测到它在典型时间(例如,典型时间可以通常在1秒至2秒之内)内尚未经由主网络接收到来自应用服务器250的响应(例如,接收到SYN-ACK)。如上所述,该等待时段在本文中可以被称为双击延迟(例如,比响应的典型时间稍长的时段,例如2秒)。
通常,当在次级网络上延迟冗余双击请求时,有效地给予主网络上的请求一个小的领先优势(head start),并且该请求在大多数时间将成功完成(例如,通常会在双击延迟内经由主网络接收到响应,而无需在次级网络上向服务器发送SYN请求)。但是在双击延迟之后,在次级网络上发送冗余请求,因此它将与在主网络上发送的请求竞争。看到响应的任何网络都可以用于接收响应,并且可以经由多于一个网络接收响应。为了减少将重复的网络流量或使其最小化,在一些实施方式中,代理130仅选择一个(例如,恰好是一个)从其接收响应的网络。在本发明的一个实施方式中,代理130首先从其接收到响应的网络被选择为双击“获胜者”,并且代理130终止一个或多个其他网络上的数据请求(例如,通过关闭一个或多个其他连接)。终止一个或多个双击“失败者”会阻止用于处理冗余响应的进一步的处理和网络使用(例如带宽消耗),并且冗余请求的终止方式基于请求的类型而变化。例如,DNS是无状态的,因此只需忽略任何冗余的“失败者”响应就足够了,而HTTP请求可以通过关闭双击竞争失败的网络上的冗余连接来终止。
如本文所描述的,存在许多可以“双击”的协议的示例,例如之前针对DNS和TCP协议所描述的,本领域的普通技术人员应该明显领会,其他协议也可以类似地利用该双击方法来提供冗余。例如,通常在TCP连接上建立TLS会话,并且TLS ClientHello请求可以在次级网络上被双击,优选地还在如下延迟之后在次级网络上被双击:在该延迟期间,代理130在典型的响应时间(例如,通常也在1秒至2秒之内)内在主网络上没有从应用服务器250接收到TLS ServerHello响应。另一示例是QUIC(快速UDP因特网连接),其使用UDP代替TCP建立逻辑安全连接,并利用相同的TLS握手,因此,可以使用双击技术冗余地发送其幂等请求(例如,可能在延迟之后,在次级网络上冗余地发送相同的ClientHello)。作为另一示例,通常在建立TCP或QUIC连接之后执行HTTP请求,并且任何幂等HTTP请求(例如,方法为GET、HEAD、PUT或DELETE的HTTP请求)可以在次级网络上冗余地发送,也可以优选地在最初在主网络上发送之后延迟发送。如这些示例中所描述的,双击可以应用于不同的协议层,例如由OSI网络协议模型定义的协议层,并且甚至可以对于同一应用级的数据请求在多于一个协议层中执行双击。在多个协议层执行双击提供了多个冗余点,其中,在客户端-服务器交互中的这些多个点中的任何点处都可能发生故障(例如,由于不良的网络信号导致),并且其在次级网络上恢复。
在本发明的一些实施方式中,因为在次级网络上的冗余请求仅延迟了针对大多数响应所看见的典型响应时间(例如,双击延迟时间),所以这些双击延迟是比通常针对应用超时设置的阈值短得多的阈值,所述应用超时例如超过时会导致错误的超时(例如,基于最大或最坏情况响应时间设置的超时)。使用短延迟(例如几秒钟)发出冗余请求使得这些冗余请求能够在主网络不良/无响应时提供来自次级网络的响应,而不会超过用于检测网络问题的应用中的超时。在一些情况下,这可以防止向用户显示应用超时消息(因为从次级网络接收到了响应)。相比之下,在比较系统中,用户可能需要等待长时间,直到在应用级处发生超时错误(例如数十秒),并且对于用户来说,常常不清楚导致问题的原因是什么(例如,无响应的Wi-Fi网络通常与无响应的服务器难以区分,除非在另一网络上也尝试与该服务器进行通信)。本发明的实施方式针对可以在次级网络上冗余发送的可能的请求中的每一个来配置适当的双击延迟,使得只要主网络良好或响应或健康,每个延迟都允许在该时间帧内接收到给定类型请求的大多数响应。
图3是示出根据本发明的一个实施方式的双击方法的示例方法的高级流程图。该流程图可以由(例如图1中通过应用280与应用服务器250之间的代理130所描述的)网络数据路径中的中介来执行。代理130可以在步骤310处等待要从应用发送至服务器的数据请求。当在步骤315从应用接收到数据请求时,代理在步骤320处确定该请求是否是幂等的,以确定它是否可以应用双击方法。如果否,则在步骤325处应用代理的正常网络处理而不执行双击。如果是,则代理130将应用双击:首先通过在步骤330处保存当前时间戳作为双击延迟的开始(如果适用)(例如,基于请求的类型,以及可能之前讨论的其他因素)。然后在步骤335处,在当前主网络上将数据请求发送到服务器。代理130在步骤340处等待要从服务器接收的响应(例如,如果网络是良好/响应的),直到双击延迟。如果代理在步骤345处确定超过了双击延迟,则代理130进行到步骤350以在可用的次级网络中的一个或更多个上冗余地发送请求。在步骤345中,如果代理130确定在双击延迟内成功接收到响应,则代理130进行到步骤375以通过向应用280发送响应来完成响应。
如果在步骤350处发送了冗余请求,则代理130等待在冗余发送请求的任何网络上接收的响应。在步骤360处,如果代理130确定并未经由任何网络接收到响应(例如,在超时时段内),则代理130在步骤365处使请求失败回到应用(例如,向应用280发送失败,例如错误响应或连接重置)。然而,如果接收到第一响应(例如,在超时时段内),则该第一响应是双击比赛的“获胜者”,并且代理130可以在步骤370处放弃(例如,通过关闭其套接字显式地放弃,或者通过简单地忽略稍后响应来隐式地放弃)其他“失败”网络上的请求。现在,代理130具有成功响应,它可以在步骤375处将来自双击获胜者的响应发送至应用280。根据协议和与应用的连接状态,在步骤380处可以存在要执行的其他处理以完成逻辑请求。例如,TLS握手始于ClientHello,但可能与服务器进行其他请求/响应往返过程(round-trip),以完成该处理。相反,DNS查询或TCP连接将通过来自服务器的单个响应来完成,并且不需要在步骤380处具有其他处理。
当确定主网络有问题(例如,缓慢或不完全无响应)时,可能期望在当前主网络已明确故障(例如,超时、断开连接)之前抢先切换到不同网络作为主网络,因为当前主网络上的延迟通常会持续超出当前请求/连接,例如,当用户处于Wi-Fi网络的最佳范围的边缘(也称为“死区”)时。继续使用默认的有问题的主网络处理网络数据可能仍然有效,但是可能会导致用户体验比正常情况慢的整体网络性能,因为在次级网络上发送的冗余数据请求可能被延迟以使重复的网络流量最小化。切换到另一可能响应更快的网络作为用于处理网络流量的主网络意味着,首先默认在没有任何延迟的情况下在该网络上发送请求,从而使得用户能够体验该响应更快的网络的完整性能。在决定如何以及何时改变主网络时,不同的策略是可行的,例如,通过超过相继双击获胜者的阈值,或者通过超过一个或更多个响应的响应时间的最大阈值而改变主网络。用于这些策略的阈值可以手动配置,或者基于针对特定网络(例如,某些Wi-Fi网络对DNS响应慢(相比于其他网络),这可能是正常的)或针对特定服务器(例如,某些服务器对TCP SYN或TLS ClientHello请求响应慢(相比于其他服务器),这可能是正常的)看见的先前结果通过试探法/机器学习来动态设置。
当主网络有问题(或变弱或降级)时提高性能的另一方法是利用其他信号来确定将冗余请求延迟到次级网络的程度,或者抢先切换到另一网络作为主网络。例如,如果设备100(例如,操作系统)提供对关于网络质量的信息(例如,信号强度、分组失败率、(例如,丢失/不良的分组)等)的访问,则这些可以是用于决定如何以及何时使用次级网络。例如,如果主网络是Wi-Fi,并且其信号质量(例如,接收信号强度指示,又称RSSI)下降到特定阈值以下,则可以将针对冗余请求的双击延迟降低,(可能可以降低为零),以使得次级网络能够更快地处理请求,并减少由于等待降级的网络连接上的超时而导致的任何用户可见的延迟或使其最小化。该方法可以是渐进的或分层的,从而可以针对不同的信号质量水平配置不同的延迟(例如,随着信号质量变差,双击延迟会降低)。随着信号质量持续下降和/或降级,当先前主网络的信号质量水平下降至最坏情况水平以下时,它也可以用于切换到新的主网络。可以以任何组合的方式使用网络可用的任何质量水平或指示,以应用上述方法来减少双击延迟或切换到新的主网络。在一些实施方式中,尽管性能可能会降低,但是当前主网络的信号强度(即,在切换到另一网络作为新的主网络之前)可能仍在可操作范围内。例如,信号强度可能会降低到当前主网络的最大带宽减小但连接仍然可用(例如,部分分组丢失)的程度。
图4是示出根据本发明的一个实施方式的利用提前信号来控制网络访问的方法的高级流程图。术语“提前信号”在本文中可以用于指代根据监测网络行为(例如,在当前主网络已明确出现故障或超时之前)检测到的预警标志。在一些实施方式中,提前信号的检测用于调整双击延迟和/或抢先切换主网络/默认网络。参照图4,根据一个实施方式,在步骤410中,代理130注册信号强度更新(例如,RSSI)或来自操作系统的类似的网络质量数据(在网络质量数据不可用的实施方式中,例如在操作系统不支持它或者它对于当前主网络不可用时,可以省略该步骤)。在步骤415中,代理130还可以开始监测网络度量,诸如分组统计信息(例如,在网络上检测到的丢弃分组或重新传输分组的计数和/或比率)。在步骤420中,代理130等待对预订的网络信号质量数据和/或网络统计数据的改变或更新。如果检测到改变(例如,操作系统经由回调或等同物(如果支持)发送通知,和/或线程或等同物定期采样并监测网络数据的改变),则在步骤425中,代理130接收更新的网络数据(例如RSSI数据和/或网络统计数据)。
在步骤430中,代理130确定所接收的新值(例如,RSSI数据或网络统计数据的新值)是否“低于”(或者好于)指示“良好”网络的给定阈值。如果是这样,则代理返回到步骤420以等待更多数据。例如,如果分组丢失率低于“良好”阈值,则不需要改变,并且代理130返回到步骤420。术语“低于”(或图4中“<”)不一定是指数值,更确切地说是指该值是否在“良好”性能的范围内。例如,当信号强度较高时,RSSI值较好,因此高信号强度将满足在“良好”阈值的条件内,如图4所示。相反,分组丢失越低越好,因此低的值(或该值的变化率)将满足在“良好阈值”的条件内。
如果新值不在“良好”阈值或范围内,则代理130前进以在步骤435中确定新值是否在“可用”范围内(因为代理130到达步骤435,因此新值在“良好”范围以外)。如果是这样,则在步骤440中,代理130减小上述双击延迟。这是因为当前网络似乎不可靠,因此,应尽快在替选网络上发送请求。在步骤440中减少双击延迟之后,代理返回至在步骤420中等待下一网络状态更新。
如果代理130在步骤435中确定新值不在“可用”范围内,则在步骤445中,代理130将便携式通信设备100可用的网络的另一网络设置为主网络。如上所述,可以基于其他网络之间的偏好排序来完成对另一网络的选择(例如,排序最高的网络)。
本发明的实施方式的一些方面涉及如上面关于图3所讨论的,基于双击请求的响应时间来选择另一网络作为主网络。仍然参照图4,在本发明的一些实施方式中,在代理130在步骤450中经由当前的主网络执行双击之后,代理130然后在步骤455处计算双击获胜者的响应时间(例如,请求的时间戳与来自网络的相应响应的时间戳之间的差)。在步骤460中,代理130确定响应时间是否超过“可用”阈值,例如时间阈值,该时间阈值足够低以避免由应用280检测到的故障/超时,但是足够高以指示该网络没有充分响应,无法被优选为用于将来请求的默认网络(例如2秒至4秒)。如果是这样,则如上所述,代理130在步骤445中选择新的主网络。
如果双击获胜者的响应时间在针对主网络所允许的最大“可用”时间阈值之内,则代理130在步骤465处检查主网络是否是双击获胜者。如果是,则主网络被确认为充分响应,并且代理130在步骤450处继续将其默认用于请求。然而,如果双击获胜者是次级网络,则在步骤470处增加针对主网络观察到的相继双击失败的数量。接下来,在步骤475处,代理130检查主网络的相继双击失败的数量是否超过指示主网络充分降级或无响应的“可用”阈值(例如2个至4个相继失败)。如果否,则主网络仍然可以充分响应,并且代理130在步骤450处继续将其默认用于请求。如果不是这样,则如上所述,代理130在步骤445中选择新的主网络。
当切换到另一网络以默认用作主网络时,这通常意味着优选网络(例如Wi-Fi)存在问题(例如无响应或太慢),最好使用另一不太优选的网络(例如,蜂窝)。之后,更优选的网络可能稍后会再次变得充分响应,例如,如果用户再次移回更靠近Wi-Fi信号质量良好的位置。双击方法可以用于例如通过继续允许双击请求跨可用网络竞争、利用网络质量指示或其组合来确定可以使用比当前网络更好的网络作为主网络。即使在切换到新的主网络后也执行双击,使得能够查看以前的主网络的响应能力,并监测最初触发该切换的状况的改变。例如,如果由于超过相继双击失败而将主网络切换到蜂窝,则代理130可以简单地继续向Wi-Fi发送冗余请求,并且如果代理130在Wi-Fi上检测到相继的双击获胜者,则代理130然后可以切换回Wi-Fi作为主网络。
在一些实施方式中,基于诸如成本、性能、业务关系等因素的组合来确定可用网络之间的偏好排序。这些因素可以是可变的,例如网络性能(例如,临时拥塞)或网络流量成本(例如,在高峰时段期间较高),因此偏好排序可以动态改变。本发明的实施方式可以利用静态因素或动态因素的任何组合来考虑在任何时候优选哪个网络。例如,为了将性能作为因素考虑,可以监测可用网络的吞吐量(throughput)。由于系统(例如,代理130)正在处理网络流量,因此本发明的实施方式可以随后主动地测量当前网络带宽或流过系统的流量的时延(例如,最近时间段内的当前速率、最高速率),然后相应地调整偏好排序(例如,比蜂窝网络慢得多的Wi-Fi网络可以降低其相对排序,可能使得蜂窝网络可以被认为更加优选)。作为另一示例,为了将成本作为因素考虑,系统可以查询使用特定网络的当前成本。本发明的实施方式可以对网络或某个后端管理和/或定价系统进行应用编程接口(API)调用,以查询使用可用网络(例如,当前的Wi-Fi或蜂窝网络)的当前成本,然后相应地调整偏好排序。例如,这些成本有时可以是动态的,(例如当用户漫游到第三方蜂窝网络,尝试访问对于访问收费的Wi-Fi网络时),或者可能基于当前的按需定价/现货定价而有所变化,而当前的按需定价/现货定价会基于拥塞而增加。在本发明的实施方式的一些方面,实体诸如用户、移动网络运营商或设备制造商可以提供特定排序(例如,将偏好排序中较高的特定网络固定)或可以配置用于与网络的偏好排序结合的特定因素的权重。
本发明的前述实施方式可以依靠网络流量来触发它们各自的动作,诸如切换到不同的主网络,或者对可用网络的偏好重新排序(或重新排列)。在一些情况下,可能没有足够的网络流量来触发期望的动作,例如,当仅存在从服务器接收数据的单个长期有效的加密连接,而没有可以被双击的任何新的数据请求时。在本发明的一个实施方式中,代理130生成其自身的双击请求以生成最小级别的活动,以帮助触发对无响应的主网络的检测。例如,一种方法是自从内部接收到的双击的最后一个DNS请求以来监测最小时间阈值(例如几秒钟),如果超过了该时间阈值,则代理130执行测试DNS请求(例如,针对公知的主机名)的双击,这有助于在该最小时间阈值内检测无响应的主网络。对于普通技术人员而言明显的是,然后可以使用任何可以被双击的数据请求,例如TCP连接请求(例如,SYN)。类似地,这些简单轻巧的双击测试随后可以用于触发其他必要的动作,例如对可用网络的优选顺序进行重新排序。
负载平衡
本发明的实施方式的一些方面涉及增强网络上的慢速连接(例如,慢速Wi-Fi连接)以及另一网络上的另一连接(例如,蜂窝连接)的性能。在本发明的各种实施方式中,负载平衡技术在一个或更多个可用网络上分配负载以增加整体网络性能(例如,增加带宽、减少时延)。本发明的一些实施方式可以测量不同网络连接的性能(类似于以上描述的双击技术),并选择具有较高吞吐量或较少拥塞的网络连接或网络连接的组合。该方法使得能够基于可用网络的性能跨可用网络分配多个请求或连接,例如基于每个网络的最大可实现吞吐量、每个网络的待解决的(outstanding)请求/连接的数目或其组合进行分配。在本发明的其他实施方式中,所有网络连接(例如,Wi-Fi连接和蜂窝连接)都可以同时用于下载数据的不同部分,其中,沿着不同连接接收的数据在设备处重新组合。
本发明的实施方式针对检测在主要的更优选的网络繁忙或较慢时将网络流量分配给次要的较不优选的网络的时间。通常,期望在优选网络快速且具有足够容量时使用优选网络,并且仅在达到优选网络的容量时才使用其他较不优选的网络。然而,除非要传输足够的数据以使网络连接完全饱和,否则这难以准确地确定。此外,当与其他用户共享网络时(这对于Wi-Fi和蜂窝网络都是常见的),其他用户使用的容量将降低可以测量的峰值容量。因此,一些实施方式涉及在没有生成测试流量的情况下确定达到了优选网络的容量,并且独立于该网络上其他用户生成的网络负载而工作。本发明的一个实施方式是跟踪优选网络上的当前活动请求,并在达到该阈值时将请求分配给其他较不优选的网络。活动请求的概念在这里是任何逻辑请求/响应对,并且这可以应用于明文流量(例如HTTP GET)以及加密流量(例如,响应于发送出站加密数据而接收加密数据)。在明文流量的情况下,可以基于接收到完整的响应数据(例如,HTTP响应可以针对分块传输指定内容长度标头或数据结尾标记)来确定请求不再活动。对于加密流量,可能无法标识响应的显式结尾,因此在一些实施方式中,在接收到初始数据响应后,请求被视为已完成(例如,来自服务器的大多数响应小且在几秒钟内完成)。可替选地,存在可以用来识别经加密数据请求的结束的其他信号,诸如当自从接收到最后经加密数据块以来的时间超过来自服务器的数据块之间的典型最小时间(例如,2秒至3秒)时。这种跟踪活动请求的方法具有仅考虑具有正被积极处理的实际请求的连接的优点,并且避免考虑仍然存在但不活动的长期有效的连接(例如,池化未使用的连接)。这种方法还可以处理通过单个连接进行的流水线请求,因为每个新的流水线请求都作为相继的出站数据序列发送至服务器,并且这些中的每一个都可以增加活动请求计数,直到接收到来自服务器的相应的入站数据序列以减少活动请求计数。
利用“活动请求”的计数,每当超过主要的优选网络(例如,Wi-Fi)的阈值时,代理130然后就可以将新请求转移到另一较不优选的网络(例如,蜂窝)。该阈值(例如,最小阈值)控制网络的选择,使得针对新请求首先尝试主网络,并且如果这些活动请求在不超过该阈值的情况下迅速完成(例如,响应),则代理130将使用主网络来服务大部分网络流量。每当达到该阈值时,根据本发明的实施方式,代理130就将新请求引导到另一网络,并相应地跟踪针对该另一网络的活动请求的数量,以在可用网络之间建立平衡的负载分配。
本发明的另一实施方式是使用活动请求的数量来建立分配给每个网络的请求的比率。利用可用网络之间的活动请求的相对比率,系统可以保持多个网络之间活动请求的分配,以(例如,为了最佳性能)跨那些网络平衡网络负载。例如,较慢的网络可以具有与发送至较快的网络的请求相比在更长的时间帧内保持活动的请求,因此该方法提供了在不使用测试流量来确定网络中的每个网络的容量的情况下在多个网络之间分配流量的方式。在本发明的各种实施方式中,在可用网络中的每个网络之间保持的活动请求的比率被静态地配置、动态地计算、或组合地静态地配置和动态地计算。在一些实施方式中,将活动请求比率与针对主网络的最小阈值进行组合,使得在当前超过最小阈值时,将该比率用于在网络之间分配新请求。
图5是示出负载平衡方法的示例方法的高级流程图。该流程图可以由网络数据路径中的中介来执行,例如由图1中描述的应用280与应用服务器250之间的代理130来执行。根据本发明的一个实施方式,代理130在步骤410等待要从应用280发送至应用服务器250的数据请求。当在步骤55处从应用接收到数据请求时,代理130在步骤520处确定主网络是否已经超过其活动请求的最小阈值。如果否,则在步骤525处针对新请求选择主网络,然后进行到步骤555。如果是,则代理130例如按照偏好顺序遍历次级网络中的每一个,以通过检查其相对于主网络的活动请求的比率来识别或选择要使用的网络。如果在步骤535处主网络相对于当前次级网络的活动请求比率大于目标比率,则代理130在步骤545处选择当前次级网络以用于该请求,就好像它是主网络,然后代理130前进到步骤555。否则,如果主网络与当前次级网络之间的活动请求比率小于目标比率,则代理130在步骤530处继续到下一次级网络。如果在步骤540处不存在其他次级网络,则在步骤550处选择主网络,并前进到步骤555。在步骤555,已经针对该请求选择了网络,因此增加针对该网络的活动请求计数。在本发明的一个实施方式中,在步骤560处,将负载平衡方法与双击方法相结合,然后根据图3的流程图处理请求以提供防止所选网络无响应的冗余。当请求完成时(例如,当从所选网络接收到响应时),减少针对所选网络的活动请求的数量。
本发明的实施方式的一些方面涉及在不使用测试流量的情况下通过监测当前流经系统的网络活动所使用的带宽来测量每个网络的速度/带宽(例如,平均速度和峰值速度)。该方法使得系统(例如,代理130)能够也使用每个网络的这些带宽测量结果来计算这些可用网络之间的活动请求的适当比率,然后将新请求分配给各网络以保持该比率。例如,上面的表1示出了可以如何通过基于每个网络的相对速度跨多个网络分配负载来提高整体性能。由于网络(例如,蜂窝网络和Wi-Fi)通常由多个移动设备在多个用户之间共享,因此这些共享网络的性能可能会随时间变化(例如,由于用户之间的争用)。这样,这些带宽测量结果可以用于动态监测和更新可用网络之间的活动请求比率。
本发明的实施方式的一些方面涉及跟踪每个网络遇见的最大带宽(例如,特定的Wi-Fi SSID和BSSID,或特定的蜂窝塔)作为每个网络的可能的带宽上限,所述带宽上限可以用于计算活动请求比率。例如,如果对于网络,活动请求的数量正在增加,但是测量的带宽没有增加,则当前测量的带宽可以是该网络的可能的当前上限。此外,本发明的实施方式的一些方面涉及使用在带宽测量的时间帧期间传输的数据的最小或阈值量,以增加所测量的带宽是可能的上限的置信度并避免误报。在本发明的一些实施方式中,代理130例如基于当前测量结果与先前测量结果的接近度和/或基于在当前测量的时间帧期间传输了多少数据来计算当前带宽的置信水平(或置信得分)。具有置信水平使得系统能够例如通过建立更新比率所需的最小置信水平来确定是否应当使用当前测量的带宽来更新活动请求比率。然后,当针对数据请求选择网络时,代理130还确定当前选择的网络是否处于其带宽上限,并选择低于其带宽上限的另一网络,可能这样做而不管(例如否决)活动请求比率。
跟踪每个网络的活动请求也可以用于动态检测网络容量的变化。本发明的实施方式的一些方面涉及监测对于每个网络而言请求保持活动的时间,以及调整每个网络的活动请求阈值以允许每个网络能够在相似的时间量内完成活动请求(例如,减少活动请求的数量)。例如,如果发现一个网络完成活动请求的速度是另一网络的相应速度的两倍(例如,2倍),则活动请求的比率可以被调整成向较快网络发送的新请求的数量是向较慢网络发送的新请求的数量的两倍(例如,2倍)。每个网络的请求完成时间可能会随时间变化(例如,由于共享网络上其他用户的活动随时间增加或减少),因此这可以用于动态调整可用网络之间的活动请求比率。在一些实施方式中,该方法应用于网络活动不足以确定可用网络的峰值容量或速度的情况(例如,不需要使用测试流量来确定峰值容量)。该方法还可以与先前讨论的使用每个网络的速度测量结果来计算适当的比率的方法相结合,例如通过向每种方法分配权重并且基于组合的权重计算活动请求的比率来进行结合。在一些实施方式中,每种方法的相对权重基于它们各自的置信度来调整。例如,当传输的数据量较高时,当前测量的网络速度更准确,而当传输的数据量较低时,测量请求的活动时间更准确,因此可以基于这些因素(例如,每个请求传输的字节)来动态地调整每个的权重。
以上方法的一些实施方式使用响应时间或时延——例如通过测量从发送请求到接收响应的第一字节的时间(例如,到第一字节的时间,而不等待活动请求完全完成)——来计算发送至每个网络的请求的比率。该方法也可以与上述将速度测量结果和每个请求的活动时间作为因素的方法以类似的方式(例如,计算组合的权重)进行组合。对于本领域的普通技术人员而言明显的是,可以利用各种不同的性能度量来确定分配给每个可用网络的活动请求的最佳比率。
上述阈值或比率中的每一个还可以在每个网络的基础上被调整(例如,基于针对每个不同的Wi-Fi SSID看到的历史结果来跟踪单独的值),使得系统获知用于每个网络的阈值(例如,最佳阈值)。这允许系统针对网络建立操作设置(例如,最优操作设置),而无需在每次加入网络时从头开始。先前讨论的各种测量结果和计算比率可以针对每个网络(例如,根据网络的Wi-Fi SSID)被存储并且每当重新加入该特定网络时被恢复,然后随着时间的推移被连续更新。
Wi-Fi连接管理
本发明的实施方式的一些方面涉及使Wi-Fi连接过程自动化,例如检查其他具有较好信号质量的Wi-Fi网络,或者在设备处于“良好”Wi-Fi连接范围内时生成通知,或者抢先从当前连接的Wi-Fi网络上脱离以强制设备加入较好的Wi-Fi网络。本发明的实施方式的一些方面涉及使登录强制门户(例如,由企业提供但服从登录、密码或支付要求的Wi-Fi连接)的过程自动化。
本发明的实施方式的一方面涉及利用便携式通信设备100对可用网络进行扫描(例如,Wi-Fi重新扫描)以连接至不同的网络以提高性能。这些重新扫描在大多数操作系统中会定期发生,例如,在用户移动时,在当前网络的RSSI改变时,或者在用户查看可用网络列表时发生。例如,当上面关于例如图3描述的双击触发主网络切换时(例如,当处于Wi-Fi网络的死区中时),检查优选类型的不同的网络(例如,具有更好RSSI的另一Wi-Fi网络)可能是有益的,因为当前网络被认为较慢或无响应。另一示例是当负载平衡确定活动请求完成得太慢时(例如,平均或更坏情况时间低于某个最小阈值)。
无论触发如何,任何检测到的当前连接网络的降级都可以用于触发切换到相同类型的另一网络。换句话说,关于双击方法的较早讨论是从一种网络类型(例如,Wi-Fi)切换到另一网络类型(例如,用于单个请求,或者用作所有请求的默认/主网络),但是这可以进一步推广为在相同类型的不同网络之间切换。例如,这对于切换到另一Wi-Fi网络(例如,具有不同的SSID,或者具有相同的SSID但具有不同的BSSID)将是有帮助的,因为设备通常在当前的网络不可用之前不会切换到另一Wi-Fi网络,因为设备通常仅使用设置为足够高以确定问题的超时来检测问题。然而,如上所述,这些超时通常太高,因此太慢而无法无缝地将用户转移到较好的网络(例如,应用可能会挂起达长时间和/或用户可能会在设备切换到较好的网络之前看到错误消息)。例如,使用双击方法,系统可以在用户看到超时故障之前更快地决定改变到优选类型的另一网络(例如,从当前的Wi-Fi网络断开连接并加入另一Wi-Fi网络),从而实现更快、更无缝的过渡,同时使优选网络类型的质量/可用性最大化。另外,由于便携式通信设备100可能需要执行长的多步骤处理以加入到Wi-Fi网络并向Wi-Fi网络进行认证,因此不同的不相关的Wi-Fi网络之间的切换可能较慢,因此双击方法可以如先前所讨论的在此过渡期间通过使用蜂窝网络确保更加无缝的Wi-Fi网络到Wi-Fi网络的过渡。
图6示出了具有多个Wi-Fi网络的街区的示例,其中每个Wi-Fi网络具有指示信号质量好的区域的内部圆形区域和指示信号质量差的区域(例如,Wi-Fi死区)的外部圆形区域。例如,当一个Wi-Fi网络(例如,Wi-Fi网络“A”)的外部区域与另一Wi-Fi网络(例如,Wi-Fi网络“B”)的内部区域交叠时,则可能导致Wi-Fi网络A阻止Wi-Fi网络B的使用,例如当移动设备首先附接至Wi-Fi网络A但随后保持附接至Wi-Fi网络A时,即使Wi-Fi网络B可以提供更好的网络连接。
图7示出了与图6相同的示例,但是利用了根据本发明实施方式的技术。利用双击技术,当移动设备100处于各Wi-Fi网络的外部不可用区域中时,它可以在处于相关联的Wi-Fi网络的盲区中的情况下利用蜂窝网络来自动填充网络连接。利用负载平衡技术,每个Wi-Fi的内部可用区域都可以利用蜂窝网络来将两者的带宽组合,以提高整体性能。利用连接管理技术,可以通过执行对另一Wi-Fi网络的扫描来将移动设备100自动切换到另一Wi-Fi网络,例如在外部死区中通过双击逻辑或者在内部良好区域中通过负载平衡逻辑来触发。
尽管已经结合某些示例性实施方式描述了本发明,但是应该理解,本发明不限于所公开的实施方式,相反,其意在覆盖所附权利要求及其等同物的精神和范围内所包括的各种修改和等同布置。
Claims (44)
1.一种用于管理便携式通信设备上的网络流量的方法,所述便携式通信设备包括处理器、存储器以及被配置成连接至多个网络的多个网络接口,所述方法包括:
由在所述处理器上运行的流量管理器拦截去往和来自在所述处理器上运行的应用的网络数据;
由所述流量管理器经由所述多个网络向服务器发送所述网络数据的幂等请求;
由所述流量管理器经由所述多个网络中的第一网络从所述服务器接收对所述幂等请求的响应;以及
由所述流量管理器选择所述多个网络中的所述第一网络,以用于接收和发送对所述应用的响应。
2.根据权利要求1所述的方法,其中,经由所述多个网络向所述服务器发送所述幂等请求包括:在所述多个网络中的第二网络上发送所述幂等请求;并且
其中,所述方法还包括终止所述第二网络上的所述幂等请求。
3.根据权利要求1所述的方法,其中,经由所述多个网络向所述服务器发送所述幂等请求包括:
经由所述多个网络中的一个网络向所述服务器发送所述幂等请求;以及
根据延迟,经由所述多个网络中的一个或更多个其他网络向所述服务器发送所述幂等请求。
4.根据权利要求3所述的方法,其中,所述延迟短于在所述便携式通信设备上运行的所述应用的应用级超时。
5.根据权利要求3所述的方法,其中,基于对所述幂等请求的典型响应时间来设置所述延迟。
6.根据权利要求3所述的方法,其中,所述幂等请求与网络协议相关联,并且
其中,基于与所述幂等请求相关联的网络协议来设置所述延迟。
7.根据权利要求3所述的方法,其中,基于对所述幂等请求的响应的大小来设置所述延迟。
8.根据权利要求3所述的方法,其中,基于网络质量度量来设置所述延迟。
9.根据权利要求3所述的方法,其中,所述多个网络按照偏好排序排列,并且
其中,根据所述偏好排序来选择所述一个或更多个其他网络。
10.根据权利要求9所述的方法,其中,根据所述偏好排序,所述网络中的各网络与不同的延迟相关联。
11.根据权利要求9所述的方法,还包括:根据一个或更多个动态因素,重新按照偏好排序排列所述多个网络。
12.根据权利要求11所述的方法,其中,所述一个或更多个动态因素包括网络性能。
13.根据权利要求11所述的方法,其中,所述一个或更多个动态因素包括网络流量成本。
14.根据权利要求1所述的方法,其中,所述多个网络包括多个不同类型的网络。
15.根据权利要求14所述的方法,其中,所述网络的类型包括以下中的一个或更多个:蜂窝网络、蓝牙网络和Wi-Fi网络。
16.一种用于管理便携式通信设备上的网络流量的方法,所述便携式通信设备包括处理器、存储器以及被配置成连接至多个网络的多个网络接口,所述方法包括:
经由所述多个网络中的第一网络处理在所述处理器上运行的应用的网络流量,所述第一网络被在所述处理器上运行的操作系统指定为主网络;
监测与所述第一网络相关联的多个网络状态信息;
当所接收的网络状态信息的一个或更多个参数在一个或更多个阈值之外时,检测到所述第一网络的问题;
响应于检测到所述第一网络的问题,选择所述多个网络中的第二网络作为所述主网络;以及
经由作为经更新的所述主网络的所述第二网络处理所述网络流量。
17.根据权利要求16所述的方法,其中,所述网络流量包括请求和对所述请求的响应,并且
其中,基于所述请求的时间戳与所述响应的时间戳之间的响应时间超过最大阈值,检测到所述第一网络的问题。
18.根据权利要求16所述的方法,其中,检测到所述第一网络的问题包括:
监测关于所述第一网络的网络统计信息中的至少一个;以及
在所述网络统计信息的变化超过阈值时,检测到所述问题。
19.根据权利要求18所述的方法,其中,所述网络统计信息包括分组丢失率或不良分组率。
20.根据权利要求16所述的方法,其中,所述第一网络是无线网络,并且
其中,检测到所述第一网络的问题包括:
监测所述无线网络的信号强度;以及
在所述信号强度下降至阈值信号强度以下时,检测到所述问题。
21.根据权利要求16所述的方法,其中,根据所述多个网络的偏好排序来选择所述多个网络中的所述第二网络。
22.根据权利要求16所述的方法,其中,基于在所述第一网络上接收到响应之前在其他网络上接收到的响应,检测到所述第一网络的问题。
23.一种便携式通信设备,包括处理器、存储器以及被配置成连接至多个网络的多个网络接口,所述存储器存储指令,所述指令在由所述处理器执行时使所述处理器通过以下操作来管理所述便携式通信设备的网络流量:
由在所述处理器上运行的流量管理器拦截去往和来自在所述处理器上运行的应用的网络数据;
由所述流量管理器经由所述多个网络向服务器发送所述网络数据的幂等请求;
由所述流量管理器经由所述多个网络中的第一网络从所述服务器接收对所述幂等请求的响应;以及
由所述流量管理器选择所述多个网络中的所述第一网络,以用于接收和发送对所述应用的响应。
24.根据权利要求23所述的便携式通信设备,其中,经由所述多个网络向所述服务器发送所述幂等请求包括:在所述多个网络中的第二网络上发送所述幂等请求;并且
其中,所述指令还包括使所述处理器终止所述第二网络上的所述幂等请求的指令。
25.根据权利要求23所述的便携式通信设备,其中,经由所述多个网络向所述服务器发送所述幂等请求包括:
经由所述多个网络中的一个网络向所述服务器发送所述幂等请求;以及
根据延迟,经由所述多个网络中的一个或更多个其他网络向所述服务器发送所述幂等请求。
26.根据权利要求25所述的便携式通信设备,其中,所述延迟短于在所述便携式通信设备上运行的所述应用的应用级超时。
27.根据权利要求25所述的便携式通信设备,其中,所述延迟是基于对所述幂等请求的典型响应时间设置的。
28.根据权利要求25所述的便携式通信设备,其中,所述幂等请求与网络协议相关联,并且
其中,所述延迟是基于与所述幂等请求相关联的网络协议设置的。
29.根据权利要求25所述的便携式通信设备,其中,所述延迟是基于对所述幂等请求的响应的大小设置的。
30.根据权利要求25所述的便携式通信设备,其中,所述延迟是基于网络质量度量设置的。
31.根据权利要求25所述的便携式通信设备,其中,所述多个网络按照偏好排序排列,并且
其中,所述一个或更多个其他网络是根据所述偏好排序来选择的。
32.根据权利要求31所述的便携式通信设备,其中,根据所述偏好排序,所述网络中的各网络与不同的延迟相关联。
33.根据权利要求31所述的便携式通信设备,其中,所述存储器还存储在由所述处理器执行时使所述处理器执行以下操作的指令:根据一个或更多个动态因素,重新按照偏好排序排列所述多个网络。
34.根据权利要求33所述的便携式通信设备,其中,所述一个或更多个动态因素包括网络性能。
35.根据权利要求34所述的便携式通信设备,其中,所述一个或更多个动态因素包括网络流量成本。
36.根据权利要求23所述的便携式通信设备,其中,所述多个网络包括多个不同类型的网络。
37.根据权利要求36所述的便携式通信设备,其中,所述网络的类型包括以下中的一个或更多个:蜂窝网络、蓝牙网络和Wi-Fi网络。
38.一种便携式通信设备,包括处理器、存储器以及被配置成连接至多个网络的多个网络接口,所述存储器存储指令,所述指令在由所述处理器执行时使所述处理器通过以下操作来管理所述便携式通信设备的网络流量:
经由所述多个网络中的第一网络处理在所述处理器上运行的应用的网络流量,所述第一网络被在所述处理器上运行的操作系统指定为主网络;
监测与所述第一网络相关联的多个网络状态信息;
当所接收的网络状态信息的一个或更多个参数在一个或更多个阈值之外时,检测到所述第一网络的问题;
响应于检测到所述第一网络的问题,选择所述多个网络中的第二网络作为所述主网络;以及
经由作为经更新的所述主网络的所述第二网络处理所述网络流量。
39.根据权利要求38所述的便携式通信设备,其中,所述网络流量包括请求和对所述请求的响应,并且
其中,基于所述请求的时间戳与所述响应的时间戳之间的响应时间超过最大阈值,检测到所述第一网络的问题。
40.根据权利要求38所述的便携式通信设备,其中,用于检测到所述第一网络的问题的指令包括在由所述处理器执行时使所述处理器执行以下操作的指令:
监测关于所述第一网络的网络统计信息中的至少一个;以及
在所述网络统计信息的变化超过阈值时,检测到所述问题。
41.根据权利要求40所述的便携式通信设备,其中,所述网络统计信息包括分组丢失率或不良分组率。
42.根据权利要求38所述的便携式通信设备,其中,所述第一网络是无线网络,并且
其中,检测到所述第一网络的问题包括:
监测所述无线网络的信号强度;以及
在所述信号强度下降至阈值信号强度以下时,检测到所述问题。
43.根据权利要求38所述的便携式通信设备,其中,所述多个网络中的所述第二网络是根据所述多个网络的偏好排序来选择的。
44.根据权利要求38所述的便携式通信设备,其中,基于在所述第一网络上接收到响应之前在其他网络上接收到的响应,检测到所述第一网络的问题。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862678810P | 2018-05-31 | 2018-05-31 | |
US62/678,810 | 2018-05-31 | ||
PCT/US2019/035082 WO2019232497A1 (en) | 2018-05-31 | 2019-05-31 | Systems and methods for dynamic channel bonding |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112205036A true CN112205036A (zh) | 2021-01-08 |
CN112205036B CN112205036B (zh) | 2024-04-02 |
Family
ID=68693493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980036540.6A Active CN112205036B (zh) | 2018-05-31 | 2019-05-31 | 动态信道绑定的系统和方法 |
Country Status (8)
Country | Link |
---|---|
US (2) | US11012908B2 (zh) |
EP (1) | EP3815432B1 (zh) |
JP (1) | JP7209745B2 (zh) |
KR (1) | KR102457792B1 (zh) |
CN (1) | CN112205036B (zh) |
AU (1) | AU2019279102A1 (zh) |
CA (1) | CA3101843A1 (zh) |
WO (1) | WO2019232497A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024087692A1 (zh) * | 2022-10-27 | 2024-05-02 | 华为技术有限公司 | 设备管理方法、设备、系统和存储介质 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112152933B (zh) * | 2019-06-27 | 2023-03-10 | 华为技术有限公司 | 一种发送流量的方法和装置 |
US20210399960A1 (en) * | 2020-06-23 | 2021-12-23 | Connectify, Inc. | Optimized data streaming detection and prioritization |
US11496337B2 (en) * | 2021-01-13 | 2022-11-08 | Cisco Technology, Inc. | Openroaming based remote worker |
US11789807B1 (en) | 2021-03-30 | 2023-10-17 | Amazon Technologies, Inc. | Autonomous management of communication links |
US11909850B1 (en) * | 2021-06-23 | 2024-02-20 | Amazon Technologies, Inc. | Dynamic improvement of a communication channel |
US11362990B1 (en) * | 2021-07-24 | 2022-06-14 | Uab 360 It | Reassigning exit internet protocol addresses in a virtual private network server |
US11909580B2 (en) * | 2022-01-10 | 2024-02-20 | T-Mobile Usa, Inc. | Recovering from data stall event in a multi-network environment |
US20240056372A1 (en) * | 2022-08-09 | 2024-02-15 | Dish Network L.L.C. | Methods and systems for selecting a redundant network source at a gateway |
JP2024056403A (ja) * | 2022-10-11 | 2024-04-23 | 国立研究開発法人情報通信研究機構 | 制御パケット送信システム、制御パケット送信方法、及び制御パケット送信プログラム |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141686A (en) * | 1998-03-13 | 2000-10-31 | Deterministic Networks, Inc. | Client-side application-classifier gathering network-traffic statistics and application and user names using extensible-service provider plugin for policy-based network control |
EP1962471A1 (en) * | 2007-02-21 | 2008-08-27 | Alcatel Lucent | Method of providing an access to a real-time service |
WO2010007556A1 (en) * | 2008-07-18 | 2010-01-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Access network selection |
EP2424177A1 (en) * | 2010-08-27 | 2012-02-29 | Sandvine Incorporated ULC | Method and system for network data flow management |
WO2015006773A1 (en) * | 2013-07-12 | 2015-01-15 | Seven Networks, Inc. | Transport protocol layer optimization for managing signaling and power consumption |
WO2016037148A1 (en) * | 2014-09-05 | 2016-03-10 | Mobophiles, Inc., Dba Mobolize | System and method of adaptive rate control and traffic management |
US20160072716A1 (en) * | 2014-03-04 | 2016-03-10 | Mobophiles, Inc., Dba Mobolize | System and method of adaptive rate control and traffic management |
US20170373804A1 (en) * | 2014-12-17 | 2017-12-28 | Convida Wireless, Llc | Methods for enabling delay-awareness in the constrained application protocol (coap) |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9215283B2 (en) * | 2011-09-30 | 2015-12-15 | Alcatel Lucent | System and method for mobility and multi-homing content retrieval applications |
ES2548412T3 (es) * | 2012-06-15 | 2015-10-16 | Nec Europe Ltd. | Método y sistema para traspaso de un equipo de usuario en redes basadas en celdas |
US9705957B2 (en) * | 2013-03-04 | 2017-07-11 | Open Garden Inc. | Virtual channel joining |
US10749918B2 (en) * | 2014-11-10 | 2020-08-18 | Avago Technologies International Sales Pte. Limited | Adaptive streaming with early client indication |
US20170230457A1 (en) * | 2016-02-05 | 2017-08-10 | Microsoft Technology Licensing, Llc | Idempotent Server Cluster |
US10638409B2 (en) * | 2017-05-19 | 2020-04-28 | 7Signal Solutions, Inc. | Wi-Fi roaming management |
US10841222B2 (en) * | 2016-07-05 | 2020-11-17 | Ologn Technologies Ag | Systems, apparatuses and methods for network packet management |
-
2019
- 2019-05-31 CN CN201980036540.6A patent/CN112205036B/zh active Active
- 2019-05-31 AU AU2019279102A patent/AU2019279102A1/en active Pending
- 2019-05-31 US US16/428,939 patent/US11012908B2/en active Active
- 2019-05-31 JP JP2020566841A patent/JP7209745B2/ja active Active
- 2019-05-31 EP EP19811795.4A patent/EP3815432B1/en active Active
- 2019-05-31 CA CA3101843A patent/CA3101843A1/en active Pending
- 2019-05-31 KR KR1020207037944A patent/KR102457792B1/ko active IP Right Grant
- 2019-05-31 WO PCT/US2019/035082 patent/WO2019232497A1/en unknown
-
2021
- 2021-04-12 US US17/228,275 patent/US11937141B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6141686A (en) * | 1998-03-13 | 2000-10-31 | Deterministic Networks, Inc. | Client-side application-classifier gathering network-traffic statistics and application and user names using extensible-service provider plugin for policy-based network control |
EP1962471A1 (en) * | 2007-02-21 | 2008-08-27 | Alcatel Lucent | Method of providing an access to a real-time service |
WO2010007556A1 (en) * | 2008-07-18 | 2010-01-21 | Telefonaktiebolaget Lm Ericsson (Publ) | Access network selection |
EP2424177A1 (en) * | 2010-08-27 | 2012-02-29 | Sandvine Incorporated ULC | Method and system for network data flow management |
WO2015006773A1 (en) * | 2013-07-12 | 2015-01-15 | Seven Networks, Inc. | Transport protocol layer optimization for managing signaling and power consumption |
US20160072716A1 (en) * | 2014-03-04 | 2016-03-10 | Mobophiles, Inc., Dba Mobolize | System and method of adaptive rate control and traffic management |
WO2016037148A1 (en) * | 2014-09-05 | 2016-03-10 | Mobophiles, Inc., Dba Mobolize | System and method of adaptive rate control and traffic management |
US20170373804A1 (en) * | 2014-12-17 | 2017-12-28 | Convida Wireless, Llc | Methods for enabling delay-awareness in the constrained application protocol (coap) |
Non-Patent Citations (2)
Title |
---|
夏靖波;罗骞;: "IP网络运行质量模糊综合评估方法研究", 电子科技大学学报, no. 02 * |
张莹;李家军;王蒋凤;: "物联网中物资传送实时性调度仿真", 计算机仿真, no. 07 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024087692A1 (zh) * | 2022-10-27 | 2024-05-02 | 华为技术有限公司 | 设备管理方法、设备、系统和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
KR20210015955A (ko) | 2021-02-10 |
WO2019232497A8 (en) | 2020-12-10 |
JP2021525985A (ja) | 2021-09-27 |
EP3815432A1 (en) | 2021-05-05 |
AU2019279102A1 (en) | 2020-12-10 |
WO2019232497A1 (en) | 2019-12-05 |
EP3815432C0 (en) | 2024-03-06 |
US20190373526A1 (en) | 2019-12-05 |
JP7209745B2 (ja) | 2023-01-20 |
EP3815432B1 (en) | 2024-03-06 |
US20210235349A1 (en) | 2021-07-29 |
CA3101843A1 (en) | 2019-12-05 |
KR102457792B1 (ko) | 2022-10-20 |
CN112205036B (zh) | 2024-04-02 |
US11937141B2 (en) | 2024-03-19 |
EP3815432A4 (en) | 2021-08-11 |
US11012908B2 (en) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112205036B (zh) | 动态信道绑定的系统和方法 | |
CN113261247B (zh) | 用于维护连续网络服务的方法和客户端设备 | |
EP3934291A1 (en) | Method and device for providing connectivity to terminal in order to use edge computing service | |
EP3039837B1 (en) | Mptcp scheduling | |
US9338674B2 (en) | Systems, structures and associated processes for optimization of state transitions within wireless networks | |
KR101937004B1 (ko) | 다중-경로 tcp의 사용을 제어하기 위한 방법, 네트워크 노드, 시스템 및 컴퓨터 프로그램 제품 | |
US20150237525A1 (en) | Traffic Shaping and Steering for a Multipath Transmission Control Protocol Connection | |
US20170085484A1 (en) | Method and devices for controlling usage of multi-path tcp | |
US20140068059A1 (en) | Approximation of the physical location of devices and transitive device discovery through the sharing of neighborhood information using wireless or wired discovery mechanisms | |
WO2022100255A1 (zh) | 网络切换方法、装置、存储介质及电子设备 | |
US20170359843A1 (en) | Zero-Round-Trip-Time Connectivity over the Wider Area Network | |
TWI753496B (zh) | 無線通訊網路中之條件組態 | |
WO2020003929A1 (en) | Method for managing first access network node, apparatus, generalized node-b, gnb, of 5g network, non-transitory computer-readable medium, computer program product, and data set | |
US20210352015A1 (en) | Method and device for hosting application by access node | |
Rahmati et al. | Seamless TCP migration on smartphones without network support | |
Rahmati et al. | Seamless flow migration on smartphones without network support | |
US10051508B2 (en) | System and method for mobility support selection | |
CN115297058A (zh) | 一种网络拥塞的处理方法、装置、终端、存储介质 | |
KR102351395B1 (ko) | Mptcp 프록시 시스템 및 이의 운용방법 | |
KR102157521B1 (ko) | 피투피 통신 제어 방법 및 이를 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |