e地通发布应用加速产品技术3.0版本

2010-03-01 11:22:37

       随着网络技术的飞速发展,人们已越来越依赖网络获取信息。大量的信息访问已突出了Internet目前存在的问题:由于网络用户爆炸式的增长造成网络流量激增,在有限的带宽条件下,人们在获取网络信息时不得不忍受严重的延时,这也愈来愈成为网络的瓶颈。虽然随着电信业的发展以及国家骨干网带宽的增加,但传统的网络结构已经不能满足现在网络高质量的需求,网络上传输文件和应用往往由于延时较大或者网络丢包率过高而导致文件传输时间过长甚至传输不成功。为了在已定的网络环境下获得更好的网络服务质量,惠尔顿公司针对不同的网络状况设计了多种方案,以满足各种应用需要。

        企业在分公司之间大多使用广域网作为传输网络,而广域网的传输性能问题,也为其应用的效率带来了全新的挑战,这个问题经常造成数据中心访问速度低下,而广域网的传输性能主要受到以下的因素影响:

1、传输线路带宽的大小:带宽是广域网应用会遇到的一个重大问题,但是并不是解决了带宽就能完全解决广域网传输性能问题,另外需让带宽的利用率达到最佳。

2、数据的传输效率:在系统两端往往需要传输大量的重复数据,比如公司总部的某个文件通知,下属分支机构的每一个员工如果都需要阅读的话,通常情况下每个人的电脑都通过传输线路到公司总部的服务器上面去取相应的文件,这样同样的一份数据在线路中传输了很多次,对线路带宽的利用率较低。另外,如果文件更新后,下属分支机构需要更新文件,而更新文件时改动一般不大,而更新后的文件要再次在网络中传输,对带宽的利用率不高。

3、TCP 协议传输控制方式(包括端到端的应答机制、拥塞控制行为等)
        传输控制协议TCP是(transmission control protocol)专门用于在不可靠的因特网上提供可靠的、端对端的字节流通信的协议。通过在发送方和接收方分别创建一个称为套接字的通信端口就可以获得TCP服务。

        首先,TCP 协议是一个确保安全的传输协议,在网络两端的主机建立TCP连接的时候需要进行三次握手等连接确认机制,但是这些机制往往会因为网络延时和丢包而显的效率较低。比如在访问WEB页面的时候,一个页面中的各个元素都是由单独的TCP 会话来进行传输的,可能的会话数达到几十个,每一个会话都要处理繁杂的确认机制,在遇到由于延时或者丢包造成确认不成功时又会重新发起会话,导致页面访问缓慢。
       此外,在TCP 协议传输数据的时候,一端到另一端所正在传输的数据量还受数据报窗口的大小限制,当该窗口满了以后,发送方就无法发送更多的数据,直到接受方确认已经接收了窗口中的部分数据。如果数据报窗口太小的话,必然会影响数据传输和应答的速率,从而影响整个数据链路的吞吐能力。如果传输两端的系统能够很好的对数据窗口大小进行协商的话是可以一定程度上避免出现这种情况的,但是前大部分系统并不能很好的处理广域网环境下的数据报协商机制。

4、应用协议的处理机制:和TCP 协议遇到的情况相似,像WINDOWS上通过CIFS 协议提供的文件共享服务以及金蝶等基于RPC 协议的ERP 软件以及其它的一些应用软件,同样在遇到网络延迟和消息大小限制的时候,实际的网络传输效率是会随着延时的增加而迅速下降的。
        总结起来主要有两个影响网络服务质量的因素:一是,网络带宽——即网络单位时间内允许的数据量;二是,网络延时——即传送一个数据包从网络的一端到另一端的时间。针对两种情况,我们分别设计了两种方案来解决。当然这两个因素也是有互相影响的,如果带宽不足,而大量发送数据就可能导致网络堵塞,从而导致网络延时增大;而如果网络延时很大,而发送数据的缓冲区大小是一定的,又会降低带宽的利用率。

加速功能:
1、数据流缓存
       在我们使用远程应用的时候,我们需要不断的和服务器进行交互、发送数据、接收数据,这样在客户端和服务器之间的数据就好似流水一样。在我们和服务器通信的数据的时候,可能有大量的数据是曾经在客户端和服务器之间已经流过。比如说,我们先执行了一个SQL查询语句,返回了1000记录;后来增加了几条记录再执行同样的SQL查询语句,这次返回的有1000多条记录,但是这些记录其中1000条记录都是曾经已经从服务器到客户端,这1000条记录是否可以不再需要传输呢?那么,如果我们能在第一次传输的时候,将这1000记录都缓存在服务器和客户端的网关设备上,当再次查询的时候就只需要只传输新增的那几条记录了。
这种数据流缓存技术,能够加速所有基本于TCP协议的应用,能够有效地节约带宽,更加有效地利用带宽。

