SE532426C2 - Metod för datapaketklassificering i ett datakommunikationsnät - Google Patents
Metod för datapaketklassificering i ett datakommunikationsnätInfo
- Publication number
- SE532426C2 SE532426C2 SE0801231A SE0801231A SE532426C2 SE 532426 C2 SE532426 C2 SE 532426C2 SE 0801231 A SE0801231 A SE 0801231A SE 0801231 A SE0801231 A SE 0801231A SE 532426 C2 SE532426 C2 SE 532426C2
- Authority
- SE
- Sweden
- Prior art keywords
- rules
- rule
- data
- sub
- packet
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H04L12/569—
-
- H04L29/0653—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Description
25 30 53.2 ÅRE poltnummer (SP) och det femte fältet är benämnt protokoll (PR). De första och andra fälten representeras av prefixer, de tredje och tjärde fälten representeras av tal och det femte fältet representeras av ett protokollnummer.
För att sammanfatta tillhandahålls specifika datavidarebefordrings- ochleller behandlingsàtgärder som beror på karaktären på datatrafiken, så som blockering av datatrafik, genom klassificering av inkommande data, så som paketklassificering eller flerfältsklassiticering. Detta tillhandahålls av en process för att inspektera värden på valda huvudfält hos ett datapaket och välja en första matchande regel. Valet tillhandahålls genom att från en lista med regler eller klasser välja (eller hitta) den första regeln som matchar ett paket. I princip består varje regel av D intervall där D är antalet huvudfält i paketet (eller det potentiella antalet huvudfält av intresse). Ett paket sägs matcha en regel när värdet pà varje huvudfält hos paketet ligger inom det motsvarande intervallet i regeln. Med andra ord måste värdena som innehålls i alla huvudfält hos paketet matcha sitt motsvarande intervall i regeln.
För att kunna fastställa till vilket flöde varje paket hör, inspekteras sålunda huvudfälten hos paketen och jämförs med listan med regler som identifierar varje flöde. Detta refereras i det följande till såsom "paketklassificefingproblemef', vilket är ett problem som ska lösas. Paketklassiflcerlngsproblemet är att fastställa den första matchande regeln för varje inkommande paket vid en router.
Det finns många algoritmer som löser paketklassificen'ngsproblemet och dessa algoritmer kan i typiska fall brytas nertill fyra typer: fullständig sökning, beslutsträd. uppdelning och databehållare (en: "Tuple space").
Fullständig sökning De två vanligaste tillvägagàngssätten vid fullständig sökning är linjär sökning och parallell sökning. Linjär sökning kontrollerar varje regel i klassificeraren tills en matchning hittas. Parallell sökning delar in klassificeraren i delmängder som innehåller en regel var och sedan genomsöks delmângderna parallellt. Den parallella sökningen kan göras med användning av “Temary Content Addressable Memory" (T CAM) där en processor är tilldelad varje regel. 10 15 20 25 30 53.2 4135 Beslutsträd Klassificeraren analyseras för att göra ett antal snitt och sedan konstrueras ett beslutsträd utifrân snitten. En innyckel konstrueras utifrån huvudfälten hos paketet och beslutsträdet gàs igenom tills ett löv hittas.
Uggdelning Flerfâltssökningarna delas upp i förekomster av enfâltssökningar. Oberoende sökningar på varje paketfält görs och resultaten kombineras till sist.
Databehàllare Klassificeraren partitioneras enligt antalet specificerade bitar i reglema. Detta tillvägagångssätt är baserat pà antagandet att de intervall som utgör reglema representeras av pretixer. Partitionema eller en delmängd av partitionerna proberas med användning av sökningar med exakt matchning.
Sammanfattning av uppfinningen Föreliggande uppfinning beskriver en innovativ algoritm som löser paketklassificeringsproblemet baserat pà snittning och konstruktion av ett beslutsträd utifrån snitten. Algoritmen kräver 0(log(n)) lookup-tid och Q(n°) lagringsutrymme under sämsta förhållande.
Enligt en första utföringsfonn av föreliggande uppfinning tillhandahålls denna genom en metod för att utföra speclfika datavidarebefordringsâtgarder som beror på karaktären på datatrafik innefattande datapaket. Metoden 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 av 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 med hjälp av en klassificerare. Klassificeraren analyseras för att göra ett antal snitt och sedan konstrueras ett beslutstråd utifrån snitten. Snitten är begränsade till ett snitt i varje dimension. För sökning konstrueras en innyckel utifrån huvudfälten hos paketet och beslutsträdet gås igenom tills ett löv hittas. 10 15 20 25 30 532 425 Enligt en andra utföringsform av föreliggande uppfinning utförs snitten oberoende av varandra en gäng i varje dimension.
Enligt en tredje utföringsform av föreliggande uppfinning innefattar metoden vidare steget att räkna intervallstartpunkteri den dimension som snittas.
Enligt en fjärde utföringsforrn av föreliggande uppfinning utförs snittet vid en intervallstartpunkt.
Enligt en femte utföringsform av föreliggande uppfinning utförs snittningen rekursivt tills det enbart finns en regel i varje delomräde.
Enligt en sjätte utföringsforrn av föreliggande uppfinning byggs beslutsträdet först på bredden.
Enligt en sjunde utföringsform av föreliggande uppfinning byggs ett beslutsträd som är tillräckligt litet för att lagras i ett enda minnesblock, vilket betyder ett block med minne, dvs en cache-linje eller ett diskblock, som åtkoms på en tidsenhet, först på djupet i ett separat minnesblock som är allokerat för detta beslutsträd.
Enligt en åttonde utföringsform av föreliggande uppfinning är ett ytterligare möjligt sätt att fastslà var snittet ska placeras att analysera regellistan och mäta dess hårdhet med någon kostnadsfunktion. Med hårdhet avses här hur svår en lista med regler är att representera jämfört med en annan lista med regler. Pâ detta vis det är möjligt att fastslá huruvida en partition är bättre än en annan, eller uttryckt på ett annat sätt, om nod X är bättre än nod Y. Längden av regellistan kan vara ett exempel på en kostnadsfunktion.
Det kan vara möjligt att erhålla en ännu bättre kostnadsfunktion.
Enligt en nionde utföringsform av föreliggande uppfinning kan de delområden som genereras av snitten analyseras för att reducera antalet pekare och den mängd lagringsutrymme som krävs. Delområdena kan även analyseras för att se om inga fler snitt ska göras, vilket betyder att en linjär sökning görs på reglerna i ett delomräde istället. De delområden som genereras kan alltid slås ihop med varandra så länge som den relativa ordningen mellan reglerna inte förstörs. En analysator eller en 10 15 20 25 30 532 #25 .__ "_\ kostnadsfunktion kan användas för att fastslå huruvida delområden ska slås ihop eller inte, eller huruvida inga fler snitt ska placeras i ett delområde. Till exempel kan delområden innehålla ett antal regler som är desamma och om dessa delområden slås ihop, avlägsnas dupllcerade regler och en pekare lagras för dessa hopslagna delområden. Ett ytterligare exempel är ett delområde som har ett litet antal regler i sig, i vilket fall det kan vara bättre att inte snitta ytterligare, vilket låter reglerna vara tillsammans, och utföra en linjär sökning på reglema i detta delområde istället. För ett exempel på hur delomràdena ska analyseras, betrakta den fiktiva noden med delområden i Figur 10.1. Noden har åtta delområden efter snittning en gång i varje dimension. Från början kommer det att finnas åtta pekare till delområdena. Om regelllstoma i varje delområde analyseras kan antalet pekare reduceras, vilket sålunda reducerar lagringsutrymmet. Vid (1) i Figur 10.1 finns det tre delområden som alla innehåller regeln A och dessa delområden kan slås ihop till ett delområde som enbart kräver en pekare. l det fallet kommer det att enbart vara en förekomst av regel A, vilket leder till en reduktion av mängden lagringsutrymme. Efter att regellistorna slagits ihop, kommer den rekursiva snittningen att fortsätta på de nya delområdena. Vid (2) fortsätter den rekursiva snittningen direkt. \f|d (3) âr de första två regellistorna desamma och den tredje regellistan innehåller enbart en regel så delomràdena slås ihop. Vid (4) fortsätter den rekursiva snittningen direkt.
Enligt en tionde utföringsform av föreliggande uppfinning kan den pekaruppställning som varje nod innehåller komprimeras genom att använda Luleå-algoritmen eller XTC- algoritmen eller ännu en annan algoritm som komprimerar en pekaruppställning.
Huvudidén med Luleå-algoritmen är att identifiera de redundanta pekama och lagra dessa implicit medan ett minimalt antal pekare lagras explicit. Detta reducerar antalet redundanta pekare som lagras och reducerar sålunda lagringsutrymme.
Enligt en ytterligare aspekt av föreliggande uppfinning tillhandahålls en datorprogramprodukt, med datorprogramkodsmedel för att få en dator att exekvera metoden enligt ovan när programmet körs på en dator.
Det ska förstås att datorprogramprodukten är anpassad för att utföra utföringsforrner som hänför sig till den ovan beskrivna metoden, såsom är tydligt från den bifogade uppsättningen av osjälvstândiga systempatentkrav. 10 15 20 25 30 532 426 Öw.
Ytterligare särdrag hos och fördelar med föreliggande uppfinning beskrivs av de bilagda osjälvständiga patentkraven.
Kort beskrivning av ritningarna För att ytterligare förklara uppfinningen kommer nu utföringsforrner som valts såsom exempel att beskrivas närmare med hänvisning till ritningama, av vilka: Fig 1.1 illustrerar ett datapaket med huvudfält och data; Fig 1.2 illustrerar en klassificerare med sex regler och fem fält; Fig 10.1 illustrerar en nod med regellistor som kan analyseras; F ig 2.1 illustrerar en datastruktur som löser datapaketklassificeringproblemet; Fig 2.2 illustrerar ett exempel pà Iokaliseringsproblemet, nämligen att finna det område som innehåller punkten q; Fig 3 är ett flödesschema som visar metoden enligt en utföringsforrn av föreliggande uppfinning; Tabell 3.1 illustrerar en klassifrcerare med elva regler med två fält var; Fig 3.1 illustrerar en geometrisk representation av regellistan som visas i Tabell 3.1; Fig 4 illustrerar en cruncherfmatchmaker; Fig 5 illustrerar ett schematiskt blockdiagram av en mjukvarulösning enligt en utföringsform av föreliggande uppfinning; Fig 6 illustrerar en hybridflerfältsklassifioerare som består av ett enda hybridklassificeringsblock som är utformat för 64k regler; Fig 8.1 illustrerar intervallstartpunkter i den geometriska vyn: Fig 8.2 illustrerar delområden som är genererade genom snittning vid medianen; Fig 8.3 illustrerar nod som skapats genom att göra ett snitt i varje dimension såsom i Figur 8.2; Fig 8.4 illustrerar innyckel med D fält, nod med 2D områden och lista med 2D pekare; Tabell 9.1 illustrerar en exempelregellista med tvà regler som har tvâ fält var, och; Fig 9.1 illustrerar en geometrisk representation av regellistan iTabell 9.1 där ett snitt är placerat vid medianen av intervallstartpunkterna i Fältl.
Beskrivning av utföringsformer av uppfinningen Innan en detaljerad behandling av utföringsformer av uppfinningen ges, ska en generell datastruktur som löser paketklassificeríngsproblemet som bildar en grundval for 10 15 20 25 30 532 425 föreliggande uppfinning diskuteras i närmare detalj för att underlätta förståelsen av principema för uppfinningen.
D-dimensionell paketklassificering, eller helt enkelt paketklasslficering, 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 izte regeln och [xij, yij] det jzte intervallet av regel Rí. Observera att för adresser så representeras intervall ibland av prefix och för protokoll av enkla punkter.
Ett paket med huvudfält h1, h2. . . . , hD matchar regel Ri om och enbart om xü 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 heuristlk för att utnyttja strukturen hos verkliga regellistor, eller en algoritmisk lösning, vilken kommer att beskrivas enligt följande.
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 lPv6-intervall i alla regler.
Regler som består av två adresser och två portar kommer ungefär att växa från 2-32+2-'l6 = 96 bitar till 2-128+2-16 = 288 bitar om intervallen representeras av prefixer eller från 4-32+4~16 = 192 till 4-128+4-16 = 576 bitar om intervallen representeras såsom godtyckliga värdemängder. För en hårdvarulösning översätts detta direkt till ökat kortutrymme och strömförbrukning för ett fixt antal regler.
Såvitt vi vet finns det inga benchmarks för algoritmiska lösningar och lPvö-baserade regler och det är därför svårt att uttala sig säkert om förluster som en lPvö-ö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 storleken på noderna. Det kommer även att ha avsevärd effekt pà lookup-hastigheten om noderna är noggrant dimensionerade och injusterade för att utnyttja minnesblockstorleken b såsom vi gör med blockträd. För trie-baserade klassificerare 10 15 20 25 30 35 532 425 IJ) kommer antalet nivåer att högst troligt öka, vilket leder till reducerad lookup-prestanda, eller växa avsevä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 tillhandahålls med hjälp av föreliggande uppfinning, av vilken en utföringsforrn nu kommer att beskrivas, efter en detaljerad introduktion till algoritmiska lösningar. Dock är uppfinningen inte begränsad till komprimering av lPvö-adresser utan kan även användas för att komprimera lPv4- adresser för att reducera komplexiteten av klassificeringen och öka prestandan.
Algoritmiska lösningar: Flerfältsklassificering (MFC) MFC, utvecklad och patentansökti en patentansöknirig av sökande, är en algoritmisk lösning som löser paketkiassificeringsproblemet på ett sådant sätt att flera fält från pakethuvudet används såsom innyckeln. MFC arbetar i två steg som refereras till såsom "crunchning och matchmaking".
Crunchningssteget komprimerar de ursprungliga reglerna R1, R2, Rni klassificeraren till en lista med crunchade regler R01, R02, Rön. Resultatet av detta är att populationen för varje fält komprimeras till min(2ri+1; 2wi) element, där wi' är antalet bitar hos det izte fältet och n är antalet regleri klassificeraren. Genom att använda denna teknik reduceras det totala antalet bitar som är involverade i klassificeringen från: E -uijf to rvzín(u:¶:, fÉrIgflBrI- + 1 j] hits (1) Huvudfälten Fälth Fäftz, Fä/to hos innyckeln crunchas också. Vid matchmakingsteget jämförs den crunchade innyckeln med varje regel i den crunchade regellistan parallellt och sedan kombineras resultaten från varje jämförelse för att fastställa den första matchande regeln.
Figur 2.1 visar en innyckel som kommer in i crunchern, vilket resulterar i en ny crunchad innyckel. Den crunchade innyckeln kommer sedan in i matchmakern där den matchas mot en crunchad regellista och resultatet matas ut.
Den innovativa snittningsalgoritmen enligt föreliggande uppfinning löser matchmakingsteget. 10 15 20 25 30 E32 425 7 Skälet till att använda termen crunchning istället för komprimering är att den effektiva storleken på en del fält kan öka till följd av processen, ehuru nyckelidén är att reducera 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-iiknande minne som vi har beskrivit i korthet ovan och kommer att beskriva i närmare detalj i sammanhang av föreliggande utföringsform, elleri mjukvara med användning av godtycklig standardteknik för flerdimensionell klassificering som inkluderar linjär sökning, vektorproduktberäkning, kvadrantträd etc.
Punktlokaliseringsproblem Det finns ett problem inom datorgeometri som kallas "punktlokalíseringsproblemef'. Det definieras enligt följande: Givet en frågepunkt qi en D-dimensionell rymd, och en uppsättning av n D-dimensionella icke övefiappande områden, finn det område som punkten q tillhör. Betrakta till exempel Figur 2.2. Den har en frågepunkt q och sex 2- dimensionella områden. Lokaliseringsproblemet är här att finna det område som innehåller punkten q.
Ett ytterligare exempel på ett punktlokaliseringsproblem är att finna det landskap pà en karta som ett samhälle tillhör. Samhället Abisko är till exempel lokaliserat vid longitud 68° 20' N och latitud 18° 51' E och det kan hittas pà en karta över Sverige genom att använda skaloma pà sidoma om kartan. Det visar sig att Abisko tillhör landskapet Lappland. Givet en karta och en frägepunkt q som är specificerad genom sina koordinater, kan med andra ord omrâdet på kartan som innehåller frågepunkten q hittas.
Det generella paketklassificeringproblemet, där D > 3, kan betraktas såsom ett punktlokaliseringsproblem i flerdimensionell rymd. Detta gör det möjligt att finna under sämsta förhållande rådande komplexitetsgränser för lookup-tiden och lagringsutrymmeskraven. Komplexitetsgränserna för lokaliseringsproblemet är antingen Qüogš* (11)) ieekup-iid med om) iegringeuirymme, eller oaegnn) ieekup-fid med nnP) lagringsutrymme.
Utföringsformer av föreliggande uppfinning kommer nu att beskrivas med hänvisning' till Figur 3, vilken illustrerar metodstegen. 10 15 20 25 30 533 4.26 70 Figur 3 illustrerar en metod för att utföra specifika datavidarebefordringsåtgärder som beror pà karaktären pà datatrafik innefattande datapaket. l 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, klassificeras datatrafiken genom att fastställa karaktären på datatrafiken, vilket ombesörja av en process för att inspektera värden pà ett flertal valda huvudfält i ett adressomràde hos ett datapaket. Denna process tillhandahåller en innyckel. l ett tredje steg, steg 203, komprimeras reglerna i klassificeraren till en lista med komprimerade regler så att antalet bitar som är involverade i klassificering reduceras. En första matchande klass från en ordnad lista med n regler som identifierar varje klass väljs, där varje regel innefattar D fält, steg 204. En förbehandlingsalgoritm för att bygga ett beslutsträd baserat på strukturen hos klassificeraren, varvid nämnda förbehandlingsalgoritm inkluderar snittning så att ett snitt i varje dimension utförs, steg 205.
Snitten skulle kunna utföras oberoende av varandra en gång i vaije dimension, steg 205.
Metoden skulle vidare kunna innefatta steget att räkna intervallstartpunkteri den dimension som snittas, steg 206.
Snittet skulle kunna utföras vid en intervallstartpunkt, steg 205.
Snittningen skulle kunna utföras rekursivt tills det enbart finns en regel i varje delomràde. l typiska fall byggs beslutstrådet först på bredden.
Den innovativa algoritmen betraktar paketklassificeringsproblemet geometriskt, gör ett antal snitt och bygger ett beslutsträd. Samtidigt utför den snitt, men inskränker snitten till ett snitti varje dimension. Sökning i beslutsträdet som byggs genom den innovativa algoritmen görs genom att använda huvudfälten hos det inkommande paketet såsom innyckeln och gå igenom beslutsträdet tills ett löv hittas. Den innovativa algoritmen snittar omrâdet en gang i varje dimension och snitten görs oberoende av varandra. För att veta var ett snitt ska placeras i den aktuella dimensionen räknas intervallstartpunktema iden dimensionen och snittet placeras där medianen av 10 15 20 25 30 532. 425 intervallstartpunktema är. Detta innebär att snittet kommer att fördela reglema så jämnt som möjligt i de skapade delområdena.
För att se hur den innovativa algoritmen arbetar när den bygger beslutsträdet, betrakta listan med regler i Tabell 3.1 och dess geometriska representation i Figur 3.1.
Figur 3.1 har elva intervallstartpunkter i Address-axeln såsom framgår av Figur 8.1 (notera att intervallstartpunkten mellan adressvärde sju och åtta måste räknas två gånger eftersom en regel slutar där och en annan regel börjar där), vilket betyder att snittet ska placeras vid intervallstartpunkt 11/2 = 6 om medianen avrundas uppåt till närmaste heltal. Port-axeln har också elva intervallstartpunkter (notera att intervallstartpunkten mellan portvärde fyra och fem måste räknas två gånger eftersom en regel slutar där och en annan regel börjar där), vilket betyder att snittet ska placeras vid intervallstartpunkt 11/2 = 6. Detta genererar delområdena i Figur 8.2. Snittningen fortsätter sedan rekursivt på regellistorna i delområdena. Figur 8.3 föreställer noden som konstrueras av snitten i Figur 8.2 och listan med regler som varje delområde innehåller.
Varje nod kommer att ha en lista med pekare till de delområden som är associerade till den. Den innovativa algoritmen byggs upp av två olika algoritmer som refereras till såsom Förbehandlingsalgoritmen och Sökningsalgoritmen.
Förbehandlingsalgoritrn Förbehandlingsalgoritmen bygger beslutstrådet baserat på strukturen hos kiassificeraren. Förbehandlingsalgoritmema räknar antalet intervallstartpunkter och placerar ett snitt vid medianen i varje dimension. Snitten görs sedan rekursivt i varje genererat delområde tills det enbart finns en regel i varje delområde. Beslutsträdet kommer först att byggas på bredden, vilket betyder att alla delområden som är genererade av de första snitten kommer att byggas först, sedan kommer de delområden som genereras av dessa snitt att byggas osv. Detta innebär att varje nivå av beslutsträdet kommer att vara helt färdig innan nästa nivà byggs.
Sökningsalgoritm Sökning i beslutsträdet som skapas av den innovativa algoritmen utförs genom att använda de crunchade huvudfälten hos det inkommande paketet såsom innyckeln.
Varje gång ett paket anländer gås beslutsträdet igenom för att finna ett löv som innehåller enbart en regel. 10 15 20 25 30 532 åQE» För att se hur sökningsalgoritmen arbetar, betrakta Figur 8.4. Noden i figuren består av 2” delområden som skapas utifrån snitten, där D är antalet dimensioner eller fält. Varje område i noden består av D crunchade fält, ett för varje dimension och varje fält består av ett intervall som representeras av sitt minsta värde respektive sitt största värde. lnnyckeln består av D crunchade fält där varje fält består av ett värde. När sökning görs på innyckeln jämförs fälten hos nyckeln med intervallen i noden för att se var de hör hemma. Varje delomràde i noden kan representeras av ett D-bitars värde. Detta värde används såsom ett index till en lista med 2D pekare som pekar på de motsvarande delområdena. l typiska fall skulle föreliggande uppflnning kunna implementeras medelst en processor som är ansluten till ett snabbt datorminne med en systembuss, i vilket minne datorexekverbara instruktioner ligger för exekvering; varvid processorn är operativ för att exekvera de datorexekverbara instruktionema för att: tillhandahålla i ett Iagringsutrymme, han' ltypiska fall primärrninnet, en för vidarebefordring av datagram avsedd datastruktur som är tillhandahållen 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, - klassificera datatrafiken genom att fastställa karaktären på datatrafiken, vilket ombesörjs av en process för att inspektera värden av ett flertal valda huvudfält i ett adressområde hos ett datapaket, varvid nämnda process tillhandahåller en innyckel, och välja en första matchande klass från en ordnad lista med n regler som identifierar varje klass, där varje regel innefattar D fält, dessutom innefattande steget att Komprimera reglerna i klassificeraren till en lista med komprimerade regler så att antalet bitar som är involverade i klassificering reduceras, och en förbehandlingsalgoritm för att bygga ett beslutsträd baserat på strukturen hos klassificeraren, varvid nämnda förbehandlingsalgoritm inkluderar snittning så att ett snitt i varje dimension utförs.
I typiska fall ombesörjs analysen av den ursprungliga listan med regler och komprimeringen av listan med regler, liksom definitionen av varje enfältsklassificerare med hjälp av mjukvara, men nämnda lookup skulle kunna ombesörjas med hjälp av 10 15 20 25 30 532 425 lg; hårdvara, exempelvis med hjälp av pipelining för förbättrad prestanda. Om nämnda lookup ombesörja med hjälp av mjukvara är det möjligt att använda godtycklig typ av befintlig flerdimensionell klassificerare för att tillhandahålla matchning av den komprimerade listan.
Enligt en altemativ utföringsform av föreliggande uppfinning tillhandahålls en metod, i vilken två flerdimensionella klassíficerare används där den ena är specialanpassad för fundamentala lPv4-regler och den andra för fundamentala lPvö-regler.
Den ursprungliga idén var att använda adressomràdeskomprimeringsschemat för att avbilda lPvö-adresser på lPv4-adresser. Såvida inte 2n+1 > 232, 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 komprlmera varje lPvö-adress på ett 21-bitars heltal istället för att använda 128 bitar, vilket är en reduktion av 83 %. Fastän detta inte reducerar den kombinatoriska komplexiteten av paketklassificeringsproblemet såsom sådant, tror vi att det kommer att göra saker avsevärt lättare för de flesta mjukvarubaserade D-dimensioneila paketklassificerarnaj synnerhet för dem som konstrueras för att hantera adresser såsom intervall.
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. Srínivasan m fl beaktade problemet att leta bland preflxlängder efter portintervall i V. Srínivasan, Subhash Suri, och George Varghese, Packet classificatíon using tuple space search. l SIGCOMM, sidoma 135- 146, 1999. De introducerade begreppet kapslingsnivåer som svarar mot prefixlängd och definieras såsom antalet nivàeri 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 okomplícerat 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 lPvö-prefix avbildas på lPv4~prefix. 10 15 20 25 30 532 ÅEE l~r 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 S-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 1-dimensionella hybridklassificerare är liten jämfört med kostnaden av en TCAM-bit. Vi kan därför använda två parallella 128-bitars klassíticerare för att utföra samtidig adressområdeskomprimering av sändar- och mottagaradresserna för att erhålla en reduktion från på 128 bitar till 17 bitar såsom visas i Figur 6. De resulterande S-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 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-dimensionell klassificerare (se V. Sri nivasan och George Varghese, Faster IP lookups using controlled prefix expansion. I Proceedings of the 1998 ACM SlGMETRlCS joint international conference on measurement and modelling of computer systems, sidorna 1-10. ACM Press, 1998). Idén är något liknande vårt adresskomprirneringsschema som beskrivits ovan men det finns ett antal viktiga skillnader som vi nu kommer att diskutera. W börjar med en lista med n regler där varje regel definierar ett D-dimensioneltt intervall. Wd användning av vektorproduktberäkning, används en uppsättning av D 1-dimensionella klassificerare för att avbilda D huvudfält på en punkt i den D-dimensionella populationen Ums, = {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 Um en representation utan bindningar. Detta tvingar vektorproduktberäkningen att avbilda den ursprungliga regellistan på en representation där varje (avbildad) punkt endast kan matcha en enda avbildad regel. 'lïll följd av detta kräver den avbildade representationen av regellistan n” lagringsutrymme, under sämsta förhållande, vid användning av vektorproduktberäkning. l vårt schema är populationen Uhybnd = {0, 1,. . . , 2n}° något större. Till följd av detta kan 10 15 20 25 30 532 4.26 vi avbilda varje ursprunglig regellista på en motsvarande avbildad regellista där kriterierna för uppknytning av flerfaldiga matchningar bevaras. Den resulterande avbildade regellistan består av samma antal regler som den ursprungliga regellistan. l ett grundscenario svarar varje dimension mot en viss sorts huvudfält som vi refererar till såsom typen av huvudfältet. I en fundamental lPv4 MFC-S-regel är typerna av de första och andra dimensionerna lPvßt-sändar- respektive -mottagaradress medan typerna av de tredje och fjärde dimensionerna är sändaradress respektive mottagaradress. 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. I en fundamental lPv6 MFC-5-regel är adressintervallen lPv6-adresser istället för lPv4-adresser.
Ett problem med ett fundamentalt schema är hur man hanterar regellistor där fundamentala 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. Programmet 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à flerdimensíonella 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 (en: "Internet Control Message Protocol") och ESP (en: "Encapsulating Security Payload") som kan följa IP-huvudet. lCMP innehåller inte portnummer. Istället finns det en S-bítarstyp och en 4-bitarskod (ehuru båda representeras såsom 8-bitarsfälti 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-Q-regel etc. l en sådan situation kan typen för den tredje 10 15 20 25 30 532 425 dimensionen vara en lPv4-avsändaradress, en lPvö-avsändaradress, en UDP- avsändarport, en TCP-avsåndarport eller en ICMP-typ. Genom att tillåta ännu fler olika sorters transportprotokollregler som stöds och/eller tunnlingsnivâerna, blir situationen ännu värre. l princip krävs en specialanpassad flerfältsklassificerare för varje möjlig kombination, vilket sålunda vållar kännbara skalbarhetsproblem bàde i mjukvara och hårdvara.
I en ytterligare utföringsfonn 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 effektiva storleken pà en del fält kan öka till följd av processen, ehuru nyckelidén är att reducera 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 sammanhang av föreliggande utföringsform, eller i mjukvara med användning av godtycklig standardteknik för flerdimensionell klassificering som inkluderar linjär sökning, vektorproduktberäkning, kvadrantträd etc. l detta avsnitt analyseras den innovativa algoritmen för att se vilken lookup-tid och mängd lagringsutrymme den kräver under sämsta förhållande. Kostnaden för en lookup vid n regler kommer att vara antalet minnesåtkomster och den betecknas T(n). Den mängd lagringsutrymme som krävs för n regler med D dimensioner kommer att vara antalet minnesblock och den betecknas S(n, D).
Under sämsta förhållande rådande lookup-tid Den under sämsta förhållande rådande lookup-tiden är den längsta lookup-tiden för godtycklig inmatning av n regler i D dimensioner. För den innovativa algoritmen svarar höjden av beslutsträdet mot den under sämsta förhållande rådande iookup-tiden.
Om det finns n regler kommer det att finnas maximalt I = (2n+1) intervall pà varje axel, vilket svarar mot maximalt (2n+1)+1 intervallstartpunkter. l varje dimension snittas intervallstartpunktema i halvor, vilket resulterar i tvâ delområden med som mest 10 15 20 25 30 532 1125 Här jfl (2n + 1) +l ___ n 2 intervallstartpunkter var på varje axel. Efter snittning i vaqe dimension kommer det att finnas 2D delområden och varje delomràde kommer att ha som mest n+1 intervallstartpunkter på varje axel. Eftersom 2n+2 intervallstartpunkter svarar mot n regler, svarar n+1 intervallstartpunkter mot n/2 regler. Detta innebär att efter det att snittning gjorts i varje dimension, kan det inte finnas fler än n/2 regler i varje delområde.
+I Betrakta till exempel regellistan i Tabell 9.1 och dess geometriska representation i Figur 9.1. Ett snitt placeras i det första fältet och inget snitt placeras i det andra fältet eftersom de delområden som genereras av det första snittet enbart innehåller en regel var, dvs algoritmen stannar. I detta fall kommer det att finnas nl2 regler i varje delomrâde och det kan inte finnas fler än n/2 regler i varje delomràde. Detta svarar mot en undre gräns för den innovativa algoritmen och den betecknas med Q-notationen.
För att sammanfatta finns det från början n regler. Efter det att snittning gjorts i alla dimensioner kommer det att finnas 2” delområden med som mest n/2 regler var.
Snittningen av delomràdena fortsätter rekursivt tills det enbart finns en regel i varje delområde. Den under sämsta förhållande rådande lookup-tiden T(n) kan nu beskrivas av: T(n) =1+ T(n/2), eftersom varje nivå kräver en minnesàtkomst. Detta är en rekursionsekvation i en variabel och den kan lösas genom att substituera n = 2* och använda bakåtsubstítutíon, dvs: TQR) = TQH ) +1 (substitutera TQH) = T(2k_2)+1) = TQH) + 2 (substitutera TQM) = T(2k~3)+1 ) = Trztrt) + s = T(2""') +i = Trztd) + k = T(1)+ k. 10 15 20 25 30 53.2 425 Fä? Återgång till den ursprungliga variabeln n = 2* ger k = log,(n) och: T(n) = T(1)+1og2(n).
Eftersom detta svarar mot en undre gräns för den innovativa algoritmen är resultatet detta: T (n) e Q(log2(n)).
Under sämsta förhållande rådande lagringsutrymmeskrav l den innovativa algoritmen skapas en nod genom att placera ett snitt i varje dimension och varje av snitten genererat delområde kan representeras av ett D-bitars heltal. Detta innebär att varje nod kan lagras i ett enda minnesblock, där ett minnesblock i typiska fall är 256-bitars, med antagande av att listan med pekare till delområden inte lagras i samma minnesblock.
Mängden lagringsutrymme S(n,D) kan beskrivas av: S(n,D) = l +S(n/2, D) -2”.
Detta är en rekursíonsekvation i två variabler. Snittningen av noder görs rekursivt så efter det första steget kommer det att finnas som mest n/2 regler kvar för alla 2D delområden. Detta svarar mot en undre gräns för lagringsutrymmeskraven.
Notera att rekursionsekvationen även beror på konstanten D, men eftersom D aldrig ändras kan rekursionen skrivas såsom: sm) =1+s(n/2)-2D.
Lösning av rekurslonsekvationen kan göras genom att substituera n = 2* och använda bakàtsubstitution, dvs: S(2k)=1+ 2D 'S(2k"') (substítutera S(2k"1)=1+ 2” 'SQ/MD (substitutera SOM) = 1 + 2D 'SQH )) =1+2” -(1+2° -(1+2'° -s(2*"3)) =1+2D -(1+2'> -s(2*~2)) =1+2D +40 +80 -s(2*-3) I-l = g2<<2”>f>+<2”>' -Stzrfi 10 533 425 = Éazßvt-uzfi* -S<2*'*> f=° k-I = 2<<2”>f>+<2”>* -S<1>. .i=0 Återgång till den ursprungliga variabeln n = 2* gerk = log,(n) och: :Ohm-i _ nu _1 Son = 2 azßif) + <2”>'°ß=<"> -S<1>= 7- F., 2 -l Detta är en undre gräns för lagringsutrymmeskraven i den innovativa algoritmen och den kan skrivas såsom: S(n, D) e Q(n”).
Kom ihåg att om lokaliserlngsproblemet fordrar Q(n°) mängd Iagringsutrymme kommer det att köras pà tiden O(log(n)). Detta innebär att den innovativa algoritmen kommer att fordra O(|og(n)) lookup-tid under sämsta förhållande, vilket är en övre gräns. Eftersom den under sämsta förhållande rådande undre Q(log2(n)-gränsen matchar den under sämsta förhållande rådande övre O(log(n))-gränsen för lookup-tiden är den innovativa algoritmen asymptotiskt optimal i sin kiass. + n” -s(1).
Claims (6)
1. Metod för att utföra specifika datavidarebefordríngsåtgärder som beror på karaktären på datatrafik innefattande datapaket, varvid varje paket innefattar ett huvud och data, vilken metod 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å datatrafiken, vilket ombesörjs av en process för att inspektera värden av ett flertal valda huvudfälti ett adressområde hos ett datapaket, varvid nämnda process tillhandahåller en innyckel, steg (202), och innefattar steget att Komprimera reglema i klassificeraren till en lista med komprimerade regler så att antalet bitar som är involverade i klassificering reduceras, steg (203), vidare välja en första matchande klass från en ordnad lista med n regler som identifierar varje klass, där varje regel innefattar D fält, steg (204) och en förbehandlingsalgoritm för att bygga ett beslutsträd baserat på strukturen hos klassificeraren, varvid nämnda förbehandlingsalgoritm inkluderar snittning så att ett snitt i varje dimension utförs, där snitten utförs oberoende av varandra en gång i vana dimension steg (205).
2. Metod enligt krav 1, dessutom innefattande steget att räkna intervallstartpunkter i den dimension som snittas, steg (205).
3. Metod enligt något av kraven 1-2, i vilken snittet utförs vid en intervallstartpunkt, steg (205).
4. Metod enligt krav 3, i vilken snittningen utförs rekursivt tills det enbart finns en regel i varje delområde.
5. Metod enligt något av kraven 1-4, i vilken beslutstrådet byggs först på bredden.
6. Metod enligt något av kraven 1-5, dessutom innefattande steget att söka beslutsträdet genom att använda de komprimerade huvudfälten hos paketet såsom innyckeln.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE0801231A SE532426C2 (sv) | 2008-05-26 | 2008-05-26 | Metod för datapaketklassificering i ett datakommunikationsnät |
US12/989,526 US8472446B2 (en) | 2008-05-26 | 2009-05-25 | Method for data packet classification in a data communications network |
PCT/SE2009/050593 WO2009145712A1 (en) | 2008-05-26 | 2009-05-25 | Method for data packet classification in a data communications network |
EP09755150.1A EP2281370A4 (en) | 2008-05-26 | 2009-05-25 | Method for data packet classification in a data communications network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
SE0801231A SE532426C2 (sv) | 2008-05-26 | 2008-05-26 | Metod för datapaketklassificering i ett datakommunikationsnät |
Publications (2)
Publication Number | Publication Date |
---|---|
SE0801231L SE0801231L (sv) | 2009-11-27 |
SE532426C2 true SE532426C2 (sv) | 2010-01-19 |
Family
ID=41377339
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
SE0801231A SE532426C2 (sv) | 2008-05-26 | 2008-05-26 | Metod för datapaketklassificering i ett datakommunikationsnät |
Country Status (4)
Country | Link |
---|---|
US (1) | US8472446B2 (sv) |
EP (1) | EP2281370A4 (sv) |
SE (1) | SE532426C2 (sv) |
WO (1) | WO2009145712A1 (sv) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2582096B1 (en) | 2010-06-28 | 2016-03-30 | Huawei Technologies Co., Ltd. | Classification method and device for packets |
ES2393501B1 (es) * | 2010-09-03 | 2013-11-11 | Telefónica, S.A. | Método y sistema para clasificación de tráfico. |
JP5682442B2 (ja) * | 2011-05-12 | 2015-03-11 | 日本電気株式会社 | パケット分類器、パケット分類方法、及びパケット分類プログラム |
US10229139B2 (en) | 2011-08-02 | 2019-03-12 | Cavium, Llc | Incremental update heuristics |
US9183244B2 (en) | 2011-08-02 | 2015-11-10 | Cavium, Inc. | Rule modification in decision trees |
US9208438B2 (en) | 2011-08-02 | 2015-12-08 | Cavium, Inc. | Duplication in decision trees |
CN103858386B (zh) | 2011-08-02 | 2017-08-25 | 凯为公司 | 用于通过优化的决策树执行包分类的方法和装置 |
WO2013119173A2 (en) * | 2012-02-07 | 2013-08-15 | Oricane Ab | Classification engine for data packet classification |
CN102664787B (zh) * | 2012-04-01 | 2014-10-08 | 华为技术有限公司 | 决策树的生成方法和装置 |
CN102749084A (zh) * | 2012-07-10 | 2012-10-24 | 南京邮电大学 | 一种面向海量交通信息的路径选择方法 |
US10083200B2 (en) | 2013-03-14 | 2018-09-25 | Cavium, Inc. | Batch incremental update |
US9195939B1 (en) | 2013-03-15 | 2015-11-24 | Cavium, Inc. | Scope in decision trees |
US10229144B2 (en) | 2013-03-15 | 2019-03-12 | Cavium, Llc | NSP manager |
US9595003B1 (en) | 2013-03-15 | 2017-03-14 | Cavium, Inc. | Compiler with mask nodes |
US9275336B2 (en) | 2013-12-31 | 2016-03-01 | Cavium, Inc. | Method and system for skipping over group(s) of rules based on skip group rule |
US9544402B2 (en) | 2013-12-31 | 2017-01-10 | Cavium, Inc. | Multi-rule approach to encoding a group of rules |
US9667446B2 (en) | 2014-01-08 | 2017-05-30 | Cavium, Inc. | Condition code approach for comparing rule and packet data that are provided in portions |
CN108574679B (zh) * | 2017-03-13 | 2021-03-30 | 华为技术有限公司 | 处理分组的方法和网络设备 |
GB2580284B (en) | 2018-08-13 | 2021-01-06 | Metaswitch Networks Ltd | Generating packet processing graphs |
DK3618355T3 (da) | 2018-08-27 | 2020-11-16 | Ovh | Systemer og fremgangsmåder til at drive en netværksindretning |
EP3618389B1 (en) | 2018-08-27 | 2020-10-07 | Ovh | Systems and methods for operating a networking device |
CN112148694B (zh) * | 2019-06-28 | 2022-06-14 | 华为技术有限公司 | 一种用于电子设备的数据压缩、数据解压方法及电子设备 |
US11362997B2 (en) * | 2019-10-16 | 2022-06-14 | International Business Machines Corporation | Real-time policy rule evaluation with multistage processing |
CN111464187B (zh) * | 2020-04-17 | 2023-04-28 | 北京百瑞互联技术有限公司 | 一种主机控制接口命令事件编码方法、存储介质及计算机设备 |
US10911583B1 (en) * | 2020-07-09 | 2021-02-02 | Inside Packet Ltd. | System and method for processing a network message |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7043467B1 (en) * | 2000-02-08 | 2006-05-09 | Mips Technologies, Inc. | Wire-speed multi-dimensional packet classifier |
US7075926B2 (en) * | 2000-05-24 | 2006-07-11 | Alcatel Internetworking, Inc. (Pe) | Programmable packet processor with flow resolution logic |
US20030123456A1 (en) * | 2001-12-28 | 2003-07-03 | Denz Peter R. | Methods and system for data packet filtering using tree-like hierarchy |
JP2003338830A (ja) | 2002-03-12 | 2003-11-28 | Matsushita Electric Ind Co Ltd | メディア送信方法、メディア受信方法、メディア送信装置及びメディア受信装置 |
US7424489B1 (en) * | 2004-01-23 | 2008-09-09 | At&T Corp. | Methods and apparatus for space efficient adaptive detection of multidimensional hierarchical heavy hitters |
US20060262789A1 (en) | 2005-05-20 | 2006-11-23 | Go Networks Inc. | Method and corresponding device for packets classification |
EP2078393A4 (en) * | 2006-11-03 | 2012-10-31 | Oricane Ab | METHOD, DEVICE AND SYSTEM FOR MULTI-FIELD CLASSIFICATION IN A DATA COMMUNICATION NETWORK |
US8179896B2 (en) * | 2006-11-09 | 2012-05-15 | Justin Mark Sobaje | Network processors and pipeline optimization methods |
-
2008
- 2008-05-26 SE SE0801231A patent/SE532426C2/sv not_active IP Right Cessation
-
2009
- 2009-05-25 EP EP09755150.1A patent/EP2281370A4/en not_active Withdrawn
- 2009-05-25 WO PCT/SE2009/050593 patent/WO2009145712A1/en active Application Filing
- 2009-05-25 US US12/989,526 patent/US8472446B2/en active Active - Reinstated
Also Published As
Publication number | Publication date |
---|---|
EP2281370A1 (en) | 2011-02-09 |
EP2281370A4 (en) | 2017-07-12 |
WO2009145712A1 (en) | 2009-12-03 |
US8472446B2 (en) | 2013-06-25 |
US20110044341A1 (en) | 2011-02-24 |
SE0801231L (sv) | 2009-11-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
SE532426C2 (sv) | Metod för datapaketklassificering i ett datakommunikationsnät | |
Lakshminarayanan et al. | Algorithms for advanced packet classification with ternary CAMs | |
US6775737B1 (en) | Method and apparatus for allocating and using range identifiers as input values to content-addressable memories | |
US7536476B1 (en) | Method for performing tree based ACL lookups | |
US20060221956A1 (en) | Methods for performing packet classification via prefix pair bit vectors | |
CA2364316A1 (en) | Improved efficiency masked matching | |
Meiners et al. | Hardware based packet classification for high speed internet routers | |
Qian et al. | Low power RAM-based hierarchical CAM on FPGA | |
Xu et al. | A multi-dimensional progressive perfect hashing for high-speed string matching | |
Nikitakis et al. | A memory-efficient FPGA-based classification engine | |
Kennedy et al. | Ultra-high throughput low-power packet classification | |
Li et al. | TabTree: A TSS-assisted bit-selecting tree scheme for packet classification with balanced rule mapping | |
SE531947C2 (sv) | Förfarande, anordning och system för flerfältsklassificering i ett datakommunikationsnätverk | |
Nikolenko et al. | How to represent IPv6 forwarding tables on IPv4 or MPLS dataplanes | |
Erdem et al. | Hierarchical hybrid search structure for high performance packet classification | |
Le et al. | Memory-efficient ipv4/v6 lookup on fpgas using distance-bounded path compression | |
Erdem et al. | Clustered hierarchical search structure for large-scale packet classification on FPGA | |
Chang et al. | A high-speed and memory efficient pipeline architecture for packet classification | |
Khan et al. | Design and implementation of high performance architecture for packet classification | |
Pao et al. | Enhanced prefix inclusion coding filter-encoding algorithm for packet classification with ternary content addressable memory | |
US7240149B1 (en) | Multiple branch operations in an associative memory | |
Erdem et al. | Value-coded trie structure for high-performance IPv6 lookup | |
Huang et al. | A power-efficient approach to TCAM-based regular expression matching | |
Jiang et al. | Scalable packet classification: Cutting or merging? | |
Chang et al. | Set pruning segment trees for packet classification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
NUG | Patent has lapsed |