CN101099345A - 利用采样和试探在网络元件处解释应用消息 - Google Patents

利用采样和试探在网络元件处解释应用消息 Download PDF

Info

Publication number
CN101099345A
CN101099345A CN200580045969.XA CN200580045969A CN101099345A CN 101099345 A CN101099345 A CN 101099345A CN 200580045969 A CN200580045969 A CN 200580045969A CN 101099345 A CN101099345 A CN 101099345A
Authority
CN
China
Prior art keywords
message
packet
network element
messages
aons
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
Application number
CN200580045969.XA
Other languages
English (en)
Other versions
CN101099345B (zh
Inventor
德凡奥斯·安思亚斯
苏尼尔·波迪
苏布尔曼尼恩·西尼瓦萨恩
尼特什·特里卡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Publication of CN101099345A publication Critical patent/CN101099345A/zh
Application granted granted Critical
Publication of CN101099345B publication Critical patent/CN101099345B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0894Policy-based network configuration management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0263Rule management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • H04L41/0266Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using meta-data, objects or commands for formatting management information, e.g. using eXtensible markup language [XML]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]

Abstract

公开了一种用于利用采样和试探在网络元件处解释应用消息的方法。利用该方法,比如路由器之类的网络元件可仅基于数据分组的分组头部确定网络元件是否应当投入检查和解释数据分组的有效载荷部分所需的时间和处理能力,或者网络元件是否可在不检查和解释数据分组的有效载荷部分的情况下向数据分组的目的地发送数据分组。根据一个方面,当处于采样状态时,网络元件确定要求应用层消息检查的所有数据分组的分组头部具备的共享分组头部特性。在处于处理状态时,网络元件放弃对其分组头部不具备共享分组头部特性的数据分组进行应用层消息检查。网络元件在这些状态之间交替。

Description

