CN102804687B - 使用超文本传输协议作为双向数据流的传输的方法和系统 - Google Patents

使用超文本传输协议作为双向数据流的传输的方法和系统 Download PDF

Info

Publication number
CN102804687B
CN102804687B CN201080027711.8A CN201080027711A CN102804687B CN 102804687 B CN102804687 B CN 102804687B CN 201080027711 A CN201080027711 A CN 201080027711A CN 102804687 B CN102804687 B CN 102804687B
Authority
CN
China
Prior art keywords
data
http
computer system
action
http request
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
CN201080027711.8A
Other languages
English (en)
Other versions
CN102804687A (zh
Inventor
C·F·瓦斯特斯
D·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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102804687A publication Critical patent/CN102804687A/zh
Application granted granted Critical
Publication of CN102804687B publication Critical patent/CN102804687B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/029Firewall traversal, e.g. tunnelling or, creating pinholes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • 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
    • 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
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及用于将超文本传输协议通信用作双向数据流的传输的方法、系统、以及计算机程序产品。本发明的各实施例促进通过防火墙传递否则被阻止的TCP通信。本发明的各实施例可以被用来通过防火墙传递合法的TCP通信,即使防火墙被配置成阻止合法的TCP通信。

Description

使用超文本传输协议作为双向数据流的传输的方法和系统
背景技术
1.背景和相关技术
计算机系统和相关技术影响着社会的方方面面。的确,计算机系统处理信息的能力已经改变了我们生活和工作的方式。现在,计算机系统普遍地执行许多在计算机系统出现之前手动执行的任务(例如,文字处理、调度,计帐,等等)。最近,计算机系统已经被彼此耦合在一起,并被耦合到其他电子设备,以形成有线和无线计算机网络,在这些网络上,计算机系统及其他电子设备可以传输电子数据。相应地,许多计算任务的执行被分布到许多不同的计算机系统上和/或许多不同的计算环境上。
防火墙在许多计算环境中用于调节受保护的网络(例如,公司LAN)和不受保护的网络(例如,因特网)之间的通信。针对不同级别的复杂性,防火墙可以被配置成阻止在受保护的网络和/或不受保护的网络内始发的各种协议、服务等等。协议和服务通常被阻止以减轻在受保护的网络上发生恶意活动的可能性。
然而,信息技术(IT)人员容易在配置防火墙设置时在警告方面发生错误。如此,许多防火墙被配置成对可以通过防火墙在受保护的和无保护的网络之间传递的通信的类型施加严格的限制。例如,IT人员可能对网络设置尽可能最严格的限制,只为了将安全性提高到其最完全的程度。然而,IT人员常常不能以适当的细粒度级别来考虑可能需要的合法的通信的类型。因此,一种或多种类型的合法的通信被防火墙阻止并非是不常见的。
发明内容
本发明涉及将超文本传输协议(“HTTP”)用作双向数据流的传输协议的方法、系统,以及计算机程序产品。在某些实施例中,双向数据流的 特征密切地近似于用传输控制协议(“TCP”)来建立的双向数据流的特征。计算机系统尝试使用TCP通信与另一计算机系统进行通信。计算机系统接收防火墙阻止了TCP通信的指示。计算机系统响应于防火墙阻止TCP通信,通过防火墙向其他计算机系统发送HTTP通信。
其他计算机系统通过防火墙从计算机系统接收HTTP通信。其他计算机系统响应于HTTP通信向计算机系统发送上游URI和下游URI。计算机系统从其他计算机系统接收上游URI和下游URI。
通过HTTP通信来模拟双向数据套接字(例如,密切地近似于TCP套接字)。计算机系统向其他计算机系统发送向上游URI发送数据的HTTP请求,并发送从下游URI接收数据的HTTP请求。其他计算机系统从该计算机系统接收向上游URI发送数据的HTTP请求,并接收从下游URI接收数据的HTTP请求。发送数据的HTTP请求和接收数据的HTTP请求被一起绑定在计算机系统和其他计算机系统之间的双向数据流中(例如,具有类似于TCP双向数据流的特征)。
提供本发明内容以便以简化形式介绍将在以下的具体实施方式中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
本发明的附加特征和优点将在以下描述中叙述,且其一部分根据本描述将是显而易见的,或可通过对本发明的实践来获知。本发明的特征和优点可通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的这些和其他特征将通过以下描述和所附权利要求书变得更加显而易见,或可通过对下文中所述的本发明的实践来领会。
附图说明
为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述 和解释本发明,在附图中:
图1示出了便于将超文本传输协议(“HTTP”)通信用作双向数据流的传输的示例计算机体系结构。
图2示出了便于当将HTTP通信用作通过双向数据流的通信的传输时节流数据流并使HTTP请求保持活动状态的示例计算机体系结构。
图3示出了用于将HTTP通信用作双向数据流的传输的示例方法的流程图。
具体实施方式
本发明涉及用于将超文本传输协议通信(“HTTP”)用作双向数据流的传输的方法、系统,以及计算机程序产品。在某些实施例中,双向数据流的特征密切地近似于利用传输控制协议(“TCP”)建立的双向数据流的那些特征。计算机系统尝试使用TCP通信与另一计算机系统进行通信。计算机系统接收防火墙阻止了TCP通信的指示。计算机系统响应于防火墙阻止TCP通信,通过防火墙向其他计算机系统发送HTTP通信。
其他计算机系统通过防火墙从计算机系统接收HTTP通信。其他计算机系统响应于该HTTP通信向计算机系统发送上游URI和下游URI。计算机系统从其他计算机系统接收上游URI和下游URI。
通过HTTP通信来模拟双向数据套接字(例如,密切地近似于TCP套接字)。计算机系统向其他计算机系统发送向上游URI发送数据的HTTP请求,并发送从下游URI接收数据的HTTP请求。其他计算机系统从该计算机系统接收向上游URI发送数据的HTTP请求,并接收从下游URI接收数据的HTTP请求。发送数据的HTTP请求和接收数据的HTTP请求被一起绑定在该计算机系统和其他计算机系统之间的双向数据流中(例如,具有类似于TCP双向数据流的特征)。
因此,该计算机系统使用上游URI来通过防火墙向其他计算机系统发送通信。同样,其他计算机系统使用上游URI来通过防火墙从该计算机系统接收通信。该计算机系统使用下游URI来通过防火墙从其他计算机系统 接收通信。同样,其他计算机系统使用下游URI来通过防火墙向该计算机系统发送通信。可以使用每一个计算机系统中的模块来控制HTTP请求的数据率并使HTTP请求连续地保持活动状态。
本发明的实施例可以包括或使用含有各种计算机硬件的专用或通用计算机,这将在以下更详细地讨论。在本发明的范围内的实施例还包括用于承载或存储计算机可执行的指令和/或数据结构的物理及其他计算机可读介质。这样的计算机可读介质可以是可被通用或专用计算机系统访问的任何可用的介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。如此,作为示例,而不作为限制,本发明的各实施例可以包括至少两个显然不同种类的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁存储设备,或可以用来存储计算机可执行的指令或数据结构的形式的、且可以被通用或专用计算机访问的期望程序代码装置的任何其他介质。
“网络”被定义为允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当通过网络或另一种通信连接(硬连线、或无线,或硬连线或者无线的组合)向计算机传输或提供信息时,计算机完全将连接视为传输介质。传输介质可以包括可以用来承载计算机可执行的指令或数据结构的形式的、且可以被通用或专用计算机访问的期望程序代码装置的网络和/或数据链路。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件时,计算机可执行的指令或数据结构的形式的程序代码装置可以被自动地从传输介质传输到计算机存储介质(或者反之亦然)。例如,通过网络或数据链路接收到的计算机可执行的指令或数据结构可以被缓存在网络接口模块(例如,“NIC”)内的RAM中,然后,最终传输到计算机系统RAM和/或计算机系统中的较低易失性的计算机存储介质中。如此,应该理解,计算机存储介质可以被包括在也 (或者甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令包括,例如使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是,例如,诸如汇编语言,或者甚至源代码之类的二进制、中间格式指令。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上文所描述的特征或动作。相反,所描述的特征和动作是作为实现权利要求的示例形式来公开的。
在本描述以及下面的权利要求书内,“HTTP通信”被定义为使用超文本传输协议(“HTTP”)和超文本传输协议安全(“HTTPS”)中的一个或多个的通信。
在本描述以及下面的权利要求书内,“HTTP请求”被定义为使用HTTP和HTTPS中的一个或多个的请求。
在本描述以及下面的权利要求书内,“类似TCP”被定义为表现出非常类似于传输控制协议(“TCP”)的特征而实际不是TCP。
在本描述以及下面的权利要求书内,“等效TCP”被定义为表现出与传输控制协议(“TCP”)等效的特征而实际不是TCP。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实施,这些类型的计算机系统配置包括,个人计算机、台式计算机、膝上型计算机、消息处理器、手提式设备、多处理器系统、基于微处理器的或可编程消费电子产品、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可以在分布式系统环境中实施,在分布式系统环境中通过网络链接起来(无论是通过硬连线的数据链路,无线数据链路,还是通过硬连线的和无线数据链路的组合)的本地和远程计算机系统两者都执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储设备两者中。
图1示出了便于将HTTP或HTTPS通信用作双向数据流的传输的示例计算机体系结构100。在某些实施例中,双向数据流的特征密切地近似于利用传输控制协议(“TCP”)建立的双向数据流的那些特征。
参考图1,计算机体系结构100包括计算机系统102、网络103、防火墙101、网络104,以及计算机系统106。如此,所描绘的计算机系统中的每一个都通过网络(诸如,局域网(“LAN”)、广域网(“WAN”),甚至因特网)彼此连接(或者是网络的一部分)。因此,所描绘的计算机系统中的每一个以及任何其他被连接的计算机系统以及它们的组件,可以创建消息相关的数据,并通过网络交换消息相关的数据(例如,因特网协议(“IP”)数据报以及诸如用户数据报协议(“UDP”)、TCP、HTTP、HTTPS、简单邮件传输协议(“SMTP”)之类的利用IP数据报的其他较高层的协议)。
一般而言,防火墙101可以是网络103(例如,公司LAN)和网络104(例如,因特网)之间的边缘设备。可以根据阻止指定类型的通信进入和离开网络103的规则来配置防火墙101。例如,防火墙101可以被配置成阻止TCP通信从网络103传递到网络104。防火墙101可以被配置成阻止所有TCP通信,或者可以通过被配置用于TCP的指定端口(例如,如在由因特网编号分配机构“IANA”所维护的端口号的正式列表中指示的)来阻止TCP通信。
如此,防火墙101阻止在网络103上始发的至少某些TCP通信穿过网络104。例如,防火墙101被配置成阻止将至少某些TCP通信从计算机系统102发送到计算机系统106。防火墙101可以在尝试防止网络103与网络104上的不合乎需要的特定服务(对应于指定的端口号)进行交互时阻止TCP通信。例如,防火墙101可以阻止公司局域网的计算机系统参与因特网上的对等文件共享网络。
另一方面,防火墙101可以被配置成一般准许网络103上始发的HTTP通信(例如,使用TCP作为传输)穿过网络104。准许HTTP通信穿过防火墙101允许网络103上的计算机系统参与与网络104上的计算机系统间的各种(潜在地更受控制)计算活动。例如,计算机系统102可以使用HTTP通信来浏览万维网(“WWW”)。准许HTTP通信可包括准许通信通过端口80(HTTP)和/或端口443(HTTPS)。
计算机系统102和106中的两者都可包括用于使HTTP请求持续保持活动状态、节流HTTP请求上的数据流、以及将HTTP请求的组合绑定到双向数据流的模块。双向数据流可以是密切地近似于利用TCP建立的双向数据流的特征的类似TCP的双向数据流。双向数据流甚至可以是具有与利用TCP建立的双向数据流相等效的特征的等效TCP的数据流。
图3示出了用于将HTTP通信用作双向数据流的传输的示例方法300的流程图。将参考计算机体系结构100的组件和数据来描述方法300。
方法300包括尝试使用TCP通信与另一计算机系统进行通信的动作(动作301)。例如,计算机系统102可以尝试向计算机系统106发送TCP通信107。TCP通信107表示使用TCP并被发送到指定的端口的电子通信。指定的端口可以表示将TCP用作传输协议的较高层协议,诸如文件传输协议(“FTP”)、SMTP、Telnet、实时传输协议(“RTP”)。HTTP也可以潜在地将TCP用作传输。如此,可能TCP通信107是TCP上的HTTP。当发生这种情况时,它也可以被视为TCP通信。
防火墙101可以接收TCP通信107。如前面所描述的,防火墙101可以被配置成通常或在指定的端口上阻止TCP通信。在任何一种情况下,防火墙101阻止TCP通信107。例如,防火墙101可以阻止发往对等文件共享网络的文件传输请求。防火墙101可能被配置成阻止TCP上的HTTP通信,但是准许UDP上的HTTP通信通过。如此,在TCP通信107是TCP上的HTTP通信的情况下此HTTP通信被阻止是有可能。然而,也可能防火墙101被配置成准许TCP上的HTTP通信通过,即使TCP通信在其他端口上被阻止。如此,TCP上的HTTP通信或UDP上的HTTP通信两者都可以通过防火墙101。
响应于阻止TCP通信107,防火墙101可以将已阻止指示108发回给计算机系统102。方法300包括访问防火墙阻止了TCP通信的指示的动作(动作302)。例如,计算机系统101可以接收已阻止指示108。
方法300包括响应于防火墙阻止了TCP通信,通过防火墙将HTTP通信发送到其他计算机系统的动作(动作303)。例如,计算机系统102可以 向计算机系统106发送HTTP通信109。防火墙101可以接收HTTP通信109。防火墙101可以允许HTTP通信109(UDP上的或TCP上的)通过网络104。
方法300包括通过防火墙从启动计算机系统接收HTTP通信的动作(动作304)。例如,计算机系统106可以从计算机系统101接收HTTP通信109。
方法300包括响应于HTTP通信将上游URI和下游URI发送到启动计算机系统的动作(动作305)。例如,计算机系统106可以响应于HTTP通信109,将上游URI 111和下游URI 112发送到计算机系统102。URI 111和112可以标识计算机系统106上的被配置成使HTTP请求持续保持活动状态、以及将HTTP请求的组合绑定到双向数据流的模块。在某些实施例中,双向数据流是类似TCP或等效TCP的双向数据流。
防火墙101可以接收URI 111和112。由于URI 111和112表示对HTTP通信109的响应,因此,防火墙101允许URI 111和112通过网络103。
方法300包括响应于HTTP通信从接收计算机系统接收上游URI和下游URI的动作(动作306)。例如,计算机系统102可以从计算机系统106接收上游URI 111和下游URI 112。计算机系统102上的被配置成使HTTP请求持续保持活动状态、以及将HTTP请求的组合绑定到双向数据流中的模块可以使用URI 111和112与计算机系统106上的相应模块进行通信。
方法300包括通过HTTP通信来模拟双向数据套接字的动作(动作307)。例如,计算机系统102和106可以通过HTTP请求116和HTTP请求117的通信来模拟双向数据套接字。在某些实施例中,双向数据套接字是类似TCP双向数据套接字或等效TCP的双向数据套接字。
通过HTTP来模拟双向数据套接字包括发送向上游URI发送数据的HTTP请求的动作(动作308)。例如,计算机系统101可以向上游URI 111发送HTTP请求116,诸如HTTP POST、HTTP PUT或其他等效请求。通过HTTP来模拟双向数据套接字包括接收向上游URI发送数据的HTTP请求的动作(动作309)。例如,计算机系统106可以接收涉及上游URI 111 的HTTP请求116。计算机系统102可以通过间歇性地通过HTTP请求116发送少量数据来使HTTP请求116持续保持活动状态。
通过HTTP来模拟双向数据套接字包括发送从下游URI接收数据的HTTP请求的动作(动作310)。例如,计算机系统101可以向下游URI 112发送HTTP请求117,诸如HTTP GET或其他等效请求。通过HTTP来模拟双向数据套接字包括接收从下游URI接收数据的HTTP请求的动作(动作311)。例如,计算机系统106可以接收涉及下游URI 112的HTTP请求117。计算机系统102可以通过间歇性地通过HTTP请求117接收少量数据来使HTTP请求117持续保持活动状态。
通过HTTP通信来模拟双向数据套接字包括将发送数据的HTTP请求和接收数据的HTTP请求一起绑定到计算机系统和其他计算机系统之间的双向数据流中的动作(动作312)。例如,计算机系统102和106可以将HTTP请求116和HTTP 117一起绑定到双向数据流118中。双向数据流118的特征可以密切地近似于利用TCP建立的双向数据流的那些特征。例如,双向数据流118可以是类似TCP的双向数据流或等效TCP的双向数据流。
随后,可以使用双向数据流118,通过防火墙101发送TCP通信107。由于TCP通信107在HTTP上面传播,因此,防火墙101将TCP通信107看作HTTP通信,而不阻止TCP通信107。计算机系统102和106上的模块可以进行协同操作,以通过双向数据流118提供适当的TCP协议特征。可以通过使HTTP请求保持活动状态并通过HTTP请求来节流数据流,来提供某些TCP协议特征。
如前面所描述的,计算机系统102和106两者都可包括用于使HTTP请求持续保持活动状态、节流数据流,以及将HTTP请求的组合绑定到双向TCP流中的模块。图2示出了促进在将HTTP通信用作TCP通信的传输时节流数据流并使HTTP请求持续保持活动状态的示例计算机体系结构200。
如所描绘的,HTTP POST 231和HTTP GET 232被用来在计算机系统201和202之间建立双工合成流221。使用HTTP POST 231从计算机系统 201写入数据,以在计算机系统202上读取。另一方面,使用HTTP GET 232来从计算机系统202写入数据,以在计算机系统201上进行读取。
在通过HTTP POST 231将HTTP数据从计算机系统201写入到计算机系统201之后,计算机系统201将字节块写入到传出的消息211(例如,帧)中。然后,传出的消息211被转发到成帧输出泵203。由于HTTP隐藏低层的TCP流量控制,因此,需要通过HTTP抽象来提供流量控制。成帧输出泵203控制HTTP数据的数据速率,以将传出的消息211转换为节流管道流212。
在某些实施例中,成帧输出泵203被配置成将多个写入操作从上游映射到帧,如果它们在指定时长(诸如,例如,几个毫秒)内发生。因此,成帧输出泵203可以接受多个传出的消息,并形成然后被传递给节流管道流212的帧。节流管道流212允许以与上游写入无关的速率将这些预先组装的帧投递到传出HTTP流。然而,一旦HTTP低层的TCP流量控制开始回压到将数据推到网络上的泵中,节流管道流212就可以阻止接受更多帧。当拥塞减轻时,数据将以较高速率从节流管道流212被推出,接着解锁它上面的成帧泵。
缓冲器泵可以位于成帧输出泵203和成帧输入泵204之间。缓冲器泵被配置成将字节块从一个流移动到下一个流。例如,缓冲器泵可以将数据从节流管道流212(例如,通过网络)清空到Web请求流213中。Web请求流213被转发到成帧输入泵204。成帧输入泵204将传入的Web请求流213转换为管道流214用于传输到计算机系统202。
类似地,在通过HTTP GET 232将HTTP数据从计算机系统202写入到计算机系统201之后,计算机系统202将字节块写入到传出的消息219(例如,帧)。然后,传出的消息219被转发到成帧输出泵206。由于HTTP隐藏低层的TCP流量控制,因此,需要通过HTTP抽象来提供流量控制。成帧输出泵206控制HTTP数据的数据速率,以将传出的消息219转换为节流管道流218。
缓冲器泵可以位于成帧输出泵206和成帧输入泵207之间。缓冲器泵 被配置成将字节块从一个流移动到下一个流。例如,缓冲器泵可以将数据从节流管道流218(例如,通过网络)清空到Web响应流217中。Web响应流217被转发到成帧输入泵207。成帧输入泵207将传入的Web响应流217转换为管道流216用于传输到计算机系统201。
成帧输出泵203和成帧输入泵204中的一个或多个可以被配置成当在指定的时间段没有检测到其他数据时通过HTTP POST 231发送少量的数据。指定的时间段可以被设置为小于HTTP请求超时时间。如此,发送少量的数据可以被用来模拟数据从计算机系统201到计算机系统202的传输。如此,即使在计算机系统201不实际向HTTP POST 231写入数据的情况下,HTTP POST 231仍对中介物表现为活动。因此,中介物可能持续分配资源,以使HTTP POST 231保持活动状态。
类似地,成帧输出泵206和成帧输入泵206中的一个或多个可以被配置成当在指定的时间段没有检测到其他数据时通过HTTP GET 232发送少量的数据。指定的时间段可以被设置为小于HTTP请求超时时间。如此,发送少量的数据可以被用来模拟数据从计算机系统201到计算机系统202的传输。如此,即使在计算机系统202不实际向HTTP GET 232写入数据的情况下,HTTP GET 232仍对中介物表现为活动。因此,中介物可能持续分配资源,以使HTTP POST 232保持活动状态。
本发明的各实施例促进通过防火墙传递否则被阻止的TCP通信。本发明的各实施例可以被用来在防火墙外面传递合法的TCP通信,即使防火墙被配置成阻止合法的TCP通信。例如,服务呼叫中心的技术人员能够使用否则被公司防火墙阻止的服务来访问远程网站上的文档。
本发明可具体化为其它具体形式而不背离其精神或本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

Claims (15)

1.在计算机系统(102)上,所述计算机系统(102)包括一个或多个处理器和系统存储器,一种用于将HTTP通信用作双向数据流(118)的传输的方法,所述方法包括:
尝试使用TCP通信(107)与另一计算机系统(106)进行通信的动作;
访问防火墙(101)阻止所述TCP通信的指示(108)的动作;
响应于所述防火墙(101)阻止所述TCP通信(107),通过所述防火墙(101)向所述另一计算机系统(106)发送HTTP通信(109)的动作;
响应于所述HTTP通信(109),从所述另一计算机系统(106)接收上游URI(111)和下游URI(1112)的动作;以及
通过HTTP通信来模拟双向数据套接字的动作,包括:
发送向所述上游URI(111)发送数据的HTTP请求(116)的动作;
发送从所述下游URI(112)接收数据的HTTP请求(117)的动作;以及
将所述发送数据的HTTP请求(116)和所述接收数据的HTTP请求(117)一起绑定到所述计算机系统(102)和所述另一计算机系统(106)之间的双向数据流(118)中的动作。
2.如权利要求1所述的方法,其特征在于,所述通过HTTP通信来模拟双向数据套接字的动作包括模拟等效TCP的双向数据套接字的动作。
3.如权利要求1所述的方法,其特征在于,所述发送向所述上游URI发送数据的HTTP请求的动作包括发送HTTP PUT和HTTP POST中的一个的动作。
4.如权利要求1所述的方法,其特征在于,所述发送从所述下游URI接收数据的HTTP请求的动作包括发送HTTP GET的动作。
5.如权利要求1所述的方法,其特征在于,所述将所述发送数据的HTTP请求和所述接收数据的HTTP请求一起绑定到双向数据流中的动作包括通过以指定的时间间隔发送少量的数据来使所述发送数据的HTTP请求持续保持活动状态的动作,所述少量的数据在中介物看来是从所述计算机系统发送的HTTP数据。
6.如权利要求1所述的方法,其特征在于,所述将所述发送数据的HTTP请求和所述接收数据的HTTP请求一起绑定到双向数据流中的动作包括通过以指定的时间间隔接收少量的数据来使所述接收数据的HTTP请求持续保持活动状态的动作,所述少量的数据在中介物看来是在所述计算机系统处接收到的HTTP数据。
7.如权利要求1所述的方法,其特征在于,所述将所述发送数据的HTTP请求和所述接收数据的HTTP请求一起绑定到双向数据流的动作包括调节用于将数据从所述计算机系统发送到所述另一计算机系统的数据速率的动作,以及用于将数据从所述另一计算机系统发送到所述计算机系统的数据速率的动作。
8.如权利要求1所述的方法,其特征在于,所述将所述发送数据的HTTP请求和所述接收数据的HTTP请求一起绑定到双向数据流的动作包括将所述发送数据的HTTP请求和所述接收数据的HTTP请求一起绑定到等效TCP的双向数据流。
9.在计算机系统(106)上,所述计算机系统(106)包括一个或多个处理器和系统存储器,一种用于将HTTP通信用作双向数据流(118)的HTTP通信的方法,所述方法包括:
当防火墙(101)阻止所述计算机系统与另一计算机系统的TCP通信时,通过所述防火墙从所述另一计算机系统(102)接收HTTP通信(109)的动作;
响应于所述HTTP通信(109),向所述另一计算机系统(102)发送上游URI(111)和下游URI(112)的动作;以及
通过HTTP通信来模拟双向数据套接字的动作,包括:
从所述另一计算机系统(102)接收HTTP请求(116)的动作,所述另一计算机系统(102)的所述HTTP请求(116)涉及向所述上游URI(111)发送数据;
从所述另一计算机系统(102)接收HTTP请求(117)的动作,所述另一计算机系统(102)的所述HTTP请求(117)涉及从所述下游URI(112)接收数据;以及
将所述发送数据的HTTP请求(116)和所述接收数据的HTTP请求(117)一起绑定到所述计算机系统(106)和所述另一计算机系统(102)之间的双向数据流(118)中的动作。
10.如权利要求9所述的方法,其特征在于,所述接收向所述上游URI发送数据的HTTP请求的动作包括接收HTTP PUT和HTTP POST中的一个的动作。
11.如权利要求9所述的方法,其特征在于,所述接收从所述下游URI接收数据的HTTP请求的动作包括接收HTTP GET的动作。
12.如权利要求9所述的方法,其特征在于,所述将所述发送数据的HTTP请求和所述接收数据的HTTP请求一起绑定到双向数据流中的动作包括通过以指定的时间间隔发送少量的数据来使所述发送数据的HTTP请求持续保持活动状态的动作,所述少量的数据在中介物看来是从所述另一计算机系统发送的HTTP数据。
13.如权利要求9所述的方法,其特征在于,所述将所述发送数据的HTTP请求和所述接收数据的HTTP请求一起绑定到双向数据流中的动作包括通过以指定的时间间隔接收少量的数据来使所述接收数据的HTTP请求持续保持活动状态的动作,所述少量的数据在中介物看来是在所述另一计算机系统处接收到的HTTP数据。
14.如权利要求9所述的方法,其特征在于,所述将所述发送数据的HTTP请求和所述接收数据的HTTP请求一起绑定到双向数据流中的动作包括将所述发送数据的HTTP请求和所述接收数据的HTTP请求一起绑定到等效TCP的双向数据流。
15.一种计算机网络系统,所述计算机网络系统包括启动计算机系统(102)、接收计算机系统(106),以及防火墙(101),所述防火墙(101)被配置成阻止在与TCP通信相关联的多个指定的端口上的TCP通信,每一个指定的端口都对应于被配置成在所述指定的端口上接收TCP通信的服务;
所述启动计算机系统(102)包括:
用于参与将HTTP通信用作双向数据流(118)的传输的装置,包括下列各项装置:
尝试使用TCP通信(107)与所述接收计算机系统进行通信的装置,所述TCP通信(107)涉及在被所述防火墙(101)阻止TCP通信的所述多个指定端口中所包括的一个端口上接收TCP通信的服务;
访问所述防火墙阻止所述TCP通信(107)的指示(108)的装置;
响应于所述防火墙(101)阻止所述TCP通信(107),通过所述防火墙(101)向所述接收计算机系统(106)发送HTTP通信(109)的装置;
响应于所述HTTP通信(109),从所述接收计算机系统(106)接收上游URI(111)和下游URI(112)的装置;
发送向所述上游URI(111)发送数据的HTTP请求(116)的装置;
发送从所述下游URI(112)接收数据的HTTP请求(117)的装置;
所述接收计算机系统(106)包括:
用于参与将HTTP通信用作双向数据流(118)的传输的装置,包括下列各项装置:
通过防火墙(101)从启动计算机系统(102)接收HTTP通信(109)的装置;
响应于所述HTTP通信(109),向所述启动计算机系统(102)发送上游URI(111)和下游URI(112)的装置;
从所述启动计算机系统接收HTTP请求(116)的装置,所述启动计算机系统的所述请求涉及向所述上游URI(111)发送数据;以及
从所述启动计算机系统接收HTTP请求(117)的装置,所述启动计算机系统的所述请求涉及从所述下游URI(112)接收数据;
其中,所述启动计算机系统(102)和所述接收计算机系统(106)还包括将所述发送数据的HTTP请求(116)和所述接收数据的HTTP请求(117)一起绑定到所述启动计算机系统(102)和所述接收计算机系统(106)之间的双向数据流(118)中的装置,所述双向数据流(118)是TCP等效的双向数据流;以及
其中,所述启动计算机(102)随后通过所述防火墙(101)通过所述双向数据流(118)向所述接收计算机系统(106)发送所述TCP通信(107)。
CN201080027711.8A 2009-06-22 2010-06-22 使用超文本传输协议作为双向数据流的传输的方法和系统 Active CN102804687B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/489,327 2009-06-22
US12/489,327 US9473460B2 (en) 2009-06-22 2009-06-22 Using hypertext transfer protocol as a transport for bi-directional data streams
PCT/US2010/039555 WO2011005547A2 (en) 2009-06-22 2010-06-22 Using hypertext transfer protocol as a transport for bi-directional data streams

Publications (2)

Publication Number Publication Date
CN102804687A CN102804687A (zh) 2012-11-28
CN102804687B true CN102804687B (zh) 2015-07-08

Family

ID=43355265

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201080027711.8A Active CN102804687B (zh) 2009-06-22 2010-06-22 使用超文本传输协议作为双向数据流的传输的方法和系统

Country Status (5)

Country Link
US (1) US9473460B2 (zh)
EP (1) EP2446582A4 (zh)
JP (1) JP5754572B2 (zh)
CN (1) CN102804687B (zh)
WO (1) WO2011005547A2 (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2957439B1 (fr) 2010-03-09 2012-03-30 Proton World Int Nv Protection d'un canal de communication entre un module de securite et un circuit nfc
FR2957440B1 (fr) 2010-03-09 2012-08-17 Proton World Int Nv Protection d'un module de securite dans un dispositif de telecommunication couple a un circuit nfc
FR2957438B1 (fr) 2010-03-09 2012-03-30 Proton World Int Nv Detection d'un deroutement d'un canal de communication d'un dispositif de telecommunication couple a un circuit nfc
FR2969341B1 (fr) 2010-12-20 2013-01-18 Proton World Int Nv Gestion de canaux de communication dans un dispositif de telecommunication couple a un circuit nfc
US9600350B2 (en) * 2011-06-16 2017-03-21 Vmware, Inc. Delivery of a user interface using hypertext transfer protocol
US9549045B2 (en) 2011-08-29 2017-01-17 Vmware, Inc. Sharing remote sessions of a user interface and/or graphics of a computer
US9514242B2 (en) 2011-08-29 2016-12-06 Vmware, Inc. Presenting dynamically changing images in a limited rendering environment
CN103297384A (zh) * 2012-02-22 2013-09-11 航天信息股份有限公司 协议转换的通信方法及系统
US8800004B2 (en) * 2012-03-21 2014-08-05 Gary Martin SHANNON Computerized authorization system and method
DE102012206383A1 (de) * 2012-04-18 2013-10-24 Bayerische Motoren Werke Aktiengesellschaft Datenübertragung im Rahmen einer Fahrzeugkommunikation
US9215131B2 (en) 2012-06-29 2015-12-15 Cisco Technology, Inc. Methods for exchanging network management messages using UDP over HTTP protocol
CN104348850B (zh) * 2013-07-25 2017-10-20 凌群电脑股份有限公司 利用透通技术存取云端数据库数据的系统
CN106034157A (zh) * 2015-03-18 2016-10-19 国家计算机网络与信息安全管理中心 数据交换中传输http协议的方法、服务器及存储设备
CN107980147B (zh) * 2015-03-23 2022-12-06 摩根士丹利服务集团有限公司 跟踪分布式计算系统中的数据流
US11388203B2 (en) * 2016-08-16 2022-07-12 Avaya Inc. Systems and methods for media tunneling through edge server
US20190068684A1 (en) * 2017-08-31 2019-02-28 Microsoft Technology Licensing, Llc Bidirectional data exchange
US10778726B2 (en) 2017-08-31 2020-09-15 Microsoft Technology Licensing, Llc Bidirectional data exchange between computing devices
US10880120B2 (en) 2018-07-19 2020-12-29 Avaya Inc. System and methods for tunneling media through secure channel
CN109327511B (zh) * 2018-09-18 2021-05-28 网宿科技股份有限公司 一种基于http协议的数据请求方法和服务器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1780219A (zh) * 2004-11-22 2006-05-31 株式会社东芝 终端远程操作系统和方法,网关服务器,终端及控制设备
CN1801825A (zh) * 2005-01-07 2006-07-12 微软公司 使用单个http请求批量传输消息

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289461B1 (en) * 1998-06-09 2001-09-11 Placeware, Inc. Bi-directional process-to-process byte stream protocol
JP3478200B2 (ja) * 1999-09-17 2003-12-15 日本電気株式会社 サーバ・クライアント間双方向通信システム
US20050125532A1 (en) 2000-05-26 2005-06-09 Gur Kimchi Traversing firewalls and nats
US20020120760A1 (en) 2000-05-26 2002-08-29 Gur Kimchi Communications protocol
US6907533B2 (en) * 2000-07-14 2005-06-14 Symantec Corporation System and method for computer security using multiple cages
US6754621B1 (en) * 2000-10-06 2004-06-22 Andrew Cunningham Asynchronous hypertext messaging system and method
US6871213B1 (en) * 2000-10-11 2005-03-22 Kana Software, Inc. System and method for web co-navigation with dynamic content including incorporation of business rule into web document
US6934756B2 (en) 2000-11-01 2005-08-23 International Business Machines Corporation Conversational networking via transport, coding and control conversational protocols
JP2002222124A (ja) 2001-01-29 2002-08-09 Mitsubishi Electric Corp 全二重通信システム
US7117267B2 (en) * 2001-06-28 2006-10-03 Sun Microsystems, Inc. System and method for providing tunnel connections between entities in a messaging system
US7631084B2 (en) * 2001-11-02 2009-12-08 Juniper Networks, Inc. Method and system for providing secure access to private networks with client redirection
US20030172164A1 (en) 2002-03-11 2003-09-11 Coughlin Chesley B. server persistence using a session identifier
US20030217149A1 (en) * 2002-05-20 2003-11-20 International Business Machines Corporation Method and apparatus for tunneling TCP/IP over HTTP and HTTPS
EP1570354A4 (en) 2002-11-19 2008-07-02 Nexaweb Technologies Inc SYSTEM AND METHOD FOR WEB-AIDED STATEFUL DATA PROCESSING
US7403995B2 (en) 2003-01-08 2008-07-22 Outhink, Inc. Symmetrical bi-directional communication
US7328451B2 (en) * 2003-06-30 2008-02-05 At&T Delaware Intellectual Property, Inc. Network firewall policy configuration facilitation
US7523186B1 (en) * 2004-01-22 2009-04-21 Ubicom, Inc. Active management for small office/home office networking
JP2006168134A (ja) 2004-12-15 2006-06-29 Canon Inc 印刷方法、印刷デバイス及び印刷システム
DE602005004255T2 (de) 2005-02-28 2009-01-02 Alcatel Lucent Bidirektionale SOAP-Kommunikation mittels einer einzigen HTTP-Sitzung
US20060251101A1 (en) * 2005-04-25 2006-11-09 Zhang Li J Tunnel establishment
US20070130149A1 (en) * 2005-10-12 2007-06-07 Lenovo (Singapore) Pte. Ltd. Method, system, and computer program product for troubleshooting/configuring communications settings of a computer system
US8161164B2 (en) * 2006-04-28 2012-04-17 Microsoft Corporation Authorizing service requests in multi-tiered applications
US7493383B1 (en) 2006-12-29 2009-02-17 F5 Networks, Inc. TCP-over-TCP using multiple TCP streams
TW200920030A (en) * 2007-10-18 2009-05-01 D Link Corp The method to puncture the firewall for building the linking channel between the network terminal devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1780219A (zh) * 2004-11-22 2006-05-31 株式会社东芝 终端远程操作系统和方法,网关服务器,终端及控制设备
CN1801825A (zh) * 2005-01-07 2006-07-12 微软公司 使用单个http请求批量传输消息

Also Published As

Publication number Publication date
EP2446582A4 (en) 2017-01-11
WO2011005547A2 (en) 2011-01-13
JP5754572B2 (ja) 2015-07-29
US20100325300A1 (en) 2010-12-23
JP2012530999A (ja) 2012-12-06
US9473460B2 (en) 2016-10-18
WO2011005547A3 (en) 2011-03-31
EP2446582A2 (en) 2012-05-02
CN102804687A (zh) 2012-11-28

Similar Documents

Publication Publication Date Title
CN102804687B (zh) 使用超文本传输协议作为双向数据流的传输的方法和系统
CN109639782B (zh) 消息发送平台、方法
CN111406396B (zh) 用于诸如区块链网络等网络中的数据传播和通信的计算机实现的系统和方法
CN102567125B (zh) 一种浏览器页面间通信的方法
CN102138307B (zh) 用于服务的负载平衡的方法和系统
CN103108037B (zh) 一种通信方法,Web服务器及Web通信系统
WO2007149745A4 (en) Methods, systems and protocols for application to application communications
CN110233881A (zh) 业务请求处理方法、装置、设备及存储介质
CN104219215B (zh) 一种tcp连接的建立方法、装置、终端、服务器及系统
CN102821161A (zh) 一种网络安全审计方法、装置及系统
CN101843033A (zh) 针对自动化网络的实时通信安全性
CN104243230B (zh) 一种获取Linux服务器中监控数据的方法和装置
Diwan et al. A framework for modeling and verifying IoT communication protocols
CN104081374A (zh) 分级显示器服务器系统和方法
CN110597920B (zh) 一种信息处理的方法及装置
CN110324365A (zh) 无密钥前端集群系统、应用方法、存储介质、电子装置
CN106330994A (zh) 一种用户消息发布方法及系统
CN106330607A (zh) 基于单向监听日志估算tcp连接应用质量的方法和系统
JP6393475B2 (ja) 通信アダプタ装置、通信システム、トンネル通信方法、及びプログラム
CN105245464A (zh) 一种基于安卓系统的网络加速方法
US20040066770A1 (en) Method for communicating with a resource-constrained device on an edge of a network
KR101944744B1 (ko) 메시지 처리 장치
CN113810264A (zh) 信息传输方法、装置、电子设备和存储介质
Nida et al. Multi-network Transmission Using Socket Programming to Support Command and Control Systems
CN111509850A (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: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150728

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

Effective date of registration: 20150728

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.