具有独立服务子系统的路由设备的制作方法

文档序号:12182762阅读:152来源:国知局
具有独立服务子系统的路由设备的制作方法与工艺

本发明涉及提供网络服务的系统和方法。



背景技术:

计算设备可通过网络彼此通信。路由器是被配置成在计算机网络之间转发数据包的计算机联网设备。数据包可通常通过构成因特网的网络从一个路由器被转发到另一个路由器,直到包到达其目的地节点为止。例如,在局域网中,路由器可被配置成提供对局域网内计算设备的互联网访问。路由器还可被配置成提供诸如包过滤或安全访问控制之类的附加服务。



技术实现要素:

下面提供了简化的概述,以便提供对此处所描述的一些方面的基本理解。该概述不是权利要求主题的广泛概览。此概述既不旨在标识所要求保护的主题的关键或重要的元素,也不旨在描绘所要求保护的主题的范围。此概述的唯一的目的是以简化形式呈现所要求保护的主题的某些概念,作为稍后呈现的比较详细的描述的前奏。

一实施例提供了一种用于提供网络服务的系统。该系统包括路由子系统以接收来自源设备的网络包以及将该网络包发送到目的地设备。该设备还可包括服务子系统以在服务被启用的情况下接收来自路由子系统的网络包。服务子系统还可基于启用的服务来处理网络包。服务子系统还可进一步将修改的网络包发送到路由子系统。响应于接收到来自服务子系统的修改的网络包,路由子系统可将修改的网络包转发到目的地地址。

另一实施例提供了用于提供网络服务的方法。该方法包括经第一处理器接收来自源设备的网络包。该方法还可包括如果服务子系统和服务是响应的,则经第一处理器将网络包发送到第二处理器。此外,该方法可包括经第二处理器 基于所述服务修改网络包或者生成新的网络包。该方法还可包括经第一处理器接收来自第二处理器的修改的网络包或新的网络包。该方法还可进一步包括经第一处理器将修改的网络包或新的网络包发送到目的地设备。

另一实施例提供了用于存储计算机可读指令的一个或多个计算机可读存储设备,所述计算机可读指令在被一个或多个处理设备执行时使所述一个或多个处理设备在第一处理设备处接收来自源设备的网络包。所述指令还可使得所述一个或多个处理设备在第二处理设备处基于启用的服务应用来处理网络包。所述指令还可进一步使得所述一个或多个处理设备将经处理的网络包发送给目的地设备。

附图说明

通过参考各个附图可以更好地理解下列详细描述,各个附图包含所公开的主题的众多特征的具体示例。

图1是例示出被配置成向本地和远程设备提供网络服务的计算系统的示例的框图;

图2是例示出被配置成向本地和远程设备提供网络服务的计算系统环境的示例的图;

图3是用于经路由子系统和服务子系统在源设备与目的地设备之间传送数据包的时序图;

图4是例示出用于监控服务子系统的方法的框图;以及

图5是用于提供网络服务的示例计算机可读存储介质的框图。

具体实施方式

如上所讨论的,路由器可被配置成提供附加服务。例如,路由器可被配置有允许服务的可扩展性以及在路由器上配置一个或多个附加服务的固件。固件尤其可以是例如任何合适的开源固件。网络管理员可在路由器的LAN环境中使用设备上的web浏览器来访问路由器上的网站,用用户名和口令登入,以及更新固件并配置服务。然而,某些服务可能是处理器密集的。例如,防病毒扫描服务可使用相当多的处理器资源。进一步,在一些情况中,附加服务可能造 成路由器崩溃。如果路由器崩溃,则基本路由功能可受到影响。例如,与路由器相关联的网络通信可能停止下来,直到路由器被重置或重启为止。从而,这样的附加服务可能对家用路由器的用户造成维护负担,以及造成网络不稳定性。

本文所描述的技术包括具有用于提供路由功能和附加服务的两个独立子系统的路由器。换言之,本文所描述的技术可提供一附加的、独立的处理器以用于诸如防病毒扫描之类的处理器密集型应用。例如,该处理器可以是除了路由片上系统处理器之外的应用处理器。

示例技术可采用监控模块来确定服务子系统是否是响应的。在该情形中,如果服务子系统被启用且是响应的,则路由子系统可将网络包发送到服务子系统。如果服务子系统被禁用或是无响应的,则路由子系统可将包直接发送到目的地设备。在该情形中,如果服务子系统失效,路由子系统的路由功能不受影响。从而,本文所描述的技术可提供路由设备的路由功能的改进的可靠性,以及在路由设备上添加新功能的增加的可扩展性。例如,即使新的服务软件崩溃,该服务软件也将仅使得服务处理器崩溃,而路由器处理器仍然可工作。在一些示例中,服务处理器和路由器处理器可以是分开运行服务和路由功能的虚拟处理器。从而,路由功能的可靠性也被改进。而且,应用处理器可运行完备的操作系统,从而允许添加用于改进的可扩展性的新的软件功能的能力。

