掌桥专利:专业的专利平台
掌桥专利
首页

用于管理网络通信会话的系统和方法

文献发布时间:2023-06-19 12:14:58


用于管理网络通信会话的系统和方法

技术领域

本公开一般涉及管理网络通信会话。

背景技术

信息安全领域中有很多产品和技术可以执行用于本地网络流量监控和过滤的深度包检测(DPI)。这些产品和技术包括防病毒软件、入侵防御系统(IPS)、数据泄漏防护(DLP)等。为了能够执行DPI,需要一种拦截数据包的机制。具体根据检测的目标,有多种拦截技术可用。例如,如果目标是生成数据包的浏览器,则通常可以通过浏览器扩展、API挂钩、内核模式下的网络过滤器驱动程序或其他机制来执行拦截。

在现代操作系统中,以“用户模式”运行的代码和以“内核模式”运行的代码之间是存在差异的。内核模式对资源具有完全访问权。这是操作系统内核运行所采用的模式。内核是指计算机操作系统的核心,具有对系统的完全控制。用户模式对资源具有受限访问权。由操作系统启动的进程(系统“进程”除外)以用户模式运行。在用户模式下,程序不能直接修改分页,因此除了通过API或类似函数外,无法访问其他程序的存储器。用户模式下的程序也不能干扰中断和上下文切换。本地代理是在用户模式中驻留的应用。本地代理是面向因特网的代理,用于从范围广泛的来源(在大多数情况下,因特网上的任何位置)检索数据。

在用户模式和内核模式之间传递信息时,本地代理可以通过用户模式和内核模式I/O API从多个会话中获得多个数据包,其中本地代理对这些数据包执行DPI。然后本地代理将数据包解复用到具有不同远程服务器地址的每个会话。同时,当本地代理接收到来自多个远程服务器的回复时,本地代理则将这些回复复用到用户/内核I/O中以向下发送到内核模式。当内核模式接收到回复时,它将数据包解复用到来源于浏览器的不同会话,并将对应的回复数据包反馈给会话。还执行网络会话映射。除了数据包内容之外,网络会话还可以由以下四元组元素定义:源IP、源端口、目的地IP和目的地端口。因此,不可能存在两个不同的会话具有完全相同的源IP、源端口、目的地IP和目标端口。四元组元素是会话的标识符,并且当数据包从一处移动到另一处时,会附加到数据包。会话的入站或出站数据包可以通过此四元组进行映射。创建会话表以管理在内核模式下以及本地代理中的全部活动会话。

发明内容

系统和方法的一种或多种实现方式涉及在无需复用、解复用以及不需要会话表的情况下管理网络通信会话。本文提出的一种或多种技术可以将本地代理配置成从内核模式获得并处理数据包内容。这些技术可以使得在无需复用的情况下管理和实现本地代理功能更容易。这些技术还可以实现用于本地代理处理数据包内容的开销更少。可以通过操控存储在网络会话的四元组元素中的信息来实现一种或多种技术。

本公开的一个方面涉及一种用于管理网络通信会话的方法。该方法可以包括:由一个或多个处理器的第一工作模式下运行的驱动程序从客户端应用获得信息,以通过网络传送到外部实体,该信息包含会话信息和内容信息,该内容信息定义该客户端应用与该外部实体之间的通信的内容,该会话信息包含一组会话参数的一组参数值;由该驱动程序将该会话信息和该内容信息通过本地代理的本地监听端口重定向到该一个或多个处理器的第二工作模式下运行的该本地代理,该重定向包括修改该会话信息以生成修改的会话信息;在该本地代理处获得该修改的会话信息和该内容信息;以及通过修改该修改的会话信息来建立该本地代理与该外部实体之间的通信信道,以将该内容信息传送到该外部实体。

本公开的另一个方面涉及一种用于管理网络通信会话的方法。该方法可以包括:由该一个或多个处理器的第一工作模式下运行的本地代理从外部实体获得信息,以通过网络传送到客户端应用,该信息包含会话信息和内容信息,该内容信息定义该外部实体与该客户端应用之间通信的内容,该会话信息包括一组会话参数的一组参数值;由该本地代理通过本地代理的本地监听端口将该会话信息和该内容信息重定向到该一个或多个处理器的第二工作模式下运行的驱动程序,该重定向包括修改该会话信息以生成修改的会话信息;在该驱动程序处获得该修改的会话信息和该内容信息;以及通过修改该修改的会话信息将该内容信息传送到该客户端应用。

