TCP 优化配置

在配置 TCP 优化之前,请在 Citrix ADC 设备上应用以下基本配置设置:

初始配置:

enable ns feature LB IPv6PT
enable ns mode FR L3 USIP MBF Edge USNIP PMTUD
disable ns feature SP
disable ns mode TCPB
set lb parameter -preferDirectRoute NO
set lb parameter -vServerSpecificMac ENABLED
set l4param -l2ConnMethod Vlan
set rsskeytype -rsstype SYMMETRIC
set ns param -useproxyport DISABLED

注意

如果更改rsskeytype 系统参数,请重新启动 Citrix ADC 设备。

TCP 终止

Citrix ADC T1 要应用 TCP 优化,首先需要终止传入的 TCP 流量。为此,应创建一个通配符 TCP虚拟服务器并配置为拦截入口流量,然后将其转发到 Internet 路由器。

静态/动态路由环境

对于具有静态或动态路由的环境,虚拟服务器 可以依靠路由表信息将数据包转发到 Internet 路由器。默认路由必须指向 Internet 路由器,并且必须将客户端子网的条目路由到无线路由器:

示例:

add lb vserver vsrv-wireless TCP * * -persistenceType NONE -Listenpolicy "CLIENT.VLAN.ID.EQ(100) && SYS.VSERVER("vsrv-wireless").STATE.EQ(UP)" -m IP -cltTimeout 9000
add route 0.0.0.0 0.0.0.0 192.168.2.1
add route 10.0.0.0 255.0.0.0 192.168.1.1

VLAN 到 VLAN (PBR) 环境

在某些客户环境中,订阅者流量被分割为多个流,并且需要根据传入流量参数转发到不同的路由器。基于策略的路由 (PBR) 可用于基于传入数据包参数(如 VLAN、MAC 地址、接口、源 IP、源端口、目标 IP 地址和目标端口)路由数据包。

本地化后的图片

示例:

add lb vserver vsrv-wireless TCP * * -m IP -l2Conn ON -listenpolicy "CLIENT.VLAN.ID.EQ(100) || CLIENT.VLAN.ID.EQ(101) || CLIENT.VLAN.ID.EQ(102)"

add ns pbr pbr-vlan100-to-vlan200 ALLOW -vlan 100 -nexthop 172.16.200.1

add ns pbr pbr-vlan101-to-vlan201 ALLOW -vlan 101 -nexthop 172.16.201.1

add ns pbr pbr-vlan102-to-vlan202 ALLOW -vlan 102 -nexthop 172.16.202.1

使用基于策略的路由来路由 TCP 优化的流量是在版本 11.1 50.10 中添加的一项新功能。对于以前的版本,每个 VLAN 具有多个“模式 MAC”vserver 实体是多 VLAN 环境的替代解决方案。每个虚拟服务器都有一个绑定服务,表示特定流的 Internet 路由器。

示例:

add server internet_router_1 172.16.200.1

add server internet_router_2 172.16.201.1

add server internet_router_3 172.16.202.1

add service svc-internet-1 internet_router_1 TCP * -usip YES -useproxyport NO

add service svc-internet-2 internet_router_2 TCP * -usip YES -useproxyport NO

add service svc-internet-3 internet_router_3 TCP * -usip YES -useproxyport NO

bind service svc-internet-1 -monitorName arp

bind service svc-internet-2 -monitorName arp

bind service svc-internet-3 -monitorName arp

add lb vserver vsrv-wireless-1 TCP * * -Listenpolicy "CLIENT.VLAN.ID.EQ(100) && SYS.VSERVER("vsrv-wireless-1").STATE.EQ(UP)" -m MAC -l2Conn ON

add lb vserver vsrv-wireless-2 TCP * * -Listenpolicy "CLIENT.VLAN.ID.EQ(101) && SYS.VSERVER("vsrv-wireless-2").STATE.EQ(UP)" -m MAC -l2Conn ON

