CN109863723A - 存在多个网络接口情况下的自动网络连接恢复 - Google Patents
存在多个网络接口情况下的自动网络连接恢复 Download PDFInfo
- Publication number
- CN109863723A CN109863723A CN201780065885.5A CN201780065885A CN109863723A CN 109863723 A CN109863723 A CN 109863723A CN 201780065885 A CN201780065885 A CN 201780065885A CN 109863723 A CN109863723 A CN 109863723A
- Authority
- CN
- China
- Prior art keywords
- path
- connection
- network interface
- suspicious
- routing
- 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.)
- Withdrawn
Links
- 238000001514 detection method Methods 0.000 claims abstract description 29
- 238000000034 method Methods 0.000 claims description 35
- 238000012790 confirmation Methods 0.000 claims description 34
- 238000003860 storage Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 12
- 230000001413 cellular effect Effects 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 10
- 239000000523 sample Substances 0.000 claims description 10
- 239000000725 suspension Substances 0.000 claims description 4
- 230000004888 barrier function Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 11
- 238000004891 communication Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000008859 change Effects 0.000 description 6
- 230000006399 behavior Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000004083 survival effect Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000000151 deposition Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 206010033799 Paralysis Diseases 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 210000003127 knee Anatomy 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0659—Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/147—Network analysis or design for predicting network behaviour
-
- 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
- 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/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- 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
-
- 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/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开增强了与在连接故障之后恢复网络连接性相关联的用户体验。针对使用第一网络接口上的第一路由的连接检测确认故障。当连接的路径被发现不可达时,第二路由被标识为第一路由的备选。当第二路由在第一网络接口上时,连接被移动到第二路由。但是,当第二路由在第二网络接口上时,连接被转换到第二网络接口上的第二路由。当第一路由的不可达和移动路径超过基于该路由的总路径的阈值时,第一路由被标记为死亡。标识备选路由并将连接转换到不同网络接口上的路由提供了在恢复网络连接时的高效、改善的用户体验。
Description
背景技术
诸如个人计算机、膝上型计算机、移动电话等的电子设备越来越多地配备有通过各种网络类型和/或协议实现网络连接的多个网络接口。例如,许多移动电话配备有用于经由Wi-Fi网络、蜂窝网络、BLUETOOTH品牌通信网络等进行通信的网络接口。由于与不同类型网络的连接基于时间、位置和/或网络架构的状态而变化,因此设备在网络之间转换以维护网络性能的能力对于提供令人满意的用户体验变得重要。
一些现有***监测连接质量以确定何时切换通过单个接口的路由之间的连接。例如,当发现通过第一路由器的连接不良时,设备可以将连接从一个Wi-Fi路由器移动到另一Wi-Fi路由器。然而,这些现有***中的一些***被设计用于单接口主机,并且不能很好地用于多宿主场景。
发明内容
提供本“发明内容”来以简化形式介绍一些概念,这些概念在下面的“具体实施方式”中被进一步描述。本“发明内容”不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于帮助确定所要求保护的主题的范围。
一种计算机化方法包括:检测针对使用第一网络接口上的第一路由的连接的确认故障,并且响应于检测到确认故障,递增与该连接相关联的路径的可疑可达性计数。该方法还包括:当路径的可疑可达性计数超过可疑可达性阈值时,将第二路由标识为第一路由的备选;将路径移动到所标识的第二路由,并且当所标识的第二路由在第一网络接口上时,递增第一路由的移动路径计数;以及当所标识的第二个路由在第二网络接口上时,递增第一路由的不可达路径计数。该计算机化方法还包括:当第一路由的不可达路径计数和第一路由的移动路径计数之和超过坏路径阈值时,将第一路由标记为死亡,坏路径阈值基于与第一路由相关联的总路径计数;以及当第二路由在第二网络接口上时,将使用第一网络接口上的第一路由的连接转换为使用第二路由。
通过参考以下结合附图考虑的详细描述,许多伴随特征将变得更加容易理解。
附图说明
图1是图示根据一个实施例的包括被配置为形成经由网络接口的网络连接并在其上进行通信的计算设备的***的示例性框图;
图2是图示根据一个实施例的经由网络接口的网络连接的协议层的示例性框图;
图3是图示根据一个实施例的、通过在第二网络接口上路由来恢复第一网络接口上的网络连接的计算设备的操作的示例性流程图;
图4是图示根据一个实施例的、通过在第一网络接口或第二网络接口上路由来恢复第一网络接口上的网络连接的计算设备的操作的示例性流程图;以及
图5图示了作为功能框图的根据一个实施例的计算装置。
对应的附图标记指示在所有附图中的对应的部分。在图1至图5中,***被图示为示意图。附图可以不按比例绘制。
具体实施方式
下面描述的计算设备被配置为增强与维护跨多个网络接口的网络连接性相关联的用户体验。基于坏路径检测死亡路由和/或网关,该坏路径是移动路径和无法移动的不可达路径的组合。当坏路径的数目超过阈值时,相关联的路由被认为死亡,并且网络流量被路由和/或转换到其他路由。用于宣告路由为“死亡”的阈值可以是动态的,使得阈值基于与路由相关联的路径总数目而变化,从而在宽范围的不同总路径计数内提供精确的死亡网关检测(例如,具有非常少路径的路由比具有许多路径的路由具有更高的阈值等)。动态阈值可以基于所收集的反馈随时间进行微调,以持续地改进死亡网关检测的精确性和网络连接性能。
此外,使用本文所述的死亡网关检测,提供了网络连接在不同网络接口之间的更快转换。使用所述的设备和方法,考虑在不同网络接口上的备选路由,使得在等待故障连接上的‘超时’之前,故障连接被转换到不同网络接口上的路由(例如,拆除或以其他方式终止故障连接,并使新的类似连接在不同的网络接口上被形成)等。新连接在其他网络接口上被路由。本公开还标识活动路径并使用它们计算坏路径阈值,并且被动地探测死亡路由,并且如果探测得到确认成功,则将它们标记为未死亡。通过提供更平滑、更快的网络连接转换,减少等待时间以及使临时网络故障不那么明显,改善了用户体验。
图1图示了根据一个实施例的***100的示例性框图,***100包括被配置为经由网络接口(例如,网络接口104和106等)形成网络连接并在网络连接上通信的计算设备102。计算设备102包括网络接口104、106,计算设备102通过这些网络接口连接至网络。网络接口104通过交换机108连接至路由器110、112。网络接口106连接至路由器114。
路由器110、112、114中的每个路由器都连接至网络116(例如,互联网、私人内联网等)。此外,服务器118、120连接至网络116,使得它们可以彼此通信、与计算设备102通信和/或与也可以连接至网络116的其他计算设备、服务器等通信。
计算设备102可以包括个人计算机、膝上型计算机、移动电话、平板电脑等。计算设备102的网络接口104、106可以被配置为在相同或不同类型的网络上操作。例如,接口104可以被配置为在Wi-Fi网络上操作,而接口106可以被配置为在蜂窝网络上操作。还考虑其他网络接口类型,诸如有线网络接口(例如,以太网网络接口等)、BLUETOOTH品牌通信网络接口、卫星网络接口等。在一些示例中,接口104、106是用于发送和接收分组的硬件网络接口的软件表现。
路由器110、112、114是被配置为在网络上路由来自设备的网络流量的设备(例如,计算设备等)。如所示,路由器110、112、114可以在网络116上路由去往和来自计算设备102的网络流量。计算设备102可以经由路由器110、112、114中的一个或多个路由器与服务器118、120中的一个或多个服务器通信。路由器功能通常被计算机网络等领域中的普通技术人员所知,因此,应当理解,路由器110、112、114以典型方式工作。此外,应当理解,虽然作为示例,图1中的***100示出三个路由器、交换机、网络、服务器等,但是也可以使用网络和/或联网设备的其他组织或布置而不脱离本文所述的本公开的各方面的范围。
服务器118、120也可以包括计算设备。服务器118、120可以提供至连接设备(例如,计算设备102等)的服务,诸如服务网站以在连接设备上浏览、服务视频以在连接设备上进行流传输、经由文件传输协议(FTP)服务存储的文件等。虽然在***100中示出两个服务器118、120,但应当理解,可以在***中包括更多、更少或不同的服务器而不脱离本文所述的本公开的各方面的范围。
本文所述的***可以用于检测联网应用中的死亡路由/网关及其状态以及网络连接性恢复。该***可以在各种网络场景中采用死亡网关检测启发法,这些网络场景包括多宿主场景(例如,诸如计算设备102的设备具有多于一个接口(例如,接口104、106),诸如Wi-Fi接口和蜂窝接口等)和单接口多网关场景(例如,具有单个接口的设备连接至外部交换机(例如,交换机108),该交换机连接至两个路由器(例如,路由器110、112))。在一个示例中,连接管理器使用所描述的网关检测技术作为决定何时将连接从坏接口转换到好接口以及何时转换回已经变为好接口的先前的坏接口的方式。此外,该***可以针对路由状态从“存活”状态转换为“死亡”状态,使路由变化通知能够被提供给客户(例如,订阅路由变化通知的应用),反之亦然。备选地或附加地,该***暴露(expose)可以(例如经由Get-NetRoute命令)被查询的路由状态。
如本文所述的死亡网关检测(DGD)可以由***使用以弄清经由路由器的外部连接是否断开。外部连接可能由于路由器本身发生故障而断开或者其可能由于连接路径中的上行链路路由器发生故障而断开。例如,缆线服务可能停止运行,这导致目标服务器不可达。DGD更快地检测到何时发生这种状况,这使得***能够采取措施以更快地恢复连接性。
图2是图示根据一个实施例的经由网络接口的网络连接的协议层(例如,传输层222、互联网协议(IP)层224(或其他网络协议层)等)的示例性框图200。传输层222包括连接对象226、228、230和232。在一个示例中,传输层222是传输控制协议/互联网协议(TCP/IP)堆栈的层4或L4,其实现诸如TCP,一种面向连接的协议;用户数据报协议(UDP),一种缺少确认的无连接协议等的连接协议。连接对象(例如,连接对象226-232等)是使用一个或多个网络协议实现至网络的连接的软件对象。连接对象可以包括源IP地址、源端口、目标IP地址和/或目标端口、以及相关联的协议(例如,UDP、TCP等)。可以通过计算设备上的应用和/或服务创建和/或使用连接对象,以访问网络和/或网络上的其他设备/服务器。每个连接对象都可以用于跟踪网络上的单个连接。连接对象可以与路径(例如,路径234、236等)相关联,路径是下面描述的较低层联网软件对象。为了标识活动路径,本公开标识活动连接。更多、更少或不同的连接对象可以被包括在备选示例中的传输层中,而不脱离本文描述的范围。
***利用TCP和/或其他类似的面向连接的协议,这些协议利用确认消息来确定相关联的网络连接的连接性状态。例如,传输层222跟踪每个连接(例如,连接226-232等),并且可以检测连接是否断开(例如,可疑可达性指示、连接正在重新传输数据、连接不能接收确认等)或者连接是否成功进展(例如,经证实的可达性指示、连接正在接收确认等),并且向IP层224发送肯定或否定通知。如下所述,IP层224控制用于所有连接的路由并跟踪所有路径(例如,路径234、236等)和/或路由(例如,路径238、240等)状态,并且可以使用来自传输层的通知来确定路径、网关和/或路由的状态。网关处理针对给定路由的流量。例如,家庭Wi-Fi路由器是用于来自Wi-Fi网络上的计算机的互联网路由的网关。
IP层224包括路径234、236和路径238、240。在一个示例中,IP层224是TCP/IP堆栈的层3或L3,但在本说明书的范围内,也考虑其他层。应当理解,死亡网关检测过程基于来自L4或传输层(例如,传输层222等)的输入,主要发生在L3或IP层(例如,IP层224等)内。
路径(例如,路径234、236等)是表示源和目标之间经由路由(或网关)的一个或多个连接的软件对象。多个连接对象可以与路径对象相关联。在一些示例中,路径是源IP地址和目标IP地址的元组,但没有端口信息。此外,路径对象可以包括路径相关信息,诸如路径的最大传输单元(MTU)和/或路径的可达性。此外,IP层224或路径对象可以使用与路径相关联的可疑可达性计数或值来跟踪可达性数据。路径的可疑可达性计数或值可以指示路径和/或与路径相关联的连接的当前连接性状态。例如,如果路径的可疑可达性计数高,则这表示:与路径的可疑可达性计数低的情况相比,路径的目标更可能是不可达的。
路由(例如,路由238、240等)是存储关于如何将数据路由到目标的信息的软件对象,诸如关于使用哪些网关(例如,路由器等)以达到目标的信息。路由对象可以与多个路径对象相关联,并且可以包括用于经由至少一个接口(例如,接口204、206等)和/或路由器(例如,路由器210、212、214等)发送和接收数据的路由信息。例如,路由可包括目标前缀、接口标识符、网关标识符和/或路由度量(标识路由的偏好的值,并且可以基于链路速度或其他性能数据点而被分配)。下面示出默认路由示例。计算机联网领域中的普通技术人员完全理解路由对象的一般功能。
目标前缀0.0.0.0/0->网关1,接口1,路由度量10
目标前缀0.0.0.0/0->网关2,接口2,路由度量20
在一些示例中,IP层224或其中的路由对象包括用于跟踪与路由相关联的坏路径以确定路由的连接性状态的数据。例如,路由对象可以包括总路径计数(表示与路由对象相关联或通过路由对象路由的路径的数量的值)、移动路径计数(表示已被发现不可达且已从路由对象被移动到另一路由对象的路径的数量的值)和/或不可达路径计数(表示通过已被发现不可达但不能被移动的路由进行路由的路径的数量的值)。总路径计数、移动路径计数和不可达路径计数中的每个计数都可以基于所限定的时间间隔。例如,总路径计数可以基于在一段时间间隔内活动的路径的数量(例如,如果一个或多个活动连接在该时间间隔内使用了路径,则该路径可以是活动的,等)。虽然在这种情况下所描述的时间间隔用于标识活动路径,但在备选示例中,可以通过其他方法标识活动路径。移动路径计数和不可达路径计数可以基于在时间间隔内已被移动或已被发现不可达的路径的数量。在一些示例中,总路径计数、移动路径计数和不可达路径计数可以仅基于面向连接的协议路径。此外,路由对象可以包括状态指示符,其指示路由对象被认为“存活”(路由被认为提供足够的连接质量)还是“死亡”(路由被认为提供不足的连接质量)。关于网络流量的路由,不同地处理存活的路由对象和死亡的路由对象。
应当理解,出于本说明书的目的,接口204、206、交换机208和路由器210、212、214以基本上与上面图1的等效接口104、106、交换机108和路由器110、112、114相同的方式来操作。
图3是图示根据一个实施例的、通过路由第二网络接口(例如,接口104、106、204、206等)上的网络连接来恢复第一网络接口(例如,接口104、106、204、206等)上的网络连接的计算设备(例如,计算设备102等)的操作的示例性流程图300。在302处,检测针对在第一网络接口(例如,接口104、106、204、206等)上使用第一路由(例如,路由238、240等)的第一连接(例如,连接对象226-232等)的确认故障。例如,当针对传输层222处的特定连接或多个连接(例如,连接226-232等)的连续重新传输的数目(例如,作为发送分组而没有接收到确认的结果)超过所限定的阈值时,连接和/或传输层可以将其认为确认故障。例如,阈值可以包括连续或同时重新传输的数量(例如,当在一分钟的超时时间跨度(或其他所限定的时间跨度)内有来自两个不同连接的两个重新传输时,确认故障可以发生等)。在一些示例中,确认故障仅与面向连接的协议连接(诸如TCP连接)相关联地发生,而与诸如UDP的无连接协议不相关。
备选地或附加地,应用可以提供对确认故障的指示,该应用包括使用如UDP的无连接协议的应用,该指示可以由本文描述的***使用以标识不可达路径、死亡路由等。例如,使用UDP的应用可以检测到缺乏对在UDP本身的外部发送请求或消息的响应,将响应的缺乏注册为确认故障,并向IP层发送对故障的指示以用于死亡网关检测。
作为检测到的确认故障的结果,在304处,递增与连接相关联的路径的可疑可达性计数。例如,传输层可以针对到IP层224的连接发送可疑可达性通知(否定通知)。在IP层224处,在接收到针对连接的可疑可达性通知时,递增针对相关联的路径(例如路径234、236等)的可疑可达性计数。
在306处,如果可疑可达性计数超过阈值,则路径被认为不可达,这意味着通过路由的路径的源和目标之间的连接性断开或质量不足。可以针对一个时间段来限定阈值,在该时间段内必须接收到可疑可达性通知。例如,如果可疑可达性阈值为50并且所限定的时间段为30秒,则在最近的30秒时间间隔内接收50或更多个可疑可达性通知的路径将被认为不可达。当引起计数递增的通知变得长于所限定的时间段时,***可以递减路径的可疑可达性计数(例如,在时间段为30秒时,当这些通知过时或以其他方式变得长于30秒时,***可以递减接收到的通知的可疑可达性计数)。
在路径被认为不可达的情况下,在308处,***将第二网络接口上的第二路由标识为第一路由的备选路由。例如,标识第二路由可以包括标识第二路由具有与当前路由相同或相似的目标前缀,使得在第一路由上被路由的流量在被转换到第二路由时可以到达正确的目标。不可达路径无法被移动到第二路由,因为第二网络接口具有与第一网络接口不同的源地址,并且无法更改连接的源地址。然而,在310处,不可达路径计数在路由上被递增,以跟踪路由的连接性状态。路由的不可达路径计数表示与被认为不可达且不能移动到与第一路由位于相同网络接口上的另一路由的路由相关联的路径。例如,如果路径234在通过路径238被路由时被发现不可达并且唯一的其他可用路由是路由240,路由240使用接口206而不是204,则路径234不能被移动到路径240,因为接口204和206具有不同的源地址。然而,路由238的不可达路径计数可以被递增以跟踪路径234的不可达性。备选地,如果路径的可疑可达性计数不超过阈值,则过程在318处结束。
除了不可达路径计数之外,路由还可以包括路由的坏路径计数,其包括路由的移动路径计数(被发现在路由上不可达并且在相同网络接口上发现针对其的备选路由的路径)和不可达路径计数的组合。坏路径计数表示路由上正经历或曾经经历连接性问题和/或针对其***已经收到否定通知(诸如可疑可达性通知等)的路径的数目。在一些示例中,坏路径计数、不可达路径计数和/或移动路径计数基于最近的时间间隔,使得在时间间隔内检测到的坏路径被包括在(多个)计数中。但是,在本发明中,确定活动路径的其他方式是可操作的。
如果在312处路由的不可达路径计数和移动路径计数之和(例如,坏路径计数等)超过坏路径阈值,则在314处该路由被标记为死亡。在一个示例中,坏路径阈值包括路由上的坏路径的最大百分比。阈值可以基于使用该路由的路径的总数目(例如,样本大小)。例如,路由上的路径的总数目越大,阈值可以被设置得越低。在一个示例中,下面限定阈值的初始集合。来自死亡网关通知的消耗者的遥测和反馈可以用于随时间微调阈值。表1举了可以被使用的初始阈值的示例,但是也可以考虑其他阈值。
表1
总路径数目 | 坏路径阈值百分比 |
>=10,000路径 | 5% |
1000-9,999路径 | 15% |
500-999路径 | 20% |
100-499路径 | 40% |
50-99路径 | 50% |
10-49路径 | 75% |
5-9路径 | 100% |
0-4路径 | N/A |
表1的示例示出,如果路由上存在多达10000个路径且5%(500)的路径是坏的,则足以怀疑该路由为死亡。备选地,如果路由上少至5个路径,则需要100%(5)个路径不可达以怀疑该路由为死亡。如果存在少于5个路径,则即使所有路径故障也不足以怀疑该路由为死亡,因为例如可能路径的所有目标服务器都已故障。应当理解,上面的值是示例性的,并且可以在其他示例中使用其他值。
在一个示例中,基于路由的实际坏路径计数(例如,移动路径计数和不可达路径计数之和)和路由上的路径的原始数目,同时考虑最初在路由上但已被移动的路径(例如,路由的当前路径计数和路由的移动路径计数之和),以计算路由的坏路径的百分比。下面是用于在坏路径的百分比满足或超过阈值时将路由设置为“死亡”状态的示例代码,但是也可以考虑其他代码。
作为将默认路由标记为死亡的结果,***可以自动地开始在备选默认路由上路由网络流量,因为该***相对于死亡默认路由更偏好非死亡默认路由。
将路由标记为死亡也可以使得通知被发送至***中的其他部件,诸如连接管理器。其他部件可以对死亡路由通知进行响应和/或反应。例如,在移动设备上,当接收到针对Wi-Fi路由器的死亡路由通知时,连接管理器可以关闭Wi-Fi接口,撤销Wi-Fi接口上的现有连接和/或路由蜂窝接口上的所有未来的连接。在另一备选示例中,当第一路由被标记为死亡时,TCP/IP堆栈自动将新连接路由到备选路由,而不涉及连接管理器。
备选地或附加地,路由的总路径计数、坏路径计数、移动路径计数和/或不可达路径计数可以被暴露给外部部件。由TCP/IP使用以将路由设置为“死亡”状态的暴露路径计数可以由连接管理器或其他外部部件、应用、操作***等使用,作为网关/接口的坏或好的置信度的度量。
在316处,连接被转换到第二网络接口上的所标识的第二路由。应当理解,由于第二路由在第二网络接口上并且第二网络接口使用与第一网络接口不同的源地址,因此将连接转换到第二网络接口上的第二路由不是将连接移动到第二路由。相反,“转换”连接可以包括撤销或终止第一路由上的连接,并在第二路由上创建新的类似的连接,以恢复被撤销的连接的活动。在一个示例中,将连接转换到不同网络接口上的另一路由并不特别地发生在IP层中,而是必须由IP层外部的应用、连接管理器等执行。例如,在接收到路由为“死亡”的通知时,连接管理器撤销连接和“死亡”路由/接口上的任何其他连接,并且在第二网络接口(例如,蜂窝等)上重建或创建用于第二路由的类似连接。与在一些现有***中等待多次重试和/或“超时”指示不同,在本公开中,使用被撤销的连接的应用可以接收“中止”通知,并且更快地转换到第二路由和/或第二接口上的连接。在连接被转换到第二路由后,该过程在318处结束。
如果在312处路由的不可达路径计数和移动路径计数之和(例如,坏路径计数等)不超过坏路径阈值,则过程在318处结束。
在一些示例中,不可达连接不被转换为使用第二路由,因为在第一路由被标记为“死亡”后,没有被配置为重建或创建类似连接以使用第二路由的应用、连接管理器等。
在备选示例中,在302处,在检测到确认故障时,路径已被认为或标志为不可达。在这种情况下,如上所述,在316处,该过程可以通过将第一路由上的连接转换为使用第二路由来继续。
图4是图示根据一个实施例的、通过在第一网络接口或第二网络接口上路由以恢复第一网络接口上的网络连接的计算设备(例如,计算设备102等)的操作的示例性流程图400。在402处,如上面参考图3的302所描述的,检测到针对使用第一网络接口(例如,接口104、106、204、206等)上的第一路由(例如,路由238、240等)的第一连接(例如,连接对象226-232等)的确认故障。
在404处,递增与连接相关联的路径的可疑可达性计数。在406处,如果可疑可达性计数超过阈值,则路径被认为不可达,这意味着通过路由的路径的源和目标之间的连接性断开。应当理解,404和406与上面描述的图3中的304和306基本相似。
当路径在406处被认为不可达时,***在408处将第二路由标识为第一路由的备选。所标识的第二路由可以与第一路由在相同的接口上,或者在不同的接口上。如果备选的第二路由与第一路由在相同接口上(例如,源地址相同等),则不可达路径可以被移动到备选路由/网关,因此,如下面所描述的,在410处可以递增第一路由上的‘移动路径计数’以用于跟踪第一路由的连接性状态,并且在418处路径被转换(在这种情况下,被移动)到备选路由/网关。例如,再次参考图2,如果路径234在通过路由238被路由时被发现不可达并且通过接口204的第二路由可用,则可以将路径234移动到第二路由,并且可以递增路由238的‘移动路径计数’。
如上面参照图3的310描述的,当在408处标识的备选第二路由与第一路由在不同的接口上时,不可达路径不能被移动,但在412处,第一路由上的‘不可达路径计数’被递增以跟踪第一路由的连接性状态。
备选地,在406处,如果路径的可疑可达性计数不超过阈值,则过程在420处结束。
在414处,如果路由的不可达路径计数和移动路径计数之和(例如,坏路径计数等)超过坏路径阈值,则在416处将该路由标记为死亡。在一个示例中,坏路径阈值包括路由上的坏路径的最大百分比。如上面参照图3所描述的,阈值可以基于使用该路由的路径的总数目(例如,样本大小)。
在418处,连接被转换为使用所标识的第二路由。当第二路由与第一路由在相同接口上时,连接/路径可以被移动或重新路由在第二路由上,同时保持相同的源地址。然而,当第二路由与第一路由在不同接口上时,如上面参照图3的316所描述的,连接/路径必须被转换到第二路由。即,连接被终止。连接/路径被撤销,并且由连接管理器或其他应用等重建或以其他方式创建。在连接被转换到第二路由之后,过程在420处结束。
在414处,如果路由的不可达路径计数和移动路径计数(例如,坏路径计数等)之和不超过坏路径阈值,则在418处,与不可达路径相关联的连接从第一路由被转换到所标识的备选第二路由。然后,过程在420处结束。
在备选示例中,例如,当在308或408处没有发现备选路由时,不执行该过程,因为如果***仅具有一个可用的路由,则无法进行任何操作,即使发现该路由为死亡。
在接收到针对路径的来自传输层(例如,传输层222等)的可疑路径可达性指示时,可以由IP层(例如,IP层224等)执行如下所述的示例性操作序列。
1.如果在THRESHOLDTimeInterval中的‘可疑可达性’通知的数目<THRESHOLDSuspectReachabilityCount,则结束序列。
2.如果Path->IsReachable==FALSE(如果路径已经不可达),则结束序列。
3.检测***上是否存在备选默认路由/网关。如果不存在这种路由可用,则结束序列。
4.更新路径信息:
a.Path->IsReachable=FALSE(将路径标记为不可达)
5.更新路线信息:
如果相同接口上的备选网关/路由存在,则:
a.Path->Route->MovedPathCount++(递增旧路由上的移动路径计数器)
b.Path->IsReachable=TRUE(将路径设置为‘可达’状态)
c.Path->Route->TotalPathCount--(递减旧路由上的总路径计数器)
d.Path->Route=New Route(将path->route设置为新路由)
e.Path->Route->TotalPathCount++(递增新路由上的总路径计数器)
否则,如果备选网关在另一接口上:
Path->Route->UnreachablePathCount++(递增path->route上的不可达路径计数器)
6.使用以下的启发法将路由标记为死亡:
附加示例
在一个示例中,在传输层处接收到针对特定连接的确认时,传输层可以向IP层发送针对该连接的证实可达性指示(或其他肯定通知)。无论何时收到针对连接的确认,都可以发送该通知。在IP层处,在接收到来自传输层的证实可达性通知时,可以清除与连接的路径(例如,可疑可达性计数等)和路径的路由(例如,移动路径计数、不可达路径计数等)相关联的所有跟踪计数器连接,因为单个肯定通知是网关/路由未死亡的强指示符。例如,在从传输层得到证实可达性指示时,***可以清除路径和/或路由的状态,如下面的示例性伪代码所示:
Path->IsReachable=TRUE.(将路径设置为“可达”状态)
Path->Route->Dead=FALSE(将path->route设置为“存活”状态)
Path->Route->UnreachablePathCount=0(将path->route的不可达路径计数器重新设置为零)
Path->Route->MovedPathCount=0(将path->route的移动路径计数器重新设置为零)
在另一示例中,***可以恢复被设置为“死亡”状态的路由。可以以限定的间隔(例如,每五分钟等)和/或根据检测到的***状态来探测死亡路由。例如,一些新的连接在探测间隔期间被转向到死亡路由上以探测连接性。在探测间隔期间被路由到死亡路由上的连接的数目可以被限制于最大探测连接阈值(例如,DEAD_ROUTE_PROBE_MAX_TRAFFIC_COUNT等)。该限制防止***在死亡路由上发送过多的流量。此外,在一些示例中,在探测期间,仅新连接尝试在死亡路由上被路由。在一个示例中,每探测间隔最多十次连接尝试的阈值可以被使用。所收集的数据和/或遥测可以由***使用以调整和/或调节该阈值。
此外,可以并行测试经探测的路由。例如,可以同时在多个IP地址上尝试不同的连接尝试,以缩短恢复死亡路由所需的时间。例如,***可以包括名为ConnectByName的应用编程接口(API)。代替通过IP地址进行连接,***建议应用使用域名进行连接。***进行域名***(DNS)查找,并且DNS查找返回若干IP地址。***可以并行尝试若干IP地址。例如,如果返回四个IP地址,则***可以并行地尝试四个IP地址中的两个。每个IP地址还可以在不同的接口上被尝试。如果第一接口上的默认路由/网关被认为是死亡但正在被探测,并且第二接口上的默认路由当前是工作的,则***可以并行地尝试第一接口上的和第二接口上的默认路由。如果第一接口上的路由仍然是死亡的,则第二接口上的路由将成功,这保留了用户体验,即使一些连接故障。然而,如果尝试第一接口上的路由表明该路由不再是死亡的并且第一接口是优选接口,则***可以清除来自第一接口上的路由的“死亡”状态并且开始将其用作优选路由。
备选地或附加地,当路由的状态在死亡和存活之间改变时,可以触发路由变化通知。通知还可以在任何路由进入探测状态时被触发。例如,现有的IP助手应用编程接口(IPHLPAPI)-NotifyRouteChange2函数可以用于注册这些通知,但是也可以考虑其他API。应用、服务等可以注册以经由API接收路由变化通知,并且然后在接收到通知时响应。Get-NetRoute调用可以进一步引起路由状态的返回或显示(例如,“死亡”、“探测”、“存活”等),这提供了访问路由的连接性状态的附加方法。
***可以同时使用两个或更多个接口,其中一些接口优选于其他接口。接口偏好可以基于链路速度、成本等。当第一接口优选于第二接口时,***默认在第一接口上路由连接。然而,如果第一接口上的路由被认为“死亡”,则可以使用第二接口。当第二接口在使用中并且然后在优选的第一接口上的路由被再次发现为“存活”时,***可以将连接从第二接口转换回第一接口。例如,由于性能、成本或其他因素,Wi-Fi接口可能优选于蜂窝接口。
在一个示例中,可以提供用户界面控件(例如,复选框)以启用和/或禁用死亡网关检测。在其他示例中,Set-NetIpv4protocol、Set-NetIpv6protocol或其他命令可以用于启用/禁用该功能。
在又一示例中,API(例如,ConnectByName API等)可以使用本文所描述的***的多个网络接口。API可以告知应用通过域名而不是IP地址连接至目标、取回与域名相关联的IP地址的范围、并尝试使用多个网络接口并行地连接至该范围的IP地址。例如,应用可以使用Wi-Fi网络接口和蜂窝接口同时尝试两个IP地址,这可以将用以形成或恢复连接的时间缩短一半。附加地或备选地,***可以尝试使用相同网络接口上的不同的连接并行地连接至两个IP地址,以减少对用户体验的影响。
在备选示例中,可以同时使用两个路由器。在又一备选示例中,可以存在多于两个的路由器,并且计算设备可以选择这些路由器中的两个或更多个路由器以供同时使用。可以基于路由器被检测的次序、由用户限定的优先级次序、基于路由器的过去的性能的优先级次序等来选择路由器。
在又一备选示例中,可以将路由的不可达路径计数和移动路径计数与独立的阈值进行比较,以便确定路由是否为死亡。例如,动态阈值针对路由的不可达路径计数可以被限定为路由的总路径计数的百分比,并且针对路由的移动路径计数可以被限定为总路径计数的百分比。如果阈值中的一个或两个阈值被超过,则相关联的路由可以被标记为“死亡”。参见下面示范将路由标记为死亡的的启发法的示例性伪代码。
示例场景
本公开的各方面能够实现各种场景,诸如下面所描述的。
用户的计算设备连接至家中的Wi-Fi网络。用户带着计算设备离开家,超出了Wi-Fi网络的范围。计算设备如本文所述地进行操作,以将刚才在Wi-Fi网络上的、现在已经故障的连接转换到蜂窝网络上的连接。
用户的计算设备连接至家中的Wi-Fi网络。Wi-Fi网络瘫痪。计算设备如本文所述地进行操作,以将Wi-Fi网络上的、故障的连接转换到蜂窝网络上的连接。然后,Wi-Fi网络回到在线。计算设备进行操作以通过切换回Wi-Fi网络上的连接来恢复。
用户的计算设备经由插接站连接至家中的以太网。用户拔出计算设备,断开与以太网的连接。计算设备如本文所述地进行操作,以将刚才在以太网上的、现在已经故障的的连接转换到Wi-Fi网络上的连接。
在所有这些示例中,计算设备快速且高效地执行连接的转换。例如,如果Wi-Fi连接正经历连接性问题,则计算设备立即切换到备选路由/接口,使得连接被撤销并且根据需要形成新连接,而不是等待通过Wi-Fi路由/接口重新连接。通过避免在断定路径可能为死亡之前等待连接超时,用户体验得到了改善。
示例性操作环境
本公开与根据一个实施例的计算装置可操作为图5中的功能框图500。在一个实施例中,计算装置518的部件可以被实现为根据本说明书中描述的一个或多个实施例的电子设备的一部分。计算装置518包括一个或多个处理器519,其可以是微处理器、控制器或用于处理计算机可执行指令以控制电子设备的操作的任何其他合适的类型的处理器。包括操作***520的平台软件或者任何其他合适的平台软件可以被提供在装置518上,以使应用软件521能够在设备上被执行。根据一个实施例,死亡路由的标识以及路由和/或接口之间的转换可以通过软件来完成。
计算机可执行指令可以使用由计算装置518可访问的任何计算机可读介质来提供。例如,计算机可读介质可以包括诸如存储器522的计算机存储介质和通信介质。诸如存储器522的计算机存储介质包括以任何方法或技术实现的易失性和非易失性、可移除和不可移除介质,以用于存储诸如计算机可读指令、数据结构、程序模块等的信息。计算机存储介质包括但不限于RAM、ROM、EPROM、EEPROM、闪速存储器或其他存储技术、CD-ROM、数字多功能盘(DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备,或者可以用于存储信息以供计算装置访问的任何其他非传输介质。相反,通信介质可以在经调制的数据信号中实现计算机可读指令、数据结构、程序模块等,诸如载波或其他传输机制。如本文所限定的,计算机存储介质不包括通信介质。因此,计算机存储介质不应当被解释为传播信号本身。传播的信号本身不是计算机存储介质的示例。虽然计算机存储介质(存储器522)被示为在计算装置518内,但本领域技术人员应当了解,存储装置可以经由网络或其他通信链路(例如,使用通信接口523)被分布或远程定位以及被访问。
计算装置518可以包括输入/输出控制器524,其被配置为将信息输出至一个或多个输出设备525,例如显示器或扬声器,其可以与电子设备分离或集成到电子设备中。输入/输出控制器524也可以被配置为接收和处理来自一个或多个输入设备526(例如,键盘、麦克风或触摸板)的输入。在一个实施例中,输出设备525也可作为输入设备。这样的设备的示例可以是触摸敏感显示器。输入/输出控制器524还可以将数据输出至输出设备以外的设备,例如本地连接的打印设备。在一些实施例中,用户527可以向(多个)输入设备526提供输入和/或从(多个)输出设备525接收输出。
本文所述的功能可以至少部分地由一个或多个硬件逻辑部件执行。根据一个实施例,计算装置518由程序代码配置,该程序代码在由处理器519执行时,执行所述的操作和功能的实施例。备选地或附加地,本文所述的功能可以至少部分地由一个或多个硬件逻辑部件执行。例如而非限制,可以被使用的说明性类型的硬件逻辑部件包括现场可编程门阵列(FPGA)、专用集成电路(ASIC)、程序特定标准产品(ASSP)、芯片上***(SOC)、复杂可编程逻辑器件(CPLD)、图形处理单元(GPU)。
虽然一些实施例可以被描述以及被图示为在智能电话、移动电话或平板计算机中被实现,但这些只是设备的示例而非限制。如本领域技术人员所理解的,本发明的实施例适合应用于各种不同类型的设备中,诸如便携式和移动设备,例如膝上型计算机、平板计算机、游戏控制台或游戏控制器、各种可穿戴设备等。
图5中各种元件的至少一部分功能可以由图5中的其他元件或者图5中未示出的实体(例如,处理器、web服务、服务器、应用程序、计算设备等)来执行。
虽然结合示例性计算***环境进行了描述,但是本公开的示例能够与许多其他通用或专用的计算***环境、配置或设备一起实现。
可能适用于本发明的各方面的公知计算***、环境和/或配置的示例包括但不限于移动计算设备、个人计算机、服务器计算机、手持式或膝上式设备、多处理器***、游戏控制台、基于微处理器的***、机顶盒、可编程消费电子产品、移动电话、可穿戴或可附属式产品(例如,手表、眼镜、头戴式耳机或耳机)中的移动计算和/或通信设备、网络PC、小型计算机、大型计算机、包括上述任何***或设备的分布式计算环境等。这种***或设备可以以任何方式经由姿势输入、接近输入(诸如悬停)和/或经由语音输入接受来自用户的输入,包括来自诸如键盘或指向设备的输入设备的输入。
本公开的示例可以在计算机可执行指令的一般上下文中来描述,诸如由软件、固件、硬件或其组合的一个或多个计算机或其他设备执行的程序模块。计算机可执行指令可以被组织成一个或多个计算机可执行部件或模块。通常,程序模块包括但不限于执行特定任务或实现特定抽象数据类型的例程、程序、对象、部件和数据结构。本公开的各方面可以通过任何数目和组织的这种部件或模块来实现。例如,本公开的各方面不限于具体的计算机可执行指令或图中所示且本文所述的具体部件或模块。本公开的其他示例可以包括不同的计算机可执行指令或具有比本文所示和所述的更多或更少的功能的部件。
在涉及通用计算机的示例中,当被配置为执行本文所述的指令时,本公开的各方面将通用计算机变换为专用计算设备。
备选地或附加地,除本文所述的其他示例外,示例还包括以下的任何组合:
一种用于恢复网络连接性的***,包括:
第一网络接口;
第二网络接口;
至少一个处理器;以及
至少一个存储器,包括计算机程序代码,至少一个存储器和计算机程序代码被配置为:利用至少一个处理器,使得至少一个处理器:
检测针对使用第一网络接口上的第一路由的连接的确认故障;
响应于检测到确认故障,递增与连接相关联的路径的可疑可达性计数;
当路径的可疑可达性计数超过可疑可达性阈值时,将第二网络接口上的第二路由标识为第一路由的备选路由;
基于所标识的第二路由,递增第一路由的不可达路径计数;
当第一路由的不可达路径计数和第一路由的移动路径计数之和超过坏路径阈值时,将第一路由标记为死亡,坏路径阈值基于第一路由的总路径计数;以及
将使用第一网络接口上的第一路由的连接转换为使用第二网络接口上的第二路由。
根据以上所述的***,其中第一路由的总路径计数基于与已接收到确认所针对的第一路由相关联的路径。
根据以上所述的***,其中总路径计数和不可达路径计数基于活动路径而被计算。
根据以上所述的***,至少一个存储器和计算机程序代码被配置为:利用至少一个处理器,进一步使至少一个处理器:
当连接正使用第一网络接口上的第一路由时,检测针对连接的确认;
将与连接相关联的路径的可疑可达性计数设置为零;
将第一路由的移动路径计数设置为零;以及
将第一路由的不可达路径计数设置为零。
根据以上所述的***,至少一个存储器和计算机程序代码被配置为:利用至少一个处理器,进一步使至少一个处理器:
当第一路由被标记为死亡时,以所限定的探测间隔探测第一路由,探测包括在第一路由上路由新连接尝试,新连接尝试限于最大探测连接阈值;以及
当第一路由上的至少一个新连接尝试接收到确认时,将第一路由标记为存活。
根据以上所述的***,其中新连接尝试与在第一路由上被路由并行地在第二路由上被路由。
根据以上所述的***,其中将使用第一网络接口上的第一路由的连接转换为使用第二网络接口上的第二路由包括:向与该连接相关联的应用发送中止通知,使得连接在第二网络接口上的第二路由上被重试。
根据以上所述的***,其中当路径的可疑可达性计数超过可疑可达性阈值时,将第二网络接口上的第二路由标识为第一路由的备选还包括:当路径的可疑可达性计数在所限定的时间间隔内超过可疑可达性阈值时,将第二网络接口上的第二路由标识为第一路由的备选。
根据以上所述的***,其中第一网络接口是Wi-Fi网络接口,并且第二网络接口是蜂窝网络接口。
一种用于恢复网络连接性的计算机化方法,包括:
检测针对使用第一网络接口上的第一路由的连接的确认故障;
响应于检测到确认故障,递增与连接相关联的路径的可疑可达性计数;
当路径的可疑可达性计数超过可疑可达性阈值时,将第二路由标识为第一路由的备选;
当所标识的第二路由在第一网络接口上时,将路径移动到所标识的第二路由并且递增第一路由的移动路径计数;
当所标识的第二路由在第二网络接口上时,递增第一路由的不可达路径计数;
当第一路由的不可达路径计数和第一路由的移动路径计数之和超过坏路径阈值时,将第一路由标记为死亡,坏路径阈值基于与第一路由相关联的总路径计数;以及
当第二路由在第二网络接口上时,将使用第一网络接口上的第一路由的连接转换为使用第二路由。
根据以上所述的计算机化方法,其中第一路由的总路径计数基于与已接收到确认所针对的第一路由相关联的路径。
根据以上所述的计算机化方法,其中第一路由的总路径计数基于与第一路由相关联的、已经在第一时间间隔内活动的路径,可疑可达性计数基于第二时间间隔内的确认故障,并且不可达路径计数基于第三时间间隔内所标识的不可达路径。
根据以上所述的计算机化方法,还包括:
当连接使用第一网络接口上的第一路由时,检测针对连接的确认;
将与连接相关联的路径的可疑可达性计数设置为零;
将第一路由的移动路径计数设置为零;以及
将第一路由的不可达路径计数设置为零。
根据以上所述的计算机化方法,其中将使用第一网络接口上的第一路由的连接转换为使用第二网络接口上的第二路由包括:向与该连接相关联的应用发送中止通知,使得连接在第二网络接口上的第二路由被重试。
根据以上所述的计算机化方法,其中当路径的可疑可达性计数超过可疑可达性阈值时,将第二网络接口上的第二路由标识为第一路由的备选还包括:当路径的可疑可达性计数在所限定的时间间隔内超过可疑可达性阈值时,将第二网络接口上的第二路由标识为第一路由的备选。
根据以上所述的计算机化方法,其中坏路径阈值包括:第一路由的不可达路径计数和第一路由的移动路径计数之和的百分比阈值,作为与第一路由相关联的总路径计数的百分比;并且其中百分比阈值基于与第一路由相关联的总路径计数而改变。
一个或多个计算机存储介质,其具有用于恢复网络连接性的计算机可执行指令,该计算机可执行指令在被处理器执行时使处理器至少:
检测针对使用第一网络接口上的第一路由的连接的确认故障;
响应于检测到故障,递增与连接相关联的路径的可疑可达性计数;
当路径的可疑可达性计数超过可疑可达性阈值时,将第二网络接口上的第二路由标识为第一路由的备选;
基于所标识的第二路由,递增第一路由的不可达路径计数;
当第一路由的不可达路径计数和第一路由的移动路径计数之和超过坏路径阈值时,将第一路由标记为死亡,坏路径阈值基于与第一路由相关联的总路径计数;以及
将使用第一网络接口上的第一路由的连接转换为使用第二网络接口上的第二路由。
根据以上所述的一个或多个计算机存储介质,其中连接基于面向连接的协议。
根据以上所述的一个或多个计算机存储介质,其中第一路由的总路径计数基于与已接收到确认所针对的第一路由相关联的路径。
根据以上所述的一个或多个计算机存储介质,其中第一路由的总路径计数基于与第一路由相关联的、已经在所限定的时间间隔内活动的路径。
如对于技术人员来说是显而易见的,本文给出的任何范围或设备值可以在不丢失所寻求的效果的情况下被扩展或更改。
虽然已经用特定于结构特征和/或方法行为的语言描述了主题,但是应当理解,所附权利要求中限定的主题不必限于上述特定特征或行为。相反,上述特定特征和行为被公开为实现权利要求的示例形式。
应当理解,上述益处和优点可以与一个实施例有关,或者可以与若干实施例有关。实施例不限于解决任何或全部所陈述的问题的那些实施例或者具有任何或全部所陈述的益处和优点的那些实施例。应当进一步理解,对“一个”项目的引用是指这些项目中的一个或多个。
本文所示和所述的实施例以及本文未具体描述但在权利要求的各方面的范围内的实施例组成用于标识和/或检测死亡路由和/或网关并且因此将网络连接转换到备选路由和/或网络接口的示例性方式。所图示的一个或多个处理器519与被存储在存储器522中的计算机程序代码一起组成用于检测死亡路由和/或网关并且切换到备选接口上的备选路由和/或网关的示例性处理方式。
在本说明书中,使用术语“包括”是指包括随后的(多个)特征或(多个)行为,而不排除一个或多个附加特征或行为的存在。
在一些示例中,附图中所图示的操作可以被实现为被编码在计算机可读介质上、被编程或被设计为执行操作的硬件中或二者的软件指令。例如,本公开的各方面可以被实现为芯片上***或包括多个互连的导电元件的其他电路装置。
本文结合附图提供的详细描述被用作对多个实施例的描述,并不旨在表示实施例可以被构造、实现或使用的唯一形式。虽然本文可以将实施例描述和图示为在诸如服务器、个人计算机、移动设备等的设备中实现,但这只是示例性实现且非限制。如本领域技术人员所理解的,本发明的实施例适合应用于各种不同类型的计算设备中,例如PC、服务器、膝上型计算机、平板计算机等。
术语“计算机”、“计算装置”、“移动设备”等在本文中用于表示具有处理能力以使其可以执行指令的任何设备。本领域技术人员将认识到,这样的处理能力被包含在许多不同的设备中,并且因此术语“计算机”和“计算装置”各自可以包括PC、服务器、膝上型计算机、移动电话(包括智能电话)、平板计算机、媒体播放器、游戏控制台、个人数字助理以及许多其他设备。
除非另有指定,否则本文所示和所述的本公开的示例中的操作的执行或施行的次序或不是必须的。即,除非另有指定,否则操作可以以任何次序来执行,并且本公开的示例可以包括比本文公开的操作更多或更少的操作。例如,考虑在另一操作之前、同时或之后执行或施行特定操作是在本公开的各方面的范围内的。
当介绍本公开的各方面的元件或其示例时,词语“一个”、“一”、“该”和“所述”旨在表示存在一个或多个元素。术语“包含”、“包括”和“具有”旨在是包括性的并且表示除所列元素之外还可以具有其他元素。术语“示例性”旨在表示“…的示例”。短语“以下中的一个或多个:A、B和C”表示“A中的至少一个和/或B中的至少一个和/或C中的至少一个”。
在详细描述了本公开的各方面之后,显而易见地,在不脱离所附权利要求中限定的本公开的各方面的范围的情况下,修改和变型是可能的。由于可以对上述结构、产品和方法进行各种改变而不脱离本公开的各方面的范围,因此上面描述中包含以及附图中示出的所有项都应当被解释为是说明性的而不是限制性意义的。
Claims (15)
1.一种用于恢复网络连接性的***,包括:
第一网络接口;
第二网络接口;
至少一个处理器;以及
至少一个存储器,包括计算机程序代码,所述至少一个存储器和所述计算机程序代码被配置为:利用所述至少一个处理器,使得所述至少一个处理器:
检测针对使用所述第一网络接口上的第一路由的连接的确认故障;
响应于检测到所述确认故障,递增与所述连接相关联的路径的可疑可达性计数;
当所述路径的所述可疑可达性计数超过可疑可达性阈值时,将所述第二网络接口上的第二路由标识为所述第一路由的备选;
基于所标识的所述第二路由,递增所述第一路由的不可达路径计数;
当所述第一路由的所述不可达路径计数和所述第一路由的移动路径计数之和超过坏路径阈值时,将所述第一路由标记为死亡,所述坏路径阈值基于所述第一路由的总路径计数;以及
响应于将所述第一路由标记为死亡,将所述连接从所述第一网络接口上的所述第一路由转换到所述第二网络接口上的所述第二路由。
2.根据权利要求1所述的***,其中转换所述连接包括终止所述连接,并且其中所述第一路由的所述总路径计数基于与已接收到确认所针对的第一路由相关联的路径。
3.根据权利要求1所述的***,所述至少一个存储器和所述计算机程序代码被配置为:利用所述至少一个处理器,进一步使所述至少一个处理器检测活动路径,其中所述总路径计数和所述不可达路径计数基于检测到的所述活动路径而被计算。
4.根据权利要求1所述的***,所述至少一个存储器和所述计算机程序代码被配置为:利用所述至少一个处理器,进一步使所述至少一个处理器:
当所述连接正使用所述第一网络接口上的所述第一路由时,检测针对所述连接的确认;
将与所述连接相关联的所述路径的所述可疑可达性计数设置为零;
将所述第一路由的所述移动路径计数设置为零;以及
将所述第一路由的所述不可达路径计数设置为零。
5.根据权利要求1所述的***,所述至少一个存储器和所述计算机程序代码被配置为:利用所述至少一个处理器,进一步使所述至少一个处理器:
当所述第一路由被标记为死亡时,以所限定的探测间隔探测所述第一路由,所述探测包括在所述第一路由上路由新连接尝试,所述新连接尝试限于最大探测连接阈值;以及
当所述第一路由上的至少一个新连接尝试接收到确认时,将所述第一路由标记为存活。
6.根据权利要求5所述的***,其中所述新连接尝试与在所述第一路由上被路由并行地在所述第二路由上被路由。
7.根据权利要求1所述的***,其中将使用所述第一网络接口上的所述第一路由的所述连接转换为使用所述第二网络接口上的所述第二路由包括:向与所述连接相关联的应用发送中止通知,使得所述连接在所述第二网络接口上的所述第二路由上被重试。
8.根据权利要求1所述的***,其中当所述路径的所述可疑可达性计数超过可疑可达性阈值时,将所述第二网络接口上的第二路由标识为所述第一路由的备选还包括:当所述路径的所述可疑可达性计数在所限定的时间间隔内超过可疑可达性阈值时,将所述第二网络接口上的第二路由标识为所述第一路由的备选。
9.根据权利要求1所述的***,其中所述第一网络接口是Wi-Fi网络接口,并且所述第二网络接口是蜂窝网络接口。
10.一种用于恢复网络连接性的计算机化方法,包括:
检测针对使用第一网络接口上的第一路由的连接的确认故障;
响应于检测到所述确认故障,递增与所述连接相关联的路径的可疑可达性计数;
当所述路径的所述可疑可达性计数超过可疑可达性阈值时,将第二路由标识为所述第一路由的备选;
当所标识的所述第二路由在所述第一网络接口上时,将所述路径移动到所标识的所述第二路由并且递增所述第一路由的移动路径计数;
当所标识的所述第二路由在第二网络接口上时,递增所述第一路由的不可达路径计数;
当所述第一路由的所述不可达路径计数和所述第一路由的所述移动路径计数之和超过坏路径阈值时,将所述第一路由标记为死亡,所述坏路径阈值基于与所述第一路由相关联的总路径计数;以及
当所述第二路由在所述第二网络接口上时,基于所述标记将使用所述第一网络接口上的所述第一路由的所述连接转换为使用所述第二路由。
11.根据权利要求10所述的计算机化方法,其中所述第一路由的所述总路径计数基于与所述第一路由相关联的、已经在第一时间间隔内活动的路径,所述可疑可达性计数基于第二时间间隔内的确认故障,并且所述不可达路径计数基于第三时间间隔内所标识的不可达路径。
12.根据权利要求10所述的计算机化方法,其中当所述路径的所述可疑可达性计数超过所述可疑可达性阈值时,将所述第二网络接口上的所述第二路由标识为所述第一路由的备选还包括:当所述路径的所述可疑可达性计数在所限定的时间间隔内超过可疑可达性阈值时,将所述第二网络接口上的第二路由标识为所述第一路由的备选。
13.根据权利要求10所述的计算机化方法,其中所述坏路径阈值包括:所述第一路由的所述不可达路径计数和所述第一路由的所述移动路径计数之和的百分比阈值,作为与所述第一路由相关联的所述总路径计数的百分比;并且
其中所述百分比阈值基于与所述第一路由相关联的所述总路径计数而改变。
14.一个或多个计算机存储介质,其具有用于恢复网络连接性的计算机可执行指令,所述计算机可执行指令在被处理器执行时使所述处理器至少:
检测针对使用第一网络接口上的第一路由的连接的确认故障;响应于检测到所述故障,递增与所述连接相关联的路径的可疑可达性计数;
当所述路径的所述可疑可达性计数超过可疑可达性阈值时,将第二网络接口上的第二路由标识为所述第一路由的备选;
基于所标识的所述第二路由,递增所述第一路由的不可达路径计数;
当所述第一路由的所述不可达路径计数和所述第一路由的移动路径计数之和超过坏路径阈值时,将所述第一路由标记为死亡,所述坏路径阈值基于与所述第一路由相关联的总路径计数;以及
响应于将所述第一路由标记为死亡,将所述连接从所述第一网络接口上的所述第一路由转换为所述第二网络接口上的所述第二路由。
15.根据权利要求14所述的一个或多个计算机存储介质,其中所述连接基于面向连接的协议。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662415393P | 2016-10-31 | 2016-10-31 | |
US62/415,393 | 2016-10-31 | ||
US15/600,692 US20180123867A1 (en) | 2016-10-31 | 2017-05-19 | Automatic network connection recovery in the presence of multiple network interfaces |
US15/600,692 | 2017-05-19 | ||
PCT/US2017/057943 WO2018081027A1 (en) | 2016-10-31 | 2017-10-24 | Automatic network connection recovery in the presence of multiple network interfaces |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109863723A true CN109863723A (zh) | 2019-06-07 |
Family
ID=62020621
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780065885.5A Withdrawn CN109863723A (zh) | 2016-10-31 | 2017-10-24 | 存在多个网络接口情况下的自动网络连接恢复 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20180123867A1 (zh) |
EP (1) | EP3533187A1 (zh) |
CN (1) | CN109863723A (zh) |
WO (1) | WO2018081027A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190081924A1 (en) * | 2017-09-11 | 2019-03-14 | Linkedin Corporation | Discovering address mobility events using dynamic domain name services |
US10911341B2 (en) * | 2018-11-19 | 2021-02-02 | Cisco Technology, Inc. | Fabric data plane monitoring |
JP2021016067A (ja) * | 2019-07-11 | 2021-02-12 | 富士ゼロックス株式会社 | 中継システム、中継装置及びプログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030202473A1 (en) * | 2002-04-25 | 2003-10-30 | General Instrument Corporation | Traffic network flow control using dynamically modified metrics for redundancy connections |
US7792991B2 (en) * | 2002-12-17 | 2010-09-07 | Cisco Technology, Inc. | Method and apparatus for advertising a link cost in a data communications network |
US8891360B2 (en) * | 2012-05-04 | 2014-11-18 | Infinera Corporation | Optimal segment identification for shared mesh protection |
-
2017
- 2017-05-19 US US15/600,692 patent/US20180123867A1/en not_active Abandoned
- 2017-10-24 EP EP17794862.7A patent/EP3533187A1/en not_active Withdrawn
- 2017-10-24 CN CN201780065885.5A patent/CN109863723A/zh not_active Withdrawn
- 2017-10-24 WO PCT/US2017/057943 patent/WO2018081027A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
WO2018081027A1 (en) | 2018-05-03 |
EP3533187A1 (en) | 2019-09-04 |
US20180123867A1 (en) | 2018-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11765057B2 (en) | Systems and methods for performing end-to-end link-layer and IP-layer health checks between a host machine and a network virtualization device | |
CN106464585B (zh) | 用于压缩数据网络的转发状态的方法和*** | |
CN105847069B (zh) | 针对虚拟网络分组流的物理路径确定 | |
Sherwood et al. | Touring the Internet in a TCP sidecar | |
CN107005580A (zh) | 网络功能虚拟化服务链接 | |
CN110178342A (zh) | Sdn网络的可扩缩应用级别监视 | |
CN105122748A (zh) | 实现链路聚合组的对话敏感收集的方法和*** | |
Yeganeh et al. | How cloud traffic goes hiding: A study of amazon's peering fabric | |
CN109863723A (zh) | 存在多个网络接口情况下的自动网络连接恢复 | |
CN110300090A (zh) | 基于主机威胁的网络地址来实施威胁策略动作 | |
CN106464447B (zh) | 误码信息传递方法和网络设备及通信*** | |
CN107872368A (zh) | 一种网络节点集群中网关可达性的检测方法、装置及终端 | |
CN104283780A (zh) | 建立数据传输路径的方法和装置 | |
CN104471902A (zh) | 确定性网络故障检测 | |
EP4392864A1 (en) | Method and system for recommending runbooks for detected events | |
US20050083855A1 (en) | Method and system for identifying the health of virtual routers | |
WO2019149166A1 (zh) | 网络访问方法、客户端、网络交互方法及调度、网络*** | |
CN110519103A (zh) | 一种异构网络的故障定位方法、装置及终端 | |
CN106850268A (zh) | 一种线性保护倒换的实现装置及方法 | |
Liu et al. | Fault-tolerance characteristics of data center network topologies using fault regions | |
CN110121866A (zh) | 检测和抑制环路 | |
CN113691608B (zh) | 流量分发的方法、装置、电子设备及介质 | |
CN109412851A (zh) | 链路层路径检测方法、装置及*** | |
CN106817316A (zh) | 探测路径mtu的方法、装置和*** | |
CN106161051B (zh) | 客户端智能选线 |
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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20190607 |
|
WW01 | Invention patent application withdrawn after publication |