多层次负载平衡之三
5.4应用层交换
在高可用性和负载均衡方面,有许多先进的工具可以利用由应用返回给最终用户的第七层信息。用户不仅能验证是否在发送正确的内容,而且还能打开网络上传送的数据包(不用考虑IP地址或端口),并根据包中的信息做出负载均衡决定。 从本质上讲,这种智能性迁移超越了第四层的功能。最多具有第四层功能的设备无法识别流过此端口的不同类型的传输流,因此它们对所有传输流同等对待。
可是传输流并不都是相同的。对于负载均衡产品来说,能够知道流过此端口的数据是流媒体还是对商品目录中一件商品的简单请求非常有用,也许商家想赋予需要此目录项的客户更高的优先级。不少具有第四层功能的设备以同样的方式对待这两种类型的数据,因而可能将流媒体数据发送到无法做出响应的服务器,导致错误的信息和时延。
而第七层的智能性能够进行进一步的控制,即对所有传输流和内容的控制。这类具有第七层认知的产品的部分功能,是保证不同类型的传输流可以被赋予不同的优先级。具有第七层认知的设备不是依赖路由设备或应用来识别差别服务(Diff-Serv)、通用开放策略服务或其它服务质量协议的传输流,它可以对传输流进行过滤并分配优先级。这就使你不必依赖应用或网络设备来达到这些目的。 第七层交换可以实现有效的数据流优化和智能负载均衡。
现有的负载均衡产品大都采用的基于MAC地址的第二、和基于IP的三层交换技术(Layer2Switching或IP Router)。第二层和第三层交换产品在解决局域网和互联网络的链路带宽及容量方面起到了很大的作用。但这对于端对端(End-to-End)性能和服务质量要求来说还很不够,还需要更多强壮的性能,尤其是在设计高速Internet应用系统时。为此,提出了基于TCP和UDP端口的以及基于应用层的第四层交换、第五层交换和第七层交换技术与产品。 第四层交换技术是面向通信会话的交换技术,它利用第三层和第四层包头中的信息来识别应用数据流会话,这些信息包括TCP/UDP端口,标志应用会话开始与结束的"SYN/FTN"位以及IP源/目的地址,利用这些信息,第四层交换设备可以做出向何处转发会话数据的智能决定,从而实现负载均衡;此外第四层交换还具有传输流优先级分配等功能。
但是这种情况下,四层交换无法动态识别WebServer的有效负载能力,不能正确的进行真正意义上的动态负载平衡;此外,第四层交换并不能识别传输流的应用类型,会有可能将某些访问发送到无法做出响应的WsbServer,导致错误的信息或时延。因此,第四层交换技术仅能使用于一些相对简单的环境,比如大量的静态页面访问服务器、文件服务器和一些功能较弱的CGI服务器。对于日益复杂化的电子商务应用,如流式媒体访问、高安全的Web内容访问、无线移动应用,都无法满足用户真正的需求。
因此提出了更高层的交换技术,第五层第七层交换。这种技术基于应用层的流量分载,通过打开应用/表示层,识别传输流的内容和类型,这就使得不仅仅是基于URL做出全面的均衡分载决策,而且还能依据访问应用的具体类型智能地向对应的Web Server传输,无论这些应用正使用什么端口号。从本质上讲,这种负载均衡技术超越了第四层的功能。由于可以自由地完全打开传输流的应用/表示层,仔细分析其中的内容,因此可以根据应用的类型而非仅仅根据IP和端口号做出更智能的负载均衡决定。
目前,特别是在高可用性和负载均衡方面,有许多先进的工具可以利用由应用返回给最终用户的第七层信息。这类工具使用户可以容易地确认站点内容的响应性和正确性,或从客户的角度来试测你的站点,看看是否存在正确的应用和内容。 用户不仅能验证是否在发送正确的内容,而且还能打开网络上传送的数据包(不用考虑IP地址或端口),并根据包中的信息做出负载均衡决定。
例如HTTP协议中的重定向能力等,HTTP运行于TCP连接的最高层。客户端通过端口号80的TCP服务直接连接到服务器,然后通过TCP连接向服务器端发送一个HTTP请求。在服务器分清客户端所需的网页和资源之前,至少要进行四次TCP的数据包交换请求。由于负载平衡设备要把进入的请求分配给多个服务器,因此,它只能在TCP连接时建立,且HTTP请求通过后才能确定如何进行负载的平衡。当一个网站的点击率达到每秒上百甚至上千次时,TCP连接、HTTP报头信息以及进程的时延已经变得很重要了。在HTTP请求和报头中有很多对负载平衡有用的信息。首先,也是最重要的一点是,我们可以从这些信息中获知客户端所请求的URL和网页,利用这个信息,负载平衡设备就可以将所有的图像请求引导到一个图像服务器,或者根据URL的数据库查询内容调用CGI程序,将请求引导到一个专用的高性能数据库服务器。惟一能局限这些信息获取的因素是负载平衡设备本身的灵活程度。事实上,如果网络管理员熟悉Web内容交换技术,他可以仅仅根据HTTP报头的cookie字段来使用Web内容交换技术改善对特定客户的服务,如果能从HTTP请求中找到一些规律,还可以充分利用它作出各种决策。除了TCP连接表的问题外,如何查找合适的HTTP报头信息以及作出负载平衡决策的过程,是影响Web内容交换技术性能的重要问题。
从本质上讲,这种智能性迁移超越了第四层的功能。以端口80为例,除了一般类型的Web传输流之外,还有许多类型的传输流流过此端口。最多具有第四层功能的设备无法识别流过此端口的不同类型的传输流,因此它们对所有传输流同等对待。 可是传输流并不都是相同的。对于负载均衡产品来说,能够知道流过此端口的数据是流媒体还是对商品目录中一件商品的简单请求非常有用,也许商家想赋予需要此目录项的客户更高的优先级。不少具有第四层功能的设备以同样的方式对待这两种类型的数据,因而可能将流媒体数据发送到无法做出响应的服务器,导致错误的信息和时延。
而第七层的智能性能够进行进一步地控制,即对所有传输流和内容的控制。由于可以自由地完全打开传输流的应用/表示层,仔细分析其中的内容,因此可以根据应用的类型而非仅仅根据IP和端口号做出更智能的负载均衡决定。 这就可以不仅仅基于URL做出全面的负载均衡决策,而且还能根据实际的应用类型做出决策,无论这些应用正使用什么端口号。这将使用户可以识别视频会议流,并根据这一信息做出相应的负载均衡决策,尽管该应用可能正在使用动态分配地址。
这类具有第七层认知的产品的部分功能是保证不同类型的传输流可以被赋予不同的优先级。具有第七层认知的设备不是依赖路由设备或应用来识别差别服务(Diff-Serv)、通用开放策略服务或其它服务质量协议的传输流,它可以对传输流进行过滤并分配优先级。这就使你不必依赖应用或网络设备来达到这些目的。
目前这类第七层功能的标准还没有。具有第七层认知的功能是具有很大的互补性的:它与提供像Diff-Serv这类服务的网络可以和谐地共存。它对传输流进行分析,然后判定,如对于IP语音这个传输流就需要设置服务比特位,而其它类型的传输流只需要设置较低优先级类型的服务比特位。
当然,最重要的是这类设备所能提供的最终好处。过去,我们总需要在智能性与速度之间进行权衡。在采用第七层认知技术的情况下,可以以线速度做出更智能性的传输流决策。用户将自由地根据得到的信息就各类传输流和其目的地做出决策,从而优化Web访问,为最终用户提供更好的服务。
- 没有相关文章
- 没有评论