作为引文,一些附图以被称为功能、模块、特征、元素等的一个或多个结构化组件的上下文来描述各概念。附图中示出的各种组件可以用任何方式来实现,例如,通过软件、硬件(例如,分立的逻辑组件等)、固件等等,或这些实施方式的任意组合。在一个实施例中,各种组件可以反映对应的组件在实际实现中的使用。在其他实施例中,附图中所例示出的任何单个组件可由多个实际组件来实现。对附图中的任何两个或更多个分开的组件的描绘可以反映由单个实际组件执行的不同功能。以下讨论的图1提供了与可被用于实现附图中所示的功能的一个系统有关的细节。

其他附图以流程图形式描述了概念。以此形式,某些操作被描述为构成以某一顺序执行的不同的框。这样的实现是示例性的而非限制性的。此处描述的某些框可被分组在一起并在单个操作中执行,某些框可被分成多个组件框,并 且某些框可以按与此处所例示出的次序不同的次序来执行(包括执行这些框的并行方式)。流程图中示出的框可以通过软件、硬件、固件、等等或这些实现的任何组合来实现。如此处所使用的,硬件可以包括计算机系统、诸如专用集成电路(ASIC)之类的分立逻辑组件等,以及它们的任意组合。

关于术语,短语“被配置成”涵盖可构造任何种类的结构化组件来执行所标识的操作的任何方式。结构化组件可以被配置成使用软件、硬件、固件等或其任意组合来执行操作。

术语“逻辑”涵盖用于执行任务的任何功能。例如,流程图中所示出的每一操作对应于用于执行该操作的逻辑。操作可以使用软件、硬件、固件等或其任意组合来执行。

如在此使用的,术语“组件”、“系统”、“客户机”等旨在指代计算机相关的实体,它们可以是硬件、(例如,执行中的)软件和/或固件、或其组合。例如,组件可以是在处理器上运行的进程、对象、可执行码、程序、功能、库、子例程,和/或计算机,或软件和硬件的组合。借助示例,运行在服务器上的应用和服务器两者均可以是组件。一个或多个组件可留驻在某一进程内,并且组件可位于一个计算机上和/或分布在两个或更多个计算机之间。

此外,所要求保护的主题可以使用产生控制计算机以实现所公开的主题的软件、固件、硬件或其任意组合的标准编程和/或工程技术而被实现为方法、装置或制品。如此处所使用的术语“制品”可以包含可以从任何有形的计算机可读设备或介质访问的计算机程序。

计算机可读存储介质可以包括但不限于磁存储设备(例如,硬盘、软盘、以及磁带等等)、光盘(例如,紧致盘(CD)以及数字多功能盘(DVD)等等)、智能卡、以及闪存设备(例如,卡、棒以及钥匙驱动器等等)。相反,计算机可读介质(即,非计算机可读存储介质)一般可附加地包括通信介质,诸如用于无线信号之类的传输介质。

图1是例示出被配置成向本地和远程设备提供网络服务的计算系统的示例的框图。计算系统100可包括计算设备102,计算设备102可以是例如集线器、路由器、智能集线器、智能路由器等。

计算设备102可包括路由子系统104和服务子系统106。路由子系统104 可具有适合于执行存储的指令的处理单元108。例如,路由子系统104可被配置成在专用路由器硬件上运行基本路由功能。路由子系统104的处理单元108可以是片上系统处理器等。

服务子系统106也可具有适合于执行存储的指令的处理单元110。例如,服务子系统106可包括任何合适的操作系统。从而,服务子系统106可支持添加新软件功能,并从而提供附加的应用可扩展性。在一些示例中,服务子系统106的软件栈(操作系统和应用)可以比路由子系统104的软件栈复杂得多。服务子系统106的处理单元110可以是各种可用处理器中的任何处理器。例如,处理单元110可以是处理器。然而,也可以采用双微处理器及其他多处理器架构作为处理单元110。处理器110可以是单核处理器、多核处理器、计算群集、或者任意数量的其他配置。在一些示例中,第一处理单元108和第二处理单元110可驻留在单个电路板上,并可通过计算机总线128耦合。在一些示例中,处理单元108、110可以是运行在一个或多个物理处理单元上的不同的虚拟处理器。

处理单元108、110可通过系统总线112、114来被耦合到其他系统组件。例如,子系统总线112、114可分别将处理单元108、110耦合到子系统存储器116、118。存储器单元116、118可以是与存储设备120、122有关的非永久存储器,存储设备120、122可包括例如硬盘驱动器。存储设备120、122可包括硬盘驱动器、光盘驱动器、通用串行总线(USB)闪存驱动器、驱动器阵列、或其任意组合。存储设备120、122可通过子系统总线112、114被耦合到处理单元108、110以及存储器单元116、118。