本公开的另一个方面涉及一种用于管理网络通信会话的系统。该系统可以包括一个或多个处理器和存储指令的存储器。这些指令在被该一个或多个处理器执行时可以使该系统执行以下操作:由该一个或多个处理器的第一工作模式下运行的驱动程序,从客户端应用获得信息,以通过网络传送到外部实体,该信息包含会话信息和内容信息,该内容信息定义该客户端应用与该外部实体之间的通信的内容,该会话信息包含一组会话参数的一组参数值;由该驱动程序将该会话信息和该内容信息通过本地代理的本地监听端口重定向到该一个或多个处理器的第二工作模式下运行的该本地代理,该重定向包括修改该会话信息以生成修改的会话信息;在该本地代理处获得该修改的会话信息和该内容信息;以及通过修改该修改的会话信息来建立该本地代理与该外部实体之间的通信信道,以将该内容信息传送到该外部实体。

在一些实施例中,该一组会话参数包括源IP参数、源端口参数、目的地IP参数和目的地端口参数。该组参数值包括:源IP参数的本地IP地址值、源端口参数的客户端应用的本地端口值、目的地IP参数的外部实体IP地址值以及目的地端口参数的HTTP端口值。

在一些实施例中,修改会话信息以生成修改的会话信息包括:将该外部实体IP地址值替换为该本地IP地址值,以使该本地IP地址值为该修改的会话信息中该目的地IP参数的值;将该HTTP端口值替换为该本地代理的监听端口值,以使该监听端口值为该修改的会话信息中该目的地端口参数的值;将该源IP参数的该本地IP地址值替换为该外部实体IP地址值,以使该外部实体IP地址值为该修改的会话信息中该源IP参数的值;以及保持该修改的会话信息中该源端口参数的该客户端应用的该本地端口值。

在一些实施例中,将该会话信息和该内容信息重定向到该本地代理的该本地监听端口包括通过该本地代理的该本地监听端口将该修改的会话信息和该内容信息从该驱动程序传送到该本地代理。

在一些实施例中,在该本地代理处,修改该修改的会话信息生成外部会话信息。该修改包括:将该修改的会话信息中该目的地端口参数的该监听端口值替换为该HTTP端口值,以使该HTTP端口值为该外部会话信息中该目的地端口参数的值;将该修改的会话信息中该目的地IP参数的该本地IP地址值替换为该外部实体IP地址值,以使该外部实体IP地址值为该外部会话信息中该目的地IP参数的值;将该修改的会话信息中该源端口参数的该客户端应用的该本地端口值替换为本地代理外部会话客户端套接字端口值,以使该本地代理外部会话客户端套接字端口值为该外部会话信息中该源端口参数的值;以及将该修改的会话信息中该源IP参数的该外部实体IP地址值替换为该本地IP地址值,以使该本地IP地址值为该外部会话信息中该源IP参数的值。

在一些实施例中,该本地代理与该外部实体之间的该通信信道可以通过该外部会话信息来建立。

本公开的另一个方面涉及一种用于管理网络通信会话的系统。该系统可以包括一个或多个处理器和存储指令的存储器。这些指令在被该一个或多个处理器执行时可以使该系统执行以下操作:由该一个或多个处理器的第一工作模式下运行的本地代理从外部实体获得信息,以通过网络传送到客户端应用,该信息包含会话信息和内容信息,该内容信息定义该外部实体与该客户端应用之间通信的内容,该会话信息包括一组会话参数的一组参数值;由该本地代理将该会话信息和该内容信息通过本地代理的本地监听端口重定向到该一个或多个处理器的第二工作模式下运行的驱动程序,该重定向包括修改该会话信息以生成修改的会话信息;在该驱动程序处获得该修改的会话信息和该内容信息;以及通过修改该修改的会话信息将该内容信息传送到该客户端应用。

在一些实施例中,该一组会话参数包括源IP参数、源端口参数、目的地IP参数和目的地端口参数,以及该组参数值包括:源IP参数的外部实体IP地址值、源端口参数的HTTP端口值、目的地IP参数的本地IP地址值以及目的地端口参数的本地代理外部会话客户端套接字端口值。

