999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

三層以太網交換機CPU收發包相關問題分析

2007-01-01 00:00:00趙振寧范力涵
中興通訊技術 2007年2期

摘要:三層以太網交換機發展迅速,一方面網絡設備的帶寬及交換容量大幅提升,另一方面設備所支持的協議種類也隨著用戶的需求不斷增加。如何在大業務量的網絡環境下確保各設備之間協議包的正常交互,是以太網交換機設計面臨的重要問題。文章以基于ASIC的三層以太網交換機為例,從CPU負載、軟硬件隊列配置、CPU和交換芯片的通信機制等方面入手,討論并分析在多進程環境中與CPU收發包功能相關的一些典型問題,得到解決辦法。解決方法對于網絡處理器(NP)同樣適用。

關鍵詞:三層以太網交換機;CPU;中斷;輪詢;直接存儲器存取;隊列調度

Abstract: The L3 Ethernet switch has developed rapidly. On one hand, it has greatly improved bandwidth and exchange capability of network equipment. On the other hand, network equipment is required to support more protocol types with the increasing of user demands. For design of an Ethernet switch, it is important to ensure normal interaction of protocol packets between different devices under a network environment of massive traffic. Taking the L3 Ethernet switch that uses Application Specific Integrated Circuits (ASIC) chip as an example, this article analyzes several typical issues about packet receiving and sending by CPU under a multi-progress environment, including CPU load, software and hardware queue settings, and communication mechanism between CPU and the switching chip. It then gives solutions to these issues, which may also work for the Network Processor (NP).

Key words: L3 Ethernet switch; CPU; interrupt; polling; DMA; queue and schedule

在當前的三層以太網交換設備中,報文的二層交換和三層路由主要由交換芯片和網絡處理器完成,CPU基本上不參與交換和路由過程,主要完成管理和控制交換芯片的功能[1]。

在這種情況下,CPU的負載主要來自以下幾個方面:協議的定時驅動、用戶的配置驅動、外部事件的驅動。其中,外部事件的驅動最為隨機,無法預料。典型的外部事件包括端口的連接/斷開(Up/Down),媒體訪問控制(MAC)地址消息的上報(包括學習、老化、遷移等),CPU通過直接存儲器存取(DMA)收到包,CPU通過DMA發包等。

在以上所列的外部事件中,又以CPU通過DMA收到包之后的處理最為復雜。因為數據包由低層上送到上層軟件時,各協議的處理動作千差萬別,可能會涉及到發包、端口操作、批量的表操作等。所以,只有處理好CPU的收發包的相關問題,才能使相關的上層協議正常交互,從而使交換機穩定、高效地運行。

1 可能涉及到的問題

以下就CPU收發包可能涉及的各個方面分別說明。

下面的分析都基于典型的CPU收發包機制:CPU端口分隊列,通過DMA接收,采用環形隊列等。

1.1 CPU的負載與收包節奏控制

根據交換機處理數據包的能力,決定單位時間上送到CPU的包的個數;決定了單位時間上送多少個包給CPU后,再考慮上送數據包的節奏。

假設通過評估,確定了單位時間上送CPU數據包的上限,例如每秒x個數據包。

圖1給出了兩種典型的處理手段:勻速上報CPU、突發(Burst)方式上報CPU,下面分別分析一下這兩種方式的優劣:

(1)勻速上報CPU

數據包勻速上報CPU時,對CPU隊列的沖擊較小,而且對CPU隊列的緩沖能力要求不高,CPU隊列不必做得很大。

(2)突發(Burst)方式上報CPU

交換芯片(采用ASIC)一側的硬件接收隊列和DMA內存空間中的環形隊列,一起賦予了交換機一定的緩沖能力(針對上送CPU的數據包)。利用這個緩沖能力,我們可以把控制周期適當放長,并設定控制的粒度(單位控制周期內CPU收報個數的上限),采用類似于電路中負反饋的機制動態地使能和關閉CPU收包功能。這樣就在宏觀上實現了對數據包上送CPU速率的控制。另外,如果交換芯片(采用ASIC)支持基于令牌桶算法的CPU端口出方向流量監管或整形功能[2-3],且監管或整形的最小閾值可以滿足CPU限速的需要,則可以利用這個功能控制數據包上送CPU的節奏,減小CPU的負載。這樣軟件的處理就簡化了很多。

1.2 CPU端口隊列的長度規劃

如果僅考慮交換機CPU端口的緩沖能力,CPU端口隊列當然是越長越好,但是必須兼顧對其他功能以及性能的影響。針對不同的ASIC芯片,需要具體問題具體分析。

1.3 零拷貝

零拷貝是指在整個數據包的處理過程中,使用指針做參數,不進行整個數據包的拷貝。這樣可以大大提高CPU的處理效率。

