A Scalable and Small Forwarding Table for Fast IP Address Lookups

Similar documents
Efficient hardware architecture for fast IP address lookup. Citation Proceedings - IEEE INFOCOM, 2002, v. 2, p

Binary Search Schemes for Fast IP Lookups

THE advent of the World Wide Web (WWW) has doubled

Routing Lookup Algorithm for IPv6 using Hash Tables

IP Address Lookup in Hardware for High-Speed Routing

Fast Update of Forwarding Tables in Internet Router Using AS Numbers Λ

Growth of the Internet Network capacity: A scarce resource Good Service

Efficient Construction Of Variable-Stride Multibit Tries For IP Lookup

Scalable IP Routing Lookup in Next Generation Network

Disjoint Superposition for Reduction of Conjoined Prefixes in IP Lookup for Actual IPv6 Forwarding Tables

Scalable Packet Classification for IPv6 by Using Limited TCAMs

Dynamic Routing Tables Using Simple Balanced. Search Trees

Fast IP Routing Lookup with Configurable Processor and Compressed Routing Table

Multiway Range Trees: Scalable IP Lookup with Fast Updates

Problem Statement. Algorithm MinDPQ (contd.) Algorithm MinDPQ. Summary of Algorithm MinDPQ. Algorithm MinDPQ: Experimental Results.

Novel Hardware Architecture for Fast Address Lookups

Parallel-Search Trie-based Scheme for Fast IP Lookup

Frugal IP Lookup Based on a Parallel Search

An Efficient IP Routing Lookup by Using Routing Interval

Performance Improvement of Hardware-Based Packet Classification Algorithm

* I D ~~~ ~ Figure 2: Longest matching prefix.

INF5050 Protocols and Routing in Internet (Friday ) Subject: IP-router architecture. Presented by Tor Skeie

Novel IP Address Lookup Algorithm for Inexpensive Hardware Implementation

Tree, Segment Table, and Route Bucket: A Multistage Algorithm for IPv6 Routing Table Lookup

FPGA Implementation of Lookup Algorithms

IP Address Lookup Made Fast and Simple Pierluigi Crescenzi and Leandro Dardini Universita degli Studi di Firenze and Roberto Grossi Universita degli S

Packet Classification Using Dynamically Generated Decision Trees

CS419: Computer Networks. Lecture 6: March 7, 2005 Fast Address Lookup:

Switch and Router Design. Packet Processing Examples. Packet Processing Examples. Packet Processing Rate 12/14/2011

Implementation of Boundary Cutting Algorithm Using Packet Classification

A Novel Level-based IPv6 Routing Lookup Algorithm

ADDRESS LOOKUP SOLUTIONS FOR GIGABIT SWITCH/ROUTER

FAST IP ADDRESS LOOKUP ENGINE FOR SOC INTEGRATION

A Hybrid Approach to CAM-Based Longest Prefix Matching for IP Route Lookup

Shape Shifting Tries for Faster IP Route Lookup

PARALLEL ALGORITHMS FOR IP SWITCHERS/ROUTERS

Forwarding and Routers : Computer Networking. Original IP Route Lookup. Outline

ADDRESS lookup is one of the fundamental functions

Shape Shifting Tries for Faster IP Route Lookup

AN ASSOCIATIVE TERNARY CACHE FOR IP ROUTING. 1. Introduction. 2. Associative Cache Scheme

A Multilayer Neural Network for IP Lookup Packet Classification

Data Structures for Packet Classification

CHAPTER 2 LITERATURE SURVEY

Design of a Weighted Fair Queueing Cell Scheduler for ATM Networks

A Pipelined IP Address Lookup Module for 100 Gbps Line Rates and beyond

Dynamic Pipelining: Making IP- Lookup Truly Scalable

V6Gene: A Scalable IPv6 Prefix Generator for Route Lookup Algorithm

Last Lecture: Network Layer

Message Switch. Processor(s) 0* 1 100* 6 1* 2 Forwarding Table

LONGEST prefix matching (LPM) techniques have received

Binary Search Schemes for Fast IP Lookups

