您的位置:首页 > 其它

防火墙的最大并发连接数

2011-11-22 14:37 162 查看
并发连接数是防火墙最常见的参数,是防火墙、代理服务器等设备的主要性能指标之一。在目前市面上常见防火墙设备的说明书中大家可以看到,从低端设备的500、1000个并发连接,一直到高端设备的数万、数十万并发连接,存在着好几个数量级的差异。那么,并发连接数究竟是一个什么概念呢?它的大小会对用户的日常使用会产生什么样的影响?下面就这几个相关问题作一些比较深入的探讨。

一、并发连接数的概念

最大并发连接数是指的防火墙或代理服务器对其业务信息流的处理能力,是防火墙能够同时处理的点对点连接的最大数目,它反映的是防火墙设备对多个连接的访问控制能力和连接状态跟踪能力。这个参数的大小可以直接影响到防火墙所能支持的最大信息点数。需要阐明的一点是,在上述“并发连接数”的概念陈述中所提到的“连接”和“点对点连接”并没有局限于狭义的TCP连接(connection-oriented)和信息点-信息点通信(point-point communication),而是泛指IP层或IP层以上各种传输层、会话层、应用层信息流,所以它同样也包括了UDP会话(connectionless);另外,多址广播组的通信同样也被按照(多播源,多播组地址)的形态归纳成一个连接进行处理。

二、并发连接表中的内容

并发连接表是防火墙用以存放并发连接信息的地方,这个表将由防火墙系统在启动后动态进程内存空间中分配,该表的大小也就是防火墙所能支持的最大并发连接数。不同的厂家在各自的防火墙设备中对该数据表有不同的数据结构实现,但从普遍意义上来看,一般的状态包过滤型(Stateful-Inspection)防火墙的并发连接表的每一个表项都要至少包含以下内容:

1. 源IP地址;

2. 源端口号;

3. 目的IP地址;

4. 目的端口号;

5. 协议类型;

6. 连接状态;

7. 流量统计和时间戳信息;

8. NAT转换信息;

9. 连接许可信息;

10. 身份认证信息;

11. ***通道相关信息(如果支持***的话);

由于连接表的表项中能容纳了大量的连接信息,因此每个表项可能占用200止400字节的内存空间,这对防火墙系统的整个内存资源来说是一个不容忽视的消耗。

三、并发连接表对系统性能的影响

大的并发连接表可以增大防火墙最大并发连接数,允许防火墙支持更多的客户终端;但是与此同时,过大的并发连接表会带来以下负面影响:

1. 过大的并发连接表会造成大量内存空间的消耗;

2. 在相同的数据结构和检索方式情况下,大的并发连接表会增大防火墙系统对表项的搜索时间,增大防火墙对报文处理的转发延迟;

3. 不考虑客户网络客观情况而盲目增大系统并发连接表,会造成表空间继而内存资源的大量闲置浪费;

4. 由于并发连接表对内存的占用,会造成防火墙系统本身得不到足够的内存资源。尽管虚拟内存可以解决内存的紧张问题,但是虚拟内存依赖于硬盘与内存页之间的数据映射切换,在读写速度上难以与物理真实内存相提并论。

四、防火墙产品并发连接数所受的限制

尽管看上去,防火墙等类似产品的并发连接数似乎是越大越好,但是在实际设计中,产品设计师们却需要考虑更多的事情:

并发连接数的增大意味着对系统内存资源的消耗以每个并发连接表项占用300字节计算, 1,000个并发连接将占用300byte * 1000 ≈ 0.29 M内存空间,10,000个并发连接将占用300byte * 10000 ≈ 2.9 M内存空间,100,000个并发连接将占用300byte * 100000 ≈ 29M内存空间,而如果真的试图实现1,000,000个并发连接的话(有的厂家在其宣传资料中声称其产品可以支持1,000,000个并发连接),那么这个产品就需要为此提供至少300byte * 1000000 ≈ 290 M内存空间!并发连接数的增大应当充分考虑CPU的处理能力。

