CN100524279C - 推断无状态通信协议中的服务器状态方法、系统及装置 - Google Patents

推断无状态通信协议中的服务器状态方法、系统及装置 Download PDF

Info

Publication number
CN100524279C
CN100524279C CNB2005800284905A CN200580028490A CN100524279C CN 100524279 C CN100524279 C CN 100524279C CN B2005800284905 A CNB2005800284905 A CN B2005800284905A CN 200580028490 A CN200580028490 A CN 200580028490A CN 100524279 C CN100524279 C CN 100524279C
Authority
CN
China
Prior art keywords
server
value
data object
title
client devices
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.)
Active
Application number
CNB2005800284905A
Other languages
English (en)
Other versions
CN101073071A (zh
Inventor
A·乔汉
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.)
Citrix Systems Inc
Original Assignee
Teros 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 Teros Inc filed Critical Teros Inc
Publication of CN101073071A publication Critical patent/CN101073071A/zh
Application granted granted Critical
Publication of CN100524279C publication Critical patent/CN100524279C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/142Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms

Abstract

由中间服务器通过监控并分析应用服务器和客户机设备之间传送的分组,在基于无状态通信协议的网络上的应用服务器与客户机设备之间传送的分组中识别服务器状态对象。将这些分组剖析成多个名称-值对。计算具有相同名称字段的名称-值对的熵,并基于计算的熵选择可能是服务器状态对象的候选数据对象。将在应用服务器和客户机设备之间双向传送的候选数据对象识别为服务器状态对象。

Description

