TCP配置
Citrix ADC设备的TCP配置可以在一个称为TCP配置文件的实体中指定,该实体是TCP设置的集合。然后,可以将TCP配置文件与希望使用这些TCP配置的服务或虚拟服务器相关联。
可以配置一个默认的TCP配置文件,以设置默认情况下全局应用于所有服务和虚拟服务器的TCP配置。
注意:
当一个TCP参数对于服务、虚拟服务器和全局具有不同的值时,最具体的实体(服务)的值具有最高优先级。Citrix ADC设备还提供了配置TCP的其他方法。请继续阅读以获取更多信息。
支持的TCP配置
Citrix ADC设备支持以下TCP功能:
防御TCP欺骗攻击
的思杰ADC的实现窗口衰减符合RFC 4953。
显式拥塞通知(ECN)
设备向数据发送方发送网络拥塞状态通知,并对数据拥塞或数据损坏采取纠正措施。ECN的Citrix ADC实现符合RFC 3168标准。
使用时间戳选项的往返时间度量(RTTM)
要使TimeStamp选项起作用,连接的至少一端(客户端或服务器端)必须支持它。的Citrix ADC实现时间戳
选项是RFC 1323兼容的。
检测虚假重传
这种检测可以使用TCP重复选择性确认(D-SACK)和转发rto恢复(F-RTO)来完成。如果存在虚假重传,拥塞控制配置将恢复到原始状态。D-SACK的Citrix ADC实现符合RFC 2883标准,而F-RTO则符合RFC 5682标准。
拥塞控制
此功能使用New-Reno, BIC, CUBIC, Nile和TCP Westwood算法。
窗口伸缩
这增加了TCP接收窗口大小超过其最大值65,535字节。
在配置窗口缩放之前需要考虑的几点
- 不要为比例因子设置一个很高的值,因为这可能会对设备和网络产生不利影响。
- 除非您清楚地知道为什么要更改窗口大小,否则不要配置窗口缩放。
- TCP连接中的两个主机在连接建立期间发送一个窗口缩放选项。如果只有连接的一侧设置了此选项,则不会对该连接使用窗口缩放。
- 同一会话的每个连接都是一个独立的窗口缩放会话。例如,当客户机的请求和服务器的响应流经设备时,可以在客户机和设备之间有窗口伸缩,而不需要在设备和服务器之间有窗口伸缩。
TCP最大拥塞窗口
窗口大小是用户可配置的。缺省值是8190字节。
选择性确认(SACK)
这使用数据接收器(Citrix ADC设备或客户端)通知发送方已成功接收的所有段。
转发确认(FACK)
此功能通过显式测量网络中未完成的数据字节总数来避免TCP拥塞,并帮助发送方(Citrix ADC或客户端)控制在重传超时期间注入网络的数据量。
TCP连接复用
此功能支持重用现有的TCP连接。Citrix ADC设备存储到重用池的已建立的TCP连接。每当接收到客户机请求时,设备都会检查重用池中是否有可用的连接,如果连接可用,则为新客户机提供服务。如果不可用,设备将为客户机请求创建一个连接,并将该连接存储到重用池。Citrix ADC支持HTTP、SSL和DataStream连接类型的连接复用。
动态接收缓冲
这允许接收缓冲区根据内存和网络条件进行动态调整。
MPTCP连接
客户端与Citrix ADC之间的MPTCP连接。Citrix ADC与后端服务器之间不支持MPTCP连接。MPTCP的Citrix ADC实现是RFC 6824兼容的。
通过命令行接口可以查看MPTCP的统计信息,如活跃的MPTCP连接数、活跃的子流连接数等。
在命令提示符下,输入以下命令之一显示MPTCP统计信息的摘要或详细摘要,或清除统计信息的显示:
Stat MPTCP
启动mptcp -detail
Clearstats基本
注意:
要建立MPTCP连接,客户机和Citrix ADC设备都必须支持相同的MPTCP版本。如果使用Citrix ADC设备作为服务器的MPTCP网关,则服务器不必支持MPTCP。当客户机启动一个新的MPTCP连接时,设备从SYN包中的MP_CAPABALE选项识别客户机的MPTPC版本。如果客户机的版本高于设备支持的版本,则设备会在SYN-ACK包的MP_CAPABALE选项中指出其最高版本。然后,客户端退回到较低的版本,并在ACK包的MP_CAPABALE选项中发送版本号。如果该版本是可支持的,则设备将继续MPTCP连接。否则,设备会退回到常规TCP。Citrix ADC设备不启动子流(MP_JOIN的)。设备期望客户端启动子流。
支持MPTCP中的附加地址通告(ADD_ADDR)
在MPTCP部署中,如果一个虚拟服务器绑定了一个IP集,该IP集有额外的虚拟服务器IP地址,那么附加地址发布(ADD_ADDR)功能会发布绑定到该IP集的虚拟服务器的IP地址。客户可以发起额外的MP-JOIN
sub流向发布的IP地址。
关于MPTCP ADD_ADDR功能需要记住的几点
- 最多可以发送10个IP地址
ADD_ADDR
选择。如果有10个以上的IP地址mptcpAdvertise
参数启用后,发布10个IP地址后,设备将忽略其余的IP地址。 - 如果将MP-CAPABLE子流发送到IP集中的某个IP地址,而不是主虚拟服务器IP地址,则在缺省情况下发布虚拟服务器IP地址
mptcpAdvertise
参数为虚拟服务器IP地址启用
配置更多地址发布(ADD_ADDR)特性,通过命令行方式发布额外的VIP地址
您可以配置MPTCP ADD_ADDR
IPv4和IPv6地址类型的功能。一般来说,单个IP集可以附加多个IPv4和IPv6 IP,并且可以在IP地址的任何子集上启用该参数。在ADD_ADDR特性中,只有使能了“mptcpAdvertise”选项的IP地址才会被发布,IP集中剩下的IP地址将被忽略。完成以下步骤来配置ADD_ADDR
特点:
- 添加IP集。
- 添加一个使能MPTCP advertise的虚拟服务器IP (VIP)类型的IP地址。
- 将IP地址与IP集绑定。
- 配置负载均衡虚拟服务器的IP集。
添加IP集
在命令提示符下,输入:
添加ipset [-td ]
例子:
添加ipset ipset_1
添加一个使能MPTCP advertise的虚拟服务器IP (VIP)类型的IP地址
在命令类型中:
add ns ip @ [-mptcpAdvertise (YES | NO)] -type
例子:
add ns ip 10.10.10.10 255.255.255.255 -mptcpAdvertise YES type VIP
为IP集绑定IP地址
在命令提示符下,输入:
绑定ipset
例子:
绑定ipset ipset_1 10.10.10.10
配置IP集为负载均衡虚拟服务器
在命令提示符下,输入:
设置lb vserver [-ipset ]
例子:
设置lb vserver lb1 -ipset ipset_1
示例配置:
Add ipset ipset_1 Add ns ip 10.10.10.10 255.255.255.255 -mptcpAdvertise YES -type VIP bind ipset ipset_1 10.10.10.10 set lb vserver lb1 -ipset ipset_1
使用ADD_ADDR功能配置发布外部IP地址
如果发布的IP地址属于外部实体,并且Citrix ADC设备需要发布该IP地址,则必须启用“MPTCPAdvertise”参数,禁用状态和ARP参数。
完成以下步骤进行配置ADD_ADDR
用于对外发布IP地址。
- 添加一个使能MPTCP advertise的虚拟服务器IP (VIP)类型的IP地址。
- 将IP地址与IP集绑定。
- 将IP集与负载均衡虚拟服务器绑定
添加一个使能MPTCP advertise的外部IP地址,类型为virtual server IP (VIP)
在命令提示符下,输入:
add ns ip @ [-mptcpAdvertise (YES | NO)] -type -state DISABLED -arp DISABLED
例子:
add ns ip 10.10.10.10 255.255.255.255 -mptcpAdvertise YES -type VIP -state DISABLED -arp DISABLED
为IP集绑定IP地址
在命令提示符下,输入:
绑定ipset
例子:
绑定ipset ipset_1 10.10.10.10
配置IP集为负载均衡虚拟服务器
在命令提示符下,输入:
设置lb vserver [-ipset ]
例子:
设置lb vserver lb1 -ipset ipset_1
示例配置:
add ns ip 10.10.10.10 255.255.255.255 -mptcpAdvertise YES -type VIP state DISABLED -arp DISABLED bind ipset ipset_1 10.10.10.10 set lb vserver lb1 -ipset ipset_1
通过使用Citrix ADC GUI向启用MPTCP的客户机发布IP地址
完成以下步骤,将IP地址通告给已启用MPTCP的客户端:
- 导航到系统>网络> ip。
- 在详细信息窗格中,单击添加。
- 在创建IP地址页,选择MPTCP的广告复选框,设置参数。缺省情况下,禁用该功能。
提取TCP/IP路径覆盖选项并插入客户端-IP HTTP报头
提取TCP/IP路径覆盖和插入客户端-IP HTTP头。通过覆盖网络传输数据通常使用连接终止或NAT (Network Address Translation),在这种情况下,源客户端的IP地址会丢失。为了避免这种情况,Citrix ADC设备提取TCP/IP路径覆盖选项,并将源客户端的IP地址插入HTTP报头。通过头中的IP地址,web服务器可以识别建立连接的源客户端。提取的数据在TCP连接的生命周期内是有效的,因此,这可以防止下一跳主机再次解释该选项。此选项仅适用于启用了客户端- ip插入选项的web服务。
TCP分段卸载
卸载TCP分段到网卡。如果将该选项设置为“AUTOMATIC”,则在支持网卡的情况下,TCP分段将卸载到网卡上。
与客户端同步TCP握手cookie
用于抵御SYN flood攻击。您可以启用或禁用SYNCOOKIE
TCP与客户端的握手机制。禁用SYNCOOKIE
防止SYN
针对Citrix ADC设备的攻击保护。
学习MSS,为设备上配置的所有虚拟服务器启用MSS学习
支持的TCP参数
下表提供了在Citrix ADC设备上配置的TCP参数及其默认值的列表。
参数 | 默认值 | 描述 |
---|---|---|
窗口管理 | ||
TCP延迟ack定时器 | 100毫秒 | TCP延迟ACK超时时间,单位为毫秒。 |
TCP最小重传超时(RTO),单位为毫秒 | 1000毫秒 | 最小重传超时,以毫秒为单位,以10毫秒为增量指定(该值除以10必须得到一个整数) |
启动保持活动探测之前的连接空闲时间 | 900秒 | 在空闲超时时,静默丢弃TCP已建立的连接 |
TCP时间戳选项 | 禁用 | 时间戳选项允许精确的RTT测量。启用或禁用TCP时间戳选项。 |
多路径TCP会话超时 | 0秒 | MPTCP会话超时时间(秒)。如果未设置此值,则闲置。MPTCP会话在虚拟服务器的客户端空闲超时后刷新。 |
在空闲超时时,静默地丢弃半封闭连接 | 0秒 | 在空闲超时时,静默丢弃TCP半封闭连接。 |
在空闲超时时,静默地丢弃已建立的连接 | 禁用 | 在空闲超时时,静默地丢弃TCP已建立的连接 |
内存管理 | ||
TCP缓冲区大小 | 131072个字节 | TCP缓冲区大小是Citrix ADC上的接收缓冲区大小。这个缓冲区大小从Citrix ADC发布给客户端和服务器,它控制客户端和服务器向Citrix ADC发送数据的能力。默认缓冲区大小为8K,通常在与内部服务器群通信时增加它是安全的。缓冲区大小也受到Citrix ADC中实际应用层的影响,例如对于SSL端点,它被设置为40 K,对于压缩,它被设置为96 K。注意:必须设置缓冲区大小参数才能进行动态调整。 |
TCP发送缓冲区大小 | 8190个字节 | TCP发送缓冲区大小 |
TCP动态接收缓冲 | 禁用 | 启用或禁用动态接收缓冲。启用后,它允许根据内存和网络条件动态调整接收缓冲区。注意:必须设置缓冲区大小参数才能进行动态调整 |
TCP最大拥塞窗口(CWND) | 524288个字节 | TCP最大拥塞窗口 |
窗口缩放状态 | ENALBED | 启用或禁用窗口缩放。 |
窗口缩放系数 | 8 | 用于计算新窗口大小的因子。只有在启用窗口缩放时才需要此参数。 |
连接设置 | ||
点火电极探针 | 禁用 | 定期发送TCP KA (keep-alive)探测,检查对端是否处于up状态。 |
启动保持活动探测之前的连接空闲时间 | 900秒 | 在发送保持连接(KA)探测之前,连接处于空闲状态的持续时间,以秒为单位。 |
保持活动探测间隔 | 75秒 | 如果对等体没有响应,下一次KA探测前的时间间隔,单位为秒。 |
在断开连接之前错过的最大保持活动探针。 | 3. | 在假定对等端down之前,未被确认时发送的KA (keep-alive)探测数。 |
RST窗口衰减(欺骗保护)。 | 禁用 | 启用或禁用RST窗口衰减以防止欺骗。启用后,当序列号无效时,应答将带有纠正ACK。 |
接受带有最后确认序列号的RST。 | 启用 | |
数据传输 | ||
对PUSH包立即确认 | 启用 | 当收到带有PUSH标志的TCP报文时,立即发送ACK (positive acknowledgement)。 |
每个MSS的最大数据包数 | 0 | 在一个TCP数据段中允许的最大字节数 |
纳格尔的算法 | 禁用 | 内格尔算法解决了TCP传输中的小数据包问题。像Telnet这样的应用程序和其他需要将每次按键传递到另一端的实时引擎通常会创建小数据包。使用Nagle的算法,Citrix ADC可以缓冲这些小数据包并将它们一起发送,以提高连接效率。该算法需要与Citrix ADC中的其他TCP优化技术一起工作。 |
一个突发中允许的最大TCP段数 | 10海量存储系统(MSS)中 | 一次突发允许的最大TCP段数 |
进入队列的最大乱序数据包 | 300 | 乱序报文队列的最大大小。值为0表示没有限制 |
拥塞控制 | ||
TCP的味道 | 立方 | |
初始拥塞窗口(cwnd)设置 | 4海量存储系统(MSS)中 | 到服务器的TCP链路上可以突出的TCP报文的初始最大上限 |
TCP显式拥塞通知(ECN) | 禁用 | 显式拥塞通知(ECN)在不丢包的情况下提供网络拥塞的端到端通知。 |
TCP最大拥塞窗口(CWND) | 524288个字节 | TCP维护一个拥塞窗口(CWND),限制可能在端到端传输的未确认数据包的总数。在TCP中,拥塞窗口是决定任何时候可以未完成的字节数的因素之一。拥塞窗口是阻止发送方和接收方之间的链路因过多的流量而过载的一种方法。它是通过估计链路上有多少拥塞来计算的。 |
TCP Hybrid Start (HyStart) | 8个字节 | |
TCP最小重传超时(RTO),单位为毫秒 | 1000 | 最小重传超时,以毫秒为单位,以10毫秒为增量指定(该值除以10必须得到一个整数)。 |
TCP重包阈值 | 禁用 | |
突发速率控制 | 3. | TCP突发速率控制禁用/固定/动态。FIXED需要设置TCP速率 |
TCP速率 | 禁用 | TCP连接负载发送速率,单位为Kb/s |
TCP速率最大队列 | 0 | 当使用BurstRateControl时,以字节为单位的最大连接队列大小。 |
MPTCP | ||
TCP多路 | 禁用 | 多路径TCP (MPTCP)是对常规TCP的一组扩展,提供多路径TCP服务,使传输连接能够同时跨多条路径运行。 |
多路径TCP在预先建立的子流上丢弃数据 | 禁用 | 启用或禁用静默删除Pre-Established子流上的数据。启用后,DSS数据包将被静默丢弃,而不是在预先建立的子流上接收到数据时丢弃连接。 |
多路径TCP fastopen | 禁用 | 启用或禁用多路径TCP fastopen。启用后,DSS数据包在接收SYN握手的第三个ack之前被接受。 |
多路径TCP会话超时 | 0秒 | MPTCP会话超时时间(秒)。如果不设置此值,则在虚拟服务器的客户端空闲超时后刷新空闲的MPTCP会话。 |
安全 | ||
SYN欺骗防护 | 禁用 | 启用或禁用丢弃无效SYN报文,防止欺骗。禁用时,当收到SYN报文时,已建立的连接将被重置。 |
TCP Syncookie | 禁用 | 用于抵御SYN flood攻击。启用/禁用与客户端握手的SYNCOOKIE机制。禁用SYNCOOKIE可以防止Citrix ADC设备上的SYN攻击防护。 |
损失检测与恢复 | ||
重复选择确认(DSACK) | 启用 | Citrix ADC设备使用重复选择确认(DSACK)来确定重传是否发送错误。 |
正向RTO恢复(FRTO) | 启用 | 检测虚假的TCP重传超时。在重传由超时触发的第一个未确认的报文段后,TCP发送方的算法将监视传入的确认,以确定超时是否为假超时。然后它决定是发送新的段还是重传未确认的段。该算法有效地避免了不必要的重传,从而提高了TCP在虚假超时情况下的性能。 |
TCP正向确认(FACK) | 启用 | 开启或关闭FACK (Forward ACK)功能。 |
选择性确认(SACK)状态 | 启用 | TCP SACK解决了多个数据包丢失的问题,这降低了总体吞吐量。通过选择性确认,接收方可以通知发送方成功接收的所有报文段,从而使发送方只重传丢失的报文段。该技术有助于Citrix ADC提高整体吞吐量并减少连接延迟。 |
每次重传的最大数据包数 | 1 | 允许Citrix ADC控制在一次尝试中重传多少数据包。当Citrix ADC接收到部分ACK并且必须进行重传时,则考虑此设置。这不会影响基于RTO的重传。 |
TCP延迟ack定时器 | 100毫秒 | TCP延迟ACK超时时间,单位为毫秒 |
TCO优化 | ||
TCP优化模式 | 透明的 | TCP优化模式透明/端点 |
应用自适应TCP优化 | 禁用 | 应用自适应TCP优化 |
TCP分段卸载 | 自动 | 卸载TCP分段到网卡。如果设置为AUTOMATIC,则TCP分段将被卸载到网卡上,如果网卡支持它。 |
ACK聚合 | 禁用 | 启用/禁用ACK聚合 |
TCP Time-wait(或Time_wait) | 40秒 | 在释放关闭的TCP连接之前所经过的时间 |
断开RST上客户端和服务器的连接 | 禁用 | 断开客户端和服务器连接(如果有) |
将未完成的数据发送到另一端。 |
注意:当启用HTTP/2时,Citrix建议关闭TCP配置文件中的“TCP动态接收缓冲”参数。
设置TCP全局参数
Citrix ADC设备允许您指定适用于所有Citrix ADC服务和虚拟服务器的TCP参数值。这可以使用:
- 缺省TCP配置文件
- 全局TCP命令
- TCP缓冲特性
注:
的
recvBuffSize
从9.2版本开始,set ns tcpParam命令的参数已弃用。方法设置缓冲区大小bufferSize
参数。如果您升级到一个包含recvBuffSize
参数已弃用,则bufferSize
参数设置为默认值。在配置TCP配置文件时,请确保TCP
buffersize
参数小于或等于httppipelinebuffersize
参数。如果buffersize
参数的值大于httppipelinebuffersize
参数,则TCP有效负载可能会累积并超过HTTP管道缓冲区大小。这将导致Citrix ADC设备重置TCP连接。
缺省TCP配置文件
TCP配置文件,命名为nstcp_default_profile
用于指定在服务级或虚拟服务器级未提供TCP配置时使用的TCP配置。
注:
缺省的TCP配置文件不能配置所有的TCP参数。有些设置必须通过使用全局TCP命令来执行(参见下面的小节)。
默认配置文件不必显式绑定到服务或虚拟服务器。
配置缺省的TCP配置文件
使用命令行界面,在命令提示符下输入:
set ns tcpProfile nstcp_default_profile…< !——NeedCopy >
在GUI上,导航到系统>配置文件,点击TCP概要文件并更新nstcp_default_profile。
全局TCP命令
配置全局TCP参数的另一种方法是使用global TCP命令。除了一些唯一的参数外,该命令还重复了一些可以通过TCP配置文件设置的参数。对这些重复参数所做的任何更新都会反映在默认TCP配置文件中的相应参数中。
例如,如果使用这种方法更新SACK参数,则该值将反映在缺省TCP配置文件(nstcp_default_profile)的SACK参数中。
注意:
Citrix建议仅对默认TCP配置文件中不可用的TCP参数使用此方法。
配置全局TCP命令
使用命令行界面,在命令提示符下输入:
set ns tcpParam
在GUI上,导航到系统>设置,点击修改TCP参数更新所需的TCP参数。
TCP缓冲特性
Citrix ADC提供了一个称为TCP缓冲的特性,您可以使用它来指定TCP缓冲区的大小。该特性可以全局启用,也可以在服务级别启用。
注意:
缓冲区大小也可以在缺省的TCP配置文件中配置。如果TCP缓冲特性和缺省TCP配置文件中的缓冲区大小不同,则采用较大的值。
全局配置TCP缓冲特性
在命令提示符下输入:
启用ns mode TCPB
set ns tcpbufParam -size
-memLimit 在GUI上,导航到系统>设置,点击配置模式而且,选择TCP缓冲。
然后导航到系统>设置,点击修改TCP参数,为缓冲区大小和内存使用限制。
设置服务或虚拟服务器特定的TCP参数
通过使用TCP配置文件,可以为服务和虚拟服务器指定TCP参数。您必须定义一个TCP配置文件(或使用内置的TCP配置文件),并将该配置文件与适当的服务和虚拟服务器相关联。
注意:
您还可以根据需要修改缺省配置文件的TCP参数。
可以使用TCP缓冲特性指定的参数来指定服务级别的TCP缓冲区大小。
使用命令行接口指定服务或虚拟服务器级别的TCP配置
在命令提示符下,执行如下命令:
配置TCP配置文件。
set ns tcpProfile
…< !——NeedCopy > 将TCP配置文件绑定到服务或虚拟服务器。
设置服务 ....< !——NeedCopy >
例子:
> set service service1 -tcpProfileName profile1
绑定TCP配置文件和虚拟服务器。
设置lb vserver ....< !——NeedCopy >
例子:
>设置lbvserver lbvserver1 -tcpProfileName profile1
使用GUI指定服务或虚拟服务器级别的TCP配置
在GUI中,执行如下操作:
配置TCP配置文件。
导航到系统>配置文件>TCP概要文件,并创建TCP配置文件。
将TCP配置文件绑定到服务或虚拟服务器。
导航到交通管理>负载平衡>服务/虚拟服务器,并创建TCP配置文件,该配置文件应绑定到服务或虚拟服务器。
内置TCP配置文件
为了方便配置,Citrix ADC提供了一些内置的TCP配置文件。查看下面列出的内置配置文件,选择一个配置文件并按原样使用它或修改它以满足您的需求。您可以将这些概要文件绑定到所需的服务或虚拟服务器。
内置的配置文件 | 描述 |
---|---|
nstcp_default_profile | 表示设备上的默认全局TCP设置。 |
nstcp_default_tcp_lan | 用于后端服务器连接,其中这些服务器与设备位于同一局域网中。 |
nstcp_default_WAN | 对WAN部署很有用。 |
nstcp_default_tcp_lan_thin_stream | 类似于nstcp_default_tcp_lan配置文件。但是,这些设置是针对较小的数据包流进行调整的。 |
nstcp_default_tcp_interactive_stream | 类似于nstcp_default_tcp_lan配置文件。然而,它有一个减少延迟的ACK定时器和ACK打开把包设置。 |
nstcp_default_tcp_lfp | 对于客户端的长胖管道网络(WAN)非常有用。长管道网络具有长延迟、高带宽、最小丢包的线路。 |
nstcp_default_tcp_lfp_thin_stream | 类似于nstcp_default_tcp_lfp配置文件。但是,这些设置针对较小的数据包流进行了调优。 |
nstcp_default_tcp_lnp | 对于客户端的狭长管道网络(WAN)非常有用。长而窄的管网偶尔会有相当大的丢包现象。 |
nstcp_default_tcp_lnp_thin_stream | 类似于nstcp_default_tcp_lnp配置文件。但是,这些设置针对较小的数据包流进行了调优。 |
nstcp_internal_apps | 对设备上的内部应用程序很有用(例如,GSLB站点同步)。这包含针对所需应用程序的优化窗口缩放和SACK选项。此配置文件不应该绑定到内部应用程序以外的应用程序。 |
nstcp_default_Mobile_profile | 对移动设备很有用。 |
nstcp_default_XA_XD_profile | 用于Citrix虚拟应用程序和桌面部署。 |
TCP配置样例
配置命令行接口示例如下:
防御TCP欺骗攻击
开启Citrix ADC对TCP欺骗攻击的防御功能。默认情况下,“rstWindowAttenuation”参数是禁用的。启用此参数是为了保护设备免受欺骗。如果启用,它会对无效序列号进行纠正确认(ACK)应答。取值包括Enabled、Disabled。
其中,RST窗口衰减参数保护设备免受欺骗。启用后,当序列号无效时,回复纠正ACK。
> set ns tcpProfile profile1 - rstwindowattenate ENABLED - spofsyndrop ENABLED完成> set lbvserver lbvserver1 -tcpProfileName profile1完成
显式拥塞通知(ECN)
在需要的TCP配置文件上启用ECN
> set ns tcpProfile profile1 -ECN ENABLED完成> set lbvserver lbvserver1 -tcpProfileName profile1完成
选择性确认(SACK)
在所需的TCP配置文件上启用SACK。
> set ns tcpProfile profile profile -SACK ENABLED完成> set lbvserver lbvserver1 -tcpProfile profile profile完成
转发确认(FACK)
在所需的TCP配置文件上启用FACK。
> set ns tcpProfile profile profile -FACK ENABLED > set lbvserver lbvserver1 -tcpProfile profile profile
窗口缩放(WS)
启用窗口缩放,并在需要的TCP配置文件上设置窗口缩放因子。
set ns tcpProfile profile profile -WS ENABLED -WSVal 9完成set lbvserver lbvserver1 -tcpProfile profile profile完成
最大段大小(MSS)
更新MSS相关配置。
> set ns tcpProfile profile1 - mss 1460 - maxPktPerMss 512完成> set lbvserver lbvserver1 - tcpprofilename profile1完成
说明:Citrix ADC学习的一个虚拟服务器的MSS。-
使Citrix ADC能够学习VSS并更新其他相关配置。
> set ns tcpParam -learnVsvrMSS ENABLED -mssLearnInterval 180 -mssLearnDelay 3600 Done
TCP维生
使能TCP保持连接功能,并更新其他相关配置。
> set ns tcpProfile profile1 -KA ENABLED -KaprobeUpdateLastactivity ENABLED -KAconnIdleTime 900 -KAmaxProbes 3 -KaprobeInterval 75
完成
>设置lbvserver lbvserver1 -tcpProfileName profile1
完成
缓冲区大小-使用TCP配置文件
指定缓冲区大小。
> set ns tcpProfile profile1 -bufferSize 8190
完成
>设置lbvserver lbvserver1 -tcpProfileName profile1
完成
缓冲区大小-使用TCP缓冲特性
启用TCP缓冲特性(全局或服务),然后指定缓冲区大小和内存限制。
> enable ns feature TCPB
完成
> set ns tcpbufParam -size 64 -memLimit 64
完成
MPTCP
使能MPTCP,然后配置MPTCP的可选配置。
> set ns tcpProfile profile1 -mptcp ENABLED
完成
> set ns tcpProfile profile -mptcpDropDataOnPreEstSF ENABLED -mptcpFastOpen ENABLED -mptcpSessionTimeout 7200
完成
> set ns tcpparam -mptcpConCloseOnPassiveSF ENABLED -mptcpChecksum ENABLED -mptcpSFtimeout 0 -mptcpSFReplaceTimeout 10
-mptcpMaxSF 4 -mptcpMaxPendingSF 4 - mptcpcppendingjointhreshold 0 -mptcpRTOsToSwitchSF 2 - mptcppusebackupondss ENABLED
完成
拥塞控制
配置所需的TCP拥塞控制算法。
set ns tcpProfile profile1 -flavor Westwood
完成
>设置lbvserver lbvserver1 -tcpProfileName profile1
完成
动态接收缓冲
在所需的TCP配置文件上启用动态接收缓冲。
> set ns tcpProfile profile1 -dynamicReceiveBuffering ENABLED
完成
>设置lbvserver lbvserver1 -tcpProfileName profile1
完成
MPTCP中对TCP快速开放(TFO)的支持
Citrix ADC设备现在支持TCP快速开放(TFO)机制,用于建立多路径TCP (MPTCP)连接并加速数据传输。该机制允许在MPTCP连接初始握手过程中以SYN和SYN- ack报文的形式携带子流数据,也允许在MPTCP连接建立过程中被接收节点消费数据。
有关更多信息,请参见TCP快速打开的话题。
支持可变TFO Cookie大小的MPTCP
Citrix ADC设备现在允许您在TCP配置文件中配置可变长度的TCP快速打开(TFO) cookie,其最小大小为4字节,最大大小为16字节。通过这样做,设备可以将SYN-ACK包中配置的TFO cookie大小响应给客户机。
在TCP配置文件中配置TFO (TCP Fast Open) cookie
在命令提示符下,输入:
set tcpProfile nstcp_default_profile -tcpFastOpenCookieSize
例子
8 . set tcpProfile nstcp_default_profile -tcpFastOpenCookieSize
使用GUI在TCP配置文件中配置TCP快速打开(TFO) cookie
- 导航到配置>系统>概要文件。
- 在详细信息窗格中,转到TCP概要文件页签,选择TCP配置文件。
- 在配置TCP配置文件页,设置TCP快速打开饼干大小。
- 点击好吧和完成。
SYN-Cookie超时时间
的TCPSyncookie
在TCP配置文件中默认启用该参数,以提供基于RFC 4987的对SYN攻击的鲁棒保护。如果您需要适应与此保护不兼容的自定义TCP客户端,但仍希望确保在受到攻击时有回退,则使用synAttackDetection
方法为您处理此问题SYNCookie
一段时间内的行为由内部决定autosyncookietimeout
参数。。
使用命令行方式配置SYN ACK重传最大阈值。
在命令提示符下,输入:
set ns tcpparam [-maxSynAckRetx ] set ns tcpparam [-maxSynAckRetx 150]
通过命令行方式配置自动SYN cookie超时时间
在命令提示符下,输入:
设置ns tcpparam [-autosyncookietimeout
设置ns tcpparam [-autosyncookietimeout 90]
断开客户端和服务器连接
启用后,当有未完成的数据要发送到另一端时,该参数将断开客户端和服务器连接。缺省情况下,禁用该参数。
set ns tcpparam -delinkClientServerOnRST ENABLED已完成
配置慢启动阈值参数
可以使用慢启动阈值slowStartthreshold
参数来配置tcp-slowstartthreshold
的值尼罗河
拥塞控制算法的变体。可接受的参数值为最小= 8190
和Max = 524288
。默认值为524288
。TCP变体尼罗河
,下的TCP配置文件不再依赖于maxcwnd
参数。你必须配置slowStartthreshold
的参数。尼罗河
变体。
在命令提示符中输入:
set tcpprofile nstcp_default_profile -slowstartthreshold 8190 Done