在一些实施例中,修改会话信息以生成该修改的会话信息包括:将本地代理外部会话客户端套接字端口值替换为该客户端应用的本地端口值,以使该客户端应用的该本地端口值为该修改的会话信息中该目的地端口参数的值;将该本地IP地址值替换为该外部实体IP地址值,以使该外部实体IP地址值为该修改的会话信息中该目的地IP参数的值;将该HTTP端口值替换为该本地代理的本地监听端口值,以使该本地监听端口值为该修改的会话信息中该源端口参数的值;以及将该源IP参数的该外部实体IP地址值替换为本地IP地址值,以使该本地IP地址值为该修改的会话信息中该源IP参数的值。

在一些实施例中,修改该修改的会话信息生成内部会话信息。该修改包括:将该修改的会话信息中该目的地IP参数的该外部实体IP地址值替换为该本地IP地址值,以使该本地IP地址值为该内部会话信息中该目的地IP参数的值;将该修改的会话信息中该源端口参数的该监听端口值替换为该HTTP端口值,以使该HTTP端口值为该内部会话信息中该源端口参数的值;以及将该修改的会话信息中该源IP参数的该本地IP地址值替换为该外部实体IP地址值,以使该外部实体IP地址值为该内部会话信息中该源IP参数的值。

本文公开的系统、方法和非暂时性计算机可读介质的这些和其他特征,以及结构的相关元件的操作方法和功能以及部件的组合和制造经济参考附图考虑以下描述和所附权利要求将变得更加明显,所有这些都构成本说明书的一部分,其中相同的附图标记表示各个图中的对应部分。然而,应清楚地理解,附图仅用于说明和描述的目的,并不旨在作为本发明的限制的定义。应当理解,如所要求地,前述一般描述和以下详细描述仅是示例性和说明性的,并不限制本发明。

附图说明

通过参考附图,可以更容易地理解本发明的优选的和非限制性实施例,其中:

图1图示根据本公开的多种实施例的用于管理网络通信会话的示例环境。

图2图示根据本公开的多种实施例的管理网络通信会话的示例流程图。

图3图示根据本公开的多种实施例的管理网络通信会话的示例流程图。

图4图示根据本公开的多种实施例的与管理网络通信会话关联的特征和/或功能的示意图。

图5图示根据本公开的多种实施例的与管理网络通信会话关联的特征和/或功能的示意图。

图6图示其中可以实施本文所述的实施例中的任何实施例的示例性计算机系统的框图。

具体实施方式

现在将参考附图描述本发明的具体的非限制性实施例。应当理解,本文公开的任何实施例的特定特征和方面可以与本文公开的任何其它实施例的特定特征和方面一起使用和/或组合。还应当理解,这种实施例作为实例,仅是对本发明范围内的少量实施例的说明。对于本发明所属领域的技术人员来说显而易见的各种改变和修改被认为在如所附权利要求书中进一步限定的本发明的精神、范围和构思之内。

本文公开的方法改进了管理网络通信会话的计算系统的功能。本文提出的一种或多种技术可以将本地代理配置成从内核模式获得并处理数据包内容。这些技术可以使得在无需复用的情况下更容易地管理和实现本地代理功能,从而在客户端应用和外部实体之间提供更快且更有效率的连接。这些技术还可以实现本地代理用于处理数据包内容的开销更少(例如,更高效率)。可以通过操控存储在网络会话的四元组元素中的信息来实现一种或多种技术。

图1图示根据多种实施例的用于管理网络通信会话的示例系统100。示例系统100可以包括计算系统102和/或其他部件。计算系统102可以包含一个或多个处理器和存储器(例如,永久存储器、临时存储器)。一个或多个处理器可以被配置为通过翻译存储在存储器中的机器可读指令来执行各种操作。计算系统102可以包含其它计算资源。计算系统102可以有权访问(例如,经由一个或多个连接,经由一个或多个网络)参与系统100的其他计算资源或其他实体。

计算系统102可以包括应用部件104、第一工作模式部件106、第二工作模式部件108或其他部件的其中之一或组合。虽然在图1中将计算系统102示出为单个实体,这仅是为了便于参考而不意指是限制性的。本文所述的计算系统102的一个或多个组件或一个或多个功能可以在单个计算装置或多个计算装置中实施。在一些实施例中,可以在一个或多个网络、一个或多个端点、一个或多个服务器或一个或多个云中实现本文描述的计算系统102的一个或多个部件或一个或多个功能。