CPU的主要任务是把网络上的流量从一个网段尽可能快速地转发到另外一个网段上,并且在转发过程中对此流量按照一定的访问控制策略进行许可检查、流量统计、访问审计等操作,这都要求防火墙对并发连接表中进行快速的搜索并找到相应表项进行更新读写。如果不顾CPU的实际处理能力而贸然增大系统的并发连接表,那么势必会影响防火墙对连接请求的处理延迟->造成某些连接超时->更多的连接报文将被重发->更多的连接超时->从而形成雪崩效应,严重时可以致使整个防火墙系统崩溃。

物理链路的实际承载能力通常会严重影响防火墙发挥出其对海量并发连接的处理能力

虽然目前很多防火墙都提供了10/100/1000M的网络接口,但是,由于防火墙通常都部署在Internet出口处,在客户端PC与目的资源中间的路径上,总是存在着瓶颈链路——该瓶颈链路可能是2M专线,也可能是512K乃至64K的低速链路。这些拥挤的低速链路根本无法承载太多的并发连接,所以即便是防火墙能够支持大规模的并发访问连接,它也无法发挥出其原有的性能。

五、实际应用产生的并发连接峰值

应当根据网络环境的具体情况和个人不同的上网行为习惯来回答这个问题:不同规模的网络会产生不同大小的并发连接;用户习惯于何种网络服务以及如何使用,同样也会产生不同的并发连接。

在各常见网络协议中,产生并发连接数最多的业务是WEB浏览(http协议),而产生并发连接相对较少的协议则当属Ftp和Email应用。

但是,不能简单的以一个协议或应用产生的最大并发连接数来断言它对防火墙并发连接表的占用率。这是因为并发连接表的占用率决定于两个因素:其一是产生的并发连接表项,其二是该并发连接表项在表中维持存在的时间,即该连接存活的时间。之所以要引入并发连接维持时间,是因为每个连接对并发连接表项的占用不是永久的,而是在连接终止后由防火墙自动释放该表项,从而可以用来记录其他新的连接信息。

所以,为了正确反映并发连接表的占用情况,在下文中将给出并发连接表占用率计算公式。

六、实际应用对并发连接表的占用率计算

首先给出公式一:

某应用程序对并发连接表的占用率 = ∮t2 t1n(t)*(t-t1) (公式一);

其中,n是在某个时间段[t1,t2]内该应用程序产生的并发连接数目实时统计数目,它是t的函数;t是位于此时间段[t1,t2]内的一个时间点;

经过对公式一的简化,可以对并发连接表占用率按照下面的公式二进行计算:

某应用程序对并发连接表的占用率 = 并发连接数 * 连接维持时间 (公式二);

在公式二中,连接维持时间会被防火墙按照不同的协议(TCP、UDP、IP)而进行不同的计算:

协议

类型

连接维持时间

计算方式

备注

TCP

即该连接中第一个SYN包与最后一个FIN-ACK之间的间隔时间。

对于不正常终止的连接,按照缺省或预设time-out阀值进行处理:在该阀值时间内,如果在此连接上没有出现后继报文,那么认为此连接终止,并以此计算连接维持时间。

UDP

该连接中第一个报文与最后一个报文之间的间隔时间。

在管理员所配置的UDP time-out值时间内,如果在该连接上没有出现后继报文,那么认为此连接终止,并以此计算连接维持时间。

IP上其他协议

该连接中第一个报文与最后一个报文之间的间隔时间。

在管理员所配置的IP time-out值时间内,如果在该连接上没有出现后继报文,那么认为此连接终止,并以此计算连接维持时间。

现在结合公式二,重新认识在本文第四部分中所列出的各种应用对防火墙并发连接表的占用情况。

应用服务名称

协议

端口

连接维

持时间

备注

Web

HTTP1.0 Close

80

非常短

与浏览器窗口打开的时间无关,在传输完页面内容后即告终结。Http1.1 Keepalive方式虽然维持时间较长,但是它可以将多个资源汇聚在一个连接中进行传输,减少连接建立所带来的延迟并能够最大限度的降低对并发连接数的消耗。

HTTP1.1 Close

80

非常短

HTTP1.1 Keepalive

80

稍长

Ftp

Ftp Command

21

始终维持

随客户端程序的终止而终止。

Ftp Data

20

传输时维持