Tree-Based Minimization of TCAM Entries for Packet Classification

Approximation Analysis for Routing with Clue in Mesh TCP/IP Network

Abstract We consider the problem of organizing the Internet routing tables in such a way as to enable fast routing lookup performance. We concentrate

AN EFFICIENT HYBRID ALGORITHM FOR MULTIDIMENSIONAL PACKET CLASSIFICATION

A Classified Multi-Suffix Trie for IP Lookup and Update

Novel Hardware Architecture for Fast Address Lookups

Memory Intensive Architectures for DSP and Data Communication Pronita Mehrotra, Paul Franzon

A SURVEY OF RECENT IP LOOKUP SCHEMES 1

ECE697AA Lecture 20. Forwarding Tables

Homework 1 Solutions:

CS 268: Route Lookup and Packet Classification

Review on Tries for IPv6 Lookups

Introduction CHAPTER 1

Efficient Resource Management for the P2P Web Caching

Multi-gigabit Switching and Routing

Cache Memory Design for Network Processors

Power Efficient IP Lookup with Supernode Caching

Three Different Designs for Packet Classification

Multi-core Implementation of Decomposition-based Packet Classification Algorithms 1

AN ASSOCIATIVE TERNARY CACHE FOR IP ROUTING. 1. Introduction

Network Superhighway CSCD 330. Network Programming Winter Lecture 13 Network Layer. Reading: Chapter 4

Fast Packet Classification Using Bloom filters

Improving Route Lookup Performance Using Network Processor Cache

15-744: Computer Networking. Routers

IEEE TRANSACTIONS ON COMPUTERS, VOL. 54, NO. 7, JULY An On-Chip IP Address Lookup Algorithm. Xuehong Sun and Yiqiang Q. Zhao, Member, IEEE

IP Address Lookup and Packet Classification Algorithms

Lecture notes of G. Q. Maguire Jr. IK2555, Spring Module 2

Routers: Forwarding EECS 122: Lecture 13

Towards Effective Packet Classification. J. Li, Y. Qi, and B. Xu Network Security Lab RIIT, Tsinghua University Dec, 2005

Scalable Lookup Algorithms for IPv6

Fast and Scalable IP Address Lookup with Time Complexity of Log m Log m (n)

Grid of Segment Trees for Packet Classification

Design Issues for High Performance Active Routers

Hash-Based String Matching Algorithm For Network Intrusion Prevention systems (NIPS)

IP ROUTING LOOKUP: HARDWARE AND SOFTWARE APPROACH. A Thesis RAVIKUMAR V. CHAKARAVARTHY

High-Performance IP Routing Table Lookup Using CPU Caching

Binary Search Schemes for Fast IP Lookups

Routers: Forwarding EECS 122: Lecture 13

SINCE the ever increasing dependency on the Internet, there

Master Course Computer Networks IN2097

Hierarchically Aggregated Fair Queueing (HAFQ) for Per-flow Fair Bandwidth Allocation in High Speed Networks

An Efficient Parallel IP Lookup Technique for IPv6 Routers Using Multiple Hashing with Ternary marker storage

Midterm Review. Congestion Mgt, CIDR addresses,tcp processing, TCP close. Routing. hierarchical networks. Routing with OSPF, IS-IS, BGP-4

IP lookup with low memory requirement and fast update

Design Issues for High Performance Active Routers

CSCD 330 Network Programming

Routers Technologies & Evolution for High-Speed Networks

Scalable High-Speed Prefix Matching

Professor Yashar Ganjali Department of Computer Science University of Toronto.

Transcription:

