The invention is based on a priority application EP05290117.0 which is hereby incorporated by reference.
The present invention is concerned with a method for routing data traffic in a network which comprises a plurality of nodes and a plurality of data lines by which the nodes are connected to each other.
In the context of the present application, a data line is a point-to-point data transport resources that extends from one node to another without passing through intermediate nodes, and two nodes are referred to as adjacent if there is a data line that extends from one of them to the other.
In such a network, each node must be able to communicate with any other node, but the rate at which data are exchanged between two nodes may vary widely from one pair to another. In order to communicate, the node pairs must have bandwidth of the data lines assigned to traffic connections between them. This bandwidth is conventionally managed in a network in the form of discrete units, wherein one unit is either assigned entirely to a given node pair or is not assigned at all. Such units may e.g. be a time slot, if the data lines operate on a TDMA basis, a carrier frequency in a WDM data line etc. In particular, in fibre optical communication systems, a carrier wavelength is often the smallest unit to be managed.
In order to keep the processing effort involved with management of the traffic connections as low as possible, it would be desirable to assign only a small number of large bandwidth units. If this is done, the efficiency of the network will be rather low, because if the data traffic of a given node pair does not fill the entire bandwidth unit assigned to this pair, the idle portion of the bandwidth can not be used for communication between other nodes which may have data to transmit. On the other hand, if the bandwidth units are made small in order to increase the capacity utilisation of the data lines, the amount of management processing increases. Further, since management of the resources of the network requires signalisation between the nodes, the bandwidth available for transmission of payload data decreases.
A way out of this dilemma has been suggested in EP 1 349 416 A1. In this document, it is suggested to form a group of interconnected nodes in a network, to assign a certain amount of bandwidth units to this group, and to handle the assigned bandwidth as a generalized bus. According to this prior art method, the bus has one receiver node, and all other nodes are transmitter nodes which share the bandwidth of the bus for sending data to the receiver node. A bus, in the context of this prior art, is not necessarily a hardware structure but may be implemented by logical means alone. It may comprise only a small number of nodes in a potentially large network. These nodes are ranged on the bus in a daisy chain configuration, i.e. there is a first transmitter node at which the bus begins, and a receiver node where it ends, and data will be forwarded from the first transmitter node along a fixed path extending through all other transmitter nodes. Generally, the bus will only occupy a mall fraction of the bandwidth, e.g. a single carrier wavelength in case of wavelength division multiplex transmission, of the data lines that support it.
The concept of EP 1 349 416 A1 has been generalized to include buses where every node can be receiver and/or transmitter node. According to this generalized concept, payload data are transmitted on the bus accompanied by a hop count number indicating the number of nodes they have to pass on the bus before reaching the destination. At each intermediate node, the hop count number is decreased by one, and when it is zero, the receiver node is reached and the payload data are dropped. If two buses of this type are provided that extend through the same nodes in opposite directions, all these nodes can communicate bidirectionally with each other.
The object of the present invention is to provide a method for routing a bus in a multi-node network.
The object is achieved by a method as defined in claim 1. It is assumed here that the nodes which are desired to form part of the bus, because they have data to send or to receive, are defined in advance; they will be referred to in the following as terminal nodes in order to distinguish them from those nodes of the network that do not or at least not necessarily form part of the bus. The method comprises the steps of
Preferably, step a) comprises the steps of
Preferably, the terminal node pair set should comprise all possible combinations of two terminal nodes. In this way, the method always begins by selecting in step a) the terminal nodes which are farthest apart and tries to insert all other terminal nodes in between, so that there is a good chance that the path obtained after finishing step c) for the first time is the shortest possible one.
In step b), a node may be selected as the new node if it is adjacent to two mutually adjacent nodes of the path, and be inserted between these two mutually adjacent nodes. This method is appropriate if the percentage of terminal nodes in the network is high, i.e. if there is a high probability that any new node selected in this way is a terminal node itself.
If the percentage of terminal nodes is low, it may be more appropriate to select a node as the new node in step b) only if it is a terminal node.
In this latter case, step b) preferably comprises the steps of calculating the shortest bypass between two nodes which are adjacent to each other in the current path, and which bypath extends from one of the two adjacent nodes to the other via the selected new node, and of inserting the bypass between said two nodes.
In either case, when all terminal nodes have been included in the path, not every node is necessarily a terminal node, and it may be possible to reduce the length of the path without affecting its functionality. Therefore, further steps of
These additional steps may be carried out between steps c) and d) or after step d).
A given node may be determined to be removable in step f) if the path comprises a predecessor and a successor node of that given node, and if the predecessor and successor nodes are mutually adjacent.
If there are several consecutive nodes in the path which are not terminal nodes, it may be more efficient to check whether for a given non-terminal node there is a path section between a predecessor terminal node and a successor terminal node of the given node, which is shorter than the corresponding path section of the current path that extends via the given node, and to replace this path section of the current path by the shorter one.
The total bandwidth needed for accommodating all traffic connections between the terminal nodes may be more than the bandwidth supported by the obtained path. In this case, only some of said traffic connections are indeed assigned to the path, and for the remaining traffic connections, the procedure is repeated. Repetitions may be carried out until all traffic connections have been assigned to a path.
Further features and advantages of the invention will become apparent from the subsequent description of embodiments thereof referring to the appended drawings.
In
In a first step S1 (cf.
In the next step S5, it is checked whether all terminal nodes are part of the path. It is found that node G is not. The path selected in S4 is therefore not yet complete and will be referred to as a preliminary path. In order to obtain a bus that connects all terminal nodes, the preliminary path of
The stretching procedure is illustrated referring to
If e.g. node F is selected in S6, it is found in S7 that it is adjacent to nodes A and B. In such a case, the preliminary path is extended in step S8 by removing from it the data line connecting nodes A and B, and replacing this data line by node F and the two data lines connecting it to nodes A and B.
In a subsequent execution of the loop, it is found that node G can be inserted in a similar way between nodes C and D. In case of node I, there are two alternatives: either between nodes F and B or between B and C. In such a case, one of the two alternatives may be selected arbitrarily, or secondary criteria, such as the resulting path length in kilometres may be optimised. If existing traffic load on individual data lines is known, node I might also be connected to the preliminary path using those data lines where current traffic load is lowest.
The last node checked is H. It is not included in the path, because there are no two mutually adjacent nodes to which H is adjacent and between which it might be inserted.
The above method is effective because in the present example more than half of the nodes A to I of the network are terminal nodes and must therefore be included in the bus. If the number of terminal nodes is small with respect to the total number of nodes in the network, there is a risk that based on the above procedure the path will become far longer than necessary before all terminal nodes are incorporated in it. This problem can be avoided in two ways. The first is to carry out a re-contraction of the bus after having incorporated all terminal nodes in it; this procedure will be explained further below. The second is to modify the stretching procedure of steps S6 to S9 described above as follows: at first, a terminal node is selected which is not yet part of the preliminary path. Then, shortest path sections from this new terminal node to all terminal nodes of the candidate path are calculated, and based on these, for each pair of terminal nodes of the candidate path that have no other terminal node between them in the preliminary path, the path section length from the first terminal node of the pair to the new terminal node and from the new terminal node to the second node of the pair are added, and the distance between the nodes of the pair along the preliminary path is subtracted from the sum. The new node is inserted between those two terminal nodes for which the result is lowest.
When a bus has been determined in this way, traffic is routed on it by assigning traffic connections to it. This procedure is illustrated by
TC (AE)=6 Gbps
TC (AD)=1 Gbps
TC (FE)=1 Gbps
TC (AG)=3 Gbps
TC (FD)=4 Gbps
TC (IE)=1,5 Gbps
etc.
In the present example, the bus is assumed to have a constant bandwidth of 10 Gbps in every data line, but this is not a necessary limitation. To be more specific, in a WDM transmission infrastructure, a bus will usually be formed of one wavelength from the several wavelengths transmitted in one optical fibre, but it might comprise a higher number of wavelengths, if desired.
In step S11, the first traffic connection TC(A,E) of the list is selected, and is found in step S12 to fit into the bandwidth of every data line of the bus. Accordingly it is deleted from the list L2 (S13). In step S14, the procedure checks whether there are traffic connections in L2 that have not yet been processed. Since there are, the procedure returns to S11 to select the next traffic connection TC(A,D) from the list L2. TC(A,D) is found to fit into the available bandwidth, too. The same applies to the next traffic connection TC(FE).
Now the first of the remaining traffic connections is TC(A,G), the bandwidth of which is 3 Gbps. It is found in S12 to exceed the available bandwidth between nodes F and I and can therefore not be allocated. It is therefore left in the list, and the next connection TC(F,D) from the list is tried. It is found to exceed the available bandwidth in all data lines, so that it cannot be allocated either. The next traffic connection TC(I,E) fits into the bandwidth in each data line and can therefore be allocated.
Steps S11 to S14 are thus repeated until either all traffic connections of the list have been processed or the remaining bandwidth in of of the data lines of the bus is less than a minimum bandwidth of the traffic connections.
Due to the stretching method used for incorporating all terminal nodes in bus, it is quite probable that a bus found by the stretching method is not the shortest path which connects all terminal nodes in a given order. Therefore, before operating the bus, an attempt should be made to reduce its length. This is done in steps S20, S21 by checking for each node of the bus whether it is a terminal node, and, if not, checking in S22, S23 whether it has successor and predecessor nodes in the bus that are adjacent to each other. In the bus A,F,I,B,C,G,D,E of
If it is found in step S30 that all traffic connections have been allocated, i.e. list L2 is empty, the process is finished.
If traffic connections remain to be allocated, another bus must be established for these. In that case, the path P from which the bus was derived is removed from the list L1 in step S31, and the procedure returns to step S4, where the longest one among the remaining paths of list L1 is selected, and the procedure of extending the selected path into a bus and assigning traffic to it is repeated.
Number | Date | Country | Kind |
---|---|---|---|
05 290 117.0 | Jan 2005 | EP | regional |