存储器单元116、118可包括随机存取存储器(如静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、零电容RAM、硅-氧化物-氮化物-氧化物-硅(SONOS)存储器、嵌入式DRAM、扩展数据输出RAM、双数据率(DDR)RAM、电阻式随机存取存储器(RRAM)、参数随机存取存储器(PRAM)等)、只读存储器(ROM)(例如掩模型ROM(Mask ROM)、可编程只读存储器(PRAOM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)等)、闪存、或任何其他合适的存储器系统。处理单元108、110执行的指令可被用于提供网络服务。

处理单元108可通过子系统总线112(如外围组件互联(PCI)、工业标准架构(ISA)、PCI-Express、NuBus等)连接到服务接口124。处理单元110可通过子系统总线连接到路由接口126。服务接口124可经系统总线128连接到路由接口126。系统总线128可包括例如外围组件互联(PCI)、工业标准架构(ISA)、PCI-Express、NuBus等。在一些示例中,系统总线128可以是以太网电缆,服务接口124和路由接口126可以是网络接口。

子系统总线112可经网络接口134将处理器108连接到网络130和本地设备132。网络接口134涵盖诸如局域网(LAN)和广域网(WAN)之类的通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜线分布式数据接口(CDDI)、以太网、令牌环、以及诸如之类的无线技术等等。WAN技术包括,但不限于,点对点链路、电路交换网,如综合业务数字网(ISDN)以及其变体,分组交换网络以及数字用户线(DSL)。通信连接(未示出)可包括用来将网络接口134连接到子系统总线112的硬件/软件。通信连接可在路由子系统104内部或在计算设备102外部。用于到网络接口的连接的硬件/软件可包括,例如,内部和外部技术,诸如移动电话交换机、调制解调器(包括固定电话级调制解调器、电缆调制解调器和DSL调制解调器)、ISDN适配器以及以太网卡。

路由子系统104的存储设备120可包括诸如路由引擎136和监控引擎138之类的一个或多个模块。路由引擎136可被配置成接收来自源设备的网络包以及将该网络包发送到目的地设备。在一些示例中,路由引擎136可被配置成响应于检测出一服务在服务子系统106上被启用而经服务接口124将网络包发送给服务子系统106。路由引擎136可被进一步配置成接收来自服务子系统106的经处理的网络包,并响应于接收到来自服务子系统106的网络包而将经处理的网络包转发到目的地地址。监控引擎138可被配置成监控服务子系统106上的服务。响应于监控引擎138检测出服务是无响应的,监控引擎138可在服务子系统106上重启该服务。例如,响应于监控引擎138检测出服务或服务子系统106是无响应的,路由子系统104可将网络包直接发送给目的地设备。在一些示例中,响应于监控引擎138检测出服务子系统106是无响应的,监控引擎138可进一步重启服务子系统106。

服务子系统106的存储设备122也可包括服务引擎140和相关联的服务142。服务引擎140可被配置成响应于检测出一服务被启用而接收来自路由子系统的网络包。服务引擎140可被配置成基于启用的服务来处理网络包。服务引擎140可被进一步配置成将经处理的网络包发送到路由子系统104。在一些示例中,除了其他可能的服务142之外,相关联的服务142可包括防病毒扫描和物联网(IoT)设备管理。如本文所使用的,IoT设备可包括嵌有电子设备、软件、传感器以及连接性的设备,使得该设备能够与设备的生产者、设备的操作者、和/或其他连接的设备交换数据。

在一些示例中,路由子系统104可创建虚拟局域网来与服务子系统106相关联。例如,路由子系统104可向虚拟局域网指派在路由子系统104外部不可发现的网际协议地址。在一些示例中,如果监控模块检测出服务142或服务子系统106是无响应的,则路由子系统104可将网络包直接发送给目的地设备。例如,服务142或服务子系统106可能已被禁用,或者服务142或服务子系统106可能已经崩溃。

要理解,图1的框图并不意在指示计算系统100要包括图1中所示的全部组件。相反,计算系统100可包括较少的或图1中未例示出的额外的组件(例如,额外的应用、额外的引擎、额外的存储器设备、额外的网络接口、额外的本地和/或远程设备等等)。此外,路由引擎136、监控引擎138、以及服务引擎140的功能中的任何功能可被部分地或完整地在硬件和/或一个或多个处理器中实现。例如,功能可以用专用集成电路来实现、以在处理器中实现的逻辑来实现、或以任何其他设备来实现。例如,但非限制,可被使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、程序专用的集成电路(ASIC)、程序专用的标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。