根据数据传输的多少而不同。

Email

Pop3

110

短时

收Email时会适当延长一些。

Smtp

25

短时

发Email时会适当延长一些。

Oicq

HTTP

80

短时,但频繁重复建立。

用以广告内容的更新。

UDP

8000

始终维持

用以与服务器发送keep-alive。

UDP

Random

很随机

数目不定,与网友收发消息。

Telnet

Telnet

23

始终维持

随客户端程序的终止而终止。

从上表中可以看出,虽然网络客户端程序(如IE浏览器、OUTLOOK)可能会在用户PC窗口桌面上长时间运行,但是其所产生的连接却只存活很短的时间,因此这些应用所产生的连接对防火墙并发连接表的占用是很短暂的。根据不同的链路状况和服务器的响应时间,IE所产生的http连接维持时间大约在0~10秒钟之间。过长的连接维持时间通常意味着服务器响应延迟或传输延迟太大,往往会令用户难以忍受从而放弃此次连接请求。

现在假设一种极端情况:某用户同时运行了上表中所列出的所有应用程序,而且所有应用程序同时发出所有连接的话,该用户产生的并发连接数将达到其峰值SUM_peak=8.7+14+3+3.3+5+1=35,即www_sohu+www_sina+Email+Ftp+Oicq+Telnet的并发连接总和峰值。这是一种非常极端的情况,通常在用户日常使用中很难出现——因为:

(1)某用户同时启动所有这些应用的可能性很小;

(2)即使同时启动了所有的这些应用,那么这些应用同时发出连接的概率非常小;

(3)网段中所有用户同时启动所有这些应用的可能性更小;

(4)网段中所有用户的全部应用同时发出连接没有实际意义上的可能性;

(5)并发连接峰值是在非常苛刻的实验室环境下才可以达到的理论数值。而在实际应用中——充分的、合理的考虑到并发连接存活周期的影响因素——由于大多数连接的维持存活周期非常短(如http连接和pop3、smtp连接),所以从统计角度上来说,并发连接数/每用户的等效数值SUM_statistical = SUM_peak * 0.3将是一个非常充分、宽松的等效换算公式;

因此,每个用户所需要的并发连接数= 35 * 0.3 = 10.5个,这是一个比较合理、科学的统计估值。

七、寻求客户投资和实际需求之间的平衡点

高并发连接数的防火墙设备通常需要客户更多的设备投资,这是因为并发连接数的增大牵扯到数据结构、CPU、内存、系统总线和网络接口等多方面因素。如何在合理的设备投资和实际上所能提供的性能之间寻找一个黄金平衡点将是网络设计者的一个重要任务。按照并发连接数来衡量方案的合理性是一个值得推荐的办法。以每个用户需要10.5个并发连接来计算,一个中小型企业网络(1,000个信息点以下,容纳4个C类地址空间)大概需要10.5 * 1000 = 10500个并发连接,因此支持20,000~30,000最大并发连接的防火墙设备便可以满足需求;大型的企事业单位网络(比如信息点数在1,000~10,000之间)大概会需要10.5 * 10000 = 105000个并发连接,所以支持100,000~120,000最大并发连接的防火墙就可以满足企业的实际需要;而对于大型电信运营商和ISP来说,电信级的千兆防火墙(支持120,000~200,000个并发连接)则是恰当的选择。

为较低的需求而采用高端的防火墙设备将造成用户投资的浪费,同样为较高的客户需求而采用低端设备将无法达到预计的性能指标。利用网络整体上的并发连接需求来选择适当的防火墙产品可以帮助网络设计人员快速、准确的定位所需要的产品,避免对单纯某一参数“愈大愈好”的盲目追求,缩短设计施工周期,节省企业的开支。

补充一句题外话:在利用并发连接数指标选择防火墙产品的同时,产品的综合性能、厂家的研发力量、资金实力、企业的商业信誉和经营风险以及产品线的技术支持和售后服务体系等都应当纳入网络设计人员的视野,将多方面的因素结合起来进行综合考虑,切不可盲目的听信某些厂家广告宣传中的大并发连接的宣传,要根据自己业务系统、企业规模、发展空间、自身实力等因素多方面考虑。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息