TCP 代理终止客户端到虚拟服务的连接,处理负载,然后打开到目标服务器的新 TCP 连接。对于来自客户端并发送到服务器的任何应用程序数据,将通过新的服务器端 TCP 连接转发到该服务器。通过分离客户端到服务器的连接(或提供代理),NSX Advanced Load Balancer 可以提供增强的安全性,例如 TCP 协议清理和拒绝服务 (DoS) 缓解。
TCP 代理模式还提供更好的客户端和服务器性能,例如,单独最大限度提高客户端和服务器 TCP 最大分段大小 (MSS) 或窗口大小以及缓冲服务器响应。
每个连接为连接设备协商最佳的 TCP 设置。例如,假设客户端使用 1400 字节 MTU 连接到 NSX Advanced Load Balancer,而服务器使用 1500 字节 MTU 连接到该负载均衡器。在这种情况下,NSX Advanced Load Balancer 缓冲 1500 字节服务器响应,并将它们作为 1400 字节响应单独发回到客户端。
如果客户端连接丢弃数据包,则 NSX Advanced Load Balancer 重新进行传输,因为服务器可能已完成传输并继续处理下一个客户端请求。这种优化在以下环境中特别有用:到服务器的连接具有高带宽和低延迟,到客户端的连接具有低带宽和高延迟(这是 Internet 流量的典型情形)。
可以使用 TCP/UDP 配置文件,并将类型设置为应用程序配置文件(例如 HTTP)的代理。
要创建 TCP 代理网络配置文件,请执行以下操作:
在新建 TCP/UDP 配置文件屏幕中,输入网络配置文件的名称。
选择 TCP 代理以作为类型。
在 TCP 代理下面,选择模式(“自动学习”或“自定义”)以设置该配置文件的配置。
单击保存。
TCP 参数
NSX Advanced Load Balancer 仅公开 TCP 协议的可配置参数,这些参数可能为应用程序性能带来切实的好处。可以通过 NSX Advanced Load Balancer CLI 或 REST API 提供更多配置选项。
自动学习
自动学习模式将所有参数设置为默认值,并动态更改缓冲区大小。
实际上,很多 NSX Advanced Load Balancer 管理员发现很少需要手动进行 TCP 调整。NSX Advanced Load Balancer 中的默认 TCP 配置文件设置为自动学习,其大多数客户可能从不需要修改该顶级设置。这种方法是为了降低应用程序交付平台管理涉及的复杂性,并简化应用程序所有者使用服务的过程。
对于 TCP 代理配置文件,启用自动学习可以使 NSX Advanced Load Balancer 设置配置参数。NSX Advanced Load Balancer 可以随时更改 TCP 设置。例如,如果 SE 内存不足,它可能会减小缓冲区或窗口大小以确保应用程序可用性。
设置 |
默认值 |
---|---|
TCP 保持活动状态 |
已启用 |
空闲持续时间 |
10 分钟。 在达到 10 分钟空闲时间后,NSX Advanced Load Balancer 启动 TCP 保持活动状态协议。如果另一端响应,连接将继续保持活动状态。 |
最大重新传输次数 |
8 |
最大 SYN 重新传输次数 |
8 |
IP DSCP |
不使用特殊 DSCP 值。 |
启用 Nagles 算法 |
已禁用。 |
缓冲区管理 |
向客户端通告以及在服务器上通告的接收窗口动态发生变化。它开始时很小 (2kb),可以在需要时增加到单个 TCP 连接最多 64mb。该算法还考虑了系统中的可用内存量以及打开的 TCP 连接数。 |