使用零拷貝后,會一定程度上降低軟件處理的靈活性,我們會面臨到這樣的問題:如果協議棧需要更改一個數據包的內容,會直接在接收緩存(buffer)上修改,但是如果需要在數據包中刪除或添加字段(例如添加或刪除一層標簽(tag)),即數據包的長度需要變化時,應該如何處理。

添加或刪除字段,必然會導致數據包頭一側或包尾一側的位置發生移動,如果包尾一側移動,問題比較簡單,只要數據包總長度不超過buffer邊界即可。由于通常此類操作都靠近包頭的位置,如果包頭一側移動,效率會比較高,所以協議棧在處理時可能更傾向于在包頭一側移動,這時就需要驅動在分配buffer時做一些處理:

(1)接收數據包時,頭指針不能指向buffer邊界,需要向后偏移一定裕量,同時單個buffer的大小也必須兼顧到最大傳送單元(MTU)和該裕量。

(2)釋放數據包時buffer首指針需要作歸一化處理(如圖2所示)。

1.4 中斷/輪詢

目前交換機涉及到的外部中斷主要由交換芯片產生,交換芯片主要的外部中斷包括DMA操作(如收到包、發包結束、新地址消息等等)和一些出錯消息。如果中斷請求過于頻繁,中斷服務程序(ISR)和其他進程之間頻繁地上下文切換會消耗大量CPU時間。如果有持續大量的中斷請求,CPU會始終處于繁忙狀態,各種協議得不到足夠的調度時間,從而導致協議狀態機超時等嚴重故障。

為了避免事件觸發頻率不可控的問題,可以使用輪詢機制,通常的做法是用CPU定時器觸發原先由外部中斷觸發的ISR,由于定時器觸發的間隔是固定的,所以ISR執行的頻率得到了控制,避免了上述的問題。

輪詢和外部中斷相比,只是節奏可控(外部中斷的節奏取決于外部事件發生的頻率,CPU不可控)。但是,輪詢也有其不可避免的缺點——響應慢。不能滿足某些實時性要求較高的功能。另外,人們會發現用ping命令檢測交換機3層接口大包時,使用輪詢方式的交換機比使用中斷方式的交換機的時延明顯要大。

如果能通過某種機制,避免持續、大量的中斷請求,則既可以保證CPU不會過于繁忙,又保留了中斷實時處理的優點。

典型的會產生大量中斷事件的行為是CPU接收數據包和MAC地址消息上報。以收包為例,在前面“CPU負載與收包節奏控制”部分提到的Burst方式就是根據實時的流量,控制接收DMA的開關,這樣就達到了使中斷源受控的目的,這種類似負反饋的機制可以很好的避免持續的中斷事件上報CPU。

總之,輪詢控制簡單,但實時性較差;中斷實時性好,但是使所有的中斷源受控有一定難度。在系統初始設計階段,我們需要綜合考慮需求以及芯片對外部事件的處理方式,來決定采用中斷或者輪詢方式,或者兩者兼用。

1.5 多進程環境中外部事件的處理機制

常見的外部事件(中斷事件)包括收到包、包發送完(這里指的都是CPU收發包),包括收到MAC地址消息、MAC表操作完成等。

如果把各類中斷事件的處理放在一個進程里,就人為地造成了各個事件耦合性增強,增加了各種事件相互制約的機會。

在多任務操作系統中,為了能更靈活地處理各個事件,減少事件之間的子相互制約關系,各種事件應當盡可能地單獨起進程,或者根據處理方式的不同劃分為幾個進程,至少用單個進程來處理是不合適的。

1.6 協議包保護和CPU保護

對于基于ASIC的交換機,協議包保護是指利用ASIC芯片的某些機制,把特定的協議包指定到特定的端口隊列上去,保證其經DMA隊列上送CPU的優先級;CPU保護是指盡量減少不必要的數據包對CPU的沖擊。

實現協議包保護的必要條件:

(1)CPU端口必需支持嚴格優先級(SP)或者帶權重的羅賓環(WRR)的調度算法。

(2)交換芯片必需具有較強的流分類能力,且可以給不同的流指定不同的端口隊列。

在系統方案設計時我們需要兼顧對協議報文的保護和對CPU的保護,應該盡量做到:

(1)保證CPU收包通道和發包通道的暢通。

(2)精確匹配,按需選取。充分利用ASIC芯片的訪問控制列表(ACL)功能,盡量精確地匹配各類協議報文。必要時需要匹配到4層字段[4]。

實現以上幾點時,應兼顧其他功能及整機性能的限制。

1.7 效率降低的避免

