两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

分析數(shù)據(jù)分組的分析器的制作方法

文檔序號:7759507閱讀:281來源:國知局
專利名稱:分析數(shù)據(jù)分組的分析器的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種分析多數(shù)據(jù)分組以從中提取信息的分析器系統(tǒng)。在一個典型例子中,分析器系統(tǒng)可以被用于象以太網(wǎng)交換機的交換機,以處理收到的數(shù)據(jù)分組并由此獲得通過隊列管理和交換結(jié)構(gòu)(switching fabric)處理分組所需要的信息。
背景技術(shù)
最近互聯(lián)網(wǎng)技術(shù)的提高已經(jīng)改變了我們交換信息的方式?;ヂ?lián)網(wǎng)的普遍使用已經(jīng)導(dǎo)致了趨同觀念。不同的數(shù)據(jù)類型(例如視頻、聲音、圖像和文字)必須在相同網(wǎng)絡(luò)中交叉,這引起了為了在具有服務(wù)質(zhì)量支持的單個網(wǎng)絡(luò)上實時傳輸和數(shù)據(jù)通信的協(xié)議過剩。
這些協(xié)議主要是DiffServ、IntServ和MPLS,每個都需要在收到分組時將其實時地分類(例如由分組的類型決定)。如此分類的第一步是從一個分組中提取相應(yīng)的字節(jié),“分析”。這在Andrew STanenbaum,Prentice Hall 2ndEd,1998“計算機網(wǎng)絡(luò)”的第一章得到描述。
分析操作包括確定分組是否包括標記。例如,通常以太網(wǎng)分組會包括一個VLAN(虛擬局域網(wǎng))標記——比如指示與分組相聯(lián)系的VLAN的標記。VLAN標記通常是在以太網(wǎng)幀源MAC地址字段和長度/類型字段之間插入的4個字節(jié)。VLAN標記的頭兩字節(jié)總是被設(shè)置為0x8100值,第二個兩字節(jié)是控制信息(用戶優(yōu)先級字段、標準格式指示符和VLAN標識符)。
另一種類型的標記被SNAP協(xié)議定義(子網(wǎng)接入?yún)f(xié)議),其被引入以允許更老的幀和協(xié)議被壓縮成類型1LLC頭(Type 1LLC header),以使任何協(xié)議“偽IEEE適應(yīng)”。SNAP標記(或“snapf包封”)被直接置于以太網(wǎng)分組的標準長度/類型字段之后(其通常取值小于或等于1500),并且具有AA-AA作為其頭兩個字節(jié)。包含SNAP標記的分組被稱為SNAPped。
總之,以太網(wǎng)分組由被稱為是層的嵌套數(shù)據(jù)的級組成。被機器直接解譯的數(shù)據(jù)被稱為“層1”數(shù)據(jù)或物理層數(shù)據(jù)、“層2”或數(shù)據(jù)鏈路層,數(shù)據(jù)是LAN(局域網(wǎng))數(shù)據(jù),比如唯一確定LAN上的一個適配符的MAC(媒體訪問控制)數(shù)據(jù)。在“層2”的分組中可能有“層3”或網(wǎng)絡(luò)層,在除分組的IP源地址和目的地址之外的事物中定義的數(shù)據(jù)。在“層3”的分組中可能有“層4”數(shù)據(jù)、或傳輸層數(shù)據(jù),例如TCP(傳輸控制協(xié)議)數(shù)據(jù)。
考慮到可能相互作用的協(xié)議的巨大變化,提供一個更靈活的分析技術(shù)將是有益的。
另外,存在一種環(huán)境的變化,其將對分析大量同時收到的數(shù)據(jù)有用。把以太網(wǎng)的應(yīng)用作為一個例子,這樣的環(huán)境不僅限于以太網(wǎng)應(yīng)用,而是以以太網(wǎng)應(yīng)用為例子,在一個上文提及的未決的申請中,為使容易從FE轉(zhuǎn)換到GE以太網(wǎng),本發(fā)明者提出一種可配置的以太網(wǎng)交換機,其能起快速以太網(wǎng)和起千兆以太網(wǎng)交換機的作用。一個數(shù)據(jù)端口作為8個FE MAC接口或作為一個GE MAC接口來操作。在以前的情況,可能會發(fā)生8個FE接口同時接收分組的情況??赡苄枰谳斎攵丝谔峁┳銐虼蟮木彌_存儲器,這樣所有的這些分組能在處理任何一個分組開始之前被全部接收,但這增加所需緩沖存儲器的成本。若在接收分組的同時(“即時”)處理所有的分組,將很有用。

