三層交換機處理器收發包問題綜合講解_第1頁
三層交換機處理器收發包問題綜合講解_第2頁
三層交換機處理器收發包問題綜合講解_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、三層交換機處理器收發包問題綜合講解交換芯片和網絡處理器完成, CPUS 本上不參與交換和路由過程, 主要完成管理和控制交換芯片的功能。在這種情況下,CPU 勺負載主要來自以下幾個方面:協議的定時驅動、用戶的配置驅動、外部事件的驅動。其中,外部事件的驅動最為隨機,無法預料。典型的外部事件包括端口的連接/斷開(Up/Down),媒體訪問控制(MAC 地址消息的上報(包括學習、老化、遷移等),CPU!過直接辿器存取(DMA)攵到包,CPU 通過 DMAS 包等。在以上所列的外部事件中,又以 CPU!過 DMA 攵到包之后的處理最為復雜。因為數據包由低層上送到上層軟件時,各協議的處理動作千差萬別,可能

2、會涉及到發包、端口操作、批量的表操作等。所以,只有處理好 CPU 勺收發包的相關問題,才能使相關的上層協議正常交互,從而使第三層交換機穩定、高效地運行。可能涉及到的問題以下就 CPU攵發包可能涉及的各個方面分別說明, 下面的分析都基于典型的 CPUt發包機制:CPU口分隊歹 1,通過 DM 底收,采用環形隊列等。CPU 勺負載與收包節奏控制根據第三層交換機處理數據包的能力,決定單位時間上送到 CPU 的包的個數;決定了單位時間上送多少個包給 CPUt,再考慮上送數據包的節奏,假設通過評估,確定了單位時間上送 CPLK 據包的上限,例如每秒 x 個數據包。(1)勻速上報 CPU數據包勻速上報 C

3、PUW,對 CPUJI 列的沖擊較小,而且對 CPLR 列的緩沖能力要求不高,CPl列不必做得很大。(2)突發(Burst)方式上報 CPU交換芯片(采用 ASIC)一側的硬件接收隊列和 DM 咕存空間中的環形隊列,一起賦予了第三層交換機一定的緩沖能力(針對上送 CPU 勺數據包)。利用這個緩沖能力,我們可以把控制周期適當放長,并設定控制的粒度(單位控制周期內 CPU 收報個數的上限),采用類似于電路中負反饋的機制動態地使能和關閉 CPU 攵包功能。這樣就在宏觀上實現了對數據包上送 CPU率的控制。另外,如果交換芯片(采用 ASIC)支持基于令牌桶算法的 CPUS 口出方向流量監管或整形功能2

4、-3,且監管或整形的最小閾值可以滿足CPU艮速的需要, 則可以利用這個功能控制數據包上送CPUB節奏,減小 CPUB 負載。這樣軟件的處理就簡化了很多。CPU口隊列的長度規劃如果僅考慮第三層交換機 CP 聞口的緩沖能力,CPU口隊列當然是越長越好,但是必須兼顧對其他功能以及性能的影響。針對不同的 ASIC 芯片,需要具體問題具體分析。零拷貝零拷貝是指在整個數據包的處理過程中, 使用指針做參數, 不進行整個數據包的拷貝。這樣可以大大提高 CPU 勺處理效率。使用零拷貝后,會一定程度上降低軟件處理的靈活性,我們會面臨到這樣的問題:如果協議棧需要更改一個數據包的內容,會直接在接收緩存(buffer)

5、上修改,但是如果需要在數據包中刪除或添加字段(例如添加或刪除一層標簽(tag),即數據包的長度需要變化時,應該如何處理。添加或刪除字段,必然會導致數據包頭一側或包尾一側的位置發生移動,如果包尾一側移動,問題比較簡單,只要數據包總長度不超過 buffer 邊界即可。由于通常此類操作都靠近包頭的位置,如果包頭一側移動,效率會比較高,所以協議棧在處理時可能更傾向于在包頭一側移動, 這時就需要驅動在分配 buffer 時做一些處理:(1)接收數據包時,頭指針不能指向 buffer 邊界,需要向后偏移一定裕量,同時單個 buffer 的大小也必須兼顧到最大傳送單元(MTU 劉該裕量。(2)釋放數據包時

6、buffer 首指針需要作歸一化處理目前第三層交換機涉及到的外部中斷主要由交換芯片產生,交換芯片主要的外部中斷包括 DMA!作(如收到包、發包結束、新地址消息等等)和一些出錯消息。如果中斷請求過于頻繁,中斷服務程序(ISR)和其他進程之間頻繁地上下文切換會消耗大量 CPU 時間。如果有持續大量的中斷請求,CPU始終處于繁忙狀態,各種協議得不到足夠的調度時間,從而導致協議狀態機超時等嚴重故障。為了避免事件觸發頻率不可控的問題, 可以使用輪詢機制, 通常的做法是用 CPUS 時器觸發原先由外部中斷觸發的ISR,由于定時器觸發的間隔是固定的,所以 ISR 執行的頻率得到了控制,避免了上述的問題。輪詢

7、和外部中斷相比, 只是節奏可控 (外部中斷的節奏取決于外部事件發生的頻率,CPU可控)。但是,輪詢也有其不可避免的缺點響應慢。不能滿足某些實時性要求較高的功能。另外,人們會發現用 ping 命令檢測第三層交換機 3 層接口大包時,使用輪詢方式的第三層交換機比使用中斷方式的第三層交換機的時延明顯要大。如果能通過某種機制,避免持續、大量的中斷請求,則既可以保證 CPU會過于繁忙,又保留了中斷實時處理的優點。典型的會產生大量中斷事件的行為是 CPU收數據包和 MAC*址消息上報。 以收包為例,在前面“CPU 負載與收包節奏控制”部分提到的 Burst 方式就是根據實時的流量,控制接收 DMA 勺開關,這樣就達到了使中斷源受控的目的,這種類似負反饋的機制可以很好的避免持續的中斷事件上報 CPU總之,輪詢控制簡單,但實時性較差;中斷實時性好,但是使所有的中斷源受控有一定難度。在系統初始設計階段,我們需要綜合考慮需求以及芯片對外部事件的處理方式,來決定采用中斷或者輪詢方式,或者兩者兼用。隨著以太網相關技術的發展,交換芯片和網絡處理器的處理能力不斷被提升;相比之下,數據交換設備中 CP3 理性能的提升程度遠遠不及交換芯片和網絡處理器;同時數據交換設備支持的業務種類也在不斷增加,對 CPIB 載的業務量也有了更高的要求。 在這種情況下, 交換設備容量以及支持業

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論