图2是例示出被配置成向本地和远程设备提供网络服务的计算系统环境的示例的图。在一些情况中,计算系统环境200可包括通过连接202、204、206耦合于计算设备102的一组本地设备132A、132B、132C。路由设备可进一步被耦合于网络130,网络130通过连接210、212、214耦合于远程设备136A、136B、136C。

在图2中,计算设备102可以是路由器。路由器可向本地设备132A、132B、132C或远程设备136A、136B、136C中的任何设备提供多个服务。例如,本地设备132A、132B、132C可以是由路由器102所创建的物联网(IoT)网络中的智能设备。在一些示例中,路由器102可提供诸如IoT设备的连接、管理、控制和/或安全性之类的服务。例如,当由运动检测IoT设备检测出运动时,智能灯可被路由器102自动打开。在一些示例中,路由器102可提供流媒体服务作为媒体服务器。例如,路由器102可将媒体内容流传送到环境200中的其他媒体渲染设备。

而且,从用户或设备的视角来看,提供如上述图1中所讨论的服务的服务子系统是不可见的且透明地操作。从而,从用户或设备132A、132B、132C、136A、136B、136C中任何设备的视角来看,路由器102可看上去像例如标准家用路由器。在一些示例中,这可通过为计算设备或路由器102中的服务子系统创建专用虚拟LAN(VLAN)来实现。作为路由器,计算设备或路由器102的路由子系统可控制网络配置以及提供两个或更多个VLAN,每个VLAN使用不同的子网。第一子网可被用于所有其他设备来连接到路由器102进行因特网访问。例如,第一VLAN可具有子网掩码为255.255.255.0的子网192.168.1.0/24。当设备132A、132B、132C连接到路由器102时,路由子系统可为设备分配从192.168.1.2至192.168.1.254的IP地址。例如,IP地址可以是192.168.1.100等。IP地址192.168.1.1和192.168.1.255通常是保留的IP地址,且通常路由器将被分配192.168.1.1的IP地址。路由功能可与标准路由器相同。然而,在内部,路由子系统可创建第二VLAN。例如,第二VLAN可具有子网掩码也为255.255.255.0的子网192.168.2.0/24,以及向服务子系统分配从192.168.2.2至192.168.2.254的IP地址。例如,服务子系统可具有IP地址192.168.2.100。路由子系统可使用IP地址192.168.2.100与服务子系统通信,服务子系统对其他家用设备不可见。路由子系统也可具有子网192.168.2.0/24中的IP地址,如192.168.2.1。

为了实现诸如防病毒扫描之类的服务和功能,服务子系统可检查由设备132A、132B、132C、136A、136B、136C发送或接收的每个网络包。例如,路由子系统可被配置成将任意数量的网络包转发给服务子系统。服务子系统可修 改包,然后将修改的包发回路由子系统,如下文关于图3详细讨论的那样。该过程可以对其他设备透明。例如,如果IP地址为192.168.1.200的PC 132A向IP地址为192.168.1.1的路由器102发送包,则路由器102的路由子系统可自动将该包转发至服务子系统的IP地址。在网络包被服务子系统修改之后,修改的网络包可被发回路由子系统。路由子系统然后可将修改的网络包发送到其最终目的地。例如,最终目的地可以是远程个人计算机136A、智能电话136A、或因特网上的web服务器136A。类似地,当路由器102接收到来自远程个人计算机136A、智能电话136A、或web服务器136A的要被发送到本地智能电话、家庭PC或服务器132A的网络包时,路由子系统也可在将网络包发送至本地智能电话、家庭PC或服务器132A之前首先将网络包转发至服务子系统。

在一些示例中,路由子系统还可运行一监控器引擎来监控服务子系统和服务子系统的服务的状态。例如,服务可以是运行在服务子系统中的一个或多个功能,诸如防病毒扫描。如果路由子系统检测出服务子系统或其服务之一停止了工作,则路由子系统可重启服务子系统或受影响的服务。监控功能在下文关于图4的方法更详细地被讨论。

图2的图不旨在指示示例计算系统环境200要包括图2中所示的全部组件。相反,示例计算系统环境200可包括较少的或图2中未例示出的额外的组件(例如,额外的本地设备、远程设备、网络、路由器等等)。

图3是用于经路由子系统和服务子系统在源设备与目的地设备之间传送数据包的时序图。该时序图总地由附图标记300来引用。在图3中,源设备302可被配置成将网络包发送至包括路由子系统104和服务子系统106的计算设备,如上关于图1和图2所讨论的。路由子系统104可被配置成将网络包发送至目的地设备304。例如,目的地设备304可以是本地设备132或远程设备136,如图1中讨论的。