發(fā)明內(nèi)容
概括地講,本發(fā)明的第一個方面的分析器系統(tǒng)被設(shè)置成接收具有來自多個不同分組的交叉部分的數(shù)據(jù)流,并在它到達時從每個部分中提取數(shù)據(jù)。該分析器系統(tǒng)接收與定義其涉及哪個分組的每個數(shù)據(jù)部分的信息,并使用此信息識別要從數(shù)據(jù)流中提取的數(shù)據(jù)。
本發(fā)明的第二個方面涉及一種具有為分析器存儲數(shù)據(jù)的多個可編程寄存器的分析器系統(tǒng),分析器系統(tǒng)接收數(shù)據(jù)流并根據(jù)存儲在可編程寄存器中的偏移信息來從數(shù)據(jù)流中提取數(shù)據(jù)。
在本發(fā)明的任一個方面中,分析器系統(tǒng)最好包括掃描部分,其識別數(shù)據(jù)流中的數(shù)據(jù)的主結(jié)構(gòu)特征的位置(例如一個數(shù)據(jù)層開始的位置);以及至少一個分析器單元,其使用掃描部分的輸出和偏移信息(在本發(fā)明第二方面情況下至少部分來自可編程寄存器)以提取數(shù)據(jù)。偏移信息識別從結(jié)構(gòu)特征的位置提取的數(shù)據(jù)的偏移量。
掃描部分使用接收到的、關(guān)于數(shù)據(jù)流的信息,并檢查數(shù)據(jù)自身以確定數(shù)據(jù)流中分組的特征。例如,除確定分組中層2數(shù)據(jù)、層3數(shù)據(jù)和/或?qū)?數(shù)據(jù)中的一個或更多個的開始位置外,能進一步確定分組是否有VLAN標記(tagged)和/或SNAPed。
可能存在兩個分析器單元,一個根據(jù)預(yù)先確定的偏移量和來自掃描部分的結(jié)構(gòu)數(shù)據(jù)提取數(shù)據(jù),另一個根據(jù)來自掃描部分的結(jié)構(gòu)數(shù)據(jù)和可編程寄存器定義的偏移量提取數(shù)據(jù)。


現(xiàn)在僅僅為了說明的目的參考下面的附圖描述本發(fā)明的優(yōu)選特征圖1以電路圖示出作為本發(fā)明實施例的分析器系統(tǒng)的操作;圖2示出了如何通過第二分析器和圖1實施例中組合器實現(xiàn)密鑰的提??;圖3示出了要被該實施例分析的4種分組的結(jié)構(gòu);和圖4示出了圖1的分析器系統(tǒng)的電路圖。
具體實施例方式
首先參考圖1,其以圖例示出實施例的操作。
實施例處理具有包括層2數(shù)據(jù)2(在比特0處開始)和層3數(shù)據(jù)3實際上也包括層4數(shù)據(jù)的分組1的數(shù)據(jù)流,但為了此實施例的目的,層4數(shù)據(jù)可被簡單視為層3數(shù)據(jù)的一部分。層4數(shù)據(jù)的開始位置由作為層3數(shù)據(jù)一部分的字段給定。
數(shù)據(jù)流作為預(yù)定長度的一系列部分進入附圖1。數(shù)據(jù)流最好由一系列交叉并發(fā)分組組成。例如,可以達到8個分組,它們被分成部分(例如有時是8字節(jié)),不同數(shù)據(jù)分組的部分被交叉。使用關(guān)于部分是來自哪個分組的信息,在任何時間針對這些部分執(zhí)行圖1的步驟,。這意味著當(dāng)數(shù)據(jù)流到達時不需要緩沖全部的數(shù)據(jù)流。
操作的第一步(步驟5)是為了確定層3起始偏移以及數(shù)據(jù)是否有VLAN標志或SNAPped。在開始,對于每個接收到的8字節(jié),算法如下計算不同的變量。首先,它通過向計數(shù)變量length值添加新字節(jié)的數(shù)目,更新指示目前為止接收到的分組的字節(jié)數(shù)的計數(shù)變量(length)。變量index(索引)被定義為不比被8除的length大的最大整數(shù)。變量offset(偏移)被定義為模8的length。
圖3針對4中類型的分組示出了變量index和offset,被標記為(a),(b),(c)和(d),具有在被標記為“字節(jié)號(byte number)”的行所標記的字節(jié)位置中顯示的數(shù)據(jù)。
·分組類型(a)沒有被VLAN標記或snapped,并且層3從字節(jié)14開始。
·分組類型(b)被VLAN標記(所以字節(jié)12和13是0x8100(1個16進制符號)),并且層3從字節(jié)18開始。
·分組類型(c)被以snap包封SNAPped,所述包封從字節(jié)14開始,并且層3數(shù)據(jù)從字節(jié)22開始。在字節(jié)14到19的位置上為0xAA-AA-03-00-00-00.
·分組類型(d)被以snap包封SNAPped,所述包封從字節(jié)14開始,并且被VLANtagged(所以字節(jié)12和13是8100),并且層3數(shù)據(jù)從字節(jié)26開始。在字節(jié)18到23的位置上為0xAA-AA-03-00-00-00.
為了確定L3的開始位置。當(dāng)變量length使得index是1時,在某一時間下面步驟執(zhí)行·檢查偏移(offset)4和5的字節(jié)。如果它們不是0x8100并且不小于1500,那么字節(jié)是類型(a)并且層3從字節(jié)14開始。
·否則,如果偏移4和5的字節(jié)是0x8100,那么分組被標記(分組必須是類型(b)或類型(d))。設(shè)定變量tagged等于1。
·否則,如果偏移4和5的字節(jié)少于或等于1500,而且偏移6和7的字節(jié)是0xAA-AA,那么分組一定是snapped,設(shè)定變量snapped等于1。
·否則,分組是未知協(xié)議的。
當(dāng)數(shù)據(jù)分組的下一個部分到達時,變量length使得index值為2·檢查偏移0和1的字節(jié)。如果它們比1500大并且tagged=1,那么分組是類型(b)并且層3從字節(jié)18開始。
·否則,如果偏移0和1的字節(jié)少于或等于1500并且tagged=1,那么設(shè)定snapped=1。
·如果tagged=1并且snapped=1并且偏移2到7的字節(jié)是AA-AA-03-00-00-00,那么分組是類型(d),并且層3從字節(jié)22開始。
·否則,如果tagged=0并且snapped=1并且偏移0到3的字節(jié)是0x03-00-00-00,那么分組是類型(c),并且層3從字節(jié)22開始。
·否則,協(xié)議是未知的。
再參考圖1,一旦層3(和其它層)的起始位置已知,數(shù)據(jù)流的部分被傳送給如下面討論的第一分析器7和第二分析器9。注意,針對這些部分之一,在任何時間執(zhí)行步驟5操作和第一分析器7和第二分析器9操作。在這種情況下,步驟5的操作使用部分表示信息識別數(shù)據(jù)的部分屬于哪個分組,以及例如在多個分組的情況下針對這些分組中的每一個保持一組變量(例如變量length)。在處理來自一個給定分組的數(shù)據(jù)流的一部分的過程中,步驟5步涉及更新相應(yīng)分組的變量。不過分析器1和2不知道此信息。
第一分析器7根據(jù)被一組寄存器8定義的位置從分組中提取數(shù)據(jù)。例如,當(dāng)8字節(jié)要被提取時,8個寄存器(標記為偏移reg 1、……、偏移reg 8)被使用。每個寄存器保留一個指示數(shù)據(jù)是否從層2或?qū)?數(shù)據(jù)中被提取的指示(“L2/L3”),以及指示哪個字節(jié)相對于哪些層的此起始位置被提取的偏移。用這種方式,第一分析器7能提取本地密鑰。被提取的本地密鑰在AND操作11中與8×16比特掩碼15(8個寄存器每個提取16比特)進行比較。同一個8×16比特掩碼15與8個16比特規(guī)則17在AND操作13中進行比較。AND操作11和13的結(jié)果在步驟19被比較以生成8×1比特結(jié)果。
同時,第二分析器9接收到同樣的數(shù)據(jù)流和確定的層的起點的結(jié)果,并提取一組由8個密鑰選擇寄存器23確定的一組8比特。第二分析器9的輸出在步驟21與比較操作19的結(jié)果進行比較。
圖2示出第二分析器9和組合單元21的操作。圖2上面部分示出一個數(shù)據(jù)分組的通常結(jié)構(gòu),從層2數(shù)據(jù)(“層2info”)開始,然后層3數(shù)據(jù)(“層3info”),然后層4數(shù)據(jù)(“層4info”)。使用層位置確定運算法則的結(jié)果,第二分析器9被選擇性地提供給如圖2示出的選擇出的字節(jié)。根據(jù)可編程選擇器23的輸出,MUX多路復(fù)用單元25輸出它們的輸入中的一個。這些被提供給進一步的MUX多路復(fù)用單元27、29。MUX多路復(fù)用單元27接收數(shù)據(jù)分組的其它部分和第一分析器7的輸出。MUX多路復(fù)用單元29接收MUX多路復(fù)用單元27的各個輸出和MUX多路復(fù)用單元25的各個輸出。根據(jù)來自可編程寄存器23的選擇信號sel
31、sel[3]31控制MUX多路復(fù)用單元27、29。其結(jié)果是用于流引擎的提取的密鑰。
再次參考圖1,進行比較操作19的輸出與用于流引擎的密鑰的組合21,以生成最終密鑰。像兩個分析器的提取操作一樣,此密鑰的使用對本領(lǐng)域的技術(shù)人員來說很清楚。
圖4示出在以太網(wǎng)交換機環(huán)境中實現(xiàn)圖1步驟的分析器系統(tǒng)電路35的設(shè)計。分析器系統(tǒng)電路35每次以8字節(jié)操作,并具有輸入接口41,其接收來自從以太網(wǎng)交換機的引腳接收分組的緩存rx_ififo39的輸入,和來自提供包括確認與相應(yīng)分組(此組成上面討論的部分識別信息)聯(lián)系的分組的種類的索引的控制信息的MAC接口rx_mac_ififo37的輸入。圖1的步驟5操作被單元43執(zhí)行,并且其結(jié)果尤其被傳輸?shù)絾卧?5,其用作圖1的第一和第二分析器并實現(xiàn)圖1中生成最終密鑰的組合。單元45還從寄存器文件47中接收其它需要的數(shù)據(jù),比如圖2中寄存器9、17和15的數(shù)據(jù)。分析器將每個數(shù)據(jù)流(例如每個同時的分組)的所有信息置于相應(yīng)分組的描述符中。通過每次每個處理步驟在兩個周期操作8字節(jié),分析器能管理8個FE流。
單元45的輸出傳到分析器parser_mem_iface輸出接口49,其按順序把它傳輸?shù)揭蕴W(wǎng)交換機的其它單元,特別是內(nèi)存管理器rx_mem_mgr51。注意,所有的分析器系統(tǒng)電路35的電路最好在單一集成電路上實現(xiàn)。
權(quán)利要求
1.一種分析器系統(tǒng),具有接收數(shù)據(jù)流的接口,所述數(shù)據(jù)流由多個不同分組的交叉部分和關(guān)于定義了哪個分組與其相關(guān)的數(shù)據(jù)的部分的識別信息組成,分析裝置,用于一個部分一個部分地處理數(shù)據(jù)流并用部分識別信息識別和提取數(shù)據(jù)。
2.如權(quán)利要求1所述的分析系統(tǒng),進一步包括存儲偏移信息的用戶可編程寄存器,所述分析裝置被設(shè)置以使用部分指示信息和數(shù)據(jù)部分自身識別分組的結(jié)構(gòu)特征,以及用存儲在寄存器中的偏移數(shù)據(jù)在分組的結(jié)構(gòu)特征和偏移數(shù)據(jù)定義的位置從分組識別和提取數(shù)據(jù)。
3.一種分析器系統(tǒng),具有接收數(shù)據(jù)流的接口,所述數(shù)據(jù)流由作為分組的部分的一系列數(shù)據(jù)部分組成;一個或更多的用戶可編程寄存器,分析裝置,用于連續(xù)地接收部分并使用存儲在寄存器中的偏移信息來從接收到的部分中識別和提取數(shù)據(jù)。
4.如權(quán)利要求1、權(quán)利要求2或權(quán)利要求3所述的分析器系統(tǒng),其中分析裝置包括掃描部分,用于獲得指示分組中的數(shù)據(jù)的層位置的結(jié)構(gòu)信息;以及分析器部分,用于使用掃描部分的輸出和偏移信息提取數(shù)據(jù)。
5.如從屬于權(quán)利要求2或權(quán)利要求3的權(quán)利要求4所述的分析器系統(tǒng),其中用于要被提取的數(shù)據(jù)的至少一部分的偏移信息是存儲在用戶可編程寄存器中的偏移信息。
6.如權(quán)利要求5所述的分析器系統(tǒng),其中分析裝置包括第一分析器,所述第一分析器提取使用存儲在用戶可編程寄存器中的偏移信息識別的數(shù)據(jù);以及第二分析器,所述第二分析器使用預(yù)定的偏移信息提取數(shù)據(jù)。
7.如權(quán)利要求4到6之一所述的分析器系統(tǒng),其中掃描系統(tǒng)適合于識別數(shù)據(jù)分組中的標記。
8.一種分析數(shù)據(jù)流的方法,包括把數(shù)據(jù)流作為一系列部分傳送給前述權(quán)利要求任何之一的分析器系統(tǒng),以及分析器系統(tǒng)一個部分一個部分地處理該數(shù)據(jù)流。
全文摘要
一種分析器系統(tǒng),其被設(shè)置成接收具有來自多個不同分組的交叉部分的數(shù)據(jù)流(1),并在它到達時從每個部分中提取數(shù)據(jù)。此分析器系統(tǒng)具有掃描單元,其接收與定義了哪個分組與其有關(guān)的數(shù)據(jù)的每個部分有關(guān)的信息,并使用此信息和數(shù)據(jù)流的屬性,以識別(2)層、(3)層和(4)層的位置。此信息被傳送到基于此數(shù)據(jù)和偏移提取數(shù)據(jù)的分析器單元(7)、(9)。分析器單元(7)用的偏移被存儲在用戶可編程寄存器(9)。
文檔編號H04L12/56GK1669289SQ02829573
公開日2005年9月14日 申請日期2002年9月6日 優(yōu)先權(quán)日2002年9月6日
發(fā)明者什里達爾·穆巴拉克·米什拉, 胡春風(fēng) 申請人:因芬奈昂技術(shù)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
兴业县| 郁南县| 交口县| 彩票| 闵行区| 宁夏| 昌平区| 松潘县| 维西| 左云县| 中牟县| 修文县| 板桥市| 成安县| 克东县| 东海县| 万年县| 吉安县| 华蓥市| 平武县| 宜宾县| 天等县| 普格县| 武宣县| 蕲春县| 瑞昌市| 吴江市| 阿城市| 松桃| 连平县| 桐乡市| 积石山| 临桂县| 龙泉市| 苗栗县| 沂水县| 灵寿县| 阳江市| 子长县| 肥西县| 阆中市|