应用部件104可以运行客户端应用。客户端应用可以包括配置成在计算系统102内提供特征和/或功能的软件程序。作为非限制性说明,客户端应用可以帮助实现通过网络(例如因特网)获得信息、通过网络发送信息或其他功能。客户端应用可以包括例如Web浏览器、文件传输协议(FTP)客户端、电子邮件客户端、远程登陆(Telnet)客户端、动态主机配置协议(DHCP)客户端或其他客户端应用。客户端应用可以通过网络会话与外部实体(例如,计算系统102外部的实体)通信。作为非限制性说明,外部实体可以包括远程服务器,例如Web服务器。运行客户端应用可以生成会话信息、内容信息或会话信息与内容信息的组合。内容信息可以定义客户端应用与外部实体之间的通信内容。内容信息或内容信息与会话信息的组合可被称为“数据包”。会话信息可以包括一组会话参数的一组参数值。该组会话参数可以包括四元组元素。四元组元素可以是会话的标识符,且在内容从一处移动到另一处时被附加到内容信息。会话的入站或出站数据包可以通过此四元组进行映射。例如,该一组会话参数可以包括源IP参数、源端口参数、目的地IP参数和目的地端口参数的其中之一或组合。

在通信为出站时(例如,从客户端应用到外部实体)时,该组参数值可以包括源IP参数的本地IP地址值、源端口参数的客户端应用的本地端口值、目的地IP参数的外部实体IP地址值和目的地端口参数的HTTP端口值的其中之一或组合。本地IP地址值可以包括计算系统102的因特网协议(IP)地址。客户端应用的本地端口值可以包括客户端应用的客户端套接字端口。作为非限制性说明,对于Web浏览器,客户端应用的本地端口值可以包括浏览器的客户端套接字端口。外部实体IP地址值可以包括外部实体的IP地址(例如,远程服务器IP地址)。HTTP端口值可以包括超文本传输协议(HTTP)的端口号,例如HTTP端口80。

内容信息可以定义客户端应用与外部实体之间的通信内容。当通信是出站时,内容可以包括输入到客户端应用的信息、命令、信息请求或其他内容的其中之一或组合。例如,对于电子邮件客户端,内容信息可以包括电子邮件报头、电子邮件正文、附件或其他内容的其中之一或组合。例如,对于浏览器,内容信息可以包括HTTP命令、报头、属性、消息、超链接或其他内容的其中之一或组合。

第一工作模式部件106可以配置成管理计算系统102的第一工作模式。第一工作模式可以包括内核模式。内核模式可以运行内核驱动程序用于数据包拦截。内核驱动程序可以是内核模式下的网络过滤器驱动程序。驱动程序可以包括操作或控制特定类型的设备或程序的计算机程序,该设备或程序可连接到或被包含在计算系统102中。

第一工作模式部件106可以通过在第一工作模式下运行的内核驱动程序从客户端应用(例如,由应用部件104运行的)获得信息以通过网络传送到外部实体。该信息可以包括会话信息、内容信息或会话信息与内容信息的组合。如上所述,会话信息可以包括用于出站通信的会话信息。

第一工作模式部件106可以通过内核驱动程序将会话信息、内容信息或会话信息与内容信息的组合重定向到计算机系统102的第二工作模式下运行的本地代理。第二工作模式可以包括用户模式。可以通过本地代理的本地监听端口执行重定向。重定向可以包括修改会话信息以生成修改的会话信息。端口可以指通信的端点。监听端口可以包括本地代理中可能是未用的端口。

在一些实施例中,修改会话信息以生成修改的会话信息包括以下操作的其中之一或组合:将该目的地IP参数的该外部实体IP地址值替换为该本地IP地址值,以使该本地IP地址值为该修改的会话信息中该目的地IP参数的值;将该目的地端口参数的该HTTP端口值替换为该本地代理的监听端口值,以使该监听端口值为该修改的会话信息中该目的地端口参数的值;将该源IP参数的该本地IP地址值替换为该外部实体IP地址值,以使该外部实体IP地址值为该修改的会话信息中该源IP参数的值;以及保持该修改的会话信息中该源端口参数的该客户端应用的该本地端口值。通过替换这些值,现在可以将数据包通过该代理的监听端口重定向到本地代理。这些技术使系统能够免去缓存/复用/解复用/会话映射,并提供客户端应用与外部实体之间的更快且更有效率的连接。这些技术还可以实现本地代理用于处理数据包内容的开销更少(例如,更高效率)。本地代理可以对其接收的数据包执行DPI。