推断无状态通信协议中的服务器状态方法、系统及装置
技术领域
本发明一般涉及无状态通信协议,更具体地说涉及识别依据无状态通信协议、例如XML(扩充标记语言)或SOAP(简单对象访问协议)在服务器和客户机设备之间传送的分组中的服务器状态对象。
背景技术
诸如HTTP(超文本传输协议)、XML或SOAP的无状态通信协议独立地执行每个命令,而不保留先前命令的任何状态信息。同样地,在严格的无状态协议中,服务器将不存储先前与服务器通信的客户机装置的身份,因此,将不会按照先前事务来处理该客户机的当前事务。
因此通常使用诸如cookie或隐藏字段的服务器状态对象来标识使用无状态通信协议与服务器通信的客户机设备。例如,cookie是一种服务器状态对象,它使服务器Web网站能够将有关客户机设备自己的信息存储在客户机设备上,以便服务器Web网站能够在后来确定该客户机设备的身份。因此,服务器可以通过检查服务器状态对象以确定客户机设备先前与服务器通信过,并使客户机设备能够基于已建立的身份与服务器执行事务,而无需另外的工作来识别该客户机设备。
因为服务器状态对象为服务器标识客户机设备,并使客户机设备能够基于确定的身份与服务器通信,服务器应该具有一种自我保护方式以防止假冒某个身份的客户设备的欺诈尝试。因此,依据无状态通信协议,服务器状态对象通常不可变的,以便防止服务器受到此类欺诈尝试。即,当服务器将服务器状态对象发送到客户机设备时,服务器预期相同的服务器状态对象在客户机设备上未被更改或篡改地返回。
依据如HTTP的结构良好定义的通信协议,如防火墙、网关或应用代理的中间服务器可以容易地识别应用服务器和客户机设备之间传送的分组中的服务器状态对象,因为包含服务器状态对象的分组配置为包含标识此类服务器状态对象的某些字段。例如,cookie包含如<set-cookie:>的字符串,以及隐藏字段包含如<input type=hidden...>的字符串,它们可以被中间服务器容易地识别出。
但是,在如XML或SOAP的欠结构化的无状态通信协议中,中间服务器无法容易地识别服务器状态对象,因为这些协议设计为允许应用设计人员随意定义他们自己的对象。如防火墙的中间服务器通常无权访问应用设计人员在应用服务器中提供的协议定义,因此,应用设计人员随意定义的服务器状态对象无法容易地被中间服务器识别。例如,在一个应用服务器中,服务器状态可能保存在“ACCOUNTNUMBER”对象中,而在另一个应用中,相同的服务器状态可能保存在“CLIENT ID”对象中。应用服务器应该有权访问这些协议定义,因此可识别这些服务器状态对象。但是,中间服务器(防火墙或其他过滤器)将没有在中间服务器之后的所有应用的协议/应用定义。
因此,需要由中间服务器识别依据欠结构化的无状态通信协议(例如XML或SOAP)在服务器与客户机设备之间传送的服务器状态对象,这些协议没有标识服务器状态对象的预定义方式。
发明内容
本发明支持识别基于无状态通信协议的网络上的应用服务器与客户机设备之间传送的分组中的服务器状态对象,其中这些分组由无权访问客户机设备和应用服务器使用的协议定义的中间服务器接收。由中间服务器监控在应用服务器和客户机设备之间传送的分组,并将其剖析成多个名称-值对(数据对象)。计算具有相同名称字段的数据对象的熵,并基于计算的熵选择可能是服务器状态对象的候选数据对象。在一个实施例中,选择熵高于阈值的数据对象作为候选数据对象。最后,将确定为已在应用服务器和客户机设备之间双向传送过的候选数据对象标识为服务器状态对象。
在一个实施例中,通过将具有相同名称字段的已剖析数据对象的值字段合并、使用基于熵的压缩算法压缩合并的值字段、并将压缩的合并值字段的总大小除以具有相同名称字段的数据对象的总数来计算数据对象的熵。
本发明的实施例可以识别甚至在使用欠结构化的无状态通信协议(例如XML或SOAP)时在应用服务器与客户机设备之间传送的服务器状态对象。因此,中间服务器通过检查所识别的服务器状态对象来识别先前与应用服务器通信过的客户机设备,而无需对应用服务器和客户机使用的底层应用协议有任何访问权。这使底层应用协议能够被修改,或是新应用能够驻留在网络上,而无需持续更新中间服务器保存的信息。这还便于实现使用此类欠结构化的无状态通信协议的因特网事务。
附图说明
图1是说明根据本发明一个实施例的用于识别服务器状态对象的系统的体系结构的框图。
图2是说明根据本发明一个实施例的用于识别服务器状态对象的方法的流程图。
图3是说明名称-值对的示意图。
图4是说明识别服务器与客户机设备之间双向传送的名称-值对的步骤的示意图。
具体实施方式
图1是说明根据本发明一个实施例的用于识别服务器状态对象的系统100的体系结构的框图。系统100耦合在应用服务器102与客户机设备104之间以监控在服务器102与客户机设备104之间传送的分组118。分组118可以在应用服务器102与客户机设备104之间双向传送,或仅单向地从应用服务器102传送到客户机设备104或反之亦然。使用无状态数据通信协议(例如XML、SOAP或HTTP)在应用服务器102和客户机设备之间传送分组118。但是,系统100通常没有由应用服务器106提供的据以剖析分组来识别服务器状态对象的的协议定义。虽然图1中示出一个客户机设备104,但是应该注意在实际中将有大量客户机设备104与应用服务器102通信。而且虽然仅示出一个应用服务器102,但是可以在系统100之后部署任何数量的应用服务器102,以服务客户机设备104。
在一个实施例中,系统100包括应用防火墙106、学习引擎108和数据存储模块110。应用防火墙106监控从服务器102传送到客户机设备104以及从客户机设备104传送到服务器102的分组118。应用防火墙106剖析所监控的分组118,并根据学习引擎108提供的过滤规则来过滤恶意或非期望的分组118。过滤规则116向应用防火墙106提供用于放行或阻止服务器102和客户机设备104之间传送的某些分组118的准则。
应用防火墙106还剖析所监控的分组118并向学习引擎108提供根据学习引擎108提供的数据收集参数112收集的数据114。数据收集参数112向应用防火墙106提供有关应用防火墙106应该从监控的分组118收集的数据类型的准则。这些数据收集参数112包括例如如何根据通信协议剖析分组118以收集对应于分组118的名称-值(名称-属性)对。但是,在典型实施例中,应用防火墙106将无权像应用服务器104使用那样访问底层协议定义(例如文档类型定义(DTD))。
在一个实施例中,应用防火墙106本身可以是运行专用于应用防火墙功能的软件的计算机系统。在另一个实施例中,应用防火墙106可以是作为运行在计算机系统100上的大软件系统的一部分的软件模块。
学习引擎108将过滤规则116和数据收集参数112提供到应用防火墙106,并接收由应用防火墙106根据数据收集参数112收集的数据114。分组118是根据所采用的通信协议在服务器102与客户机设备104之间传送的那些分组。例如,分组118还可以是XML分组或SOAP分组。应用防火墙106将分组118剖析成名称-值(名称-属性)对114,以及学习引擎108接收这些名称-值对114用于进一步处理来识别分组118中的服务器状态对象。名称-值(名称-属性)对在本文中也称为“数据对象”。
学习引擎108通过分析从应用防火墙106接收到的数据对象114或名称-值对114来识别服务器102与客户机设备104之间传送的分组118中的服务器状态对象。就此而言,学习引擎108识别名称-值对114,并对每个识别的名称字段,合并该名称的值。在累计最小数量的每个名称的值之后,学习引擎108然后使用压缩算法压缩该名称的合并的值。压缩算法可以是基于熵的压缩算法,例如Lempe1-Ziv型压缩算法。然后,学习引擎108通过将压缩的值的总大小除以具有相同名称的值的总数来计算每个压缩的值的熵。
学习引擎108根据它们计算的熵从数据对象中选择可能是服务器状态对象的候选数据对象。因为服务器状态对象通常在它们的值字段中包含相对不同的字符串,以便维护每个客户机的状态,所以服务器状态对象的熵可能高。因此,在一个实施例中,学习引擎108选择具有比阈值高的熵值的数据对象。熵的阈值根据用于传送分组118的底层通信协议而有所不同。典型的服务器状态对象具有对应于32位或更多的熵值,因为它常常是服务器实现中的对象引用或数据库表中的关键字。因此,在一个实施例中,阈值设在对应于24位的熵级。
如果一个或多个候选数据对象从应用服务器102传送到客户机设备104并且从客户机设备104传送到应用服务器102,则学习引擎108将一个或多个候选数据对象识别为服务器状态对象。这是因为服务器状态对象应已由应用服务器102传送到客户机设备104并存储在客户机设备104中,以便应用服务器102可以稍后识别客户机设备104,并且服务器状态对象后来还从客户机设备104发送到应用服务器102,以便可以由应用服务器102识别客户机设备104。
在一个实施例中,学习引擎108通过将依据通信协议的相关分组划分成从服务器传送到客户机设备的第一组分组和从客户机设备传送到服务器的第二组分组,来识别在服务器102与客户机设备104之间双向传送的候选数据对象。相关分组是对应于依据该通信协议的“相关消息”的分组。例如,形成HTTP会话的请求/响应通信的一部分的分组是依据HTTP协议的相关分组。在SOAP中,可以在分开的连接中执行请求和响应。因此,在外部提供了依据SOAP的相关分组的概念。在一个实施例中,可以将相同源与目的地点之间的消息(基于源IP地址/端口和目的地IP地址/端口)视为依据SOAP的相关分组。在其他实施例中,将两个相同服务(URL(统一资源定位器)标识的)之间的消息视为依据SOAP的相关分组。学习引擎108将第一组分组和第二组分组中包含的候选数据对象识别为服务器状态对象。
在一个实施例中,数据存储模块110可以临时地存储收集的数据114和其他中间数据,而当从应用防火墙106接收数据对象114时,学习引擎108实时地分析收集的数据114以识别分组118中的服务器状态对象。在另一个实施例中,存储模块110将接收到的数据对象在收集的数据114中存储预定的时间期间或直到存储的数据对象的数量达到某个阈值为止,并且学习引擎108成批地处理存储的数据对象以确定这些数据对象是否是服务器状态对象。
图2是说明根据本发明一个实施例用于识别基于无状态通信协议的网络上的服务器102与客户机设备104之间传送的分组118中的服务器状态对象的方法的流程图。图2所描述的方法可以在图1的系统100中执行。
当方法开始时202,应用防火墙106将从服务器102传送到客户机设备104或从客户机设备104传送到服务器102的分组118剖析204成多个名称-值对(数据对象)。图3描述名称-值对303的示例。参考图3,剖析分组118并将其划分成名称302和对应于名称302的值(属性)304。例如,名称“Order ID(序号)”305可以是对应于在服务器Web网站102与客户机设备104之间执行的因特网销售事务的名称。这些名称字段“Order ID”305具有对应值字段“ABCDEFABCDEF”、“111BBCCCDDD”和“DDDCCC1112233”。名称字段“Author(作者)”306、“Account No.(帐号)”307和“Title(标题)”308分别具有对应的值字段“John”、“123456789”和“Internet Sales”。虽然图3仅示出三个名称-值对303,但是在实际中可以有由应用防火墙106在任何给定时间维护的数百或甚至数千名称-值对303。
再次参考图2,学习引擎108将具有相同名称字段的所剖析的数据对象的值字段合并206。例如,图3中一些名称-值对具有相同的名称“Order ID”305。因此,将对应于名称“Order ID”的值字段304合并,得到对应于名称字段“Order ID”305的合并的值“ABCDEFABCDEF111BBCCCDDDDDDCCC1112233”。
在识别了任何给定名称-值对的最小数量的名称-值对之后,学习引擎使用压缩算法将该名称的合并的值压缩208。在一个实施例中,该压缩算法可以是基于熵的压缩算法,例如Lempel-Ziv型压缩算法。然后,学习引擎108通过将压缩的合并值列表的总大小除以该名称的名称-值对的总数来计算压缩的合并值的熵。然后,在图3所示的示例中,使用压缩算法压缩208合并的值列表“ABCDEFABCDEF111BBCCCDDDDDDCCC1112233”,将压缩的合并值的总大小除以具有相同名称字段(“Order ID”)的名称-值对的数量(图3的示例中为3)。
如所见到的,将有大量数据对象作为服务器状态对象的潜在候选项,对于这些候选项的每一个,将有一个计算的熵测量值。从此潜在候选项集合中,学习引擎108根据计算的熵来选择212可能是服务器状态对象的候选名称-值对象。如前文描述的,在一个实施例中,学习引擎108选择具有比预定阈值高的熵测量值的名称-值对作为候选名称-值对。熵的阈值根据用于传送分组118的底层通信协议而有所不同。典型的服务器状态对象具有对应于32位或更多的熵值,因为它常常是服务器实现中的对象引用或数据库表中的关键字。因此,在一个实施例中,阈值设在对应于24位的熵级。因此,在前文中,因为具有足够高的熵,所以可以选择“Order ID”和“Account No.”,而不会选择“Author”和“Title”。
这样,学习引擎108确定214已在应用服务器102与客户机设备104之间双向发送这些候选名称-值对的哪一些。如果已双向发送候选名称-值对,则学习引擎108将候选名称-值对标记218为服务器状态对象。如果未双向发送名称-值对,则学习引擎108确定216该名称-值对不是服务器状态对象。
图4说明识别图2所描述的服务器与客户机设备之间双向传送的名称-值对的过程。如前文描述的,如果一个或多个候选名称-值对在应用服务器102与客户机设备104之间双向传送过,则学习引擎108将一个或多个候选名称-值对识别为服务器状态对象。这是因为服务器状态对象应已由应用服务器102传送到客户机设备104并存储在客户机设备104中,以便应用服务器102可以稍后识别客户机设备104,并且服务器状态对象后来还从客户机设备104发送到应用服务器102,以便可以由应用服务器102识别客户机设备104。
参考图4,在一个实施例中,学习引擎108按相关分组的相关联的时间戳的顺序将依据该通信协议的相关分组划分成从应用服务器102传送到客户机设备104的第一组分组402和从客户机设备104传送到服务器102的第二组分组404,其中它们相关联的时间戳指示应用防火墙106接收对应的分组118。相关分组是对应于依据该通信协议的相关消息的分组。例如,形成HTTP会话的请求/响应的一部分的分组是依据HTTP协议的相关分组。在SOAP中,可以在分开的连接中执行请求和响应。因此,在外部提供了依据SOAP的相关分组的概念。在一个实施例中,可以将相同源与目的地点之间的消息(基于源IP地址/端口和目的地IP地址/端口)视为依据SOAP的相关分组。在其他实施例中,将两个相同服务(URL(统一资源定位器)标识的)之间的消息视为依据SOAP的相关分组。在图4所示的示例中,名称-值对406、408、410和412是在应用服务器102和客户机设备104之间双向传送的候选名称-值对。应该注意,还可能有除了候选名称-值对406、408、410、412之外的其他候选名称-值对,虽然它们未在图4中示出。
学习引擎108将分组的第一组分组402和第二组分组404中包含的名称-值对识别为服务器状态对象。例如,在分组的第一组402和分组的第二组404中都包含候选名称-值对406、408、410、412、420、422,由学习引擎108将它们确定为服务器状态对象。但是,候选名称-值对416和418仅在分组的第二组404中包含,因此不是服务器状态对象。
本发明具有如下优点:即使是使用欠结构化的无状态通信协议(例如XML或SOAP),而其中中间服务器无权访问底层应用协议的情况下,如过滤器或网关的中间服务器仍可以识别应用服务器与客户机设备之间传送的服务器状态对象。这便于实现使用此类欠结构化的无状态数据通信协议的因特网事务,因为服务器可以通过检查服务器状态对象来识别先前与服务器通信过的客户机设备。
虽然本发明是参考多个实施例来描述的,但是可以在本发明范围内进行多种修改。例如,本发明不限于任何通信协议,并可以与任何无状态协议一起使用。图1的系统100的体系结构仅仅是示范性的,并能以达到系统100能够监控在应用服务器102与客户机设备104之间双向传送的分组的程度的任何方式修改该体系结构。可以使用任何类型的压缩算法来实现数据对象的值字段的压缩,计算合并的压缩数据对象的熵的方法不限于本文描述的内容。识别双向分组的方法不限于图4中本文描述的内容,还可以使用不同的方法,只要它们适于识别在应用服务器102与客户机设备之间双向传送的分组即可。本发明还可以在多个客户机设备104与应用服务器102通信或客户机设备104与多个应用服务器102通信时识别服务器状态对象。
因此,本发明的公开旨在说明,而非限制本发明的范围,本发明的范围由所附权利要求提出。

