山石网科:防火墙的那些性能指标,你了解吗?

正如购买其他电子设备需要了解很多性能参数一样,选购一台防火墙也需要了解众多的的性能指标。那么作为防火墙的四项基本性能指标——吞吐、时延、新建、并发,都意味着什么,如何测算得出,到底可以带给用户什么好处?有什么意义?山石网科Hillstone将为您解读防火墙四大指标的含义以及测试方法。

吞吐量(Throughput)

吞吐量是衡量一款防火墙或者路由交换设备的最重要的指标,它是指网络设备在每一秒内处理数据包的最大能力。吞吐量意味这台设备在每一秒以内所能够处理的最大流量或者说每一秒内能处理的数据包个数。设备吞吐量越高,所能提供给用户使用的带宽越大,就像木桶原理所描述的,网络的最大吞吐取决于网络中的最低吞吐量设备,足够的吞吐量可以保证防火墙不会成为网络的瓶颈。举一个形象的例子,一台防火墙下面有100个用户同时上网,每个用户分配的是10Mbps的带宽,那么这台防火墙如果想要保证所有用户全速的网络体验,必须要有至少1Gbps的吞吐量。

吞吐量的计量单位有两种方式:常见的就是带宽计量,单位是Mbps(Megabits per second)或者Gbps(Gigabits per second),另外一种是数据包处理量计量,单位是pps(packets per second),两种计量方式是可以相互换算的。在进行对一款设备进行吞吐性能测试时,通常会记录一组从64字节到1518字节的测试数据,每一个测试结果均有相对应的pps数。64字节的pps数最大,基本上可以反映出设备处理数据包的最大能力。所以从64字节的这个数,基本上可以推算出系统最大能处理的吞吐量是多少。

很多路由设备的性能指标有一点就是标称xxMpps,所指的就是设备处理64字节的pps数。比如64字节的pps为100000pps,吞吐量通过换算为100000×(64+20) ×8/1000000= 67.2Mbps,拿这个结果计算1518字节的数据为100000×(1518+20) ×8/100000=1230.4Mbps。其中的20字节是指12字节的帧间距(IPG)以及8字节的前导码(7字节同步+1字节起始),测试每一个字节的吞吐量都需要将这20字节计算在内。通过前面的算式可以看出,我们即使不测试1518字节,也能够大致推算出设备最大的吞吐量是多少。但最终的结果只能小于这个结果。为什么会小于呢?因为很多设备因为接口数或者内部器件带宽的原因,限制了最大的带宽,这样设备的最大吞吐量就会远远低于推算的数值。不过既然得出了64字节的pps数,那么只要厂商标称的最大吞吐量低于推算的带宽,就基本可以认为这个标称值是可信的。

时延(Latency)

时延是系统处理数据包所需要的时间。防火墙时延测试指的就是计算它的存储转发(Store and Forward)时间,即从接收到数据包开始,处理完并转发出去所用的全部时间。在一个网络中,如果我们访问某一台服务器,通常不是直接到达,而是经过大量的路由交换设备。每经过一台设备,就像我们在高速公路上经过收费站一样都会耗费一定的时间,一旦在某一个点耗费的时间过长,就会对整个网络的访问造成影响。如果防火墙的延时很低,用户就完全不会感觉到它的存在,提升了网络访问的效率。

时延的单位通常是微秒,一台高效率防火墙的时延通常会在一百微秒以内。时延通常是建立在测试完吞吐量的基础上进行的测试。测试时延之前需要先测出每个包长下吞吐量的大小,然后使用每个包长的吞吐量结果的 90%-100%作为时延测试的流量大小。一般时延的测试要求不能够有任何的丢包。因为如果丢包,会造成时延非常大,结果不准确。我们测试一般使用最大吞吐量的95%或者90%进行测试。测试结果包括最大时延,最小时延,平均时延,一般记录平均时延。

新建连接速率(Maximum TCP Connection Establishment Rate)

新建连接速率指的是在每一秒以内防火墙所能够处理的HTTP新建连连接请求的数量。用户每打开一个网页,访问一个服务器,在防火墙看来会是1个甚至多个新建连接。而一台设备的新建连接速率越高,就可以同时给更多的用户提供网络访问。比如设备的新建连接速率是1万,那么如果有1万人同时上网,那么所有的请求都可以在一秒以内完成,如果有1万1千人上网的话,那么前1万人可以在第一秒内完成,后1千个请求需要在下一秒才能完成。所以,新建连接速率高的设备可以提供给更多人同时上网,提升用户的网络体验。

新建连接速率虽然英文用的是TCP,但是为了更接近实际用户的情况,通常会采用HTTP来进行测试,测试结果以连接每秒(connections per second)作为单位。为什么针对防火墙要测试这个数据呢?因为我们知道防火墙是基于会话的机制来处理数据包的,每一个数据包经过防火墙都要有相应的会话来对应。会话的建立速度就是防火墙对于新建连接的处理速度。新建连接的测试采用4-7层测试仪来进行,模拟真实的用户和服务器之间的HTTP教过过程:首先建立三次握手,然后用户到HTTP服务器去Get一个页面,最后采用三次握手或者四次握手关闭连接。测试仪通过持续地模拟每秒大量用户连接去访问服务器以测试防火墙的最大极限新建连接速率。

并发连接数(Concurrent TCP Connection Capacity)

最后介绍的是并发连接数,并发连接数就是指防火墙最大能够同时处理的连接会话个数。并发连接数指的是防火墙设备最大能够维护的连接数的数量,这个指标越大,在一段时间内所能够允许同时上网的用户数越多。随着web应用复杂化以及P2P类程序的广泛应用,每个用户所产生的连接越来越多,甚至一个用户的连接数就有可能上千,更严重的是如果用户中了木马或者蠕虫病毒,更会产生上万个连接。所以显而易见,几十万的并发连接数已经不能够满足网络的需求了,目前主流的防火墙都要求能够达到几十万甚至上千万的并发连接以满足一定规模的用户需求。

并发连接数虽然英文用的是TCP,但是为了更接近实际用户的情况,通常会采用HTTP来进行测试。它是个容量的单位,而不是速度。测试结果以连接(connections)作为单位。基本测试的方法和HTTP新建连接速率基本一致,主要的区别在于新建连接测试会立刻拆除建立的连接,而并发连接数测试不会拆除连接,所有已经建立的连接会保持住直到达到设备的极限。

安全市场产品众多,把防火墙数据公开供用户选择的厂商寥寥无几。用户选择一款产品不仅仅要知道防火墙的各个指标到底代表了什么含义,而且还明白什么样的产品是“我”所需要的,什么样的厂商是值得信赖的。高性能安全产品带给用户的不仅仅是性能的提升,而更体现了厂商对待产品以及对待用户的态度。就像开篇讲到的一样,购买任何产品我们都要做到明明白白消费,挑选真正“好”的产品。山石网科将一如既往,致力于为广大用户提供高性能、高可靠、易用的网络安全解决方案。