如箭头306所指示的,源设备302将网络包发送至路由子系统104。在接收到网络包之际,路由子系统104可确定服务子系统106是否被启用且是响应的。如果服务子系统106被禁用或无响应,则过程可在箭头308处继续,如服务子系统106处的“X”所指示的。如果服务子系统106被启用且是响应的,则过程可在箭头310处继续。

如箭头308所指示的,路由子系统104将网络包直接发送至目的地设备304。如服务子系统106处的“X”所指示的,路由子系统104可检测出服务子系统106或其服务中的一个或多个服务被禁用或无响应。从而,源设备302可将网络包发送至目的地设备304,而不是将网络包发送至被禁用的或无响应的服务子系统106。该过程然后可在箭头316处继续。

如箭头310所指示的,路由子系统104将网络包发送至服务子系统106。例如,路由子系统104可能已检测出服务子系统104以及至少一个服务都已被启用且是响应的,并可将网络包转发至服务子系统106。在一些示例中,服务子系统106然后可基于一个或多个服务来修改网络包,或者用新的网络包来替换该网络包。例如,防病毒服务可阻挡去往被确定为主持有恶意软件的网站的网络包。在一些示例中,服务子系统106可用新的网络包替换该网络包。例如,如果一设备正在向一外部网站发送包且服务子系统106确定该外部网站是恶意的,则服务子系统106可通过一个或多个新的包向路由子系统104返回警告网页。例如,防病毒扫描程序可防止试图访问疑似恶意网站的网络包离开服务子系统106。在一些示例中,防病毒扫描程序可扫描从计算机发送的以及由计算机接收的网络包。例如,扫描程序可防止从恶意网站下载恶意软件。在一些示例中,服务子系统106可用新的网络包替换恶意包,指示出病毒被检测出并被阻止。服务子系统312可将新的网络包发送至路由子系统104以转发到请求设备。在一些示例中,如果源设备302正在发送对一本地服务的请求包,则服务子系统106可返回一新的包来服务于该请求。例如,文件服务器可被主控在服务子系统106上,但从源设备302的视角来看,文件服务器可能看上去被主控在路由器子系统104上。

如箭头312所指示的,服务子系统106将修改的网络包或新的网络包发送至路由子系统104。在一些示例中,服务子系统106将原始网络包发送至路由子系统104。例如,如果服务子系统106确定外部网站是良性的,则服务子系统106可将原始包返回到路由器子系统104以将包发送至该外部网站。

在框304,路由子系统104可将修改的网络包或新的网络包发送至目的地设备304。例如,路由子系统104可将警告网页包转发至设备。在一些示例中,服务可防止原始网络包到达源设备302。在一些示例中,路由子系统104可将 原始网络包发送至目的地设备304。例如,网络包可能已被防病毒服务扫描并被确定为正尝试访问一良性网站。

如箭头316所指示的,路由子系统104接收来自目的地设备304的另一网络包。如果路由子系统104检测出服务子系统106被禁用或无响应,则该过程可在框318处继续。如果路由子系统104检测出服务子系统以及一服务都被启用且是响应的,则该过程可在框320处继续。

如箭头318所指示的,路由子系统104将网络包直接发送至源设备302。如再次由服务子系统106处的“X”所指示的,路由子系统104可能已经检测出服务子系统106和/或服务子系统106的服务中的一个服务被禁用或无响应。

如箭头320所指示的,路由子系统104将来自目的地设备304的网络包发送至服务子系统106。例如,路由子系统104可能已经检测出服务子系统106以及一服务都被启用且是响应的。服务子系统106然后可通过可提供丰富功能的一个或多个服务来修改网络包。例如,服务可以是防病毒扫描程序。防病毒扫描程序可去除网络包的恶意部分。在一些示例中,防病毒扫描程序可防止网络包到达源设备302。例如,防病毒扫描程序可拦截网络包并用包含病毒通知的包来替换该网络包。

如箭头322所指示的,服务子系统106将修改的网络包发送至路由子系统104。例如,网络包可能已在框320中被服务之一修改。

如箭头324所指示的,路由子系统104将网络包发送至源设备302。例如,该网络包可以是修改的网络包。

从而,服务过程300可就两个或更多个设备之间的任何方向的通信而言提供附加功能和服务。而且,如果服务子系统106在任一时刻失效,或以其他方式被禁用或无响应,则路由子系统104可通过转发网络包以及绕过服务子系统104来继续操作,如上文框308和318中所述。从而,服务过程300降低了在服务子系统上安装新功能时系统不稳定的风险。即使服务子系统106崩溃,路由子系统104仍然能够如常工作来服务所有的设备。例如,路由子系统104可继续确保所有设备都能如常访问因特网并彼此通信。

