WEB开发网
开发学院服务器服务器方案 集群的可扩展性及其分布式体系结构之十一 阅读

集群的可扩展性及其分布式体系结构之十一

 2008-12-01 11:02:51 来源:WEB开发网   
核心提示: CSEQ:由于通常的通信流程是客户端先向集群发出请求,而在连接建立并且完成有效的调度之后,集群的可扩展性及其分布式体系结构之十一(4),均衡器就直接可以用先前客户端请求所使用的序列号向集群节点请求数据,这样,源地址和目的地址都要进行修改,反方向的IP包的地址转换规则也是类似,均衡器无需将客

CSEQ:由于通常的通信流程是客户端先向集群发出请求,而在连接建立并且完成有效的调度之后,均衡器就直接可以用先前客户端请求所使用的序列号向集群节点请求数据。这样,均衡器无需将客户端的序列号进行转换,就能直接使用在均衡器à节点之间的通信连接上。

DSEQ:均衡器à客户端 序列号。当均衡器对客户端完成三次握手的过程之后,也就建立了这个方向上的序列空间。均衡器所有发往客户端的数据报文(除了应答报文Ack之外)都使用这个序列空间。

SSEQ:由于集群节点à均衡器的通信连接独立进行,因此它对序列的选择不受均衡器的控制。因此,当均衡器和集群节点完成三次握手之后,新的序列空间SSEQ也同时建立。

那么显然的是:从 客户端à集群节点 这个方向上看,所有的报文序列都采用CSEQ序列空间;而从 集群节点à客户端 这个方向来说,报文必须完成从 SSEQ到DSEQ序列的转换。转换的过程很简单,如果均衡器不对经过的报文的长度作任何修改,那么重新计算的序号就是:

客户端口的新序号=现有的服务器端口收到的报文序号-(SSEQ-DSEQ)

完成这样的映射的计算量非常小,因此在进行报文转换的时候,避免了复杂的序号操作。

对TCP报文段的转换

为了能够无缝的完成对两个TCP连接的Splicing,均衡器必须对报文的Header部分进行修改。修改面向目标实体兼容,这样在集群两端的客户端和服务器节点,都看不到均衡器的存在,认为连接是与对方直接建立的。因此,均衡器首先需要完成上述的报文序列的重新映射,此外,还要处理以下一些TCP header的信息:

修改IP头信息:

改变源地址和目的地址信息以适应对称的连接,客户端的请求IP包的地址是:客户端IPà集群均衡器IP(也就是VIP);均衡器发往集群节点的转发IP包的地址信息是:均衡器IP地址(VIP或者内部IP)à集群节点的内部IP地址(非VIP)。源地址和目的地址都要进行修改。反方向的IP包的地址转换规则也是类似。这个方法和常见的NAT的实现基本一样。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:集群 可扩展性 及其

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接