ECS实例通过安全组控制流量进出,安全组会记录建立的每个连接,以确保数据包能够按照预期正确送达。如果连接长时间处于空闲状态,可能会耗尽实例的连接资源,从而导致新的连接无法被正常建立及管理,甚至造成数据包丢失。您可以在弹性网卡上配置针对空闲连接的超时时间,以释放不再活跃的连接所占用的资源。
ECS实例的连接
连接又称网络会话,是客户端与服务器建立连接并传输数据的过程。
网络五元组(包括源IP、目的IP、源端口、目的端口、协议)唯一确定一个连接,ECS实例的连接数包括通过TCP、UDP、ICMP协议建立的连接。如果您的业务对网络并发敏感,请根据业务需求选择明确标注了连接数参数的实例。详细信息,请参见实例规格族。
空闲连接的超时时间
在TCP协议中,如果一个已经建立的连接在一段时间内没有任何数据交换活动,这并不意味着连接已被关闭;实际上,它可能只是暂时没有活跃的数据传输。然而,长时间存在的空闲连接会占用服务器资源,并可能导致达到最大并发连接数限制,从而阻碍新的连接请求被接受。
UDP本身是无状态的,但它依旧会在一定程度上占用系统的网络带宽、内存以及端口等资源,特别是在大规模应用或者高频率的数据交换场景中。
合理设置ECS上的TCP空闲连接超时时间、UDP流的超时时间对于优化网络性能、资源利用率以及安全性都至关重要:
提高资源利用率:如果一个TCP连接长时间处于空闲状态而没有被关闭或重用,它会占用服务器的内存等资源。通过适当缩短空闲连接的超时时间,可以更有效地释放这些资源给其他活动连接使用。
为UDP会话设置适当的超时策略也有助于防止不必要的资源消耗。
安全增强:较短的超时设置有助于减少攻击者利用长期存在的连接进行恶意活动的机会,比如发起DDoS攻击或是尝试破解密码等。
不过,设置过短的超时时间可能会影响需要较长时间保持连接的应用程序正常工作,如某些文件传输服务等,建议您在更改之前,先充分了解ECS上所运行的服务特点及其对网络条件的具体要求。
配置空闲连接超时时间
为了最大限度地减少连接中的延迟问题,应该确保数据流经过的所有设备的超时设置尽量相匹配。
当您的ECS实例配合NLB/CLB使用时,建议您配置实例网卡的超时时间与NLB/CLB设置的监听中的空闲连接超时时间相匹配。关于NLB/CLB配置监听及连接空闲时间,请参见NLB监听。
修改连接的超时时间,仅对新建连接生效,已建立的连接不受影响。
ECS当前支持配置以下三种类型的空闲连接超时时间:
已建状态的TCP连接超时时间:处于
ESTABLISHED
状态的空闲TCP连接的超时时间。在一个TCP连接上,如果没有数据传输发生的时间长度超过了该值,则该连接将被认为不再活跃,并可能被网络设备(如路由器、防火墙等)或者操作系统自动关闭。单位为秒。最小值为30秒,最大值为910秒, 默认值为910秒。
可以设置为30、60、80、100、200、300、500、700或910。
TCP等待与关闭超时时间:处于
TIME_WAIT
状态、CLOSED
状态的TCP连接的超时时间。在TCP连接关闭过程中,需要进行四次挥手来正常关闭连接,当一端发送了 FIN(结束)标志位,表示自己没有数据要发送时,它会等待对方的ACK(确认)。如果在这个等待过程中没有收到ACK,就会开始计时,这个计时的时间就是TCP等待与关闭超时时间。单位为秒。最小值为3秒,最大值为15秒。
默认值为3秒。
说明如果您的ECS实例配合NLB/CLB使用,
TIME_WAIT
状态的连接超时时间默认值为15秒。可以将
TIME_WAIT
、CLOSED
状态的TCP连接超时时间同步设置为3s~15s内的任意整数值。
UDP流超时时间:UDP流超时时间是指在接收或发送UDP数据包的过程中,对于一个被认为是 “流”(可以是一系列相关的 UDP 数据包,如实时视频流中的 UDP 数据包序列)的时间限制。如果在这个时间内没有收到或发送新的UDP数据包,就可能会认为这个UDP流已经结束或者出现异常。单位为秒。
最小值为10秒,最大值为100秒。
默认值为30秒。
说明如果您的ECS实例配合NLB/CLB使用,默认值为100秒。
可以设置为10、20、30、60、80或100。
具体操作
您可以在单独创建弹性网卡时或者在网卡创建后,查看并配置连接超时时间:
单独创建网卡时配置
您也可以通过CreateNetworkInterface创建弹性网卡,并通过指定ConnectionTrackingConfiguration参数下的TcpEstablishedTimeout、TcpClosedAndTimeWaitTimeout、UdpTimeout分别配置对应连接的超时时间。
登录ECS管理控制台。
在左侧导航栏,选择
。在页面左侧顶部,选择目标资源所在的资源组和地域。
单击创建弹性网卡。
在创建弹性网卡页面的SESSION超时时间部分,您可以调整默认值进行设置。
编辑网卡时配置
您也可以通过ModifyNetworkInterfaceAttribute修改弹性网卡属性,并通过指定ConnectionTrackingConfiguration参数下的TcpEstablishedTimeout、TcpClosedAndTimeWaitTimeout、UdpTimeout分别配置对应连接的超时时间。
您可以通过DescribeNetworkInterfaceAttribute,并指定Attribute为connectionTrackingConfiguration查看指定网卡的连接超时时间。
登录ECS管理控制台。
在左侧导航栏,选择
。在页面左侧顶部,选择目标资源所在的资源组和地域。
单击目标弹性网卡的ID,进入弹性网卡详情页。
在SESSION超时时间部分,可以看到网卡的已建状态的TCP连接超时时间、TCP等待与关闭超时时间、UDP流超时时间。您可以点击
,进行修改。