首页 » 网站推广 » phptcp衔接复用技巧_TCP连接复用TCP Connection Reuse

phptcp衔接复用技巧_TCP连接复用TCP Connection Reuse

访客 2024-11-02 0

扫一扫用手机浏览

文章目录 [+]

负载均衡技能简介

当代企业信息化运用越来越多的采取B/S运用架构来承载企业的关键业务,因此,确保这些任务的可靠运行就变得日益主要。
随着越来越多的企业履行数据集中,运用的扩展性、安全性和可靠性也越来越受到企业的重视。

  负载均衡技能通过设置虚拟做事器IP(VIP),将后端多台真实做事器的运用资源虚拟成一台高性能的运用做事器,通过负载均衡算法,将大量来自客户真个运用要求分配到后真个做事器进行处理。
负载均衡设备持续的对做事器上的运用状态进行检讨,并自动对无效的运用做事器进行隔离,实现了一个大略、扩展性强、可靠性高的运用办理方案。
办理了单台做事器处理性能不敷,扩展性不足,可靠性较低的问题。

phptcp衔接复用技巧_TCP连接复用TCP Connection Reuse

  近年来,随着Web2.0和B/S技能的迅猛发展,HTTP运用逐渐成为当今的主流运用,而负载均衡技能也有了很大的发展。
从传统的基于四层端口号进行大略的运用要求转发,到目前基于七层内容进行要求的转发和处理。
尤其是在HTTP协议的优化和加速方面,一些技能逐渐发展成熟,如:TCP连接复用、内容缓存、TCP缓冲、HTTP压缩、SSL加速等。
这些技能的运用有助于进一步改进用户访问相应韶光、节约广域网链路带宽和做事器资源。

phptcp衔接复用技巧_TCP连接复用TCP Connection Reuse
(图片来自网络侵删)
HTTP优化和加速特性带来的益处  

TCP连接复用(TCP Connection Reuse)  TCP连接复用技能通过将前端多个客户的HTTP要求复用到后端与做事器建立的一个TCP连接上。
这种技能能够大大减小做事器的性能负载,减少与做事器之间新建TCP连接所带来的延时,并最大限度的降落客户端对后端做事器的并发连接数要求,减少做事器的资源占用。

  一样平常情形下,客户端在发送HTTP要求之前须要先与做事器进行TCP三次握手,建立TCP连接,然后发送HTTP要求。
做事器收到HTTP要求后进行处理,并将处理的结果发送回客户端,然后客户端和做事器相互发送FIN并在收到FIN的ACK确认后关闭连接。
在这种办法下,一个大略的HTTP要求须要十几个TCP数据包才能处理完成。

  采取TCP连接复用技能后,客户端(如:ClientA)与负载均衡设备之间进行三次握手并发送HTTP要求。
负载均衡设备收到要求后,会检测做事器是否存在空闲的长连接,如果不存在,做事器将建立一个新连接。
当HTTP要求相应完成后,客户端则与负载均衡设备协商关闭连接,而负载均衡则保持与做事器之间的这个连接。
当有其它客户端(如:ClientB)须要发送HTTP要求时,负载均衡设备会直接向与做事器之间保持的这个空闲连接发送HTTP要求,避免了由于新建TCP连接造成的延时和做事器资源耗费。

图例 1 TCP连接复用(TCP Connection Reuse)

在HTTP 1.0中,客户真个每一个HTTP要求都必须通过独立的TCP连接进行处理,而在HTTP 1.1中,对这种办法进行了改进。
客户端可以在一个TCP连接中发送多个HTTP要求,这种技能叫做HTTP复用(HTTP Multiplexing)。
它与TCP连接复用最根本的差异在于,TCP连接复用是将多个客户真个HTTP要求复 用到一个做事器端TCP连接上,而HTTP复用则是一个客户真个多个HTTP要求通过一个TCP连接进行处理。
前者是负载均衡设备的独特功能;而后者是HTTP 1.1协议所支持的新功能,目前被大多数浏览器所支持。

  有些用户喜好采取连接复用率来评判一个负载均衡设备的TCP连接复用技能的好坏。