add lb vserver vsrv-wireless-3 TCP * * -Listenpolicy "CLIENT.VLAN.ID.EQ(102) && SYS.VSERVER("vsrv-wireless-3").STATE.EQ(UP)" -m MAC -l2Conn ON

bind lb vserver vsrv-wireless-1 svc-internet-1

bind lb vserver vsrv-wireless-2 svc-internet-2

bind lb vserver vsrv-wireless-3 svc-internet-3

注意

虚拟服务器 模式是 MAC,与之前的示例相比,它是模式 IP。当我们有服务绑定到虚拟服务器时,需要这样做才能保留目标 IP 信息。此外,额外的 PBR 配置需要路由未优化的流量。

TCP Optimization(SSL 优化)

开箱即用的 Citrix ADC TCP 终止配置为 TCP 直通功能。TCP 直通本质上意味着 Citrix ADC T1 可以透明地拦截客户端-服务器 TCP 流,但不保留单独的客户端/服务器缓冲区,也不应用任何优化技术。

要启用 TCP 优化,一个名为 nstcpprofile 的 TCP 配置文件用于指定 TCP 配置,如果在服务或虚拟服务器级别没有提供 TCP 配置,则该配置文件应按以下方式进行修改:

命令:

add ns tcpProfile nstcpprofile -WS ENABLED -SACK ENABLED -WSVal 8 -mss 1460 -maxBurst 30 -initialCwnd 16 -oooQSize 15000 -minRTO 800 -bufferSize 4000000 -flavor BIC -dynamicReceiveBuffering ENABLED -KA ENABLED -sendBuffsize 4000000 -rstWindowAttenuate ENABLED -spoofSynDrop ENABLED -ecn ENABLED -frto ENABLED -maxcwnd 1000000 -fack ENABLED -rstMaxAck enABLED -tcpmode ENDPOINT

注意

如果没有明确创建并绑定到虚拟服务器和服务的任何配置文件,则默认情况下将绑定配置文件 nstcp_default ult_profile。

在需要多个 TCP 配置文件的情况下,可以创建额外的 TCP 配置文件并与相应的虚拟服务器关联

命令:

add ns tcpProfile custom_profile -WS ENABLED -SACK ENABLED -WSVal 8 -mss 1460 -maxBurst 30 -initialCwnd 16 -oooQSize 15000 -minRTO 800 -bufferSize 4000000 -flavor BIC -dynamicReceiveBuffering ENABLED -KA ENABLED -sendBuffsize 4000000 -rstWindowAttenuate ENABLED -spoofSynDrop ENABLED -ecn ENABLED -frto ENABLED -maxcwnd 1000000 -fack ENABLED -rstMaxAck enABLED -tcpmode ENDPOINT

set lb vserver vsrv-wireless -tcpProfileName custom_profile

注意

对于具有虚拟服务器-m MAC 和服务的部署,应将相同的配置文件与服务关联。

set service svc-internet -tcpProfileName custom_profile

TCP 优化功能

