新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 路由器背板的IPv6之變

        路由器背板的IPv6之變

        ——
        作者: 時間:2006-07-04 來源: 收藏

          已經從實驗室走出并開始規模商用,目前Internet上運行有數以萬計的交換機、等IPv4設備,但這些現有設備由于要么采用低性能的純軟件設計、要么采用不可升級的純硬件技術,難以滿足對的支持,而采用處理器技術的新一代則可以通過對處理器重新編程從而實現對的支持。當多個線路接口卡組成一個大容量系統時,就必須通過交換背板來互連多個線卡。常用的背板交換系統無論是Crossbar無阻塞交換陣列還是基于以太網的交換背板,在IPv4時代都很好地滿足了設備性能要求。然而當應對IPv6時,看似和IPv4或IPv6并無多大關系的背板交換系統是否可以一成不變的拿來為IPv6系統服務呢?

          IPv4的背板交換

          以武漢烽火網絡公司自主研發設計的高端路由器Fengine R8000系列架構為例。R8001采用多線卡設計,數據包的轉發流程在邏輯上分為入方向和出方向。入方向首先從線路接口芯片中接收數據包并進行數據包緩存,判斷校驗邏輯對數據包進行數據鏈路層和網絡層的協議分析,根據不同的協議類型將數據包遞交給不同的上層協議處理模塊。入方向的主要任務是路由查找,根據目的IP地址在轉發表項中查找該數據包對應的出接口以及下一跳地址。理論上對一個數據包的路由查找、鏈路層封裝以及附加處理都可以在入方向完成,但在分布式路由系統中,為了系統的穩定性、維護的方便性,通常將相對獨立的模塊單獨設計,并分布在不同的處理單元中,如路由協議的計算由主控單元完成,而鏈路層封裝需要的ARP(地址轉換協議)只需要在本地線卡執行,并且由于其僅僅和數據包的出方向線卡相關,因此在出方向線卡上維護的ARP地址緩存只需要與本線卡有關,而其他線卡不需要。出方向主要完成對IP數據包的鏈路層再封裝,之后一個被系統處理完畢的數據包即可根據入方向查找轉發表得到的出端口從相應的物理端口發送出去。在此我們注意到,從入方向到出方向,需要攜帶的信息為出端口和下一跳兩個必備的基本信息,以及優先級等其他一些輔助信息,而這些信息在多數系統中是通過附加在原始數據包的頭部作為有效數據的一部分經過交換背板到達出方向線卡。

          交換背板的單端口速率應不低于線卡的最大處理能力,這樣才能保證交換通道不會成為系統的瓶頸。在采用以太網作為交換的系統中,交換背板的單端口速率通常和線卡的最大處理能力一致,如采用的10Gbps網絡處理器的線卡對應的交換系統應采用單端口速率為10Gbps的交換芯片。假定網絡處理器從線路中以10Gbps的速率接收數據包,如果這些數據包全部需要通過交換背板而進入其他線卡,此時要保證不丟包,就必須使發往交換端口的速率不超過10Gbps。為滿足這一條件,必須使發往交換端口的數據包的長度不得大于原始的數據包長度。例如從線路接口以線速(速率為V:bps)收到N個長度為L(單位byte)的數據包,在不考慮空閑字節的情況下,有如下關系:

          當包的長度不變或者變小的情況下,具有與線卡最大處理速率相同的交換端口便可以線速接收來自線卡的數據包;反之,如果包長度增加,線卡發送給交換端口的數據速率就超過了交換端口的處理能力,必然造成丟包。

          從上面的分析知道數據包在從入方向到出方向必須要增加下一跳和出接口等基本信息,下一跳在IPv4中為一個IP地址,即4字節,出接口則至少一個字節,因此如果將這些至少5個字節的信息添加到原始數據包頭部,則通過背板的數據包長度必然要增加,線速處理必然受到影響。幸運的是根據分布式路由設計原則,數據包的鏈路層信息只在入方向解析,而出方向不需要原始數據包的鏈路層信息,因此在入方向將數據包發往交換端口前完全可以將數據包的鏈路層信息剝掉。以太網的鏈路層為14個字節,如果剝掉鏈路層而添加上下一跳地址等信息,則完全可以做到新數據包的長度不超過原始數據包長度。在采用以太網交換技術作為背板時,還需要添加6個字節的以太網MAC地址作為交換芯片的尋址關鍵字,但長度仍不會超過原始數據包長度。因此交換系統的線速性能得以保證。

          IPv6路由器的背板交換

          正是由于IPv4的下一跳地址只有4個字節,再加上出接口等信息,所添加的頭部小于以太網的鏈路層頭部14個字節,因此通過交換背板的包長度小于原始數據包的長度,因而交換系統的線速性能得以保證;但當系統處理IPv6的數據包時,由于IPv6路由的下一跳地址為一個IPv6地址即16個字節,再加上出接口信息必定超過以太網的鏈路層頭部,這樣原始數據包在按照目前IPv4的處理方法發往交換背板時,新的數據包長度必然要大于原始數據包長,因此交換端口的接收能力必然會成為系統性能的一個瓶頸。

          常用的背板交換系統有Cross-bar交換和基于以太網的交換兩種,每種方式在針對IPv6的處理時采用的方法不同。

          1.Crossbar交換系統

          在Crossbar交換體系中,目的線卡的尋址是通過將實際線卡所在的物理槽位號寫進crossbar接口的寄存器中,或者將槽位號以有效數據的形式發送出去,再由交換單元來識別。由于實際系統的槽位數一般是有限的若干個線卡數,用一個字節即可表示256個槽位,對于一個單系統來說足夠了。這樣再加上16個字節的IPv6下一跳地址和出接口,因而添加在數據包頭部的信息有18個字節;而原始數據包的以太網首部為14個字節,因此既便把鏈路層首部全部去掉,新的數據包比原始數據包仍會多出4個字節。例如對于以太網的最小包長64字節來說,發送給交換系統的數據包實際上為68字節。

           線速轉發時,以太網幀還包括12個字節的IFG(幀間隔)以及8個字節的前導碼,因此包長為L字節的以太網幀的滿線速吞吐量為:

          其中V為接口的速率,單位為bps。

          因此當系統線速接收64字節以太網幀后以68字節發送時系統效率為:

          隨著數據包長的增加,因交換開銷多出的4個字節可以忽略,而在實際系統中對于長包的處理能力都有一定的裕量,因此在實測系統中對于較長的包如500字節以上,都可以達到線速。

          在上述分析中所有以太網的幀長中包含有4字節的CRC(循環冗余校驗)開銷,在長距離傳輸中該開銷用來在接收端對收到的數據包進行是否有誤碼的判斷。但在Crossbar交換系統中由于是系統內部的板卡之間互連,并不需要類似CRC的誤碼判別,因此在以太網接收端檢驗CRC后即可將該字段剝掉,這樣對于一個L長度的原始數據包經過IPv6路由處理后發往交換端口時長度剛好等于L,進而交換背板的線速能力得以保證。

          2.基于以太網的交換系統

          以太網交換的基本原理是根據以太網幀的目的MAC地址進行尋址。在分析IPv4系統時我們注意到,在將數據包發往交換端口時除了基本信息下一跳地址和出接口外,必須再增加6個字節的MAC地址用于尋址,而且對于IPv4來說這種處理方法仍能保證交換系統的線速。但在IPv6系統中,從Crossbar交換系統的分析中可以看出,數據包長無法繼續進行壓縮,因此采用IPv4系統的方法在IPv6的以太網交換系統中無法保證線速。

          以太網交換芯片著名廠商Broadcom提出了一種用于背板交換的10Gbps接口協議,即Higig協議。該協議的核心思想是將用于尋址目的線卡的MAC地址用較少的字段代替,并與轉發需要的其他控制信息如組播廣播方式、VLAN控制、優先級等組合成一個12字節的首部,即Higig首部;同時為保證10Gbps鏈路交換時的線速性能,Higig首部放置在以太網幀MAC地址的前面,替代標準以太網幀前的8個前導碼,并將IFG縮減4個字節。因此對于一個長度L字節的以太網幀,加上12字節IFG和8字節前導碼,其總長度為L+20,而在轉換成Higig幀時其長度為L+8字節IFG+12字節Higig頭部,總長度保持不變,因而保證了在完成交換功能時仍能線速。

          從上述分析可以看出使用Higig協議實現IPv6的路由交換可以進一步提高性能,其方法是將目的卡號用Higig頭部承載,不占用有效數據開銷,而IPv6下一跳和出接口等基本信息18字節替代以太網的14個鏈路層首部信息,這樣新構造的有效數據包長僅比原始數據包長多4個字節,對于64字節數據包其性能可以達到95%。為進一步提高性能,可以在系統內部交換時將CRC的功能省掉,進而可以得到100%的線速性能。系統內部的高速交換鏈路雖然有很高的可靠性,但不能100%保證無誤碼,因此在實際系統設計時需要在性能和傳輸質量之間權衡,選擇最合理的策略 
          
         


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 泸州市| 明水县| 龙海市| 天水市| 博客| 玉林市| 泰来县| 泾阳县| 泰宁县| 洛川县| 林西县| 广昌县| 沂源县| 贞丰县| 库伦旗| 巍山| 磴口县| 南陵县| 黄冈市| 西林县| 象山县| 新乡县| 洮南市| 湘潭县| 江都市| 临城县| 卓尼县| 武隆县| 武义县| 盈江县| 苍梧县| 锡林浩特市| 道真| 监利县| 沧源| 嘉定区| 米易县| 侯马市| 樟树市| 会泽县| 青海省|