2、对象缓存
       我们有很多的应用,有很多的应用协议,如HTTP、POP3、SMTP、CIFS,对于不同的协议,它们有各自己的对象。当我们使用我们的应用的时候,也需要不断地请求服务器上的对象,比如一个网页对象:http://www.wholeton.com/index.htm,一个图片对象:http://www.wholeton.com/iamges/logo.jpg,邮件中的一个附件等,这种对象我们也有可能向服务器请求多次,但是可能这些对象在我们的多次请求过程中并没有发生变化,或者我们很多客户端同时请求这些对象。因此,能不能像数据流缓存技术那样,将这些这对象也缓存起来,加速我们的应用呢?答案是肯定的,这就是对象缓存技术。
        由于不同的应用协议认为的对象是不一样的,需要根据不同的应用协议区别设计,但是对象缓存的技术原理是一样的。现以HTTP协议的Web对象为例解释Web对象缓存技术。这种技术可以有多种部署方式,根据不同的部署方式,产生的效果也是不同的。首先,可以只在客户端部署对象缓存设备,以加速客户端对应用的访问。比如,在一个分支机构里,在网关设备下10台PC,现在这些PC都要访问远程应用,公司网站http://www.wholeton.com。第一台PC先通过网关设备访问了这个网站,在这个PC访问网站的时候,从网站下载了http://www.wholeton.com/index.htmhttp://www.wholeton.com/images/logo.jpghttp://www.who leton.com/images/banner.swf、http://www.wholeton.com/css.css等对象。当它下载这些对象的时候,在网关设备里也识别到了这些对象,于是在网关设备里为这些对象建立缓存。当这台PC再次访问的时候,或者其它PC访问的时候,如果这些对象没有更新,那么就可以直接从本地的网关设备里将这些返回给这些PC。这样,后来的访问都不需要再通过Internet访问原始的应用服务器,不需要再在网络上传输这些对象,不需要等待传输这些对象的时间。这样有效地节约了带宽,减少了由于网络延迟带来的影响。
        其次,可以只在服务器端部署缓存技术设备,以减轻服务器的负载、加速应用的访问。一般的应用可能很多的任务,比如要处理复杂的业务逻辑、要连接后台数据库服务器查询数据、要动态生成对象、要将这些对象传输给远程客户端。在远程客户端访问应用的时候,先通过缓存服务器,如果缓存服务器上有对象并且对象是最新,则缓存服务器就可以直接响应客户端的请求。并且在没有客户端请求的时候,如果缓存服务器比较空闲,则可以查检对象是否过期,如果已经过期,则不定期更新对象。这样就无需等到请求这些对象的时候,再更新对象,以加速应用的访问。这样原始服务器,只需要传输一次对象到缓存服务器,之后的对象请求都将由缓存服务器完全代替原始服务器,以减少原始服务器的负载,这样原始服务器可以专注于处理自己的业务逻辑。
       甚至,还可以在服务器端和客户端都部署缓存服务器,这样既能节约带宽、减少由于网络延迟带来的影响,还能减轻原始服务器的负载。进一步的,还一个新的特点,在缓存服务器中的对象需要更新的时候,由于在两端的缓存服务器都旧的对象,而服务器端的缓存服务器同时还有最新的对象,这样在更新对象的时候,只需要传输这个对象变化了的部分,而无需传输整个更新了的对象。这样就更进一步的节约了带宽,更进一步的有效地利用了带宽。

3、数据流压缩
      虽然我们将数据流缓存到了网关设备里,但有时候数据流可能在缓存并没缓存,或者没有全部缓存起来,这样还是需要在网关设备之间传输数据流。当在进行数据流传输的时候,对数据流进行压缩,使原本比较大的数据变小,使数据传输变得更快。
这种技术只需要对数据进行压缩,因此它具有速度快、资源消耗少的特点,能基本上加速所有的基于TCP协议的应用。

4、快速连接
TCP协议优化有很多技术,如快速连接、TCP滑动窗口优化、ACK代理应答等。所谓快速连接,就是简化TCP连接建立的步骤,快速地建立TCP连接。众所周知,TCP连接需要“三次握手”,一是客户端先通过客户端的代理网关和服务器端的代理网关向服务器发送一个SYN请求,二是服务器在收到SYN请求之后通过服务器端的代理网关和客户端的代理网关回复一个SYN/ACK应答,三是客户端在收到SYN/ACK之后通过客户端的代理网关和服务器端的代理网关再回复一个ACK,这样对建立完成了TCP连接。快速连接对连接建立的流程做了优化,一是客户端发送了一个SYN请求,这个SYN请求被代理网关收到,于是代理网关代替原始服务器给客户端回复一个SYN/ACK,于是客户端就能立即收到SYN/ACK,并回复一个ACK给代理网关,这样客户端这边的连接就建立完成了。代理网关在回复了SYN/ACK之后,将原SYN包保持不变继续发送给服务器端的代理网关。服务器的代理网关在收到SYN之后,将其中的初始序列号记录下来,并把SYN请求转发给原始服务器。原始服务器收到SYN请求之后,回复一个SYN/ACK,服务器端的代理网关在收到SYN/ACK之后,将中的SYN又记录下来,并且不做任何响应,因为客户端会再发送一个ACK包,只需要修改这个ACK包,然后发送给原始服务器,这样服务器端的TCP连接也建立完成了。这样,客户端建立TCP连接的时间几乎为零,而服务器端建立TCP连接也只用了0.5RTT,而原本建立TCP连接需要1.5RTT。
        快速连接,同样也具有速度快、资源消耗少的特点,能对所有的基于TCP协议的应用加速,能在网络延迟比较大的时候减少延时对应用的影响。