Claims (46)

1.一种方法,用于识别在基于通信协议的网络上的服务器与客户机设备之间传送的分组中的服务器状态对象,所述方法包括:
截取在服务器与客户机之间传送的多个数据分组;
计算所述多个分组中的多个数据对象的熵测量值;
根据它们的熵测量值从所述多个数据对象中选择候选数据对象;以及
响应所述候选数据对象的至少一个候选数据对象在所述服务器与所述客户机设备之间双向传送,将所述至少一个候选数据对象识别为服务器状态对象。
2.如权利要求1所述的方法,其特征在于,计算熵测量值包括:
压缩所述数据对象;以及
计算所压缩的数据对象的熵测量值。
3.如权利要求2所述的方法,其特征在于,压缩所述数据对象包括:
将具有相同名称字段的数据对象合并;以及
使用压缩算法压缩所合并的数据对象。
4.如权利要求3所述的方法,其特征在于,所述压缩算法是基于熵的压缩算法。
5.如权利要求3所述的方法,其特征在于,计算所压缩的数据对象的熵测量值包括将压缩的合并数据对象的值字段的总大小除以具有相同名称字段的数据对象的总数。
6.如权利要求1所述的方法,其特征在于,通过如下操作确定所述至少一个候选数据对象已在所述服务器和所述客户机设备之间双向传送过:
将依据所述通信协议的相关分组划分成从所述服务器传送到所述客户机设备的第一组分组和从所述客户机设备传送到所述服务器的第二组分组;以及
确定所述至少一个候选数据对象是否包括在所述第一组分组和所述第二组分组中。
7.如权利要求6所述的方法,其特征在于,所述相关分组是对应于依据所述通信协议的相关消息的分组。
8.一种方法,用于识别在基于通信协议的网络上的服务器与客户机设备之间传送的分组中的服务器状态对象,所述方法包括:
截取在服务器与客户机之间传送的多个数据分组;
剖析所述多个分组以识别多个名称-值对;
计算具有相同名称的名称-值对的熵;
选择具有高于阈值的熵的名称-值对作为所述服务器状态对象的候选项;
确定所述候选项是否在所述服务器和所述客户机设备之间双向传送过;以及
响应确定所述候选项的至少一个候选项在所述服务器与所述客户机设备之间双向传送过,确定所述至少一个候选项为服务器状态对象。
9.如权利要求8所述的方法,其特征在于,计算具有相同名称的名称-值对的熵包括:
压缩具有相同名称的名称-值对;以及
计算所压缩的名称-值对的熵。
10.如权利要求9所述的方法,其特征在于,压缩具有相同名称的名称-值对包括:
将具有相同名称的名称-值对的值字段合并;以及
使用压缩算法压缩所述名称-值对的合并的值字段。
11.如权利要求10所述的方法,其特征在于,所述压缩算法是基于熵的压缩算法。
12.如权利要求10所述的方法,其特征在于,计算所压缩的名称-值对的熵包括将所述名称-值对的压缩的合并值字段的总大小除以具有相同名称的名称-值对的总数。
13.如权利要求8所述的方法,其特征在于,确定所述候选项是否在所述服务器和所述客户机设备之间双向传送过包括:
将依据所述通信协议的相关分组划分成从所述服务器传送到所述客户机设备的第一组分组和从所述客户机设备传送到所述服务器的第二组分组;以及
确定所述候选项是否包括在所述第一组分组和所述第二组分组中。
14.如权利要求13所述的方法,其特征在于,所述相关分组是对应于依据所述通信协议的相关消息的分组。
15.一种系统,用于识别在基于通信协议的网络上的服务器与客户机设备之间传送的分组中的服务器状态对象,所述系统包括:
剖析模块,所述剖析模块截取在服务器与客户机之间传送的多个数据分组,并且剖析所述多个分组以识别多个数据对象;以及
耦合到所述剖析模块的分析模块,所述分析模块计算所述数据对象的熵测量值;根据它们的熵测量值从所述数据对象中选择候选数据对象;以及响应所述候选数据对象的至少一个候选数据对象在所述服务器与所述客户机设备之间双向传送,将所述至少一个候选数据对象识别为服务器状态对象。
16.如权利要求15所述的系统,所述剖析模块作为防火墙工作,根据所述分析模块提供的规则过滤在所述服务器和所述客户机设备之间传送的分组。
17.如权利要求15所述的系统,所述剖析模块根据所述分析模块提供的数据收集参数收集有关在所述服务器和所述客户机设备之间传送的分组的数据。
18.如权利要求15所述的系统,当从所述剖析模块接收到所述数据对象时,所述分析模块实时地处理所述数据对象以确定所述数据对象是否是服务器状态对象。
19.如权利要求15所述的系统,还包括耦合到所述分析模块的存储模块,其中所述分析模块将接收到的数据对象存储在所述存储模块中并成批地处理所存储的数据对象以确定所述数据对象是否是服务器状态对象。
20.如权利要求15所述的系统,其特征在于,所述分析模块通过如下操作计算所述数据对象的熵测量值:
压缩所述数据对象;以及
计算所压缩的数据对象的熵测量值。
21.如权利要求20所述的系统,其特征在于,所述分析模块通过如下操作压缩所述数据对象:
将具有相同名称字段的数据对象合并;以及
使用压缩算法压缩所合并的数据对象。
22.如权利要求21所述的系统,其特征在于,所述压缩算法是基于熵的压缩算法。
23.如权利要求21所述的系统,其特征在于,所述分析模块通过将所压缩的合并数据对象的值字段的总大小除以具有相同名称字段的数据对象的总数来计算所压缩的数据对象的熵测量值。
24.如权利要求15所述的系统,其特征在于,所述分析模块通过如下操作确定至少一个候选数据对象在所述服务器和所述客户机设备之间双向传送过:
将依据所述通信协议的相关分组划分成从所述服务器传送到所述客户机设备的第一组分组和从所述客户机设备传送到所述服务器的第二组分组;以及
确定所述至少一个候选数据对象是否包括在所述第一组分组和所述第二组分组中。
25.如权利要求24所述的系统,其特征在于,所述相关分组是对应于依据所述通信协议的相关消息的分组。
26.一种系统,用于识别在基于通信协议的网络上的服务器与客户机设备之间传送的分组中的服务器状态对象,所述系统包括:
剖析模块,所述剖析模块截取在服务器与客户机之间传送的多个数据分组,并且剖析所述分组以识别多个名称-值对;以及
耦合到所述剖析模块的分析模块,所述分析模块计算具有相同名称的名称-值对的熵;选择具有高于阈值的熵的名称-值对作为所述服务器状态对象的候选项;确定所述候选项是否在所述服务器和所述客户机设备之间双向传送过;以及响应确定所述候选项的至少一个候选项在所述服务器与所述客户机设备之间双向传送过,确定所述至少一个候选项为服务器状态对象。
27.如权利要求26所述的系统,其特征在于,所述剖析模块作为防火墙工作,根据所述分析模块提供的规则过滤所述服务器和所述客户机设备之间传送的分组。
28.如权利要求26所述的系统,其特征在于,所述剖析模块根据所述分析模块提供的数据收集参数收集有关在所述服务器和所述客户机设备之间传送的分组的数据。
29.如权利要求26所述的系统,其特征在于,当从所述剖析模块接收到所述名称-值对时,所述分析模块实时地处理所述名称-值对以确定所述名称-值对是否是服务器状态对象。
30.如权利要求26所述的系统,还包括耦合到所述分析模块的存储模块,其中所述分析模块将接收到的名称-值对存储在所述存储模块中并成批地处理所存储的名称-值对以确定所述名称-值对是否是服务器状态对象。
31.如权利要求26所述的系统,其特征在于,所述分析模块通过如下操作计算具有相同名称的名称-值对的熵:
压缩具有相同名称的名称-值对;以及
计算所压缩的名称-值对的熵。
32.如权利要求31所述的系统,其特征在于,所述分析模块通过如下操作压缩具有相同名称的名称-值对:
将具有相同名称的名称-值对的值字段合并;以及
使用压缩算法将所述名称-值对的合并的值字段压缩。
33.如权利要求32所述的系统,其特征在于,所述压缩算法是基于熵的压缩算法。
34.如权利要求32所述的系统,其特征在于,所述分析模块通过将所述名称-值对的压缩的合并值字段的总大小除以具有相同名称的名称-值对的总数来计算所述压缩的名称-值对的熵。
35.如权利要求26所述的系统,其特征在于,所述分析模块通过如下操作确定所述候选项是否在所述服务器和所述客户机设备之间双向传送过:
将依据所述通信协议的相关分组划分成从所述服务器传送到所述客户机设备的第一组分组和从所述客户机设备传送到所述服务器的第二组分组;以及
确定所述候选项是否包括在所述第一组分组和所述第二组分组中。
36.如权利要求35所述的系统,其特征在于,所述相关分组是对应于依据所述通信协议的相关消息的分组。
37.一种装置,用于识别在基于通信协议的网络上的服务器与客户机设备之间传送的分组中的服务器状态对象,所述装置包括:
截取部件,用于截取在服务器与客户机之间传送的多个数据分组;
计算部件,用于计算所述多个分组中的多个数据对象的熵测量值;
选择部件,根据它们的熵测量值从所述多个数据对象中选择候选数据对象;以及
识别部件,用于响应所述候选数据对象的至少一个候选数据对象在所述服务器与所述客户机设备之间双向传送,将所述至少一个候选数据对象识别为服务器状态对象。
38.如权利要求37所述的装置,其特征在于,所述计算部件还包括:
用于压缩所述数据对象的部件;以及
用于计算所压缩的数据对象的熵测量值的部件。
39.如权利要求38所述的装置,其特征在于,所述用于压缩所述数据对象的部件包括:
用于将具有相同名称字段的数据对象合并的部件;以及
用于使用压缩算法压缩所合并的数据对象的部件。
40.如权利要求39所述的装置,其特征在于,所述用于计算所压缩的数据对象的熵测量值的部件包括用于将所压缩的合并数据对象的值字段的总大小除以具有相同名称字段的数据对象的总数的部件。
41.如权利要求37所述的装置,其特征在于,通过如下部件确定所述至少一个候选数据对象已在所述服务器和所述客户机设备之间双向传送过:
划分部件,用于将依据所述通信协议的相关分组划分成从所述服务器传送到所述客户机设备的第一组分组和从所述客户机设备传送到所述服务器的第二组分组;以及
确定部件,用于确定所述至少一个候选数据对象是否包括在所述第一组分组和所述第二组分组中。
42.一种装置,用于识别在基于通信协议的网络上的服务器与客户机设备之间传送的分组中的服务器状态对象,所述装置包括:
截取部件,用于截取在服务器与客户机之间传送的多个数据分组;
识别部件,用于将所述多个分组进行剖析以识别多个名称-值对;
用于计算具有相同名称的名称-值对的熵的部件;
选择部件,选择具有高于阈值的熵的名称-值对作为所述服务器状态对象的候选项;
用于确定所述候选项是否在所述服务器和所述客户机设备之间双向传送过的部件;以及
确定部件,用于响应确定所述候选项的至少一个候选项在所述服务器与所述客户机设备之间双向传送过,确定所述至少一个候选项为服务器状态对象。
43.如权利要求42所述的装置,其特征在于,所述用于计算具有相同名称的名称-值对的熵的部件包括:
用于压缩具有相同名称的名称-值对的部件;以及
用于计算所压缩的名称-值对的熵的部件。
44.如权利要求43所述的装置,其特征在于,所述用于压缩具有相同名称的名称-值对的部件包括:
用于将具有相同名称的名称-值对的值字段合并的部件;以及
用于使用压缩算法将所述名称-值对的合并的值字段压缩的部件。
45.如权利要求44所述的装置,其特征在于,所述用于计算所压缩的名称-值对的熵的部件包括用于将所述名称-值对的压缩的合并值字段的总大小除以具有相同名称的名称-值对的总数的部件。
46.如权利要求42所述的装置,其特征在于,用于确定所述候选项是否是在所述服务器和所述客户机设备之间双向传送过的部件包括:
划分部件,用于将依据所述通信协议的相关分组划分成从所述服务器传送到所述客户机设备的第一组分组和从所述客户机设备传送到所述服务器的第二组分组;以及
用于确定所述候选项是否包括在所述第一组分组和所述第二组分组中的部件。
CNB2005800284905A 2004-06-25 2005-06-13 推断无状态通信协议中的服务器状态方法、系统及装置 Active CN100524279C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/877,362 US8051207B2 (en) 2004-06-25 2004-06-25 Inferring server state in s stateless communication protocol
US10/877,362 2004-06-25

