# Patent

## Title
Data byte load based network byte-timeslot allocation

## Abstract

Systems and methods enable maximizing network data throughput via optimizing network capacity allocation. The network throughput maximization system comprises a network transporting data from source nodes to a destination node of the network, buffers for buffering data bytes to be sent from the source nodes to the destination node, and an element at the destination node that cyclically allocates the network capacity among the source nodes according to the amounts of data bytes arrived in the buffers at the source nodes during the previous capacity allocation cycle. The network data transport capacity allocation optimization method comprises steps of buffering at network source nodes data bytes to be transported to a network destination node, and cyclically allocating by the destination node the data transport capacity among the source nodes based on the relative volumes of bytes received in the buffers of the source nodes during the most recent capacity allocation cycle.

## Background
CROSS REFERENCE TO RELATED APPLICATIONS
This application claims the benefit of the following U.S. Provisional Applications, each of which is incorporated by reference in its entirety: [1] Application No. 60/869,326, filed Dec. 9, 2006, and [2] Application No. 60/894,426, filed Mar. 12, 2007.
This application is also related to the following, each of which is incorporated by reference in its entirety: [3] U.S. application Ser. No. 09/938,014, filed Aug. 24, 2001, entitled “A System and Method for Maximizing the Traffic Delivery Capacity of Packet Transport Networks via Real-time Traffic Pattern Based Optimization of Transport Capacity Allocation”; [4] U.S. application Ser. No. 10/170,260, filed Jun. 13, 2002, entitled “Input-controllable Dynamic Cross-connect”; [5] U.S. application Ser. No. 10/192,118, filed Jul. 11, 2002, entitled “Transparent, Look-up-free Packet Forwarding Method for Optimizing Global Network Throughput Based on Real-time Route Status”; [6] U.S. application Ser. No. 10/230,698, filed Aug. 29, 2002, entitled “Dynamically Channelizable Packet Transport Network”; [7] U.S. application Ser. No. 10/382,729, filed Mar. 7, 2003, entitled “Byte-Timeslot-Synchronous, Dynamically Switched Multi-Source-Node Data Transport Bus System.”


BACKGROUND
The invention pertains generally to the field of communications network systems, and in particular to techniques for dynamically optimizing network capacity allocation based on data load variations across the network to maximize the network data throughput.
Acronyms used in this specification are defined below:













ANI
active node identifier


ACT
access control tag


BAC
bus access controller


BCR
bus capacity request


BTS
byte timeslot


EOB
end of bus (source node)


HW
hardware


L1
ISO OSI model network protocol layer 1, i.e., the physical layer


L2
ISO OSI model network protocol layer 2, i.e., the data link layer


L3
ISO OSI model network protocol layer 3, i.e., the network layer


SNI
source node identifier


SW
software


TS
timeslot









Conventional communications networks are limited to physical layer network connections that have non-adaptive capacities, such as standard Ethernet or SDH/SONET or WDM connections, i.e., connections whose bit rate, once provisioned, is constant until the network is re-provisioned to chance the connection capacity. However, re-provisioning conventional networks to change connection capacities is normally a slower process by orders of magnitude that what would be needed to keep the connection capacities optimized per their real-time data traffic load variations. Worse still, when conventional networks are re-provisioned, e.g., to change a connection capacity, the network capacity related to such re-provisioning would not be delivering any data during the re-provisioning process.
Thus, despite that a significant and rapidly growing amount of the communications traffic generating revenues for the network operators is packet-based, i.e., such that forms variable data loads to be transported over network connections, conventional networks rely on physical layer connections whose capacities are normally constant once provisioned for a given network application. With such conventional networks where the connection capacities do not adapt dynamically according to the real-time data load variations, providing minimum network data throughput guarantees among a set of network nodes requires over-provisioning the network, i.e., setting aside capacity ahead of time for all possible traffic load distribution scenarios, even though only one of such scenarios will take place at any given time.
As a consequence of relying on such non-variable bandwidth physical layer connections, when a network needs to be configured to provide minimum throughput guarantees (which is typically necessary to support higher revenue services), the capacity of conventional networks is effectively under-used. Accordingly, the conventional networks, due to being limited to non-adaptive bandwidth connections, cannot achieve maximized data throughput of their physical capacity. This technical problem also presents a significant economic dilemma, since the physical network capacity is among the main network cost drivers, while the data throughput is among the primary network revenue drivers.
These factors create a need for an innovation enabling networks in which physical layer connection capacities adapt automatically to optimize the allocation of the network capacity continuously and thereby maximize the network data throughput.
SUMMARY
Embodiments of the invention provide systems and methods for maximizing network data throughput by cyclically optimizing network capacity allocation according to relative quantities of data arrived, during a previous network capacity allocation cycle, at buffers at the network source nodes queuing data for future transport over the network to a network destination node associated with said buffers at the source nodes.
In one embodiment, a network throughput maximization system comprises a network transporting data from a set of source nodes to a destination node of the network. For each network capacity allocation cycle, counters at the source nodes count amounts of data written in buffers at their nodes queuing data to be transported to the destination node. An element at the destination node cyclically allocates the network data transport capacity among the set of source nodes. This optimization of network data transport capacity allocation is performed, at least in part, according to relative volumes of data bytes written during a most recent capacity allocation cycle into the source nodes buffers related to the network destination node.
In one embodiment, a network data transport capacity allocation optimization method comprises counting at network source nodes the amounts of bytes of data packets that have arrived at the source nodes destined to a network destination node. The network destination node then cyclically allocates the network capacity among the network source nodes according to relative amounts of bytes received at the source node buffers associated with the destination node during the previous network capacity allocation cycles.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 shows an overview of a functional architecture of the network data throughput maximization system involving network buses that comprise a set of data transport channels, in accordance with an embodiment of the invention.
FIG. 2 presents a row-based signal framing structure on a channel of a network bus of FIG. 1, comprising row overhead and payload fields, in accordance with an embodiment of the invention.
FIG. 3 presents a more detailed view of the row overhead field of FIG. 2, in accordance with an embodiment of the invention.
FIG. 4 presents in more detail a subfield of the row overhead field shown in FIG. 3, in accordance with an embodiment of the invention.
FIG. 5 illustrates an architecture of a source node functionality in the network per FIG. 1, in accordance with an embodiment of the invention.
FIG. 6 illustrates an architecture of a destination node functionality in the network per FIG. 1, in accordance with an embodiment of the invention.