在一些实施例中,将会话信息、内容信息或会话信息与内容信息的组合重定向到本地代理的本地监听端口包括:通过本地代理的本地监听端口将修改的会话信息和内容信息从驱动程序传送到本地代理。

第二工作模式部件108可以管理计算系统102的第二工作模式。第二工作模式可以包括用户模式。用户模式可以运行本地代理。

第二工作模式部件108可以在本地代理处获得内核驱动程序重定向的修改的会话信息、内容信息或者修改的会话信息与内容信息的组合。

第二工作模式部件108可以在本地代理和外部实体之间建立通信信道,以便将数据包传送到外部实体。通信信道可以通过网络,例如因特网来建立。在一些实施例中,因为修改的会话信息没有正确识别外部实体,可以通过修改该修改的会话信息来建立通信信道以便将内容信息传送到外部实体。

在一些实施例中,在该本地代理处,修改该修改的会话信息生成外部会话信息。生成外部会话信息可以包括以下操作的其中之一或组合:将该修改的会话信息中该目的地端口参数的该监听端口值替换为该HTTP端口值,以使该HTTP端口值为该外部会话信息中该目的地端口参数的值;将该修改的会话信息中该目的地IP参数的该本地IP地址值替换为该外部实体IP地址值,以使该外部实体IP地址值为该外部会话信息中该目的地IP参数的值;将该修改的会话信息中该源端口参数的该客户端应用的该本地端口值替换为本地代理外部会话客户端套接字端口值,以使该本地代理外部会话客户端套接字端口值为该外部会话信息中该源端口参数的值;或者将该修改的会话信息中该源IP参数的该外部实体IP地址值替换为该本地IP地址值,以使该本地IP地址值为该外部会话信息中该源IP参数的值。本地代理外部会话客户端套接字端口值可以表示本地代理的外部会话客户端套接字端口,该值可以是在本地代理连接到外部实体以形成外部会话时产生。因此,外部会话信息可以包括源IP参数的本地IP地址值、源端口参数的本地代理外部会话客户端套接字端口值、目的地IP参数的外部实体IP地址值或目的地端口参数的HTTP端口值的其中之一或组合。

一旦生成外部会话信息,则可以建立本地代理和外部实体之间的通信信道,并且可以将内容信息传送到外部实体。

当通信是入站(例如,从外部实体到计算系统102)时,该组参数值可以包括源IP参数的外部实体IP地址值、源端口参数的HTTP端口值、目的地IP参数的计算系统102的本地IP地址值、或目的地端口参数的本地代理外部会话客户端套接字端口值的其中之一或组合。

对于入站通信,第二工作模式部件108可以通过计算机系统102的第二工作模式(例如,用户模式)下运行的本地代理从外部实体获得信息,以通过网络传送到客户端应用。该信息可以包括会话信息、内容信息,或者会话信息与内容信息的组合。内容信息可以采用数据包的形式定义外部实体和客户端应用之间的通信的内容。入站通信的通信内容可以包括客户端应用请求的信息、因特网内容或其他信息的其中之一或组合。该会话信息可以包括用于入站通信的一组参数值,如上所述。

第二工作模式部件108可以由本地代理将会话信息、内容信息或会话信息与内容信息的组合通过本地代理的监听端口重定向到计算系统102的第一工作模式下运行的内核驱动程序。重定向可以包括修改会话信息以生成修改的会话信息。

在一些实现方式中,对于入站通信,修改会话信息以生成修改的会话信息可以包括以下操作的其中之一或组合:将该目的地端口参数的该本地代理外部会话客户端套接字端口值替换为该客户端应用的本地端口值,以使该客户端应用的该本地端口值为该修改的会话信息中该目的地端口参数的值;将该目的地IP参数的该本地IP地址值替换为该外部实体IP地址值,以使该外部实体IP地址值为该修改的会话信息中该目的地IP参数的值;将该源端口参数的该HTTP端口值替换为该本地代理的本地监听端口值,以使该本地监听端口值为该修改的会话信息中该源端口参数的值;或者,将该源IP参数的该外部实体IP地址值替换为本地IP地址值,以使该本地IP地址值为该修改的会话信息中该源IP参数的值。因此,修改的会话信息可以包括目的地端口参数的客户端应用的本地端口值、目的地IP参数的外部实体IP地址值、源端口参数的本地监听端口值或源IP参数的本地IP地址值的其中之一或组合。此修改的会话信息可以使得数据包被重定向到内核驱动程序。