5、ACK代理
        ACK代理,即本地代理网络的另一端对本地的数据发送进行确认。因为e地通 Server架构已经提供了可靠的数据连接,因此才可能在本地对数据发送进行确认(即告诉发送方数据已经发送到接受方了),这样发送方就无须等到数据真的被接受的时候,再发送下一个数据,而是可以立即再发送数据。
        ACK代理是快速连接技术的进一步升级,快速连接技术只是在TCP连接建立时候,本地网关代替远端的服务器对本地的发送请求进行确认,而在连接建立以后的不再代替远端的服务器进行确认。而ACK代理是在连接建立以后,也依然代替远端的服务器进行确认,这使得上层通信就好像是在局域网一样能够得到快速响应。
       由于TCP本身滑动窗口的存在,只有在滑动窗口满之后才会等待之前发送数据的确认,因此只当 网络带宽×网络延时 > 滑动窗口 时,此方案才有加速效果,当乘积越大的时候效果越明显。
ACK代理,同样也具有速度快、资源消耗少的特点,能对所有的基于TCP协议的应用加速,能在网络延迟比较大的时候减少延时对应用的影响。

6、自动优化滑动窗口大小
          TCP协议他有两个不利于在高速WAN实现高效传输的特点,第一个是慢启动,第二个是拥塞控制机制。当TCP连接中发现一个包被丢弃以后,TCP的传输速度既降低到一半,然后逐步增加到满负荷,随后,又出现数据包被丢弃,TCP的传输速度既降低到一半,如此反复。
        优化TCP滑动窗口,就是对TCP滑动窗口进行动态的调整,以使其更加适合当前的网络状况。TCP的滑动窗口决定了TCP发送数据的数据,滑动窗口大,发送速率就大,滑动窗口小,发送速度就小。动态的调整滑动窗口就是,在网络比较好的时候,增大滑动窗口,以加速数据的发送;当网络状况不是很好的时候,减小滑动窗口,以减小数据发送的速度,以缓解网络拥塞的状况。
        通过优化的滑动窗口调节,改进了TCP协议的拥塞控制机制,使得TCP协议在发现数据包被丢弃后,传输性能不是立刻下降一半,而是一个小幅的降低调整,然后依次逐步增加到满负荷。
这一些TCP优化技术,同样也具有速度快、资源消耗少的特点,能对所有的基于TCP协议的应用加速,能在网络延迟比较大的时候减少延时对应用的影响。

7、HTTP协议优化
        持久连接(KeepAlive):由于缓存服务器代理了所有的客户端的请求,因此它需要和原始服务器进行大量的通信。而这些通信是建立TCP连接的,而建立、撤销TCP连接都需要比较长的时间和消耗一定的资源。并且TCP连接建立之后,它的传输速率并不是立即达到最大值,而是会有一个慢启动的过程。当连接数量很大的时候,这些时间的浪费、资源的消耗以及带宽的浪费对应用的响应能力都会有很大影响。
而如果将建立的连接用一个连接池管理起来,这样将节约大量的连接建立的时间,降低资源的消耗,更加充分的利用带宽。
         自动Refresh缓存了的对象:由于缓存服务器上的对象是可能的过期的,一般的设计方案是当有对象请求时,如果对象过期了再到原始服务器更新过期的对象,然后再返回给客户端。这样客户端就需要多等待一个缓存服务器取对象的时间。而如果能够自动的将过期对象在客户端请求之前先更新为最新的,这样客户端再请求的时候,缓存服务器的对象将是最新的,无需再到原始服务器请求对象,客户端就无需等待缓存服务器取对象的时间。
        数据压缩GZIP:现在的主流的浏览器都支持deflate、gzip压缩算法,而很多应用都没有利用这个特性,而依然传输的是原始数据,这样浪费了很多带宽。因此,如果缓存服务器能够在接受到浏览器的请求后,如果判断浏览器支持GZIP压缩,则将这些对象用gzip压缩算法压缩,这样又将进一步节约带宽。

惠尔顿技术培训交流群

欢迎您关注惠尔顿官方公众号

联系我们

CONTACT US

公司名称:深圳市惠尔顿信息技术有限公司

公司地址:深圳市南山区高新技术产业园R2-A栋

全国热线 & QQ:400 6886 502

技术服务:158 1467 4897(微信同号)

产品咨询:189 2529 2974(微信同号)

Copyright©2000-2022 深圳市惠尔顿信息技术有限公司 版权所有 粤ICP备05033555号-2

粤公网安备 44030502006686号