CN103081382A - 用于多路复用网络信道的系统和方法 - Google Patents

用于多路复用网络信道的系统和方法 Download PDF

Info

Publication number
CN103081382A
CN103081382A CN2011800412491A CN201180041249A CN103081382A CN 103081382 A CN103081382 A CN 103081382A CN 2011800412491 A CN2011800412491 A CN 2011800412491A CN 201180041249 A CN201180041249 A CN 201180041249A CN 103081382 A CN103081382 A CN 103081382A
Authority
CN
China
Prior art keywords
client computer
server
agency
data
tcp
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
CN2011800412491A
Other languages
English (en)
Other versions
CN103081382B (zh
Inventor
K·普拉泽
W·赫苏
B·维尔玛
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.)
Canon Inc
Original Assignee
Canon 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
Priority claimed from US12/874,143 external-priority patent/US20120054316A1/en
Application filed by Canon Inc filed Critical Canon Inc
Publication of CN103081382A publication Critical patent/CN103081382A/zh
Application granted granted Critical
Publication of CN103081382B publication Critical patent/CN103081382B/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
    • 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/0209Architectural arrangements, e.g. perimeter networks or demilitarized zones
    • 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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/566Grouping or aggregating service requests, e.g. for unified processing
    • 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]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • 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/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/164Implementing security features at a particular protocol layer at the network layer

Abstract

代理将来自客户机的多个TCP请求合并成代理与服务器之间的一个TCP连接。在代理与服务器之间打开持久TCP连接,并且,在代理处从客户机接收连接请求。对于客户机登记唯一标识符,并且,在持久TCP连接上用信号通知服务器登记唯一标识符。响应连接请求在客户机与代理之间建立客户机连接。在客户机连接上从客户机接收内容请求。所述唯一标识符被添附到内容请求,并且,经添附的内容请求被转送到服务器,并且,从服务器接收经添附的内容。从经添附的内容提取标识符和内容,并且,识别与提取的标识符对应的客户机和客户机连接。提取的内容返回到相应的客户机。

Description

用于多路复用网络信道的系统和方法
(相关申请的交叉引用)
本申请要求在2010年9月1日提交的美国专利申请No.12/874143和在2011年8月18日提交的作为美国专利申请No.12/874143的部分继续的美国专利申请No.13/212995作为优先权,这两个专利申请的全部内容均通过引用被并入。
技术领域
本发明涉及网络通信系统领域。例如,代理(proxy)和/或HTTP隧道上的TCP多路复用,更具体地,涉及将来自客户机的多个TCP请求合并成代理与服务器之间的一个TCP连接的代理上的TCP多路复用。
背景技术
传送控制协议(TCP)是TCP/IP网络中的主协议中的一种。虽然IP协议仅应对分组,但是,TCP使得两个主机能够建立连接并交换数据流。
应用和装置一般通过使用TCP协议通信。诸如超文本传送协议(HTTP)的一些较高级协议常要求在通信过程中建立多个TCP连接。例如,应用可首先在端口80上联系装置的HTTP服务器。HTTP服务器可通过使其从诸如81、82或83的各种端口检索请求的数据来响应应用。在本例子中,即使在已知的端口(即,端口80)上开始的原始通信,随后的通信也导致建立其它的连接。
并且,应用和装置常通过防火墙通信。HTTP端口(例如,端口80)可被防火墙打开以供通信,由此启用应用与装置之间的至少一个联系点。应用和装置可通过在HTTP连接上发送单一会话的TCP数据而通过防火墙传送数据。一旦建立HTTP连接,就一般发送单一会话的数据作为不是HTTP格式的字节流。
发明内容
HTTP的一个问题是,建立HTTP连接一般是耗时的过程。因此,对于隧穿HTTP数据的应用,当每次需要新的端口就建立HTTP连接时,通信一般慢下来。以上的问题在应用和装置通过防火墙通信时可进一步受影响,并可导致可扩展性(scalability)问题。当然,通信的这种减慢不限于HTTP,并且可适用于其它的协议。
本公开针对以上的问题。公开的实施例描述了用于代理和/或HTTP隧道上的TCP多路复用的装置和方法,其中,代理将来自客户机的多个TCP请求合并成代理与服务器之间的一个TCP连接。
在这里描述的示例性实施例中,在代理和/或HTTP隧道上执行TCP多路复用,其中,代理将来自客户机的多个TCP请求合并成代理与服务器之间的一个TCP连接。在代理与服务器之间打开持久TCP连接和/或HTTP连接,并且,在代理处从客户机接收连接请求,其中,所述连接请求包含用于在客户机与服务器之间建立新的连接的请求。对于客户机登记唯一标识符,并且,在持久连接上用信号通知服务器登记客户机的唯一标识符。响应连接请求在客户机与代理之间建立客户机连接,并且,在客户机连接上从客户机接收内容请求,其中,所述内容请求包含对于服务器上的内容的请求。客户机的唯一标识符被添附到内容请求,并且,经添附的内容请求在持久连接上被转送到服务器,并且,在持久连接上从服务器接收经添附的内容,其中,经添附的内容包含被添附到内容的标识符。从经添附的内容提取标识符和内容,并且,识别与提取的标识符对应的客户机和客户机连接。提取的内容在客户机连接上返回到与提取的标识符对应的客户机。
打开代理与服务器之间的持久TCP连接可包含在服务器与代理之间交换ECHO命令。服务器和代理可被防火墙分开,防火墙将代理暴露于到来的连接请求并对于服务器屏蔽这种请求,并且,打开代理与服务器之间的持久TCP连接可包含接收来自服务器的ECHO命令并接收来自代理的对它的响应。可在服务器与代理之间关闭持久连接。
可构成包含登记客户机和客户机的唯一标识符的命令的命令序列,并且,用信号通知服务器可包含在持久连接上向服务器发送所述命令序列。可构成包含请求内容、客户机的唯一标识符和来自客户机的内容请求的命令的命令序列,并且转送经添附的内容请求可包含向服务器发送所述命令序列。
可从客户机接收用于关闭客户机连接的请求。响应来自客户机的关闭客户机连接的请求,可将客户机及其唯一标识符解除登记,并且,可在持久连接上用信号通知服务器以将所述唯一标识符解除登记。
在另一示例性实施例中,服务器与代理通信,其中,代理将来自客户机的多个TCP请求合并成代理与服务器之间的一个TCP连接。在代理与服务器之间打开持久TCP连接,并且,基于代理处的来自客户机的连接请求,在所述持久连接上接收信号以登记客户机的唯一标识符,其中,所述连接请求包含用于在客户机与服务器之间建立新的连接的请求。基于所述信号登记客户机的唯一标识符。在所述持久连接上从代理接收内容请求,其中,响应连接请求在客户机与代理之间建立客户机连接,在所述客户机连接上从客户机通过代理接收内容请求,所述内容请求包含对于服务器上的内容的请求,并且,所述内容请求被添附有客户机的唯一标识符。基于经添附的内容请求获得内容,并且,标识符被添附到所获得的内容。为了从经添附的内容提取标识符和内容,识别与提取的标识符对应的客户机和客户机连接、以及在客户机连接上将提取的内容返回与提取的标识符对应的客户机,经添附的内容在持久连接上被发送给代理。
提供本发明内容,使得可以迅速地理解本公开的本质。参照以下的详细的描述和附图,可以获得更彻底的理解。
附图说明
图1是根据示例性实施例的提供TCP多路复用的网络环境的示图。
图2是示出根据示例性实施例的图1所示的服务器的内部结构的框图。
图3是示出根据示例性实施例的图1所示的代理的内部结构的框图。
图4是示出根据示例性实施例的装置代表(agent)主机与装置代理主机之间的网络通信的例子的示图。
图5是示出根据示例性实施例的代理上的TCP多路复用的不同的序列的序列图。
图6是示出根据示例性实施例的代理上的TCP多路复用的流程图。
图7是示出根据示例性实施例的装置代表主机与装置代理主机之间的网络通信的例子的示图。
图8是示出根据示例性实施例的装置代表主机与装置代理主机之间的网络通信的例子的示图。
图9A~C是示出通过装置代理的TCP多路复用操作的实施例的例子的流程图。
图10A~C是示出通过装置代理的TCP多路复用操作的实施例的例子的流程图。
图11示出客户机ID表的实施例的例子。
具体实施方式
图1是根据示例性实施例的提供TCP多路复用的网络环境的示图。网络环境100在代理108上提供TCP多路复用。更具体地讲,代理108从客户机110、112和114接收多个TCP请求。代理108将多个TCP请求合并成代理108与服务器102之间的一个TCP连接106。服务器102和代理108可被防火墙104分开,该防火墙104将代理暴露于来自客户机110~114的到来的连接请求并对于服务器102屏蔽这种请求。
TCP连接106可以是在代理108与服务器102之间打开的持久连接。可在代理108处通过客户机110~114中的任一个打开连接请求,这里,连接请求包含在该客户机与服务器102之间建立新的连接的请求。可对于客户机(例如,客户机110~114)登记唯一标识符,并且,可在TCP连接106上用信号通知服务器102,以登记客户机的唯一标识符。可响应连接请求在客户机与代理108之间建立客户机连接。可在客户机连接上从客户机接收内容请求,这里,内容请求包含对于服务器102上的内容的请求。客户机的唯一标识符可被添附到内容请求,并且,经添附的内容请求可在TCP连接106上被转送到服务器102。可在TCP连接106上从服务器102接收经添附的内容,这里,经添附的内容包含被添附到内容的标识符。可从经添附的内容提取标识符和内容,并且,可识别与提取的标识符对应的客户机(例如,客户机110~114)和客户机连接。提取的内容可在客户机连接上返回与提取的标识符对应的客户机。
代理108和服务器102之间的持久TCP连接106的打开可包含在服务器102与代理108之间交换ECHO命令。如上所述,服务器102和代理108可被防火墙104分开,防火墙104将代理108暴露于到来的连接请求并对于服务器102屏蔽这种请求。代理108和服务器102之间的持久TCP连接106的打开可包含从服务器102接收ECHO命令和从代理108接收其响应。可在服务器102与代理108之间关闭TCP连接106。
可以构成包含登记客户机(例如,客户机110~114)和客户机的唯一标识符的命令的命令序列,并且,用信号通知服务器102可包含在TCP连接106上向服务器102发送命令序列。可以构成包含请求内容、客户机的唯一标识符和来自客户机的内容请求的命令的命令序列,并且,转送经添附的内容请求可包含向服务器102发送命令序列。
可从客户机(例如,客户机110~114)接收请求以关闭客户机连接。响应来自客户机的关闭客户机连接的请求,客户机及其唯一标识符可被解除登记,并且,可在TCP连接106上用信号通知服务器102以将所述唯一标识符解除登记。
图2是示出根据示例性实施例的图1所示的服务器的内部结构的框图。服务器102可与用于目标装置的服务器(例如,HTTP服务器)对应。在后面将参照作为用于帮助目标装置与客户机(例如,客户机110~114)之间的经纪人(broker)通信的端口转送系统的目标装置侧部件的装置代表更详细地描述这种服务器。装置代表可与代理108通信,并且可驻留于目标装置上。根据实施例,服务器102可以是目标装置,或者目标装置可以是单独的装置,并且服务器102可管理目标装置与任何客户机之间的通信。
在这一点上,端口转送系统可以指单个装置代理与一起工作以管理端口转送隧道的一个或更多个分配的装置代表。并且,端口转送可以指通信量什么时候从一个网络端口被转到另一网络端口。
另外,由于防火墙限制,因此端口转送可以指内部节点什么时候必须启动与外部节点的端口转送会话。一旦建立会话,外部节点就可将网络通信量转送到内部节点。应当注意,这种转送也可称为“反向”端口转送。
从图2可以看出,服务器102可包含诸如可与服务器总线202连接的可编程微处理器的中央处理单元(“CPU”)200。用于与代理108或客户机110~114连接的网络接口204也可与服务器总线202耦接。另外,随机存取存储器(“RAM”)218、固定盘222和只读存储器(“ROM”)220可与服务器总线202耦接。RAM218可与服务器总线202连接,以向CPU200提供对于存储器存储的访问,由此用作用于CPU200的主运行时间存储器。特别地,当执行存储的程序指令序列时,CPU200可将来自固定盘222(或其它存储器介质)的那些指令序列加载到RAM218中并执行RAM218中的这些存储的程序指令序列。还应认识到,标准盘交换技术可允许对于RAM218和固定盘222交换存储器的区段。
ROM220可存储不变的指令序列,诸如用于CPU200的启动指令序列或用于可附着于服务器102上的网络装置的操作的基本输入/输出操作系统(“BIOS”)序列。网络接口204可包含提供用于服务器102的适当的接口功能的几个模块。例如,网络接口204可包含一般是低级协议层的网络接口层216。可在网络接口层216之上提供用于通过TCP/IP在网络上与代理108或客户机110~114通信的TCP/IP层214。也可提供其它的协议212以允许服务器102通过使用其它的常规的协议在网络上通信。关于这一点,能够在网络接口204中提供用于允许服务器102通过分别使用HTTP、SNMP和LDAP在网络上通信的HTTP协议206、SNMP协议208和LDAP协议210。但是,应当注意,也可以由操作系统224提供HTTP、SNMP和LDAP协议连同其它的常规的协议。前述的协议可允许服务器102在网络(例如,因特网)上与其它的装置通信。
固定盘222是存储可由CPU200执行以构成操作系统224、网络接口驱动器226、装置代表模块228和其它文件230的程序指令序列的计算机可读介质的一个例子。计算机可读介质可包含磁存储装置(例如,硬盘、软盘、磁带)、光学存储装置(例如,CD、DVD、HD-DVD、Blu-ray)、固态装置(例如,RAM、闪存、固态驱动、SRAM、DRAM)、磁光盘、可擦除可编程只读存储器(EPROM)和电可擦除可编程只读存储器(EEPROM)。操作系统224可以是诸如DOS、Windows95、Windows98、Windows2000、Windows XP、Windows7、Windows NT、UNIX的操作系统或其它的这种操作系统。网络接口驱动器226可被用于驱动用于连接服务器102与代理108或客户机110~114的网络接口204。装置代表模块228可被用于实现用于与代理108的TCP多路复用的结构。如上所述,多个TCP请求可从客户机110~114被合并成代理108与服务器102之间的一个TCP连接106。其它的文件230可包含操作服务器102和/或向服务器102提供附加的功能所需要的其它的文件或程序。
图3是示出根据示例性实施例的图1所示的代理的内部结构的框图。代理108可与用于帮助目标装置与客户机应用之间的经纪通信的端口转送系统的部件对应。例如,代理108可与因特网上的部件对应。并且,目标装置能够在网络上通信并可执行装置代表,诸如多功能打印机(MFP)。另外,目标装置可通过防火墙与代理108和客户机应用分开。
虽然来自客户机110~114中的任一个的应用可被设计为直接与目标装置交互,但是,由于应用可能在防火墙外面运行,因此它一般使用代理108以实现这一点。如上所述,代理108从客户机110、112和114接收多个TCP请求,并且将多个TCP请求合并成代理108和服务器102之间的一个TCP连接106。
从图3可以看出,代理108可包含诸如可与代理总线302连接的可编程微处理器的中央处理单元(“CPU”)300。用于与服务器102和客户机110~114连接的网络接口304也可与代理总线302耦接。另外,随机存取存储器(“RAM”)318、固定盘322和只读存储器(“ROM”)320可与代理总线302耦接。RAM318可与代理总线302连接,以向CPU300提供对于存储器存储的访问,由此用作用于CPU300的主运行时间存储器。特别地,当执行存储的程序指令序列时,CPU300可将来自固定盘322(或其它存储器介质)的那些指令序列加载到RAM318中并执行RAM318中的这些存储的程序指令序列。还应认识到,标准盘交换技术可允许对于RAM318和固定盘322交换存储器的区段。
网络接口304可包含用于对于代理108提供适当的接口功能的几个模块。例如,网络接口304可以包含一般是低级协议层的网络接口层316。可在网络接口层316之上提供用于通过TCP/IP在网络上与服务器102和客户机110~114通信的TCP/IP层314。也可提供其它的协议312以允许代理108通过使用其它的常规的协议在网络上通信。关于这一点,能够在网络接口304上提供用于允许代理108通过分别使用HTTP、SNMP和LDAP在网络上通信的HTTP协议306、SNMP协议308和LDAP协议310。但是,应当注意,也可以由操作系统324提供HTTP、SNMP和LDAP协议连同其它的常规的协议。前述的协议可允许代理108在网络(例如,因特网)上与其它的装置(例如,服务器102和客户机110~114)通信。
固定盘322是存储可由CPU300执行以构成操作系统324、网络接口驱动器326、装置代理模块328和其它文件330的程序指令序列的计算机可读介质的一个例子。操作系统324可以是诸如DOS、Windows95、Windows98、Windows3000、Windows XP、Windows7、Windows NT、UNIX的操作系统或其它的这种操作系统。网络接口驱动器326可被用于驱动用于连接代理108与服务器102和客户机110~114的网络接口304。装置代理模块328可被用于实现将来自客户机(例如,110~114)的多个TCP请求合并成代理108与服务器102之间的一个TCP连接106的结构。其它的文件330可包含操作代理108并且/或者向代理108提供附加的功能所需要的其它的文件或程序。
图4是示出根据示例性实施例的装置代表主机与装置代理主机之间的网络通信的例子的示图。对于目标装置与从目标装置请求数据的应用之间的通信路径,可在应用侧和装置侧出现隧穿数据的协调(coordination)。以软件的形式,例如,作为应用侧和装置侧的软件驱动器,实现这种协调。当然,这种实现不限于软件,并且,也可使用硬件。
参照图4,在应用侧,可通过包含于装置代理主机404中的装置代理420处理隧穿的协调。关于这一点,装置代理主机404可与代理108对应。装置代理主机404还可包含以太网模块414、TCP/IP协议栈416和HTTP服务器418。以太网模块414可以是网络接口304的一部分,并且可被TCP/IP协议栈416使用以通过使用TCP/IP协议发送和接收消息。TCP/IP协议栈416可以是TCP/IP协议314的一部分。HTTP服务器418可使用TCP/IP协议栈416以发送和接收HTTP消息,并且可使用HTTP协议306和网络接口304以实现其服务。另外,HTTP服务器418可利用TCP/IP协议栈416以向装置代理420提供TCP套接字(socket)(例如,424~428)。
在装置侧,可通过包含于装置代表主机400中的装置代表406处理隧穿的协调。装置代表主机400可与服务器102对应。可在装置代表400与装置代理主机404之间出现TCP多路复用,并且,可通过防火墙402分开两个主机。关于这一点,装置代表主机还可包含http客户机408、TCP/IP协议栈410和以太网模块412。以太网模块412可以是网络接口204的一部分,并且可被TCP/IP协议栈410使用以通过使用TCP/IP协议发送和接收消息。TCP/IP协议栈410可以是TCP/IP协议214的一部分。HTTP客户机408可使用TCP/IP协议栈410以发送和接收HTTP消息,并且可使用HTTP协议206和网络接口204以实现其服务。另外,HTTP客户机408可利用TCP/IP协议栈410以向装置代理406提供TCP套接字(例如,424~428)。
为了减少诸如HTTP连接的连接的创建,可在装置代表主机400与装置代理主机404之间的单一连接上承载多个TCP隧道。关于这一点,装置代理420可将来自客户机的多个TCP请求合并成装置代理主机404与装置代表主机400之间的一个TCP连接(例如,通过隧道422)。隧道422可包含用于在装置代表主机400与装置代理主机404之间通信的多个TCP套接字424、426和428。在一个示例性实施例中,隧道422是HTTP隧道。
为了实现装置代表主机400与装置代理主机404之间的通信,隧穿过隧道422的数据流可包含用于识别数据并给予接收器关于如何处理数据的指示的信息的引导字节(例如,以报头(header)的形式)。在一个示例性实施例中,报头可指引装置代表406以对于特定的客户机(例如,客户机110~114)创建与装置代理主机404的新的连接。由于这些流承载识别信息,因此,可经由隧道422在单一连接上承载多个隧道。以下将参照图5更详细地描述识别信息的使用。
图5是示出根据示例性实施例的装置代理上的TCP多路复用的不同序列的序列图。这些不同的序列包含建立TCP隧道、创建新的客户机连接、传送TCP数据和关闭客户机连接。
在图5的例子中,示出单一HTTP或超文本传输协议安全(HTTPS)连接上的多个客户机的管理,并且,示出用于在这种连接(以下,“HTTP(S)”)上路由TCP数据的通信协议。当然,可以使用HTTP(S)连接以外的连接。
现在将参照图5描述用于建立TCP隧道的步骤的说明。在序列步骤500中,装置代表406打开与装置代理420的HTTP(S)连接,以建立基于HTTP(S)的隧道。在序列步骤502中,在初始的HTTP特有握手(handshake)之后,装置代表406向装置代理420发送“ECHO”消息(例如,4字节消息),以表示装置代表406准备好通信。在序列步骤504中,如果装置代理420从装置代表406接收“ECHO”,那么装置代理420用“ECHO”响应,以表示装置代表406可开始收听实际的数据分组。
现在将参照图5描述用于创建新的客户机连接的步骤的说明。当装置代理420检测到新的客户机连接时,它可向该客户机连接分配2字符唯一标识符。标识符的第一字符可以是“c”,并且,第二字符可以是1字节数字。这允许达256个客户机在任意给定的时间与单一装置代表套接字连接。当然,可以使用用于标识符的不同的配置。
例如,在序列步骤506中,装置代理420向装置代表406发送以下的分组:
PFTC<client id>
在本例子中,PFTC表示创建新的连接的请求,并且<client id>是2字符客户机标识符。在序列步骤508中,一旦装置代表406接收以上的分组,装置代表406就向装置代理420创建新的TCP套接字,并将该套接字分配给以上的客户机标识符。
现在将参照图5描述用于传送TCP数据的步骤的说明。在序列步骤510中,在建立连接之后,可通过使用以下的格式在装置代理420与装置代表046之间传送可用的TCP数据。
PFTD<client id><data size><data>
在本例子中,PFTD表示传送数据的请求,<client id>是2字符客户机标识符,<data size>是表示要读取的所附数据的字节的数量的4位整数,以及<data>是要向目的地发送的实际TCP数据。
现在将参照图5描述用于关闭客户机连接的步骤的说明。在序列步骤512中,按以下的格式从装置代理420向装置代表406发送用于关闭连接的请求:
PFTT<client id>
在本例子中,PFTT表示终止现有的连接的请求,并且,<client id>是应关闭连接的2字符客户机标识符。
在序列步骤514中,一旦接收请求,打开的TCP套接字就应被关闭。关于这一点,为了关闭TCP隧道,装置代理420关闭装置代理420端上的隧道,并且,装置代表406关闭与装置代理420的相应的HTTP(S)连接。
因此,可在代理上执行TCP多路复用,这里,代理将来自客户机的多个TCP请求合并成代理与服务器之间的一个TCP连接。在图5的例子中,代理可与装置代理420对应,并且,服务器可与装置代表400对应。
图6是进一步示出代理上的TCP多路复用的流程图,这里,代理将来自客户机的多个TCP请求合并成代理与服务器之间的一个TCP连接。
在开始圆框600之后,在块602处,在装置代理与服务器(例如,装置代表主机)之间打开持久TCP连接。在装置代理处从客户机接收连接请求,其中,连接请求包含用于在客户机与服务器之间建立新的连接的请求(块604),并且,对于客户机登记唯一标识符(块606)。
服务器在持久连接上被用信号通知以登记客户机的唯一标识符(块608),并且,响应连接请求在客户机与装置代理之间建立客户机连接(块610)。在客户机连接上从客户机接收内容请求,其中,内容请求包含对于服务器上的内容的请求(块612)。
客户机的唯一标识符被添附到内容请求,并且,经添附的内容请求在持久连接上被转送给服务器(块614)。经添附的内容在持久连接上从服务器被接收,其中,经添附的内容包含被添附到内容的标识符(块616)。
从经添附的内容提取标识符和内容,并且,识别与提取的标识符对应的客户机和客户机连接(块618)。提取的内容在客户机连接上返回与提取的标识符对应的客户机(块620)。处理结束(结束圆框622)。
图7是示出根据示例性实施例的经由装置代表主机700与装置代理主机704的目标装置740与两个客户机(客户机730A和客户机730B)之间的网络通信的例子的示图。装置代表主机700包含经由隧道722与包含于装置代理主机704中的装置代理720并与客户机730A和730B通信的装置代表706。隧道722包含TCP套接字724,并且,装置代理720多路复用TCP套接字724,以允许客户机730A和730B共享TCP套接字724。隧道722允许通过防火墙702的通信。因此,客户机730A和730B均可使用TCP套接字724以与装置代表706和目标装置740通信,这可减少允许通信所需要的资源。例如,TCP套接字724的多路复用可避免打开多个TCP套接字的开销,这种打开可占用大量的资源并且非常耗时。在图7所示的实施例中,目标装置740是实现装置代表700的装置(例如,装置代表主机700)以外的单独的装置。目标装置可以是具有一个或更多个CPU的计算装置,诸如打印机、扫描仪、传真机、复印机、多功能外设、膝上型计算机、台式计算机、电话、服务器、个人数字助理、照相机等。在其它的实施例中,目标装置可以是实现装置代表706的同一装置。
装置代理720包含代理传送模块714和代理接收模块716。代理传送模块714从客户机接收数据或指令并且将接收的数据或指令插入TCP分组中,并且向TCP分组添加客户机标识符。代理传送模块714然后在TCP套接字724上发送分组。代理接收模块716从TCP套接字724接收TCP分组,确定分组寻址到的各客户机(例如,通过从接收的TCP分组提取客户机标识符)。代理接收模块716向各客户机发送接收的分组。
装置代表706包含装置代表接收模块710和装置代表传送模块712。装置代表接收模块710从TCP套接字724接收TCP分组并且确定与分组关联的各客户机。装置代表706向目标装置740发送接收的分组。装置代表706和目标装置740可打开一个或更多个端口以允许在它们之间交换数据。
目标装置740可然后基于与客户机关联的接收的分组(其可被组装在一起)执行操作。操作可包含向关联的客户机发送数据、从关联的客户机接收数据或者执行装置的功能(例如,复制、扫描、变为低功率状态、捕获照片)。目标装置740经由装置代表706向客户机发送数据。装置代表传送模块712确定与外出的TCP分组(例如,从目标装置740接收并被发送到客户机的分组)关联的客户机,并且向各TCP分组添加相应的客户机标识符,并且,在TCP套接字724上发送TCP分组。
图8是示出根据示例性实施例的装置代表主机800与装置代理主机804之间的网络通信的例子的示图。装置代表主机800通过隧道822经由防火墙802与装置代理主机804通信,并且,隧道822包含TCP套接字824和826。如以上关于图4描述的那样,装置代表主机800包含装置代表806、HTTP客户机808、TCP/IP协议栈810和链路层812。如以上关于图4讨论的那样,装置代理主机804包含装置代理、HTTP客户机818、TCP/IP协议栈816和链路层814。另外,在图8所示的实施例中,装置代表主机800是目标装置。
图7中的装置代表主机700与图8中的装置代表主机800对应。图2中的装置代表模块228可包含装置代表706。图2中的装置代表模块228可由图2中的CPU200执行以实现图10A~10C所示的算法或操作。图3中的装置代理模块328可包含装置代理720。图3中的装置代理模块328可由图3中的CPU300运行以执行图9A~9C所示的算法或操作。CPU300是计算机处理器的例子。当然,可通过多核的CPU、多个单独的CPU或其它的硬件设计(例如,驻留于不同的服务器上的CPU)实现CPU300和CPU228。例如,在云计算环境中,这种CPU也可被称为计算机处理器。
防火墙702与图8中的防火墙802对应。客户机730A与客户机830A对应,并且,客户机730B与客户机830B对应。隧道722与隧道822对应。可通过由一个或更多个计算装置执行的计算机程序(例如,软件)实现图7中的块模块706、710、712、714、716和720及图8中的块模块806、808、810、812、814、816、818和820。也可通过例如ASIC(专用集成电路)的硬件电路和/或硬件逻辑实现这种模块。
多个客户机830A~F可经由隧道822与装置代表806(本实施例中的目标装置)通信。隧道中的TCP套接字824、826可分别被多个客户机830A~F共享。虽然其它数量的客户机可共享TCP套接字(例如,3、6、9),但是,图8示出共享TCP套接字824的客户机830A~830D并示出共享TCP套接字826的客户机830E~F。当它检测到任何现有的TCP套接字的一定的使用水平时,装置代理820和装置代表806可打开附加的TCP套接字(在装置之间协调的操作)。例如,装置代理820和装置代表806可首先打开TCP套接字824,并允许客户机使用TCP套接字824。装置代理820然后可检测到客户机830A~D使用TCP套接字824的大于阈值水平的容量,并且,装置代理820和装置代表806可然后打开另一TCP套接字826。装置代理820然后在另外的客户机(例如,客户机830E~F)之中多路复用TCP套接字826。如果一个或更多个TCP套接字上的使用低于一定的水平,装置代理820也可关闭TCP套接字,并且,可在一个或更多个剩余的TCP套接字上将客户机合并在一起。
图9A~C是示出TCP多路复用的实施例的流程图。例如,可通过装置代理实现图9A~C所示的实施例的操作和算法。在图9A中,例如,响应开始包含图9A所示的流程的服务的预先确定的指令,流程在块900中开始并且前进到块902,这里,确定是否存在对于装置代表的HTTP隧道。并且,服务可响应用户的输入或预先确定的定时器信号开始。如果确实存在HTTP隧道,那么流程前进到块906。如果不存在HTTP隧道,那么流程前进到确定是否接收HTTP隧道请求的块904。如果没有接收HTTP隧道请求,那么流程对于隧道请求等待块904。如果接收HTTP隧道请求,那么流程前进到块906。可通过使用HTTP建立HTTP隧道。HTTP隧穿是通过HTTP封装包含TCP/IP的各种网络协议的通信技术。通过使用HTTP隧穿,计算装置可通过防火墙通过使用预先确定的通信协议进行通信。
在块906中,确定是否存在与装置代表的TCP连接。如果确实存在TCP连接,那么流程前进到块912,否则流程前进到块908。在块908中,向装置代表发送TCP连接请求。然后,在块910中,建立TCP连接。在一些实施例中,装置代理可等待以发送TCP连接请求,直到装置代理接收到来自客户机的请求,但在其它的实施例中,可以发送TCP连接请求,并且,在预期到来自客户机的请求时,建立连接。在块912中,确定是否处理请求线程正在运行。如果处理请求线程正在运行,那么流程返回块902。如果否,那么流程前进到开始处理请求线程的块914,并且,流程然后前进到块902。
在图9B中,流程在块920中开始(例如,响应装置代理主机开始服务、实现装置代理的计算装置的开始、接收用户命令)并前进到块922。在块922中,确定是否从客户机接收了请求。如果还没有接收请求,那么流程在块922中等待。如果已从客户机接收了请求,那么流程前进到块924。在块924中,客户机ID被分配给客户机并分配给请求(并且,如图11所示,可对于代理表1110生成条目)。在块926中,请求(包含客户机ID)被发送到TCP连接。流程前进到确定处理响应线程是否正在运行的块928。如果处理响应线程没有运行,那么流程前进到开始处理响应线程的块930。如果在块928中处理响应线程正在运行或者一旦在930中开始处理响应线程,那么流程前进到确定是否从客户机接收新的请求的块922。如果没有接收请求,那么流程在块922中等待。如果接收到请求,那么流程重新前进到块924。
在图9C中,流程在块940中开始(例如,响应装置代理主机开始服务、从客户机接收请求、向代表发送初始请求或者响应块930的执行)并前进到块942。在块942中,确定是否接收了TCP响应。如果还没有接收TCP响应,那么流程在块942中等待。如果接收了TCP响应,那么流程前进到基于TCP响应中的客户机ID识别客户机(例如,通过使用代理表1110)的块944。然后,在块946中,响应被发送到与客户机ID关联的客户机。流程然后返回块942并等待接收另一TCP响应。
图10A~C是示出TCP多路复用的实施例的流程图。例如,可通过装置代表(例如,装置代表706、模块710、712)实现图10A~C所示的实施例的操作和算法。图10A在块1000中开始(例如,当装置代表开始服务或者接收指令时,当定时器到期时),然后流程前进到确定是否存在对于装置代理的隧道的块1002。如果存在隧道,那么流程前进到块1008,否则,流程前进到将隧道连接请求发送到装置代理的块1004。然后,在块1006中,建立隧道。流程前进到确定是否存在对于装置代理的TCP连接的块1008。如果是,那么流程前进到块1014。如果否,那么流程前进到确定是否接收了TCP连接请求的块1010。如果还没有接收到请求,那么流程在块1010中等待。如果已接收到请求,那么流程前进到建立TCP连接(例如,在装置代表与装置代理之间)的块1012。然后,在块1014中,确定处理请求线程是否正在运行。如果是,那么流程返回块1002。如果否,那么流程前进到开始处理请求线程的块1016,并然后返回块1002。
图10B在块1020中开始并且前进到确定是否经由TCP连接接收了请求的块1022。如果还没有接收请求,那么流程在块1022中等待。如果已接收请求,那么流程前进到从接收的请求提取客户机ID和消息的块1024。然后,在块1026中,在装置代表与目标装置之间打开端口x(这里使用的‘x’和‘y’分别代表任意的端口标识符,例如,80、101、34、19)(并且,如图11所示,可对于代表表1120生成条目),并且,在块1028中,客户机ID与TCP连接并与端口x关联。然后,提取的消息在块1030中发送到端口x,这里,提取的消息可被发送(例如,通过端口处理器发送)到目标装置(例如,与装置代表主机通信的其它装置、操作系统、其它的应用等)。流程然后前进到确定处理响应线程是否正在运行的块1032。如果是,那么流程前进到块1022,并且,如果否,流程前进到开始处理响应线程的块1034,并然后再前进到块1022。
图10C在块1040中开始并前进到块1042。在块1042中,确定是否在端口x上接收了响应(例如,通过处理响应线程接收)。如果还没有接收到响应,那么流程在1042处等待。如果已接收了响应,那么流程前进到块1044,并且,与端口x关联的客户机ID被添加到响应(例如,如图11所示,通过参照代表表1120)。响应然后在块1046中被发送到TCP(例如,用于发送到装置代理)。流程然后前进到块1042。
将参照图9A~C和图10A~C所示的实施例作为例子讨论两个示例性情况研究。基本上,可以应用图9A~C和图10A~C的前面的讨论的相同的解释。以下将详细讨论与前面的图9A~C和图10A~C的描述的不同。
首先,公开处理多个客户机HTTP/TCP请求的端口转送用户情况的例子。再次参照图8,考虑两个客户机,例如,像存在于防火墙802外面的因特网上的图8中的客户机830A和客户机830B。通过使用HTTP,客户机830A和客户机830B希望访问在装置代表主机800上运行的网络服务器上的网页。装置代表主机800驻留于公司防火墙802后面。装置代表主机800具有驻留于公司防火墙802外面的因特网上并且可访问客户机830A和客户机830B的装置代理(装置代理主机804)。以下是使用情况的高级描述。
现在进一步参照图9A~C。考虑客户机830A向装置代理主机804发送HTTP GET请求(GET1_REQUEST)的情况。当装置代理主机804接收GET1_REQUEST(块922)时,装置代理主机804向在块924处发送GET1_REQUEST的客户机830A分配客户机ID,并且在装置代理表1110中记录适当的数据。在块926处,装置代理主机804通过HTTP隧道(例如,隧道822)经由TCP连接(TCP1,例如,TCP套接字824)向装置代表主机800发送客户机830A的客户机ID和GET1_REQUEST。然后,流程前进到块928。当在块928中确认处理响应线程是否正在运行之后,在块930中,如果处理响应线程没有在运行,那么装置代理主机804开始处理响应线程。装置代理主机804等待在块922中从客户机接收请求。
当装置代表主机800在块1022中接收GET1_REQUEST时,装置代表主机800在块1024处提取客户机830A的客户机ID。然后,装置代表主机800在块1026处打开装置代表主机800上的端口x,在块1028处,装置代表主机800使GET1_REQUEST与客户机830A、TCP1和装置代表主机800目标端口(端口x)关联,并且,装置代表主机800在装置代表表1120中记录它们。然后,在块1030处,装置代表主机800向端口x发送GET1_REQUEST。然后,在确定处理响应线程是否正在运行(块1032)之后,如果需要的话,装置代表主机800在块1034处开始处理响应线程。
然后,考虑客户机830B向装置代理主机804发送HTTP GET请求(GET2_REQUEST)的情况。当装置代理主机804接收GET2_REQUEST(块902)时,装置代理主机804向在块924处发送GET2_REQUEST的客户机830B分配客户机ID,并且在装置代理表1110中记录适当的数据。在块926处,装置代理主机804通过HTTP隧道(例如,隧道822)经由TCP连接(TCP1,例如,TCP套接字824)向装置代表主机800发送客户机830B的客户机ID和GET2_REQUEST。然后,流程前进到块928。当在块928处确认处理响应线程是否正在运行之后,在块930处,如果处理响应线程没有在运行,那么装置代理主机804开始处理响应线程。装置代理主机804然后在块922处等待从客户机接收任何请求。
当装置代表主机800在块1022处接收GET2_REQUEST时,装置代表主机800在块1024处提取客户机830B的客户机ID。然后,装置代表主机800在块1026处打开装置代表主机800上的端口y。然后,在块1028处,装置代表主机800使GET2_REQUEST与客户机830B、TCP1和装置代表主机800的端口(端口y)关联,并且,装置代表主机800在装置代表表1120中记录它们。然后,在块1030处,装置代表主机800向端口y发送GET2_REQUEST。然后,在确定处理响应线程是否正在运行(块1032)之后,如果需要的话,装置代表主机800在块1034处开始处理响应线程。
当装置代表主机800在块1042处从端口x接收到对于GET1_REQUEST的响应(GET1_RESPONSE)时,流程前进到块1044。在块1044处,装置代表主机800从装置代表表1120检索所记录的信息,并且向响应添加与GET1_REQUEST对应的客户机ID(在本实施例中,为客户机830A)。装置代表主机800在块1046处通过HTTP隧道经由TCP1向装置代理主机804发送响应。
响应在块942处经由TCP1接收在块1046处由装置代表主机800发送的响应(GET1_RESPONSE),在块944处,装置代理主机804通过从接收的响应读取客户机ID将客户机830A识别为目的地。然后,装置代理主机804基于来自装置代理表1110的相应的信息向客户机830A发送响应(GET1_RESPONSE)。
响应在块1042处通过装置代表主机800从端口y接收响应(GET2_RESPONSE),流程前进到块1044。装置代表主机800从装置代表表1120检索所记录的相应的信息,并且在块1044处向响应添加与客户机830B相应的客户机ID。然后,装置代表主机800在块1046处通过HTTP隧道经由TCP1向装置代理主机804发送响应。
当装置代理主机804经由TCP1接收在块942处由装置代表主机800发送(如上面提到的那样,在块1046中发送)的响应(GET2_RESPONSE)时,装置代理主机804在块944处通过使用接收的响应中的客户机ID将客户机830B识别为目的地,并且从装置代理表1110检索所记录的相应的信息。然后,装置代理主机804向客户机830B发送响应(GET2_RESPONSE)。
以下是使用情况的第二例子,该第二例子描述了通过多客户机SNMP(UDP)请求的端口转送使用情况例子。
在任何公司防火墙外面的因特网上存在两个客户机(客户机830A和客户机830B)。客户机830A和830B希望使用SNMP分组以从目标装置(例如,装置代表主机800、目标装置740)检索装置信息。装置代表主机800驻留于公司防火墙后面。装置代表主机800具有驻留于公司防火墙外面的因特网上并且可访问客户机830A和830B的装置代理(装置代理主机804)。以下是使用情况的高级描述:
装置代表主机800通过使用长期HTTP连接(HTTP1)联系装置代理主机804。当今的应用中的许多需要服务器推送式通信,其中,防火墙外面的服务器(例如,装置代理主机804)需要在不被动等待目标装置启动连接的情况下向防火墙内的目标装置(例如,装置代表主机800、目标装置740)发送数据。由于防火墙保护目标装置,因此,这是困难的问题。HTTP连接被用于绕过防火墙。从防火墙内到防火墙外面的服务器/客户机通过目标装置启动HTTP连接。通常,目标装置需要一些数据,服务器/客户机通过请求的数据响应,并且,HTTP连接在目标装置接收请求的数据之后并且在目标装置不接收其它数据的情况下被关闭。通过适当的配置,服务器/客户机能够向目标装置传送请求并使得连接持续。持续或“长期HTTP连接”是通过防火墙由目标装置启动并通过使用诸如设定非常长的连接超时并对于HTTP连接使用分块模式(chunked mode)的各种技术由服务器/客户机(例如,装置代理主机804)保持打开的HTTP连接。一旦服务器/客户机具有与目标装置的连接,那么它就可根据需要向目标装置传送数据。
客户机830A向装置代理主机804发送SNMP请求(SNMP1_REQUEST)。装置代理主机804在HTTP1上向装置代表主机800发送信息以在HTTP1内创建TCP连接(TCP1)(块924和块926)并在装置代理表1110中记录相应的信息。装置代理主机804经由HTTP隧道822在TCP1上向装置代表主机800发送SNMP1_REQUEST和客户机830A的客户机ID,然后,装置代理主机804在块928处确定是否处理响应线程正在运行。如果处理响应线程没有在运行,那么装置代理主机804在块930处开始处理响应线程,并然后在块922处等待来自其它的客户机的任何附加的请求。
如果装置代表主机800经由隧道(例如,HTTP隧道)在块1022处接收SNMP1_REQUEST,那么装置代表主机800在块1024处提取客户机ID和消息,并在装置代表表1120中记录相应的信息。然后,装置代表主机800在块1026处打开端口x。然后,装置代表主机800在块1028处将客户机ID与TCP1以及与装置代表主机800目标端口(端口x)关联。装置代表主机800在块1030处发送SNMP1_REQUEST作为消息,并且,装置代表主机800在块1032处确认是否处理响应线程正在运行。如果需要的话,在块1034处,装置代表主机800开始处理响应线程。
然后,考虑客户机830B向装置代理主机804发送SNMP请求(SNMP2_REQUEST)的情况。在接收SNMP请求之后,装置代理主机804在TCP1上向装置代表主机800发送SNMP2_REQUEST和与客户机830B对应的客户机ID并在装置代理表1110中记录相应的信息。当装置代表主机800在块1022处接收SNMP2_REQUEST时,装置代表主机800在块1024处提取客户机ID和消息。然后,装置代表主机800在块1026处根据SNMP2_REQUEST打开端口y。然后,装置代表主机800在块1028处将客户机830B的客户机ID与TCP1以及与装置代表主机800目标端口(端口y)关联,并且在装置代表表1120中记录相应的信息。装置代表主机800在块1030处向端口y发送SNMP2_REQUEST作为消息,并且,装置代表主机800在块1032处确认是否处理响应线程正在运行。如果必有的话,在块1034处,装置代表主机800开始处理响应线程。
从装置代表主机800和装置代理主机804观点的使用情况的功能流程将与对于第一使用情况描述的相同。因此,响应装置代表主机800在块1042处从端口x接收响应(SNMP1_RESPONSE),流程前进到块1044。装置代表主机800从装置代表表11220检索所记录的相应的信息,并且在块1044处向响应添加与客户机830A对应的客户机ID。然后,装置代表主机800在块1046处通过HTTP隧道经由TCP1向装置代理主机804发送响应(SNMP1_RESPONSE)。
响应装置代理主机804经由TCP1接收(在块942处)在块1046处由装置代表主机800发送的响应,装置代理主机804在块944处通过使用从装置代表主机800接收的响应中的客户机ID将客户机830A识别为目的地,并且从装置代理表1110检索所记录的相应的信息(例如,客户机端口)。然后,装置代理主机804例如通过使用检索的客户机端口向客户机830A发送接收的响应(SNMP1_RESPONSE)。
响应装置代表主机800在块1042处从端口y接收响应(SNMP2_RESPONSE),流程前进到块1044。装置代表主机800从装置代表表1120检索所记录的相应的信息,并且在块1044处向响应添加与客户机830B对应的客户机ID。然后,装置代表主机800在块1046处通过HTTP隧道经由TCP1向装置代理主机804发送响应(SNMP2_RESPONSE)。
响应装置代理主机804在块942处经由TCP1接收在块1046处由装置代表主机800发送的响应,装置代理主机804在块944处通过使用响应中的客户机ID将客户机830B识别为目的地,并且从装置代理表1110检索所记录的相应的信息(例如,客户机端口)。然后,装置代理主机804例如通过使用检索的客户机端口向客户机830B发送响应(SNMP2_RESPONSE)。
公开了允许在客户机830A~830B和目标装置之中经由HTTP隧道通信的通信方法。并且,可通过CPU300执行通信方法。在通信方法中,CPU300可执行装置代理720的操作,以至少建立HTTP隧道。当然,可以建立多于一个的HTTP隧道。CPU300可执行装置代理720的操作,以保持HTTP隧道的持久性。CPU300可执行装置代理720的操作,以例如在HTTP隧道内经由TCP1从客户机830A向装置代表主机800传送包含GET1_REQUEST和/或SNMP1_REQUEST的数据。CPU300可执行装置代理720的操作,以例如在在通信中保持持久的HTTP隧道内经由TCP1从客户机830B向装置代表主机800传送GET2_REQUEST和/或SNMP2_REQUEST。另外,在一些实施例中,计算装置的其它部件(例如,总线、网卡、硬驱动、存储器控制器)可执行以上的操作或以下描述的操作的至少一部分,并且,可通过CPU300控制其它部件。
由此,可通过使用至少在一系列的消息交换中保持持久的共同的HTTP隧道经由装置代理主机804通过防火墙802发送GET1_REQUEST、SNMP1_REQUEST、GET2_REQUEST和SNMP2_REQUEST。
另外,目标装置740和/或装置代表主机800可经由装置代理主机804与客户机830A和客户机830B通信,并且,装置代理主机804中的CPU300可实现装置代理820。CPU300可导致装置代理820通过HTTP隧道发送GET1_REQUEST、SNMP1_REQUEST、GET2_REQUEST和SNMP2_REQUEST。CPU300可实现装置代理820以识别对于从装置代表主机800接收的消息(包含GET1_REQUEST、SNMP1_REQUEST、GET2_REQUEST和SNMP2_REQUEST)的响应的目的地(通过使用客户机ID)。
CPU300可为了向识别的目的地(客户机830A和/或客户机830B)传送响应而实现装置代理820。CPU300是计算处理器的例子,并且,可由多核CPU、多个单独的CPU或其它的硬件设计来实现。这种CPU可称为计算处理器。
图11示出客户机ID表的实施例的例子。装置代理表1110包含用于识别向装置代理发送请求/消息的客户机(装置、应用等)的客户机端口字段1113和包含通过装置代理向各客户机/端口分配的客户机ID的客户机ID字段1117。客户机端口字段1113可包含从客户机接收通信的装置代理上的端口,以允许装置代理在接收请求的同一端口上向客户机发送回复并且/或者添加关于客户机的抽象水平(例如,隐藏客户机是否是应用、单独的计算装置等)。客户机ID字段1117可包含由装置代理任意地分配给不同的客户机的客户机ID。装置代理表1110可被用于将从装置代表接收(例如,经由TCP连接接收)的消息映射到客户机。代理表1110还包含可被用于例如在通过装置代理和装置代表实现多个TCP连接的情况下将客户机端口和客户机ID映射到TCP端口的TCP端口字段1111。
装置代表表1120包含客户机ID字段1123和目标端口字段1125。客户机ID字段1123包含通过装置代理分配给消息的客户机ID。可通过从接收的分组提取客户机ID来填充客户机ID字段。目标端口字段1125指示接收的消息转送到的目标装置上的目标端口。装置代表表允许对于转送的消息的回复被映射到与请求关联的客户机ID,并且,客户机ID可被添加到回复,并且回复可然后被送回客户机(例如,经由TCP连接和装置代理)。装置代表表1120还包含可被用于例如在通过装置代理和装置代表实现多个TCP连接的情况下将客户机ID映射到TCP端口的TCP端口字段1121。
可通过将上面存储有用于实现上述的操作的计算机可执行指令的一个或更多个存储介质供给到被配置为读取存储于一个或更多个存储介质中的计算机可执行指令的一个或更多个装置并执行它们,实现上述的装置、系统和方法。在这种情况下,系统和/或装置在执行从一个或更多个存储介质读取的计算机可执行指令时执行上述的实施例的操作。并且,一个或更多个系统和/或装置上的操作系统可实现上述的实施例的操作的至少一部分。因此,计算机可执行指令和/或其中存储计算机可执行指令的一个或更多个存储介质构成实施例。
可以使用任何适用的计算机可读存储介质作为用于计算机可执行指令的存储介质。计算机可执行指令可写入到设置在插入到装置中的功能扩展板上或与装置连接的功能扩展单元上的计算机可读存储介质,并且,设置在功能扩展板或单元上的CPU可实现上述的实施例的操作。
本公开提供了关于特定的代表性的实施例的详细的描述。应当理解,所附的权利要求的范围不限于上述的实施例,并且,可以提出各种变化和修改,而不背离权利要求的范围。
权利要求书(按照条约第19条的修改)
1.一种用于代理上的TCP多路复用的方法,其中,所述代理将来自客户机的多个TCP请求合并成所述代理与服务器之间的一个TCP连接,该方法包括以下的步骤:
打开代理与服务器之间的持久TCP连接;
在所述代理处从客户机接收连接请求;
登记所述客户机的唯一标识符;
使端口在代理表中与所述客户机的唯一标识符关联;
在所述持久TCP连接上用信号通知所述服务器登记所述客户机的唯一标识符;
从所述客户机接收外出的数据;
将所述客户机的唯一标识符添附到所述外出的数据;
在所述持久TCP连接上将上述经添附的外出的数据转送到所述服务器;
在所述持久TCP连接上从服务器接收经添附的到来的数据,其中,所述经添附的到来的数据包含被添附到数据的标识符;
从所述经添附的到来的数据提取标识符和到来的数据,并且基于所述代理表识别与提取的标识符对应的端口;以及
使提取的到来的数据返回与提取的标识符对应的端口。
2.根据权利要求1的方法,其中,打开代理与服务器之间的持久TCP连接的步骤包含在服务器与代理之间交换ECHO命令。
3.根据权利要求1的方法,其中,服务器和代理被防火墙分开,所述防火墙将代理暴露于到来的连接请求并对于服务器屏蔽这种请求,其中,打开代理与服务器之间的持久TCP连接的步骤包含接收来自服务器的ECHO命令并接收来自代理的对它的响应。
4.根据权利要求1的方法,所述方法还包括关闭服务器与代理之间的持久TCP连接的步骤。
5.根据权利要求1的方法,所述方法还包括构成包含登记客户机和客户机的唯一标识符的命令的命令序列的步骤,其中,用信号通知服务器的步骤包含在所述持久TCP连接上向服务器发送所述命令序列。
6.根据权利要求1的方法,所述方法还包括构成包含返回数据、客户机的唯一标识符和来自客户机的外出数据的命令的命令序列的步骤,其中,转送经添附的外出数据的步骤包含向服务器发送所述命令序列。
7.根据权利要求1的方法,所述方法还包括接收来自客户机的关闭客户机连接的请求的步骤。
8.根据权利要求7的方法,其中,响应来自客户机的关闭客户机连接的请求,所述方法还包括以下的步骤:
将客户机及其唯一标识符解除登记;以及
在所述持久TCP连接上用信号通知服务器将该唯一标识符解除登记。
9.一种将来自客户机的多个TCP请求合并成代理与服务器之间的一个TCP连接的代理,所述代理包含:
被构建为存储计算机可执行的处理步骤的计算机可读存储器;和
被构建为执行存储于存储器中的计算机可执行处理步骤的处理器,
其中,存储于存储器中的处理步骤使处理器执行TCP多路复用,并且,存储于存储器中的处理步骤包含进行以下处理的计算机可执行步骤:
打开代理与服务器之间的持久TCP连接;
在所述代理处从客户机接收连接请求,其中,所述连接请求包含用于在所述客户机与服务器之间建立新的连接的请求;
登记客户机的唯一标识符;
使端口在代理表中与所述客户机的唯一标识符关联;
在所述持久TCP连接上用信号通知服务器登记客户机的唯一标识符;
从客户机接收数据请求,其中,所述数据请求包含对于服务器上的数据的请求;
将客户机的唯一标识符添附到数据请求;
在所述持久TCP连接上向服务器转送经添附的数据请求;
在持久TCP连接上从服务器接收经添附的数据,其中,所述经添附的数据包含被添附到数据的标识符;
从所述经添附的数据提取标识符和数据,并且基于所述代理表识别与提取的标识符对应的端口;以及
将提取的数据返回与提取的标识符对应的端口。
10.根据权利要求9的代理,其中,打开代理与服务器之间的持久TCP连接的处理步骤包含在服务器与代理之间交换ECHO命令。
11.根据权利要求9的代理,其中,服务器和代理被防火墙分开,所述防火墙将代理暴露于到来的连接请求并对于服务器屏蔽这种请求,其中,打开代理与服务器之间的持久TCP连接的步骤包含接收来自服务器的ECHO命令并接收来自代理的对它的响应。
12.根据权利要求9的代理,其中,存储于存储器中的处理步骤还包括关闭服务器与代理之间的持久TCP连接的计算机可执行步骤。
13.根据权利要求9的代理,其中,存储于存储器中的处理步骤还包括构成包含登记客户机和客户机的唯一标识符的命令的命令序列的计算机可执行步骤,其中,用信号通知服务器的步骤包含在持久TCP连接上向服务器发送所述命令序列。
14.根据权利要求9的代理,其中,存储于存储器中的处理步骤还包括构成包含返回数据、客户机的唯一标识符和来自客户机的数据请求的命令的命令序列的计算机可执行步骤,其中,转送经添附的数据请求的步骤包含向服务器发送所述命令序列。
15.根据权利要求9的代理,其中,存储于存储器中的处理步骤还包括接收来自客户机的关闭客户机连接的请求的计算机可执行步骤。
16.根据权利要求15的代理,其中,响应来自客户机的关闭客户机连接的请求,存储于存储器中的处理步骤还包括进行以下处理的计算机可执行步骤:
将客户机及其唯一标识符解除登记;和
在持久TCP连接上用信号通知服务器将该唯一标识符解除登记。
17.上面存储用于使一个或更多个计算装置执行用于代理上的TCP多路复用的操作的计算机可执行指令的一个或更多个计算机可读存储器介质,其中,所述代理将来自客户机的多个TCP请求合并成代理与服务器之间的一个TCP连接,所述操作包括:
打开代理与服务器之间的持久TCP连接;
在所述代理处从客户机接收连接请求,其中,所述连接请求包含用于在客户机与服务器之间建立连接的请求;
登记客户机的唯一标识符;
使端口在代理表中与所述客户机的唯一标识符关联;
在所述持久TCP连接上用信号通知服务器登记客户机的唯一标识符;
从客户机接收外出的数据;
将客户机的唯一标识符添附到所述外出的数据;
在所述持久TCP连接上将经添附的外出的数据转送到服务器;
在所述持久TCP连接上从服务器接收经添附的到来的数据,其中,经添附的到来的数据包含被添附到到来的数据的标识符;
从经添附的到来的数据提取标识符和到来的数据;
基于所述代理表识别与提取的标识符对应的端口;以及
将提取的到来的数据返回与提取的标识符对应的端口。
18.一种用于经由HTTP隧道在第一信息设备、第二信息设备与装置之间通信的方法,该方法由计算装置执行,该方法包括:
建立至少一个HTTP隧道;
控制以保持HTTP隧道持久;
在HTTP隧道内根据预先确定的通信协议从第一信息设备向装置传送第一数据;和
在HTTP隧道内根据预先确定的通信协议从第二信息设备向所述装置传送第二数据,
其中,通过使用保持持久的HTTP隧道,第一数据和第二数据通过防火墙被传输到所述装置。
19.根据权利要求18的通信方法,其中,所述装置经由代理服务器与第一信息设备和第二信息设备通信,其中,计算装置控制代理服务器,并且,所述通信方法还包括:
经由所述HTTP隧道接收与第一数据关联的响应和与第二数据关联的响应;
识别与第一数据关联的接收的响应的目的地和与第二数据关联的接收的响应的目的地;和
向识别的目的地发送接收的响应。
20.根据权利要求18的通信方法,还包括:
在代理表中记录对于第一数据的第一客户机标识符,其中,第一客户机标识符在代理表中与第一信息设备和第一端口关联;以及
在代理表中记录对于第二数据的第二客户机标识符,其中,第二客户机标识符与第二信息设备和第二端口关联,
至少部分基于代理表中的第一客户机标识符将第一信息设备识别为对于与第一数据关联的接收的响应的目的地;
将与第一数据关联的接收的响应发送到第一端口;
至少部分基于代理表中的第二客户机标识符将第二信息设备识别为对于与第二数据关联的接收的响应的目的地;以及
将与第二数据关联的接收的响应发送到第二端口。

Claims (20)

1.一种用于代理上的TCP多路复用的方法,其中,所述代理将来自客户机的多个TCP请求合并成所述代理与服务器之间的一个TCP连接,该方法包括以下的步骤:
打开代理与服务器之间的持久TCP连接;
在所述代理处从客户机接收连接请求;
登记所述客户机的唯一标识符;
在所述持久TCP连接上用信号通知所述服务器登记所述客户机的唯一标识符;
从所述客户机接收外出的数据;
将所述客户机的唯一标识符添附到所述外出的数据;
在所述持久TCP连接上将上述经添附的外出的数据转送到所述服务器;
在所述持久TCP连接上从服务器接收经添附的到来的数据,其中,所述经添附的到来的数据包含被添附到数据的标识符;
从所述经添附的到来的数据提取标识符和到来的数据,并且识别与提取的标识符对应的客户机和客户机连接;以及
在所述客户机连接上使提取的到来的数据返回与提取的标识符对应的客户机。
2.根据权利要求1的方法,其中,打开代理与服务器之间的持久TCP连接的步骤包含在服务器与代理之间交换ECHO命令。
3.根据权利要求1的方法,其中,服务器和代理被防火墙分开,所述防火墙将代理暴露于到来的连接请求并对于服务器屏蔽这种请求,其中,打开代理与服务器之间的持久TCP连接的步骤包含接收来自服务器的ECHO命令并接收来自代理的对它的响应。
4.根据权利要求1的方法,所述方法还包括关闭服务器与代理之间的持久TCP连接的步骤。
5.根据权利要求1的方法,所述方法还包括构成包含登记客户机和客户机的唯一标识符的命令的命令序列的步骤,其中,用信号通知服务器的步骤包含在所述持久TCP连接上向服务器发送所述命令序列。
6.根据权利要求1的方法,所述方法还包括构成包含返回数据、客户机的唯一标识符和来自客户机的外出数据的命令的命令序列的步骤,其中,转送经添附的外出数据的步骤包含向服务器发送所述命令序列。
7.根据权利要求1的方法,所述方法还包括接收来自客户机的关闭客户机连接的请求的步骤。
8.根据权利要求7的方法,其中,响应来自客户机的关闭客户机连接的请求,所述方法还包括以下的步骤:
将客户机及其唯一标识符解除登记;以及
在所述持久TCP连接上用信号通知服务器将该唯一标识符解除登记。
9.一种将来自客户机的多个TCP请求合并成代理与服务器之间的一个TCP连接的代理,所述代理包含:
被构建为存储计算机可执行的处理步骤的计算机可读存储器;和
被构建为执行存储于存储器中的计算机可执行处理步骤的处理器,
其中,存储于存储器中的处理步骤使处理器执行TCP多路复用,并且,存储于存储器中的处理步骤包含进行以下处理的计算机可执行步骤:
打开代理与服务器之间的持久TCP连接;
在所述代理处从客户机接收连接请求,其中,所述连接请求包含用于在所述客户机与服务器之间建立新的连接的请求;
登记客户机的唯一标识符;
在所述持久TCP连接上用信号通知服务器登记客户机的唯一标识符;
从客户机接收数据请求,其中,所述数据请求包含对于服务器上的数据的请求;
将客户机的唯一标识符添附到数据请求;
在所述持久TCP连接上向服务器转送经添附的数据请求;
在持久TCP连接上从服务器接收经添附的数据,其中,所述经添附的数据包含被添附到数据的标识符;
从所述经添附的数据提取标识符和数据,并且识别与提取的标识符对应的客户机和客户机连接;以及
将提取的数据返回与提取的标识符对应的客户机。
10.根据权利要求9的代理,其中,打开代理与服务器之间的持久TCP连接的处理步骤包含在服务器与代理之间交换ECHO命令。
11.根据权利要求9的代理,其中,服务器和代理被防火墙分开,所述防火墙将代理暴露于到来的连接请求并对于服务器屏蔽这种请求,其中,打开代理与服务器之间的持久TCP连接的步骤包含接收来自服务器的ECHO命令并接收来自代理的对它的响应。
12.根据权利要求9的代理,其中,存储于存储器中的处理步骤还包括关闭服务器与代理之间的持久TCP连接的计算机可执行步骤。
13.根据权利要求9的代理,其中,存储于存储器中的处理步骤还包括构成包含登记客户机和客户机的唯一标识符的命令的命令序列的计算机可执行步骤,其中,用信号通知服务器的步骤包含在持久TCP连接上向服务器发送所述命令序列。
14.根据权利要求9的代理,其中,存储于存储器中的处理步骤还包括构成包含返回数据、客户机的唯一标识符和来自客户机的数据请求的命令的命令序列的计算机可执行步骤,其中,转送经添附的数据请求的步骤包含向服务器发送所述命令序列。
15.根据权利要求9的代理,其中,存储于存储器中的处理步骤还包括接收来自客户机的关闭客户机连接的请求的计算机可执行步骤。
16.根据权利要求15的代理,其中,响应来自客户机的关闭客户机连接的请求,存储于存储器中的处理步骤还包括进行以下处理的计算机可执行步骤:
将客户机及其唯一标识符解除登记;和
在持久TCP连接上用信号通知服务器将该唯一标识符解除登记。
17.上面存储用于使一个或更多个计算装置执行用于代理上的TCP多路复用的操作的计算机可执行指令的一个或更多个计算机可读存储器介质,其中,所述代理将来自客户机的多个TCP请求合并成代理与服务器之间的一个TCP连接,所述操作包括:
打开代理与服务器之间的持久TCP连接;
在所述代理处从客户机接收连接请求,其中,所述连接请求包含用于在客户机与服务器之间建立连接的请求;
登记客户机的唯一标识符;
在所述持久TCP连接上用信号通知服务器登记客户机的唯一标识符;
从客户机接收外出的数据;
将客户机的唯一标识符添附到所述外出的数据;
在所述持久TCP连接上将经添附的外出的数据转送到服务器;
在所述持久TCP连接上从服务器接收经添附的到来的数据,其中,经添附的到来的数据包含被添附到到来的数据的标识符;
从经添附的到来的数据提取标识符和到来的数据;
识别与提取的标识符对应的客户机;以及
将提取的到来的数据返回与提取的标识符对应的客户机。
18.一种用于经由HTTP隧道在第一信息设备、第二信息设备与装置之间通信的方法,该方法由计算装置执行,该方法包括:
建立至少一个HTTP隧道;
控制以保持HTTP隧道持久;
在HTTP隧道内根据预先确定的通信协议从第一信息设备向所述装置传送第一数据;和
在HTTP隧道内根据预先确定的通信协议从第二信息设备向所述装置传送第二数据,
其中,通过使用保持持久的HTTP隧道,第一数据和第二数据通过防火墙被传输到所述装置。
19.根据权利要求18的通信方法,其中,所述装置经由代理服务器与第一信息设备和第二信息设备通信,其中,计算装置控制代理服务器,并且,所述通信方法还包括:
经由所述HTTP隧道接收与第一数据关联的响应和与第二数据关联的响应;
识别与第一数据关联的接收的响应和与第二数据关联的接收的响应的目的地;和
向识别的目的地发送接收的响应。
20.根据权利要求18的通信方法,还包括:
在代理表中记录对于第一数据的第一客户机标识符,其中,第一客户机标识符在代理表中与第一信息设备关联;以及
在代理表中记录对于第二数据的第二客户机标识符,其中,第二客户机标识符与第二信息设备关联,
其中,至少部分地基于代理表识别与第一数据关联的接收的响应和与第二数据关联的接收的响应的目的地。
CN201180041249.1A 2010-09-01 2011-08-26 用于多路复用网络信道的系统和方法 Active CN103081382B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US12/874,143 2010-09-01
US12/874,143 US20120054316A1 (en) 2010-09-01 2010-09-01 Tcp multiplexing over a proxy
US13/212,995 2011-08-18
US13/212,995 US8996657B2 (en) 2010-09-01 2011-08-18 Systems and methods for multiplexing network channels
PCT/US2011/049409 WO2012030661A1 (en) 2010-09-01 2011-08-26 Systems and methods for multiplexing network channels

Publications (2)

Publication Number Publication Date
CN103081382A true CN103081382A (zh) 2013-05-01
CN103081382B CN103081382B (zh) 2015-11-25

Family

ID=45698963

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180041249.1A Active CN103081382B (zh) 2010-09-01 2011-08-26 用于多路复用网络信道的系统和方法

Country Status (3)

Country Link
US (1) US8996657B2 (zh)
CN (1) CN103081382B (zh)
WO (1) WO2012030661A1 (zh)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105743812A (zh) * 2014-12-26 2016-07-06 英特尔公司 在单个连接上多路复用许多客户端流
CN106878304A (zh) * 2017-02-15 2017-06-20 国网天津市电力公司 一种分布式代理的链路复用的方法
CN109327511A (zh) * 2018-09-18 2019-02-12 网宿科技股份有限公司 一种基于http协议的数据请求方法和服务器
CN109842646A (zh) * 2017-11-27 2019-06-04 北京京东尚科信息技术有限公司 网络请求的处理方法和装置
US10432754B2 (en) 2015-09-16 2019-10-01 Profire Energy, Inc Safety networking protocol and method
US10514683B2 (en) 2015-09-16 2019-12-24 Profire Energy, Inc. Distributed networking system and method to implement a safety state environment
CN110945848A (zh) * 2017-08-03 2020-03-31 安步拓科技股份有限公司 客户端设备、数据收集系统、数据发送方法和程序
CN111800499A (zh) * 2020-06-30 2020-10-20 北京百度网讯科技有限公司 一种数据传输方法、装置及电子设备
CN113472875A (zh) * 2021-06-28 2021-10-01 深信服科技股份有限公司 一种连接复用方法、装置、电子设备及存储介质

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9667675B2 (en) * 2012-03-31 2017-05-30 Facebook, Inc. Proxy and method for determination of a unique user identification for a plurality of applications accessing the web from a mobile device
US20160105399A1 (en) * 2012-04-05 2016-04-14 Peter Rung Systems and Methods for Cloaking Communications
US20140281018A1 (en) * 2013-03-13 2014-09-18 Futurewei Technologies, Inc. Dynamic Optimization of TCP Connections
CN104113564A (zh) * 2013-04-17 2014-10-22 中国移动通信集团公司 超文本传输协议连接复用方法、设备、系统及终端
US9432330B2 (en) 2013-05-29 2016-08-30 Huawei Technologies Co., Ltd. Data interaction method, apparatus, and system
JP6115396B2 (ja) * 2013-08-15 2017-04-19 富士通株式会社 情報処理システム,情報処理装置,情報処理装置の制御プログラム,及び情報処理システムの制御方法
JP5962690B2 (ja) * 2014-02-21 2016-08-03 コニカミノルタ株式会社 管理サーバー、接続支援方法および接続支援プログラム
US9350791B2 (en) 2014-03-21 2016-05-24 Ptc Inc. System and method of injecting states into message routing in a distributed computing environment
EP3120497B1 (en) * 2014-03-21 2019-12-11 PTC Inc. Systems and methods for routing messages in distributed computing environments
US9485177B2 (en) * 2014-05-30 2016-11-01 Apple Inc. Client applications communicating via a user tunnel
JP6102845B2 (ja) * 2014-07-10 2017-03-29 コニカミノルタ株式会社 接続制御システム、管理サーバー、接続支援方法および接続支援プログラム
EP3251324B1 (en) * 2015-01-26 2020-09-23 Mobile Iron, Inc. Secure access to cloud-based services
US10200499B1 (en) 2015-01-30 2019-02-05 Symantec Corporation Systems and methods for reducing network traffic by using delta transfers
US9735965B1 (en) 2015-04-16 2017-08-15 Symantec Corporation Systems and methods for protecting notification messages
JP6311666B2 (ja) * 2015-07-01 2018-04-18 コニカミノルタ株式会社 通信システム、管理サーバおよびプログラム
EP3338386A4 (en) * 2015-09-21 2018-10-24 Huawei Technologies Co., Ltd. Fast and scalable database cluster communication path
US10187485B1 (en) 2015-09-28 2019-01-22 Symantec Corporation Systems and methods for sending push notifications that include preferred data center routing information
US10567356B2 (en) * 2017-06-20 2020-02-18 Microsoft Technology Licensing, Llc Monitoring cloud computing environments with data control policies
US10762218B2 (en) 2017-06-20 2020-09-01 Microsoft Technology Licensing, Llc Network buildout for cloud computing environments with data control policies
CN112637236B (zh) * 2020-12-31 2022-08-16 河南信大网御科技有限公司 脱离协议栈的http代理方法、架构及介质
CN116647547B (zh) * 2023-05-26 2023-10-13 南京粒聚智能科技有限公司 一种工业现场设备远程通信连接的方法和装置

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104716A (en) * 1997-03-28 2000-08-15 International Business Machines Corporation Method and apparatus for lightweight secure communication tunneling over the internet
US20020052931A1 (en) * 2000-10-10 2002-05-02 Christopher Peiffer HTTP multiplexor/demultiplexor
US20020156901A1 (en) * 1999-03-15 2002-10-24 Wall Data Incorporated Method and system for providing a persistent HTTP tunnel
US20030009571A1 (en) * 2001-06-28 2003-01-09 Bavadekar Shailesh S. System and method for providing tunnel connections between entities in a messaging system
US20060026290A1 (en) * 2004-07-28 2006-02-02 Brian Pulito Scalable infrastructure for handling light weight message protocols
CN1849798A (zh) * 2003-09-12 2006-10-18 西门子公司 基于临时名称标识符的在移动网络上的可达性维持
US20080034092A1 (en) * 2006-07-06 2008-02-07 Satoshi Kikuchi Access control system and access control server
US20080229404A1 (en) * 2001-07-18 2008-09-18 Art Technology Group, Inc Automated methods and processes for establishing media streaming connections through firewalls and proxy servers and countermeasures thereto
CN101317408A (zh) * 2005-09-29 2008-12-03 蒂蒙系统公司 通过互联网提供异步通信的方法和系统
US20090172801A1 (en) * 2007-12-28 2009-07-02 Echostar Technologies Corporation Performance enhancing proxy
CN101754168A (zh) * 2008-12-04 2010-06-23 中国移动通信集团公司 移动节点多接口间的切换方法、装置及系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6631416B2 (en) 2000-04-12 2003-10-07 Openreach Inc. Methods and systems for enabling a tunnel between two computers on a network
US7562147B1 (en) 2000-10-02 2009-07-14 Microsoft Corporation Bi-directional HTTP-based reliable messaging protocol and system utilizing same
US20020078117A1 (en) * 2000-12-19 2002-06-20 Wang Baldonado Michelle Q. System for creating efficient multi-step document conversion services
JP3777302B2 (ja) * 2000-12-21 2006-05-24 富士通株式会社 通信振り分け制御装置、および通信振り分けプログラムを記憶した記憶媒体
US7979528B2 (en) * 2002-03-27 2011-07-12 Radvision Ltd. System and method for traversing firewalls, NATs, and proxies with rich media communications and other application protocols
US20030217149A1 (en) 2002-05-20 2003-11-20 International Business Machines Corporation Method and apparatus for tunneling TCP/IP over HTTP and HTTPS
US8176186B2 (en) 2002-10-30 2012-05-08 Riverbed Technology, Inc. Transaction accelerator for client-server communications systems
US8238241B2 (en) * 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
US7272642B2 (en) 2003-10-06 2007-09-18 International Business Machines Corporation Detecting a reverse proxy and establishing a tunneled connection therethrough
US7406533B2 (en) 2003-10-08 2008-07-29 Seiko Epson Corporation Method and apparatus for tunneling data through a single port
US7486698B2 (en) 2003-12-19 2009-02-03 Solace Systems, Inc. Multiplexing of control and data over an HTTP connection
US7333990B1 (en) 2004-06-22 2008-02-19 Sun Microsystems, Inc. Dynamic reverse proxy
US8700695B2 (en) 2004-12-30 2014-04-15 Citrix Systems, Inc. Systems and methods for providing client-side accelerated access to remote applications via TCP pooling
US9154512B2 (en) * 2006-03-30 2015-10-06 Cisco Technology, Inc. Transparently proxying transport protocol connections using an external server
US20080114882A1 (en) 2006-11-13 2008-05-15 David Alan Christenson Multiplexing Multiple Client Connections in a Single Socket
US8675630B2 (en) * 2008-05-22 2014-03-18 Qualcomm Incorporated Systems and methods for multiplexing multiple connections in mobile IP network

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6104716A (en) * 1997-03-28 2000-08-15 International Business Machines Corporation Method and apparatus for lightweight secure communication tunneling over the internet
US20020156901A1 (en) * 1999-03-15 2002-10-24 Wall Data Incorporated Method and system for providing a persistent HTTP tunnel
US20020052931A1 (en) * 2000-10-10 2002-05-02 Christopher Peiffer HTTP multiplexor/demultiplexor
US20030009571A1 (en) * 2001-06-28 2003-01-09 Bavadekar Shailesh S. System and method for providing tunnel connections between entities in a messaging system
US20080229404A1 (en) * 2001-07-18 2008-09-18 Art Technology Group, Inc Automated methods and processes for establishing media streaming connections through firewalls and proxy servers and countermeasures thereto
CN1849798A (zh) * 2003-09-12 2006-10-18 西门子公司 基于临时名称标识符的在移动网络上的可达性维持
US20060026290A1 (en) * 2004-07-28 2006-02-02 Brian Pulito Scalable infrastructure for handling light weight message protocols
CN101317408A (zh) * 2005-09-29 2008-12-03 蒂蒙系统公司 通过互联网提供异步通信的方法和系统
US20080034092A1 (en) * 2006-07-06 2008-02-07 Satoshi Kikuchi Access control system and access control server
US20090172801A1 (en) * 2007-12-28 2009-07-02 Echostar Technologies Corporation Performance enhancing proxy
CN101754168A (zh) * 2008-12-04 2010-06-23 中国移动通信集团公司 移动节点多接口间的切换方法、装置及系统

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105743812B (zh) * 2014-12-26 2019-08-27 英特尔公司 通信方法、网络服务器装置以及代理服务器装置
CN105743812A (zh) * 2014-12-26 2016-07-06 英特尔公司 在单个连接上多路复用许多客户端流
US10992787B2 (en) 2015-09-16 2021-04-27 Profire Energy, Inc. Safety networking protocol and method
US10432754B2 (en) 2015-09-16 2019-10-01 Profire Energy, Inc Safety networking protocol and method
US10514683B2 (en) 2015-09-16 2019-12-24 Profire Energy, Inc. Distributed networking system and method to implement a safety state environment
US11314235B2 (en) 2015-09-16 2022-04-26 Profire Energy, Inc. Systems to implement a safety state environment among control modules
CN106878304A (zh) * 2017-02-15 2017-06-20 国网天津市电力公司 一种分布式代理的链路复用的方法
CN110945848A (zh) * 2017-08-03 2020-03-31 安步拓科技股份有限公司 客户端设备、数据收集系统、数据发送方法和程序
CN110945848B (zh) * 2017-08-03 2022-04-15 安步拓科技股份有限公司 客户端设备、数据收集系统、数据发送方法和程序
CN109842646A (zh) * 2017-11-27 2019-06-04 北京京东尚科信息技术有限公司 网络请求的处理方法和装置
CN109327511A (zh) * 2018-09-18 2019-02-12 网宿科技股份有限公司 一种基于http协议的数据请求方法和服务器
US11330035B2 (en) 2018-09-18 2022-05-10 Wangsu Science & Technology Co., Ltd. Method and server for HTTP protocol-based data request
CN111800499A (zh) * 2020-06-30 2020-10-20 北京百度网讯科技有限公司 一种数据传输方法、装置及电子设备
CN113472875A (zh) * 2021-06-28 2021-10-01 深信服科技股份有限公司 一种连接复用方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN103081382B (zh) 2015-11-25
WO2012030661A1 (en) 2012-03-08
WO2012030661A4 (en) 2012-05-10
US20120054851A1 (en) 2012-03-01
US8996657B2 (en) 2015-03-31

Similar Documents

Publication Publication Date Title
CN103081382A (zh) 用于多路复用网络信道的系统和方法
CN102571749B (zh) 使用中继服务器的数据传输系统和方法
US8885649B2 (en) Method, apparatus, and system for implementing private network traversal
JP4053967B2 (ja) Vlanサーバ
US7072933B1 (en) Network access control using network address translation
JP2005244408A (ja) ネットワーク・セグメントが互いに異なる複数のネットワークに接続されたゲートウェイ装置、およびipパケットを転送するためのプログラムおよび方法
EP1931061B1 (en) Managing the connection status of wireless communication
US7720097B2 (en) Communication apparatus, communication method, communication program and recording medium
US20150381563A1 (en) Relay system for transmitting ip address of client to server and method therefor
CN111327668B (zh) 网络管理方法、装置、设备和存储介质
US20150127837A1 (en) Relay apparatus and data transfer method
US8948101B2 (en) Client-server communications in mobile radio communications device
RU2462746C1 (ru) Способ, устройство и система управления
CN102594886A (zh) 浏览器与浏览器直通的方法、装置和通信系统
CN109922074B (zh) 接入带外管理网络的方法和装置、管理方法、设备、介质
WO2001006385A1 (en) A communication system for general connection interface machines
CN113132364A (zh) Arp拟制表项的生成方法、电子设备
CN105959248B (zh) 报文访问控制的方法及装置
US7536479B2 (en) Local and remote network based management of an operating system-independent processor
CN108111575B (zh) 一种可扩展的客户机与虚拟机数据交互系统
SE526933C2 (sv) Applikationsgränssnitt samt en anordning och en metod för anslutning av ett applikationsdelsystem med ett kommunikationsdelsystem
CN110809033B (zh) 报文转发方法、装置及交换服务器
CN110520838B (zh) 配置网络中的至少一个装置的方法
US7701879B2 (en) Method for control of communications from edge device of access network, and edge device and network management module for performing method
CN112783959B (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