Publications (2)

Publication Number Publication Date
CN101073071A CN101073071A (zh) 2007-11-14
CN100524279C true CN100524279C (zh) 2009-08-05

Family

ID=35786616

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005800284905A Active CN100524279C (zh) 2004-06-25 2005-06-13 推断无状态通信协议中的服务器状态方法、系统及装置

Country Status (7)

Country Link
US (2) US8051207B2 (zh)
EP (1) EP1769379B1 (zh)
JP (1) JP2008507010A (zh)
KR (1) KR20070083389A (zh)
CN (1) CN100524279C (zh)
CA (1) CA2571075A1 (zh)
WO (1) WO2006011987A2 (zh)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7594259B1 (en) * 2004-09-15 2009-09-22 Nortel Networks Limited Method and system for enabling firewall traversal
US7769579B2 (en) 2005-05-31 2010-08-03 Google Inc. Learning facts from semi-structured text
US7672971B2 (en) * 2006-02-17 2010-03-02 Google Inc. Modular architecture for entity normalization
US8244689B2 (en) * 2006-02-17 2012-08-14 Google Inc. Attribute entropy as a signal in object normalization
US7587387B2 (en) 2005-03-31 2009-09-08 Google Inc. User interface for facts query engine with snippets from information sources that include query terms and answer terms
US7953720B1 (en) 2005-03-31 2011-05-31 Google Inc. Selecting the best answer to a fact query from among a set of potential answers
US8682913B1 (en) 2005-03-31 2014-03-25 Google Inc. Corroborating facts extracted from multiple sources
US9208229B2 (en) * 2005-03-31 2015-12-08 Google Inc. Anchor text summarization for corroboration
US8239394B1 (en) 2005-03-31 2012-08-07 Google Inc. Bloom filters for query simulation
US7831545B1 (en) 2005-05-31 2010-11-09 Google Inc. Identifying the unifying subject of a set of facts
US8996470B1 (en) 2005-05-31 2015-03-31 Google Inc. System for ensuring the internal consistency of a fact repository
US7991797B2 (en) * 2006-02-17 2011-08-02 Google Inc. ID persistence through normalization
US8055674B2 (en) * 2006-02-17 2011-11-08 Google Inc. Annotation framework
US8954426B2 (en) * 2006-02-17 2015-02-10 Google Inc. Query language
US20070185870A1 (en) 2006-01-27 2007-08-09 Hogue Andrew W Data object visualization using graphs
US7925676B2 (en) * 2006-01-27 2011-04-12 Google Inc. Data object visualization using maps
US8260785B2 (en) * 2006-02-17 2012-09-04 Google Inc. Automatic object reference identification and linking in a browseable fact repository
US8700568B2 (en) 2006-02-17 2014-04-15 Google Inc. Entity normalization via name normalization
US8954412B1 (en) 2006-09-28 2015-02-10 Google Inc. Corroborating facts in electronic documents
US8122026B1 (en) 2006-10-20 2012-02-21 Google Inc. Finding and disambiguating references to entities on web pages
US20080249994A1 (en) * 2006-11-28 2008-10-09 Calder Group, Inc. System and process for server side stateless data interchange
US8347202B1 (en) 2007-03-14 2013-01-01 Google Inc. Determining geographic locations for place names in a fact repository
US8239350B1 (en) 2007-05-08 2012-08-07 Google Inc. Date ambiguity resolution
US8239751B1 (en) 2007-05-16 2012-08-07 Google Inc. Data from web documents in a spreadsheet
US7966291B1 (en) 2007-06-26 2011-06-21 Google Inc. Fact-based object merging
US7970766B1 (en) 2007-07-23 2011-06-28 Google Inc. Entity type assignment
US8738643B1 (en) 2007-08-02 2014-05-27 Google Inc. Learning synonymous object names from anchor texts
US8812435B1 (en) 2007-11-16 2014-08-19 Google Inc. Learning objects and facts from documents
US9087059B2 (en) * 2009-08-07 2015-07-21 Google Inc. User interface for presenting search results for multiple regions of a visual query
US9135277B2 (en) * 2009-08-07 2015-09-15 Google Inc. Architecture for responding to a visual query
US9203684B1 (en) 2010-07-14 2015-12-01 Google Inc. Reduction of web page load time using HTTP header compression
US10019457B1 (en) 2013-01-22 2018-07-10 Amazon Technologies, Inc. Multi-level compression for storing data in a data store
US9384204B2 (en) 2013-05-22 2016-07-05 Amazon Technologies, Inc. Efficient data compression and analysis as a service
US10936234B2 (en) * 2019-05-22 2021-03-02 Macronix International Co., Ltd. Data transfer between memory devices on shared bus
WO2023233580A1 (ja) * 2022-06-01 2023-12-07 日本電信電話株式会社 検知対処制御システム、検知対処制御方法、ハードウェアアクセラレータ、コントローラ、および、プログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5081678A (en) 1989-06-28 1992-01-14 Digital Equipment Corporation Method for utilizing an encrypted key as a key identifier in a data packet in a computer network
US6850252B1 (en) 1999-10-05 2005-02-01 Steven M. Hoffberg Intelligent electronic appliance system and method
JP3349196B2 (ja) * 1992-06-20 2002-11-20 テキサス インスツルメンツ インコーポレイテツド 対象識別システムおよび方法
US5491750A (en) 1993-12-30 1996-02-13 International Business Machines Corporation Method and apparatus for three-party entity authentication and key distribution using message authentication codes
EP0851628A1 (en) 1996-12-23 1998-07-01 ICO Services Ltd. Key distribution for mobile network
US5974151A (en) 1996-11-01 1999-10-26 Slavin; Keith R. Public key cryptographic system having differential security levels
US6154775A (en) 1997-09-12 2000-11-28 Lucent Technologies Inc. Methods and apparatus for a computer network firewall with dynamic rule processing with the ability to dynamically alter the operations of rules
US6300947B1 (en) * 1998-07-06 2001-10-09 International Business Machines Corporation Display screen and window size related web page adaptation system
US6496824B1 (en) * 1999-02-19 2002-12-17 Saar Wilf Session management over a stateless protocol
US6345307B1 (en) * 1999-04-30 2002-02-05 General Instrument Corporation Method and apparatus for compressing hypertext transfer protocol (HTTP) messages
WO2002013479A2 (en) * 2000-08-04 2002-02-14 Avaya Technology Corporation Intelligent demand driven recognition of url objects in connection oriented transactions
US7185082B1 (en) * 2000-08-09 2007-02-27 Microsoft Corporation Fast dynamic measurement of connection bandwidth using at least a pair of non-compressible packets having measurable characteristics
US20030177187A1 (en) * 2000-11-27 2003-09-18 Butterfly.Net. Inc. Computing grid for massively multi-player online games and other multi-user immersive persistent-state and session-based applications
US7024451B2 (en) * 2001-11-05 2006-04-04 Hewlett-Packard Development Company, L.P. System and method for maintaining consistent independent server-side state among collaborating servers
US6906719B2 (en) * 2002-10-12 2005-06-14 International Business Machines Corporation System and method for content-based querying using video compression format
US7647585B2 (en) * 2003-04-28 2010-01-12 Intel Corporation Methods and apparatus to detect patterns in programs
US20040249793A1 (en) * 2003-06-03 2004-12-09 Hans-Joachim Both Efficient document storage and retrieval for content servers

Also Published As

Publication number Publication date
EP1769379A4 (en) 2013-03-20
EP1769379A2 (en) 2007-04-04
EP1769379B1 (en) 2018-10-17
US20120017010A1 (en) 2012-01-19
US8521909B2 (en) 2013-08-27
WO2006011987A3 (en) 2007-08-02
JP2008507010A (ja) 2008-03-06
CN101073071A (zh) 2007-11-14
KR20070083389A (ko) 2007-08-24
CA2571075A1 (en) 2006-02-02
WO2006011987A2 (en) 2006-02-02
US8051207B2 (en) 2011-11-01
US20060047838A1 (en) 2006-03-02

Similar Documents

Publication Publication Date Title
CN100524279C (zh) 推断无状态通信协议中的服务器状态方法、系统及装置
US7680672B2 (en) Event collection architecture
US7461369B2 (en) Java application response time analyzer
CN100384180C (zh) 用于监控网络流量的方法和设备
US8095622B1 (en) Methods and systems for collecting information transmitted over a network
US20020133584A1 (en) Method and apparatus for customizably calculating and displaying health of a computer network
CN103067214B (zh) 用于测试网站性能的方法、客户端、服务器和系统
US20200372007A1 (en) Trace and span sampling and analysis for instrumented software
US8438276B1 (en) Method of monitoring network and application performance by analyzing web clients and web servers
CN106603734A (zh) Cdn服务ip检测方法和系统
US20050021731A1 (en) Traffic flow analysis method
CN108304410A (zh) 一种异常访问页面的检测方法、装置及数据分析方法
Bomhardt et al. Web robot detection-preprocessing web logfiles for robot detection
US8291066B2 (en) Method and system for transaction monitoring in a communication network
Lakshmi et al. An overview of preprocessing on web log data for web usage analysis
CN100550015C (zh) 改进的用户界面
CN104202418B (zh) 为内容提供商推荐商业的内容分发网络的方法和系统
US10826965B2 (en) Network monitoring to identify network issues
CN110245314A (zh) 一种网页指纹生成方法
CN108964967A (zh) 一种对cdn加速服务进行智能监控与分析的方法和系统
Geyer-Schulz et al. Behavior-based recommender systems as value-added services for scientific libraries
KR20050117760A (ko) 웹 스크래핑 엔진 ini 시스템
KR20100072515A (ko) 원격 서버 로그 분석 시스템 및 그 방법
Zou A four-gram unified event model for web mining
CN103780414B (zh) 一种网站访问统计方法及装置

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
ASS Succession or assignment of patent right

Owner name: CITRIX SYSTEMS INC

Free format text: FORMER OWNER: TEROS INC.

Effective date: 20131105

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20131105

Address after: American Florida

Patentee after: Citrix Systems Inc

Address before: American California

Patentee before: Teros Inc.