GB2460434A - Encoding data with parity information and transmitting it over at least three paths to enable data reconstruction in the event of a path failure - Google Patents

Encoding data with parity information and transmitting it over at least three paths to enable data reconstruction in the event of a path failure Download PDF

Info

Publication number
GB2460434A
GB2460434A GB0809767A GB0809767A GB2460434A GB 2460434 A GB2460434 A GB 2460434A GB 0809767 A GB0809767 A GB 0809767A GB 0809767 A GB0809767 A GB 0809767A GB 2460434 A GB2460434 A GB 2460434A
Authority
GB
United Kingdom
Prior art keywords
data
paths
node
path
nodes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
GB0809767A
Other versions
GB0809767D0 (en
Inventor
Robert Hancock
Alan Ford
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Roke Manor Research Ltd
Original Assignee
Roke Manor Research Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Roke Manor Research Ltd filed Critical Roke Manor Research Ltd
Priority to GB0809767A priority Critical patent/GB2460434A/en
Publication of GB0809767D0 publication Critical patent/GB0809767D0/en
Publication of GB2460434A publication Critical patent/GB2460434A/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/02Arrangements for detecting or preventing errors in the information received by diversity reception
    • H04L1/06Arrangements for detecting or preventing errors in the information received by diversity reception using space diversity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L25/00Baseband systems
    • H04L25/02Details ; arrangements for supplying electrical power along data transmission lines
    • H04L25/14Channel dividing arrangements, i.e. in which a single bit stream is divided between several baseband channels and reassembled at the receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0096Channel splitting in point-to-point links

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

A system comprises at least two nodes with at least three paths between a first node and a second node of the at least two nodes, and a controller. An input data stream is received at the first node where the controller applies a coding scheme to the input data stream. The input data is encoded with parity information and the encoded data is transmitted over the at least three paths to the second node, such that, in the event of failure of any path (fig. 1b), the data can be reconstructed from the data and parity information sent on the other paths. The parity information may be derived using an XOR function, hamming or Reed-Solomon codes.

Description

DATA TRANSMISSION METHOD
This invention relates to a system and a method of transmitting data, in particular for achieving hitless transmission in the event of a loss of a data path.
For a number of applications, involving transmission of critical real time data, such as in aircraft control systems, it is necessary to provide hitless data transmission.
In other applications, where non-hitless transmission has a less serious effect, such as in streaming video, it is desirable to improve efficiency if hitless data transmission is used. Thus, when transmitting a flow of data across multiple paths through a network, providing hitless redundancy against the loss of any one path means that should any path fail, the complete flow can still be reassembled from the remaining paths.
Resilient links between two nodes are conventionally provided by two separate paths. For non-hitless redundancy (i.e. packet loss will occur in a failure), the two paths may either act aggregated together, or one as a hot spare' for the other, taking over in the event of a failure. Both these have a delay when a failure occurs and is detected, and some packets will be lost. A hitless mechanism uses the two paths together, but with the traffic duplicated on both, so if one fails the traffic can be acquired from the other. This has the disadvantage that for two links, only the bandwidth of one link is provided. To provide redundancy for two links, four links would be required, so the useful bandwidth is halved.
In accordance with a first aspect of the present invention, a system comprises at least two nodes; at least three paths between a first node and a second node of the at least two nodes; and a controller; wherein an input data stream is received at the first node; wherein the controller applies a coding scheme to the input data stream, whereby the input data is encoded with parity information and the encoded data is transmitted over the at least three paths to the second node, such that in the event of failure of any path, the data can be reconstructed from data and parity information sent over the other paths.
The encoded data with additional parity information sent on each path may be different, but contains sufficient information to allow any one path which is lost to be reconstructed from the remaining ones.
Preferably, the at least three paths comprise at least two data paths between the first node and the second node of the at least two nodes; and at least one additional path between the first and second nodes.
Preferably, the controller splits the data from the input data stream and transmits the split data streams on the data paths to the second node; and wherein the controller derives the parity information from the input data stream for transmission on the or each additional path to the second node; and wherein the number of additional paths is less than the number of data paths.
The present invention provides additional paths to protect against failure of one or more of the data paths between two end nodes, with less than duplication of the number of paths that are being protected.
Preferably, in the event of loss of data on a data path, the controller reconstructs the input data stream from data received on any other data path and the, or each additional path.
Preferably, for each path which is to be protected, there must be an additional path, i.e. three paths allow for protection against one path failure, but the total number of paths which can be reconstructed in the event of a failure is not otherwise restricted.
The paths may be direct between the first and second node, but in one embodiment, preferably, the paths comprise one or more intermediate nodes.
A typical path between end nodes is routed via a number of intermediate nodes.
These intermediate nodes could be shared by more than one path, but preferably, the paths are disjoint.
Preferably, the system is a communication system.
In accordance with a second aspect of the present invention, a method of transmitting data between nodes in a network comprising at least two nodes, at least three paths between the at least two nodes, and a controller, comprises receiving an input data stream at a first node; the controller applying a coding scheme to the input data stream, whereby the input data is encoded with parity information and the encoded data is transmitted on the at least three paths to a second node, such that in the event of failure of any path, the data can be reconstructed from the data and parity information sent on the other paths.
Preferably, the at least three paths comprise at least two data paths between the first node and the second node of the at least two nodes; and at least one additional path between the first and second nodes.
Preferably, the method further comprises splitting the input data stream for transmission over the two or more data paths to the second node; and the controller deriving the parity information and sending the parity information over the one or more additional paths to the second node; wherein the number of additional paths is less than the number of data paths.
Preferably, the method further comprises receiving the data at the second node, checking that all data sent on the two or more data paths has been received correctly; and reconstructing any lost data using the received data and the parity data stream from the or each additional path.
Preferably, the number of paths for which a data stream can be reconstructed is equal to the number of additional paths.
Preferably, the received data stream comprises a series of packets; and wherein each packet is provided with routing and identity information.
Preferably, error checking is applied to each packet received at the second node before using that packet to reconstruct lost data.
Preferably, one or more of the paths comprise intermediate nodes.
Preferably, the paths are disjoint.
Preferably, splitting of the input data stream is carried out by sending one of a fraction of a packet on each data path; whole packets on each data path; and whole data strings on each data path.
Preferably, the capacity of the or each additional path is greater than or equal to the capacity of the data path having the largest capacity of all the data paths.
Preferably, the parity information is derived using one of an XOR function, Hamming or Reed-Solomon codes.
Preferably, the network is a communication network.
An example of a system and a method of transmitting data in accordance with the present invention will now be described with reference to the accompanying drawings in which: Figures la and lb illustrate conventional link aggregation; Figure 1 c illustrates conventional data duplication; Figure 2 illustrates a first example of a data transmission method according to the present invention allowing for a single link failure; and, Figure 3 shows a second example of a data transmission method according to the present invention allowing for multiple link failures.
Conventionally, multiple-path redundancy has been dealt with using link aggregation, or data duplication, depending on requirements. Link aggregation is illustrated in Figs. 1 a and lb. Traffic received at node 1 is sent over two or more links, A, B, C although which traffic is sent on which link is implementation-specific. In this example, one third of the data is sent along each path A, B & C. If, for example, the link on path A fails, then the 1/3 of the data which was in transit on the path A when it failed will be lost, but the remaining data in the stream is then sent via paths B and C, although more slowly. With link aggregation, no packets are duplicated, and if a link is detected to have failed, that flow of traffic will continue to be sent on the remaining link(s). However, as there is no duplication, this method is not hitless, without the use of a significant overhead in terms of delay and buffers.
Data duplication is illustrated in Fig. 1 c, where traffic from node 1 is sent simultaneously over two links A, B to node 2 and if one link fails, e.g. A, then the lost packets can be obtained from the backup flow on link B. This is hitless since there is no renegotiation delay, and no packet loss. However, using data duplication halves the efficiency for the available capacity.
The invention applies error correction codes to be able to provide protection against the failure of one link while only requiring one additional link, irrespective of the number of links on which data can be sent. Instead of duplicating the data on an additional link for each data link, only one additional link is added, which contains the parity data of the other links. Parity is a checksum from which any missing component can be recreated from the data which has not been lost. XOR is a simple example, Hamming or Reed Solomon coding are examples of more complex relationships.
Given two data paths, a parity algorithm is used to derive the data to be sent down a third path, such that if one of the other paths fails, then the lost data can be recomputed.
If data on one path is lost, it can be reassembled by combining together all the other paths, including the parity path. Other parity schemes can be used in environments with many more paths, providing better redundancy.
By deployment of established parity schemes in a flow-based network environment, protection against failure of any one path in a group of N flows is provided with only one additional flow, rather than N flows as has been required conventionally.
This invention provides a mechanism for protection against single link failure in a network where traffic between two nodes is distributed across multiple paths. This resilience can be provided by one extra link, of equal or greater capacity than the largest link currently existing.
Conventionally, one additional path protects only one data path, i.e. 1:1 sparing, whereas the present invention improves the efficiency by providing an N: 1 sparing, where one path provides redundancy for the failure of any one of the other N paths.
Figure 2 illustrates a first example of the present invention. Two nodes, 1 and 2, are connected with three paths A, B, C through a network or networks. These paths may pass through zero or more nodes during their traversal, and for best resilience are entirely disjoint. For the purposes of the following examples, these paths are considered to have the same capacity, although the principles described are equally applicable to paths of differing capacity, so long as the parity path has a capacity equal to or greater than the largest other path. In Fig. 2, data received at node 1 is split and sent along paths A and B, then parity information, in this example, an XOR of the packets on A and B is sent on C. If there were more paths, then the one additional path is used to send the parity information on, but equally it only protects against failure of one of those multiple paths.
Traffic in the form of a stream of data, segmented into packets or cells, is being sent between Node 1 and Node 2. For each packet sent on links A and B, link C carries a parity packet for this. The simplest parity is XORing every bit in the two packets, A and B, i.e: C=AB With the loss of a packet on any one of the links, this allows the missing packet to be recovered, by XORing the successful packet and the parity packet: A=BC B=AC This principle can be extended to N links, for example, with Z as the parity packet: Z =ABC$D...
A=ZBCD...
For any number of links, so long as only one link is lost, the missing packet can be recovered in this manner.
For protection against multiple failures, a different scheme is required and for each additional failure, another path. An example of this is shown in Fig. 3, where data is sent on paths A, B, C, D and E from node 1 to node 2, with two Reed Solomon parity paths F and G provided. The paths do not have to be disjoint, but it is better if they are because losing one node in a non-disjoint path can result in the loss of both paths.
It is worth differentiating between the data paths and the erasure recovery paths.
Any erasure correction code can be used in the recovery paths. A good example is Reed-Solomon coding. Reed-Solomon has the property that, if the location of an erasure is known, it can correct as many erased bits as there are parity bits.
So, for example, two Reed-Solomon parity paths, with any number of data paths, would protect against the failure of two links, as illustrated in the below diagram.
Here, paths A,B,C,D,E all carry the user data. Paths F and G provide a Reed-Solomon code for those links. These will protect against the failure of any two user data links.
In one embodiment, each packet on each link is encapsulated with another header to ensure correct routing and identify what kind of packet it is. The use of outer layer checksum functionality ensures only non-corrupt packets are used to recreate lost packets.
There are several potential mechanisms for splitting and recombining the traffic at the nodes, which can be used in the examples of a single or multiple parity paths.
One option is to split each packet and send an equal fraction over each link, so for the Fig. 2 example, this means sending half over link A, half over link B, with the parity of both halves over link C. For N non-parity links, the effect is to send l/lvth of a packet over each link.
In another case, whole packets are sent on each link using a round-robin of A, B, A, B, etc, with the parity on C every time there is a pair. This can be done on a per-packet basis, or per flow (identified, for example, by the pair of hosts communicating).
A timeout may be used to ensure that there is not too long a wait before the parity packet is sent and if met, a lone packet is sent, duplicated on C. With flow-based round-robining, a send of the parity packet can be forced whenever the next packet in the flow arrives. In all these cases, packets may be of different sizes, and so the smaller must be padded with zero bits to the size of the larger for XORing.
A further example is to implement a time-division multiplexing type system, where packets are sent every x microseconds, whether there is data to send or not.
XORing with an empty packet simply provides a duplicate of the packet. These schemes are modified accordingly for paths of differing capacity.
For example, when sending fractions of a packet, if path sizes are represented by a', b' and c', and c? a> b, then the fractions of the packet are distributed accordingly: A takes a/(a+b)tl of a packet, and B takes b/(a+b)t of a packet. C does an XOR of these two packets, with the smaller (B) padded with zero bits to the size of A's packet. Thus, for optimum use of bandwidth, all paths should be of equal capacity.
Other parity algorithms could be employed. For example, Hamming (7,4) code provides redundancy against two out of four flow losses if there were three parity flows.
The ability to regenerate any lost packet, e.g. A B XOR C, relies upon the location of the error being known (i.e. for it to be known at 2' when a packet has been lost on A, and thus which packets to XOR on B and C to regenerate A). In the simple XOR example, knowing the location of the erasure is required. This is given by some "out of band" information, such as a sequence number in the packet header. This sequence number must be the same (or derivable) across all paths, so that the correct packets on the remaining links can be XORed together. Bit-error detection is also deferred to the encapsulating protocols.
The outcome of using the invention is that the data is less than duplicated, whereas the number of spare paths may be greater than one for multiple data paths.
The first node can decide how to split the data. This can be done on a per packet basis, but more usually done per flow, as the actual time for transition of a particular path may be different and for example with streaming video, if each successive packet went on a different path, this could affect the resulting images when recombined.

Claims (19)

  1. CLAIMS1. A system comprising at least two nodes; at least three paths between a first node and a second node of the at least two nodes; and a controller; wherein an input data stream is received at the first node; wherein the controller applies a coding scheme to the input data stream; whereby the input data is encoded with parity information and the encoded data is transmitted over the at least three paths to the second node; such that in the event of failure of any path, the data can be reconstructed from the data and parity information sent on the other paths.
  2. 2. A system according to claim 1, wherein the at least three paths comprise at least two data paths between the first node and the second node of the at least two nodes; and at least one additional path between the first and second nodes.
  3. 3. A system according to claim 2, wherein the controller splits the input data stream and transmits the split data streams on the data paths to the second node; wherein the controller derives the parity information from the input data stream and the split data streams for transmission on the or each additional path to the second node; and wherein the number of additional paths is less than the number of data paths.
  4. 4. A system according to claim 2 or claim 3, wherein in the event of loss of data on a data path, the controller reconstructs the input data stream from data received on any other data path and the or each additional path.
  5. 5. A system according to any preceding claim, wherein the paths comprise one or more intermediate nodes.
  6. 6. A system according to any preceding claim, wherein the paths are disjoint.
  7. 7. A system according to any preceding claim, wherein the system is a communication system.
  8. 8. A method of transmitting data between nodes in a network comprising at least two nodes, at least three paths between the at least two nodes, and a controller; the method comprising receiving an input data stream at a first node; the controller applying a coding scheme to the input data stream, whereby the input data is encoded with parity information and the encoded data is transmitted on the at least three paths to a second node, such that in the event of failure of any path, the data can be reconstructed from the data and parity information sent on the other paths.
  9. 9. A method according to claim 8, wherein the at least three paths comprise at least two data paths between the first node and the second node of the at least two nodes; and at least one additional path between the first and second nodes.
  10. 10. A method according to claim 9, comprising splitting the input data stream for transmission over the two or more data paths to the second node; and the controller deriving the parity information and sending the parity information over the one or more additional paths to the second node; wherein the number of additional paths is less than the number of data paths.
  11. 11. A method according to claim 10, wherein the method further comprises receiving the data at the second node, checking that all data sent on the two or more data paths has been received correctly; and reconstructing any lost data using the received data and the parity information from the or each additional path.
  12. 12. A method according to claim 11, wherein the number of paths for which a data stream can be reconstructed is equal to the number of additional paths.
  13. 13. A method according to claim 11 or claim 12, wherein the received data stream comprises a series of packets; and wherein each packet is provided with routing and identity information.
  14. 14. A method according to any of claims 10 to 13, wherein error checking is applied to each packet received at the second node before using that packet to reconstruct lost data.
  15. 15. A method according to any of claims 8 to 14, wherein one or more of the paths comprise intermediate nodes.
  16. 16. A method according to any of claims 8 to 15, wherein the paths are disjoint.
  17. 17. A method according to any of claims 10 to 16, wherein splitting of the input data stream is carried out by sending one of a fraction of a packet on each data path; whole packets on each data path; and whole data strings on each data path.
  18. 18. A method according to any of claims 9 to 17, wherein the capacity of the or each additional path is greater than or equal to the capacity of the data path having the largest capacity of all the data paths.
  19. 19. A method according to any of claims 8 to 18, wherein the parity information is derived using one of an XOR function, Hamming or Reed-Solomon codes.A method according to any of claims 8 to 19, wherein the network is a communication network.
GB0809767A 2008-05-30 2008-05-30 Encoding data with parity information and transmitting it over at least three paths to enable data reconstruction in the event of a path failure Withdrawn GB2460434A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB0809767A GB2460434A (en) 2008-05-30 2008-05-30 Encoding data with parity information and transmitting it over at least three paths to enable data reconstruction in the event of a path failure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB0809767A GB2460434A (en) 2008-05-30 2008-05-30 Encoding data with parity information and transmitting it over at least three paths to enable data reconstruction in the event of a path failure

Publications (2)

Publication Number Publication Date
GB0809767D0 GB0809767D0 (en) 2008-07-09
GB2460434A true GB2460434A (en) 2009-12-02

Family

ID=39637789

Family Applications (1)

Application Number Title Priority Date Filing Date
GB0809767A Withdrawn GB2460434A (en) 2008-05-30 2008-05-30 Encoding data with parity information and transmitting it over at least three paths to enable data reconstruction in the event of a path failure

Country Status (1)

Country Link
GB (1) GB2460434A (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003005661A1 (en) * 2001-07-04 2003-01-16 Nonend Inventions N.V. Dispersity coding for inverse multiplexing
US20040003165A1 (en) * 2002-06-28 2004-01-01 Schulz Jurgen M. Memory subsystem including error correction
US20040017778A1 (en) * 2002-03-25 2004-01-29 Akash Bansal Error detection and recovery of data in striped channels
WO2007003932A2 (en) * 2005-07-01 2007-01-11 Ntnu Technology Transfer As Packet switched networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003005661A1 (en) * 2001-07-04 2003-01-16 Nonend Inventions N.V. Dispersity coding for inverse multiplexing
US20040017778A1 (en) * 2002-03-25 2004-01-29 Akash Bansal Error detection and recovery of data in striped channels
US20040003165A1 (en) * 2002-06-28 2004-01-01 Schulz Jurgen M. Memory subsystem including error correction
WO2007003932A2 (en) * 2005-07-01 2007-01-11 Ntnu Technology Transfer As Packet switched networks

Also Published As

Publication number Publication date
GB0809767D0 (en) 2008-07-09

Similar Documents

Publication Publication Date Title
JP5970059B2 (en) Multilane transmission apparatus and fault lane notification method
US8918691B2 (en) Processing transport packets
US7246303B2 (en) Error detection and recovery of data in striped channels
US7277644B2 (en) Fade-resistant forward error correction method for free-space optical communications systems
JP5918378B2 (en) Parallel data encoding / decoding system
KR101160056B1 (en) System and method for higher throughput through a transportation network
EP1897261A1 (en) Data packet reconstruction in link-based interconnects with retransmission
US20090135717A1 (en) Network protection using network coding
WO2008130159A1 (en) A method of automatic repeat request (arq) in communication system
TW200835213A (en) Forward Error Correction encoding for multiple link transmission compatible with 64B/66B scrambling
WO2008049341A1 (en) Message processing method, message transmitting device and message receiving device
US11936475B2 (en) Method, apparatus, and system for improving reliability of data transmission involving an ethernet device
JP2003143191A (en) Parallel transmitters, parallel receivers and parallel transmission system
US9336080B2 (en) Transmission system and transmission method
Shacham Packet recovery and error correction in high-speed wide-area networks
CN104247319A (en) Apparatus and method for transmitting/receiving packet in communication system
Li et al. Protection against link errors and failures using network coding
GB2460434A (en) Encoding data with parity information and transmitting it over at least three paths to enable data reconstruction in the event of a path failure
JP7116302B2 (en) Signal quality information notification method and relay communication device
WO2021017890A1 (en) Communication method and communication device
CN109560864B (en) Data transmission method and device
US7869344B1 (en) 1+N network protection for mesh networks: network coding-based protection using P-cycles and protection paths
WO2010069829A1 (en) System and method for packet protection switching
WO2022105753A1 (en) Network data encoding transmission method and apparatus
CN114830578A (en) Data sending method, data receiving method, sending device and receiving device

Legal Events

Date Code Title Description
WAP Application withdrawn, taken to be withdrawn or refused ** after publication under section 16(1)