SE531989C2 - Förfarande och datorprogramsprodukt för flerfältsklassificiering i ett datakommunikationsnät - Google Patents

Förfarande och datorprogramsprodukt för flerfältsklassificiering i ett datakommunikationsnät

Info

Publication number
SE531989C2
SE531989C2 SE0700378A SE0700378A SE531989C2 SE 531989 C2 SE531989 C2 SE 531989C2 SE 0700378 A SE0700378 A SE 0700378A SE 0700378 A SE0700378 A SE 0700378A SE 531989 C2 SE531989 C2 SE 531989C2
Authority
SE
Sweden
Prior art keywords
crunched
classes
dimension
matching
crunching
Prior art date
Application number
SE0700378A
Other languages
English (en)
Other versions
SE0700378L (sv
Inventor
Mikael SUNDSTROEM
Original Assignee
Oricane Ab
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oricane Ab filed Critical Oricane Ab
Priority to SE0700378A priority Critical patent/SE531989C2/sv
Priority to PCT/SE2007/050816 priority patent/WO2008054323A2/en
Priority to EP07835400A priority patent/EP2078393A4/en
Priority to US12/446,595 priority patent/US8477773B2/en
Publication of SE0700378L publication Critical patent/SE0700378L/sv
Publication of SE531989C2 publication Critical patent/SE531989C2/sv

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/353Clustering; Classification into predefined classes
    • G06F17/30707
    • H04L12/5689
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2441Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

25 30 Éšïššš W a. sägs matcha en regel när värdet på varje huvudfält hos paketet ligger inom det motsva- rande intervallet i regeln. Med andra ord mäste värdena som innehàlls l alla huvudfält hos paketet matcha sitt motsvarande intervall i regeln.
Enligt en första utföringsform av föreliggande uppfinning tillhandahålls denna genom ett förfarande för att utföra specifika datavidarebefordringsàtgärder som beror på karaktären på datatrafik innefattande datapaket. Förfarandet innefattar stegen att: -ta emot inkommande datatrafik av en specifik karaktär, tillhörande åtminstone en specifik klass bland ett antal fördefinierade klasser, - klassificera datatrafiken genom att fastställa karaktären på datatrafiken, vilket ombesörjs av en process för att inspektera värden på ett eller flera valda huvudfält i ett adressområde hos ett datapaket, och välja en första matchande klass från en ordnad lista med klasser som tillhandahåller flerdimensionell klassificering med hjälp av crunchning för att producera en crunchad frågenyckel följt av matchmaking för att välja den första matchande klassen från en ordnad lista med crunchade klasser som genereras genom crunchning av den ursprungliga listan med klasser, genom att analysera listan med regler och framställa en enfältsklassificerare per dimension, i vilket förfarande matchmaking av den crunchade nyckeln i den ordnade listan med crunchade klasser utförs med hårdvaruaccelererad linjär sökning.
Enligt en aspekt av föreliggande uppfinning tillhandahålls en datorprogramsprodukt som har datorprogramkodsmedel för att förmå en dator att exekvera förfarandet enligt ovan när programmet körs på en dator.
Det uppfattas att datorprogramprodukten är anpassad för att utföra utföringsformer som hänför sig till det ovan beskrivna förfarandet, såsom är tydligt fràn den bifogade uppsätt- ningen av osjälvständiga systempatentkrav.
Ytterligare särdrag hos och fördelar med föreliggande uppfinning beskrivs av de bilagda osjälvständiga patentkraven.
Kort beskrivning av ritningarna 10 15 20 25 30 333 f; För att ytterligare förklara uppfinningen kommer nu utföringsformer som valts såsom exempel att beskrivas närmare med hänvisning till ritningarna, av vilka: Fig 1 är ett flödesschema som visar förfarandet enligt en utföringsform av föreliggande uppfinning; Fig 2 illustrerar ett schematiskt blockdiagram av en (härdvaru-) anordning enligt en utfö- ringsform av föreliggande uppfinning; Fig 3 illustrerar ett schematiskt blockdiagram av en mjukvarulösning enligt en utförings- form av föreliggande uppfinning; Fig 4 illustrerar en översikt av en flerfältsklassificerare som är baserad på cruncher- matchmakerarkitekturen; Fig 5 illustrerar en källadresscruncher; Fig 6 illustrerar en implementering enligt Fig 5; Fig 7 illustrerar hur man stöder |Pv4/lPv6-tunnling; och Fig 8 illustrerar TCAM-liknande minnesimplementering.
Fig. 9 illustrerar en flerfältsklassificerare; Fig 10 illustrerar ett generaliserat hybridklassificeringsblock; Fig 11 illustrerar en flerfältspaketklassificerare; Beskrivning av utföringsformer av uppfinningen Innan en detaljerad behandling av utföringsformer av uppfinningen ges, ska den all- männa bakgrunden till föreliggande uppfinning relaterad till en första del av föreliggande uppfinning diskuteras i närmare detalj för att underlätta förståelsen av principerna för uppfinningen, följt av en detaljerad beskrivning av en första del av en utföringsform av föreliggande uppfinning. Därefter ska en andra del diskuteras i närmare detalj, följt av en detaljerad beskrivning av en andra del av samma utföringsform som diskuterades innan.
D-dimensionell paketklassificering, eller helt enkelt paketklassificering, innebär att från en lista med regler eller klasser välja den första regeln som matchar ett paket. Varje regel består av D intervall som svarar mot D huvudfält i paketet. Låt Ri vara den iite regeln och [xij, yij] det jfte intervallet av regel Ri. Observera att för adresser så repre- senteras intervall ibland av prefix och för protokoll av enkla punkter. 10 15 20 25 30 l .fl t" Cl :t- UI! 'IEI ti? Ett paket med huvudfält h1, h2, . _ . , hD matchar regel Ri om och endast om xij s hj s yij förallaj= 1,2, . . .,D. l typiska fall finns det två dominerande tillvägagångssätt för paketklassificering: "Ternary CAMs" som är en hårdvarulösning som bygger på råstyrka, och algoritmiska lösningar som använder heuristik för att utnyttja strukturen hos verkliga regellistor.
De flesta existerande schemana kommer att påverkas på ett eller annat sätt genom ersättning av 32-bitars lPv4-intervall med 128-bitars lPvö-intervall i alla regler.
Regler som består av två adresser och två portar kommer att ungefär växa från 2 -32+2 -16 = 96 bitar till 2-128+2-16 = 288 bitar om intervallen representeras av prefix eller från 4 -32+4 -16 = 192 till 4 -128+4 -16 = 576 bitar om intervallen representeras såsom god- tyckliga värdemängder. För en hårdvarulösning översätts detta direkt till ökat kortut- rymme och strömförbrukning för ett tixt antal regler.
Såvitt vi vet finns det inga benchmarks för algoritmiska lösningar och lPv6-baserade regler och det är därför svårt att uttala sig säkert om förluster som en lPv6-övergång leder till. För en jämförelsebaserad paketklassificerare kommer noder att innehålla 128- bitarsvärden istället för 32-bitarsvärden och detta kommer uppenbarligen att öka storle- ken på noderna. Det kommer även att ha avsevärd effekt på look up-hastigheten om noderna är noggrant dimensionerade och injusterade för att utnyttja minnesblockstorle- ken b såsom vi gör med blockträd. För trie-baserade klassificerare kommer antalet nivåer att högst troligt öka, vilket leder till reducerad look up-prestanda, eller växa avse- värt i storlek.
Uppenbarligen skulle det vara önskvärt om vi kunde reducera inverkan från större adresser på den D-dimensionella klassificeraren. Detta ombesörjs med hjälp av förelig- gande uppfinning, av vilken en utföringsform nu kommer att beskrivas. Dock är uppfin- ningen inte begränsad till komprimering av |Pv6-adresser utan kan även användas för att Komprimera lPv4-adresser för att reducera komplexiteten av klassificeringen och öka prestandan. 10 15 20 25 30 Utföringsforrner av föreliggande uppfinning kommer nu att beskrivas med hänvisning till Fig 1 och 2 (och Fig 3), av vilka Fig 1 illustrerar stegen i förfarandet och Fig 1 illustrerar en anordning enligt en utföringsform av uppfinningen konfigurerad i hårdvara.
Fig 1 illustrerar ett förfarande för att utföra specifika datavidarebefordringsàtgärder som beror på karaktären på datatrafik innefattande datapaket. I ett första steg, steg 201, tas inkommande datatrafik av en specifik karaktär emot. Datatrafiken tillhör åtminstone en specifik klass bland ett antal fördefinierade klasser. l ett andra steg, steg 202, klassifice- ras datatrafiken genom att fastställa karaktären på datatrafiken, vilket ombesörjs av en process för att inspektera värden på ett eller flera valda huvudfält i ett adressområde hos ett datapaket och en första matchande klass väljs från en ordnad lista med klasser som tillhandahåller flerdimensionell klassificering i ett tredje steg, steg 203.
Alla dessa steg i förfarandet som är relaterade till olika utföringsformer av föreliggande uppfinning kommer att beskrivas än ytterligare nedan, men först hänvisas till Fig 2, vilken är en illustration av ett blockschema av en klassificeraranordning 100 för att utföra förfa- randet, enligt en utföringsform av föreliggande uppfinning. Klassificeraranordningen 100 är implementerad i hårdvara och skulle kunna refereras till såsom en flerdimensionell klassificerare.
Den härdvaruimplementerade klassificeraranordningen 100 innefattar en in-utenhet 104 för överföring av datasignaler som innefattar datagram till eller från en källa eller desti- nation så som en router eller liknande (ej visad). Denna in-utenhet 104 skulle kunna vara av godtycklig konventionell typ som inkluderar en trådlös nätbrygga/växel som har in- utelement för att ta emot och sända video, audio och datasignaler. Datainmatning illu- streras schernatiskt såsom “förfrågan" om ett eller flera datahuvudfält, och datautmatning såsom ett resultat så som vidarebefordringsriktning, policy som ska gälla eller liknande.
Tillhandahållen finns en för att kommunicera med denna in-utenhet 104 arrangerad systembuss 106 som är ansluten till ett styrsystem 108 som exempelvis inkluderar ett specialanpassat klassificeringsacceleratorchip som är arrangerat för att behandla data- signalerna.
Anordningen 100 innefattar medel 109 för att ta emot inkommande datatrafik av en spe- cifik karaktär, tillhörande åtminstone en specifik klass bland ett antal fördefinierade klas- 10 15 20 25 30 (i Lu »aa 11.13 'ml ff! i: ser, och medel 110 för att klassificera datatrafiken genom att fastställa karaktären på datatrafiken, vilket ombesörjs av en process för att inspektera värden på ett eller flera valda huvudfält i ett adressomràde hos ett datapaket, och välja en första matchande klass från en ordnad lista med klasser som tillhandahåller flerdimensionell klassificering.
Den flerdimensionella klassificeringen ombesörjs med hjälp av en teknik för crunchning eller komprimering av det adressomràde på vilket en klassificerare opererar som tillhan- dahàller flerdimensionell klassificering. l typiska fall tillhandahåller, eller inkluderar, chippet 108 medel 109, 110 för att analysera en regeluppsättning för att framställa en uppställning av enfältsklassificerare, bestående av upp till en enfältsklassificerare för varje dimension, att konvertera den ursprungliga regeluppsättningen till en motsvarande lista med komprimerade regler genom att använda uppställningen av enfältsklassificerare, att ladda in uppställningen av enfälts- klassificerarrepresentationer i en motsvarande uppställning av enfältsklassificerare som är implementerad i specialanpassad hårdvara på ett chip för att accelerera genomström- ning, att ladda in listan med komprimerade regler i ett speciellt sorts TCAM-liknande minne där varje cell svarar mot en regel och varje cell lagrar gränserna (minimum och maximum) för ett intervall i varje dimension varvid själva klassificeringen av en lista med huvudfält åstadkoms genom att först komprimera värdet på varje huvudfält parallellt med användning av uppställningen av enfältsklassificerare för att producera en komprimerad lista med huvudfält som sedan klassificeras genom att laddningsmatcha den mot alla TCAM-liknande celler parallellt och välja den första TCAM-liknande cellen som matchar med användning av standard-TCAM-tekniker för uppknytning bland flerfaldiga match- ningar, för att producera det slutliga resultatet, och tekniker för att integrera adressområ- deskomprimeringen och den komprimerade flerfältsklassificeringen på anordningen (chippet) så att inmatningen till anordningen är listan med ursprungliga huvudfält och utmatningen från anordningen är indexet för den regel som matchar huvudfälten. l typiska fall skulle chippet 108 kunna vara konfigurerat såsom innefattande klassificerar- look up-struktur och klassificerar-look up, i typiska fall inbyggda. l en alternativ utförlngsform av föreliggande uppfinning, vilken illustreras i Fig 3, är anordningen 100 implementerad i mjukvara istället. För att underlätta förståelsen kom- 10 15 20 25 30 mer samma hänvisningssiffror som redan har använts i samband med Fig 2 att använ- das så långt som möjligt.
I typiska fall innefattar styrsystemet 108 en processor 111 som är ansluten till ett snabbt datorminne 112 med en systembuss 106, i vilket minne 112 finns datorexekverbara instruktioner 116 för exekvering; varvid processorn 111 är operativ för att exekvera de datorexekverbara instruktionerna 116 för att: tillhandahålla i ett Iagringsorgan 102, häri i typiska fall primärminnet, en för vidarebeford- ring av datagram tillhandahållen datastruktur för att indikera vart i nämnda nätverk ett datagram ska vidarebefordras, och arrangerad för att ta emot inkommande datatrafik av en specifik karaktär, tillhörande åtminstone en specifik klass bland ett antal fördefinierade klasser, och klassificera datatrafiken genom att fastställa karaktären på datatrafiken, vilket ombesörjs i av en process för att inspektera värden på ett eller flera valda huvudfält i ett adressom- råde hos ett datapaket, och välja en första matchande klass från en ordnad lista med klasser som tillhandahåller flerdimensionell klassificering med hjälp av crunchning eller komprimering.
Nu hänvisas tillbaka till Fig 1.
Enligt en utföringsform av föreliggande uppfinning innefattar förfarandet steget att till- handahålla en enfältsklassificerare för att Komprimera adressomràdet för varje dimen- sion, steg 204.
Enligt en utföringsform av föreliggande uppfinning innefattar förfarandet att uppsätt- ningen av enfältsklassificerare organiseras såsom en vektor där komprimering exekve- ras i varje dimension samtidigt, steg 204.
Enligt en utföringsform av föreliggande uppfinning innefattar förfarandet steget att analy- sera listan med klasser i varje dimension för att identifiera potentiella startpunkter som tillhandahåller uppsättningen Z, steg 205.
Enligt en utföringsform av föreliggande uppfinning innefattar förfarandet steget att repro- ducera (avbilda) intervallet till ett motsvarande komprimerat intervall genom att använda nämnda enfältsklassificerare som är tillhandahàllen för just denna dimension. Resultatet 10 15 20 25 30 fššåï 9333 är ett komprimerat intervall för varje dimension i varje regel och slutligen en lista med regler som är totalt komprimerad, steg 206.
Enligt en utföringsform av föreliggande uppfinning utförs nämnda look up med hjälp av att i ett första steg 201 (eller parallellt om implementerad såsom hårdvara) göra look up med hjälp av motsvarande enfältsklassificerare för varje huvudfält hos paketet. På detta vis tillhandahålls en lista med avbildade värden på huvudfälten. l ett andra steg utförs flerdimensionell klassificering (med hjälp av TCAM om implemen- terad i hårdvara) av den avbildade listan med huvudfält iden komprimerade listan med regler.
Analysen av den ursprungliga listan med regler och komprimeringen av listan med reg- ler, liksom definitionen av varje enfältsklassificerare ombesörjs med hjälp av mjukvara.
Nämnda look up skulle kunna skapas med hjälp av hårdvara, exempelvis med hjälp av pipelining för förbättrad prestanda. Om nämnda look up ombesörjs med hjälp av mjuk- vara är det möjligt att använda godtycklig typ av befintlig flerdimensionell klassificerare för att tillhandahålla matchning av den komprimerade listan.
Sålunda inkluderar uppfinningen analys av ursprunglig lista med regler, definitionen av SFC för varje dimension, liksom komprimering av listan med regler.
Enligt en alternativ utföringsform »av föreliggande uppfinning tillhandahålls ett system enligt krav 11, i vilket två flerdimensionella klassificerare används där den ena är speci- alanpassad för fundamentala lPv4-regler och den andra för fundamentala lPv6-regler.
Vi kommer nu att visar hur man använder enfältsklassificering för att komprimera adressområdet för varje dimension till min(2n+1, 2^wi), där wi är antalet bitar i det ursprungliga rubrikfältet i dimension i. Genom att använda denna teknik reduceras det totala antalet bitar som är involverade i den faktiska D-dimensionella klassificeringen från w1+w2+...+wD till min(ceil(lg(2n + 1), w1)+ min(ceil(lg(2n + 1), w2)+...+ min(ceil(lg(2n + 1), WD). 10 15 20 25 30 Betrakta en dimension åt gången och låt [xi, yi] vara intervallet i den aktuella dimensio- nen i regel Ri. Konstruera ett uppsättningspar X = {x1, x2,...,xn} union {0} och Y= {y1 + 1, y2 +1,...,yn +1}snitt U, där U är populationen (t ex {0, 1, . . . , 2^128 - 1} för lPv6) och låt Z = X union Y.
Uppsättningen Z = {z0, z1,...,zm} , där zj < zj+1 är uppsättningen av mindre slutpunkter av alla möjliga intervall [z0, z1 - 1] , [21 , 22 - 1] , . . . , jzm, maxU], och uppsättningen av dessa intervall är en partition av U.
Definiera avbildningen šenligt följande: §(x)=j,omzjsxszj+1-1.
Uppenbarligen är § en avbildning från U på {0, . . . , m} . Dessutom är m S 2n eftersom högst en slutpunkt från varje regel adderades till X respektive Y. Det är okomplicerat att implementera i genom att använda en enfältsklassificerare. l synnerhet kan något av förfaranden i kraven 1-4 användas. Eftersom § är en monotont ökande funktion finns dessutom inget behov av att explicit lagra de faktiska databitarna som utgör resultatet från enfältsklassificeraren. Istället kan resultatet från nämnda look up beräknas genom att spåra nämnda look up.
För varje regel Ri vill vi avbilda intervallet [xi, yi] iden aktuella dimensionen till ett mot- svarande intervall jx0i, yOi] = § ([xi, yi]) i regel R'i. Detta åstadkoms enligt följande: MX» V1) = [šlxlmlr Om Y = maXU 10 15 20 25 30 och [f,(x), i (y+1)-1] annars.
Genom att utföra dessa steg för varje regel i varje dimension erhåller vi en ny regellista R', vilken är en avbild §(R) av den ursprungliga regellistan R under den flerdimensionella avbildningen §=[§1, §2, . . _ , §D] , där ii är avbildningen i dimension i.
Det återstår att visa att den första matchande regeln bevaras när adressområdet kom- primeras. För en lista med huvudfält definierar vi §([h1, h2, . . _ , hD]) = [§1(h1), §2(h1), _ . _ ,§D(hD)].
Om h ligger i [x,y] är ekvivalent med š (h) ligger i E,([x, yj), så matchar [h1, h2, . . . , hD] Ri om och endast om §([h1, h2, . . . , hD]) matchar §(Ri) , och vi kan vara säkra att den för- sta matchande regeln bevaras av avbildningen.
Följaktligen måste vi bevisa att h ligger i [x,y] är ekvivalent med i (h) ligger i §([x, y]). För den nedre gränsen har vi h 2 x implicerar att h 2 zj , där zj = x, och följaktligen § (h) 2 j, och för den övre gränsen implicerar h .<. y att h < zj' , där zj' = y + 1 som implicerar att F, (h) s j' - 1. Genom definitionen av š för intervall har vi att §([x, yl)=[l.l"~1] och följaktligen ligger :lm l gqx, y]).
Den ursprungliga idén var att använda adressområdeskomprimeringsschemat för att avbilda lPv6-adresser på lPv4-adresser. Såvida inte 2n+1 > 2^32, vilket vi betraktar såsom osannolikt eftersom det skulle motsvara att ha fler än 2 147 483 647 regler, kan vâr målsättning enkelt uppnås. För måttligare regellistor, säg en miljon regler, kan vi dock komprimera varje lPvß-adress på ett 21~bitars heltal istället för att använda 128 10 15 20 25 30 jbitar, vilket är en reduktion av 83 %. Fastän detta inte reducerar den kombinatoriska komplexiteten av paketklasslficeringsproblemet såsom sådant, tror vi att det kommer att göra saker avsevärt lättare för de flesta mjukvarubaserade D-dimensionella paketklassi- ficerarna. i synnerhet för dem som är konstruerade för att hantera adresser såsom inter- vall.
För D-dimensionella klassificerare som i hög grad utnyttjar (eller snarare missbrukar) den allmänna inskränkningen att uttrycka adressintervall såsom prefix i regellistor, måste en något annorlunda avbildning användas. Srinivasan m fl beaktade problemet att leta bland prefixlängder efter portintervall i V. Srinivasan, Subhash Suri, och George Varg- hese. Packet classification using tuple space search. I SIGCOMM, sidorna 135-146, 1999. De introducerade begreppet kapslingsnivåer som svarar mot prefixlängd och defi- nieras såsom antalet nivåer i en hierarki av intervall där varje intervall är en delmängd av moderintervallet. Vi kan föra detta vidare genom att avbilda godtyckliga intervall till prefix där varje kapslingsnivå lägger högst två ytterligare bitar till prefixlängden. Det är okom- plicerat att generera en sådan avbildning och för de flesta riktiga tillämpningarna kan vi förvänta oss att antalet kapslingsnivåer är färre än 16 och sålunda kan alla lPv6 prefix avbildas på lPv4-prefix.
Vid betraktande av tillämpningar med extrema prestandakrav, så som core backbone- routrar, utförs klassificering i typiska fall med användning av ett TCAM-chip med hög prestanda. För lPv6 5-fälts flerdimensionell klassificering (MFC-5) krävs 296-bitars TCAM-celler. TCAM-bitar är extremt dyra, både vad gäller implementeringskostnad och strömförbrukning.
Kostnaden för en bit SRAM-minne såsom används för att lagra våra t-dimensionella hybridklassificerare är liten jämfört med kostnaden av en TCAM-bit. Vi kan därför använda två parallella 128-bitars klassificerare för att utföra samtidig adressområdes- komprimering av käll- och destinationsadresserna för att erhålla en reduktion från på 128 bitar till 17 bitar såsom visas i Flg 6. De resulterande 5-fälts, totalt 74 bitar, kan sedan klassificeras med användning av ett TCAM-liknande minne som är konstruerat för att matcha intervall istället för godtyckliga jokrar. Eftersom kostnaden per bit i ett sådant TCAM-liknande minne inte bör vara väsentligt högre än i ett vanligt TCAM, kan den 10 15 20 25 30 5533 Qâš ll effektiva reduktionen av kiselarea och strömförbrukning potentiellt vara så hög som 75 %.
Vektorproduktberäkning är en allmänt använd metod för att kombinera 1-dimensionella klassificerare för att bilda en D-dimensíonell klassificerare (se V. Srinivasan och George Varghese. Faster IP lookups using controlled prefix expansion. I Proceedings of the 1998 ACM SIGMETRICS joint international conference on Measurement and modeling of computer systems, sidorna 1-10. ACM Press, 1998). ldén är något liknande vårt adresskomprimeringsschema som beskrivits ovan men det finns ett antal viktiga skillna- der som vi nu kommer att diskutera. Vi börjar med en lista med n regler där varje regel definierar ett D-dimenslonellt intervall. Vid användning av Vektorproduktberäkning, används en uppsättning av D i-dimensionella klassificerare för att avbilda D huvudfält på en punkt i den D-dlmensionella populationen Ucross ={0, 1, _ . _ ,n - 1}D . Dock är den avbildning som används vid Vektorproduktberäkning extremt tät. Därför är den enda möjliga representationen av den ursprungliga regellistan i Ucross en representation utan bindningar. Detta tvingar vektorproduktberåkningen att avbilda den ursprungliga regel- listan på en representation där varje (avbildad) punkt endast kan matcha en enda avbil- dad regel. Till följd av detta kräver den avbildade representationen av regellistan n^D- lagringsorgan, i värsta fall, vid användning av vektorproduktberäkning. l vårt schema är populationen Uhybrid = {0, 1, . . . , 2n}^D något större. Till följd av detta kan vi avbilda varje ursprunglig regellista på en motsvarande avbildad regellista där kriterierna för upp- knytning av flerfaldiga matchningar bevaras. Den resulterande avbildade regellista består av samma antal regler som den ursprungliga regellístan. l ett grundscenario svarar varje dimension mot en viss sorts huvudfält som vi refererar till såsom typen av huvudfältet. l en fundamental lPv4 MFC-5-regel är typerna av de första och andra dimensionerna l Pv4-käll- respektive -destinationsadress medan typerna av de tredje och fjärde dimensionerna är källadress respektive destinationsadress. l typiska fall antas det att protokollet, vilket svarar mot den femte dimensionen, är antingen TCP eller UDP. Annars skulle specifikationen av portvärdemängder i den tredje och fjärde dimensionen sakna betydelse. l en fundamental lPv6 MFC-5-regel är adressintervallen lPvö-adresser istället för lPv4-adresser. 10 15 20 25 30 i 25 Ett problem med ett fundamentalt schema är hur man hanterar regellistor där funda- mentala lPv4- och fundamentala lPv6-regler blandas. Om den faktiska flerdimensionella klassificeringen utförs med användning av mjukvara (dvs datorprogramsprodukt som körs på en dator), blir användningen av en enda flerdimensionell klassificerare mycket trasslig eftersom två adressomràden med olika storlekar behöver kombineras. Pro- grammet kommer att vara svårt och kostsamt att implementera, dyrt att hålla igång och högst troligt mycket ineffektivt. Såsom ett alternativt tillvägagångssätt kan två flerdimen- sionella klassificerare användas där den ena är specialanpassad för fundamentala lPv4- regler och den andra för fundamentala lPvö-regler. Även om detta tillvägagångssätt (eventuellt) kan vara möjligt om det endast finns två typer av regler, skalar det inte för att stödja den mångfald av typer av regler som krävs för att implementera kraftfulla och sofistikerade säkerhetspolicies i prestandakritiska nätverksmiljöer. Den första konkreta situationen när denna skalning blir ett problem är när vi vill stödja andra protokoll så som exempelvis lCMP (Internet Control Message Protocol) och ESP (Encapsulating Security Payload) som kan följa lP-huvudet. lCMP innehåller inte portnummer. Istället finns det en 5-bitarstyp och en 4-bitarskod (ehuru båda representeras såsom 8-bitarsfält i lCMP- huvudet. Skalningsproblemen blir ännu värre när vi vill stödja regler för lP-tunnling där det kan finnas två eller fler lPv4/lPv6-huvuden framför transporthuvudet vilket sålunda ger en MFC-7-regel, MFC-9-regel etc. I en sådan situation kan typen för den tredje dimensionen vara en lPv4-avsändaradress, en lPvö-avsändaradress, en UDP-avsän- darport, en TCP-avsändarport eller en lCMP-typ. Genom att tillåta ännu fler olika sorters transportprotokoll, stöds regler och/eller tunnlingsnivàerna, blir situationen ännu värre. I princip krävs en specialanpassad flerfältsklassificerare för varje möjlig kombination, vil- ket sålunda våilar kännbara skalbarhetsproblem både i mjukvara och hårdvara. l en ytterligare utföringsform av föreliggande uppfinning kommer vi att först generalisera den tidigare beskrivna adresskomprimeringstekniken till ett generellt crunchningssteg som sedan kombineras med en generell matchmaker för att övervinna problemen med många möjliga kombinationer av regelstrukturer och tunnlingsnivåer såsom beskrivits ovan. Skälet till att använda termen crunchning istället för komprimering är att den effek- tiva storleken på en del fält kan öka till följd av processen, ehuru nyckelidén är att redu- cera den effektiva storleken på huvudfälten före flerdimensionell klassificering. Nämnda matchmaking kan utföras antingen i hårdvara, med användning av ett TCAM-liknande minne som vi har beskrivit i korthet ovan och kommer att beskriva i närmare detalj i 10 15 20 25 30 sammanhang av föreliggande utföringsform, eller i mjukvara med användning av god- tycklig standardteknik för flerdimensionell klassificering som inkluderar linjär sökning, vektorproduktberäkning. kvadrantträd etc. l en utföringsform används en specialanpassad cruncher för varje dimension och inter- vallen avbildas så att det första intervallet av varje typ avbildas till det tal som följer pà avbildningen av det sista intervallet av den tidigare typen i nämnda dimension.
I en utföringsform innefattar förfarandet steget att reproducera (avbilda) varje intervall i varje klass till ett motsvarande crunchat intervall genom att använda nämnda crunch- ningsmodul som är tillhandahàllen för just denna dimension. l en utföringsform utförs nämnda matchmaking av den crunchade nyckeln i den ordnade listan med crunchade klasser med användning av linjär sökning. l en utföringsform utförs nämnda matchmaking av den crunchade nyckeln i den ordnade listan med crunchade klasser med användning av godtycklig flerfältsklassificerare som är baserad på fullständig sökning. l en utföringsform utförs nämnda matchmaking av den crunchade nyckeln i den ordnade listan med crunchade klasser med användning av godtycklig beslutsträdsbaserad fler- fältsklassificerare. l en utföringsform utförs nämnda matchmaking av den crunchade nyckeln i den ordnade listan med crunchade klasser med användning av godtycklig flerfältsklassificerare som är baserad på uppdelning i flerfaldiga enfältsklassificeringar följt av kombination av resultat.
I en utföringsforrn utförs nämnda matchmaking av den crunchade nyckeln i den ordnade listan med crunchade klasser med användning av godtycklig flerfältsklassiticerare som är baserad på databehållarpartitionering ("tuple space partiticning"). 10 15 20 25 30 Håål lfï l en utföringsform utförs nämnda matchmaking av den crunchade nyckeln i den ordnade listan med crunchade klasser med användning av godtycklig befintlig flerfältsklassiiice- rare. l en utföringsform utförs nämnda matchmaking av den crunchade nyckeln i den ordnade listan med crunchade klasser med användning av hårdvaruaccelererad linjär sökning i form av ett TCAM-minne. l en utföringsform utförs nämnda matchmaking av den crunchade nyckeln i den ordnade listan med crunchade klasser med användning av hårdvaruaccelererad linjär sökning (utvidgat TCAM-minne) där varje crunchat fält jämförs med startpunkten och ändpunkten av varje intervall i dimension av varje klass samtidigt och en prioritetskodare används för att välja den första matchande klassen. l Fig 4 visar vi en översikt av en flerfältsklassificerare som är baserad på cruncher- matchmakerarkitekturen. l (a) kommer den ursprungliga listan med huvudfältsvärden in i crunchem där den omvandlas till typoberoende format (b) som sedan kommer in i matchmakern som producerar resultatet (c). I (d) och (e) visar vi underhållet av crun- chern och matchmakern där uppdateringar förs in för att ändra uppförandet av klassifice- raren.
Crunchern består av en uppställning av crunchningsmoduler. Potentiellt finns det en modul för varje dimension. Varje modul består av en uppställning av specialanpassade crunchrar med en specialanpassad cruncher för varje typ. Vi refererar till en specialan- passad cruncher som är konstruerad för att cruncha ett w-bitarsfält såsom w-bitarsfält- cruncher.
Crunchern innehåller en modul för varje dimension där crunchningsprocessen kan för- bättra klassificeringen såsom visas i Fig 5. l detta fall stödjer vi fundamentala lPv4- och lPv6-regler och det totala antalet regler är 2^16, vilket innebär att det inte är någon mening med att cruncha portar och protokoll. Crunchrarna sätts upp på samma sätt som adresskompressorerna bortsett från att indata kan bestå av olika typer av huvudfält.
Källadresscrunchern i Fig 5 är konfigurerad genom sortering av alla för lPv4-källor potentiella intervallstartpunkter för att erhålla en lista med högst 2 * N4 + 1 lPv4-intervall 10 15 20 25 30 Lili ...a ilD LU šï där intervall X avbildas till X. lPvö-crunchern är konfigurerad på ett liknande sätt bortsett från att intervall Y avbildas till Y + Xma, + 1 istället för till Y såsom skulle vara fallet om det endast fanns en lPv6-cruncher. Om det finns fler sorters fält att kombinera det första intervallet från, avbildas nästa fält till värdet på avbildningen av det sista intervallet från den tidigare sortens fält plus ett. Detta kan upprepas för att stödja crunchning och sålunda kombination av ett godtyckligt antal olika sorters huvudfält i varje dimension.
Såsom en ytterligare utföringsform visar vi i Fig 6 hur detta förfarande tillämpas för att stödja lPv4/lPv6 MFC-5-regler med såväl TCP, UDP som lCMP. l ännu en annan utföringsform visar vi i Fig 7 hur man stöder |Pv4/lPv6-tunnling förutom de regler som stöds av anordningen i Fig 6, vilket sålunda ger en lPv4/lPv6 MFC-7-klas- sifioerare med stöd för såväl TCP, UDP som lCMP. Observera att de första käll- och destinationsadresscrunchrarna även innehåller en skipper som används för att koda MF C-5-regler där det yttersta lPv4/|Pv6-huvudet inte matchas mot. l en alternativ utföringsform skulle skippern kunna ha varit implementerad i de tredje och fjärde adressorunchermodulerna istället med huvudsakligen samma resultat om match- makern är implementerad i hårdvara (ej visad). l ännu en ytterligare alternativ utföringsform skulle skippern kunna hoppas över helt genom att hantera transportprotokollfälten från MFC-5-regler l de tredje och fjärde crun- chermodulerna genom att kombinera källport och ICMP-typ i den tredje modulen och destinationsport och lCMP-kod i den fjärde modulen (ej visad). l en ytterligare utföringsform som kan användas i kombination med alla tidigare beskrivna utföringsformer kan matchmakern vara implementerad med användning av ett TCAM-liknande minne såsom visas i Fig 8. (a) och (b) visar frågenyckeln i typoberoende format (efter crunchning). l (c) visas översikten av matchmakern såsom en uppställning av celler och i (d) visas en ensam cell i närmare detalj. Varje cell består av ett register för varje dimension och i (e) visas i detalj matchningen av ett crunchat fält och cellregister som innehåller min- och maxvärden för det representerade intervallet. För att matcha måste alla dimensioner matcha. För att kombinera resultaten till ett enda värde som representerar den första matchande cellen används en prioritetskodare (f). 10 15 20 25 30 983 il I ännu en annan utföringsform skulle det kunna finnas en specialanpassad cruncher som utför bypass genom att mata ut samma värde som sin inmatning. Bypass används i en sådan utföringsform om några crunchrar är implementerade i hårdvara i en anordning och några crunchrar är implementerade i en datorprogram som exekveras på en dator för att stödja anordningen genom att utföra viss lägre prioriterad crunchning i slow-path och därefter skicka resultatet i form av en partiellt förcrunchad frågenyckel till crunchern i hårdvaruanordningen.
Huvudändamålet med matchmakern är att eliminera inverkan från den kombinatoriska komplexiteten av paketklassificeringsproblemet medan huvudändamålet med crunchern är att reducera inverkan av stora söknycklar (t ex. lPv6). Vidare separerar uppdelningen av problemet i crunchning och matchmaking även de olika teknikerna som används för att implementera klasslficeringsmotorn i hårdvara. Eftersom crunchning är ett algorit- miskt tillvägagångssätt kan alla datastrukturer som är involverade lagras i SRAM med användning av pipelining och parallellism för att uppnå maximal prestanda. Matchmaking implementeras å andra sidan med användning av utvidgat TCAM (E-TCAM) -minne som utför fullständig sökning parallellt i en lista med regler där varje regel består av ett inter- vall för varje dimension i motsats till prefix som krävs av TCAM-enheter av standardtyp.
För en implementering på chip finns det huvudsakligen tre prestandamått av intresse: utrymme, hastighet och effekt. Traditionellt mäts utrymme i antal minnesbitar som krävs för att representera en regellista med en viss storlek. Eftersom olika minnestekniker används i anordningen kommer vi dock istället att det totala antalet transistorer som krävs. SRAM kräver 6 transistorer per bit, TCAM kräver 16 transistorer per bit, och E- TCAM kräver 44 transistorer per bit. Hastighet och effekt är nära relaterade. För att uppnå maximal hastighet kommer vi att anta att både pipelining och parallellism används i maximal utsträckning. Detta kommer att öka antalet bitar som samtidigt är involverade i behandling, vilket i sin tur ökar effektförbrukningen. Kostnaden för att helt enkelt lagra en passiv bit i SRAM är 20 nW jämfört med 3 uW för att lagra en bit i ett TCAM [15]. Med hänsyn till effektförbrukningen för TCTCAM-bitar och förhållandet för transistorer per bit jämfört med E-TCAM uppskattar vi att effektförbrukning en av en E-TCTCAM-bit är 44/16 - 3 = 8,25 uW. Slutligen kan de algoritmiska delarna av motorn som körs i crun- chern utföra olika operationer samtidigt. Det totala antalet aktiva bitar som samtidigt är 10 15 20 25 30 fi* i". lvl wšfl 5.13 FCI? LD lëš involverade i behandling i crunchern beror på de algoritmer som används, graden av parallellism och pipelining, och konfigureringen av minnena, Det är rimligt att anta att ingen av dessa operationer är dyrare per bit än den värdemängdsmatchning som utförs av ett E-TCAM och därför kommer vi att anta att effektförbrukningen i crunchern är 8,25 uW per aktiv bit.
Nu definierar vi ett hybridklassificeringsblock (HCB) att vara flerfältspaketklassificerare som utgörs av ett cruncher-matchmakerpar, inkluderande vilken som helst av de utfö- ringsformer som beskrivits ovan. Alla utföringsformer av flerfältspaketklassiflcerare som beskrivits ovan består av ett enda HCB. Med hänsyn till de respektive kostnader vad gäller utrymme och effekt för utvidgat TCAM-minne jämfört med SRAM-minne bör det vara möjligt att reducera den totala kostnaden vad gäller utrymme och effektförbrukning genom att öka graden av parallellism i crunchningssteget medan man samtidigt reduce- rar antalet bitar i varje E-TCAM-cell. Om det totala antalet regler är litet eller flerfaldiga skrivna regler stöds, kommer det att finnas en crunchningsmodul för varje dimension.
Genom att reducera antalet regler med 50 %, kan upptill en E-TCTCAM-bit per dimen- sion sparas. Detta tyder på att två HCB:er, vart och ett dimensionerat för n / 2 regler, kan användas parallellt för att implementera en paketklassificerare för att stödja n regler.
Uppenbarligen reducerar detta kostnaden för matchmaking. För att få en förståelse av extrakostnaderna för crunchning, observerar vi att det totala antalet aktiva bitar i en dimension i crunchern erhålls genom att multiplicera minnesbredden (minnesblockstor- leken) för varje specialanpassad cruncher eller crunchningsmodul med antalet minne- såtkomster (med antagande av att en minnesåtkomst svarar mot ett pipelinesteg). Det totala antalet aktiva bitar erhålls då genom att lägga ihop antalet för varje dimension.
Genom att använda två HCB:er reduceras antalet bitar som är involverade i matchma- king med upp till n * D på bekostnad av en ökning av antalet aktiva bitar vid crunchning med en faktor 2. Genom att öka antalet HCB:er ytterligare, kan antalet E-TCTCAM-bitar reduceras ytterligare på bekostnad av en ökning av antalet aktiva bitar i crunchningen. intuitivt kan man förstå att det finns en balansgång mellan antalet HCB:er och antalet regler och att valet av det optimala antalet regler som ska lagras i varje HCB för att uppnå lägre totalkostnad är ett optimeringsproblem i sig. 10 15 20 25 30 53 'E 9815? iii Såsom ett exempel har vi funnit att N = 508 regler i varje HCB är optimalt när n = 64k.
De relativa besparingarna för att använda denna konfiguration är ungefär 7 % och 27 % för utrymme respektive effektförbrukning, jämfört med att använda ett enda HCB.
Fig 9 visar en flerfältspaketklassificerare, för att beräkna indexet för den första match« ningsregeln 4 för frågenyckeln 3, bestående av en uppställning av hybridklassificerings- block 0 som löper parallellt.
Efter att ha presenterat den ursprungliga idén och fördelarna med ökad parallellism i crunchern, är vi nu klara att beskriva ytterligare utföringsformer av uppfinningen: l en ytterligare utföringsform som kan användas i kombination med alla tidigare beskrivna utföringsformer utgörs en flerfältspaketklassificerare som kan lagra n = M * N regler av M HCB:er, som vart och ett har förmåga att representera maximalt N regler, där alla HCB:er exekveras parallellt. l en ytterligare utföringsform som kan användas i kombination med alla tidigare beskrivna utföringsformer utgörs en flerfältspaketklassificerare som kan lagra n = M * N regler av M HCB:er, som vart och ett har förmåga att representera maximalt N regler, där alla HCB:er exekveras parallellt, där M och N väljs för att uppnå den lägsta kostna- den vad gäller utrymme, effekt eller vilken som helst annan tänkbar kostnadsparameter (som kan användas för att utvidga modellen).
Vi kommer nu att utvidga dessa utföringsformer i två riktningar. Den första riktningen är en generalisering av algoritmen till en familj av algoritmer där antalet bitar som är invol- verade i matchmaking kan reduceras på bekostnad av en ökning av utrymmeskostna- derna för crunchern. Detta kommer att tillföra en ytterligare optimeringsparameter som ska beaktas vid optimering av den totala kostnaden. Den andra riktningen hänför sig till implementering av inkrementella uppdateringar.
Vi börjar med den första riktningen. Det antas ovan att varje specialanpassad cruncher i varje HCB beräknar ett enda värde som svarar mot ett crunchat huvudfält för den respektive dimensionen och HCB:et. Dock är det möjligt att slå ihop två specialanpas- sade crunchrar till en specialanpassad cruncher som representerar två gånger så många 10 15 20 25 30 intervall så länge som ett värdepar beräknas för varje dimension och par av HCB:er. På detta vis delar två HCB:er cruncher. Kostnaden för detta vad gäller utrymme för att lagra intervallgränser påverkas inte eftersom det totala antalet intervall i de två crunchrarna är detsamma som summan av antalet intervall i de ursprungliga crunchrarna. Dock för- dubblas mängden lagrade data eftersom varje intervall är associerat till två datafält istället för endast ett. Fördelen med detta tillvägagångssätt är att antalet aktiva bitari crunchrarna reduceras med en faktor två, vilket betyder att vi har en än ytterligare potentiell awägning som kan användas för att minska kostnaderna ytterligare.
Nu definierar vi ett generaliserat hybridklassificeringsb/ock (GHCB) med parametrar M och N att vara flerfältspaketklassificerare som utgörs av en cruncher och M matchma- kers, inkluderande vilken som helst av de utföringsformer som beskrivits ovan, där varje matchmaker har förmåga att representera N regler, där crunchern beräknar en uppställ- ning av M crunchade huvudfält istället för bara ett enda crunchat huvudfält, för varje dimension, där varje crunchat huvudfält behandlas associerat till matchmakern med samma uppställningsindex som det crunchade huvudfältet.
Fig 10 visar ett generaliserat hybridklassificeringsblock, för att beräkna indexet för den första matchningsregeln 4 för fràgenyckeln 3, bestående av en cruncher 2 och en upp- ställning av matchmakers 1 som löper parallellt.
Genom att använda utvidgade hybridklassificeringsblock kan vi generalisera flerfältspa- ketklassificerarbegreppet ännu vidare.
Vi definierar en generaliserad hybridklassificerare (GHC) med parametrar L, M, och N att vara en flerfältspaketklassificerare, inkluderande vilken som helst av utföringsformerna ovan, som har förmåga att representera n = L * M * N regler, bestående av L generalise- rade hybridklassificeringsblock med parametrar M och N som löper parallellt.
Fig 11 visar en flerfältspaketklassificerare, för att beräkna indexet för den första match- ningsregeln 4 för fràgenyckeln 3, bestående av en uppställning av generaliserade hybridklassificeringsblock 5 som löper parallellt. 10 15 20 25 30 Innan vi går vidare för att diskutera specifika utföringsformer, kommer vi att la en minut för att diskutera hur det generaliserade hybridklassificerarbegreppet är relaterat till tidi- gare beskrivna utföringsformer. Genom att välja L = M = 1 och N = n erhåller vi en enkel flerfältsklassificerare där en ensam cruncher betjänar en enda matchmaker där alla (crunchade) regler lagras. En annan ytterlighet skulle vara att ha L = 1, M = n och N = 1, vilket innebär att det är en enda cruncher som beräknar en uppställning av n crunchade huvudfält för varje dimension som skickas till en mycket enkel matchmaker för varje regel. För att konstruera en flerfältspaketklassificerare med M'hybridklassiflceringsblock där varje hybridklassificeringsblock representerar N' regler, enligt beskrivningen ovan, använder vi en generaliserad hybridklassificerare med parametrar L = M”. M = 1, och N = N'.
Vi är nu klara att beskriva några ytterligare utföringsformer.
I en ytterligare utföringsform som kan användas I kombination med alla tidigare beskrivna utföringsformer utgörs en flerfältspaketklassificerare som kan lagra n = L * M * N regler av en generaliserad hybridklassificerare med parametrar L, M och N.
I en ytterligare utföringsform som kan användas i kombination med alla tidigare beskrivna utföringsformer utgörs en flerfältspaketklassificerare som kan lagra n = L * M * N regler av en generaliserad hybridklassificerare med parametrar L, M och N, där L, M och N väljs för att uppnå den lägsta kostnaden vad gäller utrymme, effekt eller vilket som helst annat tänkbart kostnadsmått.
I en ytterligare utföringsform som kan användas i kombination med alla tidigare beskrivna utföringsformer utgörs en flerfältspaketklassificerare som kan lagra n = L * M * N regler av en generaliserad hybridklassificerare med parametrar L, M och N, där L, M och N väljs för att uppnå den lägsta kostnaden vad gäller utrymme, effekt eller vilket som helst annat tänkbart kostnadsmått. medan hänsyn tas till att uppställningen av M resultat som lagras med varje intervall i varje cruncher frambringar en ökning i antalet passiva SRAM-bitar som krävs för att representera flerfältspaketklassificeraren.
Nu går vi vidare för att diskutera den andra riktningen med inkrementella uppdateringar.
Låt u(L, M, N) vara vår uppdateringskostnadsbudget, dvs det maximala antalet minnes- 10 15 20 25 30 'fl C13 Na LÜ LT' fil f-J l åtkomster etc vi tillåts spendera på en uppdatering. Vi betraktar datastrukturen vara full när ytterligare rekonstruktionsarbete skulle krävas för att ge utrymme för ytterligare till- växt. Huvudprincipen bakom vår underhållsstrategi är att faktiskt spendera alla dessa minnesåtkomster på varje uppdatering med förhoppningen att skjuta upp den första allt- för dyra uppdateringen så mycket som möjligt. l syfte att tillföra stöd för lnkrementella uppdateringar, låt oss betrakta en paketklassificerare som består av en generaliserad hybridklassificerare med parametrar L', M' och N' så att L' * M” N' = n. Vår uppdate- ringskostnadsbudget svarar mot kostnaden för fullständig rekonstruktion av ett par av intilliggande GHCB:er. Genom att utföra ett stycke rekonstruktion för varje uppdatering hoppas vi sedan att kunna fördela reglerna jämnt för att fördröja insättning i en full GHCB så mycket som möjligt. För att uppnà detta behöver vi en underhâI/sstrategr' som (i) fastställer vilka två GHCB:er som ska rekonstrueras, (ii) fastställer riktningen för för- flyttning av reglerna (från vilken GHCB, till vilken GHCB), och (iii) fastställer hur många regler som ska flyttas. Vi kommer nu att beskriva en sådan strategi som kallas Hinklist- underhåll (eng. "Bucket List Maintenance“).
Vi kommer att beskriva strategin i termer av ett system av M GHCB:er som vart och ett kan lagra upp till N regler. Sambandet mellan parametrarna för den generaliserade hybridklassificeraren ges sålunda av: M = L” M' och N V= N”.
Låt oss första presentera problemet i en något mer abstrakt form. Låt 81, BZ, . . . , BM vara ett antal hinkar som svarar mot de M GHCB:erna. Varje hink kan lagra upp till N poster som svarar mot N regler. Låt x[i,1], . ,x[i, mi] vara indexen för de poster som lagras i hink Bi. Eftersom vi tillåts rekonstruera två intilliggande GHCB:er kan vi flytta ett godtyckligt antal poster mellan två intilliggande hinkar. När en post sätts in i en full hink lyckas inte detta, och hinksystemet betraktas vara fullt. Endast insättningar behöver beaktas eftersom varje struken operation reducerar n med 1 medan samma mängd rekonstruktionsarbete som en insättningsoperation finansieras. Rollen för en underhålls- strategi är att maximera antalet poster som kan sättas in genom att så mycket som möj- ligt fördröja inträffandet av insättning i en full hink. Vi utför insättningar i ett antal faser, där den pågående fasen slutar antingen när en hink blir full eller när M poster har satts in, vilket som än händer först. Betrakta en fas där m s M poster har satts in. För varje insatt post vi kan flytta ett godtyckligt antal poster mellan två intilliggande hinkar. Detta kallas en förflyttning. 10 15 20 25 30 5531 SSE! lå Sats 10 (a) m - 1 förflyttningar är tillräckligt för att fördela dessa m poster jämnt, dvs en post per hink, oavsett hur de sattes in, (b) dessa m - 1 förflyttningar kan utföras efter den pågående fasen.
Initialt har vi 0 poster i varje hink eller likvärdigt utrymme för NO = N poster. Givet att N 2 M kommer M poster att sättas in i den första fasen. Enligt Sats 10 kan dessa fördelas jämnt mellan hinkarna, genom att utföra underhållet efter den första fasen. När nästa fas börjar kommer det att finnas 1 post per hink eller likvärdigt utrymme för N1 = NO - 1 = N - 1 ytterligare poster. Detta kan upprepas tills Ni = N - i < M, och det totala antalet insatta poster fram till denna punkt är M -(N - M). l fas Ni är det minst antalet element som kan sättas in M - 1 om alla poster hamnar i samma hink, och i de återstående faserna reduceras antalet insättningar med 1 i varje fas tills endast en post kan sättas in.
Enligt Sats 10 kan underhåll fortfarande utföras men endast för ett begränsat antal hin- kar. Om vi riktar underhàllsinsatser mot de hinkar där insättningar sker, kan vi fortfa- rande garantera att det tillgängliga utrymmet inte minskar med mer än en post för varje fas. Följaktligen kan ytterligare summa(i, í= 1..M) = M - (M + 1)/ 2 poster sättas in, vilket ger totalt MN - M- (M - 1) / 2 poster. För varje insättning i den pågående fasen kan vi utföra en förflyttning (för underhàllsarbete) för den tidigare fasen. Skillnaden i antal insatta poster är högst 1 mellan den tidigare och den pågående fasen. Enligt Sats 10 (a) är antalet insättningar i den pågående fasen sålunda tillräckligt för att betala för under- hållet för den tidigare fasen och Sats 10 (b) följer. Det återstår att bevisa Sats 10 (a). För att skilja mellan poster som inte har underhàllits från den tidigare fasen och poster som sätts in i den pågående fasen, färgar vi posterna från den tidigare fasen blå och de insatta posterna röda. Betrakta första fallet när m = M. Underhållsprocessen opererar huvudsakligen på hinkarna på ett sätt från vänster till höger (med ett undantag). Låt Bi vara antalet blåfposteri hink i, och k indexet för den längst till höger befintliga, fullbor- dade hinken - k är initialt noll. Vi startari högerriktad mod: Finn den längst till vänster befintliga hinken r som satisfierar summa(B_i, j = k + 1..r) 2 r - k. Om r = k + 1, flytta Br - 1 (möjligtvis noll) poster från hink r till hink r + 1 och öka k med 1 eftersom hink r är full- bordad. I annat fall (r > k +1), sätt I = roch gå in i vänsterriktad mod. l vänsterriktad mod arbetar underhållsprocessen enligt följande: Om 1= k + 1 ökas k till r - 1 och vi går direkt in i högerriktad mod. I annat fall flyttas f- (k + 1) - summa(Bj,j= k + 1..l - 1) poster från hink I till hink I - 1, och I minskas med 1. Figur 4 illustrerar hur fullbordan av tre hinkar 10 15 20 25 30 38% "lä åstadkoms i tre steg i högerriktad mod följt av fullbordan av fyra hinkar i vänsterriktad mod i de sista fyra stegen. Växling mellan höger- och vänsterriktad mod kostar inget. För varje förflyttning som utförs i högerriktad mod fullbordas en hink. I vänsterriktad mod finns det två fall. Om det sker endast en förflyttning före växling till högerriktad mod full- bordas en hink. l annat fall fullbordas ingen hink i den första förflyttningen, men detta kompenseras genom fullbordan av två hinkar i den sista. För varje förflyttning mellan den första och den sista förflyttningen fullbordas en hink. För att sammanfatta detta fullbordar varje förflyttning en hink och följaktligen finns det M - 1 hinkar som innehåller exakt l blå post var efter M - 1 förflyttningar. Det finns M blå poster totalt och följaktligen måste även den sista hinken innehålla 1 blå post (och år sålunda också fullbordad). Vi har bevisat Sats 10 (a) för m = M. Om m < M kan vi använda en från vänster till höger arbe- tande, snål algoritm för att dela upp uppsättningen av hinkar i ett minsta antal områden där antalet hinkar i varje område är lika med det totala antalet blå poster i detta område.
Vissa hinkar kommer inte att vara en del av ett område, men detta är förväntat eftersom färre än M blå poster är tillgängliga. Inom varje område kör vi underhållsprocessen på exakt samma sätt som för m = M. Detta avslutar beviset av Sats 10 (a) liksom beskriv- ningen och analysen av vår underhållsstrategi.
Vi har några ytterligare utföringsformer som är baserade på denna diskussion. l en ytterligare utföringsform som kan användas i kombination med alla tidigare beskrivna utföringsformer utgörs en dynamisk flerfältspaketklassificerare som kan lagra åtminstone n = MN - M- (M - 1) I 2 regler av M GHCB:er, som vart och ett har förmåga att representera maximalt N regler, där alla GHCB:er exekveras parallellt, där inkre- mentella uppdateringar implementeras genom att fullständigt rekonstruera ett par av intilliggande GHCB:er, för varje insättning eller strykning av en regel, valda enligt den hinklistunderhållsstrategi som beskrivits ovan som betyder att båda hinkarna som ska rekonstrueras väljs liksom hur många regler som ska flyttas mellan hinkarna. l en ytterligare utföringsform som kan användas i kombination med alla tidigare beskrivna utföringsformer utgörs en dynamisk flerfältspaketklassificerare som kan lagra åtminstone n = MN - M - (M - 1) / 2 regler av M GHCB:er, som vart och ett har förmåga att representera maximalt N regler, där alla GHCB:er exekveras parallellt, där inkre- mentella uppdateringar implementeras genom att fullständigt rekonstruera ett par av ïšåfi 335 intilliggande GHCB:er, för varje insättning eller strykning av en regel, valda enligt den hinklistunderhållsstrategi som beskrivits ovan som betyder att båda hinkarna som ska rekonstrueras väljs liksom hur många regler som ska flyttas mellan hinkarna, där M och N väljs för att uppnå den lägsta kostnaden vad gäller utrymme, effekt eller vilket som helst annat tänkbart kostnadsmàtt.

Claims (1)

1. 0 15 20 25 30 Patentkrav Förfarande för att utföra specifika datavidarebefordringsàtgärder som beror på karaktären på datatrafik innefattande datapaket, vilket förfarande innefattar stegen att: - ta emot inkommande datatrafik av en specifik karaktär, tillhörande åtminstone en specifik klass bland ett antal fördefinierade klasser, (steg 201) - klassificera datatrafiken genom att fastställa karaktären på datafrafiken, vilket ombesörjs av en process för att inspektera värden på ett eller flera valda huvudfälti ett adressområde hos ett datapaket, (steg 202), och välja en första matchande klass från en ordnad lista med klasser som tillhandahåller fierdimensionell klassificering med hjälp av crunchning för att producera en crunchad frågenyckel följt av match- making för att välja den första matchande klassen från en ordnad lista med crun- chade klasser som genereras genom crunchning av den ursprungliga listan med klasser, (steg 203), genom att analysera listan med regler och framställa en enfältsklassificerare per dimension, i vilket förfarande matchmaking av den crunchade nyckeln i den ordnade listan med crunchade klasser utförs med hàrdvaruaccelererad linjär sökning. Förfarande enligt krav 1, i vilket en enfältsklassificerare tillhandahålls för att utföra crunchning i varje dimension. Förfarande enligt något av föregående krav, i vilket crunchern är organiserad såsom en vektor av crunchningsmoduler med potentiellt en crunchningsmodul för varje dimension. Förfarande enligt något av föregående krav, där varje crunchningsmodul är organise- rad såsom en vektor av crunchrar för varje typ huvudfält. 10 15 20 25 30 10. 11. 12. iliïi OJ ...a 335% ll Förfarande enligt något av föregående krav, där ändamålet med crunchem är att komprimera adressomrádet för varje dimension, (steg 204). Förfarande enligt något av föregående krav, där crunchning exekveras i varje dimen- sion samtidigt, (steg 204). Förfarande enligt något av föregående krav, där crunchning exekveras l varje dimen- sion sekventiellt, (steg 204). Förfarande enligt något av kraven 1-7, innefattande steget att analysera listan med klasser i varje dimension för att identifiera potentiella startpunkter som tillhandahåller uppsättningen Z, där Z = {z0, z1,...,zm} , där zj < zj+1 är uppsättningen av mindre slutpunkter av alla möjliga intervall [zO, z1 - 1] , (21, z2 - 1] , . . . , [zm, maxU] (steg 205). Förfarande enligt krav 8, i vilket varje sådan uppsättning av potentiella startpunkter representeras i en cruncher som utgörs av en enfältsklassificerare. i vilken resultatet av en look up tillhandahålls genom antalet av de förekommande intervallen, (steg 206) Förfarande enligt krav 9, i vilket används en cruncher för varje dimension och intervallen avbildas så att det första intervallet av varje typ avbildas till det tal som följer pà avbildningen av det sista intervallet av den tidigare typen i nämnda dimension. Förfarande enligt krav 10, innefattande steget att reproducera varje intervall i varje klass till ett motsvarande crunchat intervall genom att använda nämnda crunchningsmodul som är tillhandahållen förjust denna dimension. Förfarande enligt något av kraven 1-11, i vilket matchningen av den crunchade nyckeln i den ordnade listan med crunchade klasser utförs med användning av linjär sökning. 10 15 20 25 30 13. 14. 15. 16. 17. 18. 19. 20. åíšëfi 935 'lêš Förfarande enligt något av kraven 1-11, i vilket matchningen av den crunchade nyckeln i den ordnade listan med crunchade klasser utförs med användning av godtycklig flerfältsklassificerare som är baserad på fullständig sökning. Förfarande enligt något av kraven 1-11, i vilket matchningen av den crunchade nyckeln i den ordnade listan med crunchade klasser utförs med användning av godtycklig beslutsträdsbaserad flerfältsklassificerare. Förfarande enligt något av kraven 1-11, i vilket matchningen av den crunchade nyckeln i den ordnade listan med crunchade klasser utförs med användning av godtycklig flerfältsklassificerare som är baserad på uppdelning iflerfaldiga enfältsklassificeringar följt av kombination av resultat. Förfarande enligt något av kraven 1-11, i vilket matchningen av den crunchade nyckeln iden ordnade listan med crunchade klasser utförs med användning av godtycklig flerfältsklassificerare som är baserad på databehållarpartitionering. Förfarande enligt något av kraven 1-11, i vilket matchningen av den crunchade nyckeln i den ordnade listan med crunchade klasser utförs med användning av godtycklig befintlig flerfältsklassificerare. Förfarande enligt något av kraven 1-11, i vilket matchningen av den crunchade nyckeln i den ordnade listan med crunchade klasser utförs med användning av hårdvaruaccelererad linjär sökning i form av ett TCAM-minne. Förfarande enligt något av kraven 1-11, i vilket matchningen av den crunchade nyckeln i den ordnade listan med crunchade klasser utförs med användning av hårdvaruaccelererad linjär sökning, såsom ett utvidgat TCAM-minne, där varje crunchat fält jämförs med startpunkten och ändpunkten av varje intervall i dimension av varje klass samtidigt och en prioritetskodare används för att välja den första matchande klassen. Datorprogramsprodukt som går att ladda in direkt i internminnet hos en digitaldator, kännetecknad därav att nämnda produkt innefattar mjukvarukodsmedel för att utföra 53? fiäš lq stegen enligt krav 1. 21. Datorprogramsprodukt innefattande ett datorläsbart medium, kännetecknad därav att på nämnda medium finns det iagrat datorprogramkodsmedel, när det är laddat i en 5 dator, för att förmå datorn att utföra stegen enligt krav
1.
SE0700378A 2006-11-03 2007-02-15 Förfarande och datorprogramsprodukt för flerfältsklassificiering i ett datakommunikationsnät SE531989C2 (sv)

Priority Applications (4)

Application Number Priority Date Filing Date Title
SE0700378A SE531989C2 (sv) 2006-11-03 2007-02-15 Förfarande och datorprogramsprodukt för flerfältsklassificiering i ett datakommunikationsnät
PCT/SE2007/050816 WO2008054323A2 (en) 2006-11-03 2007-11-02 Multi field classification in data communications network
EP07835400A EP2078393A4 (en) 2006-11-03 2007-11-02 METHOD, DEVICE AND SYSTEM FOR MULTI-FIELD CLASSIFICATION IN A DATA COMMUNICATION NETWORK
US12/446,595 US8477773B2 (en) 2006-11-03 2007-11-02 Method, device and system for multi field classification in a data communications network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
SE0602336A SE531947C2 (sv) 2006-11-03 2006-11-03 Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk
SE0700378A SE531989C2 (sv) 2006-11-03 2007-02-15 Förfarande och datorprogramsprodukt för flerfältsklassificiering i ett datakommunikationsnät

Publications (2)

Publication Number Publication Date
SE0700378L SE0700378L (sv) 2008-05-04
SE531989C2 true SE531989C2 (sv) 2009-09-22

Family

ID=39456239

Family Applications (3)

Application Number Title Priority Date Filing Date
SE0602336A SE531947C2 (sv) 2006-11-03 2006-11-03 Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk
SE0700378A SE531989C2 (sv) 2006-11-03 2007-02-15 Förfarande och datorprogramsprodukt för flerfältsklassificiering i ett datakommunikationsnät
SE0700691A SE531954C2 (sv) 2006-11-03 2007-03-19 Förfarande och datorprogramsprodukt för flerfältsklassificering i ett datakommunikationsnät

Family Applications Before (1)

Application Number Title Priority Date Filing Date
SE0602336A SE531947C2 (sv) 2006-11-03 2006-11-03 Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk

Family Applications After (1)

Application Number Title Priority Date Filing Date
SE0700691A SE531954C2 (sv) 2006-11-03 2007-03-19 Förfarande och datorprogramsprodukt för flerfältsklassificering i ett datakommunikationsnät

Country Status (2)

Country Link
US (1) US8477773B2 (sv)
SE (3) SE531947C2 (sv)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101861722A (zh) * 2007-11-16 2010-10-13 法国电信公司 用于对分组进行归类的方法和装置
CN103858386B (zh) 2011-08-02 2017-08-25 凯为公司 用于通过优化的决策树执行包分类的方法和装置
US8719450B2 (en) * 2011-10-31 2014-05-06 Cable Television Laboratories, Inc. Internet protocol (IP) address translation
US8681795B1 (en) * 2011-12-28 2014-03-25 Juniper Networks, Inc. Fixed latency priority classifier for network data
WO2013119173A2 (en) * 2012-02-07 2013-08-15 Oricane Ab Classification engine for data packet classification
US9544402B2 (en) * 2013-12-31 2017-01-10 Cavium, Inc. Multi-rule approach to encoding a group of rules
US11360681B2 (en) * 2020-05-27 2022-06-14 Xiaoliang Zhao Systems and methods for scalable shared memory among networked devices comprising IP addressable memory blocks

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289013B1 (en) * 1998-02-09 2001-09-11 Lucent Technologies, Inc. Packet filter method and apparatus employing reduced memory
US7043467B1 (en) 2000-02-08 2006-05-09 Mips Technologies, Inc. Wire-speed multi-dimensional packet classifier
US6970462B1 (en) * 2000-04-24 2005-11-29 Cisco Technology, Inc. Method for high speed packet classification
US7193997B2 (en) * 2001-03-19 2007-03-20 International Business Machines Corporation Packet classification
US20030030575A1 (en) * 2001-05-07 2003-02-13 Harmonic Data Systems Ltd. Lossless data compression
US7002965B1 (en) * 2001-05-21 2006-02-21 Cisco Technology, Inc. Method and apparatus for using ternary and binary content-addressable memory stages to classify packets
JP2003338830A (ja) * 2002-03-12 2003-11-28 Matsushita Electric Ind Co Ltd メディア送信方法、メディア受信方法、メディア送信装置及びメディア受信装置
US7668160B2 (en) * 2005-03-31 2010-02-23 Intel Corporation Methods for performing packet classification
US7596141B2 (en) * 2005-06-30 2009-09-29 Intel Corporation Packet classification using encoded addresses
US7809009B2 (en) * 2006-02-21 2010-10-05 Cisco Technology, Inc. Pipelined packet switching and queuing architecture

Also Published As

Publication number Publication date
SE531947C2 (sv) 2009-09-15
US8477773B2 (en) 2013-07-02
US20100238922A1 (en) 2010-09-23
SE0700378L (sv) 2008-05-04
SE0700691L (sv) 2008-05-04
SE531954C2 (sv) 2009-09-15
SE0602336L (sv) 2008-05-04

Similar Documents

Publication Publication Date Title
US8472446B2 (en) Method for data packet classification in a data communications network
Meiners et al. Split: Optimizing space, power, and throughput for TCAM-based classification
Jedhe et al. A scalable high throughput firewall in FPGA
SE531989C2 (sv) Förfarande och datorprogramsprodukt för flerfältsklassificiering i ett datakommunikationsnät
Van Lunteren Searching very large routing tables in wide embedded memory
JP2004537921A (ja) 高速パケット転送のための方法及びシステム
JP3881663B2 (ja) フィールドレベルツリーを用いたパケット分類装置及び方法
Le et al. Memory-efficient and scalable virtual routers using FPGA
Nikitakis et al. A memory-efficient FPGA-based classification engine
Chang et al. Range-enhanced packet classification design on FPGA
CN101500012B (zh) 一种报文分类方法和系统
Sun et al. An on-chip IP address lookup algorithm
Le et al. Memory-efficient ipv4/v6 lookup on fpgas using distance-bounded path compression
Chang et al. A high-speed and memory efficient pipeline architecture for packet classification
Chiu et al. The design and implementation of a latency-aware packet classification for OpenFlow protocol based on FPGA
Erdem et al. Clustered hierarchical search structure for large-scale packet classification on FPGA
Ghosh et al. A hash based architecture of longest prefix matching for fast IP processing
Erdem et al. Value-coded trie structure for high-performance IPv6 lookup
EP2078393A2 (en) Method, device and system for multi field classification in a data communications network
Hsieh et al. A novel dynamic router-tables design for IP lookup and update
Hanna et al. Advanced hashing schemes for packet forwarding using set associative memory architectures
Guinde et al. Efficient packet classification on FPGAs also targeting at manageable memory consumption
Chang et al. Efficient IP routing table lookup scheme
Liu et al. Memory-efficient RMT Matching Optimization Based on MBitTree
Sun et al. Bidirectional range extension for TCAM-based packet classification

Legal Events

Date Code Title Description
NUG Patent has lapsed