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

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

 2008-12-01 11:02:51 来源:WEB开发网   
核心提示: 除去所有进入集群的IP包头部的选项信息, 重新计算IP包的校验和,集群的可扩展性及其分布式体系结构之十一(5), 修改TCP报文头部信息:改变TCP报文的源端口和目的端口,同地址修改一样,服务器TCP也会立即发送紧急指针和URG标志,而客户TCP接收到这个通知时就会通知客户进程,客户端端口

除去所有进入集群的IP包头部的选项信息。

重新计算IP包的校验和。

修改TCP报文头部信息:

改变TCP报文的源端口和目的端口,同地址修改一样,客户端端口->集群公共端口 ;以及均衡器的发送端口->集群节点的公共端口。但仅需要修改源端口,目的端口不用修改;反方向也类似。

完成TCP报文序列号空间的映射。DSEQ<->SSEQ两个序列号的转换,包括SYN、data和Ack。

对部分能够解释的TCP选项进行转换,使之满足目标系统的TCP/IP协议栈的要求。

修改TCP校验和。

对于TCP校验和的计算,负载均衡器实际上要作两次。对于均衡器从任一方向上收到的报文,在处理之前需要先计算校验和以确定报文正确性;完成报文的地址信息以及选项转换之后,还要再次计算校验和,写入相应的校验和信息发送到splicing的另外一端。

对于紧急指针的处理,均衡器采取不加修改的办法,直接让紧急指针的信息通过均衡器。这样的处理,使得均衡器能够完全兼容伯克利Socket的外带数据实现模式。而通常我们用urgent标记来终止某一端的通信。

TCP提供了"紧急方式(urgent mode)",它使一端可以告诉另一端有些具有某种方式的"紧急数据"已经放置在普通的数据流中。另一端被通知这个紧急数据已被放置在普通数据流中,由接收方决定如何处理。

可以通过设置TCP首部中的两个字段来发出这种从一端到另一端的紧急数据已经被放置在数据流中的通知。URG比特被置1,并且一个16bit的紧急指针被置为一个正的偏移量,该偏移量必须与TCP首部中的序号字段相加,以便得出紧急数据的最后一个字节的序号。

紧急指针通常由应用层的程序处理,例如Telnet和Rlogin这样的程序,当它们从服务器到客户使用紧急方式时,意味着在这个方向上的数据流很可能要被客户的TCP停止。但如果服务器进程进入了紧急方式,尽管它不能够发送任何数据,服务器TCP也会立即发送紧急指针和URG标志。而客户TCP接收到这个通知时就会通知客户进程,于是客户可以从服务器读取其输入、打开窗口并使数据流动。

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

Tags:集群 可扩展性 及其

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