CN105340242A - 使用http的双向实时通讯系统 - Google Patents

使用http的双向实时通讯系统 Download PDF

Info

Publication number
CN105340242A
CN105340242A CN201480035501.1A CN201480035501A CN105340242A CN 105340242 A CN105340242 A CN 105340242A CN 201480035501 A CN201480035501 A CN 201480035501A CN 105340242 A CN105340242 A CN 105340242A
Authority
CN
China
Prior art keywords
communication
data
http
connects
block
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
CN201480035501.1A
Other languages
English (en)
Other versions
CN105340242B (zh
Inventor
托马斯·迈克尔·卡开宁
沃特里·哈卡莱依宁
奥西·卡雷沃
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.)
Gurulogic Microsystems Oy
Original Assignee
Gurulogic Microsystems Oy
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 Gurulogic Microsystems Oy filed Critical Gurulogic Microsystems Oy
Publication of CN105340242A publication Critical patent/CN105340242A/zh
Application granted granted Critical
Publication of CN105340242B publication Critical patent/CN105340242B/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
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1069Session establishment or de-establishment
    • 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/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

提供了一种经由支持基于HTTP的通讯的系统建立通讯连接的方法,包括步骤:(a)采用与HTTP相关联的GET和POST方法的组合,使用通讯系统建立系统的两个节点之间的双向实时通讯连接;(b)通过采用与HTTP关联的CONNECT方法对双向通讯连接进行TCP/IP和/或UDP隧道化。还提供了相应的通讯系统。

Description

