This application claims priority to European patent application no. EP 14168191.6, filed May 13, 2013, which is hereby incorporated by reference in its entirety.
1. Field of the Invention
The present invention relates to a method and apparatus for the transmission of data over a plurality of network links. The invention has particular, but not exclusive, relevance when one or more of the plurality of network links is a wireless network link.
2. Description of the Related Technology
Mobile communication devices, such as cellular telephones and portable computing devices (e.g. laptop computers and tablets), can communicate with remote devices using wireless communication techniques. Nowadays, users of the mobile communication devices wish, and even expect, to be able to carry out more and more applications. However, the operation of some of these applications is limited by the bandwidth and latency of the available wireless communication techniques.
A single good quality network link is the preferred connection between a wireless access point of a network, e.g. a base station of a public land mobile network (PLMN) or a WiFi router, and a mobile communication device. However, often this cannot be realized because mobile communication devices, by their nature, move into and out of various connection states with different network hosts. In addition, the quality of a network link can vary over time, for example due to levels of network traffic, and cannot be guaranteed to meet bandwidth and latency requirements at all times.
Various proposals have been made to address this problem. One suggestion is the use of compression techniques to reduce the amount of data sent, and accordingly the required bandwidth. For example, US patent application publication number US 2007/0247515, “Handheld video transmission and display” describes a wireless hand-held video player which uses compression techniques in order to make better use of the available bandwidth of a single wireless link. However, as the screen size and screen resolution of mobile devices increase, the amount of data required to provide a desired quality of video playback increases and improvements to compression techniques alone are unlikely to be able to manage this increase. Compression techniques are also known to increase overall latency, reducing the suitability of high compression techniques to real-time applications such as video games or video conferencing.
With the increase in the number of available mobile communication devices, there has also been an increase in the number of available wireless networks. Examples of available wireless networks include WiFi a/b/g/n, GPRS, E-GPRS, UMTS, Wi MAX, and LTE. These wireless networks provide network links with differing bandwidths and latencies. Most cities, and many populated rural areas, are now provided with coverage by multiple land-based cellular networks in addition to patches of coverage from WiFi hot-spots, all of which currently offer Internet Protocol (IP) packet based networks. This provides an opportunity for appropriately equipped, devices to utilize one or more of these available wireless networks.
Inverse multiplexing is a specialized form of network routing that allows two network devices to be connected by more than one stable network link in order to transfer data more efficiently. This is achieved by the transmitting network device dividing data to be transmitted into different parts and then transmitting the different parts at the same time across respective network links. At the receiving network device, the different parts are reconstructed back into the original data. Sending data over a plurality of network links in this manner is termed aggregation. Some (or all) of the data may be duplicated on one or more of the network links to mitigate the effect of a failed link. This results in higher overall reliability. Inverse multiplexing techniques, if implemented correctly, can enable network devices to communicate more effectively, and so support more demanding applications.
Known inverse multiplexing systems utilize stable network links with fixed endpoint addresses. Network links for mobile devices, on the other hand, are constantly changing. For example, the available wireless network links, as well as the bandwidth and latency in each available wireless network link, varies over time both as a function of the geographic position of the user and as a function of signal strength. In addition, activities by other users can also have an impact on the available resources of a wireless network. Furthermore, different wireless networks using different technologies (e.g. WiFi a/b/g/n, GPRS, E-GPRS, UMTS, WiMAX, LTE), as well as each technology potentially having different states of operation (e.g. UMTS user equipment may transfer data by different methods such as FACH, DCH, E-DCH), introduce different variations in the bandwidth and latency.
An inverse multiplexer which is able to cope with rapidly varying heterogeneous wireless network links, while aggregating bandwidth without incurring significant latency penalty or jitter is therefore desired. Such an inverse multiplexer would allow the implementation of more demanding applications without waiting for improvements to existing wireless network technologies.
The present invention has been made with the aim of providing an improved inverse multiplexing technique that is applicable to varying heterogeneous wireless network links.
In accordance with an embodiment of the invention, there is provided a method of transmitting data from a first network device to a second network device using a plurality of network links. The method comprises the first network device sending first data to the second network device over a first network link at a first transmission time and sending second data to the second network device over a second network link at a second transmission time. The first network device subsequently receives from the second network device an indication of the time difference between reception of the first data over the first network link and reception of the second data over the second network link. The first network device then calculates a propagation time difference between the time taken for the first data to reach the second network device over the first network link and the second data to reach the second network device over the second network link using the received time difference indication and the first and second transmission times, and determines a network link configuration and data sending order using the calculated propagation time difference.
In accordance with another embodiment of the invention, there is provided a method of processing data sent from a first network device to a second network device using a plurality of network links. The method comprises the second network device receiving first data from the first network device over a first network link at a first reception time and receiving second data from the first network device over a second network link at a second reception time. The second network device calculates the time difference between reception of the first data over the first network link and reception of the second data over the second network link, and sends an indication of the calculated time difference to the first network device.
In accordance with another embodiment of the invention, there is provided an inverse multiplexer comprising: an overall send window for receiving data to be transmitted to a remote network device; and a scheduler for directing data from the overall send window over the plurality of network links to the remote network device; wherein the scheduler is operable to: send first data over a first network link at a first transmission time to the remote network device; send second data over a second network link at a second transmission time to the remote network device; receive from the remote network device an indication of a time difference between the reception of said first data over the first network link and reception of said second data over the second network link; calculate a propagation time difference between the first network link and the second network link using the received time difference indication and the first and second transmission times; and determine a network link configuration and data sending order using the calculated propagation time difference. The scheduler may calculate the propagation time difference by subtracting the difference between the second transmission time and the first transmission time from the received time difference. The scheduler may further be operable to determine the network link configuration and data sending order using an estimate of the bandwidths of the network links. The scheduler is further operable to process a first acknowledgement from the second network device of receipt of said first data and a second acknowledgement from the second network device of receipt of said second data, said second acknowledgement including said time difference indication. The scheduler may send the data out-of-order over two or more of the plurality of network links.
The inverse multiplexer may comprise a plurality of network link specific send windows, each network link specific window receiving data for sending over a respective one of the plurality of network links, wherein the scheduler is operable to transfer data to the network link specific send windows in order to send data over the plurality of network links.
In accordance with a further embodiment of the invention, there is provided a network device comprising: means for receiving first data from a remote network device over a first network link at a first reception time; means for receiving second data from the remote network device over a second network link at a second reception time; means for calculating the time difference between reception of the first data over the first network link and reception of the second data over the second network link; and means for sending an indication of the calculated time difference to the remote network device. The second data may be a retransmission of the first data. The network device may further comprise: means for sending an acknowledgement to the first network device of the receipt of the first data; means for sending an acknowledgement to the first network device of the receipt of the second data; wherein the second acknowledgement includes said time difference indication.
By way of example only, various embodiments of the invention will now be described with reference to the accompanying drawings.
As shown, the server 10 and mobile device 60 are interconnected via a plurality of network links 40a-40d. Four network links are shown in the figure, but any number may be provided. The network links 40a-40d can be any suitable network, including both wired and wireless (e.g. WiFi a/b/g/n, GPRS, E-GPRS, UMTS, WiMAX, LTE). The network links 40a-40d can all have the same network technology, all have different network technologies, or a mixture of similar and dissimilar network technologies. For example, the first network link 40a may be a wired link to a Local Area Network (LAN), the second network link 40b may be a wireless link to a PLMN, and the third and fourth network links 40c, 40d may be wireless links to respective WiFi networks. The number of available network links will change as the mobile device 60 moves into areas having different accessible networks. In addition, even if the mobile device 60 remains stationary, the number of utilized network links can change over time if one or more of the network links changes in transmission quality. Furthermore, one or more of the links may be asymmetric (i.e. the available bandwidth and latency in the downlink direction is different to that available in the uplink direction). The network links 40a-40d are shown as independent networks for clarity, but they may overlap or share infrastructure in reality.
The server 10 is connected to an inverse multiplexer 20 (hereafter called the transmitting inverse multiplexer 20) according to one or more embodiments of the present invention. The transmitting inverse multiplexer 20 includes a plurality of network interfaces 28a-28d, each network interface 28 interfacing with a corresponding one of the plurality of network links 40a-40d. The transmitting inverse multiplexer 20 processes a data stream received from the server 10 to generate one or more data sub-streams. Each data sub-stream is output from the transmitting inverse multiplexer 20 via a respective network interface 28.
In this example, the transmitting inverse multiplexer is a network interface card removably mounted on an interface board of the server 10.
The mobile device 60 is connected to a second inverse multiplexer 50 (hereafter called the receiving inverse multiplexer 50) according to one or more embodiments of the present invention. In this example, the receiving inverse multiplexer 50 is removably connected to the mobile device 60 by a USB link. As shown in
As shown in
Once the determination has been made, the transmitting scheduler 24 selects and moves data from the overall sending window 22 into one or more of the available network link specific send windows 26a-26d. The link specific send windows 26a-26d hold the data ready to send to the network interfaces 28a-28d. The transmitting scheduler 24 maintains records of what data has been passed to each of the network link specific send windows 26a-26d, as well as the time of the local transmission (or transmission time-stamp) by the link specific send transceivers 28a-28d. These records are used in determining which network links are to be utilized at any particular time.
In addition to the plurality of network interfaces 58a-58d, the second inverse multiplexer 50 includes a plurality of network link specific reception windows 56a-56d, a receiving scheduler 54, and an overall reception window 56. In the receiving inverse multiplexer 50, the network link specific reception windows 56a-56d hold the data received from the network interfaces 58a-58d. The receiving scheduler 54 takes the data from one or more of the network link specific reception windows 56a-56d and moves the data to the overall reception window 52. If necessary, the receiving scheduler 54 reorders the data, and deletes any duplicate data, before passing it to the overall reception window 52. Once the data is correctly assembled and re-ordered, the data in the overall reception window 52 is transferred to the mobile device 60.
As will be described in more detail hereafter, the receiving scheduler 54 also has a function of generating an acknowledgement that is returned to the transmitting scheduler 24. The acknowledgement includes the additional information that is used by the transmitting scheduler 24 to determine which order the data should be sent, and which network links 40a-40d should be utilized.
Within the lower sub-layers 130b, in this embodiment each individual network link uses a Transmission Control Protocol (TCP) connection, which reliably transfers data while limiting individual network link use according to round-trip-time, and bandwidth estimates as calculated from ACKs (acknowledgements) generated by a remote network device, as per normal TCP operation. In other words, TCP is used to ensure the reliable transmission of data across each distinct network link while estimating round-trip time and bandwidth. While the format for TCP is unchanged, the TCP implementation itself is modified to allow access to the connection measurements and metrics.
The benefit of using TCP at this level is that it allows for many intermediate network firewalls, routers and bridges to be traversed without special handling. The use of TCP enhancements (such as TCP Reno, Westwood or beyond), which may slightly improve individual connection performance without creating an overly large load on the network links, is not precluded. The API to use TCP sockets is also well standardized and understood, and by substituting the TCP implementation, the “TCP meltdown problem” that occurs when stacking or tunneling TCP through TCP can be avoided.
While the upper transport sub-layer 130a and the plurality of lower transport sub-layers 130b are shown as distinct blocks in
In the simplest implementation, the lower sub-layer 130b TCP connections are seen as a simple reliable data pipe through which messages can be transferred at the application level, over the normal TCP functions. In such a system, minimal modification is required to the TCP. However, as will be discussed below in more detail, additional overhead is created by the need to transmit additional information from the receiving scheduler 54 to the transmitting scheduler 24, in addition to that sent by TCP itself. In one arrangement, TCP option fields can be used to augment existing TCP ACK messages with the required additional information.
An inverse multiplexing system as a whole requires a processing step at each of two communicating network devices. This processing step acts to transform original data into a format suitable for division between the plurality of utilized network links, directs the divided data through different networks, and then transforms the data back again to recover its original form at the receiving network device. Previously, the processing step has been standardized to bring the techniques of inverse multiplexing to a number of applications, such as low cost electrical Ethernet links on PC servers or workstations (e.g. IEEE 802.3ad), and inter-continental optical submarine communications cables. However, these current applications employ a plurality of stable network links where endpoints have fixed addresses, and which have been set up for the purpose of aggregation. As such, the characteristics of each network link changes slowly or can be considered stable under normal operating conditions. This means the processing step may easily be carried out and ensures the effect of aggregation is beneficial.
Where the properties of the various network links between two communicating network devices differ in some determinable manner (e.g. they are heterogeneous), the use of the different network links may be chosen to exploit this heterogeneity to an advantage. For example, where the network links have different latencies, a routing system may be employed to utilize only the quickest network link such that a server and a mobile device can communicate with the lowest possible delay. If there are differing financial costs to transport data on each of the network links, the cheapest network link may be selected in order to save money.
In order for an inverse multiplexing system to take advantage of varying heterogeneous wireless network links, there needs to be a way for an inverse multiplexer to determine which network links to use, when to use a particular network link, and how to format the data for transmission. This determination needs to be carried out repetitively such that any change in the network link states can be quickly detected. By repetitively performing the determination it is possible for the inverse multiplexer to adapt to changes in the network links, and so maintain maximum bandwidth with minimum latency. In the arrangement shown in
The duplication of data across network links is not precluded, and as discussed below, may actually provide advantages in transmission reliability. Under some circumstances the transmitting scheduler 24 may also decide that no data should to be sent at a particular time.
The individual network links 40a-40d transport the data to the network link specific reception transceivers 58a-58d of the receiving inverse multiplexer 50. From the link specific reception transceivers 58a-58d, the data is sent to the network link specific reception windows 56a-56d. This process frees both the overall send window 22 and the link specific send windows 26a-26d of the transmitting inverse multiplexer 20 to make space for new input. Although not shown in
With reference to
In
Referring to
As shown on the right hand side of
Upon reception of data, the receiving scheduler 54 returns an acknowledgment to the transmitting scheduler 24. Together with the acknowledgement, the receiving scheduler 54 also sends additional information to the transmitting scheduler 24. The additional information sent depends on whether the data received is duplicate data. Once a data packet is moved to one of the network link specific reception windows 56a-56d from the link specific transceivers 58a-58d, the receiving scheduler 54 checks the remaining network link specific reception windows 56a-56d, and determines whether the received data packet is a duplicate (steps S11 and S12 of
The additional information includes a network link identification and a time difference. When duplicate data is received over a network link that is different from that of the network link used to send the original data, the network link identification identifies the network link used for sending the original data. In this context, it should be understood that “original data” refers to the first received data in case of receiving duplicate data, it does not refer to the data received by the overall sending window 22 from the server 10. The network link identifier is determined from the locally held records in the receiving scheduler 54. The time difference represents the positive elapsed time (or time delta) between the original reception of the data and the reception of the duplicate data. If the data is original, null values are used for the network link identification and time difference.
In the present example, at the time of reception of the P1 data, the receiving scheduler 54 generates and sends an acknowledgement P1ACK at time Tr=125 ms to the transmitting scheduler 24: The P1 data is original data (i.e. query result in step S12 is NO), and so the acknowledgement, P1ACK includes the additional information containing a null network link identification and null timing information. The receiving scheduler 54 also records the local time of reception of the data (P1 data) and the first network link 40a as the network link used for the transmission of the data (step S13). In some systems the network interface 58 assists by recording the time at which a data packet entered the device (e.g. to support IEEE1588), otherwise the time can be taken from a local clock of suitable resolution.
Referring again to
At the receiving inverse multiplexer time Tr=160, the duplicate P2 data is received over the second network link 40b. Based on steps S10 to S12 (
The receiving scheduler 54 compares the time of reception of the duplicate data and original data, and calculates a time difference (step S15). Again, the timings may be taken either from a network adaptor or a local clock. In the present case the time difference is calculated as being 160 ms−125 ms=35 ms. The receiving scheduler 54 then sends the acknowledgement P1ACK to the transmitting scheduler 24, which includes the additional information of the time difference (35 ms) and the identification of the network link used to transmit the original P1 data (the first network link 40a) (step S16). The receiving scheduler 54 then discards the duplicate data, P1 data, (step S17).
At transmitting inverse multiplexer time Ts=80, the second acknowledgment P2ACK is received from the receiving scheduler 54. The transmitting scheduler 24 calculates the round-trip-time of second network link 40b as 80−30=50 ms. Given that the acknowledgement, P2ACK, also includes the additional information, the transmitting scheduler checks whether this information contains null values (step S03
Propagation delay=time difference at reception time difference at transmission.
In the present example, using its own records, the transmitting scheduler 24 knows that P1 data and P2 data were sent at Ts=10 and 30 ms, respectively. The transmitting scheduler 24 calculates the time difference at transmission as 30 ms−10 ms=20 ms. The transmitting scheduler 24 also knows the time difference at reception from the additional information sent from the receiving scheduler (PACK), and subtracts the calculated time difference at transmission from the reported time difference. This is calculated as 35 ms−20 ms=15 ms. Therefore, the propagation delay difference between the first network link 40a and the second network link 40b is determined as 15 ms. In other words, the data sent on the second network link 40b took 15 ms longer to arrive at the receiving inverse multiplexer 50 than the (same) data sent on the first network link 40a. The transmitting scheduler 24 uses the calculated difference in propagation delay between the different network links to determine the transmission order of data packets, and which of the network links 40a-40d to use (step SOS).
In the above described example, when picking data from the overall send window 22 to be transmitted on the second network link 40b, the 15 ms propagation time delay can be used together with an estimate of network link bandwidths (estimated in a conventional manner such as packet-pair probing, accounting previously acknowledged data, using TCP metrics or being guided by physical layer supplied meta-data such as modulation and coding scheme selection or channel conditions) to choose more recent data in order to compensate for the difference in propagation delay. For example, if the first network link 40a is estimated to be operating at 1 Mbit/s and data has just been sent using the first network link 40a, the transmitting scheduler skips the next 15Kbits of the send window before selecting any data to be sent by the second network link 40b. Assuming the first and second network links 40a, 40b continue to operate as estimated, data from the second network link 40b will then arrive at the receiving inverse multiplexer 50 in the correct order and without increasing latency. If the send window 22 does not contain more than 15KBits of queued data, then the bandwidth can be conserved by prohibiting use of the slower second network link 40b until either the send window 22 has more than 15Kbits of queued data or the speed and quality of the second network link 40b improves to the extent that sending again becomes beneficial. Alternatively, one of a number of retransmission mechanisms may decide to utilize the second network link 40b instead of letting it idle.
The transmitting scheduler 24 not only bases the determination of how the data is split between the various network links on the calculated propagation delay, but also on the calculated round-trip-times of each network link, the estimated bandwidths, and other metrics (or statistics) from the TCP.
According to the above, it can be seen that the transmitting scheduler 24, by processing the additional data sent with acknowledgement messages received from the receiving scheduler 54, together with the locally stored transmission times (time-stamps), can calculate the unidirectional propagation delay difference between different network links 40a-40d. This does not require synchronized clocks at the server and mobile device. By comparing the send time-stamp of each data packet together with the time difference returned in acknowledgements (for duplicate data), the propagation delay times can be calculated. The propagation delay times are then used together with the conventionally collected bandwidth, round-trip-time estimates, and the calculated round-trip times of each data link, to send data deliberately out-of-order to account for differing network link delays. If the estimates are sufficiently accurate, data should then start to arrive in the expected order at the mobile device, thereby approaching perfect aggregation.
In addition to out of order transmission, the transmitting inverse multiplexer 20 can also use the gained metrics to minimize the size of the overall send window 22. When out-of-order sending is in operation, the transmitting inverse multiplexer can calculate how large the overall send window 22 needs to be to enable data to be supplied, based upon the bandwidths and latencies. Limiting the size of the send window 22 prevents the addition of excess latency to the overall network link, and conversely placing a configured upper limit on that window size will also prevent heterogeneous network links whose delay is too great from being utilized to send new unique data.
In some arrangements, it is preferable that there are mechanisms for deliberate retransmission of data on different network links, even if a network link is determined to be unreliable or slow. This is because retransmissions are needed to update and refresh the metrics used by the transmitting scheduler 24 to ensure that the transmitting scheduler 24 has a good model of the network link characteristics. For example, over time an operating, network link may improve from being the slowest network link to such an extent that it becomes the fastest or most reliable network link. Without some form of deliberate retransmission over, or limited use of, such a network link, the transmitting inverse multiplexer 20 is not able to determine the improvement in the network link, and cannot make better use of the network link as it improves. Conversely, a network link can deteriorate over time from being a good network link to being a poor network link, and so a method of detecting changes in the network link characteristics is very useful.
One such retransmission mechanism is based on how much unacknowledged data is present on a network link. In particular, if the amount of unacknowledged data is less than some preset value when a network link is ready for transmission, then some unacknowledged data from the inverse multiplexer's send window 22 is duplicated into the network link specific send window of that network link. This ensures that, rather than idling, under-utilized network links 40a-40d are used to add redundancy to information transfer, while also collecting statistics on the network link itself. If sufficient traffic is present, the network links should automatically contain enough data that this type of deliberate duplication ceases, and the network links naturally operate in an aggregating manner.
A second retransmission mechanism uses the estimated network link-specific propagation delay estimates, and round-trip time, to determine if either the acknowledgement for some sent data is late, or if sending the same data on a new network link may result in a faster transfer and earlier acknowledgement for the data. This ensures quick recovery from a failed network link, and also increases the rate at which metrics are collected for a network link whose properties start to diverge from the collected statistics.
As discussed above, in embodiments of the present invention duplicate transmission and reception is not entirely bad. Although bandwidth is, in one sense, wasted due to duplicated data being sent and then discarded, in another sense the duplicated data allows valuable timing information to be gathered and used to provide feedback to improve the behavior of the transmitting inverse multiplexer. It is the structure and content of the acknowledgements that allow not only for each network link's round-trip-time to be estimated, but also for the relative differences in unidirectional propagation delay for each network link to be computed.
For mobile networks where the network link is often asymmetric and optimized for faster downlink than uplink, being able to determine the individual properties of each leg of the round-trip is important in producing a high performing inverse multiplexer.
According to the deliberate retransmission mechanisms, new network links, idle network links, or those whose properties start to diverge from that estimated cause increased retransmissions, which in turn updates the sender measurements at a higher rate. This is particularly important in situations where one or both of the network devices is moving.
The use of the TCP protocol for the lower transport sub-layers 130b ensures the overall scheme operates on any TCP capable network, allowing the traversal of firewalls, routers, bridges and switches. TCP also ensures fair use of each network link with respect to other network users, whether they are using a simple TCP connection, or an aggregating connection as described.
The communication system in one or more embodiments of the present invention has particular advantage when data being transferred between the network devices is real time data. In particular, because of the interactions between the transmitting scheduler and receiving scheduler, the available network links are more efficiently utilized to achieve a high bandwidth together with low latency. Furthermore, because duplicate data may be sent, any changes in the performance of the network links, or additional network links becoming available, are easily detected and data can be transferred to these links if desired to maintain high bandwidths. This results in a highly flexible efficient transmission system.
The inverse multiplexers 20, 50 are shown as separate devices to the server 10 and mobile device 60 in
In the illustrated embodiment, for ease of explanation only the transmission of downlink data from a server 10 to a mobile device 60 has been considered. The present invention is equally applicable to the transmission of uplink data from the mobile device 60 to the server 10, in which case the functionality of the transmitting inverse multiplexer 20 and the receiving inverse multiplexer 50 are interchanged. In practice, in many embodiments a first transceiver device or software module, having the functionality of both the transmitting inverse multiplexer 20 and the receiving inverse multiplexer 50, is connected to the server 10 and a second transceiver device or software module, also having the functionality of both the transmitting inverse multiplexer 20 and the receiving inverse multiplexer 50, is connected to the mobile device 60.
The number of network link specific send windows 26a-26d and network link specific reception windows 56a-56d depends on the number of network links 40a-40d used. In situations in which only one network link 40 is available, the transmitting scheduler transmits all data over that single network link and requires only one reception window. In an alternative arrangement, particularly when the inverse multiplexers are embodied in software, the numbers of link specific transceivers 28a-28d, 58a-58d and network link specific windows 26a-26d, 56a-56d may be adapted as the number of network links 40a-40d change and become available for data transmission. When the function of the transmitting inverse multiplexer 20 and receiving inverse multiplexer 50 swap (when transmitting data in the opposite direction to that shown in
Some or all of the transmitting inverse multiplexer and the receiving inverse multiplexer may be implemented by a computer program using some form of processing apparatus. Embodiments of the invention therefore also extend to computer programs, particularly computer programs on or in a carrier, adapted for putting the invention into practice. The program may be in the form of source code, object code, a code intermediate to source code and object code such as in partially compiled form, or in any other form suitable for using in the implementation of the processes according to embodiments of the invention.
The carrier may be any entity or device capable of carrying the program. For example, the carrier may comprise a storage medium, such as a ROM, for example a CD-ROM or non-volatile semiconductor memories, or a magnetic recording medium, for example a floppy disc or a hard disc, or an optical recording medium. Further, the carrier may be a transmissible carrier such as an electronic or optical signal which may be conveyed via electrical or optical cable or by radio or other means.
The carrier may be an integrated circuit in which the program is embedded, or an integrated circuit adapted for performing the program steps, or for use in the performance of the relevant processes. Some or all of the transmitting inverse multiplexer and the receiving inverse multiplexer may be implemented in an Application Specific Integrated Circuit (ASIC) or a Field Programmable Gate Array 5 (FPGA).
Although the present invention has been described in terms of embodiments, it will be appreciated that various modifications and alternations may be made by those skilled in the art without departing from the scope of the invention. The invention should therefore be measured in terms of the claims that follow.
Number | Date | Country | Kind |
---|---|---|---|
14168191.6 | May 2014 | EP | regional |