Você está na página 1de 4

We introduce the rst algorithm that we are aware of to employ Bloom lters for LPM, as Bloom lters are

typically used for efcient exact match searches. Gii thiu thut ton u tin s dng cc b lc Bloom choLPM, v cc b loc Blom thng c dng trong tm kim trng chnh xc hiu nng cao. A Bloom lter is an efcient data structure for membership queries with tunable false positive errors. B lc Bloom l mt cu trc d liu hiu sut cao truy vn tnh lin thuc vi cc li khng nh sai iu chnh c. The probability of a false positive is dependent upon the number of entries stored in a lter, the size of the lter, and the number of hash functions used to probe the lter. Xc sut ca mt khng nh sai ph thuc vo s lng mc nhp cha trong mt b lc, kch thc ca b lc, v s lng hm bm s dng thm d b lc. Our approach begins by sorting the forwarding table entries by prex length, associating a Bloomlter with each unique prex length, and programming each Bloom lter with prexes of its associated length. Cc tip cn bt u bng sp xp cc mc nhp trong bng chuyn tip theo chiu di tin t, lin kt mt b lc Bloom vi mi chiu di tin t ring, v lp trnh mi b lc Bloom vi cc tin t c chiu di c lin kt. A search begins by performing parallel membership queries to the Bloom lters by using the appropriate segments of the input IP address. The result of this step is a vector of matching prex lengths, some of which may be false matches. Tm kim bt u bng thc hin cc truy vn song song tnh lin thuc ti cc b lc Bloom bng cch s dng nhng phn on thch hp ca a ch IP vo. Kt qu ca bc ny l mt vector cc chiu di tin t trng, mt vi ci c th l trng sai. Hash tables corresponding to each prex length are probed in the order of longest match in the vector to shortest match in the vector, terminating when a match is found or all of the lengths represented in the vector are searched.

Cc bng bm tng ng vi mi chiu di tin t c thm d theo th t trng di nht trong vector n trng ngn nht trong vector, kt thc khi tm thy kt qu trng hoc tt c cc chiu di c trong vector c tm kim. The key feature of our technique is that the performance, as determined by the number of dependent memory accesses per lookup, can be held constant for longer address lengths or additional unique address prex lengths in the forwarding table given that memory resources scale linearly with the number of prexes in the forwarding table. c tnh chnh ca k thut ny l hiu nng, c xc nh bng s ln truy nhp b nh ph thuc trn mi tm kim, c th c gi khng i cho cc chiu di a ch di hn hoc cc chiu di tin t a ch duy nht b sung trong bng chuyn tip cho d ti nguyn b nh t l tuyn tnh vi s lng tin t trong bng chuyn tip.

We group all the prexes in our prex set having the same length and store this group in a Bloom lter. We maintain parallel Bloom lters in the embedded memory each corresponding to a unique prex length. Note that we do not need to maintain a Bloom lter corresponding to a prex length for which there are no prexes in our set. Before we query the hash table with a prex, we query the corresponding Bloom lter to check if the prex is indeed present in the hash table. Only if the Bloom lter shows a match, we proceed to query the hash table. Remember that a Bloom lter can produce a false positive match but never a false negative. If the match of a Bloom lter was a false positive, then we would discover it eventually after the hash table probe results in an unsuccessful search. Thus, in case of a false positive, we simply waste a memory access and proceed to check the next prex showing a match in the corresponding Bloom lter. Due to the parallelism offered by embedded memories, we can perform all the Bloom lter lookups concurrently. A carefully designed Bloom lter can give a lookup result in a single cycle of the system clock. We produce a MatchVector with bits in which each bit is set by a Bloom lter if the corresponding prex queried in it shows a match. Then, we use a priority encoder which simply walks through the MatchVector

from longest to shortest prex and executes the hash table

Você também pode gostar