A Scalable and Small Forwarding Table for Fast IP Address Lookups Sungkee Jean Sang-Hun Chung Jung-wdn Cho Hyunsoo Yoon Department of Electrical Engineering & Computer Science Division of Computer Science, KAIST 373-1 Kusong-Dong, Yusong-Gu, Taejon Korea 305-701 { skj ean, shchung,h y o o on} @ camas. kai s t. ac.kr Abstract IP address lookup is an important design issue for the high performance Internet routers. The most important function of routers is to determine the output port of an incoming IP packet according to its destination address. In this papel; we propose a scalable and simple forwarding table structure for fast hardware-based IP address lookup which reduces memory requirements and memory access times. Proposed scheme requires majcimum two memory access times in the worst case tojnish an IP address lookup. And it consumes about 0.6 N I.1MBytes memory for large routing tables with 16,000 N 43,000 routing prejixes when any compression method is not used. 1. Introduction The Internet becomes the de facto standard of public packet switched networks because the number of its users and hosts connected to it has been increasing exponentially. From the view point of users, they can receive more enhanced services such as VOD(Video On Demand), etc. over the Internet. On the other hand, these services become a burden to the Internet infrastructure because it should support good environmen$ in which these services are well operated. The enhancement of service quality and the increment of hosts and users mean that the amount of traffic passing the Internet increases. The service quality of the Internet can be improved to a certain degree only by increasing packet transmission rate and reducing transmission delay which are the simplest approaches improving QoS(Qua1ity of Service) over the Internet. To increase packet transmission rate, it is necessary to spccd up physical transmission medium, Additionally, routcrs packet processing rate should be increased largely. This work was supported by the Korea Science and Engineering Foundation(K0SEF) through the Advanced Information Technology Research Center(A1Trc) Speeding up transmission mediums can be achieved by substituting them from copper wires to optical fibers and this process works on progress rapidly especially in the Internet backbones. However, the performance improvement of routers has been lagging behind. Consequently, routers become the bottleneck points of high speed communications and are recognized as important elements that affect the overall performance of the Internet. A router consists of four major components, which arc I) a router processor, 2) input and output intefaces, 3) switching fabrics, and 4) forwarding engines. A forwarding engine, the most important elements among them, determines the packet s output port by referencing the forwarding table which is inside the router and maps between the packet s destination address and an output port. This process is called an IP address lookup. An introduction of a CIDR(Class1ess Inter Domain Routing) [ 131 makes this lookup procedure be performed as a longest prefix matching which has more computational overhead than an exact match operation. To perform the longest prefix matching operation faster, researches on IP address lookup have been proceeding into largely two directions. The first one is software schemes based on trie data structure which are used as lookup methods in early routers [2,5, 11,3, 15, 141. However, softwarebased lookup schemes are not appropriate for current high performance routers. The second one is hardware-based schemes [4, 7, 10, 91 and researches in this paper is an extension of this direction. For fast hardware-based IP address lookups, 1) the number of memory access should be as small as possible, 2) the size of memory required to store a forwarding table should be as small a? possible, and 3) it should be easy to update a forwarding table. Among three objectives of the IP address lookup procedure, we focused on a rnemory access frequency and a forwarding table size. Proposed scheme in this paper requires maximum two memory access times in the worst case, and consumes less memory than that of any other hardware-based schemes require. It 0-7695-1381-6/01 $10.00 0 2001, IEEE 413