对于入站通信,第一工作模式部件106可以在内核驱动程序处从本地代理获得修改的会话信息、内容信息或修改的会话信息与内容信息的组合。

第一工作模式部件106可以通过修改该修改后的会话信息将该内容信息传送到客户端应用,以便将内容信息定向到客户端应用。

在一些实施例中,修改该修改的会话信息生成内部会话信息。生成内部会话信息可以包括以下操作的其中之一或组合:将该修改的会话信息中该目的地IP参数的该外部实体IP地址值替换为该本地IP地址值,以使该本地IP地址值为该内部会话信息中该目的地IP参数的值;将该修改的会话信息中该源端口参数的该本地监听端口值替换为该HTTP端口值,以使该HTTP端口值为该内部会话信息中该源端口参数的值;将该修改的会话信息中该源IP参数的该本地IP地址值替换为该外部实体IP地址值,以使该外部实体IP地址值为该内部会话信息中该源IP参数的值;或者,保持目的地端口参数的客户端应用的本地端口值。相应地,内部会话信息可以包括目的地IP参数的本地IP地址值、源端口参数的HTTP端口值、源IP参数的外部实体IP地址值或目的地端口参数的客户端应用的本地端口值的其中之一或组合。

图2图示根据本公开的多种实施例的用于管理网络通信会话的示例流程图200。具体地,流程图200可以用于管理网络通信会话内的出站通信。在框202处,计算系统的第一工作模式下运行的驱动程序可以从客户端应用获得信息,以通过网络传送到外部实体。该信息可以包括会话信息、内容信息或会话信息与内容信息的组合。内容信息可以定义客户端应用与外部实体之间的通信内容。会话信息可以包括一组会话参数的一组参数值。在框204处,驱动程序可以将会话信息、内容信息或会话信息与内容信息的组合通过本地代理的本地监听端口重定向到计算系统的第二工作模式下运行的本地代理。重定向可以包括修改会话信息以生成修改的会话信息。在框206处,本地代理可以获得修改的会话信息、内容信息或者修改的会话信息与内容信息的组合。在框208处,本地代理可以通过修改该修改的会话信息来建立本地代理与外部实体之间的通信信道,以便将内容信息传送到外部实体。

图3图示根据本公开的多种实施例的用于管理网络通信会话的示例流程图300。具体地,流程图300可以用于管理网络通信会话内的入站通信。在框302处,计算系统的第二工作模式(例如,用户模式)下运行的本地代理可以从外部实体获得信息,以通过网络传送到客户端应用。该信息包括会话信息、内容信息或会话信息与内容信息的组合。内容信息可以定义外部实体和客户端应用之间的通信的入站内容。会话信息可以包括一组会话参数的一组参数值。在框304处,本地代理可以将会话信息、内容信息或会话信息与内容信息的组合通过本地代理的本地监听端口重定向到计算系统的第一工作模式下运行的驱动程序。重定向可以包括修改会话信息以生成修改的会话信息。在框306处,驱动程序可以获得修改的会话信息、内容信息或者修改的会话信息与内容信息的组合。在框308处,驱动程序可以通过修改该修改的会话信息将内容信息传送到该客户端应用。

图4图示根据本公开的多种实施例的与管理网络通信会话关联的特征和/或功能的示意图。具体地,图4表示从客户端应用(例如浏览器402)到外部实体(例如远程服务器408)的出站通信。浏览器402可以生成源信息和内容信息,从而定义要传送到远程服务器408的信息数据包。会话信息可以包括源IP参数、源端口参数、目的地IP参数和目的地端口参数的其中之一或组合。一组参数值可以包括源IP参数的本地IP地址值(标记为“本地IP”)、源端口参数的客户端应用的本地端口值(标记为"值2")、目的地IP参数的外部实体IP地址值(标记为“值3”)或目的地端口参数的HTTP端口值(标记为“HTTP端口80”)的其中之一或组合。可以将源信息和内容信息传送到计算系统的内核模式下运行的内核驱动程序404。

