1、什么是負載
負載的意思就是單位時間內通信設備所承受的幀數或者報文數。說直白點,就是平常如果使用testcenter打流時你設置的往設備里面發的流量大小(單位可能是bps或者fps),比如testcenter上設置的流量大小為1000Mbps,那么此時對於通信設備來說,其負載就是1000Mbps或者根據包長換算成pps的單位。
對於通信設備來說,在理想情況下,設備的轉發能力或者轉發速率應該是隨着負載的增加而成線性增加的,(也就是說當我向設備打流速率從100fps提升到1000fps時,理論上來說設備應該能夠全部正常轉發這些流量,所以其轉發速率也應該能從100fps提升到1000fps);但是這只是理想情況下,實際情況是隨着負載的增加,設備cpu的處理能力以及報文過多產生的擁塞都會導致丟包,此時可能會導致設備的轉發速率急劇下降。
2、什么是吞吐量
網絡吞吐量:防火牆吞吐量是指在沒有幀丟失的情況下,設備能夠接收並轉發的最大數據速率。
吞吐量的定義是在沒有丟包的前提下,設備所能達到的最大轉發速率值。從定義可以看出來,吞吐量指標必須是在沒有丟包的前提下測試出來的。RFC2544上對吞吐量的測試有明確的指示,testcenter上也有專門測試吞吐量的程序,其測試方法大概就是使用二分法來找到沒有丟幀情況下的最大轉發速率(就是先以100%的負載打流,如果出現丟包,再以50%的負載打流,如果出現丟包,再以25%的負載打流。。。以此類推)。
3、什么是最大轉發速率
最大轉發速率的定義是設備所能達到的最大轉發速率值。最大轉發速率跟吞吐量很容易搞混,但是如果緊抓住定義,就比較好理解了。吞吐量是沒有丟包的前提下的最大轉發速率,而最大轉發速率則不關心丟不丟包,用下面一張圖就能很好的解釋清楚這兩者的區別。
從圖中可以看出,在直線部分,隨着負載的增加設備的轉發速率應該是成線性增加的;當負載在Load_T和Load_MaxF之間時,出現了第一個臨界點,因為此時出現了丟包(能看出丟包是因為轉發速率跟負載不相等,丟包數就是用Y-X),故Load_T點對應的轉發速率其實就是吞吐量;在該階段雖然出現了丟包,但是轉發速率還是隨着負載的增加而增加的;當負載超過Load_MaxF時,出現了第二個臨界點,因為此時轉發速率開始隨着負載的增加而下降,故Load_MaxF點對應的轉發速率其實就是最大轉發速率。
4、接口線速轉發的包速率
線速轉發是指在滿載的情況下,無任何丟幀的轉發速率。以一個全雙工GE接口為例,其接口的速率為1000Mbps,通常計算接口線速轉發速率時會以最短包長(也就是64字節)來進行計算,那么此時包轉發速率的計算公式就是:1000Mbps/(8*(64+12+8))=1.488Mpps。也就是說一個ge口,當處理64字節包長的報文時,其能達到的最大線性轉發速率是1.488Mpps。
這里對該公式做一個簡單的說明,(64+12+8)的意思是在以太網中的報文發送出去時,在每個報文之間都會有12字節的幀間隙以及8字節的前導碼,加起來一共20字節的開銷,這些開銷是不算在報文內的。所以在testcenter中設置流量大小時,當設置流量為1024000bps時,如果包長是固定128字節的話,此時包速率應該是1024000/8/128=1000fps,但是你會發現在testcenter上看到的流量大小卻不是1000fps,而是1024000/8/(128+12+8)=864fps,也就是說testcenter上設置的速率會把20字節的幀間隙跟前導碼計算進去,這點需要注意。
負載和吞吐量 個人理解
負載是打的流被設備/應用接收的速率(成功接收),吞吐量是不發生丟包情況下的最大處理的數據包速率(成功處理完發送出去)。