Citrix ADC 设备的大多数相关 TCP 优化功能都通过相应的 TCP 配置文件公开。创建 TCP 配置文件时应考虑的典型 CLI 参数如下:

  1. 窗口缩放 (WS):TCP 窗口缩放允许将 TCP 接收窗口大小增加到 65535 字节以上。它有助于提高 TCP 的整体性能,特别是在高带宽和长延迟网络中。它有助于减少延迟和缩短 TCP 的响应时间。
  2. 选择性确认 (SAK):TCP SAK 解决了多个数据包丢失的问题,从而降低了总吞吐量。通过选择性确认,接收者可以通知发送者成功接收的所有段,使发送者只能重新传输丢失的段。此技术有助于 T1 提高总吞吐量并减少连接延迟。
  3. 窗口缩放因子 (WSVal):用于计算新窗口大小的因子。它必须配置一个较高的值,以允许 NS 播发窗口至少等于缓冲区大小。
  4. 最大段大小 (MSS):单个 TCP 段的 MSS。此值取决于中间路由器和最终客户端上的 MTU 设置。一个值 1460 对应于一个 1500 的 MTU。
  5. 最大突发:突发中允许的最大 TCP 段数。
  6. 初始拥塞窗口大小 (InitialCWnd):TCP 初始拥塞窗口大小决定在事务开始时可以处于未完成状态的字节数。它使 T1 能够发送这么多的字节,而不会打扰电线上的拥塞。
  7. 最大 OOO 数据包队列大小 (OOQsize):TCP 维护不顺序队列,以保留 OOO 数据包在 TCP 通信中。如果队列大小为长,只要数据包需要保留在运行时内存中,则此设置会影响系统内存。因此,需要根据网络类型和应用特征来保持优化水平。
  8. 最小 RTO (MinRTO):基于内部实现逻辑,根据每个接收的 ACK 计算 TCP 重新传输超时。默认重新传输超时发生在 1 秒开始时,可以使用此设置进行调整。对于这些数据包的第二次重新传输 RTO 将由 N*2 计算,然后 N*4… N*8… 一直持续到最后一次重新传输尝试。
  9. BufferSize/发送 BuffSize:这些指的是 T1 可以从服务器和缓冲区内部接收的最大数据量,而不发送到客户端。它们应设置为大于底层传输通道的带宽延迟积(至少双倍)的值。
  10. 味道:这是指 TCP 拥塞控制算法。有效值为默认值、BIC、CUBIC、Westwood 和 Nile。
  11. 态接收缓冲:允许根据内存和网络条件动态调整接收缓冲区。它将尽可能地填充缓冲区,以保持客户端的下载管道满,而不是填充,通过从服务器提前读取固定大小的缓冲区,后者是在 TCP 配置文件中指定的,通常基于 2*BDP 等标准,用于连接。Citrix ADC T1 监视客户端的网络条件,并估计应从服务器提前读取的数量。
  12. 保持活动状态 (KA):发送定期 TCP 保持活动状态 (KA) 探测,以检查对等状态是否仍在运行状态。
  13. RSTWindows 衰减:保护 TCP 免受欺骗攻击。当序列号无效时,它将使用纠正 ACK 进行回复。
  14. RstMaxack:启用或禁用接受窗外但回显最高 ACK 序列号的 RST。
  15. 欺骗 SynDrop:删除无效 SYN 数据包以防止欺骗。
  16. 显式拥塞通知 (ecn):它向数据的发送者发送网络拥塞状态的通知,并采取纠正措施纠正数据拥塞或数据损坏。
  17. 前向 RTO 恢复:在发生虚假重传输的情况下,拥塞控制配置将恢复到其原始状态。
  18. TCP 最大拥塞窗口 (maxcwnd):TCP 最大拥塞窗口大小是用户可配置的。
  19. 转发确认 (FACK):通过显式测量网络中未完成的数据字节总数,并帮助发件人(T1 或客户端)控制重新传输超时期间注入到网络的数据量,避免 TCP 拥堵。
  20. tcpmode:特定配置文件的 TCP 优化模式。

对于上述参数,请咨询1],以获取有关选择适当值的指导。 对于其余的,[TCP 优化 应适用于大多数情况。

静默地删除空闲连接

在 Telco 网络中,几乎 50% 的 Citrix ADC 设备的 TCP 连接处于空闲状态,并且设备发送 RST 数据包以关闭它们。通过无线电通道发送的数据包会不必要地激活这些通道,从而导致大量消息,从而导致设备生成大量服务拒绝消息。默认的 TCP 配置文件现在包括 DlophalfClodConnonNO 超时和 DropestconNO 超时参数,默认情况下这些参数是禁用的。如果您启用这两个功能,则无论是半关闭连接还是已建立的连接都不会导致在连接超时时将 RST 数据包发送到客户端。设备只是断开连接。

set ns tcpProfile nstcpprofile  -DropHalfClosedConnOnTimeout ENABLED

set ns tcpProfile nstcpprofile  -DropEstConnOnTimeout ENABLED