WO1991008627A1 - Packet filter for bridge between networks - Google Patents

Packet filter for bridge between networks Download PDF

Info

Publication number
WO1991008627A1
WO1991008627A1 PCT/US1990/007003 US9007003W WO9108627A1 WO 1991008627 A1 WO1991008627 A1 WO 1991008627A1 US 9007003 W US9007003 W US 9007003W WO 9108627 A1 WO9108627 A1 WO 9108627A1
Authority
WO
WIPO (PCT)
Prior art keywords
bridge
network
data transmission
entry
passed
Prior art date
Application number
PCT/US1990/007003
Other languages
French (fr)
Inventor
Roland J. Croteau, Jr.
Paul A. Bradley
Original Assignee
Codex Corporation
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Codex Corporation filed Critical Codex Corporation
Publication of WO1991008627A1 publication Critical patent/WO1991008627A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4604LAN interconnection over a backbone network, e.g. Internet, Frame Relay
    • H04L12/462LAN interconnection over a bridge based backbone
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/742Route cache; Operation thereof

Definitions

  • This invention relates to bridging data transmissions between multiple local networks within a wide area network.
  • a wide area network generally includes multiple local area networks (LANs) , each of which transmits and receives data from other LANs in the WAN via a bridge.
  • Each LAN includes a plurality of local nodes (e.g., located in single office building) which communicate locally (that is, over the LAN) via a common link.
  • a node serves one or more users and may be, for example, a single user workstation, a multiple user minicomputer, or a peripheral device such as a memory or a printer.
  • Nodes package user data (which the node often receives at a low baud rate from the user) into discrete, high bit rate packets for transmission over the LAN.
  • a packet identifies the address of the node which originated the transmission (called the source node) and the destination node for the transmission.
  • the source node the address of the node which originated the transmission
  • the destination node the destination node for the transmission.
  • all nodes on a LAN receive all packets transmitted over the LAN. Nodes other than the destination node ignore the packet.
  • a bridge between two networks provides a pathway for data transmissions between the networks. All packets, even those which are purely local (i.e., have source and destination nodes on the same network) which are transmitted on each network which is served by the bridge are incident on the bridge. Typical bridges receive and store all of these packets and subsequently determine, based on the source and destination nodes identified by the packets, whether the source and destination nodes are on different networks. If so, the packet is forwarded to the "remote ,, destination network.
  • a general aspect of the invention is receiving and selectively passing data transmissions from one network to another using a bridge in a data communications system of the kind in which the data transmissions are sent between a plurality of nodes that are arranged in a plurality of networks. The bridge determines, while a data transmission is being received from one of the networks, whether the data transmission should not be passed to another network, and terminates reception of the data transmission if the transmission should not be passed to the other network.
  • Preferred embodiments include the following features.
  • the determination of whether the data transmission should not be passed from one network (e.g., a local area network or LAN) to the other network (e.g., another LAN in a wide area network or WAN) and the termination of reception for such a transmission are made without having to use the data processor utilized by the bridge to perform other, higher level functions.
  • the processor can be more effectively used to perform other tasks (such as re- sending packets to remote nodes) without having to become involved in the "filtering" of received packets and the decision as to whether the data transmission is purely local (i.e., between nodes on the same network) or involves remotely-located nodes.
  • Reception of a data transmission that is not to be passed is terminated by simulating an error that is normally generated if a real data transmission error occurs. This reduces the additional hardware needed to "filter" out purely local data transmissions and prevent them from being passed to other networks. For example, in networks in which receipt of a data transmission by a node is interrupted if a collision with another data transmission is detected, a simulated collision is generated to terminate reception of a data transmission that is not to be passed to the other network.
  • this time interval is monitored by the bridge and the collision is not simulated if the predetermined interval, or some fraction of it, has elapsed, even if the data transmission should not be passed.
  • the bridge may be of the kind that sends data transmissions between networks over a dedicated physical link.
  • the bridge can also be of the type that transmits the data to other networks via a time multiplexed channel shared with other like bridges.
  • the data transmission (e.g., a packet of data) identifies source and destination nodes for the transmission, and the bridge stores entries, each of which identifies a node.
  • the stored entries are searched for entries that correspond to the source and destination nodes identified in the transmission to determine whether the data transmission should not be passed to the other network.
  • the entries identify the networks on which the source and destination nodes are arranged, and the determination is made by comparing these identified networks. If they are the same, the transmission is purely local and it need not be passed to another network.
  • the nodes each have a unique address and the entries are arranged in groups (called "buckets") according to a predetermined set of addresses, for example, by a preassigned subset of addresses.
  • the search of the entries for either a source node or a destination node is made by determining which group of entries the entry corresponding to the node is in and searching only that group of entries. This allows the search to be performed more rapidly by concentrating the search on a relatively small number of entries instead of all of the stored entries and is particularly useful when the determination must be made and the reception aborted within a time limit (e.g., the time limit for generating simulated collisions discussed above) .
  • Each group includes a linked list of the entries in the group, and the group is searched by traversing the linked list.
  • portions of the address of a node are stored in fields of the entry for that node.
  • the address portions in each field of an entry are compared with the corresponding portions of each address identified by the data transmission. If they match, the comparison proceeds to the next field of the entry; if not, the search proceeds to the next entry in the group. If the search fails to locate an entry for at least one of the nodes identified by the data transmission (e.g., the source node) , the bridge assumes the transmission is to be passed to the other network, and an entry for the node is added.
  • Fig. 1 is a block diagram of a prior art wide area network.
  • Fig. la is a diagram of the twenty-four time multiplexed channels of a communication network within the wide area network of Fig. 1.
  • Fig. 2 is a diagram of the content of a data packet transmitted over a local area network (LAN) using the I.E.E.E 802.3 protocol.
  • Fig. 3 is a block diagram of a bridge between LANs according to the invention.
  • Fig. 4 is a block diagram of a local and remote packet filtering circuit of the bridge of Fig. 3.
  • Fig. 5 is a diagram of the contents of a node location table used in the filter of Fig. 4.
  • Figs. 6 through 8 are a flow diagram of the operation of the bridge of Figs. 3-5. Structure and Operation
  • wide area network (WAN) 14 includes a plurality of local area networks (LANs) 16, 17.
  • Each LAN includes one or more nodes 20 which communicate within the LAN over a local communication link 12.
  • Nodes 20 each serve one or more users(not shown) and may be any of a variety of devices such as a single user workstation, a multiple user minicomputer or a peripheral device such as a storage device or printer.
  • Nodes 20 on one LAn are capable of communicating both with nodes 20- on the same LAN(called “local communication) as well as with nodes on other LANs(known as "remote" communication).
  • Nodes 20 send data messages over LANs 16,17 and WAN 14 in the form of "packets".
  • each node 20 prepares packet 22 in a format required by the protocol of the LAN to which it is connected.
  • LANs 17 are token ring type LANs.
  • LANs 16 are carrier sense multiple access networks with collision detection (CSMA/CD) such as Ethernet or I.E.E.E. 802.3.
  • CSMA/CD carrier sense multiple access networks with collision detection
  • a packet 22 according to the I.E.E.E. 802.3 protocol contains eight fields.
  • a preamble field 24 contains a pattern which allows the other nodes on LAN 16 to lock on to the bit rate of the incoming packet.
  • a start frame delimit field 26 follows preamble field 24 and indicates that a destination address field 28 is about to begin.
  • Destination address field 28 contains a forty eight bit (6 byte) address identifying the nodes 20 to which packet 22 is being sent. Each node 20 is assigned, at its time of manufacture, a unique forty-eight bit address. If packet 22 is being sent to only one node 20, that node's unique address is contained in field 28. However, if packet 22 is being sent to a group of nodes 22, destination address field 28 contains a forty-eight bit group address assigned to that group.
  • a source address field 30 contains another forty eight bit address identifying the node which prepared packet 22 (i.e., the source node).
  • the data message itself appears in a data field 32. If the message is shorter than the forty-six byte minimum specified by I.E.E.E. 802.3 protocol, padding 34 is added to achieve this minimum. Packet 22 concludes with a length field 36 indicating the length of the message, and a frame check sequence (FCS) 38 for use in error detection.
  • FCS frame check sequence
  • Each LAN 16, 17 in WAN 14 is connected to a bridge 10 for allowing the LAN 16, 17 to communicate with other LANs 16, 17.
  • a bridge 10 may be directly connected between a group of LANs 16 (as is bridge 10a) . It may also be connected to other remote LANs 16, 17 via a communication network 18 such as are leased by many long distance communication corporations which provide digital communication service.
  • Each bridge 10 monitors the packets 22 that are transmitted on one or more LANs to which it is directly connected. If a bridge 10 determines that a given packet 22 is directed to a destination node residing outside the LAN from which packet 22 arrived (i.e., if the destination is "remote" with respect to that LAN) , bridge 10 transmits packet 22 to the LAN 16, 17 that contains the destination node. Bridges 10a that are directly connected between the source and the destination LANs simply transmit packet 22 onto the communication link 12 of the destination LAN. However, if not directly connected to the destination LAN, bridge 10 transmits packet 22 over communication network 18 to another bridge 10 associated with the destination LAN. The bridge 10 that receives the packet from communication network 18 in turn forwards it to the destination LAN 16, 17.
  • the bridge 10 determines that a packet received from any of the LAN's to which it is connected is a local transmission (i.e., the source and destination nodes are on the same LAN 16, 17), it will not forward packet 22 to any other network.
  • Bridge 10 is connected to communication network 18 by a single link 15. Communications over the link 15 are time multiplexed to provide twenty-four distinct channels. Referring to Fig. la, transmissions over link 15 occur in time slots 8 allocated among the twenty four channels. Each channel is assigned to one or more of the remote bridges 10 that are connected to network 18. Only bridges 10 assigned to a given channel can send and receive packets in the channel. Further, if one bridge 10 transmits during time intervals allocated to a given channel, communication network 18 forwards the transmission to each remote bridge 10 assigned to that channel.
  • each bridge 10 includes serial interface circuitry 112 for receiving the packetized data transmission from a local communication link 12.
  • Serial interface circuitry 112 may be implemented with a serial interface adapter (SIA) manufactured by Advanced Micro
  • serial interface circuitry 112 locks onto the packet bit rate using the preamble field 24 (Fig. 2) .
  • Serial interface circuitry 112 then produces a serial digital data stream D s corresponding to the incoming packet, and a clock signal Ck synchronous with D g .
  • the digital data stream D ⁇ and clock Ck are provided to a Local Area Network Controller 114 (such as a LANCE for the ethernet protocol) .
  • Lance 114 controls how the message data in the incoming packet is loaded in memory 116 for subsequent processing by processor 120. (e.g., Advanced Micro Devices, Inc. 's product number AM 7990A) .
  • LANCE 114 converts the serial data stream D s into sixteen bit words and stores them in table memory 116 at a previously determined location.
  • the digital data stream D ⁇ and clock Ck are also provided to packet filter 118.
  • packet filter 118 examines the . destination and source address fields 28, 30 to determine the identities of the source and destination nodes and thus determines whether the packet transmission is "local” or "remote". This determination is made “on the fly” before the entire packet is received and without involving processor 120.
  • filter 118 causes bridge 10 to abort reception of the packet and ignore the portions of the packet 22 that have so far been stored in memory 116.
  • filter 118 allows bridge 10 to continue to receive and store packets 22 for remote transmissions.
  • Processor 120 later repacketizes the messages stored in memory 116 and transmits them to the remote LANs via WAN interface 122.
  • filter 118 is programed with the location of many if not all nodes in WAN 14. If packet 22 is destined for a node 20 which filter 118 "knows" is connected to the same LAN 16 as the source node 20 which originated that packet transmission, filter 118 instructs LANCE 114 to abort storing the incoming packet. Otherwise, filter 118 allows LANCE 114 to fully store packet 22. Once packet 22 is fully stored, LANCE 114 provides an interrupt signal I 1 to processor 120 informing it that a packet has arrived. The processor then processes the stored packet and attends to forwarding it to the destination LAN.
  • processor 120 instructs wide area network (WAN) interface circuitry 122 to transmit packet 22 over the communication network 18 (Fig. 1) . Since the decision to abort is made “on the fly” as packet 22 is being received, the processor is not interrupted for "local" transmissions.
  • WAN wide area network
  • packet filter 118 stores a table memory 124 containing entries 53 for each node 20 in WAN 14.
  • Each entry 53 includes four 16 bit words.
  • the first three words 54, 56, 58 collectively contain the forty- eight bit address of the node 20 to which entry 53 corresponds.
  • the fourth word 60 contains a link number identifying the LAN on which the node resides.
  • Each LAN 16, 17 which is directly connected to bridge 10 is assigned a unique link number. If the node 20 is known to reside on one such LAN 16, 17 the corresponding link number is stored in word 60.
  • each channel 8 (Fig. la) of communication network 18 is assigned a unique link number. If the node 20 is known to be connected to a bridge 10 associated with that channel 8, that channel's link number is stored in word 60.
  • Packet filter 118 determines whether the destination and source nodes identified in address fields 28, 30 reside on the same LAN 16 by searching table memory 124 for entries 53 corresponding to these addresses and comparing the entries' link numbers.
  • entries 53 are arranged in linked lists referred to as "buckets". Each bucket contains entries for all nodes whose lower eleven address bits (i.e., address bits 0-10) are identical. Thus to find an entry in the table, the filter simply selects the appropriate bucket and searches that bucket. Since a bucket has far fewer entries than the entire table memory 124, this scheme drastically reduces the number of entries which must be examined to find an entry. Referring also to Figs.
  • state control machine 126 in packet filter 118 controls the search through a bucket.
  • address capture circuitry 128 copies the fields for later retrieval by the state control machine.
  • State control machine 126 monitors the digital data stream D g . Once the destination address field 28 has arrived, state control machine 126 instructs (step 1) an address capture circuit 128 to provide the lower eleven address bits of the destination address field to the inputs of latch 130.
  • state machine 126 next asserts (step 2) control signal Cl to clock the eleven bits into latch 130 and control signal C2 to apply these bits as bucket address bits BA 2 ⁇ BA 12 to register 132.
  • the lower two bucket address bits BA Q -BA ⁇ ⁇ are driven low by latch 130 since the corresponding latch inputs are hardwired to zero.
  • control signal C3 By asserting control signal C3 (step 3) , these address bits are then loaded into register 132 to drive address bits A 2 -A 14 of table memory 124. These thirteen bits A 2 -A 14 thus select the bucket corresponding to the destination address of the incoming packet.
  • the state machine 126 selects the words 54, 56, 58 and 60 in each entry by sequencing lower two address bits A Q , A ⁇ .
  • destination address bits 32-47 of the first entry in the bucket are selected (step 4) by making bits A Q , A ⁇ both logic zeros.
  • the table memory 124 provides the most significant 16 address bits of the first bucket entry to input 144 of a comparator 134.
  • State control machine 126 next instructs (step 5) address capture circuitry 128 to supply the most significant 16 address bits (bits 32-47) of the destination address field of the incoming packet to input 146 of comparator 134. State control machine 126 then examines (step 6) the output signal "compare” from comparator 134 to determine if comparator inputs 144,146 match. If theses inputs match, the controller repeats steps 5 - 6 for destination address words 56(bits 16-31) and 58 (bits 1-15) by (see step 7), fetching each address word 54, 56 of the first entry 53 in the bucket by toggling bits A 0 , A ⁇ (step 8) , and comparing them against the corresponding bits 16-31, 0-15 of 5destination address field 28.
  • control state machine 126 first determines (step 9) whether it has reached the end of the bucket. If not, it removes (step 10) control signal C2 to disable the outputs of latch
  • link pointer memory 125 contains an address pointer identifying the next entry 53 of a given bucket in table memory 124.
  • address bits A 2 -A 14 which identify the present entry 53 in the
  • link pointer table 125 provides an address on bits BA 0 - BA 12 which identifies the next entry 53 in the bucket. While link pointer table 125 asserts the address for the next entry 53, state control machine 126 again asserts (step 11) control signal C3 to load the thirteen bit address of
  • Control state machine 126 then returns (step 12) to step 4 and repeats the above steps to check the destination address against the newly selected entry 53 in
  • the bucket (which is essentially a list of addresses linked by pointer table 125) is searched until an entry is found which corresponds to the destination address 28 of the incoming packet or until the end of the bucket is reached. If the end of the bucket is
  • the filter allows LANCE 114 to store packet 22 in memory 116 for transmission over WAN 114.
  • the state control machine still proceeds to search for an entry corresponding to the source address (Steps 9.1, 9.2), since, as described below, the filter needs to determine if the source address should be added to the table. If the end of 5 the bucket is reached while searching for a source address, state control machine 126 allows LANCE 114 to store the packet and notify processor 120 (step 13) . However, it also sets (step 13) a flag to notify processor 120 that the table lacks an entry for the source node. When responding to the 10 LANCE 114's interrupt, processor 120 will then update the table.
  • step 14 the state control machine 126 asserts logic l's (step 15) on address bits A Q/ A. to 15 select the word 60 of the entry which contains the LAN link number. State control machine 126 then asserts control signal C4 to load the link number into register 136. Once the link number is loaded, state control machine 126 removes control signal CE to disable the link pointer memory 125. 20 it then repeats the search process for the source address identified in the incoming packet, which has been stored in address capture circuit 128. State control machine 126 instructs (step 17) address capture circuitry 128 to provide the low order eleven bits of the source address to latch 25130.
  • control machine 126 changes (step 19) address bits A Q , A ⁇ to cause table memory 124 to provide the word 60 of the entry 3053 containing the link number to comparator input 144.
  • State machine 126 then asserts (step 20) control signal C5 to cause register 136 to provide the link number of the destination address to comparator input 146.
  • state control machine 126 determines whether the link numbers match. If the link numbers match, there is no need to continue receiving packet 22 because both the source and destination nodes 20 reside on the same LAN (i.e., the packet transmission is "local") . Accordingly, state control machine asserts simulated collision signal C m , thereby instructing (step 22) LANCE 114 to abort receipt of packet 22. Otherwise, state control machine 126 simply allows
  • step 23 LANCE 114 to fully receive and store packet 22 and notify processor of the arrival of packet 22.
  • packet filter 118 utilizes a feature of LANCE 114 used to abort receipt of packets which arrive during a "collision" (i.e., while two or more nodes are interfering with each other's transmissions). For example, in a LAN conforming to I.E.E.E. 802.3 protocol, nodes 20 take turns transmitting their packets over communication link 12. If link 12 appears idle, any node 20 having a packet for transmission will begin sending its packet over the link. Accordingly, two or more nodes may begin transmitting simultaneously, causing a "collision".
  • Interface circuitry 112 in addition to providing data stream D s , monitors communication link 12 for collisions. Upon detecting a collision, interface circuitry 112 immediately notifies LANCE 114 by asserting a collision signal C ⁇ . LANCE 114 aborts the receipt of packet 22 and discards any portion of packet 22 received so far.
  • bridge 10 uses this feature of LANCE 114 to abort receipt of a local packet transmission by asserting simulated collision signal C ⁇ .
  • the simulated collision signal C s and the actual collision signal C are applied to the inputs of an OR gate 140.
  • the OR gate thus notifies LANCE 114 of a collision when either an actual or a simulated collision occurs. Because an actual collision has not occurred and only the internal LANCE 114 of a bridge 10 is notified of a simulated collision, all other nodes 20 on LAN 16, 17 continue receiving the local transmission without interruption. However, because LANCE 114 believes a collision has occurred, it discards packet 22 without interrupting the processor 120. Thus memory 116 and processing resources are conserved.
  • a collision window which commences immediately following start frame delimiter field 26 of a data packet transmission.
  • This time frame is exactly 51.2 microseconds and coincides with the round trip delay time of the data signal propagating down the longest allowable link length (i.e., 500 meters).
  • LANCE 114 circuitry records the amount of time which elapses from the receipt of a start frame delimiter 26 to the receipt of a collision signal. If the collision signal arrives more than 51.2 microseconds after start frame delimiter 26, LANCE 114 notifies the processor of an error.
  • packet filter 118 decides within this 51.2 microsecond collision window whether to abort receipt.
  • the destination and source address fields arrive in the first 9.6 microseconds of the collision window. This leaves 41.6 microseconds in which to search table memory 124 and decide whether the transmission is local or remote.
  • state control machine 126 commences searching for an entry corresponding to destination field 28 before source address field 30 has arrived. Further, as explained above, because of the bucket arrangement provided by table memory 124 and link pointer table 125, state control circuitry 126 need only search a limited number of entries in the bucket rather than the entire contents of table memory 124.
  • State control machine 126 includes an internal timer 142 for recording the amount of time that has elapsed in the collision window.
  • state machine 126 terminates its search and will not issue a simulated collision. Thus, even if the search would have subsequently revealed that both nodes are on the same network, packet 22 is fully loaded into memory and the processor is notified of the arrival of the packet. However, in processing the received packet 20, processor 120 may decide not to forward packet 20.
  • the above describes the manner in which the bridge decides whether to transfer a packet from an associated LAN 16. However, packets arriving over a given channel 8 of communication network 18 are fully stored in memory 116 by WAN interface 122 before the destination and source addresses are examined.
  • the state control machine 126 instructs a WAN address capture circuitry 150 to fetch the destination and source addresses for comparison in the same manner as performed with packets from LAN 16.
  • Nodes 20 may occasionally be added to or deleted from any LAN throughout the wide area network 14. Accordingly, when a bridge 10 first receives a packet from a newly added node 20, the bridge's filter 118 will not find a table memory entry 53 corresponding to the source address field 30. Upon determining that table memory 124 lacks an entry, the bridge 10 notifies the processor 120. Processor 120 proceeds to update table memory 124 with an entry 53 corresponding to the new node 20 sing the link number of the LAN (or of the channel 8 of communication network 18) from which packet 22 arrived, and the address from source address field 20 of that packet.
  • bridge 10 fails to receive a packet 22 5 from a given node 20 for a long time, it assumes the node has been removed from the system. Accordingly, the processor 120 deletes the table memory entry 53 corresponding to the removed node.
  • processor interface circuitry 10 148 allows the processor to access the contents of table memory 124 to perform such table memory updates and to access other status information. This involves coordinating processor accesses to the table memory with accesses by the state control circuitry 126 during a normal table memory 5 search.
  • timer 142 can be set to timeout if a fraction (such as less than one half) of the collision window is exceeded before the simulated collision signal is o generated.
  • a fraction such as less than one half
  • One useful fractional time period has been found to be about 22 microseconds.
  • filter 118 is processing a packet receive, e.g., over WAN 14 when a new packet arrives on LAN 16
  • filter 118 is allocated a time schedule (e.g., 22 microseconds) sufficient to permit it to 5 finish filtering the packet from WAN 14 and filter the new packet from the LAN long before the expiration of the 51.2 microsecond window for the new packet.

Abstract

Data transmissions are received and selectively passed from one network (16) to another using a bridge (10) in a data communications system of the kind in which the data transmissions are sent between a plurality of nodes (20) that are arranged in a plurality of networks. The bridge (10) determines, while a data transmission is being received from one of the networks, whether the data transmission should not be passed to another network, and terminates reception of the data transmission if the transmission should not be passed to the other network. The determination of whether the data transmission should not be passed from one network (e.g., a local area network of LAN) to the other network (e.g., another LAN in a wide area network or WAN) and the termination of reception for such a transmission are made without having to use the data processor utilized by the bridge to perform other, higher level functions.

Description

PACKET FILTER FOR BRIDGE BETWEEN NETWORKS Background of the Invention This invention relates to bridging data transmissions between multiple local networks within a wide area network.
A wide area network (WAN) generally includes multiple local area networks (LANs) , each of which transmits and receives data from other LANs in the WAN via a bridge. Each LAN includes a plurality of local nodes (e.g., located in single office building) which communicate locally (that is, over the LAN) via a common link. A node serves one or more users and may be, for example, a single user workstation, a multiple user minicomputer, or a peripheral device such as a memory or a printer. Nodes package user data (which the node often receives at a low baud rate from the user) into discrete, high bit rate packets for transmission over the LAN.
A packet identifies the address of the node which originated the transmission (called the source node) and the destination node for the transmission. Usually, all nodes on a LAN receive all packets transmitted over the LAN. Nodes other than the destination node ignore the packet.
A bridge between two networks provides a pathway for data transmissions between the networks. All packets, even those which are purely local (i.e., have source and destination nodes on the same network) which are transmitted on each network which is served by the bridge are incident on the bridge. Typical bridges receive and store all of these packets and subsequently determine, based on the source and destination nodes identified by the packets, whether the source and destination nodes are on different networks. If so, the packet is forwarded to the "remote,,destination network. Summary of Invention A general aspect of the invention is receiving and selectively passing data transmissions from one network to another using a bridge in a data communications system of the kind in which the data transmissions are sent between a plurality of nodes that are arranged in a plurality of networks. The bridge determines, while a data transmission is being received from one of the networks, whether the data transmission should not be passed to another network, and terminates reception of the data transmission if the transmission should not be passed to the other network.
Preferred embodiments include the following features.
The determination of whether the data transmission should not be passed from one network (e.g., a local area network or LAN) to the other network (e.g., another LAN in a wide area network or WAN) and the termination of reception for such a transmission are made without having to use the data processor utilized by the bridge to perform other, higher level functions. As a result, the processor can be more effectively used to perform other tasks (such as re- sending packets to remote nodes) without having to become involved in the "filtering" of received packets and the decision as to whether the data transmission is purely local (i.e., between nodes on the same network) or involves remotely-located nodes. Local transmissions which would only place unnecessary traffic on the WAN are thus efficiently are "filtered" and excluded from transmission elsewhere in the WAN. In most cases, reception of packets that are not to be passed to the other network is aborted or terminated before the entire packet is received, thereby eliminating the need to temporarily store the entire data transmission prior to making the decision as to whether the transmission is to be remotely passed. Indeed, newly received data transmissions are simply stored over portions of earlier- received data transmissions that are not to be passed to another network, thereby conserving memory and reducing memory space needed in the bridge.
Reception of a data transmission that is not to be passed is terminated by simulating an error that is normally generated if a real data transmission error occurs. This reduces the additional hardware needed to "filter" out purely local data transmissions and prevent them from being passed to other networks. For example, in networks in which receipt of a data transmission by a node is interrupted if a collision with another data transmission is detected, a simulated collision is generated to terminate reception of a data transmission that is not to be passed to the other network. Because some errors (such as a collision) are ignored if they do not occur within a predetermined time interval, this time interval is monitored by the bridge and the collision is not simulated if the predetermined interval, or some fraction of it, has elapsed, even if the data transmission should not be passed.
The bridge may be of the kind that sends data transmissions between networks over a dedicated physical link. The bridge can also be of the type that transmits the data to other networks via a time multiplexed channel shared with other like bridges.
The data transmission (e.g., a packet of data) identifies source and destination nodes for the transmission, and the bridge stores entries, each of which identifies a node. The stored entries are searched for entries that correspond to the source and destination nodes identified in the transmission to determine whether the data transmission should not be passed to the other network. The entries identify the networks on which the source and destination nodes are arranged, and the determination is made by comparing these identified networks. If they are the same, the transmission is purely local and it need not be passed to another network.
The nodes each have a unique address and the entries are arranged in groups (called "buckets") according to a predetermined set of addresses, for example, by a preassigned subset of addresses. The search of the entries for either a source node or a destination node is made by determining which group of entries the entry corresponding to the node is in and searching only that group of entries. This allows the search to be performed more rapidly by concentrating the search on a relatively small number of entries instead of all of the stored entries and is particularly useful when the determination must be made and the reception aborted within a time limit (e.g., the time limit for generating simulated collisions discussed above) . Each group includes a linked list of the entries in the group, and the group is searched by traversing the linked list. For example, portions of the address of a node are stored in fields of the entry for that node. During the search for the entries that match the source and destination nodes, the address portions in each field of an entry are compared with the corresponding portions of each address identified by the data transmission. If they match, the comparison proceeds to the next field of the entry; if not, the search proceeds to the next entry in the group. If the search fails to locate an entry for at least one of the nodes identified by the data transmission (e.g., the source node) , the bridge assumes the transmission is to be passed to the other network, and an entry for the node is added.
Other features and advantages of the invention may be apparent from the following detailed description, and from the claims.
Description of the Preferred Embodiment Drawings
We first briefly describe the drawings. Fig. 1 is a block diagram of a prior art wide area network.
Fig. la is a diagram of the twenty-four time multiplexed channels of a communication network within the wide area network of Fig. 1.
Fig. 2 is a diagram of the content of a data packet transmitted over a local area network (LAN) using the I.E.E.E 802.3 protocol.
Fig. 3 is a block diagram of a bridge between LANs according to the invention.
Fig. 4 is a block diagram of a local and remote packet filtering circuit of the bridge of Fig. 3.
Fig. 5 is a diagram of the contents of a node location table used in the filter of Fig. 4.
Figs. 6 through 8 are a flow diagram of the operation of the bridge of Figs. 3-5. Structure and Operation
Referring to Fig. 1, wide area network (WAN) 14 includes a plurality of local area networks (LANs) 16, 17. Each LAN includes one or more nodes 20 which communicate within the LAN over a local communication link 12. Nodes 20 each serve one or more users(not shown) and may be any of a variety of devices such as a single user workstation, a multiple user minicomputer or a peripheral device such as a storage device or printer. Nodes 20 on one LAn are capable of communicating both with nodes 20- on the same LAN(called "local communication) as well as with nodes on other LANs(known as "remote" communication). Nodes 20 send data messages over LANs 16,17 and WAN 14 in the form of "packets".
Referring also to Fig. 2, each node 20 prepares packet 22 in a format required by the protocol of the LAN to which it is connected. A variety of different LAN protocols may be used in WAN 14. For example, LANs 17 are token ring type LANs. LANs 16 are carrier sense multiple access networks with collision detection (CSMA/CD) such as Ethernet or I.E.E.E. 802.3. A packet 22 according to the I.E.E.E. 802.3 protocol contains eight fields. First, a preamble field 24 contains a pattern which allows the other nodes on LAN 16 to lock on to the bit rate of the incoming packet. A start frame delimit field 26 follows preamble field 24 and indicates that a destination address field 28 is about to begin. Destination address field 28 contains a forty eight bit (6 byte) address identifying the nodes 20 to which packet 22 is being sent. Each node 20 is assigned, at its time of manufacture, a unique forty-eight bit address. If packet 22 is being sent to only one node 20, that node's unique address is contained in field 28. However, if packet 22 is being sent to a group of nodes 22, destination address field 28 contains a forty-eight bit group address assigned to that group. A source address field 30 contains another forty eight bit address identifying the node which prepared packet 22 (i.e., the source node).
The data message itself appears in a data field 32. If the message is shorter than the forty-six byte minimum specified by I.E.E.E. 802.3 protocol, padding 34 is added to achieve this minimum. Packet 22 concludes with a length field 36 indicating the length of the message, and a frame check sequence (FCS) 38 for use in error detection.
Each LAN 16, 17 in WAN 14 is connected to a bridge 10 for allowing the LAN 16, 17 to communicate with other LANs 16, 17. A bridge 10 may be directly connected between a group of LANs 16 (as is bridge 10a) . It may also be connected to other remote LANs 16, 17 via a communication network 18 such as are leased by many long distance communication corporations which provide digital communication service.
Each bridge 10 monitors the packets 22 that are transmitted on one or more LANs to which it is directly connected. If a bridge 10 determines that a given packet 22 is directed to a destination node residing outside the LAN from which packet 22 arrived (i.e., if the destination is "remote" with respect to that LAN) , bridge 10 transmits packet 22 to the LAN 16, 17 that contains the destination node. Bridges 10a that are directly connected between the source and the destination LANs simply transmit packet 22 onto the communication link 12 of the destination LAN. However, if not directly connected to the destination LAN, bridge 10 transmits packet 22 over communication network 18 to another bridge 10 associated with the destination LAN. The bridge 10 that receives the packet from communication network 18 in turn forwards it to the destination LAN 16, 17.
If the bridge 10 determines that a packet received from any of the LAN's to which it is connected is a local transmission (i.e., the source and destination nodes are on the same LAN 16, 17), it will not forward packet 22 to any other network.
Bridge 10 is connected to communication network 18 by a single link 15. Communications over the link 15 are time multiplexed to provide twenty-four distinct channels. Referring to Fig. la, transmissions over link 15 occur in time slots 8 allocated among the twenty four channels. Each channel is assigned to one or more of the remote bridges 10 that are connected to network 18. Only bridges 10 assigned to a given channel can send and receive packets in the channel. Further, if one bridge 10 transmits during time intervals allocated to a given channel, communication network 18 forwards the transmission to each remote bridge 10 assigned to that channel.
Referring to Fig. 3, each bridge 10 includes serial interface circuitry 112 for receiving the packetized data transmission from a local communication link 12. Serial interface circuitry 112 may be implemented with a serial interface adapter (SIA) manufactured by Advanced Micro
Devices, Inc., product number AM 7992A if communication link 12 conforms to the I.E.E.E. 802.3 protocol. As a packet transmission arrives, serial interface circuitry 112 locks onto the packet bit rate using the preamble field 24 (Fig. 2) . Serial interface circuitry 112 then produces a serial digital data stream Ds corresponding to the incoming packet, and a clock signal Ck synchronous with Dg. The digital data stream Dβ and clock Ck are provided to a Local Area Network Controller 114 (such as a LANCE for the ethernet protocol) . Lance 114 controls how the message data in the incoming packet is loaded in memory 116 for subsequent processing by processor 120. (e.g., Advanced Micro Devices, Inc. 's product number AM 7990A) . LANCE 114 converts the serial data stream Ds into sixteen bit words and stores them in table memory 116 at a previously determined location.
The digital data stream Dβ and clock Ck are also provided to packet filter 118. As packet 22 is being received by LANCE 114, packet filter 118 examines the . destination and source address fields 28, 30 to determine the identities of the source and destination nodes and thus determines whether the packet transmission is "local" or "remote". This determination is made "on the fly" before the entire packet is received and without involving processor 120. As discussed in detail below, if the transmission is "local", filter 118 causes bridge 10 to abort reception of the packet and ignore the portions of the packet 22 that have so far been stored in memory 116. On the other hand, filter 118 allows bridge 10 to continue to receive and store packets 22 for remote transmissions. Processor 120 later repacketizes the messages stored in memory 116 and transmits them to the remote LANs via WAN interface 122.
As explained in detail below, filter 118 is programed with the location of many if not all nodes in WAN 14. If packet 22 is destined for a node 20 which filter 118 "knows" is connected to the same LAN 16 as the source node 20 which originated that packet transmission, filter 118 instructs LANCE 114 to abort storing the incoming packet. Otherwise, filter 118 allows LANCE 114 to fully store packet 22. Once packet 22 is fully stored, LANCE 114 provides an interrupt signal I1 to processor 120 informing it that a packet has arrived. The processor then processes the stored packet and attends to forwarding it to the destination LAN. For example, if the destination LAN is not directly connected to bridge 10, processor 120 instructs wide area network (WAN) interface circuitry 122 to transmit packet 22 over the communication network 18 (Fig. 1) . Since the decision to abort is made "on the fly" as packet 22 is being received, the processor is not interrupted for "local" transmissions.
Referring to Figs. 4 and 5, packet filter 118 stores a table memory 124 containing entries 53 for each node 20 in WAN 14. Each entry 53 includes four 16 bit words. The first three words 54, 56, 58 collectively contain the forty- eight bit address of the node 20 to which entry 53 corresponds. The fourth word 60 contains a link number identifying the LAN on which the node resides. Each LAN 16, 17 which is directly connected to bridge 10 is assigned a unique link number. If the node 20 is known to reside on one such LAN 16, 17 the corresponding link number is stored in word 60. Similarly, each channel 8 (Fig. la) of communication network 18 is assigned a unique link number. If the node 20 is known to be connected to a bridge 10 associated with that channel 8, that channel's link number is stored in word 60.
Packet filter 118 determines whether the destination and source nodes identified in address fields 28, 30 reside on the same LAN 16 by searching table memory 124 for entries 53 corresponding to these addresses and comparing the entries' link numbers. To expedite searching table memory 124, entries 53 are arranged in linked lists referred to as "buckets". Each bucket contains entries for all nodes whose lower eleven address bits (i.e., address bits 0-10) are identical. Thus to find an entry in the table, the filter simply selects the appropriate bucket and searches that bucket. Since a bucket has far fewer entries than the entire table memory 124, this scheme drastically reduces the number of entries which must be examined to find an entry. Referring also to Figs. 6-8, state control machine 126 in packet filter 118 controls the search through a bucket. As the destination and source address fields 28, 30 arrive, address capture circuitry 128 copies the fields for later retrieval by the state control machine. State control machine 126 monitors the digital data stream Dg. Once the destination address field 28 has arrived, state control machine 126 instructs (step 1) an address capture circuit 128 to provide the lower eleven address bits of the destination address field to the inputs of latch 130. State machine 126 next asserts (step 2) control signal Cl to clock the eleven bits into latch 130 and control signal C2 to apply these bits as bucket address bits BA2~BA12 to register 132. The lower two bucket address bits BAQ-BA^^ are driven low by latch 130 since the corresponding latch inputs are hardwired to zero. By asserting control signal C3 (step 3) , these address bits are then loaded into register 132 to drive address bits A2-A14 of table memory 124. These thirteen bits A2-A14 thus select the bucket corresponding to the destination address of the incoming packet. The state machine 126 selects the words 54, 56, 58 and 60 in each entry by sequencing lower two address bits AQ, Aχ. Thus destination address bits 32-47 of the first entry in the bucket are selected (step 4) by making bits AQ, Aχ both logic zeros. In response, the table memory 124 provides the most significant 16 address bits of the first bucket entry to input 144 of a comparator 134. State control machine 126 next instructs (step 5) address capture circuitry 128 to supply the most significant 16 address bits (bits 32-47) of the destination address field of the incoming packet to input 146 of comparator 134. State control machine 126 then examines (step 6) the output signal "compare" from comparator 134 to determine if comparator inputs 144,146 match. If theses inputs match, the controller repeats steps 5 - 6 for destination address words 56(bits 16-31) and 58 (bits 1-15) by (see step 7), fetching each address word 54, 56 of the first entry 53 in the bucket by toggling bits A0, Aχ (step 8) , and comparing them against the corresponding bits 16-31, 0-15 of 5destination address field 28.
If any of the address words fail to match, the control state machine 126 first determines (step 9) whether it has reached the end of the bucket. If not, it removes (step 10) control signal C2 to disable the outputs of latch
10130 and asserts control signal CE to enable the link pointer memory 125. Each location in link pointer memory 125 contains an address pointer identifying the next entry 53 of a given bucket in table memory 124. In response to address bits A2-A14 (which identify the present entry 53 in the
15 bucket) link pointer table 125 provides an address on bits BA0 - BA12 which identifies the next entry 53 in the bucket. While link pointer table 125 asserts the address for the next entry 53, state control machine 126 again asserts (step 11) control signal C3 to load the thirteen bit address of
20 the next entry into register 132. Once register 132 is loaded with the new address, link pointer table 125 is again disabled. Control state machine 126 then returns (step 12) to step 4 and repeats the above steps to check the destination address against the newly selected entry 53 in
25 the bucket. In this manner, the bucket (which is essentially a list of addresses linked by pointer table 125) is searched until an entry is found which corresponds to the destination address 28 of the incoming packet or until the end of the bucket is reached. If the end of the bucket is
30 reached without finding a destination address that is stored in table 124, the filter allows LANCE 114 to store packet 22 in memory 116 for transmission over WAN 114. However, the state control machine still proceeds to search for an entry corresponding to the source address (Steps 9.1, 9.2), since, as described below, the filter needs to determine if the source address should be added to the table. If the end of 5 the bucket is reached while searching for a source address, state control machine 126 allows LANCE 114 to store the packet and notify processor 120 (step 13) . However, it also sets (step 13) a flag to notify processor 120 that the table lacks an entry for the source node. When responding to the 10 LANCE 114's interrupt, processor 120 will then update the table.
If a table memory entry 53 is found corresponding to the destination address (step 14) , the state control machine 126 asserts logic l's (step 15) on address bits AQ/ A. to 15 select the word 60 of the entry which contains the LAN link number. State control machine 126 then asserts control signal C4 to load the link number into register 136. Once the link number is loaded, state control machine 126 removes control signal CE to disable the link pointer memory 125. 20 it then repeats the search process for the source address identified in the incoming packet, which has been stored in address capture circuit 128. State control machine 126 instructs (step 17) address capture circuitry 128 to provide the low order eleven bits of the source address to latch 25130. It then returns (step 18) to repeat the above described search, this time searching for an entry 53 corresponding to the source address. If an entry is found, control machine 126 changes (step 19) address bits AQ, Aχ to cause table memory 124 to provide the word 60 of the entry 3053 containing the link number to comparator input 144.
State machine 126 then asserts (step 20) control signal C5 to cause register 136 to provide the link number of the destination address to comparator input 146. By examining (step 21) the "compare" signal from comparator 134, state control machine 126 determines whether the link numbers match. If the link numbers match, there is no need to continue receiving packet 22 because both the source and destination nodes 20 reside on the same LAN (i.e., the packet transmission is "local") . Accordingly, state control machine asserts simulated collision signal Cm , thereby instructing (step 22) LANCE 114 to abort receipt of packet 22. Otherwise, state control machine 126 simply allows
(step 23) LANCE 114 to fully receive and store packet 22 and notify processor of the arrival of packet 22.
To abort the receipt of a local packet transmission, packet filter 118 utilizes a feature of LANCE 114 used to abort receipt of packets which arrive during a "collision" (i.e., while two or more nodes are interfering with each other's transmissions). For example, in a LAN conforming to I.E.E.E. 802.3 protocol, nodes 20 take turns transmitting their packets over communication link 12. If link 12 appears idle, any node 20 having a packet for transmission will begin sending its packet over the link. Accordingly, two or more nodes may begin transmitting simultaneously, causing a "collision". Interface circuitry 112, in addition to providing data stream Ds, monitors communication link 12 for collisions. Upon detecting a collision, interface circuitry 112 immediately notifies LANCE 114 by asserting a collision signal CΛ . LANCE 114 aborts the receipt of packet 22 and discards any portion of packet 22 received so far.
Referring to Fig. 3, bridge 10 uses this feature of LANCE 114 to abort receipt of a local packet transmission by asserting simulated collision signal Cβ. The simulated collision signal Cs and the actual collision signal C are applied to the inputs of an OR gate 140. The OR gate thus notifies LANCE 114 of a collision when either an actual or a simulated collision occurs. Because an actual collision has not occurred and only the internal LANCE 114 of a bridge 10 is notified of a simulated collision, all other nodes 20 on LAN 16, 17 continue receiving the local transmission without interruption. However, because LANCE 114 believes a collision has occurred, it discards packet 22 without interrupting the processor 120. Thus memory 116 and processing resources are conserved.
Referring to Fig. 2, according to I.E.E.E. 802.3 protocol, actual collisions should occur only in a specified time frame (i.e., a "collision window") which commences immediately following start frame delimiter field 26 of a data packet transmission. This time frame is exactly 51.2 microseconds and coincides with the round trip delay time of the data signal propagating down the longest allowable link length (i.e., 500 meters). LANCE 114 circuitry records the amount of time which elapses from the receipt of a start frame delimiter 26 to the receipt of a collision signal. If the collision signal arrives more than 51.2 microseconds after start frame delimiter 26, LANCE 114 notifies the processor of an error.
Accordingly, packet filter 118 decides within this 51.2 microsecond collision window whether to abort receipt. The destination and source address fields arrive in the first 9.6 microseconds of the collision window. This leaves 41.6 microseconds in which to search table memory 124 and decide whether the transmission is local or remote. To expedite the search, state control machine 126 commences searching for an entry corresponding to destination field 28 before source address field 30 has arrived. Further, as explained above, because of the bucket arrangement provided by table memory 124 and link pointer table 125, state control circuitry 126 need only search a limited number of entries in the bucket rather than the entire contents of table memory 124. State control machine 126 includes an internal timer 142 for recording the amount of time that has elapsed in the collision window. If 51.2 microseconds elapse, state machine 126 terminates its search and will not issue a simulated collision. Thus, even if the search would have subsequently revealed that both nodes are on the same network, packet 22 is fully loaded into memory and the processor is notified of the arrival of the packet. However, in processing the received packet 20, processor 120 may decide not to forward packet 20. The above describes the manner in which the bridge decides whether to transfer a packet from an associated LAN 16. However, packets arriving over a given channel 8 of communication network 18 are fully stored in memory 116 by WAN interface 122 before the destination and source addresses are examined. Once the packet is stored, the state control machine 126 instructs a WAN address capture circuitry 150 to fetch the destination and source addresses for comparison in the same manner as performed with packets from LAN 16. Nodes 20 may occasionally be added to or deleted from any LAN throughout the wide area network 14. Accordingly, when a bridge 10 first receives a packet from a newly added node 20, the bridge's filter 118 will not find a table memory entry 53 corresponding to the source address field 30. Upon determining that table memory 124 lacks an entry, the bridge 10 notifies the processor 120. Processor 120 proceeds to update table memory 124 with an entry 53 corresponding to the new node 20 sing the link number of the LAN (or of the channel 8 of communication network 18) from which packet 22 arrived, and the address from source address field 20 of that packet.
Further, if bridge 10 fails to receive a packet 22 5 from a given node 20 for a long time, it assumes the node has been removed from the system. Accordingly, the processor 120 deletes the table memory entry 53 corresponding to the removed node.
Referring to Fig. 3, processor interface circuitry 10 148 allows the processor to access the contents of table memory 124 to perform such table memory updates and to access other status information. This involves coordinating processor accesses to the table memory with accesses by the state control circuitry 126 during a normal table memory 5 search.
Other embodiments are within the following claims. For example, timer 142 can be set to timeout if a fraction (such as less than one half) of the collision window is exceeded before the simulated collision signal is o generated. One useful fractional time period has been found to be about 22 microseconds. In this way, if filter 118 is processing a packet receive, e.g., over WAN 14 when a new packet arrives on LAN 16, filter 118 is allocated a time schedule (e.g., 22 microseconds) sufficient to permit it to 5 finish filtering the packet from WAN 14 and filter the new packet from the LAN long before the expiration of the 51.2 microsecond window for the new packet.

Claims

CLAIMS . 1. In a communications system of the kind in which data transmissions are sent between a plurality of nodes that are arranged in a plurality of networks, a bridge for receiving and selectively passing data transmissions from one of said networks to another one of said networks, comprising circuitry for determining, while a data transmission is being received from said one network, whether said data transmission should not be passed to said other network, and circuitry for terminating reception of said data transmission if said data transmission should not be passed to said other network.
2. The bridge of claim 1 wherein said bridge includes a processor for processing data transmissions that are received by said bridge, the determination of whether said data transmission should not be passed to said other network being made without the use of said processor.
3. The bridge of claim 1 wherein said bridge includes a processor for processing data transmissions that are received by said bridge, the termination of reception of said data transmission occurring without the use of said processor.
4. The bridge of claim 1 wherein said determining and said terminating occur before the data transmission is completely received.
5. The bridge of claim l further comprising circuitry for temporarily storing received data transmissions in memory, said storing circuitry storing newly received data transmissions over stored portions, of earlier received data transmissions that are not to be passed to said other network.
6. The bridge of claim 1 wherein said system is of the kind in which reception of data transmissions by a node is interrupted if an error occurs in the data transmission, said circuitry for terminating simulating said error if said data transmission should not be passed to said other network.
7. The bridge of claim 1 wherein said error is ignored if it does not occur within a predetermined time interval, said circuitry for determining monitoring said time interval and refraining from simulating said error if said predetermined time interval has elapsed, even if said data transmission should not be passed to said other network.
8. The bridge of claim 1 wherein at least one of said networks served by said bridge is of a kind in which reception of data transmissions by a node on said network is interrupted if a collision between data transmissions occurs on the network, said circuitry for terminating simulating said collision if said data transmission should not be passed to said other network.
9. The bridge of claim 8 wherein said collision is ignored if it does not occur within a predetermined time interval, said circuitry for determining monitoring said time interval and refraining from simulating said collision if a predetermined fraction of said predetermined time interval has elapsed, even if said data transmission should not be passed to said other network.
10. The bridge of claim 9 wherein said predetermined fraction is the entire predetermined time interval.
11. The bridge of claim 9 wherein said predetermined fraction is less than half of the predetermined time interval.
12. The bridge of claim 1 wherein said bridge sends data transmissions to said other network over a dedicated physical link.
13. The bridge of claim 1 wherein said bridge sends data transmissions to said other network via a time multiplexed channel on a communications link that is shared by a plurality of like bridges.
14. The bridge of claim 1 wherein at least some of said networks are local area networks and said system is a wide area network.
15. The bridge of claim 1 wherein said data transmission identifies source and destination nodes for said data transmission, said bridge comprising storage for a plurality of entries each of which identifies one of said nodes.
16. The bridge of claim 15 wherein said determining circuitry comprises circuitry for searching said storage for entries that correspond to said destination node and to said source node and comparing said entries to determine whether said data transmission should not be passed to said other network.
17. The bridge of claim 16 wherein said entries respectively identify the network which includes said destination node and the network which includes said source node, said circuitry for searching comparing said identified networks and determining that said data transmission should not be passed to said other network if said identified networks are the same.
18. The bridge of claim 16 wherein said nodes each have a unique address, said entries being arranged in groups in said storage, each group including entries that correspond to nodes that have addresses within a predetermined set of addresses.
19. The bridge of claim 18 wherein each said address includes a predetermined number of bits, said set of addresses each being defined by a subset of said predetermined number of bits.
20. The bridge of claim 18 wherein said storage is searched for the entry that corresponds to said destination node by determining the group of entries which includes said entry and searching only said group of entries.
21. The bridge of claim 18 wherein said storage is searched for the entry that corresponds to said source node by determining the group of entries which includes said entry and searching only said group of entries.
22. The bridge of claim 20- or 21 wherein each said group comprises a linked list of said entries and said group is searched by traversing said linked list.
23. The bridge of claim 22 wherein each node has a unique address and each said entry comprises a plurality of fields that include portions of said address, said circuitry for searching comparing the address portions in said fields with a corresponding portions of the address of a node identified by said data transmission to find the entry that corresponds to the node identi ied by said data transmission.
24. The bridge of claim 23 wherein said circuitry for searching compares the address portion in a subsequent field of an entry if the compared address portions in the previous field of the entry matched, and proceeds to the next entry in the group if the compared address portions did not match.
25. The bridge of claim 16 wherein said circuitry for determining determines that said data transmission should be passed to said other network if said circuitry for searching is unable to locate an entry for at least one of said source node or said destination node in said storage.
26. The bridge of claim 25 further comprising a processor for processing data transmissions that are received by said bridge, said processor adding an entry to said storage for a node that was not located by said circuitry for searching.
27. In a communications system of the kind in which data transmissions are sent between a plurality of nodes that are arranged in a plurality of networks, a method for receiving and selectively passing data transmissions from one of said networks to another one of said networks via a bridge, comprising determining, while a data transmission is being received from said one network, whether said data transmission should not be passed to said other network, and terminating reception of said data transmission if said data transmission should not be passed to said other network.
28. The method of claim 27 wherein said bridge includes a processor for processing data transmissions that are received by said bridge, the determination of whether said data transmission should not be passed to said other network being made without the use of said processor.
29. The method of claim 27 wherein said bridge includes a processor for processing data transmissions that are received by said bridge, the termination of reception of said data transmission occurring without the use of said processor.
30. The bridge of claim 27 wherein said determining and said terminating occur before the data transmission is completely received.
31. The method of claim 27 further comprising temporarily storing received data transmissions in memory, said storing occurring such that newly received data transmissions are stored over stored portions of earlier received data transmissions that are not to be passed to said other network.
32. The method of claim 27 wherein said system is of the kind in which reception of data transmissions by a node is interrupted if an error occurs in the data transmission, said terminating including simulating said error if said data transmission should not be passed to said other network.
33. The method of claim 27 wherein said error is ignored if it does not occur within a predetermined time interval, said determining including monitoring said time interval and refraining from simulating said error if said predetermined time interval has elapsed, even if said data transmission should not be passed to said other network.
34. The method of claim 27 wherein at least one of said networks served by said bridge is of a kind in which reception of data transmissions by a node on said network is interrupted if a collision between data transmissions occurs on the network, said terminating including simulating said collision if said data transmission should not be passed to said other network.
35. The method of claim 34 wherein said collision is ignored if it does not occur within a predetermined time interval, said determining including monitoring said time interval and refraining from simulating said collision if a Predetermined fraction of said predetermined time interval has elapsed, even if said data transmission should not be passed to said other network.
36. The method of claim 35 wherein said predetermined fraction is the entire predetermined time interval.
37. The method of claim 35 wherein said predetermined fraction is less than half of the predetermined time interval.
38. The method of claim 27 wherein said bridge sends data transmissions to said other network over a dedicated physical link.
39. The method of claim 27 wherein said bridge sends data transmissions to said other network via a time mutliplexed channel on a communications link that is shared by a plurality of like bridges.
40. The method of claim 27 wherein at least some of said networks are local area networks and said system is a wide area network.
41. The method of claim 27 wherein said data transmission identifies source and destination nodes for said data transmission, further comprising storing a plurality of entries each of which identifies one of said nodes.
42. The method of claim 41 wherein said determining circuitry includes searching said storage for entries that correspond to said destination node and to said source node and comparing said entries to determine whether said data transmission should not be passed to said other network.
43. The method of claim 42 wherein said entries respectively identify the network which includes said destination node and the network which includes said source node, said searching further comprising comparing said identified networks and determining that said data transmission should not be passed to said other network if said identified networks are the same.
44. The method of claim 42 wherein said nodes each have a unique address, said entries being arranged in groups in said storage, each group including entries that correspond to nodes that have addresses within a predetermined set of addresses.
45. The method of claim 44 wherein each said address includes a predetermined number of bits, said set of addresses each being defined by a subset of said predetermined number of bits.
46. The method of claim 44 wherein said storage is searched for the entry that corresponds to said destination node, by determining the group of entries which includes said entry and searching only said group of entries.
47. The method of claim 44 wherein said storage is searched for the entry that corresponds to said source node by determining the group of entries which includes said entry and searching only said group of entries.
48. The method of claim 46 or 47 wherein each said group comprises a linked list of said entries and said group is searched by traversing said linked list.
49. The method of claim 48 wherein each node has a unique address and each said entry comprises a plurality of fields that include portions of said address, said searching further comprising comparing the address portions in said fields with a corresponding portions of the address of a node identified by said data transmission to find the entry that corresponds to the node identified by said data t ansmission.
50. The method of claim 49 wherein said searching further comprises comparing the address portion in a subsequent field of an entry if the compared address portions in the previous field of the entry matched, and proceeding to the next entry in the group if the compared address portions did not match.
51. The method of claim 42 wherein said determining further comprises determining that said data transmission should be passed to said other network if said circuitry for searching is unable to locate an entry for at least one of said source node or said destination node in said storage.
52. The method of claim 51 further comprising adding an entry to said storage for a node that was not located by said circuitry for searching.
PCT/US1990/007003 1989-12-04 1990-11-30 Packet filter for bridge between networks WO1991008627A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US44554189A 1989-12-04 1989-12-04
US445,541 1989-12-04

Publications (1)

Publication Number Publication Date
WO1991008627A1 true WO1991008627A1 (en) 1991-06-13

Family

ID=23769318

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1990/007003 WO1991008627A1 (en) 1989-12-04 1990-11-30 Packet filter for bridge between networks

Country Status (2)

Country Link
AU (1) AU6956291A (en)
WO (1) WO1991008627A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0558234A1 (en) * 1992-02-24 1993-09-01 Advanced Micro Devices, Inc. Ethernet media access controller with external address detection interface
US5430728A (en) * 1992-12-10 1995-07-04 Northern Telecom Limited Single-route broadcast for LAN interconnection
WO1998047310A1 (en) * 1997-04-17 1998-10-22 Ericsson, Inc. Network interface with adaptive bridge for efficient mapping of ethernets over an atm-based broadband access network
AU765091B2 (en) * 1998-03-06 2003-09-11 Sony Corporation Network system
USRE39494E1 (en) * 1992-02-27 2007-02-27 Intervet Inc. Inactivated mycoplasma hyopneumoniae and uses therefor

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2667465A1 (en) * 1990-09-27 1992-04-03 Cit Alcatel BRIDGE FOR CONNECTING A LOCAL AREA NETWORK, COMPLIANT WITH THE IEEE 802.3 STANDARD, TO A TELECOMMUNICATION NETWORK WITH ASYNCHRONOUS TEMPORAL TECHNIQUE.

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4769814A (en) * 1986-04-28 1988-09-06 International Business Machines Corp. Method for establishing a limited broadcast path within an interconnected network
US4811009A (en) * 1985-04-24 1989-03-07 Hitachi, Ltd. Transmission control system
US4928274A (en) * 1988-01-19 1990-05-22 Qualcomm, Inc. Multiplexed address control in a TDM communication system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4811009A (en) * 1985-04-24 1989-03-07 Hitachi, Ltd. Transmission control system
US4769814A (en) * 1986-04-28 1988-09-06 International Business Machines Corp. Method for establishing a limited broadcast path within an interconnected network
US4928274A (en) * 1988-01-19 1990-05-22 Qualcomm, Inc. Multiplexed address control in a TDM communication system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DATA COMMUNICATIONS, 21 September 1989, (RICHARD BOULE et al.), "Inside Routers: A Technology Guide for Network Builders", see page 60. *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0558234A1 (en) * 1992-02-24 1993-09-01 Advanced Micro Devices, Inc. Ethernet media access controller with external address detection interface
US5305321A (en) * 1992-02-24 1994-04-19 Advanced Micro Devices Ethernet media access controller with external address detection interface and associated method
USRE39494E1 (en) * 1992-02-27 2007-02-27 Intervet Inc. Inactivated mycoplasma hyopneumoniae and uses therefor
US5430728A (en) * 1992-12-10 1995-07-04 Northern Telecom Limited Single-route broadcast for LAN interconnection
WO1998047310A1 (en) * 1997-04-17 1998-10-22 Ericsson, Inc. Network interface with adaptive bridge for efficient mapping of ethernets over an atm-based broadband access network
AU765091B2 (en) * 1998-03-06 2003-09-11 Sony Corporation Network system

Also Published As

Publication number Publication date
AU6956291A (en) 1991-06-26

Similar Documents

Publication Publication Date Title
EP0147644B1 (en) Token ring with secondary transmit opportunities
EP0590464B1 (en) Packet communications network
US4726018A (en) Method of providing priority access to a transmission communication ring
EP0083632B1 (en) Idle time slot seizure and transmission facilities for loop communication system
US6680903B1 (en) Network system, network terminal, and method for specifying location of failure in network system
EP0558234B1 (en) Ethernet media access controller with external address detection interface
EP0422914B1 (en) Station-to-station full duplex communication in a communications network
US5631905A (en) Communications network control method
US5251203A (en) Hub privacy filter for active star CSMA/CD network
EP0146831B1 (en) Message stripping protocol for a ring communication network
EP1128612A2 (en) Transmission of high-priority, real-time traffic on low-speed communications links
EP0089159A1 (en) Timed token ring with multiple priorities
KR19990021934A (en) 802.3 Media Access Control and Associated Signal Scheme for Dual Ethernet
US5568613A (en) Dataframe bridge filter with communication node recordkeeping
CA1302540C (en) Method and apparatus for nodes in network to avoid shrinkage of an interframe gap
JPH03205936A (en) Communication ring together with transmitting method of packet on communication ring and node device
EP0281757B1 (en) Message transfer system and method
US4682326A (en) Method and apparatus for maintaining a dynamic logical ring in a token passing lan
US4769814A (en) Method for establishing a limited broadcast path within an interconnected network
EP0111277B1 (en) Loop network system controlled by a simple clock station
WO1991008627A1 (en) Packet filter for bridge between networks
KR100259082B1 (en) Method for determining priority in network traffic
CA2371037C (en) A node and method for the removal of expired packets from a communication network
US6064654A (en) Internet facsimile timing technique
JPH03159436A (en) Token passing system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AU CA JP

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IT LU NL SE

NENP Non-entry into the national phase

Ref country code: CA