一样平常来说,TCP连接复用率是指一段韶光内负载均衡设备成功处理的客户端HTTP要求总数与这段韶光负载均衡与做事器之间建立的TCP连接总数的比值。
但是, TCP连接复用率和运用的特点、做事器设置、打算周期以及要求的发送模式等也有很大的关系,不同的运用环境下打算出来的TCP连接复用率会有很大的差异。
实在,连接复用效率的关键在于负载均衡设备是否能够及时开释已经空闲的做事器端连接。
有些厂商采取发送HTTP相应后等待一定韶光,如果这段韶光内无数据传输即开释该连接。
而等待韶光每每是秒级的,对付数据来回韶光的毫秒级,其复用效果明显不会很好。
最为有效的连接复用技能是在负载均衡设备给客户端发送HTTP相应之后,收到客户端确认ACK数据包即开释该连接。
这种办法避免了任何额外的等待韶光,理论上没有更高效的复用方法。

内容缓存(RAM Caching)  内容缓存技能将运用做事器中的一些常常被用户访问的热点内容缓存在负载均衡设备的内存中。
当客户端访问这些内容时,负载均衡设备截获客户端要求,从缓存中读取客户端须要的内容并将这些内容直接返回给客户端。
由于是直接从内存中读取,这种技能能够提高网络用户的访问速率,并大大减轻后端做事器的负载情形。

  内容缓存的事情事理非常大略,我们将通过下图用户访问logo.gif的实例来阐明内容缓存的事情过程:

  1、当有客户端发起对logo.gif的第一个要求时,负载均衡首先会检讨本地缓存中是否存在该工具。
如果不存在这个工具,负载均衡会将这个HTTP要求转发给后真个做事器;

  2、做事器收到对logo.gif的HTTP要求后,将图片内容回应给负载均衡设备;

  3、负载均衡设备将logo.gif工具缓存在内容缓存中,并将其发送给客户端;

  4、后续的其它客户端发起对logo.gif的访问要求时,如果负载均衡检测到内容缓存中已经存在该工具,并确认该工具并未失落效的话,负载均衡直接将该工具返回给客户端,而无需做事器再次发送该工具。

图例 2 内容缓存(RAM Caching)

  内容缓存技能采取了HTTP协议中的一些标准缓存处理技能,将本应保存在客户端本地浏览器缓存中的内容共享给其他用户。
因此,对付客户端来说,内容缓存技能是完备透明的。
最常见的工具包括:gif/jpg图片,静态的css/js/html等文本文件等。

TCP缓冲(TCP Buffer)  TCP缓冲是为理解决后端做事器网速与客户的前端网络速率不匹配而造成的做事器资源摧残浪费蹂躏的问题。
由于做事器与负载均衡设备之间的网络带宽速率高,时延小,通过将做事器真个要求缓冲在负载均衡设备的缓冲区中,防止由于客户端缓慢的网络链路和较高的时延造成做事器端连接壅塞问题。

  通过采取TCP缓冲技能,可以提高做事器端相应韶光和处理效率,减少由于通信链路问题给做事器造成的连接包袱。
其余,由负载均衡设备来处理网络壅塞造成的数据包重传,使每个客户真个流量得到最佳的掌握。

图例 3 TCP缓冲(TCP Buffer)

  如上图所示,客户端与负载均衡之间采取的链路具有较高的时延和较低的带宽,而负载均衡与做事器之间采取时延较低和高带宽的局域网连接。

  1、负载均衡收到客户端发来的HTTP要求并将其转发给后真个做事器进行处理;

  2、做事器对要求进行处理后,将相应的内容依次返回负载均衡设备,负载均衡设备收到相应的数据包后,会将数据包依次缓存在缓冲区中,做事器的相应速率将依据负载均衡和做事器之间的链路质量;

  3、当负载均衡上缓存了第一个相应的数据包后,负载均衡将相应的数据包按次序返回给客户端,此时,相应的速率将依赖于负载均衡与客户端之间的链路质量;

  4、当相应内容数据包依次传送给客户端并收到客户真个ACK确认要求后,负载均衡将缓冲区资源开释出来为其它TCP连接利用。

  TCP缓冲技能是L7运用负载均衡的核心,它将做事器与客户端之间的TCP连接分成两个独立的TCP连接,并分别进行处理,以适应两边不同的网络环境。
