首页 / 专利库 / 软件 / 中间件 / 消息代理 / 用于向服务器提供客户机标识信息的系统和方法

用于向服务器提供客户机标识信息的系统和方法

阅读:2发布:2023-06-22

专利汇可以提供用于向服务器提供客户机标识信息的系统和方法专利检索,专利查询,专利分析的服务。并且一种用于提供客户机标识信息给 服务器 的系统包括智能中间设备上被配置用来创建至少一个要发送给服务器的包含客户机标识信息的带标记分组的标记器,以及服务器上被配置用来从该至少一个带标记分组获取客户机标识信息并将该客户机标识信息提供给应用程序的拦截器。在一种 实施例 中,该标记器被配置用来将客户机标识信息插入到该至少一个带标记分组的数据部分中。在另一实施例中,该标记器被配置用来将客户机标识信息插入该至少一个带标记分组的协议报头中。,下面是用于向服务器提供客户机标识信息的系统和方法专利的具体信息内容。

1.一种系统,包括:
具有输入和输出的智能中间设备,
该智能中间设备的输入能够接收客户机消息,其中该客户机消息包 括客户机标识信息,
该智能中间设备的输出能够发送服务器消息,
该智能中间设备包括标记器,该标记器能够接收客户机标识信息并 产生能够被包括在服务器消息中的带标记数据流,该带标记数据流包括 可获取的客户机标识信息;和拦截器,被配置用来从服务器消息中的带标记数据流获取客户机标 识信息并将该客户机标识信息提供给服务器上的应用程序。
2.权利要求1的系统,其中该标记器被配置用来将客户机标识信 息插入到至少一个带标记分组的数据字段中。
3.权利要求1的系统,其中该标记器被配置用来将客户机标识信 息连接到消息数据以产生带标记的数据流。
4.权利要求1的系统,其中该标记器被配置用来将客户机标识信 息插入至少一个带标记分组的协议报头中。
5.权利要求4的系统,其中该标记器还被配置用来将客户机标识 信息插入到至少一个带标记分组的TCP报头中。
6.权利要求4的系统,其中该标记器还被配置用来将客户机标识 信息插入到至少一个带标记分组的IP报头中。
7.权利要求1的系统,其中该客户机标识信息包括客户机IP地址。
8.权利要求1的系统,其中该拦截器通过下列步骤将客户机标识 信息提供给应用程序:
拦截从应用程序到该服务器的操作系统的调用,该调用包括对服务 器消息的来源的身份标识的请求,并
用包括客户机标识信息而不是服务器消息来源的身份标识的响应 回复所拦截的调用。
9.权利要求1的系统,其中该拦截器还被配置用来将服务器消息 中的消息数据提供给应用程序。
10.一种智能中间设备,包括:
代理,它具有客户机消息输入,具有代表客户机的服务器消息的输 出;和
标记器,它创建至少一个能够被包含在服务器消息中的包括可获取 客户机标识信息的带标记分组。
11.权利要求10的智能中间设备,其中该标记器被配置用来将客 户机标识信息插入到至少一个带标记分组的数据字段中。
12.权利要求10的智能中间设备,其中该标记器被配置用来将客 户机标识信息连接到服务器消息数据并且分组化所得到的数据,使得客 户机标识信息被插入到至少一个带标记分组的数据字段中。
13.权利要求10的智能中间设备,其中该标记器被配置用来将客 户机标识信息插入至少一个带标记分组的协议报头中。
14.权利要求13的智能中间设备,其中该标记器还被配置用来将 客户机标识信息插入到至少一个带标记分组的TCP报头中。
15.权利要求13的智能中间设备,其中该标记器还被配置用来将 客户机标识信息插入到至少一个带标记分组的IP报头中。
16.权利要求10的智能中间设备,其中该客户机标识信息包括客 户机IP地址。
17.一种来源-标识服务器,包括:
操作系统,被配置用来接收来自智能中间设备的服务器消息,该服 务器消息包括至少一个包含客户标识信息的带标记分组;
应用程序,被配置用来接收来自服务器消息的数据;以及
拦截器,被配置用来从带标记分组获取客户机标识信息,该拦截器 还被配置用来:
拦截从应用程序到操作系统的调用,该调用请求服务器消息的来源 的标识信息,并
用包括客户机标识信息而不是服务器消息来源的标识信息的响应 回复所拦截的调用。
18.权利要求17的来源-标识服务器,其中该应用程序是web服务 器。
19.权利要求17的来源-标识服务器,其中该应用程序是电子邮件 服务器。
20.权利要求17的来源-标识服务器,其中该客户机标识信息包括 客户机IP地址。
21.权利要求17的来源-标识服务器,其中来自智能中间设备的服 务器消息包括加密安全数据。
22.权利要求17的来源-标识服务器,其中该至少一个带标记分组 在数据字段中包含客户机标识信息。
23.权利要求17的来源-标识服务器,其中该至少一个带标记分组 在协议报头中包含客户机标识信息。
24.权利要求23的来源-标识服务器,其中该至少一个带标记分组 在TCP报头中包含客户机标识信息。
25.权利要求23的来源-标识服务器,其中该至少一个带标记分组 在IP报头中包含客户机标识信息。
26.权利要求17的来源-标识服务器,其中该拦截器被安装在应用 程序处理环境中以覆盖至少一个标准库函数。
27.权利要求17的来源-标识服务器,其中该拦截器被作为操作系 统中的可装载模安装。
28.一种方法,包括:
创建至少一个包含客户机标识信息的带标记分组作为要发送给服 务器的消息的分组;
将该消息发送给服务器;
识别出该消息中的至少一个带标记分组;
从该至少一个带标记分组获取客户机标识信息;
并将该客户机标识信息提供给服务器上的应用程序。
29.权利要求28的方法,其中创建至少一个带标记分组的步骤包 括将客户机标识信息插入该至少一个带标记分组的数据字段中。
30.权利要求28的方法,其中创建至少一个带标记分组的步骤包 括将客户机标识信息连接到消息数据并分组化所得到的数据,以使客户 机标识信息被插入到该至少一个带标记分组的数据字段中。
31.权利要求28的方法,其中创建至少一个带标记分组的步骤包 括将客户机标识信息插入该至少一个带标记分组的协议报头中。
32.权利要求31的方法,其中创建至少一个带标记分组的步骤包 括将客户机标识信息插入该至少一个带标记分组的TCP报头中。
33.权利要求31的方法,其中创建至少一个带标记分组的步骤包 括将客户机标识信息插入该至少一个带标记分组的IP报头中。
34.权利要求28的方法,其中将客户机标识信息提供给应用程序 的步骤包括:
拦截从服务器的应用程序到操作系统的调用,该调用包括对服务器 消息的来源的身份标识的请求,并
用包括客户机标识信息而不是服务器消息来源的身份标识的响应 回复所拦截的调用。
35.权利要求28的方法,还包括将初始消息数据提供给应用程序。