图4是例示出用于监控服务子系统的方法的框图。该方法总地由附图标记400引用,并可由上文图1的路由子系统104来执行。

在框402,路由子系统接收来自服务子系统和/或一服务的注册包以及监听端口的列表。例如,服务子系统和/或服务可向路由子系统的监控器组件注册,以及开始在用户数据报协议(UDP)端口等之处监控查验(ping)包。在一些示例中,路由子系统可经用户配置界面接收要被监控的服务的列表。例如,用户可通过用户配置界面预先配置服务子系统上的哪些服务应被监控。

在框404,路由子系统以预定的间隔通过监听端口向服务子系统和/或服务发送查验包。例如,响应于接收到一查验包,服务子系统或服务可用一响应来回复,指示出服务系统和/或服务仍然起作用和/或被启用。

在框406,路由子系统确定是否在预定时间内从服务子系统和/或服务接收到响应。如果路由子系统确定在预定时间内接收到响应,则方法可返回框404。如果路由子系统确定在预定时间内没有接收到响应,则方法可在框408继续。

在框408,路由子系统重启服务子系统和/或服务。例如,如果路由子系统的监控器组件没有在预定时间内接收到预期响应,则监控器组件可确定服务子系统或一服务已停止工作,并重启它。在一些示例中,该预定时间可基于被发送的查验包的数量。例如,在无任何响应的一定数量的连续查验包之后,路由子系统可重启服务子系统。

该框图不旨在指示方法400的各框要以任何特定次序来被执行,或者在每一种情况下都要包括所有框。进一步,取决于具体实现的细节,任何数量的未示出的附加框可被包括在方法400内。

图5是用于提供网络服务的示例计算机可读存储介质的框图。有形的计算机可读存储介质500可由处理设备502通过计算机总线504来访问。此外,有形的计算机可读存储介质500可包括引导处理设备502执行当前方法的各步骤的代码。

此处讨论的各种软件组件可被存储在有形的计算机可读存储介质500上,如图5中所指示的。例如,有形的计算机可读存储介质500可包括路由模块506、服务模块508以及监控器模块510。路由模块506可被配置成在第一处理设备处接收来自源设备的网络包。服务模块508可被配置成在第二处理设备处基于启用的服务应用来处理该网络包。例如,该启用的服务应用可以是防病毒扫描程序或IoT应用。路由模块506也可被配置成将经处理的网络包发送至目的地 设备。

在一些示例中,监控器模块510可被配置成监控第二处理设备,以及确定第二处理设备是响应的还是无响应的。在一些示例中,路由模块506可被配置成:如果第二处理设备是响应的,则将网络包发送至第二处理设备,而如果第二处理设备是无响应的,则将网络包直接发送至目的地设备。

要理解,取决于具体应用,图5中未示出的任意数量的额外的软件组件可以被包括在有形的计算机可读存储介质500内。尽管用专门描述结构特征和/或方法的语言描述了本主题,但可以理解,在后附权利要求书中限定的主题并不一定局限于上述特定的结构特征或方法。相反,上文所描述的具体结构特征和方法是作为实现权利要求书的示例形式公开的。

示例1

该示例提供了一种用于提供网络服务的示例系统。该示例系统包括路由子系统以接收来自源设备的网络包以及将所述网络包发送到目的地设备。该示例系统还包括服务子系统以在服务被启用的情况下接收来自所述路由子系统的所述网络包。所述服务子系统还可基于启用的所述服务来修改所述网络包或用新的包替换所述网络包。所述服务子系统还可进一步将修改的网络包或新的包发送到所述路由子系统。响应于接收到来自所述服务子系统的所述修改的网络包或所述新的包,所述路由子系统可将所述修改的网络包或所述新的包转发到目的地地址。替代地或另外地,所述服务子系统可通过去除所述网络包的一部分来修改所述网络包。替代地或另外地,所述路由子系统和所述服务子系统各自包括不同的虚拟处理器。替代地或另外地,所述路由子系统可进一步创建虚拟局域网来与所述服务子系统相关联。替代地或另外地,所述路由子系统进一步包括监控引擎以监控所述服务子系统上的一服务,以及响应于所述监控引擎检测出所述服务是无响应的而重启所述服务子系统上的所述服务。替代地或另外地,响应于所述监控引擎检测出所述服务子系统是无响应的,所述监控引擎可进一步重启所述服务子系统。替代地或另外地,响应于所述监控引擎检测出所述服务或所述服务子系统是无响应的,所述路由子系统可将所述网络包直接发送给所述目的地设备。替代地或另外地,所述路由子系统可进一步向所述虚拟局域网指派在所述路由子系统外部不可发现的网际协议地址。替代地或另外 地,所述路由子系统包括第一处理器,而所述服务子系统包括第二处理器,所述第一处理器要通过网络连接来被耦合到所述第二处理器。替代地或另外地,所述路由子系统包括第一处理器,而所述服务子系统包括第二处理器,其中所述第一处理器和所述第二处理器驻留在单个电路板上且要通过计算机总线被耦合。