内核驱动程序404可以配置成操控/修改会话参数的值,以便将数据包重定向到计算系统的用户模式下运行的本地代理406。例如,内核驱动程序404可以执行以下操作的其中之一或组合:410将HTTP端口值(标记为“HTTP端口80”)替换为本地代理的监听端口值(标记为“监听端口”),以使该监听端口值为目的地端口参数的值;412将外部实体IP地址值(“值3”)替换为本地IP地址值(标记为“本地IP”),以使该本地IP地址值为目的地IP参数的值;416将源IP参数的本地IP地址值(“本地IP”)替换为外部实体IP地址值(“值3”),以使该外部实体IP地址值为源IP参数的值;或者,414保持目的地端口参数的客户端应用的本地端口值(“值2”)。然后可以将内容信息和修改的会话参数值传送到本地代理406。这可以使系统能够免去缓存/复用/解复用,并提供客户端应用与外部实体之间的更快且更有效率的连接,并实现本地代理用于处理数据包内容的开销更少(例如,更高效率)。

本地代理406然后可以再次操控/修改会话参数的值以便将数据包重定向到远程服务器408。通过内核驱动程序404和本地代理406的操控,可以在不需要复用的情况下创建远程服务器408与浏览器402之间的直接通道。

本地代理406可以执行以下操作的其中之一或组合:418将目的地端口参数的监听端口值(标记为“监听端口”)替换为HTTP端口值(标记为“HTTP端口80”),以使该HTTP端口值为目的地端口参数的值;420将目的地IP参数的本地IP地址值(“本地IP”)替换为外部实体IP地址值(“值3”),以使该外部实体IP地址值为目的地IP参数的值;422将源端口参数的客户端应用的该本地端口值(“值2”)替换为本地代理外部会话客户端套接字端口值(“值5”),以使该本地代理外部会话客户端套接字端口值为源端口参数的值;或者,424将源IP参数的外部实体IP地址值(“值3”)替换为本地IP地址值(标记为“本地IP”),以使该本地IP地址值为源IP参数的值。然后可以将该数据包传送到远程服务器408。

图5图示根据本公开的多种实施例的与管理网络通信会话关联的特征和/或功能的示意图。具体地,图5表示从远程服务器408到浏览器402的入站通信。远程服务器408可以生成数据包并将其发送到本地代理406。该数据包可以包含会话信息和内容信息。该会话信息可以包括以下项的其中之一或组合:源IP参数的外部实体IP地址值(“值3”)、源端口参数的HTTP端口值(“HTTP端口80”)、目的地IP参数的本地IP地址值(“本地IP”)或目的地端口参数的本地代理外部会话客户端套接字端口值。可以在本地代理406处接收会话信息和内容信息。

本地代理406可以配置成操控/修改会话参数的值以便将数据包重定向到内核驱动程序404。本地代理406可以执行以下操作的其中一个或多个:502将本地代理外部会话客户端套接字端口值(“值5”)替换为客户端应用的本地端口值(“值2”),以使客户端应用的本地端口值为目的地端口参数的值;504将本地IP地址值(“本地IP”)替换为外部实体IP地址值(“值3”),以使该外部实体IP地址值为目的地IP参数的值;506将HTTP端口值(标记为“HTTP端口80”)替换为本地代理的监听端口值(标记为“监听端口”),以使该监听端口值为源端口参数的值;或者,508将源IP参数的外部实体IP地址值(“值3”)替换为本地IP地址值(标记为“本地IP”),以使该本地IP地址值为源IP参数的值。然后可以将该数据包传送到内核驱动程序404。

内核驱动程序404可以再次操控/修改会话参数的值以便将数据包重定向到浏览器402。通过内核驱动程序404和本地代理406的操控,可以在不需要复用的情况下创建远程服务器408与浏览器402之间的直接通道。

内核驱动程序404可以执行以下操作的其中之一或组合:512将目的地IP参数的外部实体IP地址值(“值3”)替换为本地IP地址值(标记为“本地IP”),以使该本地IP地址值为目的地IP参数的值;514将源端口参数的监听端口值(标记为“监听端口”)替换为HTTP端口值(标记为“HTTP端口80”),以使该HTTP端口值为源端口参数的值;516将源IP参数的本地IP地址值(“本地IP”)替换为外部实体IP地址值(“值3”),以使该外部实体IP地址值为源IP参数的值;或者,510保持目的地端口参数的客户端应用的本地端口值(“值2”)。然后可以将该数据包定向到浏览器402。

