TRIPLET ARCHITECTURE IN A MULTI-
PORT BRIDGE FOR A LOCAL AREA
This is a continuation-in-part of U.S. patent application 5 Ser. No. 08/590,125 filed on Jan. 23, 1996, U.S. Pat. No. 5,764,895, which is a continuation-in-part of U.S. patent application Ser. No. 08/371,499, filed on Jan. 11,1995, U.S. Pat. No. 5,857,075. The contents of U.S. patent application Ser. No. 08/590,125 and the contents of U.S. patent appli- 10 cation Ser. No. 08/371,499 are hereby incorporated by reference. This application claims the benefit of U.S. Provisional Application Ser. No. 60/059,171, filed Sep. 17, 1997.
FIELD OF THE INVENTION
The invention relates to a multi-port bridge for a local area network. More particularly, the invention relates to controlling flow of data packets among the ports of a multi-port bridge. 20
BACKGROUND OF THE INVENTION
Nodes of a local area network (LAN) are typically interconnected by a shared transmission medium. The amount of 25 data traffic that the shared transmission medium can accommodate, however, is limited. For example, only one node at a time can successfully transmit data to another node over the shared transmission medium. If two or more nodes simultaneously attempt to transmit data, a data collision 30 occurs, which tends to corrupt the data being transmitted. Thus, nodes that share a transmission medium are considered to be in a same collision domain.
A multi-port bridge allows simultaneous communication between nodes of the LAN by segmenting the LAN into 35 multiple collision domains (also referred to as network segments), each segment having a corresponding transmission medium. FIG. 1 illustrates a conventional local area network (LAN) including a multi-port bridge 10. The multiport bridge 10 in this example has eight ports #1-8, though 40 the number of ports can vary. Each port #1-8 is connected to a segment 11-18 of the LAN. Each segment 11-18 typically includes one or more nodes 19-34, such as a workstation, a personal computer, a data terminal, a file server, a printer, a facsimile, a scanner or other conventional 45 digital device. Each of the nodes 19-34 has an associated node address which uniquely identifies the node. The nodes 19-34 are configured to send data, one to another, in the form of data packets.
When the LAN operates according to Ethernet standards, 50 such as the Institute of Electrical and Electronics Engineers (IEEE) 802.3 standard, data is communicated in the form of discrete packets. FIG. 2 illustrates a conventional IEEE 802.3 data packet 40. The data packet 40 includes an eight byte long pre-amble 41 which is generally utilized for 55 synchronizing a receiver to the data packet 40. The preamble 41 includes seven bytes of pre-amble and one byte of start-of-frame. Following the pre-amble 41, the data packet 40 includes a six byte long destination address 42, which is the node address of a node which is an intended recipient for 60 the data packet 40. Next, the data packet 40 includes a six byte long source address 43, which is the node address of a node which originated the data packet 40. Following the source address 43 is a length field 44. Following the length field is a data field 45. The data field 45 can be up to 1500 65 bytes long. Finally, the data packet 40 includes a four-byte frame check field 46 which allows a recipient of the data
packet 40 to determine whether an error has occurred during transmission of the data packet 40.
When a node (source node) sends data to another node (destination node) located on the same segment of the LAN (intra-segment communication), the data is communicated directly between the nodes without intervention by the multi-port bridge 10 and is known as an intra-segment packet. Therefore, when the multi-port bridge 10 receives an intra-segment packet, the multi-port bridge 10 does not bridge the packet (the packet is filtered). When a node (source node) sends a data packet to another node (destination node) located on a different segment (intersegment communication), however, the multi-port bridge 10 appropriately forwards the data packet to the destination node.
When a node (source node) sends data to another node (destination node) located on the same segment of the LAN (intra-segment communication), the data is communicated directly between the nodes without intervention by the multi-port bridge 10. Therefore, when the multi-port bridge 10 receives an intra-segment packet, the multi-port bridge 10 does not bridge the packet (the packet is filtered). When a node (source node) sends a data packet to another node (destination node) located on a different segment (intersegment communication), however, the multi-port bridge 10 appropriately forwards the data packet to the destination node.
Data packets received by the multi-port bridge 10 are generally stored temporarily within the multi-port bridge 10 before being forwarded to the appropriate destination node by the multi-port bridge 10. Problems can arise, however, when the capabilities of the multi-port bridge are exceeded by network demand. When data packets are received by the multi-port bridge 10 at a rate that is higher than the rate at which the multi-port bridge 10 can appropriately forward the packets, the network becomes congested. This problem is exacerbated as network users place increasing demands on the network.
Therefore, what is needed is improved technique for controlling the flow of data in a multi-port bridge for a local area network.
SUMMARY OF THE INVENTION
The invention is a method and apparatus for controlling flow of data packets among the ports of a multi-port bridge. The multi-port bridge includes a switch engine, a dynamic random access memory and a plurality of ports, all of which are interconnected by a high speed communication bus. The switch engine includes a memory controller and a bus controller, each being a finite state machine. The bus controller controls access to the communication bus by collecting requests from the ports and granting the requests according to an appropriate priority. The memory controller provides an interface between the memory and the communication bus. The memory includes look-up tables utilized for appropriately directing data packets among the ports, packet buffers utilized for temporarily storing packets and mailboxes for providing an interface between the switch engine and an external processor.
Each port includes a port controller, a MAC transceiver, a receive buffer, a transmit buffer and a triplet buffer. Packets received from a LAN segment by the transceiver are directed to the communication bus through the receive buffer, while packets to be transmitted over the LAN segment are directed to the transceiver through the transmit buffer. The triplet buffer stores memory pointers, referred to