<<

This article was downloaded by: 10.3.98.104 On: 27 Sep 2021 Access details: subscription number Publisher: CRC Press Informa Ltd Registered in England and Wales Registered Number: 1072954 Registered office: 5 Howick Place, London SW1P 1WG, UK

Interconnections for Computer Communications and Packet Networks

Roberto Rojas-Cessa

Internet Protocol (IP) Address Lookup

Publication details https://www.routledgehandbooks.com/doi/10.1201/9781315373485-4 Roberto Rojas-Cessa Published online on: 06 Jan 2017

How to cite :- Roberto Rojas-Cessa. 06 Jan 2017, Internet Protocol (IP) Address Lookup from: Interconnections for Computer Communications and Packet Networks CRC Press Accessed on: 27 Sep 2021 https://www.routledgehandbooks.com/doi/10.1201/9781315373485-4

PLEASE SCROLL DOWN FOR DOCUMENT

Full terms and conditions of use: https://www.routledgehandbooks.com/legal-notices/terms

This Document PDF may be used for research, teaching and private study purposes. Any substantial or systematic reproductions, re-distribution, re-selling, loan or sub-licensing, systematic supply or distribution in any form to anyone is expressly forbidden.

The publisher does not give any warranty express or implied or make any representation that the contents will be complete or accurate or up to date. The publisher shall not be liable for an loss, actions, claims, proceedings, demand or costs or damages whatsoever or howsoever caused arising directly or indirectly in connection with or arising out of the use of this material. Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 nbidn uhshms h muto eurdmmr utb imple- be must memory required feasibility of improve amount to the (op- using addition, schemes, through lookup In such accesses. transmitted perform building memory to be in of requires can number mismatch data smallest speed which the This lags at links. speed rates network whose the tical) to component accessed to a is is comparison table memory in forwarding Unfortunately, the lookup. storing IP memory perform router, a this or forwarded. in access address arrives is packet packet IP to a the requires where is It number which port (NHI), lookup. Internet egress information called IP router’s next-hop is the just the process retrieve or This to router, of table. lookup, table forwarding or destination address the the node, (IP) in network between prefix Protocol matching a a to traversing prefix packet packet longest the a the port performing egress requires the out Finding Exercises Readings Additional 3.13 Memory Content-Addressable Scheme Ternary 3.12 Lookup Parallel-Search A Helix: 3.11 3.10 . ahCmrse Path-Compressed 3.4 Trie Disjoint Binary Basic 3.3 Introduction 3.2 3.1 CONTENTS Lookup Address (IP) Protocol Internet 3 . lo itrBsdAlgorithm Filter-Based Bloom 3.9 Algorithm Lulea Trie Level-Compressed 3.7 Trie Multibit 3.6 3.5 . I-48Scheme DIR-24-8 3.8 h owrigtbersdsi h eoyo h otr vr iea time Every router. the of memory the in resides table forwarding The .. rcdr oBidaDson Trie Disjoint a Build to Procedure 3.3.1 .. ersnaino rfie saBtVector a as Prefixes of Representation Levels Prefix of Number 3.7.2 3.7.1 ... PAdesLou sn lo Filter Bloom a Using Lookup Address IP 3.9.0.4 ... ue acigProcess Matching Lulea Field Code Maptable and 3.7.2.3 Field Code 3.7.2.2 3.7.2.1 ...... 47 78 75 71 78 68 53 52 50 48 67 56 55 54 66 58 65 63 62 59 59 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 o owrigtepce.Freape owrigtbemyhv he IP three have used may and table retrieved forwarding a is the example, prefix routes: For Then, matched packet. packet. longest the incoming forwarding the an for for of information address pre- IP port is possible destination output table the the all forwarding match among the from that prefix lookup, fixes matching IP longest the perform obtain To to MSB. searched the from starting prefix, n oke eod ftelnetpexta atmthdtedestination the matched last that prefix lengths longest different all the in of prefixes records address. is for prefix keep search matching protocol, a longest to the IP requires and 1), the selection In of IPv6. and this 4 with so further, grow version to selected; even for expected large lengths is increasingly it these is and increase IPv4, prefixes may of IPv6 number the of 2) adoption the performing and than router), large a complex switching). of more label memory becomes in the used in prefix (as turn, matching matching in the exact (and for table forwarding search a the in for entries used of and ber retrieved is port output packet. associated the its forwarding and matched address longest IP the destination the has packet length it fasto Prue.Ec Pruei ersne ya by represented is route IP Each routes. IP con- of table forwarding a a Specifically, prefix. of longest sists the to same matching the a becomes through reachable are aggregated. be and share may that (MSBs) port addresses router Those significant ports. addresses router. most different of a through ranges common at as reachable represented aggregation are prefix are given address prefixes, which a and of or networks, by different example prefix reachable figure, an are a this shows that In of 3.1 addresses Figure combination of of range port. the a router table summarize as includes forwarding to of prefix represented supernetting a The addresses objective called length. holding technique of the memory a range has a uses a addresses CIDR in router. of entries Internet of aggregation an aggregate number This to the used prefix. approach reducing as an is addresses IP [67] (CIDR) Routing Interdomain Classless Introduction 3.1 process. in lookup tables, the interrupt routing to in not changes as by accommo- so caused manner to table expeditious able forwarding an the be of should changes mechanisms date lookup IP Furthermore, mentable. 48 h opeiyo drs okpi ihbcue )pexlntsmybe may lengths prefix 1) because: high is lookup address of complexity The num- the minimize to addresses of aggregation the resolves CIDR Although ihCD,adesscnb grgtda rirr ees n Plookup IP and levels, arbitrary at aggregated be can addresses CIDR, With > necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections < ar h rfi eghidctstenme fsgicn isi the in bits significant of number the indicates length prefix The pair. 12.0.54.8/32 > , < 12.0.54.0/24 < > 12.0.54.2 and , < 12.0.0.0/16 > prefix , < > 12.0.54.0/24 fa incoming an If . < prefix/prefix > is Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 ntero re euehr h em reo reitrhnebyi this in interchangeably trie or children of tree number terms the the does to here 0 so use from increases, We to numbers numbers 0 tree. be chapter. of numbers would from root set nodes numbers the the the those from sort in if of be could children that would we the Note children that and 9. first such tree), entry, the root an (as where 1 of tree units decimal a the this as and time tens the [2]. the by increase on be to reported continues to being number found is the be number but could written, This contents is prefixes. of the book number million lookup, the a or table. IP half values the in content over to example, the accesses For of of is number grows. range problem the the entries the reduce as to So exacerbates table) set. problem the This the of trials. middle in the of not in number is (e.g., smallest 15 the linear that in location simple a out content from A go find perform specific on. would a and to so we find locations) be and 15, to (7 number would 1, find 6 Entry table to to in the were 0 4 we in if 0, number example, Entry stored desired For in consecutively search. a stored are find is and to 1 order duplicate. strategy where ascending a table, in has the a stored entry in is are no have entries set that can the the consider entry are contents where an a also entry values take the Let’s of that can size. assume range each Let’s table the where the that set, Note than 20-number 19. Let’s larger a content. and as as 0 table number between a the value holds Table of entry content. contents each entry and the the rows) consider and (or entry entries following an eight The by of has affected 3.1 address accessed. is the complexity is between whose prefixes relationship problem, search the the the storing of part memory illustrates example the times of number port. per information Forwarding 3.1 FIGURE Lookup Address (IP) Protocol Internet aki u xml,w ol ottecnet yslcigte based them selecting by contents the sort could we example, our in Back list the of locations different from search the starting of think could One the minimize to as so searched and stored carefully be to have Prefixes 208.13/7 208.1/ 130.867/24 130.86/24 130.865/2 3 1 Router 4 2 { ,4 ,9 0 3 8 n 19 and 18, 13, 10, 9, 7, 4, 1, 208.15/4 208.16/3 208.14/ 24.03/ 49 } , Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 tigo sad1,mre tteed(ih-otsd)wt trmr (*). mark star a 1*. with a as side) by (right-most represented represented end is are the 128/1 Prefixes at prefix bits. marked instance, 1s, 7 For and and 0s 1 of between string lengths prefix with fixes, table. forwarding a in prefixes of Example 3.2 TABLE members. set nonrelated with table a in searching of Example 3.1 TABLE 50 otadte1cidi ttergt efiuesostepsto fte10 the of prefix position and the 0, level shows the on figure of positioned he side is right. it left prefix or the the where tree), at at three, the binary is is the child child in 0 1 prefixes the the where and (using IPv6). 3.2), representation root for (Table tree bits table binary 128 forwarding a and in the IPv4 stored for be bits can prefixes 32 form, simple Tree a In Binary Basic 3.2 1 al . hw neapeo owrigtbe hstbehs1 pre- 10 has table This table. forwarding a of example an shows 3.2 Table resrcue r oee ndti n[43]. in detail in covered are structures Tree necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections 19 18 13 10 9 7 7 4 6 1 5 4 3 2 1 0 Content Address rfi ID Prefix P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 1 0001000* 100000* 111011* 11111* 10001* hsfiuesostebnr reof tree binary the shows figure This Prefix P1 1000* 0001* 00* 1* * a rfi egh0(.. otof root (i.e., 0 length prefix has P10 so ee 7. level on is Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 stelneto hs htmthstedsiainadeso h packet. prefix the matching of The address tree. destination the the of matches LSB, that or path those leaf, the of a in longest to bit MSB, the to or bit is (*), compared is root packet the the from of destination the Therefore, arrives, packet *). prefixes by three. other represented the all of range of second. root the ancestor the the with the is for overlap is * 1 ranges combinations, *, to address possible prefix, two and all bits default only prefix (i.e., two The has first these children. bit the So binary position LSBs. for each or their shows, 0 example is to this bit linked As different 11 only same as the the the represented tree. share and at are 111* the (11-) value and bits 110* into same the two prefixes the incorporated example, of first For with are shared. any (bits are entries bits match position) significant all common to with table, need prefixes forwarding we Therefore, the because in Furthermore, prefixes (LSB). bit significant h do h oe(rNI,adtopitr oteadeso h children the of address 2 the (i.e., 32-entry to pointers 1). node, two non-prefix and a and 0 tree. or (children NHI), the prefix NHI node (or of a or the node root is ID of entry the the prefix the stores the of if 0 for Id indicating address field the flag memory a be a The prefix may holds a node. be entry node is that Each may A node in node the stored figure). A If also pointers. the prefix. is as in or table 1-child, shown node the and parent not 0- of a the tree, addresses children, the the two (where each in with representation, node represented numbers tree this node a In the to 3.2. are assigned Figure is in location tree memory binary the of implementation 3.2. Table in prefixes the of tree Binary 3.2 FIGURE Lookup Address (IP) Protocol Internet iue32sostebnr rerpeetto fTbe32 ahtm a time Each 3.2. Table of representation tree binary the shows 3.2 Figure least- the to MSB the from starting stored, are tree the in prefixes The h al trste2 oe ftete.Hwvr hstbei ul sa as built is table this However, tree. the of nodes 22 the stores table The simple a shows 3.3 Table memory. in stored is table this of tree binary The F orwading P P P P P P P P P P 10 9 8 7 6 5 4 3 2 1 01* 10* 10* 1* 10* 10* 01* 0* 1* * Table 5 eoyboka h ubro nr fmmre oein come memories of entry of number the as block memory 0 0 P10 P4 P3 0 0 1 0 0 0 P5 0 P9 P1 0 0 1 1 P6 0 P2 1 0 1 1 P8 1 1 1 P7 51 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 n 2 o P6 h acigcmlxt ssi ob nteodrof order IPv4 the for in accesses be memory to said 32 is to complexity up matching where The is IPv6. This for prefix. 128 stored and longest the as cesses 3.2. Figure of tree binary the storing format memory of example An 3.3 TABLE smallest the in lookup Random-Access IP perform time. Static to inter-arrival desirable as packet is such possible it technology length as memories, memory tables any candidate lookup fast suitable of building a (as for is prefixes SRAM size the represent small). feasible to are to SRAM, equal a Memory, used is of memory entries be The of must nodes. number tree the of table, number entries) of number power-of-two 52 o h ogs rfi ntetaes rmtero otelae.Aregister A leaves. the to root the from traverse the in prefix longest the for requires tree binary The Trie Disjoint 3.3 h acigpoesi iayte a eur smn eoyac- memory many as require may tree binary a in process matching The eoyaddress Memory W necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections stepexlength. prefix the is 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 remembering rfi flag Prefix 0 1 1 0 1 1 1 1 0 1 0 1 0 0 0 0 1 1 0 0 0 0 rfi (NHI) Id Prefix h atmthdpexaogtesearch the along prefix matched last the P10 P3 P2 P1 P8 P9 P7 P6 P5 P4 ------0-child 21 19 18 14 13 11 10 7 6 4 3 1 ------1-child 20 17 16 15 12 5 2 9 8 ------O ( W ), Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 00bcmsa netrnd ntapex fteetopexsta has that prefixes two these of prefix) a (not node children. two ancestor an becomes 0010 prefixes: by process matching the larger simplifies or it to but equal tree, the prefix. nodes binary single (*) holds of a regular root leaf number matching a the a visited of from uses the that tree started and than This examined, leaves, prefix. is matching time matching tree each longest the the Therefore, towards leaves. router, continuing the a at and in are arrives tree packet disjoint a a none. of or prefixes children shows, two figure either has node each that property the has hn01 spse rmlvlfu olvlfieo h reas trie 00101*. the of or five child, level 1 to four adding level by from completed pushed be is 0010 must Then 0010* Therefore, 0010*. of closest the of with prefix subtree the called a added hold also (or an will prefix is child Such a technique added of child. This new node prefix. the another ancestor ancestor cases, with an such node or In completed a prefix prefix). that be a a means either to of This be consist has may children. process child node no This one or tree. children has binary two that a have completing node by Trie each built making Disjoint is a trie disjoint Build The to Procedure 3.3.1 3.2. Figure in prefixes from tree binary Disjoint 3.3 FIGURE re- memory additional a This if record. avoided temporary be this may keep quirement to common be may Lookup Address (IP) Protocol Internet F orwading o xml,ltsasm httebac fati a h olwn two following the has trie a of branch the that assume let’s example, For the As 3.2. Figure in tree binary the of trie disjoint the shows 3.3 Figure P3 P2 P1 P10 P9 P8 P7 P6 P5 P4 0 1 10 10 1 10 10 01 * 01 * Px * Table * * P10 * * * * 00 and 0010* * 0 P3a 0 P3 0 1 0 1 1 Py P4c 0 1 P4b P4 1 P3a 00*wee010 steol hl 0child) (0 child only the is 00100* where 00100* P4a disjoint 1 P1a 0 P9 rei sdised h ijittrie disjoint The instead. used is trie 0 P5 efpushing leaf 0 P1 0 1 P5a 0 1 1 P6 P2a 0 P2c [161]. P2d P2b P2 0 P2f 1 Px 0 0 1 1 00* and 00101*, 1 P8 P2e 1 1 P7 53 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 sahee yrahn fteti evsa h ren ogrhsinternal has longer no trie the as matching binary leaves but a matched). completed, trie for be is the needed could tree of (that the memory reaching prefixes as the increases by than nodes achieved larger of is is number trie the this as tree for used memory of osblt fti oocrmyb ml n a o cu nalpossible all in occur not may and small be the longest However, may the node. occur to each at to path paths. children) the this (two of the when of bifurcations that has in possibility occurs to table But scenario equal the worst-case trie. in be This binary prefix may accesses trie. a memory binary than of average, a number the the on scenario, accesses, worst-case memory of memory needed number of number bi- a the of decreases that height than tree wider accesses. the (therefore, is smaller Reducing required to is memory trie. space nodes the nary additional of memory), number uses the shorter trie while a Patricia is, and requiring a That skip fields. of the two information entry indicating these an and and node, store height general, a bits the shorter In for compressed a shows stored fields. with segment the be figure trie must However, this a compression nodes). (i.e., the in trie of of indicating trie smaller number trie a compressed Patricia smaller in The the but a 3.2. prefixes shows of Figure 3.4 set in bits, Figure same tree bits). skipped binary compressed of number of the the string table by actual forwarding (indicated (the compressed a compressed a as if bit represented 1 or example, be can with For 111* 11* node. compressed. prefix unbifurcated prefix a 111*, be trie, and for num- may Patricia 1* bits the prefixes the tree compressed contains a trie; In of a at compression. this number of path bits the in branches called many to variable is equal but be technique is one may This once not bits trie, at comparing compared compared Patricia by of lin- memory ber called prefix number 32 a also time; a The than [117], takes faster for time. trie still is search scenario path-compressed tree the case The binary improves worst IPv4. a the for in lookup, accesses bit IP by in bit search of ear comparison the Although Trie Path-Compressed 3.4 128 and IPv4 for at bits remains 32 complexity is search scenario prefix worst-case The the IPv6. is, for this bits tree, binary a of 54 skip ntrso efrac,tePtii reprom okpwt smaller a with lookup performs trie Patricia the performance, of terms In that to equivalent is tree disjoint a on matching of complexity search The necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections ed r1bt n ytevleo h kpe is or bits, skipped the of value the by and bit) 1 or field, O ( W .Teamount The ). segment =“1” Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 i rede,btrte sn osatnme fbt,called Patri- bits, the of as number bits, constant of a number large using a rather with but compressed does, be trie can cia trie a of Nodes Trie Multibit 3.5 trie. path-compressed a of Example 3.4 FIGURE Lookup Address (IP) Protocol Internet odn l h hlrno oe iue . n . hwa xml fa of example an show 3.6 and 3.5 Figures node. a of children the all holding stride. constant and three-bit a with trie Multibit 3.5 FIGURE a as are it that shows levels a 3.5 the In called Figure to time. is expanded as a are size, approach at prefixes stride This size, trie, the reduced. stride a to is such the proportional match- In to accesses a [159]. equal memory for trie bits, by of multibit search of trie number the number the therefore, the a of and turn, use height bit, would the one prefix and than reduces ing size larger also skip stride approach the a This identifying assigning node. of each complexity for the segment avoids approach trie multibit h utbtti a lob ersne sasto eoybok,each blocks, memory of set a as represented be also may trie multibit The P P P P P P P P P P Forwading 10 9 8 7 6 5 4 3 2 1 10* 10* 1* 10* 10* 01* 0* 1* * 01* P P P P P P P P P P Forwading 10 9 8 7 6 5 4 3 2 1 P10 P3 10* 10* 1* 10* 10* 01* 0* 1* * Table 01* P P10 3 P P10 3 Table P3 P10 P4 Segmnt=1 P4 0 Skip=1 P4 P4 Segmnt=0 P3 P4 Skip=1 P P3 4 01 P4 P4 Segmnt=0 0 Skip=2 P10 P1 0 01 P9 01 P1 0 P5 Rot P6 10 Segmnt=0 P6 Segmnt=0 Skip=1 P9 P2 Skip=2 10 P1 P5 P2 10 P2 P2 1 0 0 P2 P6 1 Segmnt=1 P2 1 Skip=2 P2 P8 P2 P2 1 0 P2 Segmnt=1 1 Skip=1 P8 Segmnt=1 n Skip=1 aytrie. -ary P7 P2 P 2 P7 stride P7 The . 55 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 e h sdpexepnin hr ntewrtcs,and srepresented is as node tree, a binary case, a worst in the used in that store where than 2 to expansion, by larger used prefix is memory used of table the amount forwarding per the a approach, of this prefixes In all factor. speedup the is as complexity search the Therefore, ubro eoyacse yoe oee,a h xes sn fmore of using expense the the reduced at a have However, that would one. Note left by (bottom) three. the memory. is accesses at subtrees memory subtree the the of the path-compressed for shows for number size a four 3.9 of stride Figure as size the subtrees. or stride where other multibit trie, of a LC compression height as resulting parts the tree compressed uncompressed from the remaining are separately reduce the Subtrees trie to in tree. performed be the are may of steps objective These main memory. The or is compression. node path the selected, as is stride the trie. multibit Once a 3.8). as (Figure represented level prefix selected shows. the 3.7 Figure as completed, is tree variable a using First, by expansions, LC prefix needed compression. an amount unnecessary path build the and reducing to reduces sizes path by It used stride and tree tree. be trie), a multibit multibit may variable-stride build a a techniques to is in tree) trie (as Patricia This expansion com- a trie. bit tree in trie), fact, (as disjoint In compression . a properties disjoint of in combination and (as a trie, pletion uses in multibit trie prefixes, path-compressed, LC the the store The from to trie. lookup. memory multibit IP of a height perform amount with tree required to comparison the a needed reduces reduces accesses it memory trie, addition, of LC In number as the known therefore, also and, [124], trie level-compressed The Trie Level-Compressed 3.6 3, three: amount. to levels, proportional memory 3-bit are three and that has trie levels Speed the to 7, 9. expanded of trie and be height multibit 6, to a called have has is trie prefixes approach the leavesand This the As to pushing. nodes. pushed leaf intermediate are with into prefixes the fall figures, they these when In trie. multibit stride 3-bit 56 refrpromn Plou.Frsrdso pto up of strides For from lookup. reduced IP is performing for tree h ags ubro eoyacse eddfrti xml reis tree example this for needed accesses memory of number largest The or stride new a as selected, is at path prefixes compressed of next the number step, large that a built. After include is to trie LC selected an is which size in stride steps a three Then, show 3.9 and 3.8, 3.7, Figures k children. necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections W hc s3 isfrIv ad18frIv) to IPv6), for 128 (and IPv4 for bits 32 is which , h utbtti sfse hnabinary a than faster is trie multibit The O ( W/k ,where ), k k a lob considered be also can is h resheight trie’s the bits, d W k e . Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 nentPooo I)AdesLookup Address (IP) Protocol Internet utbtti ersnain ahnd a 2 has node Each representation. trie Multibit 3.6 FIGURE 1 1 1 1 0 0 0 0 1 10 01 0 1 10 01 0 Rot Prefix Ptr2 Ptr3 P P P P P Ptr1 2 2 1 1 3 node /Ptr 1 10 10 10 01 01 01 0 1 10 10 10 01 01 01 0 Prefix/t Node Prefix/t P7 P7 P2 P2 P8 P2 P2 P2 Node Ptr4 P4 P4 P4 P3 P3 P3 P3 2 1 1 10 10 10 01 01 01 0 Prefix/t Node stride P2 P2 P2 P2 P6 P6 P5 P9 3 children. 1 10 10 10 01 01 01 0 Prefix/t Node P10 P10 P10 P10 P4 P4 P4 P4 4 57 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 xs sdson utes nasalnme fcmiain.Ec fthese of Each combinations. pre- of prefix of number a expansion small next. by 2) described a produced algorithm), is in tree strategies subtrees, original a disjoint of the leaves as in the fixes, three representing 3) (e.g., and lengths count, prefix of prefix. number which matching determine the to holds be used table can are codeword NHI parts replicated parts the these first a of of of three uses entry Each The number block. table. Lulea reduced memory NHI pushing). a and a considered leaf maptable, with array, (i.e., index and base expansion array, levels by prefix multibit produced a a fewer of of prefixes NHIs with prefixes of store but representation to a the used trie follows is memory Lulea developed, of [49]. was amount table it the forwarding where minimizes university that the structure after data named algorithm, Lulea The Algorithm Lulea 3.7 stride the retrieving for amount. accessed be memory to and need may Speed tree the of size. root pushing. the leaf as performing four and 3 level selecting construction: trie LC of 1 Phase 3.7 FIGURE 58 okpcmlxt fteL rei iia ota ftemlii trie. multibit the of that The to achieved. similar the be is lower can in trie The stride speed LC used. the The the longer sizes once. of the stride complexity at placed, the trie, lookup are compared on prefixes multibit be the depends the can where achieved that in level is bits As lookup of accesses. IP number memory which the of is number stride and the size memory both ue sssvrlsrtge ordc h eoyaon:1 small a 1) amount: memory the reduce to strategies several uses Lulea F orwading necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections P P P P P P P P P P 10 9 8 7 6 5 4 3 2 1 01* 10* 10* 1* 10* 10* 01* 0* 1* * table P10 0 P3 0 0 P3 1 0 0 1 P4 1 P4 P4 0 1 1 P3 P4 0 P1 1 h Cti svr ffciea reducing at effective very is trie LC The 0 P1 1 P9 0 P5 0 P1 0 1 P5 0 1 1 1 P6 0 P2 1 P2 P2 P2 P2 0 1 P2 0 0 1 1 1 P8 1 P2 1 P7 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 rfie rm001,a h i npsto ,t rfi 5.5/6 stebit the as 255.255/16, prefix to 1, position in 2 For bit position not. the in occu- as or decimal, 0.0/16, prefix in from 128.0/16 new prefixes or a binary, 2 in holds NHI. position 0000* position the pies 0000 in 0000 its 1000 stored whether prefix be indicate example, to a to needed is dedicated prefixes vector the is of 2 of bit number has objective The the The vector. show value. The bit to prefix is the a mapt- represents vector as the position bit represented of whose are contents bits, 16 of the string level and arrays, in Vector base-index prefixes Bit and able, a codeword as the Prefixes build To of Representation is which maptable, 3.7.2 the build 32. to and used 24 is levels the description at this of The matching as tables. representation for 16 IPv4 general reused level for a describing algorithm, shows Lulea accessed on are the 3.10 focuses 32 in Figure and prefixes 24 accessed. of Levels 16. to is relocation level expanded 16 is are scheme level the 31 24, in after and level level 25 to main between expanded The 16, that lengths 32. are are to level prefix 23 all expanded levels with and is represent prefixes 17 selected 16 similarly, between to than The and lengths smaller levels. aims prefix length prefix prefix with that a prefixes few with schemes level, a prefix first Any on 32. the table and 24, routing of a one on is prefixes algorithm Levels Lulea Prefix The of Number 3. stride with 3.7.1 trie multibit construction: trie LC of 2 Phase 3.8 FIGURE Lookup Address (IP) Protocol Internet i ntebtvco stela ftebnr rebitwt h prefixes the with built tree binary the of leaf the is vector bit the in bit A P P P P P P P P P P Forwading 1 10 9 8 7 6 5 4 3 2 * 01 10 10 1 10 10 01 0* 1* P10 * * 15 * * * * Table . 15 * 0 P3 0 ntebta ih2 with bitmap the in 0 16 1 0 is ubrdfo i obt2 bit to 0 bit from numbered bits, 0 1 P4 1 P4 P4 1 P3 01 P1 01 P1 01 P9 16 is hsbtvco hnrepresents then vector bit This bits. P5 10 P5 10 P6 P2 10 P2 P2 16 1 P2 − P2 0 0 .Hr,ec bit each Here, 1. 1 1 P8 1 P2 1 P7 59 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 atbet tr nomto bu h i-etr n ntr,frthe for turn, in and and array, bit-vector, index the base needed. about codeword, be information process. a would store lookup uses accesses be to scheme not memory maptable the may multiple a issue, described as as this 1s, vector overcome bit all To the counting storing However, for case. efficient bit this the in to 16 level 0 bits bit the from of ones prefix. bitmap matching the the a in prefix to 1’s once that equal way, of of or number this position than the In the smaller by lookup, trie). position addressed for multibit a is accessed with a table representing is in NHI bitmap, of as the the (instead respectively, in of respectively 1, bit 0, nodes and a the and 1, prefix, prefix, 0, same 1, 1, of the as to number bits belong them the the length 0011 prefix by and 0, considering 0010, represented to 0001, example, are For prefixes nodes small. bits duplicated kept if of is four, of table bits NHI setting the By in prefixes table. prefix as a NHI descendants, 0. of no the to and expansions in set These prefix not are length. no are prefix, prefix with 13 duplicated nodes longer and a Therefore, a 12, hold 1. have that 6, bit to nodes which Bits prefix, set presented 0. prefixes, same also is to of the are case 5 of bits ancestors Similar bit expansions are 0. are and are four they to they 1 bits to set but two expanded since to are these prefix but set they a Because prefix, is of 5. 0, 4 same bit and bit the first 4 in of the bits bits prefix is expansions in leaves; the it also 16 of as are has 1 duplicate 3 it to a to so set 1 is levels, bit 0 the Bits four set bit leaves. has to Here, subtree how 15. of This to example vector. 0 an bit shows 3.11 the Figure in 16. values level to up lengths 3.2. with Figure of tree binary the of representation trie LC Final 3.9 FIGURE 60 tsol ecernwta htLlade st on h ubrof number the count to is does Lulea what bitmap. a that in now nodes clear of representation be the should of It example an shows 3.11 Figure prefixes of number the to equal vector bit the in 1 to set bits of number The P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 Forwading necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections 01 10 10 1 10 10 01 0* 1* * P3 P10 * * * * * * Table * 0 1 0 P4 P4 P3 01 x P1 01 where , P9 P1 01 P5 P6 x 10 orsod otemthn rfi at prefix matching the to corresponds 10 P2 P2 10 1 P2 P2 P8 P2 P7 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 or h onigo si h atbtms ssoe ntemaptable. must the 1s in stored of of is count set bit- the the last in However, the bit-masks) in wide. (three 1s of 2 6-bit of bit-mask offset is counting to The The 0 offset bit-masks. four. bit-mask the four from those as of all set 0, include each is in 0 ones bit-mask of number the accumulated where h ubro aeidxs.Teeoe h aeidxaryhas array index base reduces the (this Therefore, bit-masks indexes). consecutive base four of of set number bit each the for the allocated in is bit-mask index largest base possible the length, last considering The the by index. d for calculated bit accumulate is 2 and may index or offset, vector, that base code, 1s the the of of number of bits, use of number the in of example an shows of field offset The bit-mask. one only and one codeword to corresponds an codeword 1) fields: each two comprises and chunk code a as bits of ee 6comprises 16 level or larger the onto projected be can they level. and prefix levels selected different at found are Prefixes 3.10 FIGURE Lookup Address (IP) Protocol Internet i-ak o3 ffe onstenme f1 nBtms ,adcode and 4, Bit-mask in 1s in of 1s number of sixth the number counts (the the 5 5 counts offset Bit-mask 1 3, in index to is base which 0 Therefore, Bit-masks 92), left). corresponding bit the bit the (or from to bit-mask 01011101* points arrow 00000000 The prefix 3.12. Figure to in arrow the by index. pointer base a are for address bits destination 10 packet and a codeword of a bits access 12 to MSB used the Therefore, indexes. base log bit-masks oadte1 pt i-ak2 bit-mask to up 1s the add To h i etri emne nogop fsaladeulnme fbits, of number equal and small of groups into segmented is vector bit The sa xml,ltscnie htapce drs ace h i position bit the matches address packet arrays. a that index consider base let’s example, and an codeword As the shows 3.13 Figure 2 hrfr,tenme fcdwrsi h oeodaryi 06 where 4096, is array codeword the in codewords of number the Therefore, . (2 i 16 stebtms ftemthn pex i.Teostrcrsthe records offset The bit. (prefix) matching the of bit-mask the is − i 16) 16 niae h ubro si bit-masks in 1s of number the indicates h rgnlLlaagrtmue 6btbtmss Therefore, bit-masks. 16-bit uses algorithm Lulea original The . − Level 32 e Level 24 eas ffe onstenme foe ntrebtmss a bit-masks, three in ones of number the counts offset Because . 61 o ee 6 hrfr,tebs ne s1 isln (i.e., long bits 16 is index base the Therefore, 16. level for 1s 16 2 Level 16 2 16 4 06btmss oeodue h aenumber same the uses codeword A bit-masks. 4096 = 12 − ,a 2, aeindex base offset i − n )acombination a 2) and sue.Fgr 3.13 Figure used. is 3, i − and 2 2 2 16 6 1024 = i − 61 1, Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 otebtcrepnigt h rfi.Tettlnme foe s2,which 22, bit-mask is the ones of of number beginning total the The from prefix. prefix the 1s to to of corresponds corresponding number bit the the counts to 5 Bit-mask in target the onto projected be can level target the than level. lower levels at Prefixes 3.11 FIGURE 62 xml fte1bt one ytedffrn fields. different the by counted bits 1 the of Example 3.12 FIGURE ( many as and codes different of number the as rows example. many our as for in maptable has position the table bit shows this each 3.14 The provides for Figure entry 1s bit-mask. This of bit-mask. maptable. corresponding number the a the accumulated in in the entry 1s showing an the by address of information to position used and is combination code the The indicates field Maptable code and The Field Code 3.7.2.1 4k each Prefixs bit 16 mask: bits) necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections 0 1 10 a b 1 0 2 34 0 10 d 0 e f v g . 1 h 1s counted 5678 i 0 j by 10 k 1 base index 1 1 910 10 l 0 m n 0 1112 0 o 10 1s 1 counted 13 ofset p 1 q by r 14 15 1 1s 10 s counted 1 Matching t by u code v Prefix Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 ubro obntosare combinations of number ijitti) h ubro culcmiain htcnb rdcdin produced be the can (see that children combinations 2 no than or actual smaller two of is either expansion number has prefix node the each trie), where disjoint tree, 2 in a combinations than of completing smaller number to is the that bit-mask found 16-bit algorithm a Lulea the of authors The of Field number Code the to equal 3.7.2.2 is table this bitmap. in the entries) in (and 1s prefixes of number The 3.12. Figure of bitmap for maptable of Example 3.14 FIGURE lookup column. for maptable used the bits address address to packet used of are string 16) the level and of for rows bits 16) the 16 level address (e.g., for to log bits the used four 4 general, the are In (e.g., respectively. and address table, code destination the the packet’s of Therefore, columns a bit-mask. a in in bits bits LSB of number the as columns fields. index base and offset of values the of Example 3.13 FIGURE Lookup Address (IP) Protocol Internet Base Code (1k (4k (each 4k al . hw h H al sdi ue oietf h acigprefix. matching the identify to Lulea in used table NHI the shows 3.4 Table index word entris) entris) bit-mask: 16 ary: ary: bits) Bit 0 0 (6 10 Ofset (Code) bits) 0 0 (16 Bit-mask bits) (10 (r1) (r2) (r3) (r4) 0 adres bits) Code 3 57 r1 0 ones Bit 0 1 2 3 15 1 1 1 1 0 1 10 1 1 1 1 1 3 Bit 1 1 2 2 1 - mask 3 1 1 1 3 7 ones l r 1 10 2 1 1 where , 4 4 2 Bit 16 ones 0 1 1 4 31 5 2 steepnino rfie ssimilar is prefixes of expansion the As . 2 1 2 1 4 6 10 10 1 1 7 4 2 l Bit-mask stepexlvl pcfial,the Specifically, level. prefix the is 1 2 5 3 8 r3 1 2 9 5 3 2 10 1 3 5 3 1 1 3 5 3 3 2 10 1 btms ie S bits LSB size) (bit-mask 12 1 3 4 6 Bit- 13 1 4 6 3 mask 13 14 1 4 r1 7 3 ones 3 15 1 3 4 7 1 4 10 0 ( 16 Bit- bits) Example 0.72/16 14 mask r4 4 0 63 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 ethpidxtbeo i etri iue3.12. Figure in vector bit of table index hop Next 3.4 TABLE 64 mle ubro i hntoei h i-ak ngnrl h ieo the of size the general, with In but bit-mask. bit-mask the a in in those 0s than and bit code, of 1s number of smaller combination a the of information provides 2 as 2 with bit-masks for fteoiia 6bt.Te,ec obnto f0 n si i-akwith bit-mask a 2 in the 1s of and one 0s as of represented combination is each bits Then, 16 bits. ( 1), 16 + bits original (677 10 the combination only of need all-0s we the combinations, 678 considering represent After to [49]). considered been has hs xmlssosta h osbecmiain r nytoadfive, and two only are combinations possible the respectively. that shows examples These iue31 hw h obntoso opeetiswith tries complete of combinations the shows 3.15 Figure 4 6 and 16, = | code necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections | = d log a 4 7 a mrvmn ordc hsnme fcodes of number this reduce to improvement (an 677 = (4) 2 ( n a ( eoyaddress Memory is o xml,i h i-aki 6btwide, 16-bit is bit-mask the if example, For bits. n )) e nnme fbits. of number in , a 13 12 11 10 22 21 20 19 18 17 16 15 14 9 8 7 6 5 4 3 2 1 ( n + 1 = ) a 0 1 = (0) 10 obntos hssosta h code the that shows This combinations. a rfi d(NHI) Id Prefix ( n , − 1) m h d b u p n k v q g o a e c r s t 2 j f l i d log 2 (678) e 0 instead 10) = n n 2. and 1 = n (3.1) 4 = Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 h isnee rmtepce etnto drs oacs h oeand code the access to of address summary destination a packet are the case) shows the tables. this 3.16 from NHI in Figure (16 needed maptable. level the bits the to the accessing of address for bits partial bits 4 address 10 as LSB the MSB The used the of the index. bits identify and base 12 bit-mask to corresponding MSB corresponding the address the the this, find IP For to destination table. used NHI the are the uses in Lulea NHI in corresponding process lookup Process The Matching Lulea codes. 3.7.2.3 Lulea bit two and one for trees complete of Combinations 3.15 FIGURE Lookup Address (IP) Protocol Internet ue erhprocess. search Lulea 3.16 FIGURE o xml,ltscnie Plou spromdfrapce ihdes- with packet a for performed is lookup IP consider let’s example, For B ase ary Bit index number Codewr ary 1 Disjoint treewithupto2levels(n=2) Disjoint treewithup to1level 0 31 Base 10 16 index Destinao Destinao 1 NHI 1 Ofset 2 0 1 6 0 table 4 IP IP adres Code adres adres 10 1 1 1 0 = 16 Maptble + adres

+ Number (n=1) prefixs Number Maptble chunk ; 1 0 0 1 in of 67 of 0 Column positn bits 0 1 index in 1 chunk) (bit 2 15 65 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 aeidxs atbe n H al a edt ealupdated. all be to need may the table to codewords, NHI continues as scheme, and matches this maptable, the in indexes, if costly base are time of updates lookup number table Forwarding the corresponding levels. similar to A other added A levels. prefix is simultaneously). larger accesses accessed other memory are for arrays performed is index process base and codeword the og.Telou opeiyo I-48i ()a h erho B2 is TBL24 on search TB- the in as stored matched O(1) is the is it DIR-24-8 TBL24, one, of at complexity to matched lookup not set The is Long). prefix is TBLlong. the bit to (if accesses pointer the to amount. memory a bit If memory is prefix and it prefix. otherwise a Speed a NHI; holds is the location) is entry (memory information the entry memories whether An two 32, logic. these indicate level shows to supporting 3.18 search Figure the the 32. directing level and on pointers prefixes or size. stores 24, memory TBLlong level that and on therefore, in prefixes fit stores and one that size, first those fixed to unknown a limited forwarding an given is for the is prefixes needed in memory of memory bits number level-32 the of 24 the the estimate idea than prefixes, to few the larger of difficult shows level prefixes number a is at 3.17 of it only intervals Figure number of Because vast, number 30. the table. too total on to The is 25 depends 32. levels 32 level 32 at at level are intervals prefix subtries, these at a representing or prefixes intervals, of these of descendant of expanded number the Each are large represented. 31 the are memory and intervals As 25 a 256-address levels 32. between uses than Prefixes smaller level 24 level. length to that Level with to prefixes level. expanded All are each prefixes. of 24 possible The for adoption all engine. The block represent lookup to 32. memory IP enough or the a 24 of uses prefix implementation level lengths) controlled the scheme either (or simplifies performs on greatly levels scheme prefixes levels two This two all algorithm. in represent Lulea to prefixes the expansion represent to to similar aims [75], scheme DIR-24-8 The Scheme DIR-24-8 3.8 this for address hop next the prefix provide to may corresponds so it to prefix and 2, This 1s matched number packet. of is number The the prefix set 14. the NHI stores = count a 16th 9 index can of base column reader bit-mask the and The and first maptable), where NHI=0+14+2=16. the 4 the in is of and row address 4 it 5 by the row (as Codeword addressed (or 0 matches r4 entry = is 0.72, maptable offset code address, 3.13). has the the (Figure four), 5 of example of Codeword an part 1. as bits index used 16 Base vector MSB bit the the Using in 0.72.0.0 address tination 66 o ee 6 ue efrsI okpi he eoyacse (where accesses memory three in lookup IP performs Lulea 16, level For I-48ue w eoybok,cle B2 n Bog hr the where TBLong, and TBL24 called blocks, memory two uses DIR-24-8 necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections Example ro nFgr .6adti stesm ubr The number. same the is this and 3.16 Figure in arrow I-48prom Plou nu otwo to up in lookup IP performs DIR-24-8 p nTbe34adFgr 3.12. Figure and 3.4 Table in Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 vr lmn nlddi h set the in included element every zero. to the filter the 0 of where bit obtained, every initializing set from element given starts For a filter For Bloom set. a gramming a about information abstract expanded. are 3.19 prefixes Figure some NHI. where the to and bit 123, interval prefix the for stores example entry an The shows entry. an in used bits t opcns n ipiiy lo le san of is because filter applications Bloom various A in simplicity. used and widely compactness is its and [19] queries membership Theory. Algorithm Filter Filter-Based Bloom Bloom 3.9 however, 2 is TBLong, pointers in of similar number maximum is of process number The the bits. address and destination 32 packet address, instead a memory using of bits as MSB used 24 the is where access, prefix memory single by a created intervals prefix the and scheme DIR24-8 expansion. in levels Prefix 3.17 FIGURE Lookup Address (IP) Protocol Internet rdc fpexepnin.A a eddcdfo iue31,tetotal by the a 3.18, (as Figure (2 entries from is several deduced scheme accessing this be for can require of amount As identification may memory expansion). the it prefix simplifies but levels of updated of table product number The be prefixes. small to expanded the for entries as NHI simple of replicates is several update copy to need may it k L isidctdby indicated bits evl Levl 32 24 x j hr 1 where , ≤ 2 8 h i ( x h lo le sasaeecetdt tutr for structure data space-efficient a is filter Bloom A j i ≤ ( ) x m < j j r e ooe hspoeuei eetdfor repeated is procedure This one. to set are ) ≤ opormelement program To . n S , . k 24 ahindices hash 2 + 20 ) W where , S h m i = ( btaryta contains that array -bit x x { j j o 1 for ) x W noaBomfilter, Bloom a into 1 x , stenme of number the is 2 , · · · ≤ TBLlong TBL24 x , i ≤ n } 12 pro- , k and are 67 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 qain32[118]. 3.2 Equation rme by grammed rate false-positive the ements, zero, are bits DIR-24-8 of Implementation 3.18 FIGURE 68 lmnscnb acltda olw [118]: follows as calculated be can elements all If checked. functions, ot hspicpei sdb lo le oipoetepromnei a in the performance for the improve except to nodes, filter ancestor Bloom without a by exist used cannot is node principle Filter This a Bloom root. trie, a binary Using a Lookup In Address IP 3.9.0.4 for result negative a produces filter lo lesmyhv as oiie,btn as eaie.For negatives. false no but positives, false have may filters Bloom iue32 hw neapeo lo le.TeBomfitri pro- is filter Bloom The filter. Bloom a of example an shows 3.20 Figure an for functions hash of number optimal The input given a of membership the for Querying necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections h i 24 MSBs 24 Packet destination ( S y y k o 1 for ) = sdfiieyntamme of member a not definitely is isaeone, are bits f { x 1 0 = 1 x , " ≤ 2 1 24 2 TBL24 − x , i entries ≤ 8 LSBs  3 x , 1 k y − The . 4 } k f scniee ebrof member a considered is n ure yinputs by queried and , m opt 1 fan of  y = k kn 12 n as-oiiersl for result false-positive a and 8 20 isidctdb h ahidcsare indices hash the by indicated bits m # n k m n2(3.3) 2 ln ≈ btBomfitri acltdas calculated is filter Bloom -bit  S 1 . − 2 TBLlong 20 y e − entries loue h same the uses also kn/m m btBomfitrof filter Bloom -bit y  k and S fayo the of any If . z information h Bloom The . Next hop z . k n (3.2) hash el- n k Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 h eaiersl en htteei ond eetdi h urn and current the in detected node produced. no is is result queried, there negative is that a filter means until Bloom result level, The negative access table. The the hash off-chip increasing an linearly in while stored address. the and destination filter reduce packet level Bloom given matching to a best used for the prefix is determining matching filter by longest the Bloom accesses holding memory The because off-chip memory requirements. on- off-chip of memory using in number implemented implemented larger be usually its may is filter of trie Bloom a The while [118]. memory, trie chip binary a on search filter. Bloom a of example An 3.20 FIGURE TBLong. on prefixes expanded with 123 interval of Example 3.19 FIGURE Lookup Address (IP) Protocol Internet nti prah oe fabnr reaeporme na on-chip an in programmed are trie binary a of nodes approach, this In 10.543 10.54 10.543 10.543 10.54 10.532 10.542 10.5 0 0 k=3 n=4 1 1 TBL24 0 2 0 3 0 4 0 0 1 0 0 0 0 5 X 1 6 1 0 7 123 A A A A A 0 8 0 y? 9 Key C B A 10 0 = = = 1 1 to 10.5492/6 10.543/2 10.56/ 12 0 table 13 X 0 2 14 1 15 entris 0 123x56+9 123x56+9 123x56+ 16 0 123x56 123x56+9 123x56+ 123x56+ 0 17 18 1 X 19 0 3 20 TBLlong 0 21 0 z? 2 1 23 0 24 0 X 25 0 4 B A C C C B B 26 0 27 1 28 0 29 0 (block alocted 256 30 1 10.543 31 0 prefix entris 123) to 69 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 xml fafradn table. forwarding a of Example 3.5 TABLE assumed is It node. 3.5. prefix prefix matching Table longest ancestor in the direct inherits table its 3.21 using forwarding Figure from algorithm in example node lookup gray-colored the easily address each for that can IP filter the prefix, node shows Bloom internal matching 3.21 each a best Figure for problem. the information this back- Precomputing solve corresponding the the encountered, place. because is storing takes level, node and the internal also on an is process If re- prefix exist. tracking positive matching may the best nodes occurs, the internal result that empty positive guarantee not a probability though does false-positive even sult the However, of level. product each the for is probability this because creases ec,tepoaiiyo h ubro aktakn rcse r calculated and are where processes 3.2, back-tracking of Equation number by the of probability the Hence, level levels at on occur positives outcome false negative if Similarly, place. takes process eutwe h lo le rdcsangtv rb aktakn process back-tracking a by or negative a produces filter Bloom the when result level on is prefix matching level best at called the the is that positive, Assuming process false tives. This If filter’s level. found. Bloom smaller is the a of prefix to because matching goes found the procedure not result. search after is the right node level, verify finish matching candidate to equal the may a probed from length process starts is a approach matching table this with the of hash prefix procedure off-chip search the the the Using Because level, candidate prefix. candidate the is matching the outcome to best positive the last the storing of level level the Therefore, levels. longer 70 h rbblt htmlil aktakn rcse cu ail de- rapidly occur processes back-tracking multiple that probability The oeta ahetyi cesdete o h ee ihtels positive last the with level the for either accessed is entry hash a that Note posi- false of rate the on depends processes back-tracking of number The f i necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections steflepstv aeo oei level in node a of rate false-positive the is L 1adangtv tlevel at negative a and +1 b j ersnsta aktakn a occurred has back-tracking that represents rob P L ( ,tobc-rcigpoesstk place. take processes back-tracking two 3, + b j L = ) 2aepoue,asnl back-tracking single a produced, are +2 11111* 111* 1101* 110101* 1* 010* 00* prefix IP i = L Y L + +1 j f i rfi ID prefix i . P6 P5 P4 P3 P2 P1 P0 L L and 1 + faflepositive false a if , back-tracking L n a and 2 + j times (3.4) . Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 cesda ee sn h rfi f100 hc stelvlo h last the of level longest precomputed the the is returning which is by 11010, table over of hash is At prefix search the prefix results. matching the Hence the positive and result. using produces result, negative 5 it positive a level and produces at 5 filter Bloom through accessed The Bloom follows: 1 the as lengths 6, is 110100 for level of queried address is trie input a the filter for in procedure node search every the while table, filter. hash Bloom level Figure the the at in in in lines positive programmed stored dotted false is necessarily with a not (denoted nor children are both negative 3.21) with a nodes neither internal is Hence result the children, hnteBomfitrpoue as oiie fand tlevel at node a If positive. false a produces filter Bloom the when filter. Bloom a using search trie Improving 3.21 FIGURE Lookup Address (IP) Protocol Internet iaytes hs rprisaebsdo bevtosta fabnr tree binary of a properties if helicoidal that the observations on and based lengths are prefix search properties prefix different These parallel the lookup trees. IPv4 a this binary at uses for achieves 191] Helix updates Helix memory. 140, table [145]. of [49, amounts and access small lookup memory very single IP using a both speed in performs prefixes that this, use binary IPv6 scheme overcome and to To on a ports. challenging is based high-speed it with schemes makes Helix routers that lookup for and implementations IP in accesses them sections, memory multiple previous require the Scheme trees in Lookup discussed Parallel-Search A As Helix: 3.10 loih ecie h prto fti okpshm.Frexample, For scheme. lookup this of operation the describes 1 Algorithm P 1 15 13 12 1 10 4. 6 1 2 9 8 7 5 4 3 0 4 0 0 1 0 1 0 0 1 0 0 1 1 1 0 1 0 P0 P1 P2 P3 P4 P5 P6 L a both has L 1. + 71 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 h rpsdshm n h eiodlpoete.Hri eueteprefix describe the to use section we Herein this properties. throughout helicoidal example the an and as scheme used proposed is the which table, further. ing processed appear be they to as k need stored may are levels prefixes Large level-8 table). the routing and a entries updates. in 256 table with make tree memory to binary a simple the is in it prefixes 2) of original number and im- their the increase is in 1) not table prefixes benefits: each does the following where keeping the that level, has Note prefix length block. nonempty scheme, memory each this a for In as table unchanged. plemented remain prefix lengths a prefix is levels; there original their the in and kept table(s), A level. level prefix. prefix corresponding matching nonempty the longest each by the for output selects table is selector prefix any, a if is prefix, there matched figure, this In ample. levels, different the selected. at in is prefixes interest matched prefix of the longest Among the been 140]. has (i.e., [49, search schemes tree Parallel several simultaneously. the tables, folding prefix folded). allow different is tree tree smaller the binary a after make a lost to not of “folded” is properties be information could helicoidal it The features, tree. plasticity with considered is 1 Algorithm 72 fterue otn h al.Tbe32sosa xml faforward- a of example an shows 3.2 Table table. the hosting router the of , n h M sn lo filter Bloom for using BML the find dstAddr Search Function: for table hash access for end n for end owrigtbehsa aydffrn Hsa h ubro h ports, the of number the as NHIs different many as be has may table 8 forwarding A level (e.g., change any without stored be may levels tree Small are Prefixes prefixes. more or one has that one is table prefix nonempty A ex- an as prefixes, IPv4 for process lookup Helix’s the shows 3.22 Figure all in prefix matching a for searches Helix that here means search Parallel if n if end else n if end else node if i i BML break; otne /bc tracking back // continue; return necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections queryBF oeexists node ← ← ← hrete olongestLen to shortestLen M oshortestLen to BML queryHT ← drs okpPoeuei lo itrbsdApproach Filter-based Bloom in Procedure Lookup Address node.info; i ( ; sAd,i dstAddr, then ( sAd,i dstAddr, ) spositive is do ); do then Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 hrfr,temmr eghi h oiatfco ntedtriainof determination 124]. the [11, in memory factor used dominant of the amount is the length memory the Therefore, six, is length tree prefix this ( Therefore, prefix levels. of example, six height this having The In as the tree. to referred shows binary prefix also 3.23 of a is Figure as tree simplicity. 3.10 the for Table and NHI in the listed of prefixes instead label identification process. lookup Parallel-level 3.22 FIGURE Lookup Address (IP) Protocol Internet rvsoe.Tetbefrlvl6rqie 4mmr oain n holds and are locations tables memory prefix 64 five Therefore, requires 6. 6 and level 5, for prefixes 4, table 3, The 1, provisioned. levels prefixes; hold levels 3.10. Table in prefixes the of tree Binary 3.23 FIGURE x 111)i oae tlvl6( 6 level at located is 111111*) = ei iiie h ubro isue oadestelcto fprefix of location the address to used bits of number the [145]. minimizes increases Helix level the as exponentially increases length memory The hsbnr re ssoni iue32,hssxlvl u nyfive only but levels six has 3.23, Figure in shown as tree, binary This f , x g srfre oa h ee ftete hr h rfi slocated. is prefix the where tree the of level the as to referred is , 5 6 4 2 3 Level 1 j and , 0 d 1 f 0 1 l . e b 0 a 1 ( x 0 0 1 g a * slctda ee ( 1 level at located is 0*) = 0 y ( *) 6). = 1 0 1 h 1 j 0 1 1 k c 1 i y 1 ) n prefix and 1), = 1 l 73 y l Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 drs h oaino rfie,w e htmlil rfie a hr the share may prefixes multiple that see we prefixes, of location the address oainadesdby addressed location iue32 hw hs w otoso isi rfi,sprtdbetween separated prefix, a in bits of portions level two of these bits shows 3.24 Figure while l or ligatrino ee ( 3 level on torsion a plying of selection The split. is of prefix size original the the mines where bit the indicates torsion. a after prefix a in bits descendant and root Family 3.24 FIGURE x table. forwarding example an of Prefixes 3.6 TABLE 74 ftemmr mutue o rfi level prefix for used amount memory the of r ersne as represented are , napextbeb pitn h rfi notoprs h S portion MSB the parts: two into prefix the splitting by table prefix a in aiyro (FRx) root family sa xml,ltscnie ee fteeapebnr reatrap- after tree binary example the of 6 level consider let’s example, an As between line The Df necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections 001, = T and Rx F Dg T Rx F Rf F of 1. + 110, = Prefix: Dx and x . n h S oto or portion LSB the and and Rx F L 000, = MSB Dx T Family root x Dj ) nti aepexso ee 6, level on prefixes case this In 3). = 1 nnme fbt,adsbeunl h size the subsequently and bits, of number in , Dx ( FRx ssoe ihtecrepnigNIi the in NHI corresponding the with stored is … x Torsion level 0,and 001, = Rg F ntefiue aldtetrinlvl( level torsion the called figure, the in ) 111111* 11101* 111001* 1111* 1110* 000110* 000001* 00001* 0000* 111* 000* 0* Prefix IP T 000, = x T v +1 Descendant . Dl … x ( Rj F D rfi ID Prefix 1.Since 111. = x ) LSB ecnatbt (Dx) bits descendant h d b k g a e c y j f l i 1,and 111, = Dx Rl F f sue to used is L , g T , 111, = deter- j and , of L T x ), . Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 olou nie ae nepnietraycnetadesbememories lookup addressable optimum content comparably achieves ternary perform it expensive trees turn, on binary then (TCAMs). based in makes structure engines Helix and be data lookup use. would tree, Helix to memory and binary the small block of a and memory use of speed a The size in access. the fit memory reduces would single entries a in of fetched number the that such otdt hi tigo netrnds rmtero * nlvl0to 0 level on (*) root the below from is nodes nodes; bits The ancestor of tree. of string resulting This string the their conjoined to of of rooted 6 representation the level and on level, torsion prefixes the below torsion. subtrees the resulting after tree dashed- the a shows with shown 3.26(b) are Figure nodes circumference. additional The line torsion. a of representation the 6. level of table (a) 3.25 FIGURE eoylcto.I u xml,prefixes example, our In location. memory Lookup Address (IP) Protocol Internet eouinsed uhmmr scle otn drsal eoy(CAM). higher memory additional and addressable content bring prefixes called may matching is memory for Such this search speed. multibit the of resolution embedded matching use as of The such content. instead benefits, How- the that RAM. matches memory on it a based input is is memory above presented associative schemes ever, the of implementation Memory The Content-Addressable Ternary 3.11 be with to table prefix said are prefixes These o vr rfi ee,atrinlvli eetda ordc h reheight tree the reduce to as selected is level torsion a level, prefix every For hsfiueas hw h oso nlvl3o h xml iayte,the tree, binary example the of 3 level on torsion the shows also figure visualize This help to nodes additional and tree same the shows 3.26(a) Figure Rx F and Prefix Dx g f l j f at fpexsa ee after 6 level at prefixes of parts and FRx 111 000 111 000 Rx F g Descendant 111 001 110 001 hrn h aemmr location. memory same the sharing h eann tigo isis bits of string remaining The . (a) conjoined descendant Same bits iue .5a n .5b hwa show 3.25(b) and 3.25(a) Figures . f and 001 000 111 110 D L x j T FRx Entry 111 000 000 hr h aelocation. same the share .()Rdcdprefix Reduced (b) 3. = 1 x (b) 1 g f l 1 FRx Dx 111 E L ntry T 2 . x j 2 omsubtrees form 2 L 75 T . Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 to eurdb Plou,btas ae tcmlxt paechanges update to complex oper- it priority matching makes the also solves but TCAM lookup, a IP for by input and process (or required lengths, positions shorter storing ation immediately priority This with highest on. prefixes the by so followed in are stored they and are first), prefixes the longer to only is, content but That the match, may as in interest. lengths input is of stored different NHI is is be with the prefix destination may prefixes longest where packet lengths multiple of a different TCAM, address when of a the Therefore, Prefixes or block. in- TCAM. prefix, RAM associated a a additional The of it. an NHI with the in associated be care” information could “don’t secondary formation a outputs as (TCAM). it bits CAM mark and Ternary to called used is be value, can third masks a where or CAM value, a of two version form A 6 and 5, 4, superposed. Levels are (b) which 3.23. torsion, Figure a in after tree binary subtrees the of Example (a) 3.26 FIGURE 76 ootu igemth CMmthstefis otn nu noit. into input content first the matches TCAM a match, single a output To matched, be to needs that content the input, an receive TCAMs short, In T Level 5 6 4 1 3 2 orsion Level L T necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections 0 0 = f Lev 1 0 0 d 1 el d f 0 e 3 0 1 b 0 1 0 0 0 0 a 0 e 1 1 1 1 0 1 0 b 1 1 j 0 0 1 g 1 0 0 0 1 0 0 h 1 1 1 k 0 1 1 1 c 1 0 0 1 1 0 a g i 1 1 0 0 1 1 0 0 l 1 1 1 (b) (a) Superposition (*) 0 1 0 0 1 0 1 h j d, 0 1 f, j h 0 1 0 Conjoined prefixes k 1 e, 1 k c 0 1 Family roots 1 i g i l 1 0 Level 5 4 6 l 1 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 13 8] oee,mc ftecmlxt nadesn hs susi that is issues these systems. addressing integrated on complexity are the TCAMs of much However, 189]. [133, power-demanding then are comparison TCAMs and systems. Therefore elements power. memory consume all content to of their access number of Also, the number stored. limits large and be a can room requires that compared some entries takes prefixes are logic of entries additional number all The large that comparators. a is of of them comparison of This One once. considered. at be to need that issues 189]. 158, [154, TCAM engines the lookup of contents the the arrives, all packet and it. a TCAM to when the compared process, to are lookup input is the address In destination time. lookup optimum the TCAM. This the 113.45.22.14. by address output exam- hop then the prefix next is In matches with output. address 133.210.111.7 associated be address is may destination which information prefix packet the the 133.210.111/24, shows, matched, of figure is ID as- the prefix the are or ple the that prefixes a entry Once longer memory. encoder the of Therefore, the with priority example top. of associated a the top basic on the is a prefix at there the placed shows TCAM, to 3.27 priority the selection Figure In signs [153]. prefixes. tables storing routing TCAM or prefixes in Lookup Address (IP) Protocol Internet xml fpexsi TCAM. a in prefixes of Example 3.27 FIGURE eea cee aebe eeoe ooecm oeo hs issues these of some overcome to developed been have schemes Several some still are there fast, very is IP TCAMs of building speed to alternative lookup the practical Although a are TCAMs features, is these which With access, memory single a in achieved is TCAM a by lookup IP ( 13.207) Input Prefix/p 13/8 13.20/4 13.20/ length Next 13.456 13.452 13.452 hop adres encodr Prioty (13.452) Outp 77 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 So ee-opesdte L-re fpexsi al . ihinitial with 3.7 Table in prefixes of of (LC-Trie) tree) tree binary level-compressed (or a table Show forwarding the 6. of 4 level for bitmap Lulea a Show Exercise 5. in prefix a match to accesses memory of number 3.7. largest Table the Indicate of tree) and 4. (Patricia tree, tree disjoint path-compressed a a Show as 3. it show 3.7, Figure in table 3.7. forwarding Table the in From prefixes from 2. representation tree binary the Build 1. .3Exercises 3.13 also lookup may IP books of Other surveys 175]. 179]. of [29, 162, works schemes list 152, literature several [28, long reader list very of interested a number interest the is The for the there algorithms years. Therefore, captured many extensive. has for quite complexity community is lookup research IP the of of simplification for Search Readings Additional 3.12 1. Exercise for table Forwarding 3.7 TABLE 78 al ..Hwmn iscnyuuefridxadcd odcodes? 3. word of code stride and index for use you can bits many How 3.7. Table 3. to needed be may that accesses memory of prefix. a number match largest the indicate necnetosfrCmue omnctosadPce Networks Packet and Communications Computer for Interconnections 111000* 11111* 01001* 1101* 1001* 0111* 0110* 000* 01* 1* * Prefix IP rfi ID Prefix P11 P10 P9 P8 P7 P6 P5 P4 P3 P2 P1 Downloaded By: 10.3.98.104 At: 03:52 27 Sep 2021; For: 9781315373485, chapter3, 10.1201/9781315373485-4 Fn h oso ee,ohrta ee ,ta ol eur h smallest the require would that 7, level than other level, torsion the Find 12. arrays, index base and codeword including structure, 8. data Exercise Lulea in the table Show forwarding the 11. of tree path-compressed the Show 10. So h ijitte ftefradn al nEecs 8. Exercise in table forwarding the of tree disjoint the Show P3 (1*), 9. P2 (*), P1 table: forwarding following the of the tree is binary What the 3. Show stride with 8. 3.7 Table in prefixes the of trie multibit the Show 7. nentPooo I)AdesLookup Address (IP) Protocol Internet 1011,P1(111) n 1 (1111101). (0100111), P12 P10 prefix. P4 (1011011), and P9 a (0011011), (1111011), (1010001), of P11 P8 P3 NHI (1000111), (1100111), (0000111), the P7 represent (0111101), P2 to P6 and (0000001), (0110011), used width) P5 P1 are and bits prefixes: length 8 of (in if List bits) size (in memory amount of the total structure Indicate data the below. Helix the prefixes using list prefixes the the represent to 8. memory of Exercise amount in table forwarding the size. of bit-mask 7 as level bits for 8 Use table NHI and maptable, P9 (111010*), P8 (00111*), P7 (00101*), P6 (11101010*). (1101*), P10 P5 (1110111*), (01*), P4 (00*), table? this for needed accesses memory of number largest 79