Inverse multiplexing software




















As an example, ATM cells representing the first user packet P1 are grouped together and transmitted over one of the plurality of T-1 communication links 40A. While transmitting the first user packet, the first ATM switch adds a sequence number to the packet. Similarly, ATM cells associated with the second user packet P2 are transmitted over another T-1 communication links 40B. ATM cells associated with the next user packet P3 are also similarly transmitted over the last T-1 communication link 40C.

Utilizing the sequence number stored within each received packet, the second ATM switch 40 then re-synchronizes the three user packets into their original sequence. The properly synchronized user packets are then de-assembled into appropriate number of ATM cells and transmitted over an outgoing high bandwidth OC-3 communication link.

ATM cells received over an incoming high bandwidth communication link 30, such as a OC-3, are assembled by an assembler associated with the first ATM switch ATM cells determined to be associated with a particular user packet, such as an AAL5 packet, are then transmitted by a transmitter over one of the low bandwidth communication links to the second ATM switch A receiver associated with the second ATM switch 50 receives the transmitted ATM cells over the T-1 line and forwards them to a deassembler The deassembler waits until all of the ATM cells associated with the particular user packet are received and re-transmits them over an outgoing high bandwidth OC-3 communication link If the assemble packet is a "good" packet, the SAR module then interrupts an associated central processing unit CPU and places the assembled AAL5 packet into a first designated memory location While selecting an outgoing communication link, the CPU selects a T1 link with the lowest traffic load using a load-balancing algorithm.

The SAR module de-assembles the user packet into a number of ATM cells and communicates all of the de-assembled ATM cells associated with the particular user packet over the selected T-1 communication link In a similar fashion, the receiver associated with the second ATM switch 50 receives the ATM cells communicated over one of the T-1 communication links 40 and forwards them to a second SAR module associated therewith.

The second SAR module then de-assembles the AAL5 packets into a number of ATM cells and utilize a routing table to transmit the cells over an outgoing OC-3 communication link 60 in a conventional manner. The above illustration is to represent an uni-directional connection.

As a result, the first ATM switch 20 is referred to as the "transmitter" and the second ATM switch 50 is referred to as the "receiver. Registers such as random access memory RAM devices A, B, C, and D are maintained by the associated CPU for keeping track of the current traffic level associated with low band-width communication links 40A, 40B, 40C, and 40D, respectively.

In accordance with the teachings of the present invention, when the SAR re-assembles the received ATM cells into a user packet and informs the associated CPU thereof, the CPU evaluates the registers AD to determine the appropriate low bandwidth communication link to transmit the packet. As one embodiment, the CPU selects a communication link associated with a register with the lowest traffic level value stored therein.

This is to select a T1 link that has been least utilized. After the transmission, the associated register is then updated to represent the current traffic level status of the determined T1 communication link. As another embodiment, another algorithm could be utilized to rotatively select the available links to evenly distribute the cells over the available T-1 communication links. For implementing a software inverse multiplexing in accordance with the teachings of the present invention, a method and means for determining the number of T-1 connections needed for accommodating the bandwidth received over the OC-3 incoming communication link is also needed.

No UPC policing is implemented under T1 lines at the receiver end. After allocating the required number of T1 VCs, incoming ATM cells are evenly or optimally distributed across the allocated T1 communication links using a distribution algorithm as described above. In accordance with the teachings of the present invention, there are two different embodiments for establishing a virtual connection over a T-1 link between the two ATM switches and effectuating communication therebetween.

The first embodiment utilizes the same message format for establishing a virtual connection and for transporting data between the two ATM switches. The second embodiment utilizes a first message format for establishing a virtual connection and a second message format for transporting data therebetween. Reference is now made to FIG. While establishing a virtual connection between the two ATM switches and transmitting ATM cells over the established VC, both control data and data messages needed to be transported over the same T1 VC.

Because a pair of transmitter and receiver can accommodate unidirectional communication, a back channel is needed to carry the control message from the receiver switch to the transmitter switch. The message header is sixteen 16 octets long and includes a protocol discriminator , a message type , a session number , and a sequence number The protocol discriminator is a 32 bit unsigned integer UINT.

The message type is also a 32 bit UINT friendly to RISC machine and indicates the type of message being transmitted between a first switch and a second switch. The following values are predefined as the message types:. The sequence number is a 32 bit UINT representing the packet sequence or order number.

The sequence number exists only within Data messages. The length information is not needed in the message header because the SAR module properly de-assembles the user packet into a requisite number of ATMs cells. Accordingly, a single memory access allows the whole message header 16 bytes to be read into the CPU cache without reading any of the message body payload. As a matter of fact, the user data or payload is not touched or processed at all by the switches and the software inverse multiplexing requires a small portion of the CPU time.

The Restart, Restart Ack messages, and the associated session number are used to manage a communication link between the transmitter and the receiver. Before any user data packet can be transmitted, a session must be established therebetween.

As an illustration, the transmitter has to send a Restart message with a particular session number. The receiver then adopts the session number provided by the transmitter upon receiving the Restart message and responds with a Restart Ack message.

Once the transmitter receives the Restart Ack message, a session has been established and data packets may be communicated therebetween. Each message is also numbered with a packet sequence number and the assigned session number.

A session can last as long as both parties want to. A Restart message sent by either party will terminate the present session and establish a new session.

As an example, a restart could occur if the receiver sees some severely out of sequence packets or find some large number of AAL5 packets failing the CRC checks. Accordingly, when the receiver transmits a Restart Message, the receiver concedes and attempts to establish a new session. The transmitter maintains the following variables and timer to maintain the status of the session and the connection:.

The transmitter further includes the following states to maintain the session and the connection:. The initial state of a transmitter after the software inverse MUX set up is "idle. The following table illustrates the state machine for the transmitter. For simplicity, in any state, any received event not listed in the table is deemed invalid and is discarded. The state will not be altered.

The receiver switch maintains the following variables to maintain its status and connection:. The receiver has the following states for maintaining its status:.

The following table illustrates the state machine for the receiver:. As a second embodiment of the present invention, different message formats can be used for establishing a virtual connection between the two ATM switches and for transporting payload data therebetween.

As described above, The second embodiment differs from the first embodiment in the following aspects: 1 it uses an out-of-band control channel for communicating control data; 2 it uses a distinguished synchronization phase from the data transmission phase; and 3 it uses a code split technology which uses different message handlers for different phases.

Accordingly, a dedicated bi-directional channel between a transmitter and a receiver is used to carry the control message. Therefore, the control is "out-of-band. In this way, a data message contains only the sequence number of the message and the user payload. Thus, real-time performance is improved. The control message is utilized for establishing a virtual connection between the two ATM switches and includes a protocol discriminator , a message type , a session number , and a pad The protocol discriminator for distinguishing this message format from the message format described in FIG.

The message type is a 32 bit UINT as well and is defined with the following values:. The session number is a 32 bit UINT and represents the session number assigned to the established virtual connection. Since this is a control message, the pad is set to all zeroes 0 by the transmitter and is ignored by the receiver. The data message is utilized to transport the payload after a virtual session has been established using the above described control messages.

The data message includes a packet sequence number , a pad , and a payload The packet sequence number is a 32 bit UINT and represents the sequence number of the transported payload in a similar manner as described in FIG.

The pad is initialized with zeroes and ignored by the receiver. The payload is the AAL5 packet data being sent by the source end-user and exists only within the data message The transmitter maintains the following variables and timers to effectuate software inverse MUX in accordance with the teachings of the present invention:. In a similar manner as described in FIG. The following represents the state machine for the transmitter:. The receiver maintains the following variables for the second embodiment of the present invention:.

The receiver then responds with a Restart Message The receiver , after receiving at least two consecutive FD data messages , determines that the VC has been flushed and ready and responds with a Channel Flushed message to the transmitter On Cisco routers and switches, the default values for the differential delays are as follows:.

Additional troubleshooting techniques on IMA and the differential delay are explained here. This logic holds VPI ranges as defined in bits 5 and 6 for internal processing. The original implementation provided 4 bits for the VPI range. CSCdt provides information about address expansion of the VPI range to 8 bits while substituting 0s for bits 5 and 6 with omission of the vp-per-vc command.