说明书全文

技术领域

发明一般涉及电子网络,准确地说涉及用于向服务器提供客户机 标识信息(client identifying information)的系统和方法。

背景技术

在很多客户机-服务器网络中,客户机和服务器不直接通信,而是 通过各种中间设备通信。这些设备中的有些(如web代理)终止来自客户 机的连接并打开一到服务器的新连接。当中间设备建立与服务器的连接 以代表客户机请求内容时,服务器也许不能以没有中间设备时获取请求 来源的属性的相同方式来确定请求的初始来源或者来源的其它属性,如 它的网际协议(IP)地址。通常,服务器只看到请求的直接来源是该中 间设备。
有些情况下服务器应该知道内容请求的初始来源(通常是客户机) 的IP地址。例如,服务器可能想基于客户机的IP地址执行授权过程, 或者服务器上的应用程序想用客户机IP地址作为唯一的访问者标识符 来估计市场工作的效。又如,服务器可能想根据客户机的位置改变发 送给客户机的内容。这种情况下,服务器需要知道客户机的IP地址以 向它发送适当的内容。
服务器还可以使用客户机的IP地址用于安全目的。例如,服务器 可以被配置为只向特定的可信客户机发送特定数据,或者可以被编程为 不响应来自特定地区或国家的客户机的请求。但是,为使这些安全措施 生效,服务器需要知道作为初始请求者的客户机的IP地址。
有些中间设备用来向服务器通知客户机的IP地址的一种已知技术 是使用HTTP协议中的X-Forwarded-For报头行,或者别的具有相同目 的的报头。这个报头行包含初始来源的IP地址,还可以包含在初始来 源和这个中间设备之间存在的其它中间设备的地址。在这个技术中,服 务器软件被配置成为了各种目的使用这个IP地址列表。这项技术的一 个缺点是它只能应用在诸如HTTP的几个协议中,而不能用于FTP等其 它协议。第二个缺点是对于加密安全连接(如使用SSL技术的连接),代 理将只看到加密的HTTP-级数据并且将不能修改合适的报头行。第三个 缺点是报头能够被未经授权的客户机假造。第四个缺点是缺乏透明性: 服务器软件很多都需要被重新配置或重新编程以解释并使用新的报 头,而对服务器的这些改变可能是代价很高或不可行。
另一种用于向服务器提供客户机IP地址的已知技术是请求-响应服 务,它主动地向中间设备查询其所知道的客户机的知识。在这项技术 中,服务器软件被配置用来连接到中间设备并请求客户机的IP地址。 这项技术的一个缺点是请求-回复周期占用时间并且可能产生延迟,尤 其是在服务器在为客户机准备内容之前应该知道客户机的IP地址的情 况更是如此。这项技术的另一缺点是缺乏透明性:必须对服务器编程以 启动这些查询,并对服务器进行设计以处理延迟直到应答到来。
另一用于向服务器提供客户机IP地址的已知技术是将地址信息从 中间设备离线传输到服务器。这项技术要求中间设备保存客户机连接的 日志。这项技术可能对市场研究目的有用,但它不允许服务器使用客户 机的IP地址用于授权目的或者为客户机定制内容。这项技术的一个缺 点是缺乏关于服务器数据管理过程的透明性。