The following symbols and notations used in the drawings:

    
    
        A box drawn with a dotted line indicates that the set of objects inside such a box form an object of higher abstraction level.
        Arrows between boxes in the drawings represent a path of information flow, and can be implemented by any information transfer means available. Solid arrows indicate data flows, and gapped arrows control information flows.
        Gapped segments of arrows indicate a possible continuation of the data path.
        Lines or arrows crossing in the drawings are decoupled unless otherwise marked.
    
    


The figures depict various embodiments of the present invention for purposes of illustration only. One skilled in the art will readily recognize from the following discussion that alternative embodiments of the structures and methods illustrated herein may be employed without departing from the principles of the invention described herein.
DETAILED DESCRIPTION
FIG. 1 presents, in accordance with an embodiment of the invention, a multi-source-node digital communications bus 9, formed of its member channels 8, in a communications network system 1, which forwards and transports data traffic among nodes 4. In this specification, data traffic or data refers to any form of digital data, including but not limited to digital video, digital voice and regular file transfer. In FIG. 1, the bus and channel instances under study, bus 9(e) and channel 8(e), are able to transport data from the bus source nodes 11 to the bus destination node 10, which are the same as the source and destination nodes, respectively, of the member channels 8 of the bus 9.
The buses 9 provide source node 11 to the destination node 10 L1 connections 6 whose capacities are cyclically optimized according to the data inflow volumes of the connections at their source nodes 11, by way of adjusting the number of bus channels 8 allocated for each source node specific connection 6 on a given bus 9 based on the variations in the relative amounts of bus capacity demanded by the sources nodes of the bus. The network system 1 can comprise any number nodes 4, buses 9, etc. elements, as well as external interfaces to elements outside of the network system 1. Also, for instance the bus 9(a) can have source nodes and their respective connections 6 from nodes other than those shown in FIG. 1. Generally, the network system configuration of FIG. 1, including the presented quantities and connectivity between its elements, shall be understood just as an example used to illustrate features and operation of embodiments of the invention.
A channel 8 has a framed digital carrier, i.e., server signal, such as an Synchronous Digital Hierarchy (SDH) Virtual Container level-3 (VC-3) aligned to an Synchronous Transfer Module level-N (STM-N) via an Administrative Unit level-3 (AU-3) and a source node 11 of the channel 8 is able to transmit data on the channel on a signal frame or a portion thereof, i.e., the source node is able to map data on at least a portion of the payload of the signal frame. Though the bus envelope 9 in FIG. 1 is drawn to be formed of twelve member channels 8, it shall be understood that a bus 9 can comprise any number of member channels, and in an embodiment of the invention each of the bus member channels 8 operate in alike manner described below with reference to FIGS. 2 through 6. In an embodiment, the individual member channels 8 of the bus 9 are time-slot-interleaved within their bus envelope 9, in which case the bus 9 is said to use time-division-multiplexing (TDM) and its member channels 8 occupy their respective timeslots (TSs) within such TDM bus 9. In case of SDH VC-n based channels and AU-n-Mc/STM-N carrier signal (i.e. concatenation of M AU-n:s in an STM-N frame, according to ITU-T Recommendations G.707 and G.783), the VC-n based channels 8 are the M TSs interleaved in the VC-n-Mc carrier envelope 9, where parameter n denotes an SDH path signal level such as 11, 12, 2, 3 or 4 or concatenation thereof, N any valid SDH physical signal level such as 0, 1, 4, 16, 64, 256 etc., and integer M the number of member VC-n TSs, i.e., channels 8 in the VC-n-Mc concatenation group 9. In this specification, SDH STM-N, i.e., STM-0/1/4/16/64/256 etc. signals are used to denote also SONET STS-1/3/12/48/192/768 etc. signals, respectively, where STS stands for Synchronous Transport Signal.
In one embodiment, the carrier signal frames on the bus 9 are data structures made of a number of rows, each comprising a number of columns, wherein each column on a row is a byte timeslot (BTS) of the signal. At least one of the columns on each row of the signal frames is an overhead column BTS, forming the row overhead field, while the other columns are for payload BTSs, forming the row payload field. Moreover, each row within the signal frames is structured similarly with respect to the row overhead and payload columns.
FIG. 2 presents, in accordance with an embodiment of the invention, a sequence of signal rows 20 on a channel 8 of a bus 9 of FIG. 1, shown on a time axis 29, so that the signal data on the left end of the row sequence is transmitted and received the earliest. The signal rows in this context refer to any repeating, i.e., periodic blocks 20 of data fields, demarcated by row boundaries 27, on the channel signal. For example, in case that the channel uses SDH framing with client data carried on VC-3 payloads, such a periodic data block 20, referred to generally as a row 20 in this specification, can be a VC-3 row, which is repeated nine times per each VC-3 frame. However, there exists several other type of embodiments for a row 20, e.g., SONET Virtual Tributaries. Thus, although, for the sake of clarity, a VC-3 row is consistently used in this specification as an embodiment of the signal row 20 of FIG. 2, the discussion related to signal rows applies to any sort of repeating block or field of data within a digital signal.
The signal rows 20 of FIG. 2 have the following general characteristic:

    
    
        Each row 20 occupies a period of time referred to as row cycle 28, which has a constant nominal duration defined in applicable signal protocol standard, and which are separated in time from each other by row boundaries 27, a representative of which is marked in FIG. 2 between rows 20(a) and 20(b). A representative of a row cycle 28 is marked in FIG. 2 on the time axis 29 for the signal row cycle occupied by row 20(b);
        The rows 20 have a control information field 21, referred to as a row overhead;
        The rows 20 include a payload information field 22, referred to as a row payload, associated with them.
    
    


Typically the row overhead 21 is carried in the channel signal within the same time block 28 as is the payload 22 of the row 20, which time block is referred to as signal row cycle 28. Note however that the row control information 21 can be located anywhere in time within the row cycle 28, and does not need to be one continuous field as it is shown, for clarity, within the rows 20 in FIG. 2. In an embodiment, in case of channels 8 using SDH VC-n framing, the row overhead 21 used for the channel control signaling described herein is the VC-n path overhead (POH) column, the row payload field 22 comprises the C-n payload columns of a VC-n row 20, and the row cycle 28 duration is nominally 125 ms divided by 9.
The payload field on a row cycle 28, when used for data transfer on a channel 8 from a source node 11 to the destination node 10 of the channel, provides one network capacity allocation unit on the bus 9, assigned to the source node 11. Accordingly, a single row cycle 28 on a multi-channel-bus 9 of M (an integer) member channel provides a total M network capacity allocation units to be allocated, in any division, among the individual source nodes 11 of the bus 9 for every new bus row cycle 28.
Per an embodiment of the invention, the row control information fields 21 carry bitfields referred to as channel Access Control Tags (ACTs), which are used to identify one of the source nodes 11 of a channel of a bus 9, e.g., channel 8(e) of bus 9(e) in FIG. 1, to transmit data on that channel 8(e) on a row cycle 28 associated with each ACT. The row cycle 28 associated with an ACT carried within the channel signal is defined in the applicable channel signal protocol specification, and a general principle is that the ACT is to precede in time the payload field 22 it is associated with. Accordingly, in an embodiment of the invention, the ACT carried within the control information field 21 of a row 20 whose payload field 22 it is associated with identifies the active source node 11 for that row payload field 22 on the channel signal. In such an embodiment, in FIG. 2 the control information field 21(a) of row 20(a) selects the active source node for mapping data on the payload field 22(a) of its row 20(a); the same way, 21(b) controls the transmission on 22(b), and so forth. Herein, the payload field 22(x) of a row 20(x) is defined as the payload field that begins during the same row cycle on which its associated control field 21(x) is located. Payload fields 22 can thus extend over a row cycle boundary 27 to the next row cycle. Also, there can be gaps, such as server signal overhead fields, between as well as within the rows 20 and their information fields 21 and 22, for instance when the signal is transmitted on a line, e.g., between nodes 4.
In an embodiment of a channel 8 such that uses SDH VC-3 frame structure of nine rows by 87 columns, comprising one POH column and 86 payload columns, the row control information field 21 can be carried in the first column of a VC-3 row, i.e., in the VC-3 POH column, and the row payload field 22 in the remaining columns in the C-3 payload of a VC-3 row. The payload field 22 can be mapped by an active channel source node 11 with any kind of client data of any protocol, as well as just raw data or idle bytes. The term byte is used in this specification to refer to a bit vector of any bit width (of at least one bit). While a common width of a byte is eight bits, in various embodiments a byte of data may comprise more or fewer then eight bits.
FIG. 3 depicts, in accordance with an embodiment of the invention, a more detailed internal bitfield structure for an embodiment of the row overhead field 21 shown in FIG. 2. The format of the bitfields of the row overhead field shown as examples in FIGS. 3 and 4 are such that enable mapping the row overhead field 21 of a channel 8 to a single BTS, e.g., to the VC-3 POH column of a VC-3 framed channel as discussed above.
The subfield 32 of the row control information field 21, comprising bits 32[0] and 32[1] in the embodiment presented in FIG. 3, carries the ACT from the furthermost, i.e., the End of Bus (EOB) source node of the channel for all the source nodes 11 and the destination node 10 of the channel 8. In the bus 9(e) application example of FIG. 1, the ACT 32 identifies which one of the possible source nodes 11 for each channel 8(e), i.e., of nodes 4(a), 4(b), 4(c) and 4(d), is to map its data on the following row payload field 22 on that channel 8(e).
The subfields 31 of the row control information field 21 are for such a bus 9 source node 11, to which the destination node 10 of the bus is an end-of-bus source (EOB) node, to insert control information. (In FIG. 1, for instance node, node 4(a) is an EOB on the bus 9(e) to node 4(e).) In an embodiment of the invention studied herein in detail, the same bit format for ACT is used in both subfields 31 and 32.
That ACT format is such that it identifies the active source node, i.e., the node that is to transmit on the channel on the row payload 22 associated with the ACT 32, by expressing the number of source nodes 11 between the active node and the destination node, excluding both the active node and the destination node. That aforesaid value carried by ACT is referred to herein as the Active Node Identifier (ANI) for the row payload associated with the ACT. Similarly, for a given channel 8, all the source nodes 11 along it are given their respective Source Node Identifiers (SNIs) similarly expressing the number of intermediate channel source nodes 11 in between of each individual source node 11 and the destination node 10 of the channel. Thus, the source nodes 11 of the channel 8(e) in the example of FIG. 1 have their respective SNIs as follows:













Source node:
SNI = ACT value that activates the node:








4(a)
3



4(b)
2



4(c)
1



4(d)
0









Hence, an ACT of value 2 in a row overhead field 21 on channel 8(e) would identify the source node 4(b) to transmit data on the channel on the next row payload field 22, and similarly for the rest of the {source node, SNI (=activating ACT value)} pairs shown in the above table. Generally, the channel access control involves: monitoring, by the individual source nodes of a channel 8, the ACT 32 field within the row overhead fields 21 of each signal row 20 on the channel; and transmitting data on the channel 8, on the row payload field 22 associated with the given ACT, by that channel source node 11 whose SNI matched the ANI carried by the ACT.
SDH/SONET-based embodiment for signal framing, such as VC-3, provides a straightforward way to extend the herein discussed dynamic, row cycle switched channel functionality into a multi-channel-bus via TDM byte-timeslot interleaving. Thereby it is feasible to arrange a set of VC-3 channels in parallel to form a dynamic, row cycle switched data transport bus 9 for transport of data from the bus source nodes 11 to its destination node 10. Such a multi-channel bus 9 provides, besides a greater aggregate capacity than a single channel 8, also means for a more granular network bus capacity allocation among the source nodes 11 by enabling more than one, and even all, of the set of its source nodes 11 to transmit data on the same bus 9 to its destination node 10 concurrently, i.e., during the same row payload field 22, by way of allocating the member channels of the bus among multiple source nodes of the bus for a given row cycle. For instance, incase there were twelve VC-3 channels 8(e), numbered #0 through #11, on the bus 9(e), on a given row cycle 28 on the bus, the source node 4(a) could be assigned the VC-3 channels #0, #1, #2 and #3, while node 4(b) could be assigned the channels #4, #5 and #6, 4(c) the channel #7 and #8, and 4(d) the rest, i.e., #9, #10 and #11 Enabled by this network capacity allocation optimization method of the invention, on the next VC-3 row cycle, i.e., on the next network capacity allocation period, the allocation of the channels among the source nodes 4(a) through 4(d) of that 12xVC-3 bus 9(e) can be completely different, as defined by the ACTs 32 carried in the control fields 21 of individual VC-3 channels 8 on the subsequent VC-3 row 20. Whatever the allocation of the member channels of a bus among its source nodes on any given row cycle 28, in an embodiment of the invention, the set of bus channels assigned to an individual source node, such as node 4(c) of bus 9(e) in FIG. 1, are concatenated to continuously form a single, logically un-channelized, connection 6, e.g., 6(c) from node 4(c)) to the destination node of the bus 9.
An efficient implementation of the above described dynamic, row cycle switched channel is achieved so that each source node 11 of a channel 8 transmits data on its channel using the same carrier signal frame and row cycle phase, so that the destination node receives on the channel a continuous sequence of valid, client-data-carrying rows 20 each of uniform nominal duration 28 specified by the channel server signal protocol. For the EOB node, e.g., node 4(a) on the channel 8(e) in FIG. 1, this principle is met simply so that the EOB node transmits a continuous sequence of signal rows, with the payload fields 22 of exactly those rows 20 mapped with its client data that were identified as assigned to the EOB node by their associated ACTs 32.
The other source nodes 11, referred to as downstream source nodes, on the channel continuously keep track of the current row phase on the channel using a row BTS counter that is once per carrier signal frame period synchronized to the current frame phase on the channel signal as received from upstream channel, i.e., on the channel from the direction of its EOB node. Since the frames consist of similarly repeating rows 28, such as the nine 87-byte rows of an VC-3 frame, the frame phase synchronization also provides row phase synchronization for the source nodes of a channel. With such upstream-channel frame and row phase synchronized BTS counter, a downstream node along the channel 8 is able to locate and capture the channel-specific ACTs 32 on each row 20, as well to insert its own control information in its related subfields (e.g., 31 and 30) on each row transmitted on the downstream channel, and, incase the ACT matched with the SNI of the source node, map the row payload field 22 associated with the ACT with its client data to be transported to the destination node 10 of the channel 8. In case of a VC-3 channel, the above described upstream-channel row-phase synchronized channel access process involves performing the SDH standard functions related to accessing the S3 data layer, i.e., VC-3 channel carried within an STM-N carrier signal, including STM-N frame boundary detection and AU-n pointer processing to locate the VC-3 frame and row boundaries 27 and VC-3 POH 21 and C-3 row payload 22 BTSs.
Furthermore, an efficient implementation for a multi-channel bus 9 formed of the above described BTS synchronously accessed, parallel multi-source-node channels 8, is achieved so that all member channels of the bus have the same common frame and row phase when received by any of the downstream source nodes 11 or the bus destination node 10, so that the row cycles 28, and thus row boundaries 27, coincide throughout all channels 8 of the bus 9. In an embodiment of the invention, this principle is upheld via arranging all the member VC-3 channels 8 of the bus 9 to be member VC-3 TSs of a single VC-3-Mc concatenation group, which is aligned to its carrier STM-N signal via a single AU-3-Mc pointer, thus ensuring that all member VC-3s of the VC-3-Mc bus stay in the same row BTS phase (based on that the row BTS phase of a VC-3 is defined by the frame phase of its STM-N server signal and the offset of the AU pointer with which the VC-3 is aligned to its STM-N). Hence, in an embodiment of the invention, the channels 8 are VC-3 TSs within a single VC-3-Mc bus 9 transmitted by the EOB node of the bus comprising M (any integer greater than zero) VC-3 TS channels in total. Note, that since the downstream nodes of such a VC-3-Mc bus insert data only on their assigned VC-3 TSs on that bus and pass-through the other TSs, the AU-3-Mc (including its pointer bytes, which are regenerated at each node according to standard SDH pointer processing) flow through all the way to the destination node of the bus, so that the destination node will continuously receive a regular SDH VC-3-Mc signal on the bus with a continuous AU-3-Mc pointer from frame to frame, regardless of which source node mapped data on which VC-3 TS channel 8 of the VC-3-Mc bus 9.
Since the rows 20 on their channels 8 of the bus 9 identify, via their channel specific ACTs carried via subfields 32, to which source node specific connection 6 the payload field 21 belongs to on any given row cycle 28 on the bus 9, each source node connection associated receiver instance at the bus destination node 10 knows which VC-3 TSs on the VC-3-Mc bus 9 belongs to its associated connection 6 on each row cycle on the bus. Such a source node connection associated receiver instance provides a SDH-to-packet demapper function in case of packet-based client traffic carried on its associated connection 6.
Bitfield 31 in FIG. 2, comprising in this embodiment of bits 31[0] and 31 [1 ], is used for carrying an ACT for a channel 8 on which the node 4 inserting the ACT is the destination node 10. As an example, in the network of FIG. 1, the destination node 4(e) of a channel 8(e), inserts the ACTs controlling access for the channel 8(e) on the bitfields 31 of the overhead fields 21 on another channel 8 on the bus 9(a), which delivers the ACTs to the EOB node 4(a) of the bus 9(e) channel 8(e). The EOB node 4(a) of the channel 8(e) then loops back those ACTs via bitfields 32 within the row overhead fields 21 on that channel, for which those ACTs select the active source nodes for their respective row payload fields 22.
FIG. 4 presents the internal structure of subfield 30 of the channel signal row control field 21 shown in FIG. 3, in accordance with an embodiment of the invention.
In an embodiment of the invention studied herein in detail that uses VC-3 based channel 8 signal framing, and wherein the bus 9 capacity allocation unit is one VC-3 row payload worth of BTSs, the bitfield 30 is used to carry capacity request information, in units of VC-3 TSs 8 for a one VC-3 row cycle 28, by the source node inserting it for the bus 9 on which the bitfield 30 travels on. In an embodiment of a VC-3-Mc bus 9 formed of M (an integer) VC-3 TS-channels 8, a bus source node 11(x) sets its associated bits 40(x) of the bitfields 30 on as many of the M VC-3 TS-channels 8 on the bus as is its current Bus Capacity Request (BCR) in units of VC-3 TSs for its connection 6 to the bus destination node 10. An embodiment of a bus source node 11 computes the magnitude of its BCR figure, i.e., its requested number of channel units on the bus, based on its amount of data bytes written, during the preceding row cycle 28, into buffers storing data for future delivery on the bus 9 toward its destination node 10. For instance, assuming the source node 4(b) of the bus 9(e) in FIG. 1 had received, during the most recent VC-3 row cycle before it inserted its associated bits 40(b) on the channels 8(e) of the bus 9(e), such an amount of data bytes toward the node 4(e) that would demand for its connection 6(b) on the bus 9(e) four VC-3 rows worth of capacity, it would set the bit 40(b) on the VC-3 channels #0,#1,#2, and #3 to the active value, and leave the bit 40(b) to inactive value on the rest of the VC-3 channels #4-#11 on the VC-3-12c bus 9(e).
The bitfield format of row control information field 21 described herein in reference to FIGS. 3 and 4, comprising eighth bits, in an embodiment of the invention can be carried in the POH column BTS of a VC-3 frame structured channel 8. Such an embodiment of the invention described herein does not use any of the L1 (SDH) signal payload capacity for control signaling, but instead allows using all the L1 payload capacity for carrying actual client data, e.g., L2 packets. In applications of the invention where more bits per a row control information field would be needed, it is possible for instance to add one VC-3 payload column to extend the row control information field, still with relatively insignificant increase in the signal overhead percentage.
FIG. 5 presents a block diagram of a source node 11 functionality, including the Bus Capacity Requests (BCR) generation, in a network per FIG. 1, in accordance with an embodiment of the invention.
In an embodiment of the invention, the BCRs are computed for each source-destination node connection 6 individually, once for each new row cycle 28, by converting the number of data bytes (B) 56 written 58 by a connection source buffer write logic 50 during the previous row cycle to the connection source buffer 52 feeding the connection 6, from the source node 11 to the destination node 10 of the bus 9, into a corresponding number X (=0,1, . . . ,M) of VC-3 timeslot channels 8 whose combined byte transfer capacity during a VC-3 row cycle approximate the data byte inflow B for the connection 6. In the example logic block diagram of FIG. 3, the byte inflow B per each bus row cycle, i.e., during each network capacity allocation cycle 28 is counted by a connection source buffer byte write counter 51. The connection 6 byte inflow counter 51 gets is row cycle boundary notification 27 from a row BTS counter 55 that operates in the bus 9 server signal frame and row phase.
In a possible embodiment providing a straightforward logic implementation, the BCR 57 of a source node, i.e., the number M of VC-3 TSs the source node requests for its connection 6 on the bus for the next VC-3 row cycle, can be computed using the formula:

If B>0, BCR=MIN{M, MAX{1, INT(B/64)}};

Else BCR=0,

where M is the total number of VC-3 TSs on the VC-3-Mc bus 9. This formula is straightforward to implement in hardware logic BCR generator 54, as dividing B by number 64 can be done simply by truncating the 6 least significant bits away from the binary representation of B.

Since in the embodiment of the invention studied herein in detail the bus 9 capacity allocation unit is a VC-3 row, which provides 86 payload bytes, a more accurate BCR generation algorithm is such where the byte inflow B associated with a connection 6 is divided by value 86. A possible hardware implementation of the division of B by 86 is provided by a look up table based logic that provides for each potential value of BCR={0, 1, 2, . . . M} a pre-computed a range of their corresponding values for B. A specification for such a look up table, assuming an AMB of 12 VC-3s, i.e., M=12, is provided via below table: B (bytes received during a row cycle): BCR (VC-3 TSs requested for a row cycle):











B (bytes received during a row
BCR (VC-3 TSs requested for a row


cycle):
cycle):
















0
0


 1 . . . 129
1


130 . . . 215
2


216 . . . 301
3


302 . . . 387
4


388 . . . 473
5


474 . . . 559
6


560 . . . 645
7


646 . . . 731
8


732 . . . 817
9


818 . . . 903
10


904 . . . 989
11


990 or higher
12









In an embodiment of the invention, the combined data inflow figures for each of the buffers 52, which buffer bytes of data packets queued for future transport to the destination node associated with the buffers and from which the bus mapper 53 reads 59 data to its associated bus 9, are used in forming the value of the data byte inflow B 56, based on which the value of the BCR 57 for that bus is computed by the BCR generator 54. The data bytes written 58 into the connection source buffers 52 can be received by the source node 11 from different interfaces of it, including from an access interface 7 over which the source node receives data from outside of its network system 1, e.g., from an external L2 or L3 node, or from another network system 1.
Embodiments of the invention can use also additional factors, besides the volume of the data byte inflow (B) during the previous bus capacity allocation cycle per above, in forming the value of their BCRs. Such possible additional factors can include, for example, the amount of data bytes queued at the source node buffers from which the bus mapper 53 maps data to its associated bus 9, as well as the priority levels of the connection data inflow or the buffered data.
The benefits of having each source node of a bus 9 to request bus capacity for each new bus capacity allocation cycle, i.e., the row cycle 28, based on the actual number of bytes of data destined toward the bus destination node 9 that had arrived at each given source node during the previous row cycle 28 include that over time the source nodes request as much bus capacity as they have received data bytes to map on that bus (on the row payload fields 22 assigned to them by the bus destination node based on the BCRs).
FIG. 6 presents a block diagram of a destination node functionality, in accordance with an embodiment of the invention. At its destination node 10, the bus 9 is received by a module referred to as the Bus Access Controller (BAC) 61. The BAC cyclically, for each new row cycle 28 on its bus 9, performs a bus channel 8 allocation optimization among its source nodes 11, based on the most recent set of BCRs it has received on the bus 9 from its source nodes on the source node associated bits 40 of subfields 30 (FIGS. 3 and 4). This network capacity allocation optimization method of the invention is employed to continuously to maximize the rate of client data delivered by a network bus 9. This allocation and assignment of bus channels 8 among its source nodes 11 produces a set of bus channel 8 specific ACTs, each of which carries an ANI 32 identifying one of the bus source nodes 11 to map data on its associated row payload field 22 on the bus channel 8 that a given ACT travels on.
In the network example of FIG. 1, the BAC 61 at the destination node 10(e) of the channel 9(e) sends the set of ACTs (using one of its local bus mappers 53) on subfield 31 of row overhead fields 21 on the bus 9(a) (on which that host node 4(e) of the BAC is a source node 11) to the bus 9(a) destination node 4(a), which is the bus 9(e) EOB node. That EOB node 4(a) of bus 9(e) will then loop the set of ACTs via subfields 32 back on the bus 9(e). All source nodes 4(a) through 4(d) process and apply the set of ACTs on the bus 9(e) as described earlier, i.e., transmit data on the payload fields 22 associated with such ACTs 32 that carried an ANI that matched their respective SNIs.
In addition to the BAC 61 performing capacity allocation for a bus 9 to which its host node 10 is the destination, in an embodiment of the invention per FIG. 6, at the destination node 10 of a bus 9 there is a set of bus source node (e.g., 4(a) through 4(d) per FIG. 1) specific packet demappers 62(a) through 62(d) that recover the packet streams from their associated connections 6(a) through 6(d). Moreover, in an embodiment of the invention based on an SDH framed bus 9, the packet demappers recover from the VC-n frames their respective L2 packet sequences 69 for further processing by downstream logic 63.
As described in the foregoing regarding FIG. 3, the channel 8 specific ACTs 32 on the row control fields 21 of each row 20 on the bus 9 identify to which source node specific connection 6 their associated row payload field 21 belongs to. Based on the ACTs on most recently received row control fields 21, i.e., VC-3 POH bytes in the embodiment studied in detail herein, the BAC 61 at the bus destination node 10 thus knows which VC-3 TS channels 8 on the VC-3-Mc bus 9 belongs to which source node 11 specific connection 6 on each new payload field 22 on the bus 9. Accordingly, the BAC 61 enables the correct source node specific packet demapper 62 to receive data bytes on the bus 9 on each bus byte timeslot. That way, each of the demappers 62(a), 62(b), 62(c) and 64(d) per FIG. 6 receives a data byte sequence from the bus 9 that form the original data packet sequence 69(a), 69(b), 69(c), or 69(d) sent by its related source node 4(a), 4(b), 4(c) or 4(d), respectively, on their corresponding connection 6(a), 6(b), 6(c) or 6(d) on the bus 9(e) to its destination node 4(e). An embodiment of the invention depicted in FIG. 6 further provides a packet multiplexer 63 that multiplexers data packets from the source node specific packet streams 69(a) through 69(d) into a combined packet stream 8 that can be sent over an external network interface of the network system 1 for instance to a packet-switching or processing network element outside of the network system 1, or to another network system 1 based on this specification.
Regarding FIGS. 1 through 6, it is noted that all of the nodes 4 may include both source and destination node functionalities.
System Architecture and Operating Principles
Embodiments of the present invention include an efficient communications network architecture based on physical layer, i.e., L1 connections whose capacities are automatically and continuously optimized according to their input data flow variations.
Per the discussion in the foregoing regarding the drawings, embodiments of the invention perform traffic-load-adaptive optimization of communications network capacity allocation, thereby maximizing data throughput of a communications network based on real-time data traffic load variations across the network, such as the example network 1 of FIG. 1. Such a network system 1 comprises a data transport layer, called data plane, implemented with buses 9, and a control plane, implementation of which involves in an embodiment of the invention a logic module called Bus Access Controller (BAC) that is located at the destination node 10 of each bus 9 and that performs the dynamic channel 8 allocation computation algorithms for buses 9. Embodiments of the network data and control planes are described in following.
Data Plane
One embodiment of the invention provides a byte-timeslot-synchronous, non-overhead-adding and data-loss-free data transport channel 8 based on a novel channel-access-control signaling mechanism enabling dynamic signal row (e.g., VC-3 row) cycle synchronous switching. Using the invention, multiple, potentially geographically distant and independently clocked source nodes 11 can map data on the same communication channel 8 so that a different source node can map data on the channel on every new row cycle 28 on the channel. With the invention, switching between the old and new active source nodes on the bus takes place on a definite column on each row cycle 28 on the channel.
In an embodiment of the invention, the dynamic row cycle switched multi-source-node channel 8 operates so that the furthermost source node on the channel, called the end-of-bus source (EOB) node, continuously sends server signal frames, comprising repeating sequences of rows, on the bus with a pointer identifying the BTS location of the first byte of each server signal frame sent. The EOB source signals, via the overhead field 21 of each row 20 of the signal frames, to which one, potentially itself, of the source nodes of the channel the next row payload field 22 on the channel is assigned to. A source node of the channel maps its data on the channel on exactly those row payload fields which were assigned to it by the value of an active source node identifier carried in the preceding row overhead field. The row cycle herein can be any repeating block 20 of data on the channel signal that comprises the row overhead 21 and row payload 22 BTSs. For instance, a VC-3 row of BTSs fills that definition in case of a VC-3 framed channel 8.
Control Plane
In an embodiment of the invention, on every row cycle 28, the BAC 61 adds together the Bus Capacity Request (BCR) bits 40 that are set in their active values in the source node 11(x) associated bits field 40(x) within the row control information fields 21 on each channel 8 of the bus 9, to gather the BCR figures, an integer number of requested channels, for each individual bus source node. The BAC then allocates and assigns the bus channels 8 among the set of bus source nodes 11 once every bus row cycle 28 based on the most resent BCRs received from its bus source nodes, in one embodiment of the invention, according to the following algorithm:

    1.) BAC allocates the member channels 8 of the bus 9 among the individual source node specific connections 6 so that it assigns channels, one channel at a time, per each source node whose BCR figure exceeds the number of channels so far assigned to it, until either all channels of the bus are allocated, or until the BCR of each source node is fulfilled, whichever comes first.
    2.) Following 1.), the BAC assigns any remaining unallocated channels in an even, round-robin, fashion among all source nodes of the bus.