With bits 5 and 6 being substituted for 0, the useable VPI values are , , , and The most common IMA known issues are summarized in the table below. Registered CCO users can use the Bug Toolkit registered customers only for more details on these bugs. The following counters under the output of show controller can only be cleared if the module is OIRd or the Router is reloaded. Note: We do not recommend doing this in a production environment as it will impact all the customers tied to that module.

For this card to be recognized, it is necessary to have the feature card per-flow queuing FC-PFQ on the processor card. The maximum rate that can be configured under a vc-class will be dictated by the higher speed ATM interface. This can be seen in the following scenarios below:. As can be seen, the PCR for this class has an upper limitation of Kbps.

In this case, the PCR maximum value that can be configured is Kbps. When configuring traffic shaping, the parser the CLI must decide what the maximum rate is. The parser will then scan the router for the higher speed interface and use its rate for the maximum shaping rate. Contents Introduction. My circuit has been provisioned to run IMA.

I have two sites, each equipped with a router and an IMA card. What counters can be cleared when you do a clear counters for IMA interfaces? An example are digital data that are sent through the internet, but also digital telephone signals, such as for instance in case of cordless GSM telephones. The data are sent in the form. This can take place via a physical cabling in for instance copper or glass fibre, or cordless, for instance via infrared or radio waves.

Because the capacity of data transfer, often coupled to bandwidth, of the media over which the data are sent is mostly too small, the data are often compacted.

However, this has often appeared not to be sufficient. Additionally many of these methods are aimed at optimising the data transfer between two computers. Moreover, many techniques require an overhead, and are not always as robust regarding the errors or failures of lines and other malfunctions.

It is among others an object of the present invention to at least partially solve these problems. To that end the invention provides a method for digital inverse multiplexing digital data, wherein a packet of digital data is split into: a first flow wherein the packet of digital data is sent from front to rear; a second flow wherein the packet of digital data is sent from rear to front, and; a third flow, consisting of a flow of data elements obtained from each time a first data element of the packet of digital data from the rear part of the front subarea of the packet and a second data element of the packet of digital data from the front part of the rear subarea of the packet that are reduced into one third data element by means of a reversible operation.

Additionally the invention provides a device for sending a packet of digital data consisting of data elements, comprising: a transmission module, adapted for transmitting the data elements; a memory module, adapted for storage of the packet of digital data; a reading module, adapted for reading each time two data elements from two parts of the memory module, one data element from the rear part of the front subarea of the packet, and one data element from the front part of the rear subarea of the packet; an operator, adapted for converting said two data elements into one data element to be transmitted, and a construction module, adapted for receiving the data elements of the reading module, supplying the data elements to the operator, and receiving the resulting data element from the operator and supplying the data element to the transmission module.

Additionally the invention provides a device for receiving a packet of digital data consisting of data elements, comprising: a receiving module, adapted for receiving at least three flows of data elements; a memory module, adapted for storage of the data elements; an operator, adapted for converting two data elements in one data element; a counting module, adapted for tallying the quantity of data elements that have been received from each flow; a decision module, adapted for determining whether all data elements that are necessary for reconstructing the complete packet of digital data are present and to determine which part of the packet has to be determined by means of reconstruction, and a reconstruction module for retrieving each time two data elements from the memory means, which is connected to the operator for supplying said data elements to the operator, discharging the resulting data element of the operator and writing the resulting data element to the memory module.

Additionally the invention provides software for receiving a packet of digital data that is sent in at least three flows of data elements, comprising: a writing routine for writing the data elements of the flows of data elements to the memory means; a counting module for tallying the quantity of data elements that have been received from each flow; a decision routine for determining whether all data elements that are necessary for reconstructing the complete packet of digital data are present and to determine which part of the packet has to be determined by means of reconstruction; an operator routine for converting two data elements into one data element, and a reconstruction routine for retrieving each time two data elements from the memory means, for supplying said data elements to the operator routine, for discharging the resulting data element from the operator routine and writing the resulting data element to the memory means.