发明内容

用于向服务器提供客户机标识信息的一种系统包括智能中间设备 上的标记器(tagger),它创建至少一个带标记分组(tagged packet) 以包括在服务器消息(server communication)中。服务器优选地包 括拦截器(interceptor),从该至少一个带标记分组获取客户机标识 信息并将该客户机标识信息提供给服务器上的应用程序。在一种实施例 中,该拦截器通过拦截从应用程序到服务器的操作系统的请求消息来源 的身份标识(identity)的调用,而向该应用程序提供客户机标识信息, 并用包括客户机标识信息代替消息源的身份标识的响应进行回复。该拦 截器还被配置用来向该应用程序提供初始的消息数据。
在一种实施例中,该标记器被配置用来将客户机标识信息和消息数 据连接在一起并将产生的数据分组化,产生至少一个在数据段包括客户 机标识信息的带标记分组。在另一种实施例中,标记器被配置用来通过 将客户机标识信息包括在至少一个带标记分组的协议报头中而创建至 少一个带标记分组。
用于向服务器提供客户机标识信息的一种方法包括,创建至少一个 包括客户机标识信息的带报头分组作为要包括在消息中的分组,将该带 标记分组作为消息的一部分发送到服务器,在消息中识别该至少一个带 标记分组,从该至少一个带标记分组获取客户机标识信息,并将客户机 标识信息提供给应用程序。将客户机标识信息提供给应用程序优选地包 括拦截从应用程序到服务器的操作系统的请求消息源的身份标识的调 用,并用包括客户机标识信息代替消息源的身份标识的响应回复所拦截 的调用。该方法还包括将初始的消息数据提供给服务器上的应用程序。
附图说明
图1A是依照本发明的电子网络的一个实施例的结构图;
图1B是依照本发明的电子网络的另一实施例的结构图;
图2是依照本发明的图1A中的智能中间设备的一个实施例的结构 图;
图3A是依照本发明的优选实施例的带标记分组的图;
图3B是依照本发明的带标记分组的另一实施例的图;
图4是依照本发明的图1A的来源-标识服务器的一种实施例的结构 图;
图5是依照本发明的一个实施例的用于获取客户机标识信息的方法 步骤的流程图