consumes about 0.6 N 1.lMBytes memory for large routing tables with 16,000 r- 43,000 routing prefixes when any compression methods is not used. It can be possible to load a forwarding table on a fast and expensive on-chip memory such as SRAM when is ils small. It is well known that an access speed of on-chip memory is 6 times faster than that of DRAM. So, a lookup performance can be increased with a small forwarding table s;tructure. Moreover, since proposed scheme reduces the number of forwarding table entries very much, it scales well for routers which have large routing tables. This paper is organized as follows. In Section 2, we examine representative hardware-based IP address lookup schemes. In Section 3, we propose two enhanced hardwarebased IP address lookup schemes in detail. The performance analysis of the proposed schemes is represented in Section 4. Finally we conclude this paper in Section 5. 2. Related Works To process an IP address lookup in hardware, it is desirable to expand arbitrary length prefixes into predetermined length. For example, consider a set of routing prefixes P = {0,10,11}. P cm be expanded to the 2 bits prefix set P' = {00,01,10, ll}, and expanded prefixes 00 and 01 have the same output port information as the original prefix 0. Using this technique makes us to construct a 2-bit indexed forwarding table. And this technique is called a controlled prejix expansion' [ 141. Although the amount of memory consumption somewhat grows in the case of prefix expansion, performance gains compensate for this cost. The simplest and intuitive IP address lookup method is to construct a forwarding table which contains output port information for all IP addresses. This forwarding table can be constructed if all prefixes within a routing table are expanded into 32 bits length. Then an output port can be obtained with only one memory access - index a forwarding table with a destination IP address within an incoming IP packet - so this method is called a direct-lookup mechanism. If we define the table containing all output port information as an NHA(Next Hop Array), the number of entries within an "A reaches 4G(=232) entries as represented in Figure 1. This is too large to be realized so it is impractical to implement a direct-lookup mechanism. To reduce the size of a forwarding table, an indirectlookup mechanism can be used as represented in Figure 2. In this scheme, an IP address is divided into two parts. Upper 16 bits of an IP address is called a segment and lower 'The word "controlled" means that if expanding prefixes overlap with existing prefixes then output!port information of those prefixes adopt existing ones. Figure 1. Direct Lookup Mechanism 16 bits is called an offset. Lookup itself is executed with two levels(with a segment and an offset). A segment table consists of 64K(=216) entries and stores either output port information for prefixes shorter than or equal to 16 bits length or pointers to the related " As for prefixes longer than 16 bits length. Prefix entries shorter than 16 bits length are expanded into 16 bits length. In the same manner, each "A contains 64K entries. And each entry stores output port information for a prefix longer than 16 bits length. This method requires maximum 2 times of memory accesses to finish an IP address lookup and consumes 33 Mbytes memory to construct a forwarding table. If a forwarding table is constructed with three levels(l6,8 and 8 bits length), the amount of memory required is reduced to 9 Mbytes. However, three times of memory accesses are needed to complete an IP address lookup at maximum [lo]. mw wm Figure 2. Indirect Lookup Mechanism Although an indirect lookup mechanism reduces the amount of memory required to construct a forwarding table, 33 Mbytes memory usage is still too large to implement lookup scheme with a low cost. To further reduce the size of a forwarding table, researches on hardware-based lookup schemes focused on "As. The next two subsections describe these approaches. To explain the following schemes more concretly, consider an example of a set with three prefixes as represented in Table 1. The first column represents 4 14

routing prefixes within a segment 53.250. The second column is binary notation of each prefix after 16 bits, and the third column represents length of each prefix. In a real routing table, a route entry consists of three major information, {routingprefix, prefix length, output port}. In this paper, we modify each route entry as Table 1 to explain the following hardware-based scheme easily. Table 1. Prefix Set within a Segment [ Routing Prefixes 11 Binary Notation I Prefix Length 53.250.62 11 0011111* 1* I 23 53.250.64 01000000 24 I 53.250.65 II 01000001 24 I I Figure 3. Huang's Forwarding Table Structure 2.1. Huang's Scheme The size of "A's for indirect lookup mechanism is fixed as 64K entries. If all output port within a router is identified by 8 bits, then the size of an "A is 64Kbytes '. However, this size can be further reduced according to the maximum prefix length within a segment [7]. If the maximum length(z,,,) of prefixes within a segment is less than or equal to 32 bits(l6 5 I,,, 5 32), then the number of entries within an "A is not need to be 64K but be 2'ma2-16 by expanding prefixes into.,, Z In Table 1, 53.250 segment has 3 prefixes and its maximum prefix length is 24 bits long. In Huang's scheme, the number of "A entries for this segment is 256(=2'-0*-~~ = 224-16 = 28). When we define as ki = I,,, - 16, (05 ki 5 16). And we define the number of segments which have prefixes longer than 16 bits length as j(0 5 i 5 j - 1). Figure 3 shows two level forwarding table structure for this case. 2.2. Wang's Scheme If there are common bits for all prefixes within a segment in part longer than 16 bits, it is possible to reduce more entries for an "A than that of Huang's [lo]. Since Huang's scheme does not consider common bits, the number of entries is 2'maz-16. If we define common bit length as ci, (0 5 ci 5 IS), the number of entries for an "A reduces to 21m-=-16-ci in Wang's scheme. Common bit values are stored on segment table. Hence, the size of segment table entries is 2 bytes larger than that of Huang's or indirect lookup's at maximum. In [ 101 however, authors constrain the length of common bits as 4 bits. By doing so, they keep the size of segment table from increasing too large. Consider Table 1, again. In this segment, all three prefixes have 'Generally, the number of physical ports of the Internet routers is less than 256. one common bit(l7-th bit position with value 0). Thus the number of "A entries for this segment reduces from 256 to 128(28-1). Figure 4 shows the forwarding table structure of Wang's. Figure 4. Wang's Forwarding Table Structure 3. Our Approaches In this section, we describe two our forwarding table structures and an "A construction algorithm in detail. 3.1. Basic Scheme In Wang's scheme, it can be possible to reduce "A entries only when there are common bits for all prefixes within a segment. However, it can also be possible to reduce more "A entries even if there are no common bits provided we can distinguish all prefixes within the segment. Consider Table 1, again. First, all prefixes within this segment should be expanded to 24 bits length(to the ZmRz). This expansion generates 4 expanded prefix entries, 00111110,001111 11, 415

01000000,01000001. Next, we examine all expanded prefixes from 24-th to 17-th bit position until 4 prefixes are distinguished with examined bits. In this case, all expanded prefixes can be distinguishedusing the last 2 bits(23-th, and 24-th bits). Then 17-22-th bit values can be skipped and finally generated "A's entry number becomes 4. We define 17-22-th bits values as a skip bit in this paper. Of course, this skip bit should be stored somewhere for correct lookups. In our proposed scheme, we store skip bits at "As. Figure 5 shows the forwarding table structure of our basic scheme. Bit values from (17 + skip bit) to I,,, are used as a pointer to th'e "A, 23-th N 24-th bits, in this case. Se~msnl Table Sklpped Bnvaiue output p d!u250 Segment Table rnlllll OlOmDO rn11111 010~0 Figure 6. Advanced Forwarding Table Structure figure, an increase ratio of skip bits is the largest when NHA Width is between 1 and 2. Again, NHA Width can be 3 or more. In this case, the size of an "A entry increases by a factor of 2 bytes although the number of "A entries reduces somewhat more. Accordingly, we can say that there are no much gains from large NHA Width. In our simulation for performance analysis, we set NHA Width as2 from which we get the best performance. Figure 5. Basic IForwarding Table Structure 20cc:.a:,,. l6doj 1,.e:: 4..,a - 1(1000..........,.....,........... 3.2. Advanced Scheme In our basic scheme, an "A entry has a pair of skip bit and output port information. We define NHA Width as a pair of skip bit and ouiiput port information. If NHA Width becomes 2, that is to say, an "A entry has two pairsof skip bit and output port infcnmation, the number of "A entries can further be reduced. Of course, the size of an "A enuy will be doubled in comparison with when NHA Width is 1. Consider a segment represented in Table 1, again. If NHA Width becomes 2, we can distinguish all entries in this segment using the last one bit and skip bit length becomes 7. Figure 6 shows a forwarding table structure of this case. If a maximum length of if skip bit is 8 bits and all output ports can be identified by 8 lbits(physical1y 256 output ports exist in a router), the size of an "A entry becomes 4 bytes when NHA Width is 2. Generally, one memory accce can fetch 4 bytes or more, so our advanced scheme will not result in additional memory accesses. In this paper, we restrict a skip bit length at maximum 8 bits. 33. The Best Fit of "A Width NHA Width can be more than 2. As NHA Width grows, an "A entry size will also increase by 2 bytes. Figure 7 shows the total amount of skip bits when NHA Width is 1, 2,3,4 and 5 for real routing table [6]. As we can see in this *..? SJ"0 400,... Figure 7. Total Amount of Skip Bit for Various NHA Width 3.4. "A construction Algorithm The formal algorighm for constructing our "A of a segment is given below. Let I,,, be the maximum prefix length of a segment. skip-bit represents maximum possible skip bit length of the segment. And pi[z..y] represents the bit pattern of prefix pi from the zth bit to the yth bit. Table 2 shows the formal "A construction algorithm. The core part of our "A construction algorithm is to categorize prefixes within a segment according to the bit values from'l,,,-th to 17-th as shown in Figure 8. If the number of entries within each category is larger than predetermined NHA Width, one bit is added for the next examination. This operation can be showed that a shaded box, in Figure 8, expanded left by one bit. And this process continues until the number of entries within each category is less than predetermined NHA Width. 416

Table 2. NHA Construction Algorithm NHA-Construction Algorithm Input : The set of routing prefixes within a segment. Output : The corresponding NHA of this segment. Step 1: Expand all prefixes to the max. prefix length lmax. Step2: Let P = { po,p~, Step 3: Set skipbit = lmax - 16 Step 4: for (i=o;i< l,,, - 16;itc)...,pm-l} be the set of all expanded prefixes. skipbit - -; extract pk[lmax - i..zmax], (0 5 k 5 m - 1) categories pks accroding to the bit values if the number of calculated entries within each category > NHA Width skipbit - -; continue; I/ goto Step 4 else skipbit found!! break; Step 5: Construct NHA with size of 2lmnm entries. Step 6: Assign appropriate output port information to each entry SteD 7: StOD dex to the "A from the given IP address from bit position (17+skip bit length+l) to Zmaz, and accesses the "A using this extracted value(2,dmemory access). Thereafter, compare two "Skipped Bit Value" field of the "A and bit value stored at B. If there is a match, then correspoding output port information is returned and an LP finishes, otherwise this process repeated NHA Width times. If there is no "Skipped Bit Value" matches with bit value stored at B, an LP returns output port information stored at register A. If the register A has NULL value, then default route will be returned. Figure 8. Core Part of a NHA Construction Algorithm 3.5. Lookup Process IP address lookup procedure(lp) using proposed scheme is very simple and requires one or two times of memory accesses. First, an LP extracts upper 16 bits of a given IP address and access segment table by this value(lst memory access). If an output port information is found in the segment, and its "A pointer is NULL, then an LP returns the output port information and finishes. If an output port information is found but its "A pointer is not NULL, an LP stores the output port information at temporal register A, and stores bit value of the given IP address from bit position from 17 to (17+skip bit length) at another temporal register B. In caqe an output port information is not found and its "A pointer is not NULL, register A should have NULL value. To access a correct "A location, an LP extracts an in- 4. Performance Evaluation We measure memory requirements of proposed forwarding table structure using real routing tables. We consider the size of a segment table, the size of an "A entry and the number of "A entries. Many kinds of compression techniques used in other schemes such as CBM(Compressed Bit Map) [4], etc. should not be accepted for a fair comparison. Huang's, Wang's and proposed scheme are compared in terms of the memory usages. These are the representative forwarding table for hardward-based IP address lookups. We use the logs of publicly available routing tables as a baqis for comparison. These routing tables are offered by IPMA project and provide a daily snap shot of the routing tables used by some major Network Access Points(NAPs) [6]. We select a snap shot of 18, April 2001. Figure 9 shows the number of total entries within all segments for above three schemes. As we can see in this figure, the total number of entries itself reduces very much in our proposed scheme. This is the most important characteris- 417

tics of the proposed scheme. Only by increasing the number of prefixes that an "A entry can store by l(that is, NHA Width = Z), the total number of "A entries reduces to a quarter or less. Since proposed scheme reduces the number of "A entries very much, it scales well for routers which have large routing tables. that of any other schemes which have been proposed previously. Also, it needs maximum two memory access times to complete a lookup procedure in the worst ca$e. Moreover, proposed scheme scales well for routers which have large routing tables since it reduces the number of "A entries very much. References Figure 9. Total Number of NHA Entries for Various Routing Tablles Table 3 shows total memory requirements for above three schemes. Although the total number of entries for proposed scheme is a quarter or less than the others, the memory usage does not reduce to a quarter or less. This is because the size of our "A entry is 4 bytes(2 skip bits and 2 output port info.rmation). Nevertheless, total memory requirements amount is maximum 200KBytes less than that of Wang's scheme which says memory requirements reduces by 20% in our proposed scheme. Table 3. The Comparison of Total Memory Requirements Huang's (KBytes) I MaeEast )I 19634 912 30812 PacBell 43 172 Paix 16516 991 5. Conclusion Wang's Proposed Scheme (KEytes) (KBytes) 809 665 1095 893 1223 1055 830 661 The most important bottleneck point of the Internet routers is the slow, software-based IP address lookup procedure which is not appropriate for current high performance routers. Most of the multi-giga bit Internet routers have been adopting hardware-based lookup procedure to speed it up. In this paper, we propose a scalable, simple, intuitive, and easily impl'ementable forwarding table structure for hardware-based I ' address lookups. Our forwarding table structure requires about 20% less memory space than [ 11 Chris Metz. IP ROUTERS: New Tool for Gigabit Networking. IEEE Internet Computing, 2(6):14-18, NovDec 1998. [2] Gene Cheung, and Steve McCanne. Optimal Routing Table Design for 1P Address Lookups Under Memory Constraints. In Proceedings of the INFOCOM 1999, volume 3, pages 1437-1444, 1999. [3j Henry Hong-Yi Tzeng, and Tony Przygienda. On Fast Address-Lookup Algorithms. IEEE Jouranl on Selected Areas in Communicarions, 17(6): 1067-1082, June 1999. [4j M. Degermark, A. Brodnik, S. Carlsson, and S. Pink. Small Forwarding Tables for Fast Routing Lookups. In Proceedings of the ACM SIGCOMM 1997, pages 3-14, 1997. [5] Marcel Waldvogel, George Varghese, Jon Turner, and Bemhard Plattner. Scalable High Speed 1P Routing Lookups. In Proceedings ofacm SIGCOMM 1997, pages 25-36, 1997. [6] Merit Inc. IPMA Statistics. http://nic.merit.edu/ipma, 1998. [7] Nen-Fu Huang, and Shi-Ming Zhao. A Novel IF'-Routing Lookup Scheme and Hardware Architecture for Multigigabit Switching Routers. IEEE Jouranl on Selected Areas in Communications, 17(6):1093-1104, June 1999. [SI P. Newman, G. Minshall, T. L. Lyon, and L. Huston. IP Switching and Gigabit Routers. IEEE Communications Magazine, 35(1):64-69, Jan 1997. [9] Pankaj Gupta, Steven Lin, and Nick McKeown. Routing Lookups in Hardware at Memory Access Speeds. In Proceedings of INFOCOM 1998, pages 1240-1247, 1998. [lo] Pi-Chung Wang, Chia-Tai Chan, and Yaw-Chung Chen. A Fast IP Routing Lookup Scheme. In Proceedings of the ICC 2000, volume 2, pages 114&1144,2000. [ 11 j Stefan Nilsson, and Gunnar Karlsson. IF'-Address Lookup Using LC-Tries. IEEE Jouranl on Selected Areas in Communications, 17(6):1083-1092, June 1999. [12] T. Chaney, J. Andrew Fingerhut, M. Fhcke, Jonathan S. Turner. Design of A Gigabit ATM Switch. In Proceedings of the INFOCOM 1997, volume 1, pages 2-1 1, 1997. [13j V. Fuller, T. Li, J. Yu, and K. Varadhan. Classless Inter- Domain Routing(CIDR): an Address Assignment and Aggregation Strategy. RFC1.519, Sep 1993. [14] V. Srinivasan and G. Varghese. Fast Address Lookups using Controlled Prefix Expansion. ACM Transactions on Computer Systems, 17(1): 1-40. Feb 1999. [15] Willibald Doeringer, Gunter Karjoth and Mehdi Nassehi. Routing on Longest-Matching Prefixes. IEEELACM Transactions on Networking, 4(1):86-97, Feb 1996. 418