此外,通过TCP缓冲技能,将客户真个HTTP要求完全的吸收下来并进行剖析,还可以供应一些高等负载均衡的运用功能,如:URL-Hashing,URL交流(URL-Switching),基于Cookie或会话的连接保持(Cookie/Session Persistence)等等。

HTTP压缩(HTTP Compression)  HTTP协议在v 1.1中新增了压缩功能,如果客户端浏览器和做事器都支持压缩功能的话,通过客户端和做事器进行协商,对客户真个相应要求进行压缩处理。
大幅节省内容传输时所须要的带宽,并加快客户真个相应速率。
但是,压缩算法本身须要耗费大量的CPU资源,因此,负载均衡设备通过对HTTP压缩功能进行支持,减轻Web做事器的资源耗费,提高其处理效率。
其余,由于负载均衡一样平常都采取硬件的办法进行压缩,因此,压缩的效率更高。
此外,对付一些不支持HTTP压缩功能的老版本的Web做事器,通过启用负载均衡上的压缩功能,可以实现对系统的优化和加速。

图例 4 HTTP压缩(HTTP Compression)

  如上图所示,在负载均衡上实现HTTP压缩功能的流程如下:

  1、客户端与负载均衡建立TCP连接后,发送HTTP要求(如Get要求),客户端会将自身浏览器所支持的功能和配置情形发送给负载均衡,如:是否支持压缩、支持的压缩算法、是否支持Keep-alive(连接保持)、连接保持的韶光等;

  2、负载均衡在收到HTTP要求后,会将个中的有关压缩的标记删除,然后将要求转发给做事器进行处理;

  3、做事器将相应的内容转发给负载均衡;

  4、负载均衡收到相应的内容后,依照与客户端之间协商的压缩算法对相应的内容进行压缩,然后将压缩后的内容发送回客户端;

  5、客户端收到相应的内容后,由浏览器对网页内容进行解压缩并进行浏览。

  由于HTTP压缩采取的是HTTP v1.1协议中支持的标准压缩算法,因此,目前主流的浏览器(如:Internet Explorer,Firefox,Opera,Netscape等)均默认支持HTTP v1.1中的压缩功能。
对付用户来说,无需修正浏览器配置也不须要安装任何插件。
采取负载均衡来代替做事器做压缩,能够大幅节省做事器的资源,可以使做事器专注于运用的处理,从而提高业务处理量。
其余,纵然做事器不支持HTTP压缩,通过负载均衡也能实现压缩功能。

  压缩能力的大小取决于被压缩工具的性子。
一样平常来说,HTTP压缩算法对付文本格式的内容有较好的压缩效率;而对付gif等图片格式的内容,由于本身已经进行过压缩处理,压缩效率并不高。
以是,须要负载均衡支持选择性压缩,即可以根据工具的类型进行选择性压缩。

SSL加速器(SSL Acceleration)  一样平常情形下,HTTP采取明文的办法在网络上传输,有可能被造孽窃听,尤其是用于认证的口令信息等。
为了避免涌现这样的安全问题,一样平常采取SSL协议(即:HTTPS)对HTTP协议进行加密,以担保全体传输过程的安全性。
在SSL通信中,首先采取非对称密钥技能交流认证信息,并交流做事器和浏览器之间用于加密数据的会话密钥,然后利用该密钥对通信过程中的信息进行加密和解密。

  SSL是须要耗费大量CPU资源的一种安全技能。