使用HTTP的双向实时通讯系统
技术领域
本公开涉及通讯系统,尤其是使用实时超文本协议(HypertextTransferProtocol,HTTP)用于通讯图形数据、图像数据、视频数据、音频数据等各种类型的数字数据的通讯系统。进一步,本公开还涉及操作上述用于通讯各类数据的通讯系统的方法。再进一步,本公开还涉及记录于机器可读存储介质上的软件产品,其中,软件产品可执行于计算硬件以实现上述方法。
背景技术
一般而言,超文本协议(HTTP)广泛用于实现当前的互联网。该协议是用于分布的、协作的超媒体信息系统的一个应用协议。在实现中,HTTP是操作用于建设网络的对象的一个多线性集,使用逻辑连接来定义网络。连接就是通常所称的“超链接”,它定义节点之间的网络关系。
在为互联网而实现的客户服务模型中,HTTP是作一个需求响应协议来工作。在该模型中,网络浏览器被用于实现客户端,在服务器上执行的软件应用可以主管(host)一个网站。在操作中,一个特定的客户端提交一个HTTP请求消息给服务器,服务器做出响应的方式是提供如HTML文件和其它内容等资源,或者代表客户端执行数据处理工作,或者甚至是返还一个响应消息给客户端。上述的网络浏览器可以由各种方式来实现,例如,作为一个用户代理、作为一个网络爬虫、或者是任何可执行于计算硬件上的其它软件,所述的计算硬件访问、使用或者显示源于互联网的数据内容。
HTTP允许即时的(immediate)网络单元来使能客户端与服务器之间的通讯。互联网的高流量网站通常使用网络缓存服务器,其代表上游服务器来传送内容,以改善数据和/或服务传送的响应时间。此外,设在专用网络的边界的HTTP代理服务器是有益的,它用来促进与没有全球可路由地址的客户端的通讯,即,通过外部服务器来中继消息。
通过使用统一资源标识(UniformResourcesIdentifier,URI),通常也称之为统一资源定位器(UniformResourcesLocator,URL),HTTP资料可被识别和定位于一个给定的网络。URI与超链接用超文本标识语言(HTML)来表达,HTML能够形成彼此互连的超文本文件。
HTTP会话是通过网络需求响应交易的序列来实现的。例如,HTTP客户端建立与服务器的一个特殊端口的传输控制协议(TransmissionControlProtocol,TCP)连接来发起一个请求,发回一个状态线(例如,“HTTP/1.1200OK”)连同一个相关的消息而做出响应。该相关消息的主体通常是被请求的资源,尽管所返回的也可能是一个错误消息。
HTTP定义一些方法,通常被便利地称之为“动词”,用于指示针对一个被识别的资源的一个期望的动作。资源可以是数据文件或来自一个可执行对象的输出,驻留在一个或多个服务上。表1提供了HTTP方法,也称之为HTTP动词的示例。
表1、HTTP方法(HTTP动词)
因此,当前的网络浏览器所采用的主要的传送协议是前述的HTTP。在特殊的浏览器软件应用中,几个相关的“生态系统”、它们所使用的软件,在没有HTTP的情况下无法运行。如上所述,HTTP是基于请求的,参见表1,所述的请求是被传送的,响应于这些请求,接到这些请求后,HTML页或二进制数据(如图像或音频流/文件)通常被提供。
考虑到互联网的复杂性,互联网通常的延迟(latency)会在运行中出现。在要求数据交换的情况中,这些延迟能引发问题,如,需要双向(双工)的通讯,这是需要实时响应的,比如视频图像和/或音频的传送与接收只能容忍很小的延迟。通过互联网的双向通讯的已知技术是通过互联网协议的语音服务(VoIP),以及基于互联联网的视频会议,例如,当今使用SKYPE(SKYPE是个注册商标)或类似软件而提供的服务。
已知的是,采用“WebSockets”协议(该协议在网址链接http://tools.ietf.org/html/rfc6455中有介绍),来应对一个具体类型的通讯需要,它实现了下述的通讯特性:
(i)WebSocket用在HTTP/HTTPS隧道内,在此情况下,为端口80/443打开了防火墙,因为它们现在通常被用在网络浏览器中。
(ii)WebSocket被用在全双工连接模式,其中,只有一个TCP连接能够实时双向通讯,即,通过改变数据传送的方向,用一个连接来传送和接收数据。
尽管如此,这样的WebSocket是依赖于端口的,这带来了不期望的限制。
发明内容
本发明旨在提供一个通讯系统,它能够通过HTTP通讯网络,以一种改进的方式提供双向的数据通讯。
此外,本发明旨在提供一种改进的运行通讯系统的方法,用于通过HTTP通讯网络提供双向的数据通讯。
根据本发明的第一方面,提供一种通讯系统,支持基于HTTP的通讯,其中,所述通讯系统采用与HTTP相关联的GET和POST方法的组合,建立系统的两个节点之间的双向实时通讯连接,其中,经由网络连接的数据交换的实现是采用区块化的方式和/或作为一系列的数据块,其特征在于通过网络连接通讯的用于数据区块和/或数据块的最大片段大小(MSS)是作为支持通讯连接的通讯网络容量的方程而被优化的。
该通讯系统的优点在于,它能够提供实时双向通讯,降低了延迟。
可选地,CONNECT方法能够被用于三种不同类型的场景:
(i)一个连接被隧道化进入一个目标;这是默认的场景;
(ii)通过本地主机,一个连接被隧道化进入一个目标,结果是,数据从本地服务中的一个发送进程中被传输给一个转发进程,数据从转发进程被发送给目标;这样一个方法是有益的,因为它能够阻止防病毒软件分析数据,这种分析会无意中拦阻或干预数据;
(iii)一个连接被隧道化进入一个转发代理服务器,转发代理服务器然后将数据重新导向到目标;这样一个方法有益于在负载平衡系统中被采用,即,由客户端导致的网络负载被最优地分发到目标。例如,在骨干网中发送数据快于通过直接连接的发送。
可选地,在所述通讯系统中,通讯连接包括一个接收连接和一个发送连接,用来提供双向通讯,其中,连接被保持开放,直到一个空的区块和/或一个空的多部分数据块被接收。
可选地,在所述通讯系统中,通讯连接对通过其通讯的数据使用加密。
在通讯系统中,通讯连接为以下至少之一提供通讯:图形数据、图像数据、视频数据、音频数据、非结构化数据。
根据第二方面,本发明提供一种方法,经由支持基于HTTP的通讯的通讯系统建立通讯连接,其中,所述方法包括步骤:
(a)采用与HTTP相关联的GET和POST方法的组合,使用通讯系统建立系统的两个节点之间的双向实时通讯连接;
(b)采用区块化的方式和/或作为一系列的数据块,经由网络连接进行数据交换;
(c)对通过网络连接通讯的用于数据区块和/或数据块的最大片段大小(MSS)进行优化,所述优化是将其作为支持通讯连接的通讯网络容量的方程。
可选地,在所述方法中,通讯连接包括一个接收连接和一个发送连接,用来提供双向通讯,其中,连接被保持开放,直到一个空的区块和/或一个空的多部分数据块被接收。
可选地,在所述通讯系统中,通讯连接对通过其通讯的数据使用加密。
在通讯系统中,通讯连接为以下至少之一提供通讯:图形数据、图像数据、视频数据、音频数据、非结构化数据。
根据第三方面,本发明提供了一种记录于机器可读数据存储介质上的软件产品,所述软件产品执行于计算硬件,用以实现根据本发明的第二方面的方法。
可选地,所述软件产品用HTTP表达,被执行于按照HTTP运行的通讯网络的服务器。
本发明的优点在于,其通讯系统能够提供双向全双工通讯,不管是加密或不加密,它使用已知的HTTP传输协议,执行于通讯系统中的软件或硬件防火墙和/或防病毒软中,额外的设置不是必要的。
此外,本发明的益处还在于,它提高了通讯应用的功能和可靠性,因而简化了与系统相关的技术维护问题,如数据安全设置。
可以理解,在不脱离所附权利要求限定的本发明范围的情况下,本发明的特征易于组合为多种形式。
附图说明
现在将参考以下附图,仅通过示例来描述本公开的实施例,在附图中:
图1是采用HTTP的通讯网络的示意图
图2是本发明的方法的步骤的示意图;
图3是本发明的方法的另一套步骤的示意图。
在附图中,使用带下划线的数字来表示该带下划线的数字位于其上的项目或该带下划线的数字与之相邻的项目。不带下划线的数字与通过将该不带下划线的数字和一项目相连的线所标识的项目相关联。当一个数字不带下划线并且伴随有相关联的箭头时,使用该不带下划线的数字来标识该箭头所指向的一般项目。
具体实施方式
整体上,参见图1,它描述一个系统和相关的方法,系统的一部分在总体上用5表示,所述方法能够减少延迟,它们是针对用于双向实时通讯,所采用的HTTP的描述符合RFC2621、RFC2068、RFC1945等标准。通常,HTTP不是被设计用于使能第一和第二节点10A、10B之间的实时双向通讯,其中一个给定的客户端能够同时发送实时数据和实时接收,按以下方式进行:
(i)在两个节点10A、10B之间所采用的通讯连接20支持加密格式的双向通讯;
(ii)病毒保护软件30不干预正通过通讯连接20被发送和接收的内容40;
(iii)防火墙60不能阻止网络流量,除非发生互联流量总体阻塞的情况,即“WWW流量”被阻止,例如,为了实现安全的财务交易而采用了银行连接;
(iv)网络设备,例如桥接器和路由器,不能够分析和干预要通过通讯连接20而通讯的数据。
本发明的实施例能够通过采用以下的特性而实现(i)至(iv)的功能:
(a)采用两种互不相同的类型的GET和POST方法,参见上述的表1,其中,GET方法构建一个经由通讯连接20接收连接,POST方法构建一个经由通讯连接20的发送连接;
(b)采用与现在的HTTP中所用的一样的CONNECT方法,两个连接被隧道化;
(c)采用一种形式的区块化的(chunked)或多部分的传输编码,下文将对此详述。
传统地,HTTP用于互联网会话,其中,GET和POST方法以彼此独立的方式被采用,例如,GET方法用于从网络服务器请求HTML内容,网络服务器用网络浏览客户端的主机,其中,为GET方法的连接保持开放,直至所有的响应数据被从主机发送至客户端。而且,采用了一个连接程序,它与POST方法一样,参见表1,除非数据是从客户端被发送至主机。
在以下描述的实施例中,以这样的方式执行通讯:以半双式的方式使用一个给定的封装(socket),它区别于象前述的WebSocket这样的已知方法的实施例。在实施例中,数据的发送和/或接收比全双工连接更有效,因为网络界面卡不需要在接收与发送之间切换它们的输入/输出(I/O)状态。在已知的技术方案中所采用的这种切换消耗系统资源,因而也降低潜在的通讯速度。
在以下描述的实施例中,只在HTTPGET和POST方法的初始化之后采用封装,或者是接收模式或者是发送模式。接下来,所用的网络适配器只需要工半双工的状态工作,从而节约网络基础设施与设备资源,因为在协商的HTTPGET和/或POST方法headers(头部)之后直至出现连接的结束,连接仅仅以要么发送要么接收的状态工作。而且还有其它的益处,例如,防火墙和路由器,即集线器和转换器,接收更少的转换负荷,因而不会像只使用一个双工连接的现有双工通信方法那么快地中断。所以,这里所描述的实施例较之于前述的WebSocket,对资源的使用更有效。
前述的已知WebSocket很容易被防火墙分析认为是属于无法识别的连接类型而被断开连接,从而阻止或限制它们的使用,不管相关联的连接是隧道化与否。在本发明实施例中描述了一个根据HTTP协议的GET或POST连接功能,防火墙不能限制或阻止使用这些方法的通讯。
在下文的实施例中,采用的UDP协议估计比TCP快三倍。可选地,这些实施例可以使用对等(peer-to-peer,P2P)连接,它允许在应用层实现连接。
这里所描述的实施例不同于已知的HTTP实现方式,在已知的HTTP实现中,缺少GET和POST方法之的任何连接,与之相区别的是,本发明的实施例采用GET与POST方法按新的形式相融合的方案,从而提供实时全双工的数据通讯。这里所提及的全双工数据通讯的实现方式是,使用一个接收连接和一个发送连接。一个接收连接或一个发送连接能够使用一个半双工连接模式或者一个全双工连接模式。
虽然下述实施例的描述是基于TCP协议,可以理解,UDP(UserDatagramProtocol)协议也可以作为一个替代方案而被使用。虽然TCP和UDP都依赖于底层的IP(InternetProtocol)协议,UDP数据报和TCP片段都以IP包(packet)的形式发送,UDP的不同之处在于,它是无连接协议,通过使用一个网络地址翻译(NAT),它有可能实现应用之间的对等通讯,不仅仅是一个本地局域网(LAN)内部,而且在外部的互联网也是这样。通过使用这种方法,在系统5中通过服务器传输数据的需要就可以避免了,显著地节省了通讯网络容量。在系统5中使用UDP所产生的一个额外的益处是,在使用网络容量方面,与TCP相比,它的效率大约是三倍,因为UDP不是受控协议。此外,在IPv4和IPv6通讯网络中,用来实现系统5的以字节量度的MSS容量更大,因为UDP报头小于相应的TCP报头。
虽然下文会描述TCP用于GET和POST的情况,可以理解,这些连接中只有一个使用TCP,而其它的都使用UDP。此外,可以理解,GET和POST连接都可以使用UDP。
可以理解,在发送或接收端的数据可以从电路交换数据变为基于IP的数据,相应地,从基于IP的数据变为电路交换数据,而且这并不背离本发明的方案的范围。
在第一实施例中,参见附图2,执行下述的一系列步骤:
步骤1(S1):到数据连接的一个客户端生成一个唯一的流标识(ID),其中,ID用于将GET和POST方法组对到一起,从而用来实现数据连接的服务器知道GET和POST方法对(pair)属于同一个客户端。下文将描述ID的更多细节。尽管如此,需要理解的是,当唯一流标识(ID)被用来对发送和接收连接进行组合时,GET和POST方法不对本发明构成限制。尽管流ID的主要目的是在服务器把客户端的发送和接收连接绑定在一起,它可以同时还被用于认证和识别客户端。这意味着服务器在继续进行处理之前可以丢弃那些有害的、错误的和/或无法识别的连接。这样的功能使得它有可能保护服务器并减小或去除由无法识别的连接请求和不必要的计算所产生的服务器负荷。换言之,这使得系统保留资源,其益处是,节约能源,并减少在服务器设施中尤其是负载平衡系统中所需要的服务器的数量。
步骤2(S2):客户端建立两个到服务器的TCP/IP连接,例如在它的默认端“80”,此后,客户端用CONNET方法发送一个相联的报头。在操作中,CONNECT方法将所请求的数据转换成透明的TCP/IP隧道,例如,用来像前的那样,通过一个非加密的代理,促成TLS和SSL加密通讯(HTTP)。
当实现步骤1和步骤2时,可以采用各种形式的加密,例如,SSL1.0、SSL2.0、SSL3.0、TLS1.0、TLS1.1、TLS1.2或类似的加密形式。但是,上述的隧道有益地是透明的,以保证不同的“生态系统”之间的安全的通讯。另外,使用能够针对恶意攻击或干扰提供保护的硬件。用来实现本实施例的这样的透明的隧道连接可以防止能监视和分析数据流量的黑客、恶意软件、防病毒软件、防火墙软件或其它设备和/或软件侵入通过隧道通讯的数据。
步骤3(S3):取决于用于通讯隧道的接收或发送连接,GET方法或POST方法的报头继续被发送和接收。报头包含针对由通讯隧道的提供的给定的通讯会话的必要的信息。
此外,报头有益地采用传统形式的数据结构,虽然报头包括下述的参数:
(i)流ID类的信息,用于受保护的/已建立的连接;
(ii)传输编码,区块化的(chunked)或多部分的(multi-part)格式。
包含在报头中的信息保证数据的传输和接收作为单独的数据块出现。有益地,数据的最大片段大小(MaximumSegmentSize,MSS)被按照支持通讯隧道的网络的容量而优化,这时考虑到用于区块化的或多部分报头的字节的数量,使得在发送和接收数据时字节不丢失,由此提供安全可靠的数据交换。
这种网络优化的实现是,从网络请求耦合连接到服务器的客户端的最大传输单位(MaximumTransferUnit,MTU)值。由此可行的是,确定一个在通讯网络中最弱的通讯连接,然后为向与最弱连接相关联的客户端设备的传输设置最大片段大小(MSS),按照最弱的连接能够接纳的速率设置。MSS值可以由服务器通讯给系统中的其它客户端设备。这样的网络优化的实现采用包括下述方法的步骤:
步骤A:系统确定一个将服务器耦合到客户端设备的最弱的数据连接;例如,为一个给定的数据连接的MTU值是1500字节。当该MTU值被减去TCP报头字节的值,即40字节,那么,1460字节是可用的。该1460字节对应于MSS。
步骤B:通过采用被确定的最弱连接的MSS,系统确定针对一个给定会话的MSS。
步骤C:可选地,系统采用的Nagle算法被禁用,从而防止系统内的拥塞控制,即,通过设置系统的封装(socket)中的TCP_NODELAY选择来实现,此设置使得Nagle算法被禁用。Nagle算法的这种被禁用是期望的,因为,在相应的数据包被发送之前,Nagle算法先等待一定数量的字节被加入到发送队列。当Nagle算法被禁用,如前所述,系统能够其大小仅由系统来决定的数据包。
步骤4(S4):一旦HTTP请求报头已经被发送,一个相应的成功响应已经被接收自服务器,然后双工数据接收和发送就开始了。由此,两个与服务器连接被成功建立了,即,一个接收连接和一个发送连接,这些连接被保持在一个开放的状态,直到一个空的数据区块(datachunk)或空的多部分数据块(multi-partdatablock)被接受。
下面通过HTTP码的形式来说明实施例的两个示例。
示例1:提供了HTTP码,其在执行的时候用于生成一个简单的被隧道化的在客户端与服务器之间的接收连接,其中,具有IP地址192.168.0.101的端点(peer)连接于一个具有IP地址192.168.0.100的主机。其中可以发现,在HTTP码中GET和POST方法的使用,以及区块化的(chunked)发送码被确定。
<connect>
<send>CONNECT192.168.0.100:80HTTP/1.0\r\n
<send>Mozilla/5.0(WindowsNT5.0)Gurulogic\r\n
<send>\r\n
<send>GET/readstream?streamid=12345&param1=value1&param2=value2HTTP/1.1\r\n
<send>Host:192.168.0.100\r\n
<send>Transfer-Coding:chunked\r\n
<send>User-Agent:Mozilla/5.0(WindowsNT5.0)
<send>\r\n
<recc>HTTP/1.1200OK\r\n
<reev>5AD\r\n
<recv>1453bytesof
<recv>5AD\r\n
<recv>1453bytesof
...
<recv>5AD\r\n
<recv>1453bytesof
<recv>0\r\n
<disconnectfrom192.168.0.100>
示例2:提供了HTTP码,其在执行的时候用于生成一个简单的被隧道化的在客户端与服务器之间的接收连接,其中,具有IP地址192.168.0.101的端点(peer)连接于一个具有相应的IP地址192.168.0.100的主机。其中可以发现,在HTTP码中POST和CONNECT方法的使用,以及区块化的发送码被确定。
<connectto192.168.0.100>
<send>CONNECT192.168.0.100:80HTTP/1.0\r\n
<send>Mozilla/5.0(WindowsNT5.0)Gurulogic\r\n
<send>\r\n
<send>POST/writestream?streamid=12345&param1=value1&param2=value2HTTP/1.1\r\n
<send>Host:192.168.0.100\r\n
<send>Transfer-Coding:chunked\r\n
<send>User-Agent:Mozilla/5.0(WindowsNT5.0)
<scnd>\r\n
<send>5AD\r\n
<send>1453bytesof
<send>5AD\r\n
<send>1453bytesof
...
<send>5AD\r\n
<send>1453bytesof
<send>0\r\n
<recv>HTTP/1.1200OK\r\n
在这两个示例1和2中,假设MSS是1460字节,因此,优化过的区块的实际数据大小是1453字节。使用公式1所给出的公式来在系统中计算优化的区块的大小:
MSS=(区块报头的开头(beginningofchunkheader)一(区块报头的结尾(endofchunkheader))公式1
区块报头的开头包括块数据的实际长度(例如,以十六进制标记)、一个或多个行字符的结尾,它们通常是回车(CarriageReturn,CR)和换行(LineFeed,Lf)。区块的结尾类似于行字符的结尾,它使区块结束。
参见图2,可以理解,步骤3(s3),即,使用CONNECT方法建立一个连接隧道,可以被省略,如图3所示。当不需要隧道的时候,连接隧道被省略。所以,关于图2,也可以理解,连接隧道可以只为GET连接或POST连接而建立,即,在多个节点之间使用非对称隧道通讯设置,可选地,通讯隧道仅用于GET或POST连接。
示例3:MSS优化只取决于由一个给定数据区块提供的一个给定的有效载荷,因为在处理过程中,在那个点,相应的HTTP区块报头已经被剥离了,数据块的有效载荷是100%。现在,这样的MSS优化主要是基于如下的概念:最大传输单位(MTU)是一个单独的传输突发(burst),因此,那个层所能下传的最大的协议数据单位例如可以是1500字节,MSS(最大片段大小)所具有的数据大小等于MTU减去协议报头。在根据本发明的实施例的技术方案中,MSS承载的数据量正好是受关注的网络的最弱连接所能发送的。所以,当采用本发明的技术方案,不出现将数据分割成更小的包的情形,提高了数据发送的速度和可靠性,也导致了更少的冲突与丢包,例如在WiFi网络中就是这样。
MSS优化的一个示例如下:
开始连接创建(CommencingConnectionCreation):
发送ICMP-ping命令来测试网络,发现如果MTU>600,客户端1与客户端2之间的通讯被阻止。因此,MTU被设置为600字节,这意味着,在考虑到去掉TCP报头的40字节之后,MSS是560字节。可以理解,UDP协议中的报头较小的,如果使用UDP,相应地,有效载荷就是较大的。
客户端1向客户端2发送一个3000字节的包,被分成6个部分。这样的分割是简单的,能够按照下述的公式来实现:
字节的总数据被除以网络中的最小MTU减去开头和结尾的区块头,即3000/(560-(5+2))=5.42个包,取整到最近的整数包数,除非其它数据在排队等待发送。
包1:560字节被发送,有效载荷是553字节,
包2:560字节被发送,有效载荷是553字节,
包3:560字节被发送,有效载荷是553字节,
包4:560字节被发送,有效载荷是553字节,
包5:560字节被发送,有效载荷是553字节,
包6:560字节被发送,有效载荷是235字节。
如果包被未分割地发送,即一个3000字节的包,它有可能被网络途中运营商设备进行分段,这会消耗时间,也有可能引起问题,还有可能有必要重新发送丢失的包,所有这些都会导致发送器在发送新包之前要等待,因为接收方不稳定的网络导致延迟。
可以在不脱离由所附权利要求限定的本发明的范围的情况下对上面描述的本发明的实施例进行修改。用于描述和限定本发明的例如“包括”、“包含”、“合并”、“由……构成”、“具有”、“是”等表述意在被理解为非排他形式,即允许存在未明确描述的项目、组件或元件。单数形式应理解为不排除多数。所附权利要求中的括号中的数字意在辅助对权利要求的理解,而不应被理解为以任何方式限制权利要求所请求的主题。

Claims (12)

1.一种通讯系统,操作用于支持基于HTTP的通讯,其中,所述通讯系统采用与HTTP相关联的GET和POST方法的组合,建立系统的两个节点之间的双向实时通讯连接,其中,经由网络连接的数据交换的实现是采用区块化的方式和/或作为一系列的数据块,其特征在于,通过网络连接通讯的用于数据区块和/或数据块的最大片段大小(MSS)是作为支持通讯连接的通讯网络容量的方程而被优化的。
2.根据权利要求1所述的通讯系统,其特征在于,所述双向通讯连接是通过采用与HTTP关联的CONNECT方法而TCP/IP和/或UDP隧道化的。
3.根据权利要求1所述的通讯系统,其特征在于,通讯连接包括一个接收连接和一个发送连接,用来提供双向通讯,其中,连接被保持开放,直到一个空的区块和/或一个空的多部分数据块被接收。
4.根据权利要求1所述的通讯系统,其特征在于,通讯连接对通过其通讯的数据使用加密。
5.根据权利要求1所述的通讯系统,其特征在于,通讯连接为以下至少之一提供通讯:图形数据、图像数据、视频数据、音频数据、非结构化数据。
6.一种经由支持基于HTTP的通讯的通讯系统建立通讯连接的方法,包括步骤:
(a)采用与HTTP相关联的GET和POST方法的组合,使用通讯系统建立系统的两个节点之间的双向实时通讯连接;
(b)采用区块化的方式和/或作为一系列的数据块,经由通讯连接进行数据交换;
(c)对通过网络连接通讯的用于数据区块和/或数据块的最大片段大小(MSS)进行优化,所述优化是将其作为支持通讯连接的通讯网络容量的方程。
7.根据权利要求6所述的方法,其特征在于,所述方法包括步骤,通过采用与HTTP关联的CONNECT方法对双向通讯连接进行TCP/IP和/或UDP隧道化。
8.根据权利要求6所述的方法,其特征在于,所述通讯连接包括一个接收连接和一个发送连接,用来提供双向通讯,其中,连接被保持开放,直到一个空的区块和/或一个空的多部分数据块被接收。
9.根据权利要求6所述的方法,其特征在于,所述通讯连接对通过其通讯的数据使用加密。
10.根据权利要求6所述的方法,其特征在于,所述通讯连接为以下至少之一提供通讯:图形数据、图像数据、视频数据、音频数据、非结构化数据。
11.一种记录于机器可读数据存储介质上的软件产品,所述软件产品执行于计算硬件,用以实现根据权利要求6的方法。
12.根据权利要求11所述的软件产品,其特征在于,所述软件产品用HTTP表达,被执行于按照HTTP运行的通讯网络的服务器。
CN201480035501.1A 2013-04-23 2014-04-21 使用http的通讯系统 Active CN105340242B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1307340.8 2013-04-23
GB1307340.8A GB2513344B (en) 2013-04-23 2013-04-23 Communication system utilizing HTTP
PCT/EP2014/001052 WO2014173521A1 (en) 2013-04-23 2014-04-21 Two-way real-time communication system utilizing http

Publications (2)

Publication Number Publication Date
CN105340242A true CN105340242A (zh) 2016-02-17
CN105340242B CN105340242B (zh) 2019-08-16

Family

ID=48537693

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480035501.1A Active CN105340242B (zh) 2013-04-23 2014-04-21 使用http的通讯系统

Country Status (9)

Country Link
US (2) US20150200997A1 (zh)
EP (1) EP2989774B1 (zh)
JP (2) JP6444988B2 (zh)
KR (1) KR101655715B1 (zh)
CN (1) CN105340242B (zh)
BR (1) BR112015026903A2 (zh)
GB (1) GB2513344B (zh)
RU (1) RU2635220C2 (zh)
WO (1) WO2014173521A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107294913A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 基于http的安全通信方法、服务端及客户端

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10334052B2 (en) 2016-10-28 2019-06-25 Caterpillar Inc. System and method for communicating negotiated groups of parameters
ES2894900T3 (es) * 2017-08-04 2022-02-16 Nokia Technologies Oy Selección del procedimiento de transporte para la entrega de notificaciones del servidor
JP7203297B2 (ja) * 2017-09-27 2023-01-13 有限会社シモウサ・システムズ エンドツーエンド暗号化通信システム
CN108011850B (zh) * 2017-12-18 2021-08-17 北京百度网讯科技有限公司 数据包的重组方法及装置、计算机设备及可读介质
WO2021201305A1 (ko) * 2020-03-30 2021-10-07 엘지전자 주식회사 차량을 위한 통신 프로토콜을 변경하는 방법 및 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892240B1 (en) * 1999-09-17 2005-05-10 Nec Corporation Bidirectional communication system and method
US20100042677A1 (en) * 2006-10-26 2010-02-18 Kazushige Ishikawa Two-way communication system, server unit, repeater, two-way communication method and program
CN102594826A (zh) * 2012-02-24 2012-07-18 清华大学 一种适用于电力系统终端设备的实时数据压缩通信方法

Family Cites Families (26)

* 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
US7522631B1 (en) * 1999-10-26 2009-04-21 Qualcomm, Incorporated Method and apparatus for efficient data transmission control in a wireless voice-over-data communication system
US7324228B2 (en) * 2000-02-25 2008-01-29 Hewlett-Packard Development Company, L.P. System and method for downloading and for printing data from an external content source
US20020184383A1 (en) * 2001-05-29 2002-12-05 Docomo Communications Laboratories Usa, Inc. Live mobile camera system with a communication protocol and a server cluster
EP1461708A1 (en) * 2001-08-24 2004-09-29 Reality Fusion, Inc. System and method for group video teleconferencing with variable bandwidth
JP2003244194A (ja) * 2002-02-18 2003-08-29 Mitsubishi Electric Corp データ暗号装置及び暗号通信処理方法及びデータ中継装置
JP2003304248A (ja) * 2002-04-09 2003-10-24 Nippon Telegr & Teleph Corp <Ntt> データ転送方法及び装置
DE10260926B4 (de) * 2002-12-20 2005-12-01 Hewlett-Packard Development Co., L.P., Houston Kommunikationsverfahren
US7447369B2 (en) * 2003-03-07 2008-11-04 Ricoh Co., Ltd. Communication of compressed digital images
US20050071485A1 (en) * 2003-09-26 2005-03-31 Arun Ramagopal System and method for identifying a network resource
FR2869490B1 (fr) * 2004-04-26 2006-06-23 Michel Gouget Procede d'acces a un syteme informatique protege, application a la tele-administration et a la realisation de proxies
US7561696B2 (en) * 2005-07-12 2009-07-14 Microsoft Corporation Delivering policy updates for protected content
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
KR20100014507A (ko) * 2007-03-22 2010-02-10 텔레폰악티에볼라겟엘엠에릭슨(펍) 사용자 장비에서 링크 최대 전송 단위를 구성하는 방법
JP4864792B2 (ja) * 2007-03-29 2012-02-01 京セラ株式会社 無線通信端末の制御方法および無線通信端末
US7995478B2 (en) * 2007-05-30 2011-08-09 Sony Computer Entertainment Inc. Network communication with path MTU size discovery
KR20090010416A (ko) * 2007-07-23 2009-01-30 삼성전자주식회사 Ppp 연결의 패킷 크기 최적화 시스템 및 그 방법
US8782772B2 (en) * 2007-09-28 2014-07-15 Microsoft Corporation Multi-session secure tunnel
KR101405952B1 (ko) * 2007-12-05 2014-06-12 엘지전자 주식회사 데이터 블록 전송방법
JP2010004416A (ja) * 2008-06-23 2010-01-07 Fujitsu Ltd 移動無線装置
KR101010409B1 (ko) 2008-09-01 2011-01-24 주식회사 세아네트웍스 터널링 기반 네트워크에서 ip 패킷 전송 방법 및 장치
KR101636258B1 (ko) * 2009-03-20 2016-07-05 삼성전자 주식회사 이동통신시스템에서 네트워크의 rach 관련 시스템 자원자동적 최적화 방법
US9178648B2 (en) * 2010-01-06 2015-11-03 Alcatel Lucent Method to improve voice over IP capacity for user equipment employing variable rate vocoders
WO2012161652A1 (en) * 2011-05-26 2012-11-29 Agency For Science, Technology And Research Methods for transmitting and receiving a digital signal, transmitter and receiver
US8755404B2 (en) * 2012-04-25 2014-06-17 Gainspan Corporation Facilitating communication between resource-constrained devices and wireless communication terminals
US9268651B1 (en) * 2012-10-31 2016-02-23 Amazon Technologies, Inc. Efficient recovery of storage gateway cached volumes

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6892240B1 (en) * 1999-09-17 2005-05-10 Nec Corporation Bidirectional communication system and method
US20100042677A1 (en) * 2006-10-26 2010-02-18 Kazushige Ishikawa Two-way communication system, server unit, repeater, two-way communication method and program
CN102594826A (zh) * 2012-02-24 2012-07-18 清华大学 一种适用于电力系统终端设备的实时数据压缩通信方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
ANONYMOUS: "HTTP tunnel", 《URL:HTTP://EN.WIKIPEDIA.ORG/W/INDEX.PHP?TITLE=HTTP_TUNNEL&OLDID=551210672》 *
ANONYMOUS: "Transmission Control Protocol", 《URL:HTTP://EN.WIKIPEDIA.ORG/W/INDEX.PHP?TITLE=TRANSMISSION_CONTROL_PROTOCOL&OLDID=551476932》 *
SUNCHAOJIN: "【转】HTTP协议(rfc2626)中文翻译(修订版)", 《URL:HTTPS://BLOG.CSDN.NET/CDJOGH/ARTICLE/DETAILS/4533009》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107294913A (zh) * 2016-03-31 2017-10-24 阿里巴巴集团控股有限公司 基于http的安全通信方法、服务端及客户端
CN107294913B (zh) * 2016-03-31 2021-08-27 阿里巴巴集团控股有限公司 基于http的安全通信方法、服务端及客户端

Also Published As

Publication number Publication date
RU2015143010A (ru) 2017-05-26
KR101655715B1 (ko) 2016-09-07
US20150222703A1 (en) 2015-08-06
WO2014173521A1 (en) 2014-10-30
EP2989774B1 (en) 2018-04-04
GB201307340D0 (en) 2013-05-29
US20150200997A1 (en) 2015-07-16
GB2513344A (en) 2014-10-29
JP2016522478A (ja) 2016-07-28
EP2989774A1 (en) 2016-03-02
CN105340242B (zh) 2019-08-16
JP6444988B2 (ja) 2018-12-26
BR112015026903A2 (pt) 2017-07-25
JP2017118545A (ja) 2017-06-29
RU2635220C2 (ru) 2017-11-09
US9787770B2 (en) 2017-10-10
KR20150136141A (ko) 2015-12-04
GB2513344B (en) 2017-03-15

Similar Documents

Publication Publication Date Title
US10694005B2 (en) Hardware-based packet forwarding for the transport layer
CN102546800B (zh) 一种网关握手、通信方法、网关及Web通信系统
CN105340242A (zh) 使用http的双向实时通讯系统
US9021134B1 (en) Media stream transport conversion within an intermediate network device
JP7142722B2 (ja) 伝送制御方法および装置
EP2908491A1 (en) A communication system for transmitting data under a tunnel protocol
CN109412946B (zh) 一种确定回源路径的方法、装置、服务器及可读存储介质
US11425216B2 (en) Virtual private network (VPN) whose traffic is intelligently routed
JP2017118545A5 (zh)
EP3338396A1 (en) Device and method for establishing connection in load-balancing system
CN103108037B (zh) 一种通信方法,Web服务器及Web通信系统
US10205804B2 (en) Methods and systems for enhanced support of TCP options in a TCP spoofed system
CN107453861A (zh) 一种基于ssh2协议的数据采集方法
WO2014198229A1 (zh) 报文处理方法、设备和系统
CN113794715B (zh) 一种虚拟点对点网络数据发送方法及其系统
KR20190074002A (ko) Tls/ssl 통신에서 도메인 정보를 이용하는 바이패스 처리 장치 및 그 방법
CN114679265A (zh) 流量获取方法、装置、电子设备和存储介质
JP6128132B2 (ja) 通信装置、制御装置、通信システム、パケット処理方法、通信装置の制御方法及びプログラム
CN114553567B (zh) 多方安全计算中的网络传输方法、系统、存储介质及计算设备
Rajput et al. Comparing stream control and datagram congestion control with traditional transmission control protocol
JP7178523B2 (ja) 中継装置及びローカルブレイクアウトの転送方法
CN116010077A (zh) 一种家庭智能网关多核cpu处理器的控制方法及装置
Navajas et al. Transport Area Working Group J. Saldana Internet-Draft University of Zaragoza Intended status: Best Current Practice D. Wing Expires: December 14, 2015 Cisco Systems
Navajas et al. Tunneling Compressing and Multiplexing (TCM) Traffic Flows. Reference Model draft-saldana-tsvwg-tcmtf-08
Ramdhan Wouter van Dullink

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant