TITLE OF THE INVENTION
DEVICE AND METHOD TO IMPLEMENT A SIMPLIFIED NON- GLOBAL FAIRNESS SCHEME IN A SHARED ACCESS TOPOLOGY
This application claims priority from U.S. Provisional Application Serial No. 60/372,161, filed April 15, 2002. The entirety of that provisional application is incorporated herein by reference.
BACKGROUND OF THE INVENTION Field of the Invention
The present invention generally relates to data networks and more particularly to devices and methods for ensuring fair access to ring bandwidth when data networking devices are connected in a ring topology and a guaranteed bandwidth or priority option is not supported.
Related Art
Ethernet technology in a shared media is based on a collision detection protocol. In the event that a node needs to transmit a packet, it waits for an idle time on media before starting to send a packet. In the event that another node has started to send its data at the same time, a packet collision occurs and both transmitting nodes stop transmitting. These nodes will go idle for short time and then try to retransmit again. In a scenario where there is a high utilization of the link, overall performance drops.
An improvement on this shared media topology is the conversion to a ring topology. In a ring topology, all data traffic shares the same media, but each node on the ring is responsible for receiving data from one neighbor, via a ring interface and transmitting to the other neighbor, via the second ring interface. (In a ring, each node only has two neighbors.) To optimize throughput, each node will forward data
received on an input ring interface to an output ring interface before adding new data on the ring which originates on the node.
The problem which occurs is that, sometimes, the input ring interface may be maximally loaded and the node may never have an opportunity to add new data. In this case, it is said that this node does not have fair access to the ring bandwidth.
Therefore, what is needed is a device, method, system and computer program product for implementing a simplified non-global fairness schema in such a shared access topology.
SUMMARY OF THE INVENTION The present invention meets the above-identified needs by providing a device, method, system and computer program product for implementing a simplified non-global fairness schema in a shared access topology.
More specifically, the present invention consists of a device, a method, a system and a computer program product for distributing bandwidth management amongst individual nodes on a ring, without the need for a centralized management function. The present invention assures that all nodes on the ring will fairly receive a minimum amount of bandwidth in the presence of a single node (or multiple nodes) on a ring transmitting at the maximum line rate of the ring.
In an embodiment, the device of the present invention is connected to a ring network and includes means for transmitting a packet of data, wherein the packet of data includes a header that has a first field and a second field, means for setting the first field and resetting the second field to the number of devices in the ring network when fair access to the ring network is not being provided and means for decrementing the second field upon receipt of a packet of data, wherein the packet of data is removed from the ring network if the second field is equal to zero. In alternate embodiments, the device of the present invention also includes means for removing the packet of data from the ring network when the device is designated as the destination of the packet of data. In yet another embodiment, the device of the present invention also includes means for re-transmitting the packet of data onto the ring
network when the first field is set, regardless of whether the device is designated as the destination of the packet of data.
In an embodiment, the method and computer program product of the present invention for allowing a node within a ring topology to gain access to the ring includes the step of transmitting a first packet onto the ring by a first node in the ring, wherein the first packet has a header that includes a first field and a second field, and the first node sets the first field to a first value and the second field to the number of nodes in the ring. Next, the first packet is received by a second node in the ring, wherein the second node sets the first field to a second value and resets the second field equal to the number of nodes in the ring. The method and computer program product of the present invention further includes the steps of transmitting the first packet onto the ring by the second node, and receiving the first packet by the second node after the packet has been propagated around the ring, wherein the second field is decremented by each node in the ring. The first packet is eventually removed from the ring when the second field equals zero and a second packet is transmitted in its place onto the ring.
An advantage of the present invention is that it may be implemented in packet ring networks, Optical Ethernet rings, Fiber Channel Rings, and the like.
Another advantage of the present invention is that it may be implemented in dedicated hardware or as part of a network processor.
Further features and advantages of the invention as well as the structure and operation of various embodiments of the present invention are described in detail below with reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE FIGURES The features and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings in which like reference numbers indicate identical or functionally similar elements. Additionally, the left-most digit of a reference number identifies the drawing in which the reference number first appears.
Figure 1 is a block diagram illustrating a unidirectional ring communications system in which the present invention may be implemented according to one embodiment;
Figure 2 is a block diagram illustrating a packet header, according to an embodiment of the present invention, that is attached to each packet inserted on the ring communications system;
Figure 3 is a block diagram illustrating the unidirectional ring communications system of Figure 1 and highlighting the operation of the present invention in such an embodiment; and Figure 4 is a block diagram of an exemplary computer system useful for implementing the present invention.
DETAILED DESCRIPTION
Reference will now be made in detail to an implementation of the present invention as illustrated in the accompanying drawings. The present invention relates to a device, method, system and computer program product for implementing a simplified non-global fairness schema in a shared access topology.
Referring to Figure 1, a block diagram illustrating a unidirectional ring communications system 100 in which the present invention may operate in an embodiment is shown. As shown in Figure 1, ring 100 contains six add/drop nodes
(i.e., Nodes 1-6). The bandwidth around ring 100 is limited to 2.5Gb/s as determined by the physical interfaces of the nodes.
Within ring 100, a traffic flow from node 4 to node 1 is depicted. The bandwidth of this flow is equal to the bandwidtli of ring 100. Because packets which are already in flow on ring 100 are always passed through intermediate nodes at highest priority, the potential to deny access to ring bandwidth occurs on intermediate nodes. For example, node 5 and node 6 would be denied access to ring 100 because they are intermediate nodes in the flow from node 4 to node 1.
The present invention is now described in terms of the above example. This is for convenience only and is not intended to limit the application of the present invention. In fact, after reading the following description, it will be apparent to one skilled in the relevant art(s) how to implement the following invention in alternative embodiments (e.g., rings having different number of add/drop nodes, flows, available band width, etc.).
The present invention allows a node that is being denied access to obtain access by setting a bit within a packet header. Referring to Figure 2, a header 200 which in an embodiment is attached to each packet that is inserted on ring 100 is shown. In such an embodiment, two fields are defined.
The first field is designated as a "Time to Live" (TTL) field 202. The node which originates the packet on ring 100 will set the TTL field equal to total the number of nodes on the ring (e.g., the value "6" as six nodes are shown in Figure 1). During the packets flow, each intermediate node and the destination node will decrement the value of the TTL field 202 by one. Normally, one node on ring 100
(i.e., the destination node) will remove the packet from the ring. However, in the unlikely case that there is no destination node, the packet will propagate around ring 100. In such a case, using TTL field 202 of the present invention, when the packet returns to the originating node, the value of the TTL field 202 will be reduced to zero and the packet will then be removed from ring 100.
The second field designated in packet header 200 is a "Fairness Enable" (FE) bit 204. Any node that is being denied access to ring 100 can set FE bit 204. When set, the node for which the packet is destined shall understand that the packet is to be copied from ring 100 and also forwarded back onto ring 100. Additionally, the node which sets FE bit 204 shall reset the value of TTL field 202 to equal to the total number of nodes in the ring. Once FE bit 204 and TTL field 202 are set by one node, other nodes on ring 100 may only decrement the value of the TTL field 202. As shown in the example below, this allows a node that has been denied access to propagate a packet around ring 100 so it can eventually be removed by this same node; thus freeing up bandwidth so this node can place its own data onto ring 100.
As will be appreciated by those skilled in the relevant art(s), the remaining portion 206 of packet header 200 may contain any other defined fields or any other (e.g., Ethernet) packet header information normally included in the type of packets that flow through ring 100. Referring now to Figure 3, a block diagram illustrating unidirectional ring communications system 100 and highlighting the operation of the present invention in an embodiment is shown. Again, traffic flow from node 4 to node 1 utilizes the entire bandwidth between these two nodes. Node 6 has a data flow destined for node 2, but it is blocked from accessing ring bandwidth because of the data flow from node 5 to node 1.
In this example case, node 6 will set FE bit 204 and reset the value of TTL field 202 of the packet header 200 that originated at node 4 to the value "6" (i.e., the total number of nodes in ring 100). Because FE bit 204 has been set, Node 1 will copy the packet off of the ring for local processing and forward a copy, after decrementing the value of TTL field 202 to "5", back onto ring 100. Had FE bit 204 not been set, node 1 would have just copied the packet from ring 100. Node 2 and node 3 will forward the packet on ring 100 after decrementing the value of TTL field 202 to "4" and "3", respectively. Node 4 will receive the packet and decrement the value of TTL field 202 to "2". Because packets on ring 100 have higher priority than packets being added to the ring, Node 4 will give priority to this packet over its own data and forward the packet onto ring 100. Node 5 will then decrement the value of TTL field 202 to "1". When node 6 receives the packet, it will decrement the value of TTL field 202 to "0" and discard the packet. At this point, node 6 will be allowed to add a packet to the ring. In this way, node 6 will get fair access to the bandwidth available on ring 100.
Example Implementations
The present invention (or any part(s) or function(s) thereof) may be implemented using (dedicated) hardware, software or a combination thereof and may be implemented in one or more computer systems or other processing systems. In
fact, in one embodiment, the invention is directed toward one or more computer systems capable of carrying out the functionality described herein. An example of a computer system 400 is shown in Figure 4. The computer system 400 includes one or more processors, such as processor 404. The processor 404 is connected to a communication infrastructure 406 (e.g., a communications bus, cross-over bar, or network). Various software embodiments are described in terms of this exemplary computer system. After reading this description, it will become apparent to a person skilled in the relevant art(s) how to implement the invention using other computer systems and/or architectures. Computer system 400 can include a display interface 402 that forwards graphics, text, and other data from the communication infrastructure 406 (or from a frame buffer not shown) for display on the display unit 430.
Computer system 400 also includes a main memory 408, preferably random access memory (RAM), and may also include a secondary memory 410. The secondary memory 410 may include, for example, a hard disk drive 412 and/or a removable storage drive 414, representing a floppy disk drive, a magnetic tape drive, an optical disk drive, etc. The removable storage drive 414 reads from and/or writes to a removable storage unit 418 in a well known manner. Removable storage unit 418, represents a floppy disk, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive 414. As will be appreciated, the removable storage unit 418 includes a computer usable storage medium having stored therein computer software and/or data.
In alternative embodiments, secondary memory 410 may include other similar devices for allowing computer programs or other instructions to be loaded into computer system 400. Such devices may include, for example, a removable storage unit 422 and an interface 420. Examples of such may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an erasable programmable read only memory (EPROM), or programmable read only memory (PROM)) and associated socket, and otlier removable storage units 422 and interfaces 420, which allow software and data to be
transferred from the removable storage unit 422 to computer system 400.
Computer system 400 may also include a communications interface 424. Communications interface 424 allows software and data to be transferred between computer system 400 and external devices. Examples of communications interface 424 may include a modem, a network interface (such as an Ethernet card), a communications port, a Personal Computer Memory Card International Association (PCMCIA) slot and card, etc. Software and data transferred via communications interface 424 are in the form of signals 428 which may be electronic, electromagnetic, optical or other signals capable of being received by communications interface 424. These signals 428 are provided to communications interface 424 via a communications path (e.g., channel) 426. This channel 426 carries signals 428 and may be implemented using wire or cable, fiber optics, a telephone line, a cellular link, an radio frequency (RF) link and other communications channels.
In this document, the terms "computer program medium" and "computer usable medium" are used to generally refer to media such as removable storage drive
414, a hard disk installed in hard disk drive 412, and signals 428. These computer program products provide software to computer system 400. The invention is directed to such computer program products.
Computer programs (also referred to as computer control logic) are stored in main memory 408 and/or secondary memory 410. Computer programs may also be received via communications interface 424. Such computer programs, when executed, enable the computer system 400 to perform the features of the present invention, as discussed herein. In particular, the computer programs, when executed, enable the processor 404 to perform the features of the present invention. Accordingly, such computer programs represent controllers of the computer system 400.
In an embodiment where the invention is implemented using software, the software may be stored in a computer program product and loaded into computer system 400 using removable storage drive 414, hard drive 412 or communications interface 424. The control logic (software), when executed by the processor 404, causes the processor 404 to perform the functions of the invention as described herein.
In another embodiment, the invention is implemented primarily in hardware using, for example, hardware components such as application specific integrated circuits (ASICs). Implementation of the hardware state machine so as to perform the functions described herein will be apparent to persons skilled in the relevant art(s). In yet another embodiment, the invention is implemented using a combination of both hardware and software.
Conclusion
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example, and not limitation. It will be apparent to persons skilled in the relevant art(s) that various changes in form and detail can be made therein without departing from the spirit and scope of the invention. Thus, the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.