示例2

该示例提供了一种用于提供网络服务的示例方法。该示例方法包括经第一处理器接收来自源设备的网络包。该示例方法包括响应于检测出服务子系统和一服务是响应的,经所述第一处理器将所述网络包发送到第二处理器。该示例方法还包括经所述第二处理器基于所述服务修改所述网络包或者生成新的网络包。该示例方法进一步包括经所述第一处理器接收来自所述第二处理器的修改的网络包或所述新的网络包。该示例方法还进一步包括经所述第一处理器将所述修改的网络包或所述新的网络包发送到目的地设备。替代地或另外地,修改所述网络包包括响应于检测出可能的病毒或恶意软件而去除所述网络包的一部分。替代地或另外地,该示例方法可包括经所述第一处理器将所述修改的网络包或所述新的网络包直接发送至目的地设备。替代地或另外地,该示例方法可包括经所述第一处理器监控所述服务子系统和所述服务并确定所述服务和所述服务子系统是响应的还是无响应的,以及响应于检测出所述服务或所述服务子系统是无响应的,经所述第一处理器将所述网络包直接发送至所述目的地设备。替代地或另外地,监控所述第二处理器可包括经所述第一处理器接收来自所述服务子系统和所述服务的注册包以及监听端口的列表。替代地或另外地,监控所述第二处理器可包括经所述第一处理器通过所述监听端口将一查验包发送至所述服务子系统和所述服务。替代地或另外地,监控所述第二处理器可包括经所述第一处理器监控响应于所述查验包的响应包。替代地或另外地,监控所述第二处理器可包括如果在预定时间内所述响应包没有被所述第一处理器接收到,则经所述第一处理器和所述第二处理器重启所述服务子系统、所述服务、或两者。替代地或另外地,该示例方法可进一步包括如果在所述预定时间量内由所述第一处理器接收到额外的相应的响应包,则经所述第一处理器将额外的查验包发送到所述服务子系统和所述服务。替代地或另外地,该示例 方法可进一步包括经所述第一处理器创建专用虚拟局域网以与所述服务子系统和所述服务相关联。替代地或另外地,创建专用虚拟局域网进一步包括经所述第一处理器向所述服务子系统和所述服务指派网际协议(IP)地址,其中所述IP地址在所述路由子系统外部是不可发现的。替代地或另外地,该示例方法可进一步包括经所述第二处理器启用所述服务,其中基于被启用的所述服务,所述网络包要通过去除所述网络包的一部分或用新的包替换所述网络包来被修改。

示例3

该示例提供了用于存储计算机可读指令的示例一个或多个计算机可读存储器存储设备,所述指令在被一个或多个处理设备执行时指示提供网络服务。所述计算机可读指令可包括在第一处理设备处接收来自源设备的网络包的代码。所述计算机可读指令可包括监控第二处理设备并确定所述第二处理设备是响应的还是无响应的的代码。所述计算机可读指令可包括在所述第二处理设备处基于启用的服务应用处理所述网络包的代码。所述计算机可读指令可包括将经处理的网络包发送至目的地设备的代码。替代地或另外地,所述计算机可读指令可包括通过去除所述网络包的一部分或用新的包替换所述网络包来处理所述网络包的代码,其中所述新的包包括防病毒消息。替代地或另外地,所述计算机可读指令可包括监控所述第二处理设备并确定所述第二处理设备是响应的还是无响应的的代码。替代地或另外地,所述计算机可读指令可包括响应于检测出所述服务或所述服务子系统是无响应的,经所述第一处理设备将所述网络包直接发送至所述目的地设备的代码。替代地或另外地,所述计算机可读指令可包括经所述第一处理设备接收来自所述服务子系统和所述服务的注册包以及监听端口的列表。替代地或另外地,所述计算机可读指令可包括经所述第一处理设备通过所述监听端口将一查验包发送至所述服务子系统和所述服务的代码。替代地或另外地,所述计算机可读指令可包括经所述第一处理设备监控响应于所述查验包的响应包的代码。替代地或另外地,所述计算机可读指令可包括响应于检测出在预定时间内所述响应包没有被所述第一处理设备接收到,经所述第一处理设备和所述第二处理设备重启所述服务子系统、所述服务、或两者的代码。替代地或另外地,所述计算机可读指令可包括经所述第一 处理设备创建专用虚拟局域网以与所述服务子系统和所述服务相关联的代码。替代地或另外地,所述计算机可读指令可包括经所述第一处理设备向所述服务子系统和所述服务指派网际协议(IP)地址的代码,其中所述IP地址在所述路由子系统外部是不可发现的。

