SE516703C2 - Anordning, system och förfarande relaterande till routing av paket i ett datakommunikationsnätverk - Google Patents

Anordning, system och förfarande relaterande till routing av paket i ett datakommunikationsnätverk

Info

Publication number
SE516703C2
SE516703C2 SE9902175A SE9902175A SE516703C2 SE 516703 C2 SE516703 C2 SE 516703C2 SE 9902175 A SE9902175 A SE 9902175A SE 9902175 A SE9902175 A SE 9902175A SE 516703 C2 SE516703 C2 SE 516703C2
Authority
SE
Sweden
Prior art keywords
cache
address
addresses
tree
search tree
Prior art date
Application number
SE9902175A
Other languages
English (en)
Other versions
SE9902175L (sv
SE9902175D0 (sv
Inventor
Joachim Stroembergson
Original Assignee
Ericsson Telefon Ab L M
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 Ericsson Telefon Ab L M filed Critical Ericsson Telefon Ab L M
Priority to SE9902175A priority Critical patent/SE516703C2/sv
Publication of SE9902175D0 publication Critical patent/SE9902175D0/sv
Priority to PCT/SE2000/001162 priority patent/WO2000077984A1/en
Priority to AU58584/00A priority patent/AU5858400A/en
Publication of SE9902175L publication Critical patent/SE9902175L/sv
Publication of SE516703C2 publication Critical patent/SE516703C2/sv

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

20 25 30 516 var, so» nu 2 använda en central processor soul betjänar alla ingångsportarna till en routinganordning för att utföra adressuppslagning. Ett startpaket tas då emot i processorn, som också kallas en vidarebefordringsmaskin, som använder destinationsadressen för att bestämma vilken utgångsport som är relevant för paketet och dess nästa hopp-(next-hop) adress.
I en routinganordning i vilken “next-hop” information lagras i en konventionell tabell, måste det finnas något slag av mappning mellan en inkommande IP-adress och minnesadressen eller det index där dess nästa-hopp information lagras. För att kunna utföra en IP-adressen till en korrekt adressuppslagning, transformeras minnesadress vilket därpå följes av en uppslagning i tabellen.
För att snabba upp uppslagningen är det känt att använda så kallade digitala sökträd som lagringsmedel i många kända anordningar. Sådana sökträd kallas också “tries” (jämför eng. retrieval). I en trie-baserad routinganordning finns det inte motsvarande slag av mappning, som hänvisats till ovan, mellan IP- adress och platsen för lagring av nästa-hopp informationen. I stället utförs en analys av' den inkommande IP-adressen i flera steg. Varje steg ger en ny nod i det digitala sökträdet i vilket löv svarar emot poster i en fil. Sökning fortgår ifrån roten till ett löv. Den (varje) nod analyseras därpå så att det kan fastställas vilket av dess barn som är nästa steg i riktning mot slutnoden (jämför löv så som hänvisats till ovan) som innehåller nästa hopp-informationen. Detta betyder att träd gås igenom nod för nod och i varje steg måste informationen hämtas. Konsekvensen därav blir att en uppslagning för att hitta “next-hop” information involverar en genomgång av det digitala sökträdet vilket tekniskt betyder att minnesaccesser måste åtskilliga göras. För routinganordningar där lagringsmedlen uteslutande består av tabeller, kommer nästa-hopptabellerna att bli mycket stora. För 10 15 20 25 30 516 ”703 fë-ïïf" ' 3 att kunna utföra en snabb uppslagning lagras sådana tabeller i snabba och dyra minnen. För att ytterligare kunna öka prestandan för en routinganordning, förses minnena med ännu snabbare, fullt acossiativa cacheminnen så att en kopia av en nyligen hittad nästa-hopp information kan lagras däri. Ett cacheminne är ett höghastighetsminne som lagrar data som datorn kan accessa mycket snabbt. Det kan vara en oberoende höghastighetslagringsanordning eller också kan det utgöra en viss sektion av ett huvudminne.
Detta fungerar eftersonl det finns en temporär' platsförbindelse mellan minnesaccessen, eller med andra ord, om nästa- hoppinformationen för en adress har slagits upp, är sannolikheten stor att samma information kommer att behövas igen inom den närmaste framtiden. Skälet till detta är att ett IP-paket sällan sänds ensamt utan som en del av ett flöde av flera paket.
I routinganordningar i vilka lagringsmedlen implementeras som ett digitalt sökträd, eller en trie, såsom hänvisats till ovan, Sökträdet självt kan vara komprimerat på olika sätt och det kan göras så litet att det representeras tabellen genom ett sökträd. kommer att finnas plats för det i den interna datacachen i en kommersiell processor. Resultatet därav är att en processor kan snabbt. Emellertid alla minnesacesser för att hitta noden med nästa-hopp-informationen göra nästa-hoppuppslagningar måste utföras. Varje sådan minnesacess är emellertid krävande, och eftersom ett stort antal minnesacesser kan behövas för varje ny adress, begränsar detta påtagligt prestanda för en routinganordning. Olika triebaserade routinganordningar är kända, se exempelvis “Small Forwarding Tables for Fast Routing Lookups”, 1997:02, Department of Computer av Mikael Degermark et al, Research Report Luleå University of Technology, Science and Electrical Engineering, “Fast Division of Computer Communication och IP Routing with LC-Tries”, Karlsson, Dr Dobb's Journal, augusti 1998, sidorna 70-75. av Stefan Nilsson, Gunnar 10 15 20 25 30 516 703 4 I allmänhet är flera sätt att använda komprimeringstekniksalgoritmer applicerade på routing kända.
Emellertid tillhandahåller inte någon av dem en tillfredsställande lösning som möjliggör en snabb och effektiv uppslagning av nästa- hopp-information.
RE DOGÖRELSE FÖR UPPFINNINGEN Vad som behövs är därför en anordning för att vidarebefordra datapaket genom en routinganordning, som har en hög prestanda.
Speciellt behövs en anordning genom vilken uppslagningen av nästa effektivt snabbt sätt, speciellt så att antalet nästa hopp-adresser som kan hittas per hopp-adresser kan utföras på ett och tidsenhet blir högt och speciellt högre än med hitintills kända anordningar. En anordning behövs också genom vilken ett paket kan transporteras på ett snabbt och säkert sätt genom en nod i ett IP- baserat nät. Speciellt behövs en anordning genom vilken antalet minnesacesser kan reduceras, och således höja prestanda. En triebaserad routinganordning behövs också som uppfyller ovan nämnda mål. Speciellt behövs en anordning av ovan nämnt slag som är billig och enkel att bygga.
Ett förfarande för att vidarebefordra routinganordning behövs också genom vilken ovan nämnda mål kan eller ett ett datapaket genom en uppfyllas. Dessutom behövs ett kommunikationssystem, nätverk av kommunikationssystem, som inkluderar antal routinganordningar, genom vilket ovan nämnda mål kan uppfyllas. tillhandahålles datapaket inom ett paketkopplat nät, eller mellan nät, genom en Därför en anordning för att vidarebefordra routinganordning, sonl innefattar ett antal ingångs-, respektive utgångsportar och en vidarebefordringsmaskin som innefattar routerlagringsmedel som inkluderar ett digitalt sökträd, också 10 15 20 25 30 kallat en trie. Sökningen i en sådan trie innefattar genomgång av trädet ifrån roten till ett löv genom ett antal noder. Styrmedel, exempelvis en vidarebefordringsmaskin, är vilka att anordnade, inkluderar en sökmaskin för styra adressuppslagning för inkommande paket.
Ett cacheminne är anordnat utöver det digitala sökträdet. I cachen finns ett antal index till löven i sagda trie för ett antal nästa hopp-adresser. För att slå upp en nästa-hopp-adress för ett inkommande paket, utförs en sökning åtminstone i cacheminnet.
Styrmedel används för att ta emot inkommande adresser, till exempel IP-adresser, och för att initiera en uppslagning av motsvarande nästa-hopp-adress, vilket innefattar en uppslagning i cacheminnet och en genomgång av det digitala sökträdet (om erforderligt).
Speciellt initieras en tranversering av ett digitalt sökträd väsentligen samtidigt med uppslagningen i cacheminnet. Alternativt det sökträdet om ett att initieras bara traverseringen av digitala uppslagningen i cacheminnet inte lyckas, dvs om adressen med till Detta antingen görs sökningen i det digitala sökträdet parallellt index nästa-hopp-adressen ej hittas. betyder med det och uppslagningen i cacheminnet eller också så initieras den om blir cacheträff. Om cacheuppslagningen utförs inte någon sökningen i trien parallellt, traverseringen av sökträdet så snart som det blir en träff i väsentligen avbryts cachen.
Speciellt lagras index till löven för ett antal av de mest nyligen uppslagna nästa-hopp-adresserna i cacheminnet. Index-cachen bildas företrädesvis på ett sådant sätt att de minst nyligen använda adresserna i cachen sucessivt ersätts av mera nyligen uppslagna ett alternativt definieras ett adresser. I utföringsexempel n u a nu no nøoøwu v 10 15 20 25 30 516 703 'I 6 tidsintervall för ersättande av adresser i cacheminnet så att adresser som inte har använts under ett dylikt intervall ersätts av nya adresser. Detta kan göras pà olika sätt, med användning av olika prioritetskrav och så vidare. kortare än för en cache-access sökträdet. accesstiden det Speciellt är en minnesaccess i digitala Cachen kan vara en direktmappande cache, en “set”-associativ cache eller en fullt associativ cache.
I ett speciellt fördelaktigt utförande är anordningen implementerad som ett FPGA-(Field Programmable Gate Array) chip. I en alternativ implementering är anordningen implementerad som ett ASIC (Application Specification Integrated Circuit) chip.
Lagringsmedlen, dvs det digitala sökträdet, kan implementeras som en digital trädstruktur Alternativt som är lagrad “on-chip”. lagras den “off-chip”.
Speciellt är cacheminnet anordnat “on-chip”.
I en speciell implementering innefattar anordningen en IP-router, dvs en Internet router. Speciellt innefattar routingtabellen som består av ett digitalt sökträd en komprimerad datastruktur. Det en Patricia-trie digitala sökträdet kan innefatta en LC-trie, eller någon annan lämplig, känd trie.
-I en synnerligen fördelaktig utföringsform slås ett antal adresser upp parallellt. Detta kan också implementeras genom något slag av pipe-line-förfarande.
Därför tillhandahålles också ett förfarande för att vidarebefordra paket genom en routinganordning i ett paketkopplat datanät.
Routinganordningen inkluderar styrmedel (en vidarebefordrings- oc-ø-n 10 15 20 25 30 516 703 u oas n. ett sökträd. Förfarandet inkluderar stegen att lagra index till nästa- maskin) och routerlagringsmedel som innefattar digitalt hopp-adresserna för ett antal datapaketsadresser i ett cacheminne; använda cache-minnet och en traversering av det digitala sökträdet för att finna ett index till nästa-hopp-adressen eller det löv som innehåller nästa-hopp-adressen; avbryta traverseringen av det digitala sökträdet om det blir en träff i cachen, annars fortsätta med traverseringen av det digitala sökträdet tills nästa-hopp- adressen hittas. Därpå följer stegen att hämta informationen om nästa-hopp-adressen och vidarebefordra paketet till den relevanta utgångsporten med användning av den funna nästa-hopp- informationen.
Speciellt inkluderar förfarandet stegen att först utföra en uppslagning' i cache-minnet, och omv det inte blir någon cache- träff, initiera en traversering av det digitala sökträdet. I en att samtidigt eller parallellt utföra en uppslagning i cacheminnet och alternativ implementering inkluderar förfarandet stegen initiera en traversering av' det digitala sökträdet och avbryta traverseringen av det digitala sökträdet om det blit en cache- träff, och annars fortsätta med traverseringen tills det löv som innehåller nästa-hopp-adressen hittas i sökträdet. Förfarandet inkluderar speciellt steget att, när en nästa-hopp-adress hittas genom traverseringen av det digitala sökträdet, lagra indexet till sagda nästa-hopp-adress i cacheminnet, exempelvis ersättande den minst nyligen acessade adressinformationen om det inte finns någon ledig plats i cachen med indexet till den mest nyligen använda adressinformation.
Enligt olika utföranden är cacheminnet exempelvis en direktmappande cache, en “set” associativ eller en fullt associativ indexcache anordnad “on-chip” för en FPGA eller en ASIC använd för implementeringen av routinganordningen. Vidare 10 15 20 25 30 s1s 703 on un... n 8 kännetecknas förfarandet genom steget att slà upp ett antal nästa- hopp-adresser väsentligen parallellt (eller i enlighet med ett pipe-line förfarande).
Ett paketdatakommunikationsystem anges också vilket innefattar ett antal routinganordingar inom ett nät eller för att förbinda nät, där varje routinganordning innefattar ett antal ingàngs respektive utgångsportar, styrmedel med ett antal vidarebefordrings- maskiner, router-lagringsmedel inkluderande ett digitalt sökträd eller en trie som innehåller nästa-hopp-adress-information_ Åtminstone ett antal av routinganordningarna innefattar ett cacheminne för att lagra index till ett antal nästa-hopp-adresser som finns i det digitala sökträdet. För att hitta en nästa-hopp- adress, utförs en uppslagning åtminstone i cacheminnet.
Speciellt initieras en traversering av det digitala sökträdet väsentligen simultant med där Alternativt uppslagningen i träff i initieras en traversering av det digitala sökträdet bara om det cacheminnet, traverseringen avbryts vid en cachen. inte blir någon cacheträff.
KORTFATTAD FIGURBESKRIVNING Uppfinningen kommer i det följande att ytterligare beskrivas, på ett icke begränsande sätt, och med hänvisning till bifogade figurer i vilka: FIG 1 är en förenklad, schematisk illustration av en anordning enligt uppfinningen, FIG 2 visar lagring av noder/ett löv i ett minne, FIG 3 är en förenklad illustration av en trie, 10 15 20 25 30 516 703 9 FIG 4 illustrerar mera i detalj ett utförande av en anordning enligt uppfinningen, FIG 5 visar ett annat utförande av en anordning enligt uppfinningen, FIG 6 är ett flödesdiagram som schematiskt illustrerar uppslagningen av en nästa-hopp-adress enligt uppfinningen, FIG 7 är ett flödesdiagram som visar trie-minnesaccess, och FIG 8 är ett flödesdiagram som illustrerar hur en nästa-hopp- adress hittas med användning av en trie och en cache enligt uppfinningen.
DETALJERAD BESKRIVNING AV UPPFINNINGEN Fig. 1 beskriver en anordning enligt uppfinningen på ett förenklat sätt. Enligt uppfinningen beaktas den temporära lokaliseringen mellan paketen även om en triebaserad routinganordning används.
Det antas här att paket inkommmer till styrmedel 2. I detta speciella utföringsexempel antas att paketen är så kallade IP- paket (för Internet) som har en IP-adress. Uppslagningen av nästa- hopp-information svarande mot ett inkommande pakets IP-adress styrs av styrmedlen 2 vilka, i detta utföringsexempel, simultant initierar en traversering av det digitala sökträdet (trie) 5 i routerlagringsmedlen 3 och en uppslagning i indexcachen 4. Om en av raderna i cachen 4 innehåller den relevanta IP-adressen, har det redan gjorts en framgångsrik uppslagning i trie 5 (nyligen).
Det är då möjligt att avbryta traverseringen av trie 5. Med användning av det index som svarar mot den relevanta IP-adressen i cacheminnet 4, kan informationen som finns i lövet direkt hämtas ifrån trie 5. 10 15 20 25 30 516 703 10 Om det emellertid inte finns någon sådan rad som svarar emot den trie 5.
Indexet till lövet relevanta IP-adressen, fortsätter traverseringen av Traverseringen avslutas när lövet har hittats. (som innehålles i ett lövs föräldranod) lagras tillsammans med den inkommande IP-adressen i cachen 4, företrädesvis genom att ersätta den minst nyligen använda raden (adressen) i cachen.
En framgångsrik traversering av det digitala sökträdet kräver åtminstone en minnesaccess. Eftersom. minnet, här routerlagringsmedel 3, antas vara mycket långsammare än cachen, kräver en enda trieminnesaccess fler cykler än en uppslagning i cachen 4. En framgångsrik uppslagning i cache 4 får därför som en följd. att den totala tiden räknad i cykler för att finna den önskade nästa-hopp-informationen kommer att reduceras väsentligt.
Generellt är det inte tillräckligt med en ndnnesaccess för att hitta ett löv i trädet utan det kräver flera minnesaccesser.
Fig. 2 illustrerar mycket schematiskt ett digitalt sökträd eller en trie 5' med ett antal noder l,2,3,4 och ett löv 5. Figuren illustrerar också att noderna och lövet i trie 5' kan lagras i cache 4' på ett sätt som är oberoende av läget, dvs nod 1 lagrad överst följd av nod 3 medan lövet lagras i mitten följt av noderna 4 respektive 2 svarande mot minnesplatser mh qnh. en trie kan Fig. 3 är en schematiskt illustration över hur traverseras. “Trie” kommer ifrån “retrieval” och den innefattar ett binärt, digitalt sökträd i vilket bitmönstret för adresserna traverseras och i vilket en eller flera bitar ger vilket barn till en given nod som ska väljas för att man ska komma till slutnoden, eller lövet. Fig. 3 visar hur, med start ifrån toppen av trädet och genom att undersöka bitarna som innehålles i IP-adressen från vänster till höger i varje nod, antingen väljes route 0 eller route 1 nedåt i trädet. När en nod som inte har några undernoder 10 15 20 25 30 516 703 .nu o; 11 undersöks om resten av IP- Om detta är fallet, har vägen till det Det antas här att IP-adressen är 0010. har nåtts, också betecknad ett löv, adressen finns i lövet. korrekta lövet hittats.
Fig. 4 visar ett utföringsexempel av uppfinningen innefattande en anordning 20 i vilken paket inkommer över nätgränssnitt NIC1,m,NICm, l1,m,lm svarar mot ingàngsporten med samma nummer. Ett inkommet paket med adress x inges via databussar till styrmedel 22 som innefattar en sökmaskins-, 26A uppslagning för att finna nästa-hopp-adressen och utgångsport (utgång NIC) begärs.
Sökmaskinen 26 utför då en uppslagning i cacheminnet 24 och i trieminnet 23 som innehåller det digitala sökträdet 25. Detta kan göras i serie eller parallellt. Nyligen uppslagna adressindex finns på olika platser i cacheminnet 24 och de behöver inte vara sorterade så redan diskuterats När den relevanta SOIII Ovan . informationen, dvs nästa-hopp-adressen och utgångsporten har hittats, antingen i cachen 24 eller i trien 25, och hämtats, sänds paketet ut på rätt NIC. Så som redan diskuterats ovan, avbryts en uppslagning i trie 25, om en sådan har initierats, i fallet av en cacheträff, dvs om adressen med medföljande index till ett löv i trien har hittats i cachen. Alternativt gås cache 24 igenom först och om det blir en cacheträff, behöver traverseringarna av trie 25 inte ens påbörjas. Om det emellertid inte blir någon cacheträff utan den relevanta informationen bara finns i trie 25, lagras index till lövet i trien in i cachen och ersätter fördelaktigt den minst nyligen accessade informationen eller adressen i cachen.
Något annat lämpligt kriterium kan emellertid också tillämpas.
I detta utförande är anordningen implementerad i hårdvara innefattar en ASIC 21. “on chip”. Emellertid “off chip”. fullt associativ cache “on chip” i ASIC:en och accesstiden som I detta fall tillhandahålles trieminne 23 skulle det Emellertid är cachen implementerad som en alternativt kunna ha varit anordnat snabb, 10 15 20 25 30 ,emot i. en routinganordning, 516 703 o.. n. 12 för en uppslagning i cachen är mycket kortare än den tid det tar för minnesaccess i trie 25. I alternativa utföranden består cachen av en direktmappande cache eller en “set” associativ cache.
Fig. 5 visar ett annat utförande av uppfinningen bestående av en anordning 30 i vilken, i likhet med Fig 4, paket anländer över nätgränssnitt 11-lm och vilka därpå över databussar inges till styrmedel 32. Också här består ett styrmedel 32 av en sökmaskin 26 (eller en ansvarar för vidarebefordringsmaskin) som uppslagningarna i trieminnet 33 och i cacheminnet 34. Också i detta fall kan uppslagningarna göras parallellt eller i serie.
Liksom i den föregående figuren innefattar trieminnet 33 en trie 35. Emellertid är i detta fall anordningen implementerad som en FPGA (Field Programmable Gate Array) som innehåller styrmedlen 32 och cacheminnet 34. Trieminnet 33 tillhandahålles här “off chip", dvs det ligger inte på chipet.
I en alternativ implementering, ej visad, innehåller FPGA-chipet också trieminnet. Emellertid möjliggörs en liten och billig “on chip” implementering genom att hålla trieminnet 33 utanför chipet 31. I diskuterats under hänvisning till Fig. 4. andra avseenden är fungerandet detsamma som det som I Fig. 6, exempel på ett flöde, som är ett förenklat flödesdiagram som beskriver ett antas att ett paket (t.ex ett IP-paket) tas 1010. cacheuppslagning IP-adressen extraheras därpå, 1020, och en l030A, samtidigt som en traversering av trien initieras, utföres, väsentligen startande med nod 1, lO30B.
Efter, eller också innan, accessen till den första noden fullbordas, fastställes om adressen hittades i cachen, 1040A. Om ja, används det index som svarar mot den funna adressen för att 10 15 20 25 30 'var mindre än adressen i noden, 13 hitta lövet i trien, 1050A. Nästa-hopp-informationen och information om utgångsport hämtas därpå ifrån trielövet, l060A.
Därpå vidarebefordras paketet till den relevanta utgångsporten, 107OA. Om det emellertid inte blev någon träff i cachen, fortsätts trietraverseringen med nod n = I1 + 1; n = 1, ,p ~l040B, tills lövet hittas (p betecknar här helt enkelt lövet). Den önskade 1050B, 1060B, och adressen med indexet till lövet lagras in i l07OB. informationen hämtas därpå, paketet sänds vidare, enligt ovan, cachen, och ersätter den minst nyligen använda raden, Fig. 7 är ett flödesdiagram som illustrerar en traversering av en trie. I figuren illustreras inte någon föregående eller parallell Flödet starta, 100, i detta fall, uppslagning i. cacheminnet. antas med inkommmandet av ett paket till styrmedel. Adressen, IP-adressen, tillhandahàlles därpå till den översta noden i den 110. 120, någon matchning, och noden dvs det digitala trädstrukturen, för att Därpå hämtas noden, undersöks se om det finns undersöks om den sökta adressen är densamma som adressen i noden, dvs om den sökta adressen svarar mot 131, adressindex i 130. Vid överensstämmelse, adressen i noden, hämtas den sökta informationen från noden, och, i enlighet med uppfinningen, lagras cacheminnet, 132. Speciellt tillhandahàlles adressindex i den nod som är förälder till lövet i trädstrukturen. 133, enlighet med relevant nästa-hopp-adressinformation till relevant Förfarandet upphör, även om det givetvis fortsätts med sändande av paket i utgångsport osv.
Om det emellertid fastställdes att den sökta adressen inte svarade mot adressen i noden, undersöks om den sökta adressen är lägre än 140. barnnoden ifrån noden, adressen i noden, Om ja, hämtas adressen till den vänstra 141, osv. Om det emellertid fastställdes att den sökta adressen inte och den vänstra barnnoden hämtas, 120 undersöks om den sökta adressen är 10 15 20 25 30 51 s 703 nor n. 14 150. högra barnnoden ifrån noden 151, och den högra barnnoden hämtas, högre än adressen i noden, Om ja, hämtas adressen till den 120, och proceduren fortgår såsom diskuterats ovan.
En minnesaccess i trieminnet svarar mot steg 120. Genom implementeringen av ett cacheminne i enlighet med uppfinningen, reduceras antalet sådana accesser väsentligt.
Om emellertid hela trädet traverseras utan att man hittar någon matchande adress i någon nod, måste ett nytt träd byggas och detta görs på konvetionellt sätt. När det emellertid sker en förändring Det index som redan av träd i trieminnet, måste cachen tömmas. finns i en cache löper en risk att vara felaktigt.
Fig. 8 är ett flödesdiagram som beskriver adressuppslagning med användning av en cache utöver trieminnet. 200, till styrmedlen i en anordning enligt uppfinningen. Den ingivna alla cacheminnet, 210, för att se om det blir någon cacheträff, 220. Om 221, och den 222, 223. emellertid fastställes att det inte blev någon cacheträff, utförs Återigen antas att starten, inkluderas ingivande av en adress, tex IP-adress, adressen matchas därpå mot adresser som innehålls i ja, hämtas den sökta noden från trieminnet, eftersökta informationen extraheras ifrån noden, varpå förfarandet, vad det gäller minnesaccess, avslutas, Om det en normal trieminnesaccess, 230, så som diskuterats under hänvisning till Fig.7. Emellertid visar Fig. 7 en speciell implementering. Det är också möjligt att bygga en sökmaskin som kör båda flödena simultant. Om det blir en cacheträff, avbryts det normala flödet. Vid cachemiss, avbryts flödet så som beskrivits ovan eftersom ett normalt flöde redan körs. När emellertid trieminnesaccessen 131 har utförts (framgångsrikt), lagras indexet i cachen, 231, varpå flödet av minnesaccesser avslutas, 232. 10 15 20 25 30 516 703 " nu g. 15 I en alternativ implementering kan det steg som innefattar hämtning av en nod, extrahering av information och cacheuppslagning delas in i tre pipe-linesteg och en ny uppslagning kan initieras för varje cykel.
Parallella uppslagningar av fler än en adress kan också utföras.
Ett pipe-line-förfarande kan också åstadkommas på andra sätt. Ett enda flöde kan också tillhandahållas i pipe-line på något alternativt sätt.
Dessutom kan det uppfinningsmässiga konceptet användas i kombination med vilket slag av komprimerade algoritmer som helst osv för att snabba upp traverseringen av den triebaserade strukturen.
Det uppfinningsmässiga konceptet kan implementeras för att tillhandahålla Gbyte routrar såväl som Tbyte routrar och det kan implementeras för IPv.4 såväl som för IPv.6; principen förblir densamma. Också i andra avseenden är uppfinningen inte begränsad till de specifikt illustrerade utföringsexemplen utan den kan varieras på ett antal sätt inom ramen för vidhängande patentkrav.

Claims (30)

1. 0 15 20 25 30 516 m 16 PATENTKRAV (l0;20;30) genom en routinganordning i ett paketkopplat nät eller mellan nät,
1. En anordning i för vidarebefordring av datapaket där sagda routinganordning innefattar ett antal ingàngsportar, ett antal utgångsportar och styrmedel (2), såsom en vidarebefordrings- maskin, för att styra adressuppslagning och vidarebefordring av routerlagringsmedel (3;23;33) sökträd (5;5';25;35), genomsökningen av vilket innefattar traversering av trädet ifrån paket mottagna över ingångsportar, som inkluderar ett digitalt (trie) roten till ett löv genom ett antal noder, k ä n n e t e c k n a d d ä r a v (4;4';24;34) antal adresser med lnotsvarande index till löven för ett antal att ett cacheminne är anordnat för lagring av ett nästa-hopp-adresser, och för att slå upp en nästa-hopp-adress för ett inkommande paket, (4;4';24;34). utförs en sökning åtminstone i cacheminnet
2. En anordning enligt patentkrav 1, k ä n n e t e c k n a d d ä r a v att styrmedlen (2) används för att ta emot inkommande adresser, tex IP-adresser, och för att initiera en uppslagning av motsvarande nästa-hopp-adress, innefattande en (4;4';24;34), om nödvändigt, det digitala sökträdet (5;5';25;35). uppslagning i cacheminnet och, en traversering av
3. En anordning enligt patentkrav 1 eller 2, k ä n n e t e c k n a d d ä r a v att en traversering av det digitala sökträdet (5;5';25;35) initieras uppslagningen i (4;4';24;34). väsentligen samtidigt med cachen 10 15 20 25 30 17
4. En anordning enligt patentkrav 3, k ä n n e t e c k n a d d ä r a v att traverseringen av det digitala sökträdet (5;5';25;35) avbryts vid en cacheträff.
5. En anordning enligt patentkrav 1 eller 2, k ä n n'e t e c k n a d d ä r a v att traverseringen av det digitala trädet (5;5';25;35) endast initieras om uppslagningen i cachen (4;4';24;34) ej lyckas, dvs om adressen med ett index till nästa-hopp-adressen ej kan hittas.
6. En anordnig enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att indexen till löven för ett antal av de mest nyligen uppslagna nästa-hopp-adresserna lagras i cacheminnet (4;4';24;34).
7. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att de minst nyligen använda adresserna i cachen (4;4';24;34) successivt ersätts av nyuppslagna adresser.
8. En anordning enligt något av patentkraven l-6, k ä n n e t e c k n a d d ä r a v att ett tidsintervall definieras för ersättande av adresser i (4;4';24;34) under ett sådant tidsintervall ersätts av nya adresser. cacheminnet så att adresser som inte har använts
9. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att accesstiden för en cacheaccess är kortare än en minnesaccess i det digitala sökträdet (trie). 10 15 20 25 30 1-._- u nu-.-1 ' o nu .- o 0' . u ~,_. o ' a no- ucu- I . o n apan n gs16 7o3 18
10. k ä n n e t e c k n a d d ä r a v En anordning enligt något av föregående patentkrav, att cacheminnet (4;4';24;34) består av en direktmappande cache, en “preset”associativ cache eller en fullt associativ cache.
11. ll. k ä att En anordning enligt något av föregående patentkrav, n n e t e c k n a d d ä r a v anordnigen är implementerad som ett ASIC-chip.
12. k ä att En anordning enligt något av patentkraven 1-10, n n e t e c k n a d d ä r a V anordningen är implementerad som ett FPGA-chip.
13. k ä att En anordning enligt något av föregående patentkrav, n n e t e c k n a d d ä r a v den digitala trädstrukturen är anordnad “on-chip”.
14. En anordning enligt något av patentkraven 1-12, k ä n n e t e c k n a d d ä r a v att lagringsmedlen trädstruktur tillhandahålles “off-chip”. som är implementerade som en digital
15. k ä n n e t e c k n a d d ä r a v En anordning enligt något av föregående patentkrav, att cacheminnet är anordnat “on-chip”.
16. k ä n n e t e c k n a d d ä r a v En anordning enligt något av föregående patentkrav, att anordningen innefattar en IP-(Internet) router.
17. k ä n n e t e c k n a d d ä r a v En anordning enligt något av föregående patentkrav, oss-ø ~ a oocogg 10 15 20 25 30 516 703 19 att routingtabellen innefattande ett digitalt sökträd är en komprimerad datastruktur.
18. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att det digitala trädet består av en LC-trie, en Patricia-trie eller någon annan lämplig trie.
19. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att ett antal adresser slås upp parallellt.
20. En anordning enligt något av föregående patentkrav, k ä n n e t e c k n a d d ä r a v att en pipe-lineprocedur implementeras.
21. Ett förfarande för att routa ett paket genom routinganordning i paketkopplat datanät, där sagda routinganordning inkluderar ett styrmedel (2) och routerlagringsmedel (3;3';23;33) innefattande ett digitalt sökträd, där förfarandet kännetecknas av stegen att: - lagra index till nästa-hopp-adresserna för ett antal datapakets-adresser i ett associativt cacheminne, - använda cacheminnet och en traversering av det digitala sökträdet för att hitta ett index till nästa-hopp-adressen eller till det löv som innehåller nästa-hopp-adressen, - avbryta traverseringen av det digitala sökträdet om det blir en cacheträff, annars - fortsätta med traverseringen av det digitala sökträdet tills nästa-hopp-adressen hittas, - hämta nästa-hoppadressinformation och vidarebefordra paketet till den relevanta utgångsporten. 10 15 20 25 30 516703 n n .en n. 20
22. Förfarandet enligt patentkrav 21, k ä n n e t e c k n a t d ä r a v att det innefattar: - först utförande av' uppslagning j. cacheminnet; onx det inte blir någon cacheträff, - initiera en traversering av det digitala sökträdet.
23. Förfarandet enligt patentkrav 21, k ä n n e t e c k n a t d ä r a v att det innefattar: - simultant utförande av uppslagning i cacheminnet och initiering av en traversering av det digitala sökträdet, - avbryta traverseringen av det digitala sökträdet om det blir en cacheträff, annars - fortsätta med traverseringen tills det löv som innehåller nästa-hopp-adressen hittas.
24. Förfarandet enligt patentkrav 22 eller 23, k ä n n e t e c k n a t d ä r a v att det innefattar steget att, när en nästa-hopp-adress hittas genom traverseringen av det digitala sökträdet, till exempelvis genom att ersätta den minst nyligen accessade - lagra index sagda nästa-hopp-adress i cacheminnet, adressinformationen om det inte finns något ledigt utrymme.
25. Förfarandet enligt patentkrav 21, k ä n n e t e c k n a t d ä r a v att det innefattar steget att: till adressinformationen i cacheminnet med index till den mest - ersätta index den minst nyligen accessade nyligen använda adressinformationen. 10 15 20 25 30 516 703 u n ma» oo 21
26. Förfarandet enligt något av patentkraven 21-25, k ä n n e t e c k n a t d ä r a v att cacheminnet är en fullt associativ cache anordnad “on-chip” i en FPGA ASIC använd för eller en implementeringen av routinganordningen.
27. Förfarandet enligt något av patentkraven 21-26, k ä n n e t e c k n a t d ä r a v att ett antal nästa-hopp-adresser slås upp väsentligen parallellt.
28. Ett paketdatakommunikationssystem som innefattar ett antal routinganordningar inom ett nät eller sammankopplande nät, där varje routinganordning innefattar ett antal ingångs- och utgångsportar, styrmedel innefattade en 'vidarebefordringsmaskin ett digitalt sökträd (trie) som innehåller nästa-hopp-adressinformation, och routerlagringsmedel som inkluderar k ä n n e t e c k n a t d ä r a v att i åtminstone ett antal routinganordingar är ett cacheminne anordnat för att lagra index till ett antal nästa-hopp-adresser som innehålles i det digitala sökträdet, och för att hitta en nästa-hopp-adress utförs en uppslagning åtminstone i cacheminnet.
29. Ett system enligt patentkrav 28, k ä n n e t e c k n a t d ä r a v att en traversering av det digitala sökträdet initieras väsentligen samtidigt med uppslagningen i cacheminnet och att den avbryts om det blir en cacheträff.
30. Ett system enligt patentkrav 28, k ä n n e t e c k n a t d ä r a v att en traversering av det digitala sökträdet bara initieras om det inte blir någon cacheträff.
SE9902175A 1999-06-10 1999-06-10 Anordning, system och förfarande relaterande till routing av paket i ett datakommunikationsnätverk SE516703C2 (sv)

Priority Applications (3)

Application Number Priority Date Filing Date Title
SE9902175A SE516703C2 (sv) 1999-06-10 1999-06-10 Anordning, system och förfarande relaterande till routing av paket i ett datakommunikationsnätverk
PCT/SE2000/001162 WO2000077984A1 (en) 1999-06-10 2000-06-06 Arrangement, system and method relating to datacommunication
AU58584/00A AU5858400A (en) 1999-06-10 2000-06-06 Arrangement, system and method relating to datacommunication

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SE9902175A SE516703C2 (sv) 1999-06-10 1999-06-10 Anordning, system och förfarande relaterande till routing av paket i ett datakommunikationsnätverk

Publications (3)

Publication Number Publication Date
SE9902175D0 SE9902175D0 (sv) 1999-06-10
SE9902175L SE9902175L (sv) 2000-12-11
SE516703C2 true SE516703C2 (sv) 2002-02-12

Family

ID=20416008

Family Applications (1)

Application Number Title Priority Date Filing Date
SE9902175A SE516703C2 (sv) 1999-06-10 1999-06-10 Anordning, system och förfarande relaterande till routing av paket i ett datakommunikationsnätverk

Country Status (3)

Country Link
AU (1) AU5858400A (sv)
SE (1) SE516703C2 (sv)
WO (1) WO2000077984A1 (sv)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7149216B1 (en) * 2000-09-05 2006-12-12 Cisco Technology, Inc. M-trie based packet processing
GB2368413B (en) * 2000-10-27 2002-09-11 3Com Corp Method and apparatus for searching databases employing a trie search structure
EP1246424A1 (en) * 2001-03-27 2002-10-02 STMicroelectronics Limited Searching for packet identifiers
US7286534B2 (en) * 2001-11-02 2007-10-23 Infineon Technologies North America Corporation SRAM based cache for DRAM routing table lookups
US20030236793A1 (en) * 2002-06-19 2003-12-25 Ericsson Inc. Compressed prefix tree structure and method for traversing a compressed prefix tree
KR100670818B1 (ko) * 2005-05-31 2007-01-19 한국전자통신연구원 분산 구조 라우터에서의 계층2 테이블 관리 방법 및 시스템

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5227778A (en) * 1991-04-05 1993-07-13 Digital Equipment Corporation Service name to network address translation in communications network
US5640551A (en) * 1993-04-14 1997-06-17 Apple Computer, Inc. Efficient high speed trie search process
US5546390A (en) * 1994-12-29 1996-08-13 Storage Technology Corporation Method and apparatus for radix decision packet processing
US6041053A (en) * 1997-09-18 2000-03-21 Microsfot Corporation Technique for efficiently classifying packets using a trie-indexed hierarchy forest that accommodates wildcards
US6597684B1 (en) * 1997-12-24 2003-07-22 Nortel Networks Ltd. Distributed architecture and associated protocols for efficient quality of service-based route computation

Also Published As

Publication number Publication date
WO2000077984A1 (en) 2000-12-21
AU5858400A (en) 2001-01-02
SE9902175L (sv) 2000-12-11
SE9902175D0 (sv) 1999-06-10

Similar Documents

Publication Publication Date Title
US7808929B2 (en) Efficient ACL lookup algorithms
US5920886A (en) Accelerated hierarchical address filtering and translation using binary and ternary CAMs
US8295286B2 (en) Apparatus and method using hashing for efficiently implementing an IP lookup solution in hardware
US6553002B1 (en) Apparatus and method for routing data packets through a communications network
US6594655B2 (en) Wildcards in radix- search tree structures
US7349382B2 (en) Reverse path forwarding protection of packets using automated population of access control lists based on a forwarding information base
EP1623347B1 (en) Comparison tree data structures and lookup operations
US20090077076A1 (en) Database and database processing methods
CN1784678A (zh) 用于高效地搜索被分成具有界大小的、有界数量的子数据库的转发数据库的系统和方法
JP6373021B2 (ja) 異なるように構成された最長プレフィックスマッチテーブルを処理するための装置および方法
EP2517420A1 (en) Systolic array architecture for fast ip lookup
Le et al. Scalable tree-based architectures for IPv4/v6 lookup using prefix partitioning
JP2000151691A (ja) インタ―ネット網等の高速通信網のノ―ドのル―ティング表構築のためのプレフィックス分析による情報探索用メモリ
US20140358886A1 (en) Internal search engines architecture
US20080263269A1 (en) Key selection device and process for content-addressable memory
Luo et al. A hybrid IP lookup architecture with fast updates
US9485179B2 (en) Apparatus and method for scalable and flexible table search in a network switch
US7924839B2 (en) Mechanism to reduce lookup latency in a pipelined hardware implementation of a trie-based IP lookup algorithm
SE516703C2 (sv) Anordning, system och förfarande relaterande till routing av paket i ett datakommunikationsnätverk
US11115333B2 (en) Single stage look up table based match action processor for data packets
Huang et al. Fast routing table lookup based on deterministic multi-hashing
Tan et al. Efficient name lookup scheme based on hash and character trie in named data networking
JP4726310B2 (ja) 情報検索装置、情報検索用マルチプロセッサおよびルータ
JP5144225B2 (ja) 情報検索装置、及び情報検索装置へのエントリ情報の登録方法
Erdem et al. Value-coded trie structure for high-performance IPv6 lookup

Legal Events

Date Code Title Description
NUG Patent has lapsed