Multiplex communications – Data flow congestion prevention or control – Flow control of data transmission through a network
Reexamination Certificate
1998-10-05
2003-04-15
Hus, Alpus H. (Department: 2662)
Multiplex communications
Data flow congestion prevention or control
Flow control of data transmission through a network
C370S392000, C370S397000, C370S389000, C708S509000, C709S238000, C714S796000
Reexamination Certificate
active
06549519
ABSTRACT:
FIELD OF THE INVENTION
This invention relates generally to networks, such as telephone and computer networks, and, more particularly, relates to routing information through such networks.
BACKGROUND OF THE INVENTION
A network allows two or more parties to communicate with each other. In their simplest form, networks generally include transmission lines and switching devices (e.g., routers, switches, switching routers, etc.). The transmission lines carry signals (e.g., electrical, optical, etc.), while the switching devices are intermediate stations that establish temporary connections between transmission lines. In telephone networks, for example, a caller's line goes to a switching device where the actual connection is made to the called party. In computer networks, devices such as routers receive messages on the network and forward the messages to their correct destinations. Computer networks can be as small as a local area network (LAN) consisting of a few computers, printers, and other devices, or it can consist of many computers distributed over a vast geographical area (e.g., the Internet).
An example computer network
10
is shown in FIG.
1
A. The network includes two local segments
12
and
14
, and connection to a remote network
16
. Nodes, labeled as A-J, represent computers connected to the local segments. A switching device
20
includes three ports
22
-
24
and switches network traffic between segments
12
,
14
, and the remote network
16
. Network
16
may also include switching devices, such as switching device
21
, which then connects other segment (not shown) to the network. Switching device
20
allows the nodes on one segment to communicate with nodes on other segments and to other switching devices. The nodes communicate with each other through a protocol (e.g., HTTP, TCP/IP, SMB, etc.) which allows the nodes to transmit and receive network frames (a network frame includes a destination address, a source address, and a data field). When switching device
20
receives a frame from a node, it analyzes the destination address by searching a lookup table
26
, shown in FIG.
1
B. Lookup table
26
includes table entries having a network address field and a port field. When the destination address is matched to a network address in the lookup table, switching device
20
determines which port to forward the frame to by obtaining the port number corresponding to the matched network address. For example, if node A on segment
12
sends a message to node H on segment
14
, switching device
20
receives the message from node A and in response searches the entries in the network address field of lookup table
26
. Table entry
28
contains the network address for H. A corresponding port field
30
for network address H indicates that the frame should be forwarded over port
2
. Additional background information on switches can be found in a number of references, such as
Fast Ethernet
(1997) by L. Quinn et al.,
Computer Networks
(3
rd
Ed. 1996 by A. Tannenbaum, and
High
-
Speed Networking with LAN Switches
(1997) by G. Held, all of which are incorporated herein by reference.
The switching device can obtain the network addresses for the lookup table in different ways, depending on the particular implementation of the switching device. For example, the switching device may snoop network traffic so that when a frame is received on a port, the switching device determines if the frame's source address is in the table and, if it is not, adds an entry containing the source address and the inbound port to the table. Thus, the switching device is said to “learn” addresses and port numbers from any frame that is transmitted by a node. Another technique some switching devices (e.g., routers) use to obtain the lookup table is from other switching devices through a special protocol. Thus, routers supply network addresses to each other to supplement their lookup tables.
Consequently, when a network frame is received in a switch, both the source and destination addresses must be searched in the lookup table—the source address for “learning” and the destination address for forwarding. To search the lookup table, a single search engine (not shown) within the switch
20
sequentially accesses lookup table entries and compares the entries to the destination address in the network frame. After the search for the destination address is completed, a second independent search is performed for the source address. An example timing diagram
40
for the search engine is shown in FIG.
2
. During a first clock cycle
42
, the search engine accesses the lookup table and obtains a network address. During a second clock cycle
44
, the search engine compares a network address obtained from the lookup table to the destination address. The first and second clock cycles together form a single iteration of the search. If there is no match, the search engine loads an address for the next lookup table entry to analyze. The process is repeated during clock cycles
46
and
48
(a second iteration), and so on until a match is found or the search fails. After the search for the destination address is completed, a second search is performed for the source address. Unfortunately, given current memory and ASIC speed limitations, the above-described technique for searching the lookup table is too slow to meet the requirements of recently-developed gigabit switches. Additionally, with sequential searching, the lookup table is only accessed every other clock cycle, wasting valuable time.
An objective of the present invention, therefore, is to provide a high-speed network switching device that can quickly and efficiently search through address lookup tables and that overcomes the limitations of the prior art.
SUMMARY OF INVENTION
The present invention provides a switching device (e.g., router, switch, switching router, telephone switch, etc.) that forwards network traffic to a desired destination on a network, such as a telephone or computer network. The switching device includes multiple ports and uses a lookup table to determine which port to forward network traffic over. The network traffic is typically in the form of network frames that include source and destination addresses.
In one aspect of the invention, the lookup table includes network addresses that are maintained in sorted order (e.g., ascending or descending order) to facilitate binary searches. Additionally, multiple binary search engines are connected in series and perform multiple binary searches simultaneously. Rather than having each binary search engine perform an independent search, the binary search engines each perform a predetermined number of iterations of an N iteration search. Additionally, each search engine has a separate memory, which stores only data (nodes from the lookup table) necessary for its respective iterations of the search. When a search engine completes its iterations of the search, the results are passed to the next search engine in the series. The next search engine uses the results from the previous search engine as a starting point to performing its respective iterations of the binary search. The number of search engines connected in series (also called pipelining) can vary between two and N, where N is the number of iterations needed for a binary search to complete. If N search engines are used, each search engine performs only one iteration.
By pipelining search engines, increased throughput is achieved. Additionally, by storing only the data necessary for a predetermined number of iterations, very little memory space is needed. For example, a lookup table with 64 K entries requires 16 iterations (2
16
=64 K) to search the entire table using a binary search. If two search engines are used, each search engine performs 8 iterations each. The first search engine's memory only stores 256 entries (2
8
), while the second search engine stores either all 64 K entries or the remainder of the entries after extraction of the 256 entries from the lookup table.
In another aspect of the inve
Cathey James E.
Daines Bernard N.
Davis Greg W.
Michels Timothy Scott
Alcatel Internetworking (PE), Inc.
Christie Parker & Hale LLP
Hus Alpus H.
Qureshi Afsar M
LandOfFree
Network switching device with pipelined search engines does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Network switching device with pipelined search engines, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Network switching device with pipelined search engines will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3073405