示例4

该示例提供了一种用于提供网络服务的示例系统。该示例系统包括用于接收来自源设备的网络包以及将所述网络包发送到目的地设备的装置。该系统还包括用于响应于检测出一服务被启用而接收来自所述路由子系统的所述网络包的装置。该示例系统还可包括用于基于被启用的所述服务修改所述网络包的装置。该示例系统还可包括用于响应于接收到修改的网络包将所述修改的网络包发送至用于将所述修改的网络包转发到目的地地址的装置的装置。替代地或另外地,用于接收所述网络包的装置包括第一处理器,而用于修改所述网络包的装置包括第二处理器,所述第一处理器要通过总线来被耦合到所述第二处理器。替代地或另外地,用于接收所述网络包的装置和用于修改所述网络包的装置各自包括不同的虚拟处理器。替代地或另外地,用于接收所述网络包的装置可进一步创建虚拟局域网以与用于修改所述网络包的装置相关联。替代地或另外地,用于接收所述网络包的装置进一步包括用于监控所述服务子系统上的一服务以及响应于检测出所述服务是无响应的而重启所述服务子系统上的所述服务的装置。替代地或另外地,用于监控所述服务的装置可进一步响应于检测出用于修改所述网络包的装置是无响应的而重启所述服务子系统。替代地或另外地,用于接收所述网络包的装置可响应于检测出用于修改所述网络包的装置是无响应的而将所述网络包直接发送至所述目的地设备。替代地或另外地,用于接收所述网络包的装置可进一步向所述虚拟局域网指派在用于接收所述网络包的装置外部不可见的网际协议地址。替代地或另外地,用于接收所述网络包的装置包括第一处理器,而用于修改所述网络包的装置包括第二处理器,所述第一处理器要通过网络连接来被耦合到所述第二处理器。替代地或另外地,用于接收所述网络包的装置包括第一处理器,而用于修改所述网络包的装置包括第二处理器,其中所述第一处理器和所述第二处理器驻留在单个电路板上且要通过计算机总线来被耦合。

以上所已经描述的内容包括所要求保护的主题的各方面的示例。当然,出于描绘所要求保护的主题的目的而描述组件或方法的每一个可以想到的组合是不可能的,但本领域内的普通技术人员应该认识到,所要求保护的主题的许多其他组合和排列都是可能的。因此,所要求保护的主题旨在包含落在所附权利要求书的精神和范围内的所有这样的更改、修改和变化。

特别地,对于由上述组件、设备、电路、系统等执行的各种功能,除非另外指明,否则用于描述这些组件的术语(包括对“装置”的引用)旨在对应于执行所描述的执行此处在所要求保护的主题的示例性方面中所示的功能的组件的指定功能(例如,功能上等效)的任何组件,即使这些组件在结构上不等效于所公开的结构。关于这一点,还应认识到,本创新包括具有用于执行所要求保护的主题的各种方法的动作和事件的计算机可执行指令的系统以及计算机可读存储介质。

有多种实现所要求保护的主题的方式,例如,使应用和服务能使用在此描述的技术的适当的API、工具包、驱动程序代码、操作系统、控件、独立或可下载的软件对象等等。所要求保护的主题还构想从API(或其他软件对象)的角度来看的用途,以及来自根据本文中所提出的技术操作的软件或硬件的用途。如此,本文中所描述的所要求保护的主题的各种实现可以具有完全以硬件、部分以硬件而部分以软件、以及以软件来实现的各种方面。

如前所述的系统已经参考若干组件之间的交互来描述。可以理解,这些系统和组件可包括组件或指定的子组件、某些指定的组件或子组件、以及附加的组件,并且根据上述内容的各种置换和组合。子组件也可作为通信上耦合到其他组件的组件来实现,而不是被包括在父组件内(分层的)。

另外,可注意到,一个或多个组件可以被组合成提供聚合功能的单个组件,或者被分成若干单独的子组件,并且可以提供诸如管理层之类的任何一个或更多中间层以在通信上耦合于这样的子组件,以便提供集成的功能。本文中所述的任何组件也可与一个或多个本文中未专门描述的但本领域技术人员一般已知的其他组件进行交互。

另外,尽管可能已经相对于若干实现中的一个实现公开了所要求保护的主题的某一特征,但是如可对任何给定的或特定的应用所希望且有利的那样,这 样的特征可与其它实现的一个或多个其它特征相组合。而且,就术语“包括”、“含有”、“具有”、“包含”、其变型以及其他类似单词在详细描述或权利要求书中的使用而言,这样的术语旨在以类似于术语“包括”作为开放的过渡词的方式为包含性的而不排除任何附加或其他元素。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1