ERROR CORRECTION METHOD FOR A UNIDIRECTIONAL DATA TRANSFER

20210288749 · 2021-09-16

    Inventors

    Cpc classification

    International classification

    Abstract

    Provided is a method for a unidirectional transfer of data from a transmitter to a receiver, having the steps of: demultiplexing the data into multiple data streams; encoding each of the data streams using a forward error correction coding; transmitting the data streams from the transmitter to the receiver via assigned communication channels; correcting a possible error in one of the received data streams on the basis of the forward error correction coding; removing the forward error correction coding from the data; and multiplexing the data.

    Claims

    1. A method for the unidirectional data transfer of data from a transmitter to a receiver, wherein the method comprises the following steps: demultiplexing the data into a plurality of data streams; coding the data streams in each case by way of forward error protection coding; dispatching data streams via associated communication channels from the transmitter to the receiver; correcting a possible error in one of the received data streams on the basis of the forward error protection coding; removing the forward error protection coding from the data; and multiplexing data.

    2. The method as claimed in claim 1, wherein at least one of the data streams is coded with forward error protection coding on the basis of a communication channel associated therewith.

    3. A method for the unidirectional data transfer of data from a transmitter to a receiver, wherein the method comprises the following steps: coding the data by way of forward error protection coding; demultiplexing the data into a plurality of data streams; dispatching the data streams via associated communication channels from the transmitter to the receiver; multiplexing the data at the receiver; correcting a possible error in the received data on the basis of the forward error protection coding; and removing the forward error protection coding from the data.

    4. The method as claimed in claim 1, wherein the data streams are dispatched by way of UDP.

    5. The method claimed as claimed in claim 1, wherein the forward error protection coding is selected on the basis of a type of data to be transmitted.

    6. The method as claimed in claim 1, wherein the forward error protection coding is selected on the basis of a transmission time and/or transmission duration.

    7. A method, wherein data to be transmitted are contained in a file; the file is divided into a plurality of portions; and the portions are in each case transmitted by way of a method as claimed in claim 1.

    8. The method as claimed in claim 7, wherein the portions are transmitted simultaneously.

    9. The method as claimed in claim 7, wherein an association between data streams and communication channels is different for at least two of the portions.

    10. The method as claimed in claim 1, wherein the received data are stored with the forward error protection coding that they contain and the forward error protection coding is removed only in order to access the data.

    11. A transmission device for the unidirectional data transfer of data to a receiver, wherein the transmission device comprises the following: a demultiplexer that is designed to demultiplex data; a coder that is designed to code data by way of forward error protection coding; interfaces for connection to a plurality of communication channels; and a processing apparatus that is designed to control demultiplexing of the data, provision to the data of forward error protection coding and dispatching of the data.

    12. The transmission device as claimed in claim 11, wherein the communication channel is connected to one of the interfaces by way of a data diode in order to prevent reception of data from one of the communication channels.

    13. A reception device for the unidirectional data transfer of data from a transmitter, wherein the reception device comprises the following: interfaces for connection to a plurality of communication channels; a multiplexer that is designed to multiplex data; a decoder that is designed to decode data that are provided with forward error protection coding; a processing apparatus that is designed to control reception of the data, multiplexing of the data and decoding of the data.

    14. The reception device as claimed in claim 13, wherein the communication channel is connected to the interfaces by way of a data diode in order to prevent dispatching of data via one of the communication channels.

    15. A system comprising a transmission device as claimed in claim 11 and a reception device.

    Description

    BRIEF DESCRIPTION

    [0026] Some of the embodiments will be described in detail, with reference to the following figures, wherein like designations denote like members, wherein:

    [0027] FIG. 1 illustrates an exemplary system;

    [0028] FIG. 2 illustrates an exemplary method; and

    [0029] FIG. 3 illustrates a variant of the method.

    DETAILED DESCRIPTION

    [0030] FIG. 1 shows an exemplary system 100 for the transmission of data between a transmission device 105 and a reception device 110 via a plurality of communication channels 115. It is assumed that the communication channels 115 are of the same type, for example in terms of bandwidth, transmission medium, latency time, error rate or availability. Communication channels 115 that differ to a greater or lesser extent may however also be supported. The transmission device 105 may be part of a larger data processing facility and is designed to send data but not to receive them. The reception device 110 may likewise be part of a larger data processing facility and is conversely designed to receive data but not to send them. A communication should flow only from the transmission device 105 to the reception device 110, and a return channel, even only for confirming a transmitted data block, is not provided.

    [0031] The transmission device 105 comprises an optional data memory 120, a demultiplexer 125, a coder 130, one or more interfaces 135 and a processing apparatus 132. An outgoing data diode 140 may be provided between an interface 135 and one of the communication channels 115.

    [0032] The data memory 120 is designed to store a file or structured data that are intended to be transmitted to the reception device 110. The data memory 120 may also be replaced by an interface via which data to be transmitted may be obtained.

    [0033] The demultiplexer 125 is designed to divide the data to be transmitted into a plurality of data streams, wherein a data stream is associated with each communication channel and vice versa. For the division, data present in sequential form may be broken down into packets and these may be allotted to different data streams, for example cyclically. The division may be performed in a known manner such that transmitted packets are subsequently able to be recombined to form the original data, for example by virtue of the packets carrying sequence numbers.

    [0034] The coder 130 is designed to code data that it receives from the demultiplexer 125 using forward error protection coding. In this case, it systematically adds redundant information to the data. Checksums are possibly also formed from one or more packets and inserted in order to make it possible to determine an error in the data. A coder 130 may be provided for each data stream 115, or the coder 130 may operate independently on a plurality of data streams 115. Combined operation, in which it codes a plurality of data streams 115 in a manner dependent on one another, is also possible. The coder 130 provides data packets that are able to be transported by way of UDP.

    [0035] The interface 135 is designed to output outgoing data to a transmission medium of an associated communication channel 115. In this case, information may in particular be converted into a physical phenomenon such as a light value or current value. In one embodiment, a single interface 135 is provided for a plurality of data streams and communication channels 115.

    [0036] The data diode 140 is designed to convey data only in a predetermined direction that is depicted by the arrow direction in FIG. 1. The symbol for a diode, borrowed from electrical engineering, shows that a flow of information counter to the arrow direction is blocked. Such communication is also called simplex communication. A dedicated commercial solution may be used to implement a data diode 140. As an alternative, it is possible to use a network protocol unit that is able to provide data to the communication channel in a unidirectional manner and without any feedback. Such an apparatus is also known as a “data capture unit”. In an embodiment different from the one shown, the positions of the data diode 140 and of the interface 135 are swapped.

    [0037] The processing apparatus 132 comprises a programmable microcomputer or microcontroller and is designed to control components of the transmission device 105. In this case, the processing apparatus 132 may also comprise one or more of the other elements of the transmission device 105.

    [0038] In the present embodiment, at the transmission device 105, data to be transmitted are first demultiplexed and then coded. In another embodiment, first coding and then demultiplexing may also take place. To this end, the positions of the elements 125 and 130 in the transmission device 105 may be swapped; only one connection, instead of a plurality as illustrated, between them is then necessary.

    [0039] The reception device 110 operates in a manner complementary to the transmission device 105. It comprises essentially the same elements as the transmission device 105, and only a demultiplexer 145 instead of the multiplexer 125 and a decoder 150 instead of the coder 130 are provided. All of the variations described above with regard to the transmission device 105 are also possible here. Variants of the transmission device and the reception device 105, 110 may be selected independently of one another, but the orders of demultiplexing and coding at the transmission device 105 and decoding and multiplexing at the reception device 110 must be matched to one another.

    [0040] The demultiplexing and decoding take place in the reverse order with respect to the transmission device 105. In the embodiment illustrated, the data streams received via the interfaces 135 are thus first decoded on the receiver side in each case by way of the decoder 150 and then multiplexed by way of the multiplexer 145. In another embodiment, in which first coding and then demultiplexing take place on the transmitter side, first multiplexing and then decoding are performed on the receiver side. In any case, the result is that the transmitted data are present again in the original format and are able to be stored in the data memory 120. This data memory 120 may also be replaced by an interface via which the data are provided.

    [0041] The demultiplexing comprises combining fragments to form a file or a data stream. The decoding comprises removing redundant information that was added at the transmission device 105. In this case, it is first of all checked, on the basis of checksums from certain sections of data, whether a defect occurred in the data during the transmission. For one section, it is usually possible to determine errors up to a first predetermined number of defective bits. Errors up to a second predetermined number of bits may also be repaired, wherein the second number is usually smaller than the first.

    [0042] In a further embodiment, the decoding may also be suspended until the received data have been used. To this end, the demultiplexed but not yet decoded data may initially be stored in the data memory 120. If it is intended to access the data, the required decoding may be performed immediately.

    [0043] FIG. 2 shows a schematic flowchart of a method 200 for transmitting data, in particular by way of a system 100 as is illustrated in FIG. 1. The data are first of all present in an exemplary block that comprises six units. A unit may correspond for example to a UDP packet or its payload.

    [0044] In a first step 205, the data are coded using forward error protection coding, wherein information is added, giving rise to eight units of data. The additional information may be added at any points; there is usually a certain amount of interleaving in which the new information is distributed reasonably equally over the net data to be secured. The amount of information that is added may usually be controlled, wherein more added information may generally lead to a more robust transmission.

    [0045] The forward error protection coding may comprise a block code, a continuous code or a turbo code. A block code always operates on a data block of a predetermined length; known block codes comprise Reed-Solomon, Reed-Miller, Golay, multidimensional parity, MDS, Hadamard, Expander or Hamming. A continuous code, also called convolutional code, permits the transmission of a potentially infinite data stream. However, no systematic method for generating an appropriate convolutional code is known for a given situation. It is attempted to model eigen types of the data to be transmitted or of the transmission medium through the appropriate selection of particular parameters of the convolutional code. It is often necessary to check a large number of possible convolutional codes in a simulation in terms of its applicability. A convolutional code is usually decoded by way of a Viterbi algorithm.

    [0046] A turbo coder consists of at least two parallel-connected or series-connected coders for the elementary coding. The elementary coders in each case on their own constitute a particular channel code. The first coder receives the payload data in unchanged form, and the output thereof is forwarded, via what is known as an interleaver that implements the data order in accordance with defined rules, to the second coder as input. The second coder, in the case of only two coders, finally delivers the data sequence to be transmitted.

    [0047] In a step 210, the coded data are multiplexed. In this case, a respective sequence of data units is associated with a plurality of communication channels 115. The multiplexing may take into consideration the fact that different communication channels 115 may have different data throughputs. A communication channel 115 with a high data throughput may receive more data units per time than a communication channel 115 with a lower data throughput. In a step 215, the data are then transmitted from the transmission device 105 to the reception device 110.

    [0048] In a step 220, the data are multiplexed such that the individual units are again in the same order as prior to step 210. The result may optionally be stored in a step 225. At another time, for example when it is intended to access the stored data, in a step 230, decoding may take place in which the redundant information that was added in step 205 is removed again. The data may then be transmitted or stored again.

    [0049] FIG. 3 shows a variant 300 of the method 200 from FIG. 2. In order to transmit a file 305, this should not be processed sequentially, but rather broken down into a plurality of parts 310 in order then to transmit the parts 310 in each case via the communication channels 115 in a manner already described herein. What is decisive in this case is that the parts 310 are transmitted via the communication channels 115 concurrently, simultaneously or in interleaved form. It is furthermore desirable for a distribution of data units on communication channels 115 (see FIG. 2) to be different for at least two of the generated data streams in order to increase the entropy on the transmission path.

    [0050] In the present example, four parts 310 and four communication channels 115 are provided. In the context of the illustration, eight data units are intended to be transmitted by each part 310. To this end, the units 1 and 5 are transmitted by a first part 310.1, the units 1 and 5 are transmitted by a second part 310.2 and the units 1 and 5 are transmitted by a third part 310.3 via a first communication channel 115.1. The units transmitted via the other communication channels 115, of the parts 310 may be read off from FIG. 3.

    [0051] The described procedure ensures that units are transmitted by all parts 310. A window of data of each part 310 that is located in the transmission is moved continuously in this case. Reference is also made to a “sliding window” approach.

    [0052] Although the present invention has been disclosed in the form of preferred embodiments and variations thereon, it will be understood that numerous additional modifications and variations could be made thereto without departing from the scope of the invention.

    [0053] For the sake of clarity, it is to be understood that the use of “a” or “an” throughout this application does not exclude a plurality, and “comprising” does not exclude other steps or elements.