思科路由器設備轉發數據包的常用方式
思科路由器的市場表現非常不錯,這里我們主要分析了思科路由器設備轉發數據包的常用方式。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,思科路由器的ethernet、fast ethernet、serial接口默認采用的就是fast switching。我們可以用ip route-cache命令,在接口上啟用fast switchingshow 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系列路由器或者思科路由器。命令: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地址等等信息,而是直接從緩存中讀取,從而使轉發速度得以大大提高