CISCO設備在轉發數據包時常用的五種交換方式

switching is the process of mapping layer 2 to layer 3 addresses and forwarding to a destination interface.
switching mode 有很多種,每種模式都有其特別的針對性,理解它們的不同對於我們合理的應用有着非常重要的意義.另外還有些QOS和Security技術需要特定的Switching mode.具體分析如下:
 
1 Process Switching(進程交換)
 
這是一種最基本的交換模式,在這種模式下,一條數據流(flow)中的第一個包(packet)將被置入系統緩存(system buffer).其目的地址將會拿到路由表中去查詢比對,路由器的處理器(CPU or Processer)同時將進行CRC校驗,檢查包是否正確.然後數據包的二層MAC地址將會被重寫,替換爲下一跳接口的MAC地址.
 
這樣的過程將會繼續,對這條數據流(flow)中的第2個、第3個數據包……相同的操作,包括查詢路由表、重寫MAC地址,CRC校驗等.
 
這種方式無疑是延遲最大的,因爲它要利用system buffer以及processor去處理每個收到的包.但是我們仍然有機會使用這種交換方式,比如在進行基於每個包的負載分擔時,或是debug ip packet時.
 
提了這麼多,如何打開process switching?因爲默認情況下,思科路由器會啓用fast switching或optimum switching或是cef switching,而不是process switching,所以我們只能通過:no ip route-cache來禁用fast switching,這在另一種意義上正是開啓process switching.
 
2 Fash Switching
 
快速交換要優於process switching,它採用了route cache(路由緩存)來存儲關於某條數據流(flow)的特定信息,當然會包括諸如目的MAC地址,目的接口等內容.這時我們只需要對一條數據流(flow)中的第一個包做process switching,並把信息存入cache,所有後續數據包,可以不必再中斷system processor去執行查詢等操作,直接從cache中提取目的接口,目的MAC地址等,這樣大大加速了包轉發速度.
 
fast switching在某些資料上可能被稱爲route-cache switching
 
思科1600、1700、2500、2600系列路由器的ethernet、fast ethernet、serial接口默認採用的就是fast switching.
 
我們可以用ip route-cache命令,在接口上啓用fast switching
 
show ip cache來檢查fast switching的相關信息.
 
3 Optimum and Distributed Switching
 
這兩種交換模式,從原理上來講都與fast switching極爲相似,比如optimum switching其實採用了一種經過優化的交換緩存(optimumed switching cache),它的速度要較平常cache要快.
 
distributed switching mode需要使用Versatile Interface Card這種硬件卡,又稱VIP card.它會自已保存一份route cache,這樣在查詢時就不必要等待使用共享的系統緩存了(shared system buffer),無論相對於fast switching還是optimum switching來講,都是比較快的.
 
這兩種模式一般只在思科高端設備上有所應用,比如7200系列路由器.或者12000系列路由器.
 
命令:ip route-cache optimum show ip cache optimum
 
4 Netflow switching
 
這種模式是最值得參考的,它完全基於其它switching mode,重點在於對流經的數據包進行計費、監控、網管.但不得不提的是,這種模式因爲也要存儲相關信息,經過統計,大致65536條數據流(flow)會耗費4MB的system buffer.
 
相關命令:
 
ip route-cache flow
 
show ip cache flow
 
ip flow-export  將NETFLOW審計的數據包轉發到指定設備.
 
5 Cisco Express Forwarding
 
思科CEF是最爲高效的一種三層協議,很多人容易對CEF產生誤解,所以我們仍然要說明它的來原.
 
CEF採用了基於硬件的平臺,它不僅僅是將數據都存入system buffer,而是將整個路由表、拓撲表,以及所有的下一跳地址、MAC地址全部進行"預存",只要路由表、拓撲表中存在的條目,無論是否有數據請求發往其目的地址,都會提前預讀取,預設置緩存.這樣,當有新的數據請求發送時,就不需要CPU去查詢目的接口,目的MAC地址等等信息,而是直接從緩存中讀取,從而使轉發速度得以大大提高.
 
相關命令:ip route-cache cef
 
show ip cef
 
show ip cef detail
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章