This method of optimizing network bus capacity allocation produces a channel number indexed table containing a set of Active Node Identifiers (ANIs) identifying the active source node per each bus channel 8 for a new row cycle 28 on the bus 9. For every new row cycle 28, BAC 61 distributes the channel 8 specific ANIs, i.e., bus Access Control Tags (ACTs), through its local bus mapper 53 accessing another bus 9, to the furthest most source node, i.e., EOB node of the bus to which the local node 4 of the BAC is the destination, using bus row control overhead field 31 based signaling. That EOB source node of the bus 9 under study then loops back the ACTs via bus row control overhead field 32, thereby completing the bus access control process cycle by signaling the active source node identification per each bus channels 8 for the bus source and destination nodes for each new row cycle 28 on the bus 9. The use of the bus row overhead 20 subfields 30, 31 and 32 is described in detail in the foregoing regarding the drawings, in particular FIGS. 3, 4, 5 and 6.

Reference Material



The referenced patent applications [1] through [7] provide additional context as well as efficient implementation techniques related to the invention described in this specification. In particular, the Appendix B of the referenced application [1] discloses example reference engineering specifications for an embodiment of a node 4 per this specification, and the referenced application [2] provides specifications for a reference network system utilizing the present invention. Moreover, the referenced application [4] describes an efficient dynamic multiplexing scheme, and the referenced application [5] an efficient packet forwarding and dynamic route optimization scheme that may be used for related system implementations. The referenced applications [3], [6] and [7] provide further context and network application examples related to the invention described in this specification.
CONCLUSIONS
This detailed description describes various embodiments of the present invention for application examples discussed in the foregoing. Specific application, architectural and logic implementation examples are provided in this and the referenced patent applications for the purpose illustrating particular implementations or embodiments of the invention. Naturally, there are multiple alternative ways to implement or use, in whole or in part, the principles of the invention as set forth in the foregoing. For instance, while this detailed description uses consistently VC-3 row as the reference embodiment of the dynamic switching, i.e., network capacity allocation unit, mapping the concept of the invented dynamic switching method for various other potential embodiments of a digital communications channel, including but not limited to SONET STS-1/3c/12c/48c/192/768c, VT-1.5/2/6 or SDH VC-11/12/2/3/4(−Mc) (M is an integer) signals, will be understood by those skilled in the art in view of this specification. Generally, those skilled in the art will be able to develop different versions and various modifications of the described embodiments, which, although not necessarily each explicitly described herein individually, use the principles of the present invention, and are thus included within its spirit and scope. It is thus intended that the specification and examples be considered not in a restrictive sense, but as exemplary only, with a true scope of the invention being indicated by the following claims.