目前,大多数负载均衡设备均采取SSL加速芯片进行SSL信息的处理。
这种办法比传统的采取做事器的SSL加密办法供应更高的SSL处理性能,从而节省大量的做事器资源,使做事器能够专注于业务要求的处理。
其余,采取集中的SSL处理,还能够简化对证书的管理,减少日常管理的事情量。

  图例 5 SSL加速

  SSL的处理流程如下:

  1、客户端发起HTTPS连接要求,协商传输的加密算法,确认双方身份,并交流会话密钥。

  2、负载均衡收到客户端加密的HTTPS要求后,对要求的信息进行解密,然后通过HTTP的办法发送给后真个做事器。

  3、做事器将要求的处理结果返回给负载均衡设备。

  4、负载均衡设备利用会话密钥对要求的结果进行加密,然后将结果返回给客户端。

  5、客户端采取会话密钥对返回结果进行解密,并显示在浏览器上。

  在负载均衡设备中实现SSL加速功能,只须要在负载均衡设备上导入SSL证书和密钥即可。
当客户端发起对虚拟做事器的HTTPS要求时,负载均衡设备自动和客户端进行SSL协议的协商并交流会话密钥。
客户端发送的要求以及负载均衡返回的相应均采取会话密钥进行加密,而负载均衡设备与后端做事器之间则采取HTTP的办法进行要求的发送和处理。

在实际环境中运用负载均衡产品须要把稳的问题  负载均衡设备供应的这些HTTP优化和加速功能,能够大大的降落客户真个相应韶光,降落带宽利用率,并且能降落做事器端负载情形,节省做事器资源。
但是,目前主流的负载均衡产品在同时开启多个HTTP优化和加速功能时,设备的处理性能会大大降落。
只管各个厂家均流传宣传自己的设备有较高的性能处理指标,并通过第三方的测评机构公布一些产品性能测试数据,但是,这些数据一样平常都是在一些特殊设置的实验环境下测试出来的,只能作为不同厂商产品之间性能比拟的依据,而不能作为用户实际运用环境的选型依据。

  此外,大多数厂商都采取基本硬件平台上加装功能卡或购买容许证的办法供应这些HTTP的优化和加速功能。
如果用户想在运用加速的整体办理方案中采取这些功能,须要花费更多的采购本钱。
对付用户来说,这些高等特性和功能犹如水中之月,可望而不可及。
因此,在选购负载均衡产品的时候,一定要理解自己的运用究竟须要采取哪些功能特性,而实现这些特性又须要哪些额外的用度。

  A10 Networks的AX系列高等流量管理器采取目前主流的高性能多核CPU进行设计开拓,通过结合四层流量处理ASIC和自主研发的ACOS系统,供应无比的性能上风,尤其是在开启多个优化和加速特性后,仍能保持较高的处理性能。
2008年1月,在Tolly Group的测试中,单台AX设备实现了每秒百万的交易处理量,是截至目前唯一实现每秒百万级交易处理量的负载均衡设备。
AX以其卓越的性能为客户供应最佳性价比,并供应最大的每瓦特性能,知足当今绿色打算对节能的哀求。
此外,AX产品采取all-in-one的发卖模式,在单台硬件设备中供应所有的高等功能特性,如:内容缓存,HTTP压缩,SSL加速,IPv6,GSLB等。
这些功能已经内置在AX的ACOS系统之中,不须要用户花费任何额外的用度。
AX这种新的发卖模式可以为用户带来巨大的利益,节省用户投资本钱。

末了推举一个Linux做事器学习发展路线

包含了tcp协议栈,tcp长连接还是短连接,socket TCP 编程知识点,须要干系资料后台私信:1

标签:

相关文章

phpsqlif技巧_一文讲懂SQL前提语句 IF函数

本日是我们的第22课:IF函数。大家如果学过其他编程措辞,该当对IF函数很熟习了。用来根据条件,返回不同值。基本语法:IF(条件表...

网站推广 2024-12-07 阅读0 评论0