Scalable high speed IP routing lookups
AssigneeWashington University
InventorsJonathan Turner, George Varghese, Marcel Waldvogel
Life of this patent
Estimating the term…
Loading patent…
AssigneeWashington University
InventorsJonathan Turner, George Varghese, Marcel Waldvogel
Estimating the term…
A method and apparatus for an exponentially faster technique than is presently utilized in routers for looking-up destination addresses and matching them to a prefix in order to determine an output data link for routing of the data message to a destination. The basic algorithm includes arranging the prefix and corresponding output data link information in sub-databases arranged by prefix length and then using a multi-step prefix length binary search algorithm to sort through the sub-databases to determine a best matching prefix for routing of the data packet. Various refinements of the basic algorithm are disclosed to further enhance the search time including adding markers representative of sub-database entries having a longer prefix length and also various searching methodologies to minimize the number of searching steps including rope searching in various formats. Thus, methodologies are disclosed for building the sub-databases, as appropriate to implement the corresponding novel search routines and perform the novel search routines themselves, and the router which implements all of the foregoing. Many of the inventive features disclosed herein are applicable to other routing DPJ protocols such as OSI Routing, call routing and telephone DPJ networks, and string matching problems.
A method of routing data packets through an electronic routing device, said data packets having an address indicative of a desired destination, and said routing device having a database of prefix entries arranged in multiple sub-databases each of which contains entries corresponding to prefixes having the same length, each of said entries corresponding to a desired output data link, said method comprising the steps of:
A router for data packets including a plurality of input data links for receiving incoming data packets, a plurality of output data links for dispatching outgoing data packets, an adjustable switch interconnected between said input data links and said output data links for adjustably connecting a selected one of said input data links to a selected one of said output data links, a data processor connected to said switch and having means for controlling said switch, and said data processor having a database of prefix entries which comprises multiple sub-databases each of which contains entries corresponding to prefixes having the same length, each of said entries having associated with it a desired output data link for routing of an incoming data packet, means for accessing said database for matching of a destination address of an incoming data packet with an entry, and means for adjusting said switch in response to a matching entry in said database to thereby route a data packet appearing at an input data link to a corresponding output data link, said accessing means including means for matching a destination address of an incoming data packet with a prefix entry using a multi-step prefix length binary search algorithm that includes the steps of:
A method for creating a database of entries for routing data packets from a plurality of arbitrary prefixes, each of said arbitrary prefixes having an arbitrary length and being indicative of a desired destination, said method comprising the steps of:
Dependencies are inferred from the claim text.