具体实施方式

图1A是依照本发明的电子网络100的一种实施例的结构图。网络 100包括但不限于客户机110、网络112、智能中间设备114、网络116 以及来源-标识服务器118。客户机110通过网络112向智能中间设备 114发送一客户机消息(client communication),其通常包含对内 容的请求。智能中间设备114终止来自客户机110的连接,然后在另一 个连接上通过网络116向来源-标识服务器118发送一服务器消息,其 通常包含对内容的请求。来源-标识服务器118根据该请求产生内容, 然后将产生的内容发送到智能中间设备114,智能中间设备114随后将 该内容发送给客户机110。在图1A的实施例中,客户机110、智能中间 设备114以及来源-标识服务器118根据在传输和网络层上包括 TCP/IP(网际协议之上的传输控制协议)的协议栈通信。智能中间设备 114可以是在客户机和服务器之间建立单独连接的任意类型的联网设 备,例如代理、任意类型的代理服务器、服务器负载均衡装置以及安全 套接字协议层(Secure Socket Layer,SSL)网关。美国专利申请 09/534,321号,题为“Method for High-Performance Delivery of Web Content”中说明了这种中间设备的其它例子,在此通过全文参考 引入该申请的公开。
智能中间设备114可以修改发送到来源-标识服务器118的服务器 消息以包括客户机110的标识信息。智能中间设备114可以修改初始消 息数据以包括客户机标识信息,或者修改服务器消息的协议报头以包括 客户机标识信息,或者修改这些数据的一些组合。下面结合图2说明优 选的智能中间设备114的内容和功能。优选的来源-标识服务器118从 服务器消息获取客户机110的标识信息并将它提供给适当的应用程序。 下面结合图4说明来源-标识服务器118的内容和功能。
图1B是依照本发明的电子网络120的另一实施例的结构图。网络 120包括但不限于客户机122、客户机124、客户机126、网络128、智 能中间设备114、网络130、服务器132、服务器134以及来源-标识服 务器118。在图1B的实施例中,智能中间设备114能够通过网络128 从客户机122、124和126中的任意一个接收客户机消息。对于每个客 户机消息,智能中间设备114确定服务器132、服务器134或来源-标 识服务器118中的哪一个应该接收信息(如代表客户机的对内容的请 求),然后确定服务器消息是否应该包括客户机标识信息。对于打算发 送给来源-标识服务器118的信息,智能中间设备114准备包括客户机 标识信息的服务器消息。对于打算发送给服务器132或134的信息,智 能中间设备114准备不包括客户机标识信息的服务器消息,因为服务器 132和服务器134不是来源-标识服务器。
图2是依照本发明的图1A的智能中间设备114的一个实施例的结 构图。智能中间设备114包括但不限于代理210、标记器212和OS(操 作系统)内核214。代理212充当来源-标识服务器118的代理,代表 来源-标识服务器118接收并响应对内容的请求。对于没有被缓存在智 能中间设备114的内容或者必须从来源-标识服务器118获取的内容, 代理210建立到来源-标识服务器118的连接以请求想要的内容。
客户机110建立与智能中间设备114的连接并将对内容的请求发送 到智能中间设备114。在建立连接中,客户机110传递标识信息(它可 能包括IP地址)给智能中间设备114。只要在一个端点(如客户机110) 和另一端点(如中间设备114)之间有直接连接,IP协议的一个内置属性 是每个端点都能够知道对方的IP地址。但是,实现这个所用的特定机 制(IP报头中的一个标准的专用字段)不能也用来记录该连接中没有作 为直接端点涉及的其它主机的身份标识。代理210终止来自客户机110 的连接,并准备要发送给来源-标识服务器118的包括内容请求的服务 器消息。标记器212修改该服务器消息以包括客户机110的标识信息, 产生带标记数据,该带标记数据随后被OS内核214分组化以产生带标 记数据流。下面结合图3A和图3B说明用于产生带标记数据流(包含客 户机标识信息)的技术。标记器212可以实现为硬件、软件、固件或者 它们的组合。在标记器212的包括软件的实现中,该软件可以被实现在 OS内核214中,在系统的网络栈软件中,在非内核应用程序中,或者 它们的组合中。在智能中间设备114的另一实施例中,标记器212的功 能被并入到了代理210中。
图3A是依照本发明的优选实施例的带标记分组310的图。带标记 分组310是带标记数据流中的第一个数据携带(data-bearing)分组。 在这个实施例中,标记器212将客户机标识信息连接到初始服务器消息 数据前面,然后将产生的带标记数据转发到OS内核214,OS内核214 将带标记数据分组化以形成带标记数据流。带标记分组310包括但不限 于数据链路报头312、包括IP选项字段(未示出)的IP报头314、包括 TCP选项字段(未示出)的TCP报头316以及数据字段318。包括客户机 IP地址320、识别模式322和校验和324的客户机标识信息位于带标记 分组310的数据字段318中。客户机IP地址320是以来源-标识服务器 118被配置用来识别(如)数字或名字的方式格式化的客户机110的IP 地址。格式化方式包括识别模式322和校验和324,还可以包括其它字 段(未示出)。认别模式322帮助来源-标识服务器118将带标记分组310 识别为是带标记数据流的一部分的分组。校验和324帮助来源-标识服 务器118验证客户机标识信息未被破坏。
在另一实施例中,可以用加密签名来代替或补充识别模式322和校 验和324,加密签名允许来源-标识服务器118识别带标记分组310所 属数据流已经被加标记,从而预防破坏,并进一步验证客户机标识信息 是由授权过的或可信的实体插入的。在这个实施例中,可以使用公共密 钥加密方法和数字签名技术。
在另一实施例中,忽略了识别模式322和校验和324之一或全部。 例如,当认为破坏机率非常低时,可以忽略校验和324。当来源-标识服 务器118能够确定数据流已经被加上标记以包括客户机标识信息时可以 忽略识别模式322。如果识别模式322和校验和324都被忽略,来源- 标识服务器118可以被配置为根据智能中间设备114的IP地址识别智 能中间设备114,并假定来自智能中间设备114的数据流总是包括客户 机标识信息。来源-标识服务器118还可以被配置为在与来自其它设备 的未加标记的数据流不同的TCP/IP端口上从智能中间设备114接收带 标记数据流。
回到图3A,客户机IP地址320和它用于识别模式322和校验和324 的相关数据字段被示为带标记数据流的第一数据携带带标记分组310中 的初始数据。认识到TCP/IP分解(fragmentation)和分组化的标准 过程可能导致客户机标识信息被分散到带标记数据流的前面若干个数 据携带分组上,尤其是在客户机标识信息超出单个分组的容量时。例 如,带标记分组310可以通过网络116中的IP路由器传递,该IP路由 器可以将带标记分组310分解成两个更小的分组,每个包含带标记分组 310中的客户机标识信息的一部分。或者,数据字段318可以包括客户 机标识信息和一部分初始消息数据,取决于带标记分组310的大小。
当包含客户机标识信息的服务器消息被根据图3A分组化以产生带 标记数据流时,来源-标识服务器118为成功获取客户机标识信息不必 需对它的操作系统内核的改动。标记器212能够简单地将客户机标识信 息直接写入数据流作为初始消息数据之前的附加消息数据。初始消息数 据的内容和格式无关紧要,因而其可以被加密。
图3B是依照本发明的带标记分组1310的另一实施例的图。在这个 实施例中,标记器212修改分组化的服务器消息的协议报头以产生带标 记数据流。带标记分组1310包括但不限于数据链路报头1312、包括IP 选项字段1330的IP报头1313、包括TCP选项字段1332的TCP报头 1316和数据字段1318。在这个实施例中,客户机110的标识信息被插 入IP选项字段1330或TCP选项字段1332。在这个实施例中,来源- 标识服务器118的操作系统内核必须配置为从合适的报头选项字段标识 和去除客户机标识信息。在这个实施例中,插入到IP选项字段1330或 TCP选项字段1332的客户机标识信息可以如图3A所示被格式化为带识 别模式和校验和的客户机IP地址。在其它实施例中,可以忽略识别模 式和校验和之一或全部,可以使用加密签名或其它辅助数据帮助来源- 标识服务器118稳定安全地获取所提供的客户机标识信息。
在带标记分组1310的另一实施例中,可以将客户机标识信息和相 关辅助数据的一些或全部编码到IP报头1313中的固定字段而不是IP 选项字段1330中,或者编码到TCP报头1316中的固定字段而不是TCP 选项字段1332中。例如,可以使用TCP″urgent″标志(TCP报头1316 中的一位)和″urgent″指针(TCP报头1316中的另外16位)表示这个分 组属于一包括客户机标识信息的带标记数据流,并且编码客户机标识信 息或辅助数据的某部分。当来源-标识服务器118不可能错解它们且不 正确地处理带标记数据流时可以用这种方式使用分组报头中的固定字 段。例如,web服务器通常不会被设计为期望或处理TCP紧急数据 (urgent),因此使用urgent位和urgent指针用于非标准目的(例如编 码客户机标识信息)在不同web环境中是可以接受的。
尽管只示出了一个带标记分组1310,但可以根据IP选项字段 1330、TCP选项字段1332的大小、智能中间设备114和网络116之间 的连接或者网络116中的结点和连接的能力将客户机标识信息分解到若 干带标记分组上。
图4是依照本发明的图1A的来源-标识服务器118的一个实施例的 结构图。来源-标识服务器118包括但不限于应用程序412、拦截器414 和操作系统(OS)内核416。尽管图4将应用程序412和拦截器414示为 完全和OS内核416分开,但在其它实施例中应用程序412和/或拦截器 414可以被部分和OS内核416集成在一起。然而,应用程序412通常 不是内核组件,但通过系统调用和中断等机制利用内核服务。应用程序 412被配置用来向智能中间设备114等远程设备提供内容。应用程序412 的示范实现包括HTTP程序、SMTP应用程序或FTP应用程序。拦截器414 被配置用来拦截从智能中间设备114接收到的消息并确定任意数据流是 否已被标记器212处理过以包括客户机标识信息。在来源-标识服务器 118的这个实施例中,拦截器414被配置用来识别由标记器212根据图 3A中的实施例产生的带标记数据流。当拦截器414识别出带标记数据 流时,它从带标记数据流获取客户机标识信息。拦截器414然后将客户 机标识信息提供到应用程序412或为应用程序412提供查询客户机标识 信息的方法。拦截器414还重新构造出在由标记器212处理之前数据流 的初始消息数据。例如,拦截器414重新构造出在标记器212处理之前 代理210准备的初始请求消息。拦截器然后将重新构造出的初始消息数 据发送给应用程序412。
在一个实施例中,拦截器414只在来自可信来源的连接上查找带标 记数据流。例如,智能中间设备114可以是来源-标识服务器118的已 知代理并且是可信来源。其它网络设备(未示出)可以打开与来源-标识 服务器118的连接,如果那些设备不是可信来源,拦截器414将不查看 在那些连接上到来的分组。
在典型的服务器中,应用程序调用OS内核以从OS内核中的新连接 队列取得下一个可用连接。例如,应用程序可以激活″accept″系统调 用,它是用于向应用程序提供新连接的最常见的接口。OS内核用连接 的身份标识(如套接字号)回复accept系统调用,随后应用程序可以用 该连接身份标识调用其它系统调用(例如″read″)以从该连接获取数据 进行处理。应用程序还可以在该连接上向远程设备(例如智能中间设备 114)发送数据。
通常,当OS内核用新连接回复accept调用时,它还提供了所连接 的远程设备的身份标识,例如IP地址。或者,应用程序可以使用明确 的查询系统调用向OS内核请求该连接的属性,例如所连接的远程设备 的身份标识。像accept这样的系统调用或者查询连接属性的系统调用 通常包括OS内核应该写入所连接的远程设备的标识信息的缓冲区的地 址。通常,OS内核响应该调用并将所连接的远程设备的标识信息写入该 缓冲区。对OS内核的调用的特定格式取决于OS内核的特定实现。accept 调用尽管被广泛使用,但只是应用程序可以用来访问并利用网络连接的 接口的一个例子。
在来源-标识服务器118中,应用程序412调用OS内核416以从 OS内核416中的新连接队列取得下一个可用的连接。拦截器414拦截 到这个调用,并将它自己的调用发送到内核416以获取下一可用连接。 如果有任何可用的连接,OS内核416用一个这样的连接的连接身份标 识以及所连接的远程设备的IP地址响应。拦截器414还可以有一个内 部存储的″pending″连接队列,该队列记录了连接身份标识和所连接的 远程设备的IP地址。未决(pending)的连接是先前由OS内核416传递 给拦截器414但还没有报告给应用程序412的连接。对于新报告的新连 接或未决的连接,拦截器414对OS内核416进行另一系统调用以从该 新连接读取到来的数据。拦截器414查看该连接上到来的数据以确定该 数据流是否已经用客户机标识信息加上了标记。在这个实施例中,拦截 器414使用″PEEK″形式的read系统调用,该系统调用检查内核缓冲 区中连接上的未决数据但不会将该数据从内核缓冲区去除。
如果拦截器414确定该数据流没有被用客户机标识信息加上标记, 例如没有在数据中的正确位置上看到正确的识别模式,拦截器414将新 连接身份标识和所连接的远程设备的IP地址转发到应用程序412,就 象从OS内核416接收到它们一样。如果拦截器414在到来的数据中识 别出适当的识别模式或其它标记并看到编码的客户机标识信息完整地 位于到来的数据中,拦截器414再次用read系统调用的非-PEEK版本 重新从到来的数据读取客户机标识信息以使客户机标识信息被从OS内 核416的未决数据队列去除。拦截器414然后将新连接身份标识转发到 应用程序412,并用获取的客户机标识信息而不是由OS内核416报告 的所连接的远程设备的地址来填充应用程序412所提供的缓冲区。拦截 器414还在内部存储装置中存储了连接身份标识和获取的客户机标识信 息之间的关联,并且将这个记录标记为非一未决的。
如果在拦截器414从OS内核416接收到一个新连接时,在OS内核 416的缓冲区中对这个连接没有足够的未决数据来确定这个数据流是否 已经被加上标记,或者虽然该数据流已经被加上标记但客户机标识信息 不完整,则拦截器414不返回该新连接身份标识给应用程序412,而是 将该连接身份标识以及所连接的远程设备的地址记录在内部存储装置 中,并且标记该记录为未决的。
应用程序412还可以调用OS内核416以请求在该连接另一端的远 程设备的身份标识。这可以是像″accept″中对下一可用连接的初始调 用的一部分,或者是一个单独的调用,取决于OS内核416的实现。拦 截器414截住该调用,该调用包括用于远程设备身份标识的缓冲区地 址。拦截器414在它的内部存储装置中查找匹配所提供的连接身份标识 和相关客户机标识信息的记录。如果找到这样的记录,拦截器414用所 存储的获取到的客户机标识信息填充该缓冲区并将这返回给应用程序 412。如果没有找到这样的记录,拦截器414将该调用转发到OS内核 416以获得远程设备的身份标识,并且OS内核通过将智能中间设备114 的身份标识(identity)写入该缓冲区而响应。在这个实施例中,拦截 器414透明地将客户机标识信息提供给应用程序412,因为应用程序412 不知道它接收到的对它的调用的响应已经被拦截器修改过。
拦截器414的其它实施例可以包括不同的实现细节。根据OS系统 调用API的细节以及需要完全透明的支持的程度,可能有很多系统调用 都必须被拦截器414截住。例如,如果拦截器414被配置用来缓冲它接 收到的不带标记的数据供应用程序412以后取用,拦截器414可以使用 非-PEEK系统读取未决数据。拦截器414的其它实施例可能还需要同样 被拦截的与数据读取有关的系统调用,这样拦截器414就有机会在必要 的时从内部存储装置返回数据。
应用程序412可以接着使用缓冲区中的客户机110的标识信息用于 任何目的。例如,应用程序412可以使用客户机110的身份标识确定对 请求的响应中的适当内容,或者可以确定客户机110是否被授权接收所 请求的内容。应用程序412还可以将客户机110的身份标识添加到唯一 访问者的日志中。
在一个实施例中,拦截器414是在应用程序412的启动序列中预先 装载的共享库,使得所选择的系统调用被该库代码所拦截。可能需要配 置拦截器414的特定实现以和应用程序412(如HTTP web服务器或SMTP 邮件服务器)和OS内核416(如Windows或Linux)的各个特定实现对 接。例如,OS内核416的各个特定实现适应唯一格式化的调用。配置 拦截器414以和应用程序412和OS内核416的特定实现对接的技术在 本领域中是众所周知的。
在来源-标识服务器118的该实施例中,不需要对应用程序412或 OS内核416有任何变化以将客户机110的身份标识提供给应用程序 412。这样能够轻松配置来源-标识服务器118以包括拦截器414。另外, 来源-标识服务器118接收到的加密安全数据不受拦截器414的功能影 响。在另一实施例中,可以通过对应用程序412的代码的直接修改实现 拦截器414的功能。
为了处理如图3B中的带标记分组1310这样的带标记分组(其中客 户机标识信息被嵌入在了低级别分组报头中),来源-标识服务器118的 实施例通常需要一些内核-级的访问。拦截器414的一种可选实施例是 被配置用来从应用程序412直接接收系统调用然后或将初始系统调用 转发给OS内核416或如上所述修改它们的可装载内核模。在另一实 施例中,OS内核416被直接修改从而更新系统调用的初始实现以具有 拦截器414的功能。
图5是依照本发明的一个实施例用于获取客户机标识信息的方法步 骤的流程图。在步骤512中,来源-标识服务器118建立与智能中间设 备114的连接。在步骤514,来源-标识服务器118开始在该连接上接 收数据流的分组。在步骤516,拦截器414查看前几个分组中的数据以 确定这些分组是否是带标记分组。如果拦截器414没有识别出任何带标 记分组,该方法继续到步骤518,在那里拦截器414不做任何修改地将 来自该连接上的分组的所有数据传递给应用程序412。
如果拦截器414识别出至少一个带标记分组,在步骤520中拦截器 414将客户机标识信息从带标记分组去除直到所有客户机标识信息都被 读取为止。在步骤522中,拦截器414将来自该连接的分组的剩余数据 传递给应用程序412。
上面已经参考具体的实施例阐述了本发明。但是,显然在不偏离所 附权利要求中阐明的本发明的广义精神和范围的前提下可以对其进行 各种修改和变化。因此,前面的说明和图将被看作是说明性而非限制性 目的。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