吞吐量是衡量一款防火墻或者路由交換設備的最重要的指標,它是指網絡設備在每一秒內處理數據包的最大能力。吞吐量意味這臺設備在每一秒以內所能夠處理的最大流量或者說每一秒內能處理的數據包個數。設備吞吐量越高,所能提供給用戶使用的帶寬越大,就像木桶原理所描述的,網絡的最大吞吐取決于網絡中的最低吞吐量設備,足夠的吞吐量可以保證防火墻不會成為網絡的瓶頸。舉一個形象的例子,一臺防火墻下面有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一個頁面,最后采用三次握手或者四次握手關閉連接。測試儀通過持續地模擬每秒大量用戶連接去訪問服務器以測試防火墻的最大極限新建連接速率。
硬件防火墻的性能指標有:
吞吐量(Throughput)
時延(Latency)
新建連接速率(Maximum TCP Connection Establishment Rate)
并發連接數(Concurrent TCP Connection Capacity)
回答所涉及的環境:聯想天逸510S、Windows 10。