集群的可扩展性及其分布式体系结构之十一
2008-12-01 11:02:51 来源:WEB开发网核心提示: 映射序列号由于Splicing将两个连接粘合起来,并在核心层完成报文的修改,集群的可扩展性及其分布式体系结构之十一(3),使得均衡器能够扮演透明网关的角色(即客户端和服务器都看不到均衡器的存在,都认为是在和对方直接进行通信)一方面,所以可以保证进行序号映射的时候,只需要进行固定的便宜即可,
映射序列号
由于Splicing将两个连接粘合起来,并在核心层完成报文的修改,使得均衡器能够扮演透明网关的角色(即客户端和服务器都看不到均衡器的存在,都认为是在和对方直接进行通信)一方面,均衡器以及整个集群的所有机器,都要支持虚拟IP地址,并确认均衡器拥有对VIP的控制权,这样不管最终响应客户端的是哪一台集群节点,对于客户端而言都是从VIP这个地址返回的。另外,由于被Splicing 的两个连接(客户端到均衡器,均衡器到集群节点)使用完全不同的序列号空间,因此必须有一种机制将两个连接上传送的报文的序列号进行互相的转换――映射。
报文序列空间映射示意图
上图中出现三个独立的序列号空间:CSEQ、DSEQ、SSEQ。(TCP是全双工的通信协议,反方向的处理是对称的)。在通信的两端分别会向对方发起连接传输,而这里提到的三个序列空间分别表示某一个方向上的通信序列,包括SYN、Data以及ACK报文等。
TCP的任何一个方向上的通信是都有序的,因此我们定义序列空间为:该方向上发起的第一个SYN报文的序列号作为该序列空间的起始号码。
因此,CSEQ就是客户端向均衡器发起连接请求的SYN报文序号,也是均衡器向集群节点发起连接的SYN报文序号。DSEQ和SSEQ都是用于建立三次握手产生的第二个SYN报文的序号。因为在Splicing的过程中,报文的长度不会被修改,因此当报文经过均衡器的修改之后的序号偏移是不变的。所以可以保证进行序号映射的时候,只需要进行固定的便宜即可。 报文转换流程详见本文系列之十。
[]
更多精彩
赞助商链接