利用采样和试探在网络元件处解释应用消息
技术领域
本发明一般地涉及计算机网络中的网络元件。更具体而言,本发明涉及用于利用采样和试探(heuristics)在网络元件处解释应用消息的方法和设备。
背景技术
本部分中描述的方法可以被实行,但不一定是先前已经构想出或实行过的方法。因此,除非这里另有指明,否则本部分中描述的方法不因为被包括在本部分中就成为本申请的权利要求的现有技术,并且不被承认是现有技术。
通常,当今的网络只处理数据分组和网络数据,而不处理应用数据。在企业对企业环境中,在计算机上执行的应用通常与在其他计算机上执行的其他应用通信。例如,在计算机“X”上执行的应用“A”可能向在计算机“Y”上执行的应用“B”发送指示购买订单的实质的消息。
计算机“X”可能远离计算机“Y”。为了使得计算机“X”能够发送消息到计算机“Y”,计算机“X”可通过诸如局域网(LAN)、广域网(WAN)或互联网(例如因特网)之类的计算机网络来发送消息。为了通过这种网络发送消息,计算机“X”可以使用一套通信协议。例如,计算机“X”可结合使用比如因特网协议(IP)之类的网络层协议和比如传输控制协议(TCP)之类的传输层协议来发送消息。
假定消息是利用TCP发送的,则消息被封装到一个或多个数据分组中;同一消息的多个单独部分可在多个单独分组中发送。继续上述示例,计算机“X”通过网络向计算机“Y”发送数据分组。计算机“X”和计算机“Y”之间的一个或多个网络元件可以接收该分组,确定分组的下一“跳”,并且向计算机“Y”发送分组。
例如,路由器“U”可接收来自计算机“X”的分组,并基于分组的目的地是计算机“Y”而确定分组应当被转发到另一路由器“V”(路由上的下一“跳”)。路由器“V”可接收来自路由器“U”的分组,并继续发送分组到计算机“Y”。在计算机“Y”处,分组的内容可被提取和重组装,以形成原始消息,该原始消息可被提供给应用“B”。应用“A”和“B”可以不注意分组是通过路由“U”和“V”路由的这一事实。实际上,多个单独分组可以采取不同的路由来通过网络。
可以结合上述网络层和传输层协议使用若干种应用层协议中的任何一种来发送消息。例如,应用“A”可指定计算机“X”要利用超文本传输协议(HTTP)来发送消息。因此,计算机“X”在如上所述将消息封装到TCP分组中之前可在消息前面添加特定于HTTP的头部。如果应用“B”被配置为根据HTTP接收消息,则计算机“Y”可利用特定于HTTP的头部来处理消息。为了构造应用级消息,网络设备必须终止协议并组装分组。
除了以上所有之外,消息必须根据若干种消息格式中的任何一种来构造。消息格式一般指示消息的结构。例如,如果购买订单包括地址和递送日期,则在消息内可利用特定于消息格式的机制来区分地址和递送日期。例如,应用“A”可利用可扩展标记语言(XML)来指示购买订单的结构。利用XML作为消息格式,地址可被装在“<address>”和“</address>”标签内,递送日期可被装在“<delivery-date>”和“</delivery-date>”标签内。如果应用“B”被配置为解释XML消息,则应用“B”可使用这些标签来确定消息的哪个部分包含应用,以及消息的哪个部分包含递送日期。
可是,不同的应用经常被设计为利用不同的应用层协议发送和接收消息。例如,应用“A”可能被设计为仅利用HTTP发送消息,而应用“B”可能被设计为仅利用文件传输协议(FTP)来接收消息,该文件传输协议是另一种应用层协议。此外,不同的应用可能被设计为利用不同的消息格式来格式化和解释消息。例如,应用“A”可能被设计为仅利用XML来格式化消息,而应用“B”可能被设计为仅利用电子数据交换(EDI)来解释消息。
通常,设计或更新一个应用以便该应用能够利用所有可能的消息格式和应用层协议与其他应用交谈是不实际的,甚至是不可能的。一些消息格式和应用层可能是专属的、没有向公众公开过的。一些消息格式和应用层协议可能是相对较新、不太著名的。一些消息格式和应用层协议可能太老以至于一般被认为已经过时。
在传统的实践中,路由器、交换机和其他中间网络元件在不具备对分组流中包含的高级应用层消息的任何知识、认知或处理的情况下对个体帧、数据报和分组进行路由或交换。为了减少允许一个应用与可能使用不同消息格式和/或应用层协议的其他应用交谈所需的应用修改量,与这种应用相分离的中间网络元件可被设计为接收明确发送到这些网络元件的消息、“转化”消息,然后发送消息。这种转化可通过以下方式实现:查找分组中开始于指定比特位置的指定比特模式,然后如果找到该指定比特模式则更改该指定比特位置处的比特。例如,网络装置“J”可被设计为接收利用HTTP发送的消息并改用FTP来发送这些消息。又例如,网络装置“K”可能被设计为接收XML格式的消息,并且将这些消息转化为EDI格式。从而,如果应用“A”利用HTTP发送XML消息,而应用“B”利用FTP接收EDI消息,则应用“A”可被配置为使得应用“A”通常会寻址到应用“B”的消息改为被寻址到网络装置“J”。网络管理员可将网络装置“J”配置为发送消息到网络装置“K”,并且网络管理员可将网络装置“K”配置为发送消息到应用“B”。
不幸的是,该方法要求网络管理员进行大量工作。随着通信应用使用的可能的不同应用层协议和消息格式的数目的增加,网络装置和这些网络装置之间的路径的数目也急剧提高。对于每一对发送方和接收方应用,遵循该方法的网络管理员可配置这些应用和所涉及的网络装置,以确保消息将会沿着通过有关网络装置的正确路径。从而,如果应用“A”、“B”、“C”、“D”和“E”中的每一个需要与彼此通信,则遵循该方法的网络管理员可能需要配置25条不同的“路径”,每条中有一个或多个网络装置。随着应用被添加、移除和修改,网络管理员可能需要向和/或从应用对之间的某些路径中添加和/或移除某些网络装置。当涉及许多应用时,大多数网络管理员都承受不了这种负担。
此外,多个路径被配置为包含同一网络装置,于是网络装置可能变成降低网络性能的瓶颈。
从而,这种“按对的路径配置”方法在应用到其中大量不同应用进行通信的系统时是不实用的。需要一种更实用的用于允许多个不同应用进行通信的技术。
此外,现有的中间网络元件在这些网络元件可对分组执行的处理的种类上以及这些网络元件可对分组执行的动作的种类上是受限的。通常,现有的中间网络元件仅对在数据分组的头部中具备匹配参数的数据分组执行单个专门操作。参数和操作通常都是固定的,而不能由末端用户定制。需要一种用于允许对数据流执行大量多种可定制操作的技术。
此外,处理数据分组的内容通常需要大量时间以及网络元件的有限处理资源中的很大一部分。在网络元件需要在将数据分组发送到数据分组的目的地之前处理这些数据分组的内容的情况下,网络元件经常无法以与在数据分组内容不被处理的情况下数据分组被发送的速率相同的速率发送经处理的数据分组。如果网络元件被强迫处理该网络元件接收的所有数据分组的内容,则分组等待时间可能增大,并且分组吞吐量可能减小。结果,网络的整体性能一般会降低。
在一些情形下,只有一些数据分组的内容需要被处理。不幸的是,对特定数据分组的内容是否需要被处理的确定有时要求彻底检查内容本身,而彻底检查所要求的时间和处理能力的投入几乎与处理本身所要求的一样大。需要一种用于减少其内容被彻底检查的数据分组的比例的更高效的技术。
附图说明
通过附图以示例方式而非限制方式说明本发明,附图中类似的标号是指类似的元件,其中:
图1是图示其中一个或多个网络元件执行数据分组采样和处理的系统的一个实施例的概况的框图;
图2A-B示出了图示利用采样和试探在网络元件处解释应用消息的方法的一个实施例的概况的流程图;
图3A-B示出了图示在处于处理状态时在网络元件处处理应用层消息的方法的一个实施例的流程图;
图4示出可能与特定的消息分类相关联的样本流;
图5是图示其上可实现一个实施例的计算机系统的框图;
图6是图示其中监督刀片(blade)将一些分组流引导到AONS刀片和/或其他刀片的路由器的一个实施例的框图;
图7是图示根据一个实施例的AONS网络中包括的各种组件的图;
图8是示出示例性的AONS节点内的功能模块的框图;
图9是示出可以对消息流量执行以便仅产生将在AONS层被处理的选定的一组流量的多层过滤的图;
图10是图示根据云视图的AONS云内的消息的路径的图;
图11A和图11B是图示请求/响应消息流程的图;
图12A和图12B是图示替换请求/响应消息流程的图;
图13是图示单向消息流程的图;
图14是图示替换单向消息流程的图;
图15A和图15B是图示具有可靠消息递送的请求/响应消息流程的图;
图16是图示具有可靠消息递送的单向消息流程的图;
图17是图示同步请求和响应消息的图;
图18是图示样本单向端到端消息流程的图;
图19是图示AONS节点内的消息处理模块的图;
图20是图示AONS节点内的消息处理的图;
图21、图22和图23是图示AONS配置和管理框架内的实体的图;以及
图24是图示AONS监视体系结构的图。
具体实施方式
描述了用于利用采样和试探在网络元件处解释应用消息的方法和设备。在下面的描述中,出于说明目的,给出了大量具体细节以便完全理解本发明。但是,本领域技术人员将会清楚,没有这些具体细节也可以实施本发明。在其他实例中,公知的结构和设备以框图形式示出,以避免不必要地模糊本发明。
这里根据下面的大纲描述实施例:
1.0综述
2.0结构和功能概述
3.0实现方式示例
3.1多刀片体系结构
3.2在处于处理状态时处理应用层消息
3.3动作流程
3.4 AONS示例
3.4.1 AONS综述
3.4.2 AONS术语
3.4.3 AONS功能概述
3.4.4 AONS系统概述
3.4.5 AONS系统元件
3.4.6 AONS示例性特征
3.4.7 AONS功能模块
3.4.8 AONS工作模式
3.4.9 AONS消息路由选择
3.4.10流程、BladeletsTM和ScriptletsTM
3.4.11 AONS服务
3.4.12 AONS配置和管理
3.4.13 AONS监视
3.4.14 AONS工具
4.0实现机构-硬件概述
5.0扩展和替换
1.0综述
前述背景技术部分所指出的需求以及从下面的描述中将会显现出来的其他需求和目标在本发明中得以实现,本发明在一个方面包括一种用于利用采样和试探在网络元件处解释应用消息的方法。利用该方法,比如路由器之类的网络元件可仅基于数据分组的分组头部确定网络元件是否应当投入检查和解释数据分组的有效载荷部分所需的时间和处理能力,或者网络元件是否可在不检查和解释数据分组的有效载荷部分的情况下向数据分组的目的地发送数据分组。
根据一个实施例,网络元件在任何给定时刻处于两种状态之一:采样状态或处理状态。指定的试探或算法可被用作确定网络元件在任何特定时刻网络元件所处的状态的基础。网络元件在处于这些状态中的每一种中时的行为在下面描述。
当网络元件处于采样状态时,网络元件从网络元件接收的数据分组的有效载荷部分构造应用层消息。对于这样构造的每条应用层消息,网络元件基于应用层消息的内容和/或其他因素,确定消息所属的可能很多所定义的消息分类中的一个;每个这种消息分类与消息要属于该消息分类则需要满足的标准集合相关联。消息分类是网络元件将为其应用适当策略的一个或多个消息集合。
对于每个定义的消息分类,网络元件分析包含属于该消息分类的消息的一些部分的数据分组的分组头部。出于简明清晰的目的,这里使用的术语“消息分类的头部集合”是指“包含属于消息分类的消息的至少一些部分的数据分组的分组头部集合”,术语“数据分组的分组头部集合”和“数据分组的头部集合”是指“数据分组中包含的分组头部的集合”。例如,特定的数据分组的分组头部集合可包括该特定数据分组中包含的TCP头部和IP头部两者。分组头部集合可包括开放系统互连(OSI)第2、3和4层协议头部。
基于上述分组头部分析,网络元件为每个消息分类确定消息分类的分组头部集合共同具有的一个或多个特性的集合(如果存在的话)。例如,对于特定的消息分类,网络元件可确定该消息分类的所有头部集合都指示相同的源IP地址和目的地IP地址。网络元件为每个消息分类确定尽可能多的共享特性。从而,如果消息分类的头部集合具有三个共同的特性,例如源IP地址、目的地IP地址和TCP端口,则网络元件确定对于该消息分类所有三个特性都是共享的。
对于不同的消息分类可确定不同的共享特性。例如,一个消息分类的头部集合可只具有共同的源IP地址,另一个消息分类的头部集合可只具有共同的目的地IP地址,而另一个消息分类的头部集合可能具有共同的源IP地址和目的地IP地址。出于简明和清晰的目的,这里使用的术语“消息分类的共享头部特性”是指“消息分类的所有头部集合都具备的特性”。只要网络元件处于采样状态中,每个消息分类的共享头部特性就可被扩展。
除了如上所述在处于采样状态时确定共享头部特性外,网络元件可响应于确定应用层消息属于特定消息分类执行与该特定消息分类相关联的一个或多个指定动作。
或者,在网络元件处于处理状态时,网络元件不一定要从网络元件接收的所有数据分组的有效载荷部分构造应用层消息。取而代之,对于网络元件在处于处理状态时接收的每个数据分组,网络元件最初检查数据分组的分组头部集合,而不检查数据分组的有效载荷部分。网络元件确定数据分组的头部集合是否具备任何定义的消息分类的共享头部特性(如果特定消息分类不具有共享头部特性,则数据分组的头部集合被确定为具备该特定消息分类的所有共享头部特性)。
如果数据分组的头部集合不具备任何定义的消息分类的所有共享头部特性,则网络元件将数据分组继续发送向数据分组的目的地,而不检查数据分组的有效载荷部分;在这种情况下,数据分组的有效载荷部分可能包含(至少部分包含)的任何应用层消息不能属于任何定义的消息分类,因此不需要检查有效载荷部分。
或者,如果数据分组的头部集合具备消息分类的所有共享头部特性,则网络元件使用数据分组的有效载荷部分的内容来至少部分地构造应用层消息。对于这样构造的每个应用层消息,网络元件基于应用层消息的内容和/或其他因素确定该消息属于哪个定义的消息分类(如果存在的话)。网络元件可响应于确定应用层消息属于特定消息分类执行与该特定消息分类相关联的一个或多个指定动作。
在一个实施例中,网络元件根据指定的时间间隔在采样状态和处理状态之间交替。例如,当在第一指定时间间隔(例如5秒)期间处于采样状态之后,网络元件可在第二指定时间间隔(例如一小时)期间切换到处理状态。作为附加或替换,网络元件可响应于用户命令或响应于新消息分类的创建而从处理状态切换到采样状态。
从而,网络元件可基于某些数据分组的头部集合所具备的特性可将这些数据分组从有效载荷部分检查和解释过程中排除。由于网络元件确定这些分组头部集合特性的速度经常可能远快于网络元件检查和解释包含在数据分组有效载荷部分中的应用层消息的速度,因此上述实施例减小了数据分组等待时间并增大了网络元件处的数据分组吞吐量,同时仍允许网络元件在需要时执行基于应用层消息的处理。在一些情况下,不可能预定义所有可能的消息分类。本发明的一个实施例帮助解决了该问题。
在其他方面中,本发明包括被配置为执行上述步骤的计算机设备和计算机可读介质。
2.0结构和功能概述
图1是图示其中一个或多个网络元件102、104、106和108执行数据分组采样和处理的系统100的一个实施例的概况的框图。网络元件102、104、106和108可以是代理设备和/或网络交换机和/或路由器,例如下面图6中所示的路由器600。
客户端应用110与网络元件102可通信地耦合。服务器应用112可通信地耦合到网络元件106。服务器应用114可通信地耦合到网络元件108。客户端应用110和服务器应用112和114可以是在多个单独计算机上执行的多个单独进程。
网络元件102和104与网络116可通信地耦合。网络元件104和网络元件106与网络118可通信地耦合。网络元件104和108与网络120可通信地耦合。网络116、118和120中的每一个是一个计算机网络,例如,局域网(LAN)、广域网(WAN)或比如因特网之类的互联网。网络116、118和120可包含额外的网络元件,例如路由器。
客户端应用110将消息寻址到服务器应用112和114。网络元件102、104、106和108截取包含消息的数据分组。网络元件102、104、106和108中的每一个存储定义的消息分类的一个集合,该定义的消息分类的集合可以是用户指定的。取决于网络元件102、104、106和108是处于上述采样状态还是处理状态中,网络元件可组装一个或多个数据分组,以确定其中包含的应用层消息的至少一部分,确定如上所述定义的消息分类的共享头部特性的集合,执行与应用层消息所属的定义消息分类相关联的动作,以及/或者向服务器应用112和114发送数据分组。网络元件102、104、106和108可响应于确定应用层消息属于特定消息分类而执行的一些动作的示例在下文更详细描述。
当处于处理状态中时,如果数据分组的头部集合不具备任何定义的消息分类的所有共享头部特性,则网络元件102、104、106和108向数据分组的目的地发送截取到的数据分组,而不检查或解释数据分组的有效载荷部分。这节约了网络元件的处理资源,从而平均上来说允许了网络元件更迅速地处理数据分组。
图2A-B示出了图示利用采样和试探在网络元件处解释应用消息的方法的一个实施例的概况的流程图。这种方法例如可由网络元件102、104、106和108中的任何一个执行。
参考图2A,在块202中,数据分组在网络元件处被截取。每个数据分组包括一个分组头部集合和一个有效载荷部分。例如,网络元件104可截取客户端应用110发送的若干数据分组,这些数据分组中的一些是向服务器应用112发送的,一些是向服务器应用114发送的。每个数据分组可包括一个IP头部和一个TCP头部,以及一个TCP有效载荷部分,该TCP有效载荷部分包含应用层消息的至少一部分,例如XML文档。TCP有效载荷部分可包含同一应用层消息或不同应用层消息的多个单独部分。
在块204中,确定网络元件是否处于采样状态中。例如,网络元件104可确定网络元件当前是处于采样状态还是处理状态中。如果网络元件处于采样状态中,则控制传递到块206。如果网络元件处于处理状态中,则控制传递到图2B的块216。
在块206中,通过检查有效载荷部分来确定总体包含在有效载荷部分中的应用层消息。例如,网络元件104可检查和组装多个TCP分组的有效载荷部分的内容,并构造多个单独的应用层消息。每条应用层消息例如可以是一个单独的XML文档。
在块208中,对于定义的消息分类的集合中的每个特定的消息分类,确定属于该特定消息分类的一个单独的应用层消息子集。如果一条消息满足与特定消息分类相关联的所有标准,则该消息属于该特定消息分类。控制传递到块210。
例如,假定存在“购买订单”和“账户事务”消息分类,一条消息要属于“购买订单”消息分类就必须包含“PurchaseOrder”XML元素,要属于“账户事务”消息分类就必须包含“AccountTransaction”元素,则网络元件104可为每条应用层消息或其一部分确定该消息或该部分是否包含“PurchaseOrder”XML元素或“AccountTransaction”元素。如果消息包含“PurchaseOrder”XML元素,则网络元件104可将消息分配到满足与“购买订单”消息分类相关联的标准的“购买订单”消息子集。如果消息包含“AccountTransaction”XML元素,则网络元件104可将消息分配到满足与“账户事务”消息分类相关联的标准的“账户事务”消息子集。如果消息不包含任何一种XML元素,则网络元件104可以不将消息分配到任何一个消息子集。
在块210中,对于每个特定的消息子集,确定一个单独的共享头部特性集合。仅当对于包含特定消息子集中的一条消息的至少一部分的每一个数据分组,该数据分组中包含的分组头部集合都具备某个分组头部集合特性时,该特性才是该特定消息子集的共享头部特性。控制传递到块212。
例如,“账户事务”消息子集可包含三条单独的消息,每条消息被包含在不同的数据分组中。如果所有这些数据分组的IP头部都包含相同的IP源地址和相同的IP目的地地址,则IP源地址和IP目的地地址都可以是“账户事务”消息子集的共享头部特性。如果所有这些数据分组的TCP头部都包含相同的TCP目的地端口,则TCP目的地端口也可以是“账户事务”消息子集的共享头部特性。
在块212中,对于每条应用层消息,在网络元件处执行与该消息所属的消息分类相关联的一个或多个动作。控制传递回块202。例如,对于属于“账户事务”消息分类的每条消息,网络元件104可执行与“账户事务”消息分类相关联的第一组动作,而对属于“购买订单”消息分类的每条消息,网络元件104可执行与“购买订单”消息分类相关联的第二组动作。这些动作可包括将消息转发向目的地,例如服务器应用112或服务器应用114。一些其他可能的动作在下文描述。
在某个时刻,网络元件从采样状态切换到处理状态。现参考图2B,在块216中,对于块202中截取的每个数据分组,确定数据分组的头部集合是否具备先前在块210中确定的任何共享头部特性集合中包含的所有特性。具有不具备任何共享头部特性集合中包含的所有特性的头部集合的数据分组被发送向这些数据分组的目的地。结果,这些数据分组被从发生在块218中的应用层消息检查和分类过程中“滤出”。例如,如果网络元件104确定特定的数据分组不具备任何共享头部特性集合中包含的所有特性,则网络元件104将该特定数据分组发送向该特定数据分组的目的地,而不检查或处理该特定数据分组的有效载荷部分的内容。
举一个更具体的示例,如果“购买订单”共享头部特性集合仅包含源IP地址“A”特性和目的地IP地址“B”特性,并且特定数据分组的头部集合还指示了源IP地址“A”特性和目的地IP地址“B”特性,则该特定数据分组具备“购买订单”共享特性集合中包含的所有共享头部特性。但是,如果该特定数据分组的头部集合指示源IP地址“A”特性但没有指示目的地IP地址“B”特性,则该特定数据分组不具备“购买订单”共享特性集合中包含的所有共享头部特性。即使如此,该特定数据分组的头部集合仍可能具备某个其他共享特性集合中包含的所有共享头部特性。
在块218中,通过税务局有效载荷部分确定剩余数据分组的有效载荷部分中总体包含的应用层消息。控制传递到块220。例如,网络元件104可检查和组装多个TCP分组的有效载荷部分的内容,以构造多条单独的应用层消息。每条应用层消息例如可以是一个单独的XML文档。
在块220中,对于块218中确定的每条应用层消息,确定该应用层消息所属的消息分类(如果存在的话)。控制传递到块222。例如,对于每条这种消息,网络元件104可确定该消息是否满足与“购买订单”消息分类相关联的标准,或者满足与“账户事务”消息分类相关联的标准,或者两者都不满足。
在块222中,对于属于一个消息分类的每条应用层消息,在网络元件处执行与该消息所属的消息分类相关联的一个或多个动作。控制传递回图2A的块202。例如,对于属于“账户事务”消息分类的每条消息,网络元件104可执行与“账户事务”消息分类相关联的第一组动作,而对于属于“购买订单”消息分类的每条消息,网络元件104可执行与“购买订单”消息分类相关联的第二组动作。这些动作可包括将消息转发向目的地,例如服务器应用112或服务器应用1 14。一些其他可能的动作在下文描述。
上述方法的一个结果是网络元件可以以更快的平均速率执行应用层消息处理。在处于处理状态中时,网络元件仅通过检查数据分组的协议头部而不是数据分组的有效载荷部分的全部内容,就可以进行检查以确定是否需要对特定数据分组执行更资源密集型的应用层消息处理。由于现有的硬件已经能够以高速执行协议头部检查,因此当协议头部检查只是需要对所有数据分组的至少一部分执行的一种检查时,网络性能就得以增强。
由于存储很多种应用消息,因此管理员将不知道设备需要服务的所有可能的组合。因此,网络元件可收集经过交换机的所有消息的元数据,而这可被管理员用于创建新的分类。
3.0实现方式示例
3.1多刀片体系结构
根据一个实施例,路由器中的面向应用的网络服务(Application-Oriented Network Services,简写为AONS)刀片执行上述动作中的一些。图6是图示其中监督刀片602将一些分组流610A-B引导到AONS刀片和/或其他刀片606N的路由器600的一个实施例的框图。路由器600包括监督刀片602、AONS刀片604和其他刀片606A-N。刀片602、604和606A-N中的每一个是单个电路板,该单个电路板被填充以通常处于多个板中的诸如处理器、存储器和网络连接之类的组件。刀片602、604和606A-N被设计为可添加到路由器600并可从路由器600中移除。路由器600的功能由其中的刀片的功能确定。向路由器600添加刀片可增强路由器600的功能,但是如果需要的话,路由器600可以利用更少的刀片以更低的成本提供更低程度的功能。一个或多个刀片可以是可选的。
路由器600接收分组流,例如分组流610A-B。更具体而言,路由器600所接收的分组流610A-B是由监督刀片602接收的。监督刀片602可包括转发引擎和/或路由处理器,例如可从Cisco Systems,Inc.购得的那些。
在一个实施例中,在路由器600处于采样状态中时,监督刀片602拷贝数据分组并将拷贝发送到AONS刀片604。在路由器600处于采样状态中时,AONS刀片604从AONS刀片604接收的拷贝的有效载荷部分构造应用层消息。AONS刀片604确定应用层消息所属的消息分类(如果存在的话)。部分基于AONS刀片604接收的拷贝的分组头部集合的特性,AONS刀片604确定每个消息分类的共享头部特性,如上面参考图2所述。
AONS刀片604对应用层消息执行操作,并且取决于操作的结果可将分组返回到602。监督刀片602在将分组拷贝发送到AONS刀片604之前或之后可将分组发送到其他刀片606A-N。监督刀片602对分组执行路由选择功能,并继续将分组转发向分组的目的地。
当路由器600从采样状态切换到处理状态时,AONS刀片604向监督刀片602传输为每个消息分类确定的共享头部特性。在路由器600处于处理状态中时,监督刀片602接收数据分组,并确定这些数据分组的分组头部集合是否具备任何消息分类的共享头部特性中的所有特性。在路由器600处于处理状态中时,监督刀片602仅向AONS刀片604发送具有具备至少一个消息分类的共享头部特性中的所有特性的分组头部集合的那些数据分组。监督刀片602在将其他数据分组发送到其目的地之前,可将其他数据分组发送到其他刀片606A-N中的一个或多个,并接收从其他刀片606A-N中的一个或多个返回的其他数据分组。
从而,当路由器600处于处理状态时,AONS刀片604只接收和处理数据分组中具有具备至少一个消息分类的共享头部特性中的所有特性的分组头部集合的那些数据分组。结果,AONS刀片604可接收和处理更少的数据分组,从而节约了路由器600的处理资源。
例如,监督刀片602可确定分组流610A中的数据分组中的分组头部集合不具备任何消息分类的共享头部特性的所有特性。因此,监督刀片602对分组流610A中的数据分组执行路由选择功能,并且将这些数据分组继续转发向它们的目的地。
又例如,监督刀片602可确定数据流610B中的数据分组中的分组头部集合具备至少一个消息分类的共享头部特性的所有特性。因此,监督刀片602向AONS刀片604发送分组流610B中的数据分组。在接收到从AONS刀片604返回的数据分组之后,监督刀片602对分组流610B中的数据分组执行路由选择功能,并将这些数据分组继续转发向它们的目的地(目的地可能已由于AONS刀片604所执行的动作而有所改变)。
AONS刀片604和其他刀片606A-N接收来自监督刀片602的分组,对这些分组执行操作,并将这些分组返回给监督刀片602。监督刀片602在将分组发送出路由器600之前,可将分组发送到多个刀片并从多个刀片接收分组。例如,监督刀片602可将特定的分组群组发送到其他刀片606A。其他刀片606A可对分组执行防火墙功能,并将分组发送回监督刀片602。监督刀片602可从其他刀片606A接收分组,并将分组发送到AONS刀片604。AONS刀片604可对分组执行一个或多个基于消息有效载荷的操作,并将分组发送回监督刀片602。
根据一个实施例,在比如路由器600之类的AONS路由器处发生以下事件。首先,接收包含从客户端到服务器的消息的分组。接下来,对分组执行基于访问控制列表的过滤,并将一些分组发送到AONS刀片或模块。接下来,对分组执行TCP终止。接下来,如果必要则对分组执行安全套接字(SSL)终止。接下来,对分组执行基于统一资源定位符(URL)的过滤。接下来,对分组执行基于消息头部和基于消息内容的过滤。接下来,将分组中包含的消息分类成AONS消息类型。接下来,选择与AONS消息类型相对应的策略流。接下来,执行选定的策略流。然后按照选定策略流所指定的,对分组进行转发、重定向、丢弃、拷贝或扇出。
3.2在处于处理状态时处理应用层消息
图3A-B示出了图示在处于处理状态时在网络元件处处理应用层消息的方法的一个实施例的流程图300。例如,网络元件102、104、106和108中的一个或多个可在处于处理状态时执行这种方法。更具体而言,AONS刀片604可执行这种方法的一个或多个步骤。其他实施例可省略流程图300中示出的一个或多个操作。其他实施例可包含除流程图300中所示操作之外的其他操作。其他实施例可以不同于流程图300中所示顺序的顺序执行流程图300中示出的操作。
首先参考图3A,在块302中,在网络元件处接收用户指定的输入。用户指定的输入指示以下内容:将要与特定消息分类相关联的一个或多个标准,以及将要与该特定消息分类相关联的一个或多个动作。用户指定的输入可指示该一个或多个动作将要被执行的顺序。用户指定的输入可指示动作的输出将要被提供作为其他动作的输入。例如,网络元件104,更具体而言AONS刀片604,可从网络管理员接收这种用户指定的输入。
在块304中,在网络元件处在特定的消息分类和一个或多个标准之间建立关联。例如,AONS刀片604可在特定的消息分类和一个或多个标准之间建立关联。例如,标准可指示为使消息属于相关联的消息分类,消息需要包含的特定文本串。又例如,标准可指示为使消息属于相关联的消息分类,在XML格式的消息的层次结构中需要存在的特定路径。又例如,标准可指示为使消息属于相关联的消息分类,消息需要被寻址自或寻址到的一个或多个源IP地址和/或目的地IP地址。
在块306中,在网络元件在特定消息分类和一个或多个动作之间建立关联。与特定消息分类相关联的一个或多个动作包括与该特定消息分类相关联的“策略”。策略可包括根据用户指定的输入中指定的特定顺序而排序的一个或多个动作的“流程”,和/或未排序的一个或多个其他动作。例如,AONS刀片604可在特定消息分类和一个或多个动作之间建立关联。总体来说,块302-306的操作包括“配设(provision)”网络元件。
在块308中,网络元件截取以某个不是该网络元件的设备为目的地的一个或多个数据分组。这些数据分组例如可以是包含IP和TCP头部的数据分组。数据分组的IP头部中指示的IP地址不同于网络元件的IP地址;从而,数据分组的目的地是某个不是该网络元件的设备。例如,网络元件104,更具体而言监督刀片602,可截取客户端应用110最初发送的数据分组。这些数据分组的目的地例如可能是服务器应用112。
此时,如上面参考图2所述,一些数据分组可被“滤出”。例如,监督刀片602可基于以下两者执行处理:(a)数据分组的分组头部集合的特性,以及(b)在路由器600处于采样状态时监督刀片602从AONS刀片604接收的共享头部特性。那些未被“滤出”的数据分组继续经历下面的块的操作。
在块310中,基于数据分组的头部中指示的一个或多个信息项,确定用于发送数据分组的有效载荷部分中包含的消息(以下称之为“消息”)的应用层协议。信息项例如可包括IP头部中的源IP地址、IP头部中的目的地IP地址、TCP头部中的TCP源端口以及TCP头部中的TCP目的地端口。例如,网络元件104,更具体而言AONS刀片604,可存储将FTP(一种应用层协议)映射到IP地址和/或TCP端口的第一组合,并将HTTP(另一种应用层协议)映射到IP地址和/或TCP端口的第二组合的信息。基于该映射信息和截取的数据分组所指示的IP地址和/或TCP端口,AONS刀片604可确定哪种应用层协议(FTP、HTTP、简单邮件传输协议(SMTP)等等)曾被用于发送消息。
在块312中,确定与用于发送消息的应用层协议相关联的消息终止技术。例如,AONS刀片604可存储将FTP映射到第一过程,将HTTP映射到第二过程并将SMTP映射到第三过程的信息。第一过程可采用可用于从数据分组中提取利用FTP发送的消息的第一消息终止技术。第二过程可采用可用于从数据分组中提取利用HTTP发送的消息的第二消息终止技术。第三过程可采用可用于从数据分组中提取利用SMTP发送的消息的第三消息终止技术。基于该映射信息和用于发送消息的应用层协议,AONS刀片604可确定应当调用哪个过程来从数据分组提取消息。
在块314中,基于与用于发送消息的应用层协议相关联的终止技术确定消息的内容。例如,AONS刀片604可提供数据分组作为块3 12中确定的映射到应用层协议的过程的输入。该过程可使用适当的消息终止技术来从数据分组提取消息的内容。该过程可返回消息作为AONS刀片604的输出。从而,在一个实施例中,从数据分组提取出的消息独立于用于发送消息的应用层协议。
在块316中,确定与消息满足的标准相关联的消息分类。例如,AONS刀片604可存储将不同标准映射到不同消息分类的映射信息。映射信息除了可能指示许多不同关联之外,还指示在块304中建立的关联。AONS刀片604可确定消息的内容是否满足与任何已知消息分类相关联的标准。例如,消息分类可与这样一个标准相关联,该标准指示消息若要属于消息分类则必须是在某个层次结构内包含指定路径的XML文档。在一个实施例中,如果消息的内容满足与特定消息分类相关联的标准,则确定该消息属于该特定消息分类。
虽然在一个实施例中消息的内容被用于确定消息的分类,但是在替换实施例中,除消息中包含的信息之外的信息被用于确定消息的分类。例如,在一个实施例中,消息的内容和包含消息的数据分组中指示的一个或多个IP地址和/或TCP端口的组合被用于确定消息的分类。又例如,在一个实施例中,包含消息的数据分组中指示的一个或多个IP地址和/或TCP端口被用于确定消息的分类,而不论消息的内容如何。
在块318中,执行与块316中确定的消息分类相关联的一个或多个动作。如果按照用户指定的输入所指示的,两个或更多个动作与一个指定的执行顺序相关联,则这些动作按该指定顺序被执行。如果按照用户指定的输入所指示的,任何动作的输出应当被提供作为任何动作的输入,则指定动作的输出被提供作为另一指定动作的输入。
可对消息执行多种不同的动作。例如,一个动作可指示消息将要被丢弃。在这种情况下,防止消息被从网络元件转发出来去往消息的目的地。又例如,一个动作可指示消息在被转发出网络元件之前将要被用指定的压缩技术压缩。
又例如,一个动作可指示消息的内容将以指定的方式被更改。例如,一个动作可指示指定的文本将要被插入到消息中的指定位置。这种位置例如可由消息的XML层次结构中的路径指定,或者可由出现在消息中的指定文本串指定。又例如,一个动作可指示指定的文本将要被从消息中删除。又例如,一个动作可指示指定的文本将被用来替换消息中的另一指定文本。插入到消息中的文本可以是从网络元件外部的数据库动态(“实时”)获得的。
又例如,一个动作可指示消息将要被用不同于消息的发源地用来发送消息的应用层协议的指定应用层协议来转发。例如,客户端应用110可能使用了比如HTTP之类的第一应用层协议来发送消息。从而,当被网络元件104截取时消息可能包含了HTTP头部。但是,根据指定的动作,在网络元件104将消息转发向消息的目的地之前,网络元件104,更具体而言AONS刀片604,可修改消息以便消息将被利用不同于HTTP的应用层协议(例如FTP、SMTP等等)来传送。
又例如,一个动作可指示消息的目的地将被更改,以便消息将被转发向与消息的源最初指定的设备不同的设备。例如,根据指定的动作,网络元件104,更具体而言AONS刀片604可将消息封装在一个或多个新的IP数据分组中,这一个或多个新的IP数据分组指示不同于最初截取的IP数据分组指示的目的地IP地址的新的目的地IP地址。网络元件104随后可将新的IP数据分组转发到新的目的地。这样,可实现基于消息内容的路由选择。
又例如,一个动作可指示指定的事件将被写入网络元件外部的指定日志。例如,根据指定的动作,网络元件104,更具体而言AONS刀片604,可将消息的至少一部分以及从其接收到消息的IP地址写到日志文件。
又例如,一个动作可指示消息在被转发到目的地之前将被利用指定的密钥加密。例如,根据指定的动作,网络元件104,更具体而言AONS刀片604可利用指定的密钥对消息的至少一部分进行加密,然后将包含经加密的消息的数据分组转发向消息的目的地。
又例如,一个动作可指示在网络元件处缓存的响应将被返回到消息所源自的设备,如果这种响应在网络元件处被缓存的话。例如,网络元件104,更具体而言AONS刀片604可确定对消息的响应是否在网络元件104处被缓存;这种响应可能在先前对同一消息的响应经过网络元件104时就已在网络元件104处被缓存。如果网络元件104确定这种响应被缓存,则网络元件104可将响应返回到消息的发源地。因此,网络元件104不需要将消息转发到消息的目的地,并且消息的目的地不需要发出对消息的另一响应。
如果在动作执行期间消息以某种方式被修改(例如内容、格式或协议修改),并且如果经修改的消息应当被转发出网络元件,则网络元件将经修改的消息封装到新的数据分组中,并且将新的数据分组转发向经修改的消息的目的地-目的地可能也已经被修改。
消息可能不属于任何已知的消息分类。在这种情况下,根据一个实施例,网络元件不对消息执行任何用户指定的动作。取而代之,网络元件简单地将数据分组转发到去往数据分组的指示的目的地的路径上的下一跳。
作为流程图300中图示的方法的结果,诸如客户端应用110、服务器应用112和服务器应用114之类的应用可以就像没有网络元件充当中介并且每个应用利用相同的消息格式和应用层协议通信那样与彼此通信。
3.3动作流程
图4示出可能与特定的消息分类相关联的样本流。流程图400按顺序包括动作402-414;其他流程可包括一个或多个其他动作。动作402指示消息的内容应当以指定方式被修改。动作404指示指定的事件应当被写到指定的日志。动作406指示消息的目的地应当被改为指定的目的地。动作408指示消息的格式应当被转化为指定的消息格式。动作410指示用于发送消息的应用层协议应当被改为指定的应用层协议。动作412指示消息应当被用特定的密钥加密。动作414指示消息应当被转发向消息的目的地。
在其他实施例中,动作402-414中的任何一个可独立地或与动作402-414中的任何其他动作相结合地执行。
3.4 AONS示例
3.4.1 AONS综述
面向应用的网络系统(AONS)是用于构建将智能嵌入网络中以更好地符合应用部署的需求的一类产品的技术基础。AONS通过提供关于信息正在网络内流动的更高程度认知并且帮助客户进行以下操作来完善现有的联网技术:通过以目的地所预期的格式将信息路由到适当的目的地来集成不同的应用;施行用于信息访问和交换的策略;就网络带宽和处理开销而言优化应用流量的流动;提供更高的信息流可管理性,包括出于业务和底层结构目的监视和度量信息流;以及通过透明地备份或重新路由关键业务数据来提供更强的业务连续性。
AONS通过对信息流的内容和上下文有更多的理解来提供这种增强的支持。这样,AONS主要在消息级别而不是分组级别上工作。通常,对信息的AONS处理终止TCP连接以检查整条消息,包括“有效载荷”以及所有头部。AONS还理解并辅助流行的应用级协议,例如HTTP、FTP、SMTP以及事实上的标准中间件协议。
AONS与运行在通用计算系统上的中间件产品的不同之处在于AONS的行为在其简单性、总拥有成本以及性能方面更类似网络装置。此外,AONS与网络层支持集成,以提供更整体的信息流动和管理方法,从而将应用层上的所需特征映射到由路由器、交换机、防火墙和其他联网系统实现的低级别的联网特征。
虽然在来自Cisco Systems,Inc.的现有产品线中提供了类似AONS的功能的一些元素,但是这种产品通常基于较为有限的信息认知(例如IP/端口地址或HTTP头部)来提供负载平衡和故障恢复解决方案。AONS为更宽的功能支持、更宽的应用类别和对应用数据的更高程度的控制和管理提供了框架。
3.4.2 AONS术语
“应用”是运行在服务器或桌面系统上的执行业务功能的软件实体。应用可以是打包的应用、运行在应用服务器上的软件、运行在大型机上的遗留应用或者自行开发以满足业务需求的定制或专属软件或者执行某个操作的脚本。这些应用可与同一部门中的其他应用通信(部门通信)、在单个企业内跨部门通信(企业内通信)、跨企业与其合作者通信(企业间或B2B通信)或者企业与其客户通信(消费者或B2C通信)。AONS为上述场景中的任何一种提供了增值服务。
“应用消息”是由应用生成以与另一应用通信的消息。应用消息可指定在处理该消息时应当执行的不同的业务级步骤,并且可以采取下面的部分中描述的任何消息格式。在本文档的剩余部分中,除非另外明文指定,否则术语“消息”也指应用消息。
“AONS节点”是AONS系统(或网络)内的主要AONS组件。如后所述,AONS节点可采取客户端代理、服务器代理或路由应用消息的中间设备的形式。
每个应用消息在被第一AONS节点接收时被分配以AONS消息ID,并且被认为是“AONS消息”,直到该消息被递送到目的地AONS节点。AONS消息的概念存在于AONS云内。单个应用消息可映射到多于一个AONS消息。例如,如果应用消息要求多于一个业务功能进行的处理,则可能是这种情况。例如,由请求方应用提交并需要被“CreditCheck”应用和“LoanProcessing”应用两者处理的“LoanRequest”消息将要求多于一个业务功能进行的处理。在该示例中,从AONS的角度来看,存在两条AONS消息:从请求方应用到CreditCheck应用的“LoanRequest”到“CreditCheck”AONS消息;以及从CreditCheck应用到LoanProcessing应用的“LoanRequest”到“LoanProcessing”AONS消息。
在一个实施例中,AONS消息被封装在AONP(AON协议)头部中,并且被转化为“规范”格式。可靠性、日志记录和安全性服务是从AONS消息角度提供的。
从AONS的角度来说,应用通常用来与彼此通信的协议或方法集合被称为“应用访问协议”(或方法)。应用可利用任何支持的应用访问方法与AONS网络通信(通常是端点代理:客户端代理和服务器代理)。应用访问协议的一些示例包括:IBM MQ系列、Java消息服务(JMS)、TIBCO、基于超文本传输协议(HTTP)/HTTPS的简单对象访问协议(SOAP)以及简单邮件传输协议(SMTP)。关于各种访问方法的细节在本文档后面的部分中说明。
存在许多种被应用使用的“消息格式”。这些消息格式可能从定制或专属格式到特定于工业的格式到标准化格式不等。可扩展标记语言(XML)作为供应用彼此通信的通用语言或消息格式正流行起来。AONS支持许多种这些格式。
此外,AONS提供基于应用需求的从一种格式到另一种的转化服务。典型的部署可包括接收到应用消息的第一AONS节点(客户端代理)将消息转化成“规范”格式,该格式作为AONS消息被传送通过AONS网络。服务器代理在递送消息之前可将消息从“规范”格式转化成接收方应用所理解的格式。为了理解一些非工业标准格式,可以使用消息字典。
在多个应用访问方法或协议之间执行网关功能的节点被称为“协议网关”。其示例是通过文件传输协议(FTP)接收应用消息并以HTTP发布的方式将同一消息发送到另一应用的节点。在AONS中,通常预期客户端和服务器代理执行协议网关功能。
如果应用生成电子数据交换(EDI)格式的消息,并且如果接收方应用预期消息是XML格式的,则消息格式需要被转化,但消息的内容在转化时需要保持完好。在AONS中,端点代理通常执行这种“消息格式转化”功能。
在一些情况下,即使发送方和接收方应用使用相同的消息格式,也需要为接收方应用转化内容。例如,如果驻留在美国的应用与驻留在英国的应用通信,则即使应用使用相同的数据表示(或消息格式),两个应用之间的消息中的日期格式也需要被转化(从mm/dd/yyyy到dd/mm/yyyy)。该转化被称为“内容转化”。
3.4.3 AONS功能概述
如前所定义的,AONS可被定义为将业务和应用需求与更灵活、响应更灵敏的网络服务高效并有效地集成的基于网络的智能中间系统。
具体而言,可通过以下特征来理解AONS:
比起传统的网络元件产品来(第2-4层),AONS工作在更高的层(第5-6层)。AONS使用消息级检查作为对分组级检查的完善-通过理解应用消息,AONS向“消息交换路由”上的诸如交换机、防火墙、内容缓存系统和负载平衡器之类的多个网络元件产品添加了价值。就安全性、可靠性、流量优化(压缩、缓存)、可见性(业务事件和网络事件)和变换(例如从XML到EDI)而言,AONS提供了更高的灵活性和网络响应性粒度。
AONS是一种综合的技术平台,而不只是一种点解决方案。AONS可通过位于分布式企业内和企业间环境中的应用、中间件和数据库之间的分布式智能中间系统来实现(路由消息、执行变换等等)。AONS为最终用户对业务流和策略的配置以及合作者驱动的AONS服务可扩展性提供了灵活的框架。
AONS尤其适合于基于网络的部署。AONS是基于网络的而不是基于通用服务器的。AONS是混合基于软件和基于硬件的(即基于专用集成电路(ASIC)/现场可编程门阵列(FPGA)的加速)。AONS使用策略所确定的对流量的带外或线上处理。AONS被部署在独立产品(网络装置)以及嵌入式产品(用于多个交换、路由和存储平台的服务刀片)中。
3.4.4 AONS系统概述
本部分概述示例性AONS系统的系统概况。图7是图示根据本发明一个实施例的示例性AONS网络702中包括的各种组件的图700。每个节点所执行的角色在后面的部分中详细提到。
在AONS网络702内,关键构建块包括AONS端点代理(AEP)704-710和AONS路由器(AR)。应用意图的可见性可以开始于置于逻辑AONS“云”边缘处的AEP 704内。当客户端应用714A-N中的特定客户端应用尝试通过网络发送消息到服务器应用716A-N和718A-N中的特定服务器应用目的地时,该特定客户端应用将首先与AEP 704交互。
AEP 704充当透明或显式的消息传递网关,其将网络分组聚集成应用消息,并通过以下方式推断消息级意图:检查给定消息的头部和有效载荷,将消息与适当的上下文关联起来,可选地应用适当的策略(例如消息加密、变换等等,然后经由网络交换机将消息路由向消息的应用目的地。
AONS路由器(AR)712可截取去往消息的目的地端点途中的消息。基于消息头部内容,AR 712可确定新的路由将更好地满足给定应用系统的需求。AR 712可考虑到当前的网络状况基于企业级策略作出此确定。当消息接近其目的地时,消息可遇到AEP 706,其可在消息到达之前执行最后一组操作(例如消息解密、递送确认)。在一个实施例中,每条消息只被解析一次:当消息最初进入AONS云时。负责使消息为下层网络内的最优处理作好准备的是消息穿过的第一AEP。
AEP 704-708可进一步被分类成AEP客户端代理和AEP服务器代理,以明确地强调AEP代表特定的端点应用所执行的角色和操作。
典型的消息流程包括特定的客户端应用714A通过AONS所支持的各种访问协议之一向AEP客户端代理(CP)704提交消息。在接收到此消息时,AEP CP 704向消息分配AONS消息id,利用AONP头部封装消息,并且执行与AONS网络有关的任何必要操作(例如安全性和可靠性服务)。另外,如果必要的话,消息被AEP CP 704转换成“规范”格式。消息沿着去往目的地应用718A的路由经由TCP连接被传送到AR 710。路径上的AONS路由器执行对消息来说必需的底层结构服务,并且可基于客户所配置的策略改变路由选择。消息在目的地AEP服务器代理(SP)706处被接收。AEP SP 706执行必要的安全性和可靠性功能,并且将消息转化成接收方应用所理解的格式,如果必要的话。AEP SP 706随后利用应用718A和AONS支持的访问协议中的任何一种将消息发送到接收方应用718A。通过AONS网络702的详细消息流程在后面的部分描述。
3.4.5 AONS系统元件
本部分概述从AONS角度使用的不同概念。
“AEP客户端代理”是执行对消息的发送方(客户端)上的应用来说必需的服务的AONS节点。在本文档的剩余部分中,端点代理也指客户端代理或服务器代理。客户端代理在处理消息时的典型职责是:消息预分类和早期拒绝、协议管理、消息身份管理、AONP头部中的消息封装、针对可靠递送的端点发起、安全性端点服务发起(加密、数字签名、认证)、流程选择和执行/底层结构服务(日志记录、压缩、内容变换等等)、路由选择-下一跳AONS节点或目的地、AONS节点和路由发现/通告角色和路由以及针对可靠递送机制的端点发起(有保障递送路由器)。
不需要对每条消息执行所有上述功能。对消息执行的功能由为AONS节点配置的策略来控制。
“AEP服务器代理”是执行对消息的接收方(服务器)上的应用来说必需的服务的AONS节点。在本文档的剩余部分中,服务器代理也可被称为端点代理。服务器代理在处理消息时的典型职责是:协议管理、针对可靠递送的端点终止、安全性端点服务终止(解密、数字签名的验证等等)、流程选择和执行/底层结构服务(日志记录、压缩、内容转化等等)、AONP头部中的消息解封、去往发送方AONS节点的确认、应用路由选择/到目的地的请求消息递送、响应消息相关以及到入口AONS节点的路由选择。
注意不需要对每条消息执行所有上述功能。对消息执行的功能由为AONS节点配置的策略和消息头部所指示的内容来控制。
“AONS路由器”是在AONS网络内提供消息转发功能以及额外的底层结构服务的AONS节点。AONS路由器与客户端代理、服务器代理和其他AONS路由器通信。AONS路由器可在不解析消息的情况下提供服务;AONS路由器可依赖于AONP消息头部和在ANOS网络中配置的策略,而不是解析消息。AONS路由器提供以下功能:就所需TCP连接的数目而言AONS网络中的可缩放性;基于消息目的地、AONS云中配置的策略、消息中指定的路由和/或消息的内容的消息路由选择;预期目的地处的负载-如果需要则重新路由选择;目的地的可用性-如果需要则重新路由选择;发送成本(在多个服务提供商之间进行选择);诸如发送到日志记录设备、出于备份目的发送到存储区域网络(SAN)以及与用于可缓存消息(比如目录)的缓存引擎接口之类的底层结构服务。
AONS路由器不需要理解任何应用访问协议,并且在一个实施例中只处理利用AONP头部封装的消息。
面向应用的联网协议(AONP)是用于在AONS网络中的节点之间通信的协议。在一个实施例中,每个AONS消息携带一个AONP头部,该AONP头部传达消息的目的地以及用于在后续节点中处理消息的额外信息。AONP还解决策略交换(静态或动态的)、节点间的故障恢复、AONS节点间的负载平衡以及路由选择信息的交换。AONP还使得能够在多个网络元件(比如防火墙、缓存引擎和路由器/交换机)中进行面向应用的消息处理。AONP既支持固定头部也支持可变头部(利用类型-长度-值(TLV)字段形成),以支持中间节点中的高效处理以及额外服务的灵活性。
除非别处明文指定,否则“路由器”或“交换机”在这里是指目前可购得的典型的第3层或第2层交换机或路由器。
3.4.6 AONS示例性特征
在一个实施例中,下层的“子系统服务的AONS基础平台”(AOS)提供了多种通用服务,包括对安全性、压缩、缓存、可靠性、策略管理和其他服务的支持。在该平台上,AONS于是提供了多种分立的功能组件,这些功能组件可用线连接起来,以提供对传入的数据流量的整体处理。这些“bladeletsTM”的目标是在应用或信息技术(IT)管理员所需的特定策略或动作的上下文中实现个体服务。一系列访问方法适配器确保了对多种入口和出口格式的支持。最后,一组面向用户的工具使得管理员能够适当地查看、配置和设置AONS解决方案的策略。这四种功能组合起来提供多种最终客户能力,包括增强的安全性、底层结构优化、业务连接性、应用集成和操作可见性。
由AONS解决方案实现的增强的可见性和增强的响应灵敏性提供了多个智能的、面向应用的网络服务。这些智能服务可概括成四个主要类别:
增强的安全性和可靠性:实现可靠的消息递送并且除了现有的网络级安全性外还提供消息级安全性。
底层结构优化:通过利用消息级缓存和压缩以及通过集成应用和网络服务质量(QoS)来更高效地使用网络资源。
业务和底层结构活动监视和管理:通过读取包含在应用层协议中的信息,AONS可记录、核查和存储应用级业务事件,并且将这些事件与常见的策略驱动的管理环境中的网络、服务器和存储底层结构事件相组合
基于内容的路由选择和变换:对协议、内容、数据和消息格式的基于消息的路由选择和变换(例如XML变换)。属于这些主要类别中的每一类别的个体特征在下文更详细描述。
3.4.6.1增强的安全性和可靠性
认证:AONS可基于给定消息内包含的各种信息段(用户名/口令、数字证书、安全性断言标记语言(SAML)断言等等)验证传入消息的发送者的身份,并且基于这些证件确定消息是否应当被进一步处理。
授权:一旦经由消息检查获得了主要证件,AONS就可确定消息的发起者对于其尝试调用的服务应当具有什么级别的访问权限。AONS还可基于这种推导出的权限进行路由选择判决,并在适当的情况下一旦消息处于AONS网络内就阻止或掩蔽消息内的数据元素。
加密/解密:基于策略,AONS可执行消息元素(整条消息、消息主体或个体元素,例如信用卡号)的加密,以在消息传播通过AONS网络时维持端到端机密性。相反,AONS可在这些元素到达给定端点前对其执行解密。
数字签名:为了确保消息完整性并允许对消息事务的认可,AONS可在任何给定AEP处对整条消息或个体消息元素加上数字签名。关于被签名的对象的判决将通过应用到从每条消息的内容和上下文推导出的信息的策略来确定。
可靠性:AONS可通过在不同的专属机制之间充当中介来完善现有的有保障消息传递系统。它还可为当前缺乏可靠递送的基于HTTP的应用(包括web服务)提供可靠性。作为额外的特征,AONS可生成成功消息递送的确认以及在递送无法被确认时自动生成异常响应。
3.4.6.2底层结构优化
压缩:AEP在通过网络发送消息数据之前可压缩消息数据以便节约带宽,并且相反地在端点递送之前对其进行解压。
缓存:AONS可基于为一类请求定义的规则或基于响应中设置的指示符来缓存先前的消息查询的结果。缓存可对整条消息或对消息的某些元素执行,以便减少应用响应时间并节约网络带宽利用。消息元素缓存使得能够对后续的消息请求进行增量处理。
TCP连接集储(pooling):通过充当消息客户端和服务器之间的中介,AONS可整合应用之间所需的所有持续连接。AONS因而降低了否则就与端点网之间的连接的正在进行的发起和拆除相关联的客户端和服务器处理负载。
分批:AONS中介可对以多个目的地为目的地的事务消息进行分批,以降低发送方系统上的盘I/O开销。类似地,来自多个源的事务消息可被分批,以降低接收方系统上的盘I/O开销。
硬件加速:通过利用专用硬件在AONS网络设备中高效地执行诸如加密和可扩展样式表语言变换(XSLT)变换之类的计算密集型功能,AONS可卸下端点服务器的计算资源的负载,从而提供可能更低成本的处理能力。
服务质量:AONS可基于显式的消息优先级区分(例如被标记为“高优先级”的消息)或者经由在检测到特定消息内容时确定何时消息需要高网络服务质量的策略,来将应用级QoS与网络级QoS特征相集成。
策略施行:优化整体AONS解决方案的核心是确保业务级策略被底层结构表达、实现和施行的能力。AONS策略管理器确保一旦消息被检查,就在适当时对消息执行适当的动作(加密、压缩、路由选择等等)。
3.4.6.3活动监视和管理
核查/日志记录/度量:AONS可有选择地过滤消息并将其发送到节点或控制台以便进行聚集和后续分析。工具使得能够对消息流量进行查看和分析。AONS还可对与业务和底层结构相关的重大实时事件生成自动响应。通过智能地收集统计信息并发送它们以便被记录,AONS可产生用于核查或计费目的的度量数据。
管理:AONS可组合消息级和网络底层结构级事件两者以获得对整体系统健康情况的更深理解。AONS管理接口本身可作为一种web服务供希望以程序方式访问它的人使用。
测试和验证:AONS的截取消息流量的能力可被用于在允许消息到达目的地应用之前验证消息。除了进行保护以使之免受可能的应用或服务器故障的影响之外,该能力还可被调节,以通过在产品部署之前检查来自客户端和服务器的实际消息流程来测试新的web服务和其他功能。AONS还提供了“调式模式”,该调式模式可在疑似故障之后被自动打开或者在通知之后被手工打开,以帮助设备的整体管理。
工作负载平衡和故障恢复:AONS提供了一种由策略和内容驱动的工作负载平衡和故障恢复方法。例如,给定AONS节点的在异质系统之间充当中介的能力,AONS节点可在提供对消息内容所请求的共同信息的访问的不同系统之间进行平衡。AONS还可解决确保消息级别的故障恢复所必需的消息亲和力问题,而不是像大多数现有解决方案那样只解决会话级别的。平衡还可考虑获得消息回复的响应时间,以便如果优选的目标临时响应较慢则路由到替换目的地。
业务连续性:通过提供复制到远程目的地的传入消息的能力,AONS使得客户能够迅速从系统停机中恢复。AONS还可以检测发生故障的消息递送并自动重路由到替换端点。AONS AEP和AR本身具有内置的组件级冗余性和故障恢复,并且可被群集起来以确保高可用性。
3.4.6.4基于内容的路由选择和变换
基于内容的路由选择:基于其检查和理解消息的内容和上下文的能力,AONS提供了通过对照预先建立的策略配置匹配内容元素来将消息路由到适当的目的地的能力。该能力允许了AONS为由不同应用处理的消息提供共同的接口(服务虚拟化),其中AONS检查内容中的消息类型或字段(部件号、账户类型、雇员位置、客户邮政编码等等),以将消息路由到适当的应用。该能力还允许了AONS发送消息到多个目的地(基于对消息类型或信息主题的静态定义的或动态的预订),通过AONS路由器最优地扇出。该能力还允许了AONS重定向先前发送到某个应用的所有消息,以便它可被新的应用所处理。该能力还允许了AONS针对被认为在消息接收之前需要的预处理步骤路由消息(例如为所有旅行请求引入管理预批准步骤)。这种能力还允许了AONS将超出某个标准(例如订单价值)的消息的拷贝路由到核查系统,以及将消息转发到预期的目的地。该能力还允许了AONS出于工作负载或故障恢复原因将消息路由到特定服务器。该能力还允许了AONS基于先前的路由选择判决将消息路由到特定的服务器(例如,基于哪个服务器处理了原始订单来路由查询请求)。该能力还允许了AONS基于消息的源进行路由。该消息还允许了AONS通过由源或先前的中介定义的步骤序列来路由消息。
消息协议网关:AONS可充当使用不同传输协议的应用之间的网关。AONS支持开放标准协议(例如HTTP、FTP、SMTP),以及流行的或事实上标准的专属协议,例如IBM Websphere MQ。
消息变换:AONS可变换消息的内容以使它们适合于特定的接收方应用。这既可以针对XML消息实现,也可针对非XML消息实现,对于后者是经由消息字典定义或充分定义的工业标准格式的帮助来实现的。
3.4.7 AONS功能模块
图8是示出示例性的AONS节点内的功能模块的框图。AONS节点800包括AOS配置和管理模块802、流程/规则804、AOS共同服务806、AOS消息执行控制器808、AOS协议访问方法810以及AOS平台特定“粘合物”812。AONS节点800与互联网操作系统(IOS)814和Linux操作系统816接口。流程/规则804包括bladeletsTM 818、scriptletsTM802和scriptletTM容器822。
在一个实施例中,AOS共同服务806包括:安全性服务、标准压缩服务、增量压缩服务、缓存服务、消息日志记录服务、策略管理服务、可靠消息传递服务、公布/预订服务、活动监视服务、消息分发服务、XML解析服务、XSLT变换服务和QoS管理服务。
在一个实施例中,AOS协议访问方法810包括:TCP/SSL、HTTP/HTTPS、SOAP/HTTP、SMTP、FTP、JMS/MQ和JMS/RV,以及Java数据库连通性(JDBC)。
在一个实施例中,AOS消息执行控制器808包括:执行控制器、流程子系统和bladeletTM子系统。
在一个实施例中,AOS bladeletsTM 818和scriptletsTM 820包括:消息输入(读消息)、消息输出(发送消息)、日志记录/核查、判决、外部数据访问、XML解析、XML变换、缓存、脚本容器、公布、预订、消息验证(方案、格式等等)、过滤/掩蔽、签名、认证、授权、加密、解密、活动监视寻源(sourcing)、活动监视标记、活动监视处理、活动监视通知、消息丢弃、防火墙解锁、消息截取和消息停止截取。
在一个实施例中,AOS配置和管理模块802包括:配置、监视、拓扑管理、能力交换、故障恢复冗余性、可靠性/可用性/可服务性(RAS)服务(跟踪、调试等等)、归档、安装、更新、许可、样本scriptletsTM、样本流、文档编制、在线帮助和语言本地化。
在一个实施例中,支持的平台包括:Cisco Catalyst 6503、CiscoCatalyst 6505、Cisco Catalyst 6509和Cisco Catalyst 6513。在一个实施例中,支持的监督模块包括:Sup2和Sup720。在一个实施例中,与平台有关的特定功能区域包括:优化的TCP、SSL、公钥底层结构(PKI)、加密/解密、到Cat6K监督者的接口、故障恢复/冗余性、镜像管理和QoS功能。
3.4.8 AONS工作模式
AONS可被配置为取决于应用集成需求和部署场景在多个模式中运行。根据一个实施例,主要工作模式包括隐式模式、显式模式和代理模式。在隐式模式中,AONS节点透明地截取相关流量,而不对应用作出改变。在显式模式中,应用显式地将流量寻址到中间AONS节点。在代理模式中,应用被配置为与AONS节点联合工作,但是应用不显式地将流量寻址到AONS节点。
在隐式模式中,应用不知晓AONS存在。消息被寻址到接收方应用。经由应用“代理”或中间件系统的配置以将消息路由到AONS和/或经由网络(分组截取)的配置而将消息重定向到AONS。例如,基于域名服务器(DNS)的重定向可被用于路由消息。又例如,可使用交换机或路由器上的基于5元组的访问控制列表(ACL)。基于网络的应用识别和内容交换模块可被配置用于URL/URI重定向。基于消息的检查可被用于确定消息类型和分类。在隐式模式中,应用使用AONS作为中介(隐式地),利用应用原本的协议与彼此通信。
流量重定向、消息分类和“早期拒绝”(在完成AONS层内的处理之前将流量发送出AONS层)可经由多种机制来实现,例如图9中所示的那些。图9是示出可以对消息流量执行以便仅产生将在AONS层被处理的选定的一组流量的多层过滤的图。在AONS层不被处理的流量可被视为任何其他流量。
在最低层即层902处,所有流量都通过。在次最高层即层904处,可基于5元组对流量进行过滤。监督刀片或互联网操作系统(IOS)可执行这种过滤。通过层904处的过滤的流量传递到层906。在层906处,可基于类似基于网络的应用识别的过滤和/或消息分类和拒绝来进一步过滤流量。通过层906处的过滤的流量传递到层908。在层908处,可基于协议头部进一步过滤流量。例如,可基于流量中的URL/URI来过滤流量。通过层908处的过滤的流量传递到层910。在层910处,可基于包括头部和内容的应用层消息处理流量。例如,消息内的XPath路径可在层910处被用于处理流量。AONS刀片可执行层910处的处理。从而,所有网络流量的选定子集可被提供给AONS刀片。
在显式模式中,应用知晓AONS存在。消息被显式地寻址到AONS节点。应用可利用AONP与AONS通信。AONS可执行服务虚拟化和目的地选择。
在代理模式中,应用显式地不知晓AONS存在。消息被寻址到其最终目的地(即应用)。但是,客户端应用被配置为经由代理模式引导流量。
3.4.9 AONS消息路由选择
可从两个角度来查看AONS中的消息管理的组件:节点视图和云视图。
图10是图示根据云视图的AONS云1010内的消息的路径的图。客户端应用1004发送消息到AONS客户端代理(CP)1006。如果AONS CP1006不存在,则客户端应用1004可发送消息到AEP服务器代理(SP)1008。消息在AONS CP 1006处被处理。如果消息正要进入AONS云1010,则AONS CP 1006将消息变换成AONP格式。
在AONS云1010内,利用AONP来路由消息。从而,利用AONP,可将消息从AONS CP 1006路由到AONS路由器1012,或从AONS CP1006路由到AONS SP 1008,或从AONS路由器1012路由到另一个AONS路由器,或从AONS路由器1012路由到AONS SP 1008。在AONS节点处被处理的消息是以AONP格式被处理的。
当消息到达AONS SP 1008时,AONS SP 1008将消息变换成服务器应用1014使用的消息格式。AONS SP 1008利用服务器应用1014的消息协议将消息路由到服务器应用1014。或者,如果AONS SP 1008不存在,则AONS CP 1006可将消息路由到服务器应用1014。
可经由以下角度来理解AONS云1010内消息处理的细节:请求/响应消息流程、单向消息流程、具有可靠递送的消息流程以及节点到节点通信。
图11A和图11B是图示请求/响应消息流程的图。参考图11A,在带圈标号1处,发送方应用1102向接收方应用1104发送消息。在带圈标号2处,AEP CP 1106截取消息并向消息添加AONP头部,从而形成AONP消息。在带圈标号3处,AEP CP 1106将AONP消息发送到AONS路由器1108。在带圈标号4处,AONS路由器1108接收AONP消息。在带圈标号5处,AONS路由器1 108将AONP消息发送到AEP SP 1110。在带圈标号6处,AEP SP 1110接收AONP消息并从消息中去除AONP头部,从而对消息进行解封。在带圈标号7处,AEP SP 1110将消息发送到接收方应用1104。
参考图11B,在带圈标号8处,接收方应用1104向发送方应用1102发送响应消息。在带圈标号9处,AEP SP 1110截取消息并向消息添加AONP头部,从而形成AONP消息。在带圈标号10处,AEPSP 1110将AONP消息发送到AONS路由器1108。在带圈标号11处,AONS路由器1108接收AONP消息。在带圈标号12处,AONS路由器1108将AONP消息发送到AEP CP 1106。在带圈标号13处,AEP CP 1106接收AONP消息并从消息中去除AONP头部,从而对消息进行解封。在带圈标号14处,AEP SP 1106将消息发送到发送方应用1102。从而,请求被从发送方应用1102路由到接收方应用1104,响应被从接收方应用1104路由到发送方应用1102。
图12A和图12B是图示替换请求/响应消息流程的图。图12A示出消息从发送方应用1202到接收方应用1204可能采取的三条可能的路由。根据第一路由,发送方应用1202向接收方应用1204发送消息,但是AEPCP 1206截取消息并将消息发送到接收方应用1204。根据第二路由,发送方应用1202向接收方应用1204发送消息,但是AEP CP 1206截取消息,将消息封装在AONP消息内,并将AONP消息发送到AEP SP 1208,AEPSP 1208从AONP消息中解封出消息,并将消息发送到接收方应用1204。根据第三路由,发送方应用1202向接收方应用1204发送消息,但是AEPSP 1208截取消息并将消息发送到接收方应用1204。
图12B示出响应消息从接收方应用1204到发送方应用1202可能采取的三条可能的路由。根据第一路由,接收方应用1204向发送方应用1202发送消息,但是AEP CP 1206截取消息并将消息发送到发送方应用1204。根据第二路由,接收方应用1204向发送方应用1202发送消息,但是AEPSP 1208截取消息,将消息封装在AONP消息内,并将AONP消息发送到AEP CP 1206,AEP CP 1206从AONP消息中解封出消息,并将消息发送到发送方应用1202。根据第三路由,接收方应用1204向发送方应用1202发送消息,但是AEP SP 1208截取消息并将消息发送到发送方应用1202。
图13是图示单向消息流程的图。在带圈标号1处,发送方应用1302向接收方应用1304发送消息。在带圈标号2处,AEP CP 1306截取消息并向消息添加AONP头部,从而形成AONP消息。在带圈标号3处,AEPCP 1306将ACK(确认)发送回发送方应用1302。在带圈标号4处,AEPCP 1306将AONP消息发送到AONS路由器1308。在带圈标号5处,AONS路由器1308接收AONP消息。在带圈标号6处,AONS路由器1308将AONP消息发送到AEP SP 1310。在带圈标号7处,AEP SP 1310接收AONP消息并从消息中去除AONP头部,从而对消息进行解封。在带圈标号8处,AEP SP 1310将消息发送到接收方应用1304。
图14是图示替换单向消息流程的图。图14示出消息从发送方应用1402到接收方应用1404可能采取的三条可能的路由。根据第一路由,发送方应用1402向接收方应用1404发送消息,但是AEP CP 1406截取消息并将消息发送到接收方应用1404。AEP CP 1406将ACK(确认)发送回发送方应用1402。根据第二路由,发送方应用1402向接收方应用1404发送消息,但是AEP CP 1406截取消息,将消息封装在AONP消息内,并将AONP消息发送到AEP SP 1408,AEP SP 1408从AONP消息中解封出消息,并将消息发送到接收方应用1404。同样,AEP CP 1406将ACK发送回发送方应用1402。根据第三路由,发送方应用1402向接收方应用1404发送消息,但是AEP SP 1408截取消息并将消息发送到接收方应用1404。在这种情况下,AEP SP 1408将ACK发送到发送方应用1402。从而,当AEP截取消息时,进行截取的AEP将ACK发送到发送方应用。
根据一个实施例,AONP被用于与下一跳的节点到节点通信中。在一个实施例中,AONP使用NTTP。AONP头部可包括HTTP或TCP头部。AONP可指示RM ACK、QoS级别、消息优先级和消息上下文(连接、消息序列号、消息上下文标识符、入口节点信息等等)。实际的消息有效载荷在消息主体中。异步消息传递可被用于AONS节点之间。AONS可经由静态配置(下一跳)和/或动态发现和路由通告(“懒”发现)来进行路由和节点发现。
图15A和图15B是图示具有可靠消息递送的请求/响应消息流程的图。参考图15A,在带圈标号1处,发送方应用1502向接收方应用1504发送消息。在带圈标号2处,AEP CP 1506截取消息并向消息添加AONP头部,从而形成AONP消息。在带圈标号3处,AEP CP 1506将消息保存到数据存储装置1512。从而是,如果在发送消息时有任何问题,AEP CP1506可重发送存储在数据存储装置1512中的消息拷贝。
在带圈标号4处,AEP CP 1506将AONP消息发送到AONS路由器1508。在带圈标号5处,AONS路由器1508接收AONP消息。在带圈标号6处,AONS路由器1508将AONP消息发送到AEP SP 1510。在带圈标号7处,AEP SP 1510接收AONP消息并从消息中去除AONP头部,从而对消息进行解封。在带圈标号8处,AEP SP 1510将消息发送到接收方应用1504。
在带圈标号9处,AEP SP 1510将可靠消息传递(RM)确认(ACK)发送到AONS路由器1508。在带圈标号10处,AONS路由器1508接收RM ACK并将RM ACK发送到AEP CP 1506。在带圈标号11处,AEP CP1506接收RM ACK,并且作为响应删除存储在数据存储装置1512中的消息拷贝。由于消息递送已被确认,因此无需再在数据存储装置1512中存储消息的拷贝。或者,如果AEP CP 1506在指定的时间段内未接收到RMACK,则AEP CP 1506重发送消息。
参考图15B,在带圈标号12处,接收方应用1504向发送方应用1502发送响应消息。在带圈标号13处,AEP SP 1510截取消息并向消息添加AONP头部,从而形成AONP消息。在带圈标号14处,AEP SP 1510将AONP消息发送到AONS路由器1508。在带圈标号15处,AONS路由器1508接收AONP消息。在带圈标号16处,AONS路由器1508将AONP消息发送到AEP CP 1506。在带圈标号17处,AEP CP 1506接收AONP消息并从消息中去除AONP头部,从而对消息进行解封。在带圈标号18处,AEP SP 1506将消息发送到发送方应用1502。
图16是图示具有可靠消息递送的单向消息流程的图。在带圈标号1处,发送方应用1602向接收方应用1604发送消息。在带圈标号2处,AEP CP 1606截取消息并向消息添加AONP头部,从而形成AONP消息。在带圈标号3处,AEP CP 1606将消息保存到数据存储装置1612。从而是,如果在发送消息时有任何问题,AEP CP 1606可重发送存储在数据存储装置1612中的消息拷贝。在带圈标号4处,AEP CP 1606将ACK(确认)发送回发送方应用1602。在带圈标号5处,AEP CP 1606将AONP消息发送到AONS路由器1608。在带圈标号6处,AONS路由器1608接收AONP消息。在带圈标号7处,AONS路由器1608将AONP消息发送到AEP SP 1610。在带圈标号8处,AEP SP 1610接收AONP消息并从消息中去除AONP头部,从而对消息进行解封。在带圈标号9处,AEP SP 1610将消息发送到接收方应用1604。
在带圈标号10处,AEP SP 1610将可靠消息传递(RM)确认(ACK)发送到AONS路由器1608。在带圈标号11处,AONS路由器1608接收RM ACK并将RM ACK发送到AEP CP 1606。在带圈标号12处,AEP CP 1606接收RM ACK,并且作为响应删除存储在数据存储装置1612中的消息拷贝。由于消息递送已被确认,因此无需再在数据存储装置1612中存储消息的拷贝。或者,如果AEP CP 1606在指定的时间段内未接收到RM ACK,则AEP CP 1606重发送消息。
图17是图示同步请求和响应消息的图。在带圈标号1处,AONS节点1704以隐式或显式模式从客户端1702接收请求消息。在带圈标号2处,AONS节点1704读取消息,选择并执行流程,并且向消息添加AONP头部。在带圈标号3处,AONS节点1704将消息发送到下一跳节点,即AONS节点1706。在带圈标号4处,AONS节点1706读取消息、选择并执行流程,并且从消息中去除AONP头部,从而根据服务器1708所预期的消息格式来格式化消息。在带圈标号5处,AONS节点1706将消息发送到消息的目的地,即服务器1708。
在带圈标号6处,AONS节点1706在与AONS节点1706用来发送请求消息的连接相同的连接上接收来自服务器1708的响应消息。在带圈标号7处,AONS节点1706读取消息,将消息与请求消息关联起来,执行流程,并向消息添加AONP头部。在带圈标号8处,AONS节点1706将消息发送到AONS节点1704。在带圈标号9处,AONS节点1704读取消息,将消息与请求消息关联起来,执行流程,并从消息中去除AONP头部,从而根据客户端1702所预期的消息格式来格式化消息。在带圈标号10处,AONS节点1704在与客户端1702用来发送请求消息到AONS节点1704的连接相同的连接上将消息发送到客户端1702。
图18是图示样本单向端到端消息流程的图。在带圈标号1处,AONS节点1804以隐式或显式模式从客户端1802接收请求消息。在带圈标号2处,AONS节点1804读取消息,选择并执行流程,并且向消息添加AONP头部。在带圈标号3处,AONS节点1804将确认发送到客户端1802。在带圈标号4处,AONS节点1804将消息发送到下一跳节点,即AONS节点1806。在带圈标号5处,AONS节点1806读取消息、选择并执行流程,并且从消息中去除AONP头部,从而根据服务器1808所预期的消息格式来格式化消息。在带圈标号6处,AONS节点1806将消息发送到消息的目的地,即服务器1808。
根据节点视图,AONS节点内的消息生命周期包括入口/出口处理、消息处理、消息执行控制和流程执行。
图19是图示AONS节点1900内的消息处理模块的图。AONS节点1900包括AONS消息执行控制器(AMEC)框架1902、策略管理子系统1904、AONS消息处理底层结构子系统1906和AOSS 1908。AMEC框架1902包括流程管理子系统1910、bladeletTM执行子系统1912和消息执行控制器1914。策略管理子系统1904与流程管理子系统1910通信。AOSS1908与bladeletTM执行子系统1912和AONS消息处理底层结构子系统1906通信。AONS消息处理底层结构子系统1906与消息执行控制器1914通信。流程管理子系统1910、bladeletTM执行子系统和消息执行控制器1914都与彼此通信。
图20是图示AONS节点1900内的消息处理的图。AMEC框架1902是基于事件的多线程机制,用于在使AONS节点中的消息的等待时间最小化的同时使吞吐量最大化。根据一个实施例,重定向接收到的分组、执行TCP终止、根据需要执行SSL终止、执行第5层协议适配器和访问方法处理(利用诸如HTTP、SMTP、FTP、JSM/MQ、JMS/RV、JDBC等访问方法)、形成AONS消息(用于内部AONS处理的规范化消息格式)、使消息排队、基于处理线程可用性使消息出队、选择流程(或规则)、执行选定的流程、将消息转发到消息的目的地、并且对于基于请求/响应的语义,经由AMEC框架1902内维护的连接/会话状态来处理响应。
在一个实施例中,执行流程包括执行流程的每个步骤(即bladeletTM/动作)。如果bladeletTM将要在一个单独的上下文中被运行,则AMEC框架1902可加入特定于bladeletTM的队列,并且基于线程可用性从每个bladeletTM队列中撤出适当的bladeletTM状态。
3.4.10流程、BladeletsTM和ScriptletsTM
根据一个实施例,流程将bladeletsTM(即动作)串在一起,以定制消息处理逻辑。ScriptletsTM为客户和合作者提供了定制或扩展原本的AONS功能的机制。一些bladeletsTM和服务可利用AONS节点提供。
3.4.11 AONS服务
如前一部分中所提到的,一组核心服务可由AONS提供,以形成可经由AONS节点递送的增值功能的下层基础。在一个实施例中,这些服务包括:安全性服务、标准压缩服务、增量压缩服务、缓存服务、消息日志记录服务、策略管理服务(策略管理器)、可靠消息传递服务、公布/预订服务、活动监视服务、消息分发服务、XML解析服务、XSLT变换服务和QoS管理服务。在一个实施例中,每个AONS核心服务是在服务框架的上下文内实现的。
3.4.12 AONS配置和管理
在一个实施例中,AONS节点是针对一类应用消息被配设和配置的,其中它施行代表应用端点、业务域、安全性域、管理域和网络域公告性地定义的策略。此外,AONS节点利用针对给定部署场景的不同软件和硬件子系统的可配置性和可扩展性而促进了不同产品功能特征的灵活构成和定制。由于AONS功能的应用和网络实施例,AONS体系结构框架应当有效且一致地解决各种系统组件及其环境的可配置性、可管理性和可监视性的不同方面。
AONS配置和管理框架是基于由ISO网络管理论坛推荐的网络管理的五个功能区域(“FCAPS”)的。这些功能区域包括故障管理、配置管理、记账管理、性能管理和安全性管理。故障管理是发现、隔离和修复AONS节点中的问题或故障的过程。配置管理是找出并设置AONS节点的过程。记账管理包括跟踪对AONS资源的使用和利用以帮助对其的适当使用。性能管理是测量AONS系统组件和整个系统的性能的过程。安全性管理控制对AONS系统上的信息的访问。上述功能中的许多是经由作为整个AONS解决方案的一部分的适当的装备、编程接口和工具来处理的。
图21、图22和图23是图示AONS配置和管理框架内的实体的图。配置和配设服务器(CPS)是用于AONS策略、流程、脚本和其他可管理实体的配置和管理的集中中心。可配置数据被从AONS设计工作室(流程工具)推到CPS,并且AONS管理员随后可将该数据供应给产品部署。还提供了一种促进过程,用于经由开发到分期/鉴定到产品初展过程来测试和验证变化。配置和配设代理(CPA)驻留在个体的AONS刀片上,并且为AONS提供本地控制和调度能力。CPA与CPS交互以获得更新。CPA采取适当的动作来实现变化。CPA还被用于收集监视数据以报告给第三方控制台。
3.4.13 AONS监视
在一个实施例中,AONS被装备成支持充分定义的事件,以便适当地监视内部处理活动并实现内部处理活动的可见性。对AONS节点的监视可经由运行在每个AONS节点上的预定义的JMX MBean代理来实现。该代理与PC复合体上的远程JMX MBean服务器通信。AONS MIB被调节以实现到第三方控制台的SNMP集成。图24是图示AONS监视体系结构的图。
3.4.14 AONS工具
在一个实施例中,为AONS的各种功能需求提供了以下工具集合:设计工作室、管理工作室、消息日志查看器、设计工作室是用于设计流程并应用消息分类和映射策略的可视工具。管理工作室是用于执行所有管理和配置功能的基于web的接口。消息日志查看器是用于分析消息流量、模式和跟踪信息的可视接口。
4.0实现机构-硬件概述
图5是图示其上可实现本发明的一个实施例的计算机系统500的框图。优选实施例是利用运行在诸如代理设备这样的网络元件上的一个或多个计算机程序实现的。从而,在该实施例中,计算机系统500是代理设备,例如负载平衡器。
计算机系统500包括用于传输信息的总线502或其他通信机构和与总线502相耦合用于处理信息的处理器504。计算机系统500还包括诸如随机存取存储器(RAM)、闪存或其他动态存储设备之类的主存储器506,其耦合到总线502,用于存储信息和处理器504要执行的指令。主存储器506还可用于存储在处理器504执行指令期间的临时变量或其他中间信息。计算机系统500还包括只读存储器(ROM)508或其他静态存储设备,其耦合到总线502,用于存储静态信息和处理器504的指令。提供了诸如磁盘、闪存或光盘之类的存储设备510,其耦合到总线502,用于存储信息和指令。
通信接口518可以耦合到总线502,以用于将信息和命令选择传输到处理器504。接口518是传统串行接口,例如RS-232或RS-322接口。外部终端512或其他计算机系统连接到计算机系统500,并利用接口514向其提供命令。运行在计算机系统500中的固件或软件提供终端接口或基于字符的命令接口,以便外部命令可被提供给计算机系统。
交换系统516耦合到总线502,并具有到一个或多个外部网络元件的输入接口514和输出接口519。外部网络元件可包括耦合到一个或多个主机524的本地网络522,或者比如因特网528之类的具有一个或多个服务器530的全局网络。交换系统516根据公知的预定协议和惯例将到达输入接口514的信息流量交换到输出接口519。例如,交换系统516与处理器504合作,可确定到达输入接口514的数据分组的目的地,并利用输出接口519将其发送到正确的目的地。目的地可包括主机524、服务器530,其他末端站,或者本地网络522或因特网528中的其他路由选择和交换设备。
本发明涉及使用计算机系统500来避免在计算机系统500上存储客户端状态。根据本发明的一个实施例,计算机系统500响应于处理器504执行包含在主存储器506中的一条或多条指令的一个或多个序列而提供这种更新。这种指令可以被从另一计算机可读介质(如存储设备510)读取到主存储器506中。包含在主存储器506中的指令序列的执行使得处理器504执行这里描述的过程步骤。多处理配置中的一个或多个处理器也可被用来执行包含在主存储器506中的指令序列。在替换实施例中,可以使用硬线电路来替代软件指令或与软件指令相结合以实现本发明。从而,本发明的实施例并不限于硬件电路和软件的任何特定组合。
这里所用的术语“计算机可读介质”指参与向处理器504提供指令以供执行的任何介质。这种介质可以采取许多形式,包括但不限于:非易失性介质、易失性介质和传输介质。非易失性介质例如包括光盘或磁盘,如存储设备510。易失性介质包括动态存储器,如主存储器506。传输介质包括同轴电缆、铜线和光纤,包括含总线502的线路。传输介质也可以采取声波或光波的形式,例如在无线电波和红外数据通信期间生成的声波或光波。
计算机可读介质的常见形式例如包括软盘、柔性盘、硬盘、磁带或任何其他磁介质,CD-ROM、任何其他光介质,穿孔卡、纸带、任何其他具有孔图案的物理介质,RAM、PROM和EPROM、FLASH-EPROM、任何其他存储器芯片或卡盘,下文中描述的载波,或者计算机可以读取的任何其他介质。
计算机可读介质的各种形式可用于将一条或多条指令的一个或多个序列传送到处理器504以供执行。例如,指令可以首先承载在远程计算机的磁盘上。远程计算机可以将指令加载到其动态存储器中,并利用调制解调器经由电话线发送指令。计算机系统500本地的调制解调器可以接收电话线上的数据,并使用红外发送器来将数据转换为红外信号。耦合到总线502的红外检测器可以接收在红外信号中携带的数据,并且将数据置于总线502上。总线502将数据传送到主存储器506,处理器504从主存储器506取得指令并执行指令。主存储器506接收的指令可以可选地在处理器504执行之前或之后存储到存储设备510上。
通信接口518还提供到连接到本地网络522的网络链路520的双向数据通信耦合。例如,通信接口518可以是综合业务数字网络(ISDN)卡或调制解调器,以提供到相应类型电话线的数字通信连接。又例如,通信接口518可以是局域网(LAN)卡,以提供到兼容LAN的数据通信连接。也可以实现无线链路。在任何这种实现方式中,通信接口518发送并接收电的、电磁的或光信号,这些信号携带了代表各种类型信息的数字数据流。
网络链路520一般经过一个或多个网络提供到其他数据设备的数据通信。例如,网络链路520可以经过本地网络522提供到主机计算机524或由因特网服务供应商(ISP)526操作的数据设备的连接。ISP 526进而又经过全球分组数据通信网络(现在通常称为“因特网”528)提供数据通信服务。本地网络522和因特网528都使用携带数字数据流的电的、电磁的或光信号。经过各种网络的信号和在网络链路520上并经过通信接口518的信号(这些信号携带去往和来自计算机系统500的数字数据)是传输信息的载波的示例性形式。
计算机系统500可以经过网络、网络链路520和通信接口518发送消息并接收数据,包括程序代码。在因特网示例中,服务器530可以经过因特网528、ISP 526、本地网络522和通信接口518传输应用程序的请求代码。根据本发明,一个这种下载的应用程序提供了如这里所述的对在服务器上存储客户端状态的避免。
接收到的代码可以在接收时被处理器504执行,和/或被存储在存储设备510或其他非易失性存储介质中以供后续执行。以这种方式,计算机系统500可以获得载波形式的应用代码。
5.0扩展和替换
在前述说明书中,已参考特定实施例描述了本发明。但是,应当清楚,在不脱离本发明更宽广的精神和范围的前提下,可以进行各种修改和改变。因此,说明书和附图都应当认为是示例性的,而非限制性的。
权利要求书(按照条约第19条的修改)
1.一种在网络元件处解释应用层消息的方法,该方法包括以下由计算机实现的步骤:
在所述网络元件接收数据分组群组,其中所述数据分组群组中的每个数据分组包括一个单独的分组头部群组和一个单独的有效载荷部分;
检查所述数据分组群组中的数据分组的有效载荷部分,以确定总体包含在一个或多个所述有效载荷部分中的应用层消息;
对于消息分类集合中的每个特定的消息分类,确定所述应用层消息中满足与所述特定消息分类相关联的所有标准的一个单独的消息子集,从而产生一个或多个消息子集;
对于所述消息子集中的每个特定的消息子集,确定由还包含所述特定消息子集中的应用层消息的至少一部分的数据分组中包含的每个分组头部群组都具备的一个单独的特性集合,从而产生一个或多个特性集合;
在所述网络元件处接收包括第一分组头部群组和第一有效载荷部分的第一数据分组;
确定所述第一分组头部群组是否具备所述特性集合中的任何一个中包含的所有特性;
如果所述第一分组头部群组具备所述特性集合中的任何一个特性集合中包含的所有特性,则检查所述第一有效载荷部分以确定其中包含的第一应用层消息的至少一部分;并且
如果所述第一分组头部群组不具备所述特性集合中的至少一个特性集合中包含的所有特性,则向目的地发送所述第一数据分组,而不检查所述第一有效载荷部分。
2.如权利要求1所述的方法,还包括:
如果所述第一分组头部群组具备所述特性集合中的任何一个特性集合中包含的所有特性,则执行以下步骤:
确定所述第一应用层消息的至少一部分是否满足与所述消息分类集合中的第一消息分类相关联的所有标准;并且
如果所述第一应用层消息的至少一部分满足与所述第一消息分类相关联的所有标准,则在所述网络元件处执行与所述第一消息分类相关联的一个或多个动作。
3.如权利要求1所述的方法,其中所述网络元件是网络路由器。
4.如权利要求1所述的方法,其中确定一个单独的消息子集的步骤包括确定所述应用层消息的某个消息子集,该消息子集是在层次结构内包含指定路径的可扩展标记语言(XML)文档。
5.如权利要求1所述的方法,其中确定一个单独的特性集合的步骤包括确定数据分组的因特网协议(IP)头部中指定的源地址是否相同。
6.如权利要求1所述的方法,其中确定一个单独的特性集合的步骤包括确定数据分组的因特网协议(IP)头部中指定的目的地地址是否相同。
7.如权利要求1所述的方法,其中确定一个单独的特性集合的步骤包括确定数据分组的传输控制协议(TCP)头部中指定的端口是否相同。
8.一种在网络元件处解释应用层消息的方法,该方法包括以下由计算机实现的步骤:
在第一时间间隔期间,向所述网络元件的第一刀片发送所述网络元件的第二刀片在所述第一时间间隔期间接收到的每一个数据分组;
在第一时间间隔期间,在所述第二刀片处接收所述第一刀片基于所述第二刀片发送到所述第一刀片的数据分组的分组头部确定的一个或多个分组头部特性集合;以及
在第二时间间隔期间,向所述第一刀片只发送所述第二刀片在所述第二时间间隔期间接收的并且包含具备所述分组头部特性集合中的至少一个集合中包含的所有特性的分组头部的数据分组。
9.一种承载用于在网络元件处解释应用层消息的一个或多个指令序列的计算机可读介质,所述指令在被一个或多个处理器执行时使所述一个或多个处理器执行以下步骤:
在所述网络元件接收数据分组群组,其中所述数据分组群组中的每个数据分组包括一个单独的分组头部群组和一个单独的有效载荷部分;
检查所述数据分组群组中的数据分组的有效载荷部分,以确定总体包含在一个或多个所述有效载荷部分中的应用层消息;
对于消息分类集合中的每个特定的消息分类,确定所述应用层消息中满足与所述特定消息分类相关联的所有标准的一个单独的消息子集,从而产生一个或多个消息子集;
对于所述消息子集中的每个特定的消息子集,确定由还包含所述特定消息子集中的应用层消息的至少一部分的数据分组中包含的每个分组头部群组都具备的一个单独的特性集合,从而产生一个或多个特性集合;
在所述网络元件处接收包括第一分组头部群组和第一有效载荷部分的第一数据分组;
确定所述第一分组头部群组是否具备所述特性集合中的任何一个中包含的所有特性;
如果所述第一分组头部群组具备所述特性集合中的任何一个特性集合中包含的所有特性,则检查所述第一有效载荷部分以确定其中包含的第一应用层消息的至少一部分;并且
如果所述第一分组头部群组不具备所述特性集合中的至少一个特性集合中包含的所有特性,则向目的地发送所述第一数据分组,而不检查所述第一有效载荷部分。
10.如权利要求9所述的计算机可读介质,其中所述步骤还包括:
如果所述第一分组头部群组具备所述特性集合中的任何一个特性集合中包含的所有特性,则执行以下步骤:
确定所述第一应用层消息的至少一部分是否满足与所述消息分类集合中的第一消息分类相关联的所有标准;并且
如果所述第一应用层消息的至少一部分满足与所述第一消息分类相关联的所有标准,则在所述网络元件处执行与所述第一消息分类相关联的一个或多个动作。
11.如权利要求9所述的计算机可读介质,其中所述网络元件是网络路由器。
12.如权利要求9所述的计算机可读介质,其中确定一个单独的消息子集的步骤包括确定包括所述应用层消息中是在层次结构内包含指定路径的可扩展标记语言(XML)文档的那些应用层消息的消息子集。
13.如权利要求9所述的计算机可读介质,其中确定一个单独的特性集合的步骤包括确定数据分组的因特网协议(IP)头部中指定的源地址是否相同。
14.如权利要求9所述的计算机可读介质,其中确定一个单独的特性集合的步骤包括确定数据分组的因特网协议(IP)头部中指定的目的地地址是否相同。
15.如权利要求9所述的计算机可读介质,其中确定一个单独的特性集合的步骤包括确定数据分组的传输控制协议头部中指定的端口是否相同。
16.一种承载用于在网络元件处解释应用层消息的一个或多个指令序列的计算机可读介质,所述指令在被一个或多个处理器执行时使所述一个或多个处理器执行以下步骤:
在第一时间间隔期间,向所述网络元件的第一刀片发送所述网络元件的第二刀片在所述第一时间间隔期间接收到的每一个数据分组;
在第一时间间隔期间,在所述第二刀片处接收所述第一刀片基于所述第二刀片发送到所述第一刀片的数据分组的分组头部确定的一个或多个分组头部特性集合;以及
在第二时间间隔期间,向所述第一刀片只发送所述第二刀片在所述第二时间间隔期间接收的并且包含具备所述分组头部特性集合中的至少一个集合中包含的所有特性的分组头部的数据分组。
17.一种用于在网络元件处解释应用层消息的设备,该设备包括:
用于在所述网络元件接收数据分组群组,其中所述数据分组群组中的每个数据分组包括一个单独的分组头部群组和一个单独的有效载荷部分的装置;
用于检查所述数据分组群组中的数据分组的有效载荷部分,以确定总体包含在一个或多个所述有效载荷部分中的应用层消息的装置;
用于对于消息分类集合中的每个特定的消息分类,确定所述应用层消息中满足与所述特定消息分类相关联的所有标准的一个单独的消息子集,从而产生一个或多个消息子集的装置;
用于对于所述消息子集中的每个特定的消息子集,确定由还包含所述特定消息子集中的应用层消息的至少一部分的数据分组中包含的每个分组头部群组都具备的一个单独的特性集合,从而产生一个或多个特性集合的装置;
用于在所述网络元件处接收包括第一分组头部群组和第一有效载荷部分的第一数据分组的装置;
用于确定所述第一分组头部群组是否具备所述特性集合中的任何一个中包含的所有特性的装置;
用于如果所述第一分组头部群组具备所述特性集合中的任何一个特性集合中包含的所有特性,则检查所述第一有效载荷部分以确定其中包含的第一应用层消息的至少一部分的装置;以及
用于如果所述第一分组头部群组不具备所述特性集合中的至少一个特性集合中包含的所有特性,则向目的地发送所述第一数据分组,而不检查所述第一有效载荷部分的装置。
18.一种用于在网络元件处解释应用层消息的设备,该设备包括:
用于在第一时间间隔期间,向所述网络元件的第一刀片发送所述网络元件的第二刀片在所述第一时间间隔期间接收到的每一个数据分组的装置;
用于在第一时间间隔期间,在所述第二刀片处接收所述第一刀片基于所述第二刀片发送到所述第一刀片的数据分组的分组头部确定的一个或多个分组头部特性集合的装置;以及
用于在第二时间间隔期间,向所述第一刀片只发送所述第二刀片在所述第二时间间隔期间接收的并且包含具备所述分组头部特性集合中的至少一个集合中包含的所有特性的分组头部的数据分组的装置。
19.一种用于在网络元件处解释应用层消息的设备,该设备包括:
耦合到数据网络以便从其接收一个或多个分组流的网络接口;
一个或多个处理器;
一个或多个存储的指令序列,所述指令在被所述一个或多个处理器执行时使所述一个或多个处理器执行以下步骤:
在所述网络元件接收数据分组群组,其中所述数据分组群组中的每个数据分组包括一个单独的分组头部群组和一个单独的有效载荷部分;
检查所述数据分组群组中的数据分组的有效载荷部分,以确定总体包含在一个或多个所述有效载荷部分中的应用层消息;
对于消息分类集合中的每个特定的消息分类,确定所述应用层消息中满足与所述特定消息分类相关联的所有标准的一个单独的消息子集,从而产生一个或多个消息子集;
对于所述消息子集中的每个特定的消息子集,确定由还包含所述特定消息子集中的应用层消息的至少一部分的数据分组中包含的每个分组头部群组都具备的一个单独的特性集合,从而产生一个或多个特性集合;
在所述网络元件处接收包括第一分组头部群组和第一有效载荷部分的第一数据分组;
确定所述第一分组头部群组是否具备所述特性集合中的任何一个中包含的所有特性;
如果所述第一分组头部群组具备所述特性集合中的任何一个特性集合中包含的所有特性,则检查所述第一有效载荷部分以确定其中包含的第一应用层消息的至少一部分;并且
如果所述第一分组头部群组不具备所述特性集合中的至少一个特性集合中包含的所有特性,则向目的地发送所述第一数据分组,而不检查所述第一有效载荷部分。
20.一种用于提供自适应性负载平衡的设备,该设备包括:
耦合到数据网络以便从其接收一个或多个分组流的网络接口;
一个或多个处理器;
一个或多个存储的指令序列,所述指令在被所述一个或多个处理器执行时使所述一个或多个处理器执行以下步骤:
在第一时间间隔期间,向所述网络元件的第一刀片发送所述网络元件的第二刀片在所述第一时间间隔期间接收到的每一个数据分组;
在第一时间间隔期间,在所述第二刀片处接收所述第一刀片基于所述第二刀片发送到所述第一刀片的数据分组的分组头部确定的一个或多个分组头部特性集合;以及
在第二时间间隔期间,向所述第一刀片只发送所述第二刀片在所述第二时间间隔期间接收的并且包含具备所述分组头部特性集合中的至少一个集合中包含的所有特性的分组头部的数据分组。

Claims (20)

1.一种在网络元件处解释应用层消息的方法,该方法包括以下由计算机实现的步骤:
在所述网络元件接收数据分组群组,其中所述数据分组群组中的每个数据分组包括一个单独的分组头部群组和一个单独的有效载荷部分;
检查所述数据分组群组中的数据分组的有效载荷部分,以确定总体包含在一个或多个所述有效载荷部分中的应用层消息;
对于消息分类集合中的每个特定的消息分类,确定所述应用层消息中满足与所述特定消息分类相关联的所有标准的一个单独的消息子集,从而产生一个或多个消息子集;
对于所述消息子集中的每个特定的消息子集,确定由还包含所述特定消息子集中的应用层消息的至少一部分的数据分组中包含的每个分组头部群组都具备的一个单独的特性集合,从而产生一个或多个特性集合;
在所述网络元件处接收包括第一分组头部群组和第一有效载荷部分的第一数据分组;
确定所述第一分组头部群组是否具备所述特性集合中的任何一个中包含的所有特性;
如果所述第一分组头部群组具备所述特性集合中的任何一个特性集合中包含的所有特性,则检查所述第一有效载荷部分以确定其中包含的第一应用层消息的至少一部分;并且
如果所述第一分组头部群组不具备所述特性集合中的至少一个特性集合中包含的所有特性,则向目的地发送所述第一数据分组,而不检查所述第一有效载荷部分。
2.如权利要求1所述的方法,还包括:
如果所述第一分组头部群组具备所述特性集合中的任何一个特性集合中包含的所有特性,则执行以下步骤:
确定所述第一应用层消息的至少一部分是否满足与所述消息分类集合中的第一消息分类相关联的所有标准;并且
如果所述第一应用层消息的至少一部分满足与所述第一消息分类相关联的所有标准,则在所述网络元件处执行与所述第一消息分类相关联的一个或多个动作。
3.如权利要求1所述的方法,其中所述网络元件是网络路由器。
4.如权利要求1所述的方法,其中确定一个单独的消息子集的步骤包括确定所述应用层消息的某个消息子集,该消息子集是在层次结构内包含指定路径的可扩展标记语言(XML)文档。
5.如权利要求1所述的方法,其中确定一个单独的特性集合的步骤包括确定数据分组的因特网协议(IP)头部中指定的源地址是否相同。
6.如权利要求1所述的方法,其中确定一个单独的特性集合的步骤包括确定数据分组的因特网协议(IP)头部中指定的目的地地址是否相同。
7.如权利要求1所述的方法,其中确定一个单独的特性集合的步骤包括确定数据分组的传输控制协议(TCP)头部中指定的端口是否相同。
8.一种在网络元件处解释应用层消息的方法,该方法包括以下由计算机实现的步骤:
在第一时间间隔期间,向所述网络元件的第一刀片发送所述网络元件的第二刀片在所述第一时间间隔期间接收到的每一个数据分组;
在所述第二刀片处接收所述第一刀片基于所述第二刀片发送到所述第一刀片的数据分组的分组头部确定的一个或多个分组头部特性集合;以及
在第二时间间隔期间,向所述第一刀片只发送所述第二刀片在所述第二时间间隔期间接收的并且包含具备所述分组头部特性集合中的至少一个集合中包含的所有特性的分组头部的数据分组。
9.一种承载用于在网络元件处解释应用层消息的一个或多个指令序列的计算机可读介质,所述指令在被一个或多个处理器执行时使所述一个或多个处理器执行以下步骤:
在所述网络元件接收数据分组群组,其中所述数据分组群组中的每个数据分组包括一个单独的分组头部群组和一个单独的有效载荷部分;
检查所述数据分组群组中的数据分组的有效载荷部分,以确定总体包含在一个或多个所述有效载荷部分中的应用层消息;
对于消息分类集合中的每个特定的消息分类,确定所述应用层消息中满足与所述特定消息分类相关联的所有标准的一个单独的消息子集,从而产生一个或多个消息子集;
对于所述消息子集中的每个特定的消息子集,确定由还包含所述特定消息子集中的应用层消息的至少一部分的数据分组中包含的每个分组头部群组都具备的一个单独的特性集合,从而产生一个或多个特性集合;
在所述网络元件处接收包括第一分组头部群组和第一有效载荷部分的第一数据分组;
确定所述第一分组头部群组是否具备所述特性集合中的任何一个中包含的所有特性;
如果所述第一分组头部群组具备所述特性集合中的任何一个特性集合中包含的所有特性,则检查所述第一有效载荷部分以确定其中包含的第一应用层消息的至少一部分;并且
如果所述第一分组头部群组不具备所述特性集合中的至少一个特性集合中包含的所有特性,则向目的地发送所述第一数据分组,而不检查所述第一有效载荷部分。
10.如权利要求9所述的计算机可读介质,其中所述步骤还包括:
如果所述第一分组头部群组具备所述特性集合中的任何一个特性集合中包含的所有特性,则执行以下步骤:
确定所述第一应用层消息的至少一部分是否满足与所述消息分类集合中的第一消息分类相关联的所有标准;并且
如果所述第一应用层消息的至少一部分满足与所述第一消息分类相关联的所有标准,则在所述网络元件处执行与所述第一消息分类相关联的一个或多个动作。
11.如权利要求9所述的计算机可读介质,其中所述网络元件是网络路由器。
12.如权利要求9所述的计算机可读介质,其中确定一个单独的消息子集的步骤包括确定包括所述应用层消息中是在层次结构内包含指定路径的可扩展标记语言(XML)文档的那些应用层消息的消息子集。
13.如权利要求9所述的计算机可读介质,其中确定一个单独的特性集合的步骤包括确定数据分组的因特网协议(IP)头部中指定的源地址是否相同。
14.如权利要求9所述的计算机可读介质,其中确定一个单独的特性集合的步骤包括确定数据分组的因特网协议(IP)头部中指定的目的地地址是否相同。
15.如权利要求9所述的计算机可读介质,其中确定一个单独的特性集合的步骤包括确定数据分组的传输控制协议头部中指定的端口是否相同。
16.一种承载用于在网络元件处解释应用层消息的一个或多个指令序列的计算机可读介质,所述指令在被一个或多个处理器执行时使所述一个或多个处理器执行以下步骤:
在第一时间间隔期间,向所述网络元件的第一刀片发送所述网络元件的第二刀片在所述第一时间间隔期间接收到的每一个数据分组;
在所述第二刀片处接收所述第一刀片基于所述第二刀片发送到所述第一刀片的数据分组的分组头部确定的一个或多个分组头部特性集合;以及
在第二时间间隔期间,向所述第一刀片只发送所述第二刀片在所述第二时间间隔期间接收的并且包含具备所述分组头部特性集合中的至少一个集合中包含的所有特性的分组头部的数据分组。
17.一种用于在网络元件处解释应用层消息的设备,该设备包括:
用于在所述网络元件接收数据分组群组,其中所述数据分组群组中的每个数据分组包括一个单独的分组头部群组和一个单独的有效载荷部分的装置;
用于检查所述数据分组群组中的数据分组的有效载荷部分,以确定总体包含在一个或多个所述有效载荷部分中的应用层消息的装置;
用于对于消息分类集合中的每个特定的消息分类,确定所述应用层消息中满足与所述特定消息分类相关联的所有标准的一个单独的消息子集,从而产生一个或多个消息子集的装置;
用于对于所述消息子集中的每个特定的消息子集,确定由还包含所述特定消息子集中的应用层消息的至少一部分的数据分组中包含的每个分组头部群组都具备的一个单独的特性集合,从而产生一个或多个特性集合的装置;
用于在所述网络元件处接收包括第一分组头部群组和第一有效载荷部分的第一数据分组的装置;
用于确定所述第一分组头部群组是否具备所述特性集合中的任何一个中包含的所有特性的装置;
用于如果所述第一分组头部群组具备所述特性集合中的任何一个特性集合中包含的所有特性,则检查所述第一有效载荷部分以确定其中包含的第一应用层消息的至少一部分的装置;以及
用于如果所述第一分组头部群组不具备所述特性集合中的至少一个特性集合中包含的所有特性,则向目的地发送所述第一数据分组,而不检查所述第一有效载荷部分的装置。
18.一种用于在网络元件处解释应用层消息的设备,该设备包括:
用于在第一时间间隔期间,向所述网络元件的第一刀片发送所述网络元件的第二刀片在所述第一时间间隔期间接收到的每一个数据分组的装置;
用于在所述第二刀片处接收所述第一刀片基于所述第二刀片发送到所述第一刀片的数据分组的分组头部确定的一个或多个分组头部特性集合的装置;以及
用于在第二时间间隔期间,向所述第一刀片只发送所述第二刀片在所述第二时间间隔期间接收的并且包含具备所述分组头部特性集合中的至少一个集合中包含的所有特性的分组头部的数据分组的装置。
19.一种用于在网络元件处解释应用层消息的设备,该设备包括:
耦合到数据网络以便从其接收一个或多个分组流的网络接口;
一个或多个处理器;
一个或多个存储的指令序列,所述指令在被所述一个或多个处理器执行时使所述一个或多个处理器执行以下步骤:
在所述网络元件接收数据分组群组,其中所述数据分组群组中的每个数据分组包括一个单独的分组头部群组和一个单独的有效载荷部分;
检查所述数据分组群组中的数据分组的有效载荷部分,以确定总体包含在一个或多个所述有效载荷部分中的应用层消息;
对于消息分类集合中的每个特定的消息分类,确定所述应用层消息中满足与所述特定消息分类相关联的所有标准的一个单独的消息子集,从而产生一个或多个消息子集;
对于所述消息子集中的每个特定的消息子集,确定由还包含所述特定消息子集中的应用层消息的至少一部分的数据分组中包含的每个分组头部群组都具备的一个单独的特性集合,从而产生一个或多个特性集合;
在所述网络元件处接收包括第一分组头部群组和第一有效载荷部分的第一数据分组;
确定所述第一分组头部群组是否具备所述特性集合中的任何一个中包含的所有特性;
如果所述第一分组头部群组具备所述特性集合中的任何一个特性集合中包含的所有特性,则检查所述第一有效载荷部分以确定其中包含的第一应用层消息的至少一部分;并且
如果所述第一分组头部群组不具备所述特性集合中的至少一个特性集合中包含的所有特性,则向目的地发送所述第一数据分组,而不检查所述第一有效载荷部分。
20.一种用于提供自适应性负载平衡的设备,该设备包括:
耦合到数据网络以便从其接收一个或多个分组流的网络接口;
一个或多个处理器;
一个或多个存储的指令序列,所述指令在被所述一个或多个处理器执行时使所述一个或多个处理器执行以下步骤:
在第一时间间隔期间,向所述网络元件的第一刀片发送所述网络元件的第二刀片在所述第一时间间隔期间接收到的每一个数据分组;
在所述第二刀片处接收所述第一刀片基于所述第二刀片发送到所述第一刀片的数据分组的分组头部确定的一个或多个分组头部特性集合;以及
在第二时间间隔期间,向所述第一刀片只发送所述第二刀片在所述第二时间间隔期间接收的并且包含具备所述分组头部特性集合中的至少一个集合中包含的所有特性的分组头部的数据分组。
CN200580045969.XA 2005-01-05 2005-12-15 利用采样和试探在网络元件处解释应用消息的方法和设备 Active CN101099345B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/031,106 US7551567B2 (en) 2005-01-05 2005-01-05 Interpreting an application message at a network element using sampling and heuristics
US11/031,106 2005-01-05
PCT/US2005/045625 WO2006073740A2 (en) 2005-01-05 2005-12-15 Interpreting an application message at a network element using sampling and heuristics

Publications (2)

Publication Number Publication Date
CN101099345A true CN101099345A (zh) 2008-01-02
CN101099345B CN101099345B (zh) 2011-04-13

Family

ID=36640367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200580045969.XA Active CN101099345B (zh) 2005-01-05 2005-12-15 利用采样和试探在网络元件处解释应用消息的方法和设备

Country Status (4)

Country Link
US (1) US7551567B2 (zh)
EP (1) EP1834453A4 (zh)
CN (1) CN101099345B (zh)
WO (1) WO2006073740A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110290188A (zh) * 2019-06-13 2019-09-27 四川大学 一种适用于大规模网络环境的https流服务在线标识方法
CN112363712A (zh) * 2014-09-02 2021-02-12 起元科技有限公司 在基于图的程序中指定组件

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7111163B1 (en) * 2000-07-10 2006-09-19 Alterwan, Inc. Wide area network using internet with quality of service
US8249953B2 (en) * 2004-05-13 2012-08-21 Cisco Technology, Inc. Methods and apparatus for determining the status of a device
US7422152B2 (en) 2004-05-13 2008-09-09 Cisco Technology, Inc. Methods and devices for providing scalable RFID networks
US8113418B2 (en) * 2004-05-13 2012-02-14 Cisco Technology, Inc. Virtual readers for scalable RFID infrastructures
US8604910B2 (en) * 2004-07-13 2013-12-10 Cisco Technology, Inc. Using syslog and SNMP for scalable monitoring of networked devices
US7509431B2 (en) * 2004-11-17 2009-03-24 Cisco Technology, Inc. Performing message and transformation adapter functions in a network element on behalf of an application
US8458467B2 (en) 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7664879B2 (en) * 2004-11-23 2010-02-16 Cisco Technology, Inc. Caching content and state data at a network element
US7987272B2 (en) * 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US7725934B2 (en) * 2004-12-07 2010-05-25 Cisco Technology, Inc. Network and application attack protection based on application layer message inspection
US7496750B2 (en) * 2004-12-07 2009-02-24 Cisco Technology, Inc. Performing security functions on a message payload in a network element
US8082304B2 (en) 2004-12-10 2011-12-20 Cisco Technology, Inc. Guaranteed delivery of application layer messages by a network element
US7606267B2 (en) * 2004-12-10 2009-10-20 Cisco Technology, Inc. Reducing the sizes of application layer messages in a network element
US20060155862A1 (en) * 2005-01-06 2006-07-13 Hari Kathi Data traffic load balancing based on application layer messages
US7698416B2 (en) * 2005-01-25 2010-04-13 Cisco Technology, Inc. Application layer message-based server failover management by a network element
US7694287B2 (en) * 2005-06-29 2010-04-06 Visa U.S.A. Schema-based dynamic parse/build engine for parsing multi-format messages
US7953826B2 (en) 2005-07-14 2011-05-31 Cisco Technology, Inc. Provisioning and redundancy for RFID middleware servers
US7345585B2 (en) * 2005-08-01 2008-03-18 Cisco Technology, Inc. Network based device for providing RFID middleware functionality
WO2007064876A2 (en) 2005-12-01 2007-06-07 Firestar Software, Inc. System and method for exchanging information among exchange applications
US8301752B2 (en) * 2006-05-02 2012-10-30 International Business Machines Corporation Load balancing for network server
US9021503B2 (en) * 2007-11-16 2015-04-28 Microsoft Technology Licensing, Llc Coordinating application state and communication medium state
US8719841B2 (en) * 2007-11-16 2014-05-06 Microsoft Corporation Dispatch mechanism for coordinating application and communication medium state
US8505030B2 (en) * 2007-11-16 2013-08-06 Microsoft Corporation Coordinating resources using a volatile network intermediary
US7817636B2 (en) * 2008-01-30 2010-10-19 Cisco Technology, Inc. Obtaining information on forwarding decisions for a packet flow
US8301706B2 (en) 2009-06-15 2012-10-30 Microsoft Corporation Routing of pooled messages via an intermediary
US8452835B2 (en) * 2009-12-23 2013-05-28 Citrix Systems, Inc. Systems and methods for object rate limiting in multi-core system
US8549538B2 (en) * 2010-03-18 2013-10-01 Microsoft Corporation Coordinating communication medium state for subtasks
JP5501052B2 (ja) * 2010-03-24 2014-05-21 キヤノン株式会社 通信装置、通信装置の制御方法、プログラム
US8250234B2 (en) 2010-04-26 2012-08-21 Microsoft Corporation Hierarchically disassembling messages
US9191285B1 (en) * 2012-03-14 2015-11-17 Domo, Inc. Automatic web service monitoring
US8805921B2 (en) * 2012-08-20 2014-08-12 International Business Machines Corporation System and method supporting application solution composition on cloud
US9137205B2 (en) 2012-10-22 2015-09-15 Centripetal Networks, Inc. Methods and systems for protecting a secured network
US9565213B2 (en) 2012-10-22 2017-02-07 Centripetal Networks, Inc. Methods and systems for protecting a secured network
US9203806B2 (en) 2013-01-11 2015-12-01 Centripetal Networks, Inc. Rule swapping in a packet network
US9124552B2 (en) 2013-03-12 2015-09-01 Centripetal Networks, Inc. Filtering network data transfers
US9094445B2 (en) 2013-03-15 2015-07-28 Centripetal Networks, Inc. Protecting networks from cyber attacks and overloading
US11675837B2 (en) * 2014-03-17 2023-06-13 Modelizeit Inc. Analysis of data flows in complex enterprise IT environments
US9264370B1 (en) 2015-02-10 2016-02-16 Centripetal Networks, Inc. Correlating packets in communications networks
US9866576B2 (en) 2015-04-17 2018-01-09 Centripetal Networks, Inc. Rule-based network-threat detection
US9917856B2 (en) 2015-12-23 2018-03-13 Centripetal Networks, Inc. Rule-based network-threat detection for encrypted communications
US11729144B2 (en) 2016-01-04 2023-08-15 Centripetal Networks, Llc Efficient packet capture for cyber threat analysis
IL252037B (en) 2017-04-30 2021-12-01 Verint Systems Ltd System and method for identifying relationships between computer application users
US10503899B2 (en) 2017-07-10 2019-12-10 Centripetal Networks, Inc. Cyberanalysis workflow acceleration
US10284526B2 (en) 2017-07-24 2019-05-07 Centripetal Networks, Inc. Efficient SSL/TLS proxy
US11233777B2 (en) 2017-07-24 2022-01-25 Centripetal Networks, Inc. Efficient SSL/TLS proxy
IL256690B (en) * 2018-01-01 2022-02-01 Cognyte Tech Israel Ltd System and method for identifying pairs of related application users
US10630638B2 (en) * 2018-03-09 2020-04-21 Palo Alto Networks, Inc. Maintaining communications in a failover instance via network address translation
US10333898B1 (en) 2018-07-09 2019-06-25 Centripetal Networks, Inc. Methods and systems for efficient network protection
US11741196B2 (en) 2018-11-15 2023-08-29 The Research Foundation For The State University Of New York Detecting and preventing exploits of software vulnerability using instruction tags
WO2021084439A1 (en) 2019-11-03 2021-05-06 Verint Systems Ltd. System and method for identifying exchanges of encrypted communication traffic
US11362996B2 (en) 2020-10-27 2022-06-14 Centripetal Networks, Inc. Methods and systems for efficient adaptive logging of cyber threat incidents
US11159546B1 (en) 2021-04-20 2021-10-26 Centripetal Networks, Inc. Methods and systems for efficient threat context-aware packet filtering for network protection

Family Cites Families (116)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100198065B1 (ko) * 1995-06-28 1999-06-15 김영환 하드웨어 패킷 라우터의 목적지 어드레스 검출장치
JP3434994B2 (ja) * 1996-12-12 2003-08-11 富士通株式会社 セル組立多重化装置
US6430286B1 (en) * 1997-04-22 2002-08-06 At&T Corp Service and information management system for a telecommunications network
US6115378A (en) * 1997-06-30 2000-09-05 Sun Microsystems, Inc. Multi-layer distributed network element
US7162738B2 (en) * 1998-11-03 2007-01-09 Tumbleweed Communications Corp. E-mail firewall with stored key encryption/decryption
US6341130B1 (en) * 1998-02-09 2002-01-22 Lucent Technologies, Inc. Packet classification method and apparatus employing two fields
US6145079A (en) 1998-03-06 2000-11-07 Deloitte & Touche Usa Llp Secure electronic transactions using a trusted intermediary to perform electronic services
US6337856B1 (en) * 1998-05-20 2002-01-08 Steelcase Development Corporation Multimedia data communications system
US6363477B1 (en) * 1998-08-28 2002-03-26 3Com Corporation Method for analyzing network application flows in an encrypted environment
US6125391A (en) * 1998-10-16 2000-09-26 Commerce One, Inc. Market makers using documents for commerce in trading partner networks
US6226675B1 (en) * 1998-10-16 2001-05-01 Commerce One, Inc. Participant server which process documents for commerce in trading partner networks
US6587431B1 (en) * 1998-12-18 2003-07-01 Nortel Networks Limited Supertrunking for packet switching
US7215641B1 (en) * 1999-01-27 2007-05-08 Cisco Technology, Inc. Per-flow dynamic buffer management
US6356951B1 (en) * 1999-03-01 2002-03-12 Sun Microsystems, Inc. System for parsing a packet for conformity with a predetermined protocol using mask and comparison values included in a parsing instruction
US6678827B1 (en) * 1999-05-06 2004-01-13 Watchguard Technologies, Inc. Managing multiple network security devices from a manager device
US6683881B1 (en) * 1999-05-28 2004-01-27 Ericsson Inc. Interface between an SS7 gateway and an IP network
US6868426B1 (en) * 1999-07-07 2005-03-15 Jeffrey W. Mankoff Virtual document organizer system and method
KR100532274B1 (ko) * 1999-09-08 2005-11-29 삼성전자주식회사 디지털 휴대용 단말기의 장문 메시지 송수신장치 및 그 방법
JP3619411B2 (ja) 1999-12-03 2005-02-09 富士通株式会社 パケット中継装置
US6510464B1 (en) * 1999-12-14 2003-01-21 Verizon Corporate Services Group Inc. Secure gateway having routing feature
US7149222B2 (en) * 1999-12-21 2006-12-12 Converged Access, Inc. Integrated access point network device
US6510434B1 (en) * 1999-12-29 2003-01-21 Bellsouth Intellectual Property Corporation System and method for retrieving information from a database using an index of XML tags and metafiles
US6701440B1 (en) 2000-01-06 2004-03-02 Networks Associates Technology, Inc. Method and system for protecting a computer using a remote e-mail scanning device
JP3730471B2 (ja) * 2000-02-14 2006-01-05 富士通株式会社 パケット転送装置
US6772223B1 (en) * 2000-04-10 2004-08-03 International Business Machines Corporation Configurable classification interface for networking devices supporting multiple action packet handling rules
US7111076B2 (en) * 2000-04-13 2006-09-19 Intel Corporation System using transform template and XML document type definition for transforming message and its reply
US7215637B1 (en) * 2000-04-17 2007-05-08 Juniper Networks, Inc. Systems and methods for processing packets
US7111163B1 (en) * 2000-07-10 2006-09-19 Alterwan, Inc. Wide area network using internet with quality of service
US6804222B1 (en) * 2000-07-14 2004-10-12 At&T Corp. In-band Qos signaling reference model for QoS-driven wireless LANs
US6862270B1 (en) * 2000-07-14 2005-03-01 At&T Corp. Architectural reference model for QoS-driven wireless LANs
US6718326B2 (en) * 2000-08-17 2004-04-06 Nippon Telegraph And Telephone Corporation Packet classification search device and method
US6785732B1 (en) * 2000-09-11 2004-08-31 International Business Machines Corporation Web server apparatus and method for virus checking
US20020114274A1 (en) * 2000-09-19 2002-08-22 Sturges James H. Packet based network for supporting real time applications
US7095754B2 (en) 2000-11-03 2006-08-22 At&T Corp. Tiered contention multiple access (TCMA): a method for priority-based shared channel access
US7046680B1 (en) * 2000-11-28 2006-05-16 Mci, Inc. Network access system including a programmable access device having distributed service control
US7296268B2 (en) 2000-12-18 2007-11-13 Microsoft Corporation Dynamic monitor and controller of availability of a load-balancing cluster
US20020126672A1 (en) * 2001-01-10 2002-09-12 Nelson Chow Method and apparatus for a flexible and reconfigurable packet classifier using content addressable memory
US6996842B2 (en) * 2001-01-30 2006-02-07 Intel Corporation Processing internet protocol security traffic
US20020131590A1 (en) * 2001-02-02 2002-09-19 Henson Kevin M. Key matrix methodology
US7213071B2 (en) * 2001-04-03 2007-05-01 International Business Machines Corporation Quality of service improvements for network transactions
US20020161907A1 (en) * 2001-04-25 2002-10-31 Avery Moon Adaptive multi-protocol communications system
US7134075B2 (en) 2001-04-26 2006-11-07 International Business Machines Corporation Conversion of documents between XML and processor efficient MXML in content based routing networks
AUPR459901A0 (en) * 2001-04-27 2001-05-24 Sharinga Networks Inc. Instant messaging
US7089586B2 (en) * 2001-05-02 2006-08-08 Ipr Licensing, Inc. Firewall protection for wireless users
US20020165957A1 (en) 2001-05-02 2002-11-07 Devoe Jiva Gandhara Intelligent dynamic route selection based on active probing of network operational characteristics
US6934702B2 (en) * 2001-05-04 2005-08-23 Sun Microsystems, Inc. Method and system of routing messages in a distributed search network
US6816455B2 (en) * 2001-05-09 2004-11-09 Telecom Italia S.P.A. Dynamic packet filter utilizing session tracking
US6813690B1 (en) * 2001-06-12 2004-11-02 Network Appliance, Inc. Caching media data using content-sensitive identifiers
US7020143B2 (en) 2001-06-18 2006-03-28 Ericsson Inc. System for and method of differentiated queuing in a routing system
US6944678B2 (en) * 2001-06-18 2005-09-13 Transtech Networks Usa, Inc. Content-aware application switch and methods thereof
US20030028599A1 (en) * 2001-06-19 2003-02-06 Kolsky Amir D. Method and system for a communication scheme over heterogeneous networks
US6745041B2 (en) * 2001-06-27 2004-06-01 Tekelec Methods and systems for communicating between subscribers of different application-layer mobile communications protocols
JP4274710B2 (ja) * 2001-06-28 2009-06-10 株式会社日立製作所 通信中継装置
US7363353B2 (en) * 2001-07-06 2008-04-22 Juniper Networks, Inc. Content service aggregation device for a data center
CN100454857C (zh) * 2001-08-09 2009-01-21 松下电器产业株式会社 传送装置和传送方法
US7245632B2 (en) * 2001-08-10 2007-07-17 Sun Microsystems, Inc. External storage for modular computer systems
AU2002323364A1 (en) * 2001-08-24 2003-03-10 Peribit Networks, Inc. Dynamic multi-point meshed overlay network
US7126907B2 (en) 2001-08-31 2006-10-24 Tropic Networks Inc. Label switched communication network, a method of conditioning the network and a method of data transmission
US7536712B2 (en) * 2001-10-16 2009-05-19 Microsoft Corporation Flexible electronic message security mechanism
US20030093530A1 (en) * 2001-10-26 2003-05-15 Majid Syed Arbitrator system and method for national and local content distribution
US7127740B2 (en) * 2001-10-29 2006-10-24 Pitney Bowes Inc. Monitoring system for a corporate network
WO2003039094A2 (en) * 2001-10-29 2003-05-08 Omtool, Ltd Methods and apparatus for securely communicating a message
US8040873B2 (en) * 2001-11-07 2011-10-18 Alcatel Lucent Distributed integration of legacy PBX system with SIP networks
JP3726741B2 (ja) * 2001-11-16 2005-12-14 日本電気株式会社 パケット転送装置、方法およびプログラム
JP3898498B2 (ja) * 2001-12-06 2007-03-28 富士通株式会社 サーバ負荷分散システム
US20040136371A1 (en) * 2002-01-04 2004-07-15 Muralidhar Rajeev D. Distributed implementation of control protocols in routers and switches
US7962925B2 (en) * 2002-02-22 2011-06-14 Oracle International Corporation System and method for XML data binding
US7245620B2 (en) * 2002-03-15 2007-07-17 Broadcom Corporation Method and apparatus for filtering packet data in a network device
US7185365B2 (en) * 2002-03-27 2007-02-27 Intel Corporation Security enabled network access control
US7385982B2 (en) * 2002-04-09 2008-06-10 Next Generation Systems, Inc. Systems and methods for providing quality of service (QoS) in an environment that does not normally support QoS features
US7437451B2 (en) 2002-05-16 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for collecting desired information for network transactions at the kernel level
US7487264B2 (en) * 2002-06-11 2009-02-03 Pandya Ashish A High performance IP processor
US7239634B1 (en) * 2002-06-17 2007-07-03 Signafor, Inc. Encryption mechanism in advanced packet switching system
US9088494B2 (en) * 2002-06-26 2015-07-21 Avaya Communication Israel Ltd. Packet fragmentation prevention
US6968374B2 (en) * 2002-07-03 2005-11-22 Telefonaktiebolaget Lm Ericsson (Publ) Quality of service (QOS) mechanism in an internet protocol (IP) network
US7301951B2 (en) * 2002-07-31 2007-11-27 At&T Knowledge Ventures, L.P. Resource reservation protocol based guaranteed quality of service internet protocol connections over a switched network
US7298750B2 (en) * 2002-07-31 2007-11-20 At&T Knowledge Ventures, L.P. Enhancement of resource reservation protocol enabling short-cut internet protocol connections over a switched network
US7237014B2 (en) * 2002-08-01 2007-06-26 Drummond Group System and method for in situ, real-time, supply chain, interoperability verification
US6950822B1 (en) * 2002-11-06 2005-09-27 Oracle International Corporation Techniques for increasing efficiency while servicing requests for database services
US7475241B2 (en) * 2002-11-22 2009-01-06 Cisco Technology, Inc. Methods and apparatus for dynamic session key generation and rekeying in mobile IP
US20040221319A1 (en) * 2002-12-06 2004-11-04 Ian Zenoni Application streamer
DE60319019T2 (de) 2002-12-12 2009-03-26 Huawei Technologies Co., Ltd., Shenzhen Verfahren zum aufbau und abbau einer dienstverbindung zwischen einem drahtlosen lokalen netz und benutzerendgerät
US20040121789A1 (en) * 2002-12-23 2004-06-24 Teddy Lindsey Method and apparatus for communicating information in a global distributed network
US7640427B2 (en) * 2003-01-07 2009-12-29 Pgp Corporation System and method for secure electronic communication in a partially keyless environment
US7895589B2 (en) * 2003-02-26 2011-02-22 International Business Machines Corporation Dynamic data-driven application integration adapters
US7398386B2 (en) * 2003-04-12 2008-07-08 Cavium Networks, Inc. Transparent IPSec processing inline between a framer and a network component
US20050021836A1 (en) * 2003-05-01 2005-01-27 Reed Carl J. System and method for message processing and routing
US7613822B2 (en) 2003-06-30 2009-11-03 Microsoft Corporation Network load balancing with session information
US7567504B2 (en) 2003-06-30 2009-07-28 Microsoft Corporation Network load balancing with traffic routing
US7590736B2 (en) 2003-06-30 2009-09-15 Microsoft Corporation Flexible network load balancing
BRPI0413473B1 (pt) * 2003-08-12 2020-01-28 Blackberry Ltd método e aparelho para processamento de mensagens codificadas
US7769994B2 (en) * 2003-08-13 2010-08-03 Radware Ltd. Content inspection in secure networks
US7191248B2 (en) * 2003-08-29 2007-03-13 Microsoft Corporation Communication stack for network communication and routing
US7362763B2 (en) * 2003-09-04 2008-04-22 Samsung Electronics Co., Ltd. Apparatus and method for classifying traffic in a distributed architecture router
US7142866B2 (en) * 2003-09-09 2006-11-28 Harris Corporation Load leveling in mobile ad-hoc networks to support end-to-end delay reduction, QoS and energy leveling
US7483384B2 (en) * 2003-09-22 2009-01-27 Hewlett-Packard Development Company, L.P. System and method for monitoring network traffic
US8453196B2 (en) * 2003-10-14 2013-05-28 Salesforce.Com, Inc. Policy management in an interoperability network
KR100849345B1 (ko) * 2003-10-30 2008-07-29 삼성전자주식회사 고속 패킷 데이터 시스템에서의 서비스 품질 제공 방법
US7421695B2 (en) * 2003-11-12 2008-09-02 Cisco Tech Inc System and methodology for adaptive load balancing with behavior modification hints
US7194485B2 (en) * 2003-11-21 2007-03-20 International Business Machines Corporation Mapping XML schema components to qualified java components
US20050188103A1 (en) * 2003-12-30 2005-08-25 Nokia Corporation Method or device for delivering a packet in a scatternet
KR20060121947A (ko) * 2004-02-03 2006-11-29 노키아 코포레이션 엔드­투­엔드 서비스 품질(qos)을 제공하는 방법 및장치
JP4276568B2 (ja) * 2004-03-26 2009-06-10 株式会社日立コミュニケーションテクノロジー ルータ及びsipサーバ
US20050229243A1 (en) * 2004-03-31 2005-10-13 Svendsen Hugh B Method and system for providing Web browsing through a firewall in a peer to peer network
US9686669B2 (en) * 2004-04-08 2017-06-20 Nokia Technologies Oy Method of configuring a mobile node
US7322523B2 (en) 2004-05-13 2008-01-29 Cisco Technology, Inc. Methods and devices for uniquely provisioning RFID devices
US7581248B2 (en) 2004-06-28 2009-08-25 International Business Machines Corporation Federated identity brokering
US7664879B2 (en) * 2004-11-23 2010-02-16 Cisco Technology, Inc. Caching content and state data at a network element
US7987272B2 (en) * 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US7725934B2 (en) * 2004-12-07 2010-05-25 Cisco Technology, Inc. Network and application attack protection based on application layer message inspection
US7496750B2 (en) * 2004-12-07 2009-02-24 Cisco Technology, Inc. Performing security functions on a message payload in a network element
US8082304B2 (en) * 2004-12-10 2011-12-20 Cisco Technology, Inc. Guaranteed delivery of application layer messages by a network element
US7606267B2 (en) * 2004-12-10 2009-10-20 Cisco Technology, Inc. Reducing the sizes of application layer messages in a network element
US20060155862A1 (en) * 2005-01-06 2006-07-13 Hari Kathi Data traffic load balancing based on application layer messages
FR2880752A1 (fr) * 2005-01-10 2006-07-14 Thomson Licensing Sa Methode de construction d'une adresse de diffusion unique par un serveur et serveur utilisant cette methode
US7698416B2 (en) * 2005-01-25 2010-04-13 Cisco Technology, Inc. Application layer message-based server failover management by a network element

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112363712A (zh) * 2014-09-02 2021-02-12 起元科技有限公司 在基于图的程序中指定组件
CN112363712B (zh) * 2014-09-02 2024-03-12 起元科技有限公司 用于处理基于图的程序规范的方法
CN110290188A (zh) * 2019-06-13 2019-09-27 四川大学 一种适用于大规模网络环境的https流服务在线标识方法

Also Published As

Publication number Publication date
CN101099345B (zh) 2011-04-13
WO2006073740B1 (en) 2007-02-22
US7551567B2 (en) 2009-06-23
WO2006073740A2 (en) 2006-07-13
EP1834453A2 (en) 2007-09-19
US20060146879A1 (en) 2006-07-06
EP1834453A4 (en) 2014-12-24
WO2006073740A3 (en) 2007-01-11

Similar Documents

Publication Publication Date Title
CN101099345B (zh) 利用采样和试探在网络元件处解释应用消息的方法和设备
CN101124565B (zh) 基于应用层消息的数据流量负载平衡
CN100461150C (zh) 在网络元件中代表应用执行消息和变换适配器功能
CN101371237B (zh) 在网络元件中代表应用执行消息有效载荷处理功能
CN101069169B (zh) 在网络元件处缓存内容和状态数据
US10795992B2 (en) Self-adaptive application programming interface level security monitoring
CN101438255B (zh) 基于应用层消息检查的网络和应用攻击保护
CN101088245B (zh) 在网络元件中对消息有效载荷执行安全性功能
CN101461213B (zh) 通信网络应用活动监视和控制
US7685143B2 (en) Unified logging service for distributed applications
US10423469B2 (en) Router management by an event stream processing cluster manager
US9392072B2 (en) Systems and methods for conducting communications among components of multidomain industrial automation system
EP2378716B1 (en) Systems for conducting communications among components of multidomain industrial automation system
US8984533B2 (en) Systems and methods for conducting communications among components of multidomain industrial automation system
CA2368627A1 (en) Network management method and system
Boyd et al. Building Real-time Mobile Solutions with MQTT and IBM MessageSight
CN102055620B (zh) 监控用户体验的方法和系统
KR101771658B1 (ko) 인터넷 광고 차단 장치 및 방법
US20060031232A1 (en) Management tool programs message distribution

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant