CN102835093A - 用于通过http的可靠协议隧穿的方法和*** - Google Patents

用于通过http的可靠协议隧穿的方法和*** Download PDF

Info

Publication number
CN102835093A
CN102835093A CN2011800185962A CN201180018596A CN102835093A CN 102835093 A CN102835093 A CN 102835093A CN 2011800185962 A CN2011800185962 A CN 2011800185962A CN 201180018596 A CN201180018596 A CN 201180018596A CN 102835093 A CN102835093 A CN 102835093A
Authority
CN
China
Prior art keywords
client
session
relay server
http
data
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
CN2011800185962A
Other languages
English (en)
Other versions
CN102835093B (zh
Inventor
D·劳
谭磊
郭鑫
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 CN102835093A publication Critical patent/CN102835093A/zh
Application granted granted Critical
Publication of CN102835093B publication Critical patent/CN102835093B/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/08Network architectures or network communication protocols for network security for authentication of entities
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • 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/166Implementing security features at a particular protocol layer at the transport layer
    • 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/168Implementing security features at a particular protocol layer above the transport layer
    • 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/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

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

Abstract

本文所描述的实施例一般涉及用于在HTTP端点和任意目的之间隧穿任意二进制数据的方法和***。这一数据隧穿在例如基于浏览器的客户端以HTTP协议通信并且想要与理解非HTTP通信的远程端点交互数据的实施例中是有价值的。中继服务器被用作为将客户端连接到目的的“中间人”,并且支持所需的用于数据交换的协议的组件被***到中继服务器中。为了实现数据的可靠和有序传输,中继服务器通过分配会话标识符分组会话并通过分配顺序和确收号来跟踪消息的交换。此外,中继服务器提供向目的认证HTTP端点并且处理在基于web的客户端的受限环境中不可用的其它操作。

Description

用于通过HTTP的可靠协议隧穿的方法和***
背景技术
Web会议已成为越来越有用的工具,其用来通过因特网或万维网进行实时会议、演示、培训研讨会等。在典型的Web会议中,会议的多个参与者通过因特网从他们的个人计算机连接到彼此。用于提供Web会议能力的示例软件平台是由华盛顿州雷蒙德市的微软公司出品的MICROSOFT COMMUNICATIONSSERVER(微软通信服务器)。当客户端想要加入在线会议但在其客户端计算机上没有安装例如Office Communicator时,基于AJAX(“AsynchronousJavaScript and XML”)的Communicator Web Access(CWA)客户端通常被用来使客户端能够加入会议。虽然基于AJAX的CWA客户端能够加入会议,但客户端体验受限于经由Javascript可用的功能。
为了改进基于浏览器的客户端的会议体验且不要求客户端应用的显式安装,可使用与基于AJAX的CWA客户端不同类型的客户端。例如,可使用如从华盛顿州雷蒙德市的微软公司出品的微软SIVERLIGHT平台衍生的基于SIVERLIGHT的客户端。SIVERLIGHT允许开发无论在功能还是用于与服务器通信的底层协议都几乎与本机应用同等水平的特征丰富的应用。然而,SIVERLIGHT类型的平台可能仍然在能够开发这样的应用方面具有一些限制。例如,基于浏览器的客户机通常不支持连接到提供Web会议能力的远程服务器的传输控制协议(TCP)套接字连接。基于客户机的企业网络中固有的提高的安全特性不可能建立这样的套接字连接,在客户机的企业网络中,策略文件检索由于受限的端口和总体上不能穿越防火墙而被禁止。事实上,受限的网络连通性存在于诸如有防火墙的网络、代理服务器后的网络等情形中。在没有策略文件的情况下,基于浏览器的客户端拒绝向远程服务器开放套接字连接。此外,对诸如NT LAN管理器(NTLM)认证、Kerberos认证协议、或证书认证之类的特定安全包的访问可能对应用不可用。没有这些认证能力,基于浏览器的客户机不能获准使用与本地客户端相同的协议加入会话发起协议(SIP)服务器。
虽然本背景技术中着眼于特定的问题,但本发明决不旨在限于解决那些特定问题。
发明内容
各实施例一般涉及通过利用服务器实体作为将基于web的客户端连接到会议平台中的远程端点(例如,远程服务器)的“中间人”而不要求对远程服务器作任何改动来为基于web的客户端提供丰富的会议体验和改进的功能。这一“中间人”服务器被称为例如“中继服务器”。各实施例由此提供了使受限环境中的客户端能够通过连接到中继服务器进而利用中继服务器的功能而扩展客户端的功能。中继服务器由此具有与它的诸如例如Windows平台之类的环境相关联的功能。基于web的客户端通常使用超文本传输协议(HTTP)或超文本传输协议安全(HTTPS)来用于web环境中的数据的通信和交换。以下实施例的描述涉及的是“HTTP”。然而,如本领域技术人员能够理解的,这些实施例在涉及“HTTP”时包括“HTTPS”。例如,当会议平台中的远程服务器(诸如MICROSOFT OFFICE COMMUNICATIONS服务器(“OCS服务器”)具有不基于HTTP的现有通信协议,中继服务器的使用准许在基于web的客户端和远程服务器之间通过在客户端或HTTP端点与远程服务器或其它任意目的之间经由HTTP隧穿任意二进制数据或任意协议数据来进行数据交换。各实施例由此提供了通过HTTP对任何任意数据的隧穿。例如,各实施例提供用于通过HTTP的可靠协议隧穿的中继服务器的以下示例使用:通过HTTP将任何数据隧穿到实时传输协议(RTP)/安全实时传输协议(SRTP);通过HTTP将远程桌面协议(RDP)隧穿到任何传输机制(例如,TCP或用户数据报协议(UDP));通过HTTP将RDP隧穿到RTP/SRTP上;通过HTTP方案隧穿SIP,等等。
由于HTTP是简单请求/响应协议,它支持来自客户端对服务器的多个连接并且因此不保证请求和响应消息的有序递送。可靠的消息递送也不能保证,因为请求和响应消息在消息的发送中可能被丢弃。例如,中间的HTTP代理服务器可能丢弃HTTP响应。消息的可靠和有序的组织和递送对于Web会议环境是有价值的。因此,本公开的各实施例提供了用于将属于同一中继会话的请求分组的会话标识符。此外,消息的可靠和有序递送通过将请求限制为每次一个未决的上游请求和一个未决的下游请求来实现。各实施例还提供顺序/确收号,顺序/确收号被用来保证丢失消息的检测和丢失数据的重发。在各实施例中也处理否定的HTTP响应以再次尝试请求以促进通过HTTP的稳健的(例如,无损的)数据传输以及***弹性。另外,各实施例提供平台服务作为中继服务器的一部分,其中这些平台服务包括例如执行通用密码操作、域名服务(DNS)操作、以及使用认证代理以协助基于web的客户端计算与会议环境中的目的的认证握手。另外,各实施例提供实质上可***的并由此扩展基于web的客户端的功能的***组件。例如,根据各实施例,通过将可***的传输组件设置在中继服务器上实现了任意协议隧穿。这一可***传输组件使得能够在SIP隧穿中使用传输层安全(TLS)/安全套接层(SSL)传输,而另一方面,SRTP传输被用于例如RDP隧穿。此外,根据本公开的实施例,平台服务组件的可***属性允许客户端使用认证代理来执行SIP认证。
提供本发明内容是为了以简化的形式介绍将在以下具体实施例中进一步描述的一些概念。本概述并不旨在标识所要求保护的主题的关键特征或必要特征,也决不旨在用于限制所要求保护的主题的范围。
附图说明
可以参考附图来更容易地描述本发明的各实施例,附图中相同的数字指示相同的项。
图1示出了根据本文所公开的各实施例的用于发起基于web的客户端参与者之间的会议的环境或***的示例逻辑表示。
图2描绘了根据本文所公开的各实施例的使用图1中示出的用于会议的中继服务器来通过HTTP隧穿任意二进制数据的环境或***的示例逻辑表示。
图3示出了根据本文所公开的各实施例的使用图2中示出的中继服务器来通过HTTP进行协议隧穿的示例功能组件模块的逻辑表示。
图4示出了根据本文所公开的各实施例的示出图3中描绘的功能组件模块的交互的过程的操作特性的流程图。
图5描绘了根据本文所公开的各实施例的示出使用中继服务器的***的可***性质的过程的操作特性的流程图。
图6示出根据本文所公开的各实施例的描绘用于将属于中继会话的请求分组(通过使用会话标识符)的过程的操作特性的流程图。
图7示出根据本文所公开的各实施例的示出用于将顺序和确收号分配给请求和响应以确保消息的可靠和有序递送的过程的操作特性的流程图。
图8A示出根据本文所公开的各实施例的用于隧穿SIP数据的中继服务器的示例功能组件模块的逻辑表示。
图8B示出了根据本文所公开的各实施例的示出图8A中描绘的功能组件模块的交互的过程的操作特性的流程图。
图9示出根据本文所公开的各实施例的描绘用于使用中继服务器的认证代理来认证具有任意目的的HTTP端点的过程的操作特性的流程图。
图10示出根据本文所公开的各实施例的用于隧穿RDP数据的中继服务器的示例功能组件模块的逻辑表示。
图11示出了根据本文所公开的各实施例的示出图10中描绘的功能组件模块的交互的过程的操作特性的流程图。
图12描绘其上可以实现本发明的各实施例的示例计算***。
具体实施方式
本发明现将参考其中示出了各具体实施例的附图来更完整地描述各示例实施例。然而,其它方面能以许多不同的形式来实现,并且在本发明中包括具体的实施例不应被解释为将这些方面限于在此所述的各实施例。相反,包括附图中描绘的各实施例是为了提供全面和完整且将预期的范围完全地传达给本领域技术人员的公开。虚线可用于示出可任选组件或操作。
各实施例一般涉及使用中继服务器来扩展web会议环境中的基于浏览器或基于web的客户端的功能。在可替换实施例中,客户端不是基于浏览器或基于web的客户端,而是本领域技术人员能理解的任何类型的客户端。中继服务器提供例如基于web的客户端或HTTP端点与任意目的或远程服务器之间的任意二进制数据的隧穿(tunneling)。这种隧穿是有用的,因为基于web的客户端通常使用HTTP协议进行通信,但不能使用远程服务器所理解的传输协议来通信。这些传输协议包括例如TCP、UDP、SRTP、TLS等。这些协议仅作为示例来提供。远程服务器可使用本领域的技术人员说理解的任何数量的传输协议。由此通过使用中继服务器提供了通过HTTP的对诸如SIP和RDP之类的任何任意协议的隧穿。中继服务器用作一种“中间人”,以经由HTTP请求接收字节缓冲区并将该请求中继给目的。类似的,中继服务器接受来自目的的数据并且经由HTTP响应将数据中继给客户端。
在一个实施例中,中继服务器被设计为位于例如因特网信息服务器(IIS)服务器处的web应用。在这类实施例中,中继服务器包括会话管理组件、中继引擎组件、以及可选的平台服务组件。在各实施例中可使用任何数量种类型的组件,无论是组合的还是单独的,并且如所示出的,一些组件在各实施例中也可以可选的。中继服务器被设计成可扩展的,以允许使用任何传输机制以接受来自HTTP端点的隧穿数据。中继服务器允许任何二进制数据被隧穿。例如,在各个实施例中,对SIP和RDP通信数据进行隧穿。然而,其它实施例提供用于包括文件传输数据在内的任何数据的隧穿。在创建中继会话时,各实施例规定中继服务器与目的端点通信以建立连接,使得可交换目的端点所理解的特定协议数据。中继服务器因此被配置成以任意协议通信以建立连接。
根据一实施例,为了建立中继会话,客户端请求在中继服务器的会话管理组件处创建一会话。客户端与中继服务器之间的这一交互可被称为中继会话的第一“旅程(leg)”。在各个实施例中,中继服务器被配置为具有可选的平台服务,以帮助会话创建,例如,无论这是认证还是DNS查找。中继服务器还被配置为具有一个或多个传输模块,其中传输模块以特定协议与远程服务器通信。会话管理组件驱动传输模块连接到远程服务器,其中有来自客户端的经由例如web服务调用的潜在帮助。“web服务调用”仅仅是作为发送这类信息的方法中的一个示例来提供的。也可使用本领域技术人员说理解的其它类型的通信。在一个实施例中,对于中继会话的第一旅程,会话管理组件与中继引擎组件交互、生成会话标识符(会话ID)来对HTTP侧通信流量分组、并将会话ID返回给客户端。利用会话ID,通过HTTP建立客户端和中继服务器之间的虚拟连接。根据各个实施例,这一会话ID将存在于客户端发送的每个HTTP请求中。会话ID连同顺序/确收号、根据一实施例的每个方向(上游和下游)最多只有一个未决请求的规定、以及当例如发生故障时重新尝试发送HTTP请求预订次数,提供了一种用于通过HTTP在客户端和中继服务器之间的可靠和有序的双向数据递送。如所提到的,在各个实施例中,这一连接是中继会话的一个旅程,而中继会话的第二旅程是从中继服务器到远程服务器,其中使用了任意传输协议。根据各个实施例,在中继服务器上加载传输栈以准许协议的隧穿。
通过经由HTTP隧穿协议数据,本公开的各实施例显著地扩展了基于web的客户端的功能,因为中继服务器允许适应于用于连接到每个可能的目的端点的不同的各种装置。例如,当目的端点是服务器时,不同装置被用来连接到特定类型的服务器,诸如将TLS连接至SIP服务器,将RTP/SRTP连接至屏幕共享服务器等。
此外,本公开的各个实施例还补偿了由用于增强安全特性的受限端口和企业防火墙所导致的限制。由于企业网络中存在的受限端口,即使不是不可能,也难以从基于web的客户端检索策略文件。例如,端口943将策略文件实施保存在SILVERLIGHT平台。SILVERLIGHT客户端计算机发送请求给web站点以在端口943上访问策略文件。然而,端口943在企业网络中通常是不开放的。因此,策略文件检索即使没有变得完全不可能也是被阻碍。在没有策略文件的情况下,基于浏览器的客户端拒绝向远程服务器开放套接字连接。基于web的客户端和远程服务器之间的通信因此通常不可能。然而,本公开的各个实施例使用中继服务器来连接基于web的客户端和远程服务器。中继服务器的以HTTP与客户端通信的能力使得能够穿越企业防火墙。例如,使用HTTP作为传输机制减少了在穿越企业防火墙时的问题,因为端口80/443(HTTP 80/TCP即万维网HTTP;HTTPS 443/TCP即通过TLS/SSL的HTTP协议)在企业网络中通常都是开放的。
在各个实施例中,基于web的客户端因此能够向中继服务器开放HTTP连接,中继服务器作为客户端和远程服务器之间的通信的中继。基于web的客户端随后使用HTTP请求与中继服务器通信。当接收到HTTP请求后,中继服务器“解开”用于交换的实际数据并使用远程服务器所理解的传输协议将其转发给远程主机。类似地,在以远程服务器所使用的传输协议接收到数据之后,中继服务器用HTTP协议对数据“打包”,并将其作为HTTP响应的一部分发送或传输给基于web的客户端。
由于HTTP是简单请求/响应协议,并且支持从客户端到服务器的多个连接,因此不能保证消息的有序递送。此外,HTTP协议的简单请求/响应属性没有提供用于确保消息的可靠递送的内建机制,并因此响应在抵达客户端之前可能被丢弃。此外,这些协议没有提供对请求分组以形成会话的方式。不能确保信息的可靠和有序递送对成功的web会议是妨碍。因此,本公开的实施例提出使用会话标识符(会话ID),诸如像GUID的会话标识符或其它加密的强标识符,来将属于同一中继会话的请求分组,如以上讨论的。会话标识符是在中继服务器处使用密码随机数生成器随机生成的。通过使用密码随机数生成器,防止第三方猜测号码并攻击由***所提供的服务。为了进一步的安全性,会话标识符还可用仅中继服务器知晓的秘密(secret)来签名,以防止任何猜测攻击。会话标识符能力因此增强了安全性,并且将HTTP环境中固有的多连接组织到具体的中继会话中。
为了进一步实现消息的有序递送,本公开的实施例跟踪上游和下游请求,以在同一时间仅允许一个未决的上游请求和一个未决的下游请求。顺序号和确收号被分配给请求和响应消息以追踪数据交换并检测丢失的消息。但检测到丢失消息或接收到否定/失败的HTTP响应(诸如,具有除200OK以外的任何状态代码的响应)的指示之后,对应于该否定/失败的HTTP响应的HTTP请求在结束会话之前被重新发送和/或重新尝试预定次数。这样的消息追踪有助于实现无丢失数据传输和***弹性。
在为了扩展受限制的环境中的基于web的客户端的用于与目的通信的功能的进一步实施例中,可选平台服务组件帮助提供受限制的环境中不可用的功能。当中继不同协议数据时,可能需要不同平台服务。这些服务可***到***。作为示例,在隧穿SIP数据时,平台服务包括认证代理,用于帮助客户端成功地响应SIP服务器发起的安全质询。基于web的客户端无法成功地响应这些质询是源于缺少足够的用于受限制的客户端环境中的安全性的软件包。在本公开的实施例中,基于web的客户端通过将认证能力委托给认证代理来扩展其被限制的功能,认证代理是用于隧穿SIP数据的平台服务的一部分,虽然它的使用不被限制于隧穿SIP数据。在各实施例中,中继服务器具有比受限制的客户机环境更多的功能,因为它是一个全功能服务器。例如,在各个实施例中,中继服务器安装了更多的软件包。在各个实施例中,当中继服务器自己不能提供需要的功能时,中继服务器平台服务可寻求其它服务器组件来协调让客户机满意的结果。例如,在一个实施例中,中继服务器上的认证代理模块被用来协助客户端计算与目的的认证握手。基于web的客户端因此将密码调用委托给中继服务器并使用中继服务器作为处理远程服务器处的协议通信所需的密码调用和地址的工具。其它实施例通过例如将散列计算(通过在中继服务器上实施必要的算法)或域名解析API调用(用于将主机名称解析为IP地址)的处理委托给中继服务器的平台服务组件来扩展基于web的客户端的功能。本文所提供的操作仅作为示例来提供。
图1中示出了主持多个参与者之间的web会议的示例逻辑环境或***100。参与者102和104想要与彼此进行web会议。为此,客户端106和118分别跨网络108和120联系诸如例如SIP服务器之类的服务器110以分别请求加入会议114和124。如果会话发起请求被理解并被启用,则SIP服务器110分别向客户端106和118发送接受消息116和122。然而,当例如在客户端106和SIP服务器110之间没有建立连接时,会话请求114可以是开放式的或者完全拒绝的(未示出)。这一情形可存在于例如当诸如基于web的客户端之类的客户端106的受限制的环境阻止套接字连接(未示出)向服务器110开放的情况下。此外,客户端106能够仅以HTTP通信并且因此不能以服务器110所理解的协议来通信,诸如通过TLS或TCP。因此想要通过HTTP隧穿例如SIP,其中客户端106是仅使用HTTP通信的基于web的客户端或者具有某些其它形式的受限网络连通性,诸如企业防火墙网络、代理服务器之后的网络、NAT等。
图1示出了普通会议环境,而图2描绘了用于通过使用中继服务器206以启用与目的208的丰富会议体验来扩展受限环境中的基于web的客户端202的功能的示例逻辑环境或***200。在图2中,基于web的客户端202也被称为隧穿客户端202。此外,在各个实施例中,基于web的客户端可指代任何类型的任意端点,诸如“基于浏览器的客户端”等。术语“基于web的”客户端仅作为示例来提供。当基于web的客户端202的通信是基于HTTP的,如果目的端点208采用不是基于HTTP的现有通信协议,则客户端202不能连接到目的端点208。在一个实施例中,目的208是远程服务器,诸如SIP服务器。在另一实施例中,目的208是屏幕共享服务器。在又一实施例中,目的208是客户端自身。此外,可使用任何数量的目的端点208,如省略号210和目的212所示。
基于web的或隧穿客户端202通过网络204发送HTTP请求214给中继服务器206。中继服务器206解开请求214中的数据并使用目的208所理解的协议将解开的数据216通过网络218转发给目的208。在各个实施例中,中继服务器206因此通过HTTP隧穿了数据,例如SIP和RDP协议数据。如上说讨论的,中继服务器206可隧穿任何任意二进制数据。在这一实施例中,中继服务器206已经具有诸如RTP/SRTP或TLS之类的合适的传输栈,如果需要的话,这些传输栈被加载到中继服务器上(未示出)以实现这一隧穿。
在处理接收到的协议数据216之后,目的208将协议数据220发送给中继服务器206。中继服务器206随后以HTTP协议打包从目的208接收的数据,并将其作为HTTP响应222的一部分发送给客户端202。根据本文所公开的实施例,任何类型的任意数据可被隧穿。例如,根据各实施例,环境或***200可允许:通过HTTP将任何数据隧穿到RTP/SRTP;通过HTTP将RDP隧穿到RTP/SRTP;通过HTTP将RDP隧穿到任何传输机制(诸如TCP或UDP);以及通过HTTP隧穿SIP。
逻辑环境200不被限制于任何特定实现,相反,可以由其上可实现本文所描述的环境的功能的任何计算环境来实现。例如,根据各个实施例,可使用本领域技术人员理解的任何类型的客户端计算机202。此外,网络204和218虽然被显示为独立的单个网络,但它们可以是本领域技术人员按照惯例理解的任何类型的网络。根据一实施例,网络可以是全球网络(例如,因特网或万维网,即简写为“web”)。其还可以是局域网(例如,内联网)或广域网。根据各个实施例,网络204和218上的通信按照一个或多个标准的基于分组的格式(例如,H.323、IP、以太网、和/或ATM)来进行。
此外,根据本公开的实施例,可使用本领域技术人员说理解的任何可能的环境或***。图2仅为了理解本文所公开的实施例的教示而作为示例来提供。例如,图2示出了中继服务器206和目的208、210、以及212。然而,各实施例也覆盖任何类型的服务器、分开服务器、服务器场或其他消息服务器。此外,图2显示了客户端计算机202。然而,如本领域技术人员所理解的,可使用任何类型的小型计算设备而不违背本文所公开的实施例的精神和范围。例如,尽管仅示出一个客户端计算机202,另一实施例提供多个小型计算机设备来与中继服务器206通信。在一个实施例中,每个小型计算机设备与网络204通信,或者,在其它实施例中,多个单独网络与小型计算机设备通信。在又一实施例中,每个小型计算机设备与单独的网络通信。事实上,环境或***200表示实现本文所公开的实现实施例的一种有效方式,但完全不意图限制本公开的范围。此外,示例网络环境200可以被视为由所描述的具体组件组成,例如中继服务器、客户端计算机等,或者可替换地,可被视为由对应于这些单元的类似模块组成。
图2显示了用于通过HTTP进行协议隧穿的示例环境或***200,而图3示出了根据本公开的实施例的用于通过中继服务器304扩展基于浏览器的客户端302的功能的软件功能模块300。根据本文公开的实施例,软件功能模块300执行在图3中所示的计算***中。在图3中示出的实施例中,基于浏览器的客户端302诸如经由web服务调用322来联系中继服务器304以创建中继会话。中继服务器304的会话管理组件310(其包括web服务312)经由例如方法调用315与中继引擎314交互,中继引擎314包括用于配置所请求的中继会话的明文HTTP web处理程序316。在各个实施例中,会话管理组件310提供通过生成会话标识符等发起以及建立客户端302和目的(诸如远程服务器308)之间的连接的功能、例如建立会议中涉及的实体间的连接的功能、以及将属于相同中继会话的请求分组的功能。根据一个实施例,会话标识符经由例如web服务调用返回值来返回给客户端。一旦建立了会话,中继引擎组件314提供客户端302和远程服务器308之间的数据交换。在各实施例中,中继引擎314还提供分配顺序号和确收号以确保请求和响应消息的可靠和有序递送。
在一个实施例中,会话管理组件310首先联系平台服务组件320或认证组件320以获取配置中继会话的许可。(在一些实施例中,平台服务组件320是可选的,如虚线320所示。)根据各实施例,平台服务组件320提供例如执行客户端302的认证,以及处理密码调用操作和DNS解析操作。这些服务仅作为示例来提供。其它和额外类型的服务由平台服务组件320执行。在一些实施例中,平台服务组件320可直接由基于浏览器的客户端302调用。根据一实施例,基于浏览器的客户端302可能需要被认证以加入与远程服务器或目的308的会议。在进一步实施例中,认证组件320具有诸如质询数据之类的信息或数据以供传递给基于浏览器的客户端302以在创建中继会话之前进行认证,其中中继服务器304用作基于浏览器的客户端302和远程服务器308之间的“中间人”。在又一实施例中,认证组件320联系326远程服务器308以验证客户端302,以便通过如下方式来加入会议:向远程服务器308呈现创建中继会话的客户端请求;和/或获取认证信息或数据(例如,质询数据)以及唯一标识符以便发送322给客户端302以构成质询响应消息322。虚线326显示了认证组件320和远程服务器308之间的联系的可选属性。根据各实施例,当远程服务器308被联系时,它可验证由中继服务器304提供的秘密,并且当该验证成功时,提供质询数据(根据各实施例,包括唯一标识符)给验证组件320(如联系326的双向属性所示)。在又一其它实施例中,没有秘密被提供给远程服务器308,并且远程服务器308提供质询/标识符数据而不对来自中继服务器304的请求进行任何验证。
在认证被要求并成功(或者其中认证起初不被要求,如以上所讨论的)的实施例中,会话管理组件310通过例如方法调用来与中继引擎组件314交互315以配置中继会话。当成功地创建中继会话之后,会话管理组件310分配会话ID给客户端302。在一个实施例中,分配给客户端302的会话ID被用来对属于同一会话的请求分组。在一个实施例中,会话ID是GUID状或其它密码强的会话标识符。GUID状标识符仅作为示例提供。根据本公开的各实施例,可使用其它类型的会话标识符,诸如那些用来进一步增强安全性的标识符。在一个实施例中,一个会话ID被分配给SIP请求,而另一会话ID被分配给例如来自基于浏览器的客户端302的RDP请求。该会话ID被从中继服务器304发送322给基于浏览器的客户端302,并且客户端302随后使用该会话ID作为HTTP头部以与中继引擎314通信328。当接收到来自基于浏览器的客户端302的数据时,中继引擎314与传输组件318交互330以将数据332中继到远程服务器308或中继来自远程服务器308的数据332。中继引擎314由此解开HTTP请求中接收或传输的数据并将该数据以用于该传输的适当的协议转发给远程服务器308。中继服务器304由此用作为用于以想要网络协议来通信的“隧道”。软件功能模块300是作为所描述的各实施例的可能的软件功能模块的示例来提供的。其它实施例可包括所描绘的模块、比所描绘的模块和/或子模块少的模块、额外的模块和/或子模块、模块和/或子模块的组合、所描绘的模块和/或子模块的扩充等。
根据各实施例,对应于中继服务器304上的那些模块的模块也存在于基于浏览器的客户端302和远程服务器308上以允许这些通信和传输。在客户端侧,一个实施例包括例如对应于中继服务器的模块以发起HTTP请求,将会话ID作为HTTP头部放在请求中,分配顺序号并使用上游数据的确收号,使用顺序号并生成下游数据的确收号等。根据各实施例,在远程服务器处,对应于中继服务器的部分是协议参与者。在一个实施例中,协议参与者是例如TCP参与者,用来协助在中继服务器和远程服务器之间移动数据。
根据本文所公开的实施例,图3中描绘的各个软件功能模块的交互进一步示出在图4所描绘的用于经由HTTP隧穿协议数据的操作步骤中。开始操作402启动,并且过程400前进到接收例如来自基于浏览器的客户端的联系,诸如经由web服务调用,以创建中继会话404。在配置所请求的中继会话410之前,过程400可任选地(如虚线所示)首先前进至查询406以从平台服务组件确定客户机是否被准许(例如,被认证和/或被授权)创建与目的的会话。在作出这一确定406时,中继服务器可诸如通过平台服务组件320可选地联系目的408(诸如图3中的远程服务器308)以获取质询数据和/或其它认证数据,以完成客户端和目的之间的握手以配置所请求的会话。虽然根据描述的实施例,步骤406和408都被显示为可选步骤,但其它实施例要求406处的这一认证确定但不要求联系远程服务器408。在又进一步的实施例中,步骤406和408都被要求认证和/或授权步骤。步骤406和408中涉及的认证显示本公开的实施例中使用的平台服务的可***属性,例如认证代理。如果查询406确定客户端被认证和/或授权建立中继会话,则过程400前进(是)至配置中继会话410。根据本公开的实施例,如果客户端没有被认证以及这一认证没有被要求进行,则过程400前进(否)至结束操作422,在操作422,过程400中止。当客户端被准许配置中继会话并且该会话被配置410,过程400分别前进至生成和分配会话ID412和414,其中会话ID被生成并分配给客户端。在一个实施例中,会话ID被生成和分配以用来对属于同一中继会话的请求分组。在一个实施例中,这一会话ID是在中继服务器处(诸如在例如会话管理组件处)通过密码随机数生成器随机生成的。如所讨论的,虽然描述的是GUID会话ID,但这一类型的标识符仅作为示例提供。然而,如本领域技术人员所理解的,可使用任何数量种类型的标识符而不违背本文所公开的精神和范围。
接着,过程400前进至发送会话ID给客户端416,其中被分配给属于特定中继会话的请求的会话ID被发送给客户端。客户端随后使用会话ID作为HTTP头部以与中继服务器通信以进一步交换数据,其中中继服务器接收具有会话ID的HTTP请求418。数据随后通过中继服务器与远程服务器420交换,随后过程400在结束操作422终止。图4是根据本文公开的各实施例的用于通过使用中继服务器经由HTTP进行协议隧穿的可能的操作特性的示例。所描绘的操作步骤可被组合到其他步骤中和/或被重新安排。此外,可使用例如更少或更多的步骤。
图5接着示出根据本公开的实施例的***的可***特性。例如,如以上讨论的,平台服务组件是可***的,以向受限环境中的客户端提供服务。例如,根据各实施例,作为平台服务组件的一部分的认证代理协助客户端进行SIP认证。此外,传输是可***的。传输的可***特性允许对任意数据隧穿,因为可以为想要被隧穿的数据使用任何适当协议。例如,在各实施例中,SIP隧穿使用TLS作为传输,而在各实施例中,RDP隧穿使用SRTP作为传输。图5示出了根据一实施例的用于诸如通过开发者来配置中继服务器以在属性方面可***的过程。在开始操作502启动过程500,并且前进至查询504以确定是否想要配置中继服务器以隧穿数据。如果否,过程500前进到结束操作528,则过程500终止。如果是,过程500前进(是)到确定操作506,其中确定是否隧穿SIP数据。如果是,过程500前进到添加***式TLS/SSL传输模块508,其中在一个实施例中,TLS/SSL被用作SIP隧穿中的传输。在另一实施例中,另一类型的协议被用于传输以供SIP隧穿。接着,过程500前进以查询510以确定是否有任何插件要被添加。如果不想要任何其他插件,过程500前进(否)到结束操作,并且过程500终止。如果想要其它插件,过程500前进(是)到例如添加认证代理插件512。在各实施例中,认证代理是协助客户端执行SIP认证的一组平台服务。在添加***式认证代理512之后,过程500前进至查询514以确定是否想要任何其它插件。如果是,添加插件516,并且步骤514-516重复直到不想要其它插件。如果不想要其它插件,过程500前进(否)到结束操作534并终止。
返回查询506,如果不想要SIP隧穿,过程500前进(否)至查询518以确定是否想要隧穿RDP数据。如果想要隧穿RDP数据,过程500前进(是)到添加用于RTP/SRTP传输模块520的插件,其中RDP隧穿使用RTP/SRTP作为传输。接着,确定是否有任何其它插件想要被添加522。如果不想要其它插件,过程500前进(否)到结束操作534并且过程500终止。如果想要其它插件,过程500前进(是)至添加插件524,接着前进至查询522以再次确定是否想要任何其它插件,并且这些步骤重复。如果不想要其它插件,过程500前进(否)以在结束操作534终止过程500。
回到步骤518,如果不想要RDP隧穿,过程500前进(否)至查询526以确定是否想要任何任意数据的隧穿。如果否,则过程500在结束操作528终止。如果想要隧穿任意数据,过程500前进(是)至***式适当的协议传输模块530以支持任意协议数据隧穿。接着,在操作532确定是否有任何其它插件想要被添加。如果想要其它插件,则过程500前进(是)至添加插件524并且这些步骤重复直到不想要其它插件。当不想要其它插件,过程500前进(否)到结束操作534并且过程500终止。图5是根据本文公开的各实施例的诸如由开发者来将中继服务器配置成可***属性的可能的操作特性的示例。所示出的操作步骤可被组合到其他步骤中和/或被重新安排。此外,可使用例如更少或更多的步骤。
图6接着示出根据本文公开的实施例的用于分配会话ID以将属于相同的中继会话的请求分组的示例操作步骤600。过程600起始于开始操作602,并且前进至接收创建中继会话604的请求,其中在中继服务器处接收到来自基于浏览器的客户端的诸如SIP请求之类的请求。在操作606创建中继会话,并且通过密码随机数生成器随机生成会话ID 608用于将请求(例如,SIP请求)分配给属于相同中继会话的组。在一个实施例中,会话ID是GUID状的会话ID。接着,过程600前进至操作610,分配随机数给组1。例如,组号被发送给“组1”的客户端612。接着,过程600前进至例如从基于浏览器的web应用614接收对RDP数据的请求。接着生成另一会话ID 616以将对例如RDP数据的请求分组到例如“组2”中。用于将组号分配给“组2”的客户端的会话ID被发送给客户端618,并且过程在结束操作620终止。图6是根据本文公开的实施例的用于分配会话ID以将属于相同的中继会话的请求分组的可能的操作特性的示例。所示出的操作步骤可被组合到其他步骤中和/或被重新安排。此外,可使用例如更少或更多的步骤。
另外,图7描绘了根据本文公开的各实施例的用于执行用于分配顺序号和确收号以确保客户端(诸如基于web浏览器的客户端)和中继服务器之间的数据的可靠和有序递送的方法的示例操作步骤700。过程700起始于开始操作702,并且前进至在基于浏览器的客户端处生成HTTP请求704,其中过程700示出经由中继服务器从基于浏览器的客户端移动至远程服务器的上游数据。在操作704,还将顺序号分配给客户端的请求。接着,在中继服务器处接收具有顺序号的请求706。中继服务器使用该顺序号708,其中该顺序号被作为HTTP头部传递给中继服务器。中继服务器接着生成确收号710。根据各实施例,中继服务器作为HTTP响应的HTTP头部和/或作为响应的主体将确收号与HTTP响应一起传回客户端712。在客户端侧,HTTP响应(如果接收到的话)被匹配于未决的请求(未示出)。根据一个实施例,将HTTP响应与其请求的匹配在客户端处由诸如web浏览器之类的底层平台执行。在这一实施例中,在客户端处经由与发送请求相同的连接(诸如,TCP)接收HTTP响应。在各个实施例中,请求/响应顺序和确收号的这一匹配和追踪使得能够协助通过HTTP的有序和可靠数据传输。
由于响应消息和确收号可能在从中继服务器到客户端的传输期间被丢弃,过程700提出在查询714中确定客户端是否接收到对应于HTTP中发送的数据的确收。例如,根据本文公开的实施例,对于上游数据,由客户端发起的每个HTTP请求为该特定请求携带的第一个字节的数据携带一顺序号。另外,每个请求具有指示请求所携带的数据的字节数的长度数。在中继服务器侧,为响应消息生成的确收号是中继服务器接收到的最后一个字节。在这一确收号之前的所有具有顺序号的数据也因此通过最近确收号而确认。一旦客户端确认了字节已被接收到,它就将这些字节从其高速缓存中移除。否则,根据各实施例,在没有接收到确认的情况下,数据被重新递送。例如,当顺序号从1开始并且请求的长度包括100字节,则客户端查找的确收号为100。当发送第二请求,顺序号起始于101,并且如果长度是200,则客户端查找对应的确收号300。
回到图7,如果在714接收到确收(指示请求/响应消息的可靠递送),则过程700前进(是)至查询716以确定客户端是否想要经由中继服务器发送其它请求给远程服务器。如果想要其它请求,则过程700前进(是)至生成HTTP请求并分配顺序号704给下一请求。如果不想要其它请求,过程700前进(否)到结束操作718并且过程700终止。
当查询714确定没有收到确收,或者在其它实施例中,接收到指示否定处理和/或失败处理,则过程700前进(否)至查询720以确定预定等待时间是否超过。如果诸如在各实施例中由定时器指示的用于确收的等待时间还没有超过,则过程700回到查询714以确定确收是否被接收,并且步骤714和720重复。如果预定的等待时间已超过,则过程700前进(是)至操作722以重新尝试发送请求,并且过程700随后再次前进至操作706。在重复步骤706至716之后,过程700最终前进至结束操作718,并且过程700终止。图7是根据本文所公开的各实施例的用于分配顺序号并追踪请求的确收以确保消息的有序和可靠递送的可能的操作特性的示例。所示出的操作步骤可被组合到其他步骤中和/或被重新安排。此外,可使用例如更少或更多的步骤。
通过使用确收查询和/或确收号并等待直到第一请求被确认收到再发送第二请求,过程700提供了通过追踪消息来防止丢失数据并实现具有***弹性的无丢失的数据传输的可靠和有序消息递送。此外,根据本文公开的各实施例,追踪请求/响应消息使得***能够通过使同一时间只有一个未决的上游请求和一个下游请求来维持有序递送,其中第二请求不能被发送直到第一请求/响应被确认。此外,确收号的使用使得***能够追踪为了与新数据(除了携带请求的数据之外)一起发送而重新尝试的请求。另外,如所讨论的,在HTTP允许例如同一时间的多个连接的条件下,消息的有序发送在HTTP请求/响应会议环境中是有益的。虽然图7示出了用于实现客户端和中继服务器之间(反之亦然)的可靠和有序的数据递送,但根据本文公开的各实施例,中继服务器和远程服务器之间的可靠和有序的数据递送可由在其间使用的协议来规定。
虽然图7显示了用于上游数据(即,经由中继服务器从客户端到远程服务器)的顺序/确收号,但根据本文所公开的各实施例,下游数据(即经由中继服务器从远程服务器到客户端)也涉及对应步骤。在一个实施例中,顺序号在中继服务器侧生成并且由客户端消费。根据各实施例,客户端随后生成在中继服务器处消费的确收号。
以上的图3示出了通过中继服务器304扩展了基于浏览器的客户端302的功能的示例软件功能模块300,而图8A描绘了根据本文公开的各实施例的用于隧穿SIP数据以及用于使用被***到***中的用于协助隧穿SIP数据的可选的平台服务(诸如通过执行认证)的示例软件功能模块800。基于浏览器的客户端802例如经由web服务调用822联系中继服务器804以配置中继会话。中继服务器804的会话管理组件810(其包括web服务812)经由例如方法调用806与中继引擎814交互,中继引擎814包括用于配置所请求的中继会话的明文HTTP web处理程序816。在各个实施例中,会话管理组件810提供通过生成会话标识符等发起以及建立具有客户端802和目的(诸如远程服务器808)之间的连接的SIP会话的功能、建立例如会议中涉及的实体间的连接的功能、以及将属于相同中继会话的请求分组的功能。根据一个实施例,会话标识符被经由例如web服务调用返回值822来返回给客户端。一旦建立了会话,中继引擎组件814提供客户端802和远程服务器808之间的数据交换。在各实施例中,中继引擎814还提供分配顺序号和确收号以确保请求和响应消息的可靠和有序递送。
在一个实施例中,首先联系824可选的(如虚线820所示)平台服务组件820以访问配置想要的中继会话的许可。根据各实施例,平台服务组件820提供例如执行客户端802的认证,以及处理密码调用操作和DNS解析操作。在一进一步实施例中,认证代理821被用作协助客户端执行SIP认证的一组可***平台服务。在这一实施例中,认证代理具有诸如质询数据之类的信息或数据以传递给基于浏览器的客户端802以在创建中继会话之前进行认证,其中中继服务器804用作基于浏览器的客户端802和远程服务器808之间的“中间人”。在又一实施例中,认证组件826联系326远程服务器808以验证客户端802,以便例如通过如下方式来加入会议:向远程服务器808呈现创建中继会话的客户端请求;和/或通过获取认证信息或数据(例如,质询数据)以及唯一标识符以便发送822给客户端802以构成质询响应消息822。虚线826显示了认证组件820和远程服务器808之间的联系826的可选属性。根据各实施例,当远程服务器808被联系时,它可验证由中继服务器804提供的秘密,并且当该验证成功时,提供质询数据(根据各实施例,包括唯一标识符)给验证组件820(如联系826的双向属性所示)。在又一其它实施例中,没有秘密被提供给远程服务器808,并且远程服务器808提供质询/标识符数据而不对来自中继服务器804的请求进行任何验证。
在认证被执行并成功(或者其中认证起初不被执行,如以上所讨论的)的实施例中,会话管理组件810通过例如方法调用来与中继引擎组件814交互以配置中继会话。当成功地创建中继会话之后,会话管理组件810分配会话ID给客户端802。在一个实施例中,分配给客户端802的会话ID被用来对属于同一会话的SIP请求分组。该会话ID被从中继服务器804发送822给基于浏览器的客户端802,并且客户端802随后使用该会话ID作为HTTP头部以与中继引擎814通信828。当接收到来自基于浏览器的客户端802的数据时,中继引擎814与SSL流传输模块818交互830以使用例如TLS/SSL 832来将数据832中继到远程服务器808以及中继来自远程服务器808的数据832。中继引擎814由此解开HTTP请求中接收或传输的数据并将该数据以用于传输的TLS/SSL协议转发给远程服务器808。中继服务器804因而用作用于以SIP通信的“隧道”。示例软件功能模块800是作为所描述的各实施例的可能的软件功能模块的实例来提供的。其它实施例可包括所描绘的模块、比所描绘的模块和/或子模块少的模块、额外的模块和/或子模块、模块和/或子模块的组合、所描绘的模块和/或子模块的组合等。
继续到图8B,示出了用于使用图8A中描绘的并且根据本文公开的各实施例的SSL流传输模块和可***认证模块来隧穿SIP数据的示例操作步骤834。过程834起始于开始操作836并且前进至在中继服务器的会话管理组件处经由例如web服务调用接收联系以创建中继会话838。会话管理组件接着与中继引擎交互以配置所请求的中继会话844。然而,过程834可首先可选地前进至查询840以从平台服务组件确定客户端是否被准许(例如,被认证和/或被授权)创建该会话。在进行这一确定中840,中继服务器可诸如通过平台服务组件820和/或认证代理821可选地联系842远程服务器808以获取质询数据和/或认证数据以便完成客户端802和远程服务器808之间的握手(如步骤840和842间的箭头的可选双向属性所示)。在其它实施例中,认证代理821提供质询数据和/或认证数据以完成握手。如果客户端802没有被认证和/或授权创建中继会话,则过程834前进(否)至结束操作856,过程834终止。如果认证和/或授权是想要的并且成功,则过程834前进(是)到配置中继会话操作844,其中中继会话被配置844。在会话管理组件处生成846会话ID并将其分配848给客户端,并且发送给客户端850。中继引擎随后与用于SIP隧穿的传输模块(例如,SSL流模块)交互以将数据中继到远程服务器852并且中继来自远程服务器852的数据。SSL流传输模块随后与远程服务器通信以交换数据854,并且过程834在结束操作856终止。图8B是根据本文公开的各实施例的用于使用客户端和远程服务器之间的中继服务器通过HTTP隧穿SIP的可能的操作特性的示例。所示出的操作步骤可被组合到其他步骤中和/或被重新安排。此外,可使用例如更少或更多的步骤。
接着,图9示出显示可选的平台服务如何被***到整个***中以协助隧穿某个协议(例如,SIP)数据的示例操作步骤900。例如,图9显示根据本文公开的各实施例的用于协助客户端(例如,HTTP端点)完成与目的(例如,远程服务器)的认证握手的可***认证模块的使用。过程900因此显示了基于浏览器的客户端将认证委托给中继服务器。过程900起始于开始操作902,并且前进至接收来自基于浏览器的web应用904的质询数据。中继服务器随后使用从基于浏览器的客户端接收的质询数据来执行认证906以生成质询响应以便发送该质询响应给客户端908。在一实施例中,中继服务器在执行认证906时联系远程服务器,而在另一实施例中,中继服务器自己执行认证以为基于浏览器的客户端生成质询响应。当接收到质询响应,基于浏览器的应用将所返回的质询响应组装到新的请求响应中,诸如用于发起与中继服务器和远程服务器的会话的新的SIP消息。中继服务器随后接收具有组装的质询响应的新的请求910并且发送新的请求给远程服务器912以例如发起会话。当确定客户端是有效参与者(未示出),远程服务器发送批准给中继服务器,该批准被中继服务器接收914。中继服务器随后通知基于浏览器的web应用该批准以及会话的发起916。随后在中继服务器从基于浏览器的web应用接收用于交换的数据918,并且过程900在结束操作920终止。图9是根据本文公开的各实施例的用于通过将认证委托给中继服务器来认证基于浏览器的web应用与目的之间的握手的可能的操作特性的示例。所示出的操作步骤可被组合到其他步骤中和/或被重新安排。此外,可使用例如更少或更多的步骤。
接着,图10示出根据本公开的实施例的用于将传输栈(诸如媒体栈)***到整个***中以协助通过RTP/SRTP隧穿RDP数据的示例软件功能模块1000。基于浏览器的客户端1002例如经由web服务调用1018联系中继服务器1004的配置组件以配置SRTP信道。在各个实施例中,配置组件1008包括web服务1010并通过例如方法调用1026与中继引擎1012交互以配置信道。接着,配置组件1008配置1020加载在中继服务器1004上的媒体栈1016。
在模块中,尤其是媒体栈1016使得中继服务器1004能够扩展基于浏览器的客户端1002的功能。根据各个实施例,在中继服务器上加载媒体栈以准许某些协议的隧穿。例如,在RDP中继情景中,为了经由RTP/SRTP加载RDP数据,各实施例还使用了对RTP/SRTP以及交互式连接建立(ICE)的知识。例如,ICE被用于使RTP/SRTP通信流量能够穿越防火墙。中继服务器由此加载支持RTP/SRTP/ICE的媒体栈,因为RDP数据通常经由RTP/SRTP运送到屏幕共享服务器。在涉及RDP中继和建立与屏幕共享服务器的连接的实施例中,基于web的客户端以SIP与屏幕共享服务器通信以建立中继服务器和屏幕共享服务器之间的RTP/SRTP/ICE连接。在中继服务器上加载RTP/SRTP/ICE对这一过程有帮助。客户端随后能够以SIP与屏幕共享服务器通信,因为一部分SIP消息主体(即会话描述协议(SDP)部分)是经由web服务调用从中继服务器检索到的。类似的,来自屏幕共享服务器的SIP请求的SDP被经由web服务调用传递到中继服务器。因此,中继服务器对媒体栈的加载使得能够在各个环境中传输RDP数据,而在其他情况下,在这些环境中这些传输的进行将受到限制。例如,RTP/SRTP和ICE的媒体栈通常在Mac平台不可用。例如,在Mac平台,开发者要么将媒体栈转接到本机Mac,要么在基于web的客户端里开发媒体栈。然而,这些解决方案是复杂的,并且通过这种转接和/或开发仍然存在受限的功能。
回到图10,如以上所讨论的,为了经由RTP/SRTP加载RDP数据,在各实施例中使用RTP/SRTP以及ICE的知识。在一实施例中,这一配置涉及与远程SIP/RTP端点1006通信以进行连通性检查,以确定连接是否能被进行。在另一实施例中,不进行连通性检查。当配置SRTP信道和媒体栈时,客户端1002经由HTTP发送/接收RDP数据1022给包括明文(plain)HTTP web处理程序(handler)1014的中继引擎1012以便配置中继会话。中继引擎1012随后与媒体栈1016通信1024以通过在媒体栈1016和远程RTP端点1006之间交换与RTP有关的消息1028来获取RDP数据。软件功能模块1000是作为所描述的各实施例的可能的软件功能模块的实例来提供的。其它实施例可包括所描绘的模块、比所描绘的模块和/或子模块少的模块、额外的模块和/或子模块、模块和/或子模块的组合、所描绘的模块和/或子模块的组合等。
图10描绘了用于将诸如媒体栈之类的传输栈***到整个***中以协助通过RTP/SRTP隧穿RDP数据的示例软件功能模块,而图11示出了根据本公开的实施例的用于使用可***传输栈来通过RTP/SRTP隧穿RDP数据的示例操作步骤1100。过程1100起始于开始操作1102,并且前进至操作1104,其中诸如经由例如web服务调用来联系客户端和远程RTP端点之间的中继服务器来配置用于隧穿RDP数据的SRTP信道。接着,配置组件配置可***媒体栈1106并且在这样做时可选地(如虚线所示)与远程RTP端点通信以进行连通性检查1107。RTP端点通过如1106和1107之间的箭头的双向属性所显示的信息来响应。客户端随后经由HTTP发送RDP数据至中继引擎1108/从中继引擎1108接收RDP数据。接着中继引擎与媒体栈通信以获取RDP数据1110。为了获取RDP数据,媒体栈与远程RTP端点1112交换RTP消息。过程1100在结束操作1114中止。图11是根据本文公开的各实施例的用于使用可***传输栈通过RTP/SRTP隧穿RDP数据的可能的操作特性的示例。所示出的操作步骤可被组合到其他步骤中和/或被重新安排。此外,可使用例如更少或更多的步骤。
最后,图12示出可在其上实现本文公开的各实施例的示例计算机***1200。根据本文公开的各实施例,描绘了诸如客户端计算机202、中继服务器206或远程服务器208之类的、具有至少一个处理器1202用于如图2中所示的交换消息数据的计算机***1200。***1200具有***存储器1204,包括例如易失性存储器和非易失性存储器。在其最基本的配置中,计算***1200在图12中由虚线1206示出。另外,***1200还可包括另外的存储(可移动和/或不可移动),其中包括但不限于磁盘、光盘或磁带。在图12中通过可移动存储1208和不可移动存储1210示出这样的附加存储。
本文所使用的术语计算机可读介质可包括计算机存储介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块、或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。***存储器1204、可移动存储1208和不可移动存储1210都是计算机存储介质(即,存储器存储)的示例。计算机存储介质可包括,但不限于,RAM、ROM、电可擦除只读存储器(EEPROM)、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或者可用于存储信息且可由计算设备1200访问的任何其他介质。任何这样的计算机存储介质都可以是设备1200的一部分。图12中的说明不意图以任何方式限制本公开的范围。
本文所使用的术语计算机可读介质还可包括通信介质。通信媒介可由诸如载波或其他传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块、或其他数据来体现,并且包括任何信息传递介质。术语“已调制数据信号”可以描述以对该信号中的信息进行编码的方式设定或者改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接等有线介质,以及诸如声学、射频(RF)、红外线和其他无线介质等无线介质。
***1200还可包含允许该设备与其它设备通信的通信连接1216。此外,为了输入内容到例如客户端计算机202上的用户界面(UI)(例如由客户端计算机202上的相应UI模块(未示出)所提供的)的各字段中,根据本公开的一实施例,***1200可具有诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等之类的输入设备1214。还可包括输出设备1212,诸如显示器、扬声器、打印机等。所有这些设备在本领域中是公知的并且不必在此详细讨论。上述设备是示例,并且可使用其他设备。
以上参考附图描述了本发明的各实施例,可以理解,可以对本发明做出本领域技术人员易于想到且被包含在所公开并如所附权利要求书所定义的本发明的精神和范围内的众多修改。尽管出于本发明的目的描述了各实施方式,但可以做出落入本发明的范围内的各种改变和修改。
同样地,虽然本发明使用了对结构特征、方法动作和含有这些动作的计算机可读介质专用的语言,但是应该理解,在所附权利要求书中定义的本发明不必限于此处描述的具体结构、动作、特征或介质。相反,上述具体特征和动作是作为实现权利要求的示例形式而公开的。实施例的各方面允许多个客户端计算机、多个远程服务器、多个中继服务器、以及多个网络等。或者,在其它实施例中,使用具有单个远程服务器、单个中继服务器、以及单个网络的单个客户端计算机。所属领域技术人员将认识到在本公开的范围和精神内的其他实施例或改进。因此,这些具体结构、动作、或介质是作为实现所要求保护的本发明的示例性实施例而公开的。本发明由所附权利要求书进行定义。

Claims (15)

1.一种用于通过经由中继服务器通过超文本传输协议(HTTP)隧穿协议数据来扩展客户端的功能的计算机实现的方法,所述方法包括:
在所述中继服务器处接收来自所述客户端的通信以创建与远程端点的中继会话;
认证所述客户端,其中认证所述客户端包括发送质询响应数据给所述客户端;
配置所述中继会话;
为所述中继会话生成会话标识符;
发送所述会话标识符给所述客户端;以及
将HTTP请求和响应传输给所述客户端以与所述远程端点交换数据,其中所述HTTP请求包括所述会话标识符。
2.如权利要求1所述的方法,其特征在于,所述会话标识符被用于对属于相同中继会话的请求分组。
3.如权利要求2所述的方法,其特征在于,所述会话标识符由密码随机数生成器生成。
4.如权利要求1所述的方法,其特征在于,顺序号和确收号被分配给属于相同会话的HTTP请求和响应。
5.如权利要求1所述的方法,其特征在于,初始请求和响应发起所述中继会话,并且其中随后的HTTP请求经由HTTP将会话发起协议(SIP)数据经由所述中继服务器传输给所述远程端点。
6.如权利要求5所述的方法,其特征在于,所述SIP数据经由HTTP被传输到传输机制上,并且其中所述传输机制包括由以下组成的组中的一个:传输控制协议(TCP)、用户数据报协议(UDP)、或传输层安全(TLS)。
7.如权利要求1所述的方法,其特征在于,初始请求和响应发起所述中继会话,并且其中随后的HTTP请求经由HTTP将远程桌面协议(RDP)数据经由所述中继服务器传输给所述远程端点。
8.如权利要求7所述的方法,其特征在于,所述RDP数据经由HTTP被传输到传输机制上,并且其中所述传输机制包括由以下组成的组中的一个:RTP/SRTP、TLS、UDP或TCP。
9.一个或多个计算机存储介质,其存储计算机可执行指令,所述计算机可执行指令在由处理器执行时执行用于通过经由中继服务器通过超文本传输协议(HTTP)隧穿协议数据来扩展客户端的功能的计算机实现的方法,所述方法包括:
在所述中继服务器处接收来自所述客户端的通信以创建与远程端点的中继会话;
认证所述客户端,其中认证所述客户端包括发送质询响应数据给所述客户端;
配置所述中继会话;
为所述中继会话生成会话标识符;
分配所述会话标识符给所述客户端;
传输HTTP请求以与所述远程端点交换数据,其中所述HTTP请求包括所述会话标识符以及顺序号,并且其中所述顺序号作为HTTP头部由所述中继服务器接收;
传输HTTP请求和响应给所述客户端,其中给所述客户端的HTTP请求包括所述会话标识符;
通过所述中继服务器消费所述顺序号;
生成确收号;以及
将所述确收号与HTTP响应一起传递给所述客户端。
10.如权利要求9所述的一个或多个计算机存储介质,其特征在于,还包括:
使用所述会话标识符来将属于相同中继会话的请求分组,其中一组请求包括RDP请求。
11.如权利要求9所述的一个或多个计算机存储介质,其特征在于,所述会话标识符是GUID。
12.如权利要求9所述的一个或多个计算机存储介质,其特征在于,所述认证通过所述中继服务器处的认证代理来执行。
13.如权利要求9所述的一个或多个计算机存储介质,其特征在于,通过HTTP隧穿的协议数据包括任意协议数据。
14.如权利要求9所述的一个或多个计算机存储介质,其特征在于,所述协议数据包括来自以下所组成的组中的一个或多个:远程桌面协议(RDP)数据以及会话发起协议(SIP)数据。
15.一种配置成通过客户端和远程端点之间的中继服务器来通过超文本传输协议(HTTP)隧穿协议数据的***,所述***包括:
处理器;以及
耦合到所述处理器的存储器,所述存储器包括计算机程序指令,所述计算机程序指令能由所述处理器执行以提供:
位于所述中继服务器内的会话管理组件,其中所述会话管理组件生成会话标识符(会话ID)以对HTTP请求分组并将所述会话ID返回给所述客户端;
位于所述中继服务器内的中继引擎组件,其中所述中继引擎组件分配一个或多个顺序号和一个或多个确收号给HTTP请求和响应;
位于所述中继服务器内的平台服务组件,其中所述平台服务组件启用所述客户端的认证以扩展所述客户端的功能;以及
位于所述中继服务器内的***式传输模块,其中所述***式传输模块支持所述协议数据隧穿。
CN201180018596.2A 2010-04-15 2011-04-04 用于通过http的可靠协议隧穿的方法和*** Active CN102835093B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US32472310P 2010-04-15 2010-04-15
US61/324,723 2010-04-15
US12/845,620 2010-07-28
US12/845,620 US8504818B2 (en) 2010-04-15 2010-07-28 Method and system for reliable protocol tunneling over HTTP
PCT/US2011/031103 WO2011130038A2 (en) 2010-04-15 2011-04-04 Method and system for reliable protocol tunneling over http

Publications (2)

Publication Number Publication Date
CN102835093A true CN102835093A (zh) 2012-12-19
CN102835093B CN102835093B (zh) 2015-05-20

Family

ID=44789101

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201180018596.2A Active CN102835093B (zh) 2010-04-15 2011-04-04 用于通过http的可靠协议隧穿的方法和***

Country Status (10)

Country Link
US (1) US8504818B2 (zh)
EP (1) EP2559220A4 (zh)
JP (1) JP5797739B2 (zh)
KR (1) KR101741866B1 (zh)
CN (1) CN102835093B (zh)
AU (1) AU2011240972B2 (zh)
BR (1) BR112012026417B1 (zh)
CA (1) CA2793539C (zh)
RU (1) RU2580097C2 (zh)
WO (1) WO2011130038A2 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103354542A (zh) * 2012-04-13 2013-10-16 微软公司 使web客户端能提供web服务
CN108696546A (zh) * 2017-02-15 2018-10-23 中兴通讯股份有限公司 一种企业移动专用网的用户终端访问公网的方法及装置
JP2019012401A (ja) * 2017-06-30 2019-01-24 京セラドキュメントソリューションズ株式会社 リモート通信システム
WO2019028673A1 (zh) * 2017-08-08 2019-02-14 深圳先进技术研究院 基于B/S架构的数据通信***、方法、Web服务器及监控***
CN112165480A (zh) * 2020-09-22 2021-01-01 北京字跳网络技术有限公司 信息获取方法、装置和电子设备

Families Citing this family (75)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8837465B2 (en) 2008-04-02 2014-09-16 Twilio, Inc. System and method for processing telephony sessions
EP3484135A1 (en) 2008-04-02 2019-05-15 Twilio Inc. System and method for processing telephony sessions
US8964726B2 (en) 2008-10-01 2015-02-24 Twilio, Inc. Telephony web event system and method
US8315369B2 (en) 2009-03-02 2012-11-20 Twilio, Inc. Method and system for a multitenancy telephone network
US9210275B2 (en) 2009-10-07 2015-12-08 Twilio, Inc. System and method for running a multi-module telephony application
US9459926B2 (en) 2010-06-23 2016-10-04 Twilio, Inc. System and method for managing a computing cluster
US9590849B2 (en) 2010-06-23 2017-03-07 Twilio, Inc. System and method for managing a computing cluster
US20120208495A1 (en) 2010-06-23 2012-08-16 Twilio, Inc. System and method for monitoring account usage on a platform
US9459925B2 (en) 2010-06-23 2016-10-04 Twilio, Inc. System and method for managing a computing cluster
US8838707B2 (en) 2010-06-25 2014-09-16 Twilio, Inc. System and method for enabling real-time eventing
US9356951B2 (en) * 2010-07-09 2016-05-31 Hewlett Packard Enterprise Development Lp Responses to server challenges included in a hypertext transfer protocol header
US8649268B2 (en) 2011-02-04 2014-02-11 Twilio, Inc. Method for processing telephony sessions of a network
WO2012162397A1 (en) 2011-05-23 2012-11-29 Twilio, Inc. System and method for connecting a communication to a client
US9648006B2 (en) * 2011-05-23 2017-05-09 Twilio, Inc. System and method for communicating with a client application
US20140044123A1 (en) 2011-05-23 2014-02-13 Twilio, Inc. System and method for real time communicating with a client application
CN102868665B (zh) * 2011-07-05 2016-07-27 华为软件技术有限公司 数据传输的方法及装置
US9026613B2 (en) * 2011-08-29 2015-05-05 Vmware, Inc. Permanent connection oriented communication using parallel single connection circuits
US10182147B2 (en) 2011-09-21 2019-01-15 Twilio Inc. System and method for determining and communicating presence information
SG11201403482TA (en) 2011-12-21 2014-07-30 Ssh Comm Security Oyj Automated access, key, certificate, and credential management
US9495227B2 (en) 2012-02-10 2016-11-15 Twilio, Inc. System and method for managing concurrent events
US9602586B2 (en) 2012-05-09 2017-03-21 Twilio, Inc. System and method for managing media in a distributed communication network
US9247062B2 (en) 2012-06-19 2016-01-26 Twilio, Inc. System and method for queuing a communication session
US8737962B2 (en) 2012-07-24 2014-05-27 Twilio, Inc. Method and system for preventing illicit use of a telephony platform
US20140108542A1 (en) * 2012-10-11 2014-04-17 Nec Europe Ltd. Method and system for providing a multiuser web session
US8948356B2 (en) 2012-10-15 2015-02-03 Twilio, Inc. System and method for routing communications
US8938053B2 (en) 2012-10-15 2015-01-20 Twilio, Inc. System and method for triggering on platform usage
WO2014091576A1 (ja) * 2012-12-12 2014-06-19 株式会社野村総合研究所 中継装置および中継方法、並びにプログラム
US9282124B2 (en) 2013-03-14 2016-03-08 Twilio, Inc. System and method for integrating session initiation protocol communication in a telecommunications platform
US9608925B2 (en) 2013-05-24 2017-03-28 Alcatel Lucent System and method for transmitting an alert using a virtual extensible LAN (VXLAN) tunneling mechanism
US9660907B2 (en) 2013-05-24 2017-05-23 Alcatel Lucent System and method for transmitting an alert using a network virtualization using generic routing encapsulation (NVGRE) tunneling mechanism
US9571362B2 (en) 2013-05-24 2017-02-14 Alcatel Lucent System and method for detecting a virtual extensible local area network (VXLAN) segment data path failure
US9569301B2 (en) 2013-05-24 2017-02-14 Alcatel-Lucent System and method for detecting a network virtualization using generic routing encapsulation (NVGRE) segment data path failure
US9225840B2 (en) 2013-06-19 2015-12-29 Twilio, Inc. System and method for providing a communication endpoint information service
US9160696B2 (en) 2013-06-19 2015-10-13 Twilio, Inc. System for transforming media resource into destination device compatible messaging format
US9483328B2 (en) 2013-07-19 2016-11-01 Twilio, Inc. System and method for delivering application content
US9274858B2 (en) 2013-09-17 2016-03-01 Twilio, Inc. System and method for tagging and tracking events of an application platform
US9137127B2 (en) 2013-09-17 2015-09-15 Twilio, Inc. System and method for providing communication platform metadata
US9325624B2 (en) 2013-11-12 2016-04-26 Twilio, Inc. System and method for enabling dynamic multi-modal communication
US9553799B2 (en) 2013-11-12 2017-01-24 Twilio, Inc. System and method for client communication in a distributed telephony network
US10410244B2 (en) 2013-11-13 2019-09-10 Bi Science (2009) Ltd Behavioral content discovery
US9344573B2 (en) 2014-03-14 2016-05-17 Twilio, Inc. System and method for a work distribution service
US9226217B2 (en) 2014-04-17 2015-12-29 Twilio, Inc. System and method for enabling multi-modal communication
WO2015199737A1 (en) * 2014-06-27 2015-12-30 Hewlett-Packard Development Company, L.P. Message receipt through firewall
US9774687B2 (en) 2014-07-07 2017-09-26 Twilio, Inc. System and method for managing media and signaling in a communication platform
US9516101B2 (en) 2014-07-07 2016-12-06 Twilio, Inc. System and method for collecting feedback in a multi-tenant communication platform
US9246694B1 (en) 2014-07-07 2016-01-26 Twilio, Inc. System and method for managing conferencing in a distributed communication network
US9251371B2 (en) 2014-07-07 2016-02-02 Twilio, Inc. Method and system for applying data retention policies in a computing platform
US9749428B2 (en) 2014-10-21 2017-08-29 Twilio, Inc. System and method for providing a network discovery service platform
US9769011B2 (en) 2015-01-16 2017-09-19 Alcatel Lucent Bidirectional forwarding detection over network virtualization using generic routing encapsulation
US9819511B2 (en) 2015-01-16 2017-11-14 Alcatel Lucent Bidirectional forwarding detection over a virtual extensible local area network
US9477975B2 (en) 2015-02-03 2016-10-25 Twilio, Inc. System and method for a media intelligence platform
US10419891B2 (en) 2015-05-14 2019-09-17 Twilio, Inc. System and method for communicating through multiple endpoints
US9948703B2 (en) 2015-05-14 2018-04-17 Twilio, Inc. System and method for signaling through data storage
US10609110B2 (en) * 2015-10-12 2020-03-31 Vmware, Inc. Remote access over internet using reverse session-origination (RSO) tunnel
US10742480B2 (en) * 2015-10-12 2020-08-11 Vmware, Inc. Network management as a service (MaaS) using reverse session-origination (RSO) tunnel
US10284631B2 (en) 2015-10-12 2019-05-07 Vmware, Inc. Management-as-a-service for on-premises information-technology systems
US10659349B2 (en) 2016-02-04 2020-05-19 Twilio Inc. Systems and methods for providing secure network exchanged for a multitenant virtual private cloud
CN105872042A (zh) * 2016-03-29 2016-08-17 国家电网公司 基于http协议的双边加速***
US10582022B2 (en) * 2016-05-20 2020-03-03 Citrix Systems, Inc. Adaptive session reliability over multiple transports
US10063713B2 (en) 2016-05-23 2018-08-28 Twilio Inc. System and method for programmatic device connectivity
US10686902B2 (en) 2016-05-23 2020-06-16 Twilio Inc. System and method for a multi-channel notification service
US10630654B2 (en) 2017-03-22 2020-04-21 Microsoft Technology Licensing, Llc Hardware-accelerated secure communication management
CN108334361A (zh) * 2017-07-17 2018-07-27 北京慧点科技有限公司 控件运行的方法及装置
US11038968B2 (en) * 2018-08-07 2021-06-15 Dell Products L.P. Device and media redirection technique for a browser-based remote desktop client
CN110247999B (zh) * 2019-07-11 2022-05-06 广东美的制冷设备有限公司 域名解析方法、域名解析装置、家电设备和存储介质
KR102119257B1 (ko) * 2019-09-24 2020-06-26 프라이빗테크놀로지 주식회사 터널에 기반하여 단말의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
US11652801B2 (en) 2019-09-24 2023-05-16 Pribit Technology, Inc. Network access control system and method therefor
US11271777B2 (en) 2019-09-24 2022-03-08 Pribit Technology, Inc. System for controlling network access of terminal based on tunnel and method thereof
US11190494B2 (en) 2019-09-24 2021-11-30 Pribit Technology, Inc. Application whitelist using a controlled node flow
US11082256B2 (en) 2019-09-24 2021-08-03 Pribit Technology, Inc. System for controlling network access of terminal based on tunnel and method thereof
US11381557B2 (en) 2019-09-24 2022-07-05 Pribit Technology, Inc. Secure data transmission using a controlled node flow
CN110781226B (zh) * 2019-10-28 2022-08-19 中国建设银行股份有限公司 数据分析方法、装置、存储介质、设备及***
US11489909B1 (en) * 2021-04-15 2022-11-01 Cloudflare, Inc. Non-HTTP layer 7 protocol applications running in the browser
US20230344812A1 (en) * 2022-04-20 2023-10-26 Bank Of America Corporation System and method for establishing a secure session to authenticate dns requests via dynamically configurable trusted network interface controllers
US20240015177A1 (en) * 2022-07-11 2024-01-11 Armis Security Ltd. Malicious lateral movement detection using remote system protocols

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412009B1 (en) * 1999-03-15 2002-06-25 Wall Data Incorporated Method and system for providing a persistent HTTP tunnel
CN1478232A (zh) * 2000-11-13 2004-02-25 Ecutel公司 用于安全网络移动性的***和方法
US20080077788A1 (en) * 2006-09-26 2008-03-27 Microsoft Corporation Secure Tunnel Over HTTPS Connection
CN101163082A (zh) * 2006-10-11 2008-04-16 村田机械株式会社 文件服务器装置

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10510403A (ja) * 1994-12-09 1998-10-06 ブリティッシュ・テレコミュニケーションズ・パブリック・リミテッド・カンパニー 多プロセッサ環境
DE69931873T2 (de) 1998-10-30 2007-06-06 Matsushita Electric Industrial Co., Ltd., Kadoma Verfahren und Vorrichtung zur Authentifikation und zum Schlüsselaustausch zwischen verschiedenen Komponenten
JP3777302B2 (ja) * 2000-12-21 2006-05-24 富士通株式会社 通信振り分け制御装置、および通信振り分けプログラムを記憶した記憶媒体
US7562146B2 (en) 2003-10-10 2009-07-14 Citrix Systems, Inc. Encapsulating protocol for session persistence and reliability
US20030079020A1 (en) 2001-10-23 2003-04-24 Christophe Gourraud Method, system and service provider for IP media program transfer-and-viewing-on-demand
JP4315696B2 (ja) * 2002-03-29 2009-08-19 富士通株式会社 ホスト端末エミュレーションプログラム、中継用プログラムおよびホスト端末エミュレーション方法
US20030217149A1 (en) 2002-05-20 2003-11-20 International Business Machines Corporation Method and apparatus for tunneling TCP/IP over HTTP and HTTPS
US7363500B2 (en) * 2002-12-03 2008-04-22 Juniper Networks, Inc. Tunneled authentication protocol for preventing man-in-the-middle attacks
US7620688B2 (en) * 2003-01-03 2009-11-17 Microsoft Corporation Progress mode for electronic mail component
US7412521B2 (en) 2003-03-12 2008-08-12 Microsoft Corporation End-point identifiers in SIP
JP2005010913A (ja) * 2003-06-17 2005-01-13 Toshiba Corp セッション管理方法
KR100601670B1 (ko) 2004-05-03 2006-07-14 삼성전자주식회사 네트워크를 통한 컨텐츠의 제어 방법, 미디어 랜더러 장치및 미디어 소오스 장치
JP4339184B2 (ja) * 2004-06-07 2009-10-07 パナソニック株式会社 サーバ装置、通信機器、通信システム、通信方法、プログラム及び記録媒体
JP2006019802A (ja) * 2004-06-30 2006-01-19 Canon Inc Http通信装置
JP3990395B2 (ja) 2004-09-30 2007-10-10 株式会社東芝 通信方法および通信システム
JP2006139613A (ja) * 2004-11-12 2006-06-01 Ricoh Co Ltd 情報処理装置および情報処理方法
US20070005734A1 (en) * 2005-06-30 2007-01-04 Microsoft Corporation Generically extensible client application
US7725709B2 (en) 2005-09-09 2010-05-25 Telefonaktiebolaget L M Ericsson (Publ) Methods for secure and bandwidth efficient cryptographic synchronization
US7716731B2 (en) 2005-10-24 2010-05-11 Cisco Technology, Inc. Method for dynamically tunneling over an unreliable protocol or a reliable protocol, based on network conditions
US7769869B2 (en) * 2006-08-21 2010-08-03 Citrix Systems, Inc. Systems and methods of providing server initiated connections on a virtual private network
JP4961368B2 (ja) * 2008-02-26 2012-06-27 エヌ・ティ・ティ・コミュニケーションズ株式会社 端末装置、nat越え方法、及びプログラム
JP2009230269A (ja) * 2008-03-19 2009-10-08 Sony Corp 情報処理装置、情報処理方法、リモートサーバ、情報処理システム
JP5044477B2 (ja) 2008-04-23 2012-10-10 日本電信電話株式会社 追加呼び出し型QoS制御ネットワークシステムとその方法
EP2327186B1 (en) * 2008-09-15 2016-02-24 Nec Corporation Method for supporting quality of service

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412009B1 (en) * 1999-03-15 2002-06-25 Wall Data Incorporated Method and system for providing a persistent HTTP tunnel
CN1478232A (zh) * 2000-11-13 2004-02-25 Ecutel公司 用于安全网络移动性的***和方法
US20080077788A1 (en) * 2006-09-26 2008-03-27 Microsoft Corporation Secure Tunnel Over HTTPS Connection
CN101163082A (zh) * 2006-10-11 2008-04-16 村田机械株式会社 文件服务器装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张伟,等: "针对SIP /NAT问题的RTP中继服务器设计与实现", 《小型微型计算机***》 *
雷为民,等: "MSRP Relay服务器的设计与实现", 《小型微型计算机***》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103354542A (zh) * 2012-04-13 2013-10-16 微软公司 使web客户端能提供web服务
CN108696546A (zh) * 2017-02-15 2018-10-23 中兴通讯股份有限公司 一种企业移动专用网的用户终端访问公网的方法及装置
CN108696546B (zh) * 2017-02-15 2021-08-24 中兴通讯股份有限公司 一种企业移动专用网的用户终端访问公网的方法及装置
JP2019012401A (ja) * 2017-06-30 2019-01-24 京セラドキュメントソリューションズ株式会社 リモート通信システム
WO2019028673A1 (zh) * 2017-08-08 2019-02-14 深圳先进技术研究院 基于B/S架构的数据通信***、方法、Web服务器及监控***
CN112165480A (zh) * 2020-09-22 2021-01-01 北京字跳网络技术有限公司 信息获取方法、装置和电子设备

Also Published As

Publication number Publication date
CA2793539C (en) 2018-08-14
US8504818B2 (en) 2013-08-06
EP2559220A2 (en) 2013-02-20
US20110258432A1 (en) 2011-10-20
KR101741866B1 (ko) 2017-05-30
CN102835093B (zh) 2015-05-20
KR20130076798A (ko) 2013-07-08
EP2559220A4 (en) 2016-08-31
JP5797739B2 (ja) 2015-10-21
WO2011130038A3 (en) 2012-04-05
RU2012143722A (ru) 2014-04-20
AU2011240972B2 (en) 2014-06-19
JP2013524727A (ja) 2013-06-17
BR112012026417A2 (pt) 2016-08-02
WO2011130038A2 (en) 2011-10-20
CA2793539A1 (en) 2011-10-20
RU2580097C2 (ru) 2016-04-10
BR112012026417B1 (pt) 2022-05-24
AU2011240972A1 (en) 2012-09-27

Similar Documents

Publication Publication Date Title
CN102835093A (zh) 用于通过http的可靠协议隧穿的方法和***
JP5519183B2 (ja) Ccn経由音声通話実現方法
CN103503408B (zh) 用于提供访问凭证的***和方法
EP1267548B1 (en) Method and system for integrating security mechanisms into session initiation protocol request messages for client-proxy authentication
CA2636780C (en) Method and device for anonymous encrypted mobile data and speech communication
JP2004531110A (ja) Sipのユーザエージェントの機能をプロキシにアウトソーシングするシステムおよび方法
JP2004523828A (ja) セッション開始プロトコル(sip)を使用してネットワーク対応機器と通信するシステムおよび方法
JP2008508573A (ja) セキュア通信に関連する改良
Jan et al. SIP issues and challenges-a scalable three factor authentication scheme
Emmanuel et al. A peer-to-peer architecture for real-time communication using Webrtc
Li et al. A simple and robust anonymous two‐factor authenticated key exchange protocol
CN101207579B (zh) 实现网络短信服务的服务器及其客户机间通讯方法
Radke et al. Security proofs for protocols involving humans
JP2007049262A (ja) 端末、通信装置、通信確立方法および認証方法
US11997074B1 (en) Obscuring participants in a videoconference
Bhardwaj et al. Real time information and communication center based on webrtc
Raja Sree et al. FogSec: A secure and effective mutual authentication scheme for fog computing
CN117220881A (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质
CN117220849A (zh) 一种基于区块链的数据处理方法、设备以及可读存储介质
Kyzivat SIMPLE Working Group B. Campbell Internet-Draft J. Rosenberg Expires: April 22, 2004 R. Sparks dynamicsoft
Puente et al. Anti-spit mechanism based on identity SIP
Kyzivat SIMPLE Working Group B. Campbell Internet-Draft J. Rosenberg Expires: December 29, 2003 R. Sparks dynamicsoft
Karnati et al. Technology Case Study on Web Real-Time Communications (WebRTC)
Naumann Dario Brandes, Thies Johannsen, Paul Kröger, Sergej Mann, Roman Naumann, Sebastian Thobe
Livenson VirtualLife Security Infrastructure

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: 20150729

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

Effective date of registration: 20150729

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.