图6是图示可在其上实施本文所述的任一实施例的计算机系统600的框图。计算机系统600包含用于通信信息的总线602或其它通信机构,和一个或多个与总线602耦接用于处理信息的硬件处理器604。例如,一个或多个硬件处理器604可以是一个或多个通用微处理器。

计算机系统600还包含主存储器606,如随机存取存储器(RAM)、高速缓存和/或其它动态存储装置,主存储器606与总线602耦接,用于存储信息和将由一个或多个处理器604执行的指令。主存储器606还可以用于在执行要由一个或多个处理器604执行的指令期间来存储临时变量或其它中间信息。这些指令,当存储在由一个或多个处理器604可访问的存储介质中时,使计算机系统600进入被定制成执行指令中指定的操作的专用机器。主存储器606可以包含非易失性介质和/或易失性介质。非易失性介质可以包含例如光盘或磁盘。易失性介质可以包含动态存储器。例如,介质的常见形式可以包含:软驱、软盘、硬盘、固态硬盘、磁带或任何其它磁数据存储介质、CD-ROM、任何其它光学数据存储介质、任何有孔图案的物理介质、RAM、DRAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其它存储器芯片或盒式磁带以及其网络版本。

计算机系统600可使用定制的硬连线逻辑、一个或多个ASIC或FPGA、固件和/或程序逻辑来实施本文所述的技术,这些与计算机系统相结合使计算机系统600成为专用机器或将该系统编程为专用机器。根据一个实施例,本文的技术是通过计算机系统600响应于一个或多个处理器604执行在主存储器606中含有的一个或多个指令的一个或多个序列而执行的。这些指令可从另一个存储介质(如,存储装置608)读入主存储器606。执行包含在主存储器606中的指令序列使得处理器604可执行本文描述的处理步骤。例如,图2和/或图3所示的以及结合这些附图描述的过程/方法可以通过存储在主存储器606中的计算机程序指令来实现。当这些指令被处理器604执行时,它们可以执行如图2和/或图3所示以及在上文描述的步骤。在替代实施例中,可使用硬连线电路来代替软件指令或与软件指令组合使用。

计算机系统600还包含与总线602耦接的通信接口610。通信接口610提供与连接到一个或多个网络的一个或多个网络链路耦接的双向数据通信。再例如,通信接口610可以是局域网(LAN)卡,以提供与兼容LAN(或与WAN通信的WAN组件)的数据通信连接。还可实施无线链路。

某些操作的性能可以分布在处理器之间,不仅驻留在单个机器中,而且跨许多机器部署。在一些示例性实施例中,处理器或处理器实施的引擎可以位于单个地理位置中(例如,在家庭环境、办公室环境或服务器场内)。在其它示例性实施例中,处理器或处理器实施的引擎可以跨许多地理位置分布。

本文将某些实施例描述为包含逻辑或许多组件。组件可以构成软件组件(例如,体现在机器可读介质上的代码)或硬件组件(例如,能够执行可以以某种物理方式配置或布置的某些操作的有形单元)。正如本文所使用的,为了方便,计算系统102的部件可以描述为在这些部件可包含可对计算系统102进行编程或配置以执行操作的指令时,执行或配置成执行该操作。

尽管本文描述了所公开的原理的实例和特征,但是在不脱离所公开的实施例的精神和范围的情况下,可以进行修改、改编和其它实施。此外,词语“包括”、“具有”、“含有”和“包含”以及其它类似形式在含义上是等同的,并且以无限制的方式开放,因为在这些词语中的任何一个之后的一个或多个项目均不意指这种一个或多个项目的详尽清单,或者意指仅限于列出的一个或多个项目。还必须注意,如本文和所附权利要求书中所使用的,单数形式“一个(a)”、“一个(an)”和“所述(the)”包含复数引用,除非上下文另外明确指出。

本文示出的实施例已被充分详细地描述,以使本领域技术人员能够实践所公开的教导。可以使用其他实施例并从中导出其他实施例,使得可以在不脱离本公开范围的情况下进行结构和逻辑替换和改变。因此,具体实施方式不应被视为具有限制意义,且各个实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围来限定。

相关技术
  • 用于管理网络通信会话的系统和方法
  • 会话管理系统、会话管理设备、会话管理方法和会话管理程序
技术分类

06120113224167