## Claims

1. A system for maximizing network data throughput, the system comprising:
a network configured to transport data from a set of source nodes to a destination node, the network having a network capacity;
at each of the source nodes, a counter for counting incremental amount of the data written, during a previous capacity allocation cycle, into one or more buffers queuing data to be sent from their corresponding source node to the destination node; and
at the destination node, an element for allocating the network capacity among the source nodes, for a future capacity allocation cycle, at least in part based on the incremental amount of the data written into the buffers at the source nodes during the previous capacity allocation cycle,
wherein different bits of a given byte timeslot on an overhead field on a signal on the network are used by different source nodes for transmitting control information on the network.

2. The system of claim 1, wherein counters at the source nodes are configured to count the amounts of data written during each previous capacity allocation cycle, and the element at the destination node is configured to allocate the network capacity cyclically for each future capacity allocation cycle.

3. The system of claim 1, wherein the network comprises a set of Layer 1 channels, each channel for transporting the data from a source node to the destination node.

4. The system of claim 1, wherein the network comprises a set of time-division-multiplexed (TDM) channels, each channel for transporting the data from a source node to the destination node.

5. The system of claim 4, wherein the set of TDM channels form a set of network capacity allocation units.

6. The system of claim 5, wherein the capacity allocation units allocated to the source node form a single Layer 1 connection from that source node to the destination node.

7. The system of claim 5, wherein the set of time-division multiplexed channels are based on Synchronous Digital Hierarchy (SDH) Virtual Container level-3 (VC-3) or Synchronous Optical Network (SONET) Synchronous Transport Signal level-1 (STS-1) timeslots.

8. The system of claim 7, wherein the previous and the future allocation cycles each has a duration of a VC-3 row period.

9. The system of claim 1, wherein the previous and the future allocation cycles each has a duration of an SDH VC-3 row period.

10. The system of claim 4, wherein the TDM channels carry digital signals that have periodic framing.

11. The system of claim 10, wherein the periodic framing is based on SDH/SONET.

12. The system of claim 10, wherein the periodic framing is based on SDH VC-3 or SONET STS-1.

13. The system of claim 1, wherein the amounts of data written during each previous capacity allocation cycle are counted at single byte accuracy.

14. A method for optimizing network data transport capacity allocation in a network configured to transport data from a set of source nodes to a destination node, the network having a network capacity, the method comprising:
at the source nodes, counting incremental amounts of data destined to the destination node that arrived at the source nodes during a previous capacity allocation cycle; and
at the destination node, allocating the network capacity among the source nodes, for a future capacity allocation cycle, based at least in part on the incremental amounts of the data that arrived at the source nodes during the previous capacity allocation cycle,
wherein different bits of a given byte timeslot on an overhead field on a signal on the network are used by different source nodes for transmitting control information on the network.

15. The method of claim 14, wherein the amounts of data destined to the destination node that arrived at the source nodes are counted during each capacity allocation cycle, and the network capacity is allocated among the source nodes cyclically for each of the capacity allocation cycles.

16. The method of claim 14, wherein the capacity allocation cycle has a duration of a Synchronous Digital Hierarchy (SDH) Synchronous Transfer Module (STM) row period or Synchronous Optical Network (SONET) Synchronous Transport Signal (STS) row period.

17. The method of claim 14, wherein the network data transport capacity consists of a set of time division multiplexed (TDM) channels.

18. The method of claim 17, wherein allocating the network data transport capacity among the source nodes of the network includes assigning the set of TDM channels to source node specific Layer 1 connections.

19. The method of claim 18, wherein the TDM channels are based on SDH/SONET.

20. The method of claim 18, wherein the TDM channels are based on SDH VC-3 timeslots on an SDH STM-N based signal.

21. The method of claim 20, wherein the previous and the future allocation cycles each has a duration of a SDH VC-3 row period.

22. The method of claim 21, wherein the assigning the set of TDM channels to source node specific Layer 1 connections is based at least in part on approximations of the amounts of data arrived at the source nodes during the previous capacity allocation cycle.

23. The method of claim 21, wherein the approximations of the amounts of data arrived at the source nodes during the previous capacity allocation cycle are expressed in units of a VC-3 row worth of byte timeslots.

24. The method of claim 14, wherein the amounts of data arrived at the source nodes during the previous capacity allocation cycle are counted in bytes.

25. A method for maximizing network data throughput via optimizing network data transport capacity allocation by a destination node of a network, the method comprising a set of sub-processes including:
receiving network data traffic from a plurality of source nodes via a corresponding plurality of physical layer connections, each physical layer connection having a variable capacity; and
automatically adjusting the capacities of the physical layer connections based at least in part on variations in volumes of data byte inflows associated with the physical layer connections from the source nodes to the destination node,
wherein said variations in volumes of data byte inflows are quantified based on incremental amounts of data destined to the destination node that arrived at the source nodes during a previous inflow volume quantification period,
wherein different bits of a given byte timeslot on an overhead field on a signal on the network are used by different source nodes for transmitting control information on the network.

26. The method of claim 25, wherein the sub-process of automatically adjusting the capacities of the physical layer connections is performed cyclically, once per a period of time referred to as a capacity allocation cycle.

27. The method of claim 26, wherein the capacity allocation cycle has a constant nominal duration.

28. The method of claim 26, wherein the capacity allocation cycle has a duration of an integer number of SDH row periods.