吞吐量(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新建連線速率基本一致,主要的區別在於新建連線測試會立刻拆除建立的連線,而併發連線數測試不會拆除連線,所有已經建立的連線會保持住直到達到裝置的極限。
文章**:
CentOS iptables防火牆的基本應用講解
iptables是linux下不錯的防火牆軟體,本文主要給大家介紹下iptables的安裝 規則增加和清除 開放指定埠 遮蔽指定ip和ip段等centos下iptables的基本應用。yum install iptables 如果centos沒有預設安裝iptables,則執行上述命令。如何知道系統...
centos7關閉防火牆 防火牆的基本使用
檢視防火牆狀態 systemctl status firewalld.service 如圖 綠的running表示防火牆開啟 執行關閉命令 systemctl stop firewalld.service 再次執行檢視防火牆命令 systemctl status firewalld.service ...
centOS7永久關閉防火牆 防火牆的基本使用
檢視防火牆狀態 systemctl status firewalld.service 綠的running表示防火牆開啟 執行關閉命令 systemctl stop firewalld.service 再次執行檢視防火牆命令 systemctl status firewalld.service 如下圖...