在多任務操作系統中,各種事件需要用盡量短的時間片處理完成,以保證其他任務有足夠的機會得到調度。所以我們在調用任何函數時都要考慮其執行效率。除了算法本身會影響執行效率之外,頻繁地訪問某些硬件也相當耗時,而這一點往往容易被忽略。

2 結束語

隨著以太網相關技術的發展,交換芯片和網絡處理器的處理能力不斷被提升;相比之下,數據交換設備中CPU處理性能的提升程度遠遠不及交換芯片和網絡處理器;同時數據交換設備支持的業務種類也在不斷增加,對CPU承載的業務量也有了更高的要求。在這種情況下,交換設備容量以及支持業務種類的大幅提升和有限的CPU資源之間的矛盾會日益凸顯。因此,做好CPU和交換芯片以及網絡處理器接口的緩沖管理、隊列調度以及流量監管,合理利用CPU資源,是保證數據交換設備安全、穩定運行的前提,也是目前及將來數據交換設備開發的重要課題。

3 參考文獻

[1] 陳曉, 范成法, 過仕好. 數據交換網絡設備的CPU負載分析 [J]. 電信技術, 2004 (8):55-57.

[2] ITEF RFC 2697. A single rate three color marker [S]. 1999.

[3] ITEF RFC 2698. A two rate three color marker [S]. 1999

[4] Stevens W R. TCP/IP illustrated: Vol 1 [M]. Reading, MA,USA:Addison-Wesley,1994: Chapter3,6,11,13,17.

收稿日期: 2006-12-20

趙振寧,重慶大學通信工程專業畢業。中興通訊股份有限公司南京研究所軟件工程師,從事ZXR10以太網交換機產品的研發。

范力涵,中南大學控制理論與控制工程專業碩士畢業。中興通訊股份有限公司南京研究所軟件高級工程師,從事高端以太網交換機研發、設計和管理。先后參與國家“863”項目和國家自然科學基金項目多項,曾獲得湖南省科技進步一等獎和三等獎。

陳曉,南京航空航天大學畢業。中興通訊股份有限公司南京研究所系統工程師,曾參與ZXB10 ATM交換機研發,ZXR10 以太網交換機的研發、設計和管理,現負責城域以太網業務交換機的預研工作。

主站蜘蛛池模板: 国产剧情国内精品原创| 久久亚洲中文字幕精品一区| 日本国产在线| 久久精品一品道久久精品| 中文字幕天无码久久精品视频免费 | 91精品国产无线乱码在线| 国产亚洲一区二区三区在线| 久久精品嫩草研究院| 五月天福利视频| 国产精品人成在线播放| 91亚洲国产视频| 手机在线免费毛片| 国产亚洲精品自在久久不卡| 又粗又硬又大又爽免费视频播放| 毛片视频网| 欧美高清国产| 免费人成在线观看成人片| 不卡视频国产| 手机成人午夜在线视频| 欧美一区福利| 中国美女**毛片录像在线| 亚洲天堂成人| 久久精品亚洲热综合一区二区| 99er这里只有精品| 少妇精品网站| 热99精品视频| 国产无码制服丝袜| 中文字幕66页| 综合网久久| 欧洲日本亚洲中文字幕| 乱系列中文字幕在线视频| 内射人妻无套中出无码| 国产AV毛片| 伊人久久福利中文字幕| 最新精品国偷自产在线| jizz在线观看| 中文字幕人成人乱码亚洲电影| 波多野吉衣一区二区三区av| 中文字幕波多野不卡一区| 最新加勒比隔壁人妻| 一区二区三区国产精品视频| 欧美成人一区午夜福利在线| 国产亚洲精品资源在线26u| 99热这里只有精品国产99| 欧美色伊人| 国产三级a| 一边摸一边做爽的视频17国产| 日韩欧美高清视频| 国产日韩久久久久无码精品| 在线观看国产精品第一区免费| 影音先锋亚洲无码| 强乱中文字幕在线播放不卡| 国产一级在线观看www色| 91综合色区亚洲熟妇p| 五月婷婷综合在线视频| 国产精品成人久久| av在线5g无码天天| 五月婷婷导航| 国产福利2021最新在线观看| 久久综合亚洲色一区二区三区| 日本a∨在线观看| 日韩A∨精品日韩精品无码| 女人一级毛片| 国产精品视频免费网站| 欧美性久久久久| 久久黄色一级视频| 国产AV无码专区亚洲A∨毛片| 毛片网站在线播放| 黄色福利在线| 午夜视频www| 国产主播一区二区三区| 另类综合视频| 九九精品在线观看| 亚洲一区二区黄色| 国产91视频观看| 免费又爽又刺激高潮网址 | 久久国产精品影院| 国产福利一区二区在线观看| 亚洲中文字幕在线观看| 国产在线一区视频| 一本一道波多野结衣一区二区| 亚洲嫩模喷白浆|