By splitting the data flow in several flows, wherein a first flow starts sending the data from the front and works its way to the rear, the second flow works from the rear to the front, and at least one third flow according to the invention is defined, the possibility is given to very quickly send data between and to for instance computers. Additionally, because of the specific way in which the flows are compiled it is not necessary to let others than the transmitter s and receivers communicate with each other.

Possible different transmitters do need not communicate with each other. Additionally no complex data processing is necessary to for instance tally when all data have been received. Moreover, it is possible as a result of the invention to realise a fast and robust data transfer of a low overhead, also because a third check signal is compiled from the data. In many cases the data connection is a-symmetrical: the transfer capacity is smaller than the receiving capacity.

In the method according to the invention, the entire receiving capacity can be used despite the smaller transmission capacity. This may for instance be of importance in so-called streaming broadcasts through the internet, wherein through the internet digital radio broadcasts and in the future even television or video can take place.

The data flows can also enter via various lines. For instance one data flow can for example enter via a telephone line, and another data flow via a cable, the electricity grit or cordless via GSM. It is also possible to let the data flows enter via one cable by means of physical multiplexing. The invention therefore actually offers a specific form of digital inverse multiplexing.

Inverse multiplexing according to the invention can take place at different levels, at micro level and at macro level, or simultaneously at different levels. A possible micro level is bit level. A possible macro level is the level of data packets that are merged into data at receipt, as known from connections that run via the internet. In an embodiment of the method consecutive first data elements from the rear part of the front subarea are selected from rear to front.

As a result even less overhead and control is necessary. In an embodiment thereof or of the method according to the invention consecutive second data elements from the front part of the rear subarea are selected from front to rear, which once more considerably simplifies the control. In an embodiment each time an immediately following data element is selected. In one of the preceding methods the packet of digital data, if necessary supplemented to a packet that can be split into two equal parts, can be split into two equal sized parts.

As a result fewer positions have to be tallied, and a simple method can be guaranteed. In one of the preceding methods the first and second data elements are bits of the packet of digital data, and the third data element is the result of a single binary operation, preferably an XOR operation, on the first data element and the second data element.

By means of a simple, reversible binary operation a quick and simple method can be realised. In a embodiment according to any one of the preceding methods, the data elements of the first, second and third flow, respectively, are placed in a first, second and third data buffer, respectively.

Thus the data buffers can have the size of half the packet of digital data. In this way a simple method can be realised with minimal memory means and control.

In another embodiment of the method the data elements of the first, second and third flow, respectively, are placed in one data buffer having the size of the packet of digital data.

In this way optimal use is made of memory means available. In said embodiment the first flow can fill the data buffer from front to rear, the second flow can fill the data buffer from rear to front, and the third flow is duplicated, wherein one duplicated flow fills the data buffer from the middle to the front, and the other duplicated flow fills the data buffer from the middle to the rear.

As a result very simple implementation is possible. In another embodiment the data elements of the first and second flow are placed in a first data buffer, wherein the first flow fills the data buffer from front to rear, and the second flow fills the data buffer from rear to front, and the data elements of the third flow are placed in a second data buffer. This is for instance advantageous when the first or second flow are very fast.

It is simply possible then to let that flow run beyond the half. In an embodiment of a method as described above, either the first or the second flow can overwrite data elements already present in the data buffer originating from the third flow.

In an embodiment of the method a first, second or third device, respectively, sends the first, second and third flow, respectively, to a fourth device. The fourth device can send a signal to the first, second and third device when either the data buffer is full or the respective data buffers are full, or stops sending receipt confirmations as soon as the data buffer is full or the respective data buffers are full.

In a possible embodiment, for instance when transmitting or receiving streaming internet content or other sequential signals, the flows are almost simultaneously sent. An embodiment of the method described above relates to a method wherein a transmitting device sends the first, second and third flow to a first, second and third receiving device, respectively, and wherein the first, second and third receiving device forward their respective flows to the other two receiving devices.

Additionally the invention relates to a method for sending a packet of digital data to a first device in an organic data network, wherein at least two transmitting devices in the data network simultaneously send complementary data packets to the first device and a third transmitting data device sends data packets to the first device that have been obtained from each time a first data element from the rear part of the front subarea of the packet and the second data element from the front part of the rear subarea of the packet which by means of a reversible operation have been reduced into one third data element, wherein the data packets of the transmitting devices form the packet when merged.

In an embodiment of this method the first device controls the transmission of the transmitting devices, and the first device forwards the data packet to at least one device in the data network, independent of the transmitting device or devices. As a result the method, the software or the device can be deployed in an organic network as described in Dutch patent Additionally the invention relates to a method for receiving a packet of digital data, wherein a receiving device provided with data storage means creates a data buffer in the data storage means the size of a packet of digital data to be received, and after that almost simultaneously receives a first flow, a second flow, and at least one third flow of data elements, wherein the receiving device fills the data buffer from front to rear with the first flow of data elements and fills the data buffer from rear to front with the second flow of data elements, and fills the data buffer from the middle to the front and to the rear with the third flow of data elements.

In an embodiment of this method the receiving device makes it known to transmitting devices of the flows of data elements when the front or rear half of the data buffer is full and the quantity of data of the third flow and the flow that does not fill the data buffer halfway yet together are sufficient to fill the other half of the data buffer. Additionally the invention relates to a method for sending a packet of digital data, wherein a device provided with data storage means creates a data buffer in the data storage means, stores the packet of digital data in the data buffer, converts each time a first data element from the rear part of the front subarea of the data buffer and a second data element from the front part of the rear subarea of the data buffer into one data element by means of a reversible operation, and transmits said data element.

In an embodiment of one of the methods described above for either receiving or sending a packet of digital data at least three flows of digital data are almost simultaneously received or sent, respectively. A device for receiving according to the invention can furthermore comprise a duplicating module, adapted for duplicating a data element and writing each of the duplicated data elements to the memory module.

Additionally the invention relates to software for sending a packet of digital data according to a method described above, wherein the software is provided with: a construction routine for retrieving two data elements from the memory means, one data element from the rear part of the front subarea of the packet, and one data element from the front part of the rear subarea of the packet, and converting said two data elements into one data element by means of a reversible operation; a transmission routine for transmitting the wanted flow of data elements, and a stop routine for receiving and processing an instruction from a receiver of a flow of data elements to stop transmitting.

In an embodiment said software further comprises: an instruction routine for receiving an instruction which of the flows of data elements has to be sent. According to another embodiment, a method is provided for transmitting digital data, wherein a packet of digital data elements is split into a front sub-packet and a rear sub-packet.

In accordance with another embodiment, a method is provided for receiving a packet of digital data of data elements 1 thru n, wherein a receiving device is provided with data storage means. The data storage means may include at least a first and a second data buffer. The first data buffer may have the size of the packet of digital data to be received and the second data buffer may have at least half the size of the packet of digital data.

The receiving device may receive a first flow of data elements A, a second flow of data elements B, and at least one third flow of data elements C; fill the first data buffer from front to rear with the data elements of the first flow of data elements and rear to front with the data elements of the second flow; fill the second data buffer with the data elements of the third flow of data elements C; and determine the amount of data elements it has received in the first, second and third flow each time it receives a data element.

Another embodiment relates to a method for receiving a packet of digitat data of data elements 1 thru n, wherein a receiving device is provided with data storage means.

The data storage means may include at least a first, second and third data buffer, the data buffers being at least half the size of the packet of digital data to be received. Another embodiment relates to a device for sending a packet of digital data consisting of data elements. In another embodiment, a device is provided for receiving a packet of digital data consisting of data elements. Another embodiment relates to an apparatus comprising a machine-readable medium containing instructions which, when executed by a machine, cause the machine to perform a set of operations.

Another embodiment relates to an apparatus comprising a machine-readable medium containing instructions which, when executed by a machine, cause the machine to perform operations.

Preferably a device stops sending after receipt of a signal from the receiving device. As a result the coordination is again simple. Additionally the invention relates to software provided with routines for carrying out the method according to one or more of the preceding claims.

From the above description, in combination with the figures and their description, it will immediately be obvious to the expert which routines are necessary to that end, and how said routines have to work with respect to each other.



0コメント

  • 1000 / 1000