Patent Description:
In a communication network environment, packets are delivered through a device such as a router, an access point, an evolved NodeB (eNB), etc., for communication between user equipments (UEs) incapable of performing direct communication therebetween.

In particular, due to constraints such as transmission power, etc., wireless communication has a limited distance where UEs communicate with each other. To overcome the limited distance, a wireless communication environment based on multi-hop communication has been considered in which a communication distance is extended in a manner for some UEs to deliver information received by the UEs to neighboring another UE.

In the wireless communication environment, a loss of a transmission packet may occur depending on a channel state between UEs. In a multi-hop environment where a communication is performed through several UEs, a loss occurs in a process where a UE transmits received information to another UE, such that various methods for recovering a transmission loss have been developed.

<CIT> relates to packet delay optimization in the uplink of a multi-hop cooperative relay-enabled wireless network. The method includes a relay node receiving a data packet and determining whether to transmit the packet without performing error checking.

Due to constraints such as transmission power, etc., wireless communication has a limited distance where UEs communicate with each other. To overcome the limited distance, a wireless communication environment based on multi-hop communication has been considered in which a communication distance is extended in a manner for some UEs to deliver information received by the UEs to neighboring another UE.

The present invention is as defined in the independent claims.

The present disclosure provides information allowing data recovery to recover lost data in a process where a UE transmits and receives data, thereby preventing a data loss from being expanded.

It is possible to prevent a data loss from being expanded.

A method of transmitting and receiving data by a user equipment (UE) according to an embodiment includes receiving, by the UE, a first data stream including at least one of transmission data and a first error correction code regarding the transmission data, obtaining a second error correction code based on the transmission data obtained from the received first data stream, and transmitting a second data stream including at least one of recovered transmission data and the obtained second error correction code.

The method of transmitting and receiving data by the UE according to an embodiment may further include determining whether the transmission data is recoverable from the first data stream, in which the obtaining of the second error correction code includes obtaining the second error correction code based on the transmission data recovered from the first data stream, if the transmission data is recoverable.

The method of transmitting and receiving data by the UE according to an embodiment may further include predicting a transmission environment between the UE and an external UE that receives the second data stream transmitted by the UE and determining at least one of a number of data packets included in the second data stream and a number of second error correction packets included in the second data stream based on the predicted transmission environment.

In the method of transmitting and receiving data by the UE according to an embodiment, the predicting of the transmission environment may include determining at least one of the number of data packets included in the second data stream transmitted to the external UE from the UE and the number of second error correction packets included in the second data stream transmitted to the external UE from the UE.

The method of transmitting and receiving data by the UE according to an embodiment according to an embodiment may further include obtaining information about at least one data stream that is receivable by a UE next to the UE and determining at least one of the transmission data and the second error correction code included in the second data stream, based on the obtained information about the at least one data stream.

In the method of transmitting and receiving data by the UE, the obtaining of the second error correction code may include transmitting and receiving information about each error correction code to and from another UE and obtaining the second error correction code based on received information about an error correction code of the another UE.

In the method of transmitting and receiving data by the UE according to an embodiment, the obtaining of the second error correction code may include obtaining the second error correction code based on information about an error correction code included in the received first data stream.

In the method of transmitting and receiving data by the UE according to an embodiment, the second error correction code may be obtained based on information about an error correction code that is preset for each of a plurality of UEs.

In the method of transmitting and receiving data by the UE according to an embodiment, the second error correction code may be selected at random from among a plurality of error correction codes.

In the method of transmitting and receiving data by the UE according to an embodiment, the second data stream may include transmission data including at least one data packet and a second error correction code including at least one error correction packets.

The method of transmitting and receiving data by the UE according to an embodiment may further include determining a number of packets included in the second data stream and determining packets included in the second data stream from among the at least one data packet and the at least one error correction packet, based on the determined number of packets.

In the method of transmitting and receiving data by the UE according to an embodiment, the second data stream may include a plurality of second error correction packets.

The method of transmitting and receiving data by the UE according to an embodiment may further include determining a number of packets included in the second data stream and determining packets included in the second data stream from among the plurality of second error correction packets based on the determined number of packets.

A UE for transmitting and receiving data according to an embodiment includes a receiver configured to receive a first data stream including at least one of transmission data and a first error correction code regarding the transmission data, a controller configured to obtain a second error correction code based on the transmission data obtained from the received first data stream, and a transmitter configured to transmit a second data stream including at least one of recovered transmission data and the obtained second error correction code.

In the UE for transmitting and receiving the data according to an embodiment, the controller may be further configured to determine whether the transmission data is recoverable from the first data stream and obtain the second error correction code based on the transmission data recovered from the first data stream, if the transmission data is recoverable.

In the UE for transmitting and receiving the data according to an embodiment, the controller may be further configured to predict a transmission environment between the UE and an external UE that receives the second data stream transmitted by the UE and determine at least one of a number of data packets included in the second data stream and a number of second error correction packets included in the second data stream based on the predicted transmission environment.

In the UE for transmitting and receiving the data according to an embodiment, the controller may be further configured to determine at least one of the number of data packets included in the second data stream transmitted to the external UE from the UE and the number of second error correction packets included in the second data stream transmitted to the external UE from the UE.

In the UE for transmitting and receiving the data according to an embodiment, the receiver may be further configured to obtain information about at least one data stream that is receivable by a UE next to the UE and determine at least one of the transmission data and the second error correction code included in the second data stream based on the obtained information about the at least one data stream.

In the UE for transmitting and receiving the data according to an embodiment, the controller may be further configured to transmit and receive information about each error correction code to and from another UE and obtain the second error correction code based on received information about an error correction code of another UE, in which the error correction code of the UE and the error correction code of the another UE are different from each other.

In the UE for transmitting and receiving the data according to an embodiment, the controller may be further configured to obtain the second error correction code based on information about an error correction code included in the received first data stream.

In the UE for transmitting and receiving the data according to an embodiment, the second error correction code may be obtained based on information about an error correction code that is preset for each of a plurality of UEs.

In the UE for transmitting and receiving the data according to an embodiment, the second error correction code may be selected at random from among a plurality of error correction codes.

In the UE for transmitting and receiving the data according to an embodiment, the second data stream may include transmission data including at least one data packet and a second error correction code including at least one error correction packets.

In the UE for transmitting and receiving the data according to an embodiment, the controller may be further configured to determine a number of packets included in the second data stream and determine packets included in the second data stream from among the at least one data packet and the at least one error correction packet, based on the determined number of packets.

In the UE for transmitting and receiving data according to an embodiment, the second data stream may include a plurality of second error correction packets.

In the UE for transmitting and receiving the data according to an embodiment, the controller may be further configured to determine a number of packets included in the second data stream and determine packets included in the second data stream from among the plurality of second error correction packets, based on the determined number of packets.

Terms used herein will be described in brief, and the present disclosure will be described in detail.

Although terms used in the present disclosure are selected with general terms popularly used at present under the consideration of functions in the present disclosure, the terms may vary according to the intention of those of ordinary skill in the art, judicial precedents, or introduction of new technology. In addition, in a specific case, the applicant voluntarily may select terms, and in this case, the meaning of the terms is disclosed in a corresponding description part of the disclosure. Thus, the terms used in the present disclosure should be defined not by the simple names of the terms but by the meaning of the terms and the contents throughout the present disclosure.

Throughout the entirety of the specification of the present disclosure, if it is assumed that a certain part includes a certain component, the term 'including' means that a corresponding component may further include other components unless a specific meaning opposed to the corresponding component is written. The term used in the embodiments such as "unit" or "module" indicates a unit for processing at least one function or operation, and may be implemented in hardware, software, or in a combination of hardware and software.

Hereinafter, embodiments of the present disclosure will be described in detail with reference to the attached drawings to allow those of ordinary skill in the art to easily carry out the embodiments. However, the present disclosure may be implemented in various forms, and are not limited to the embodiments described herein. To clearly describe the present disclosure, parts that are not associated with the description have been omitted from the drawings, and throughout the specification, identical reference numerals refer to identical parts.

<FIG> is a conceptual view for describing a system <NUM> in which a user equipment (UE) 100a or 100b (hereinafter, <NUM>) transmits and receives data according to an embodiment.

Referring to <FIG>, the system <NUM> for transmitting and receiving data may include a first UE 100a, a second UE 100b, a transmission UE <NUM>, and a reception UE <NUM>.

The system <NUM> for transmitting and receiving data, illustrated in <FIG>, includes elements associated with the current embodiment. Thus, it would be understood by those of ordinary skill in the art that general-purpose elements other than the elements illustrated in <FIG> may also be included. For example, the system <NUM> for transmitting and receiving data, illustrated in <FIG>, may further include at least one UE in addition to include the first UE 100a and the second UE 100b.

The UE <NUM> is a computing device capable of computing data and performing wired or wireless communication. The UE <NUM> transmits at least one multimedia data as transmission data to another UE that then transmits the transmission data received from the UE <NUM> to still another UE. For example, a first UE 100a may transmit at least one multimedia data as transmission data to a second UE 100b that may then transmit the transmission data received from the first UE 100a to a third UE (not shown) or the reception UE <NUM>.

Referring to <FIG>, the transmission UE <NUM> and the reception UE <NUM> perform the same function as the UE <NUM>. For convenience, the transmission UE <NUM> will be described as a UE that first obtains the transmission data without passing through another UE, and the reception UE <NUM> will be described as a UE that receives the transmission data and finally executes the transmission data.

The UE <NUM> transmits at least one of transmission data and an error correction code regarding the transmission data to another UE. For example, the first UE 100a may transmit at least one of transmission data and an error correction code regarding the transmission data to the second UE 100b. Herein, the error correction code may be obtained according to any conventional error correction algorithm used to recover transmission data. For example, the error correction code may be obtained by forward error correction (FEC).

A data transmission process and a data reception process performed by the UE <NUM> may be performed according to a real time protocol (RTP). However, this is only an embodiment and the present disclosure is not limited to the embodiment. Meanwhile, not shown, there may be intermediate nodes that relay data transmission between the first UE 100a and the second UE 100b.

A data transmission path between the first UE 100a and the second UE 100b may be entirely or partially wireless. Thus, at least one of the first UE 100a and the second UE 100b may be a wireless communication device. For example, the first UE 100a and the second UE 100b may be a mobile device such as a cellular phone, a personal digital assistant (PDA), a laptop computer, etc., but the present disclosure is not limited to this example.

<FIG> is a flowchart illustrating a method in which the UE <NUM> transmits and receives data, according to an embodiment.

In operation <NUM>, the UE <NUM> receives a first data stream including at least one of transmission data and a first error correction code regarding the transmission data. When the first data stream is transmitted to the UE <NUM>, transmission data included in the first data stream may be partially or completely lost. If the transmission data is partially or completely lost, the UE <NUM> may recover the transmission data by using the first error correction code. Herein, various methods such as FEC may be used to recover lost data.

When FEC is applied in an application layer, the UE <NUM> recovers transmission data in the unit of a packet. If some of a plurality of data packets included in transmission data are lost, the UE <NUM> recovers the lost data packets by using error correction packets obtained using FEC. For example, the UE <NUM> may receive a plurality of data packets A, B, and C, together with a plurality of error correction packets D and E, from the transmission UE <NUM>. Herein, as the number of error correction packets received together with a plurality of data packets by the UE increases, a probability of recovering lost data packets from the first data stream received by the UE <NUM> increases.

In operation <NUM>, the UE <NUM> obtains a second error correction code based on the transmission data obtained from the received first data stream. Herein, the UE <NUM> obtains the second error correction code by using the same algorithm as that used to obtain the first error correction code. For example, if the first error correction code is obtained by FEC based on a hamming code, the UE <NUM> obtains the second error correction code by applying hamming code-based FEC to the transmission data.

The UE <NUM> obtains the second error correction code, which is different from the first error correction code, based on the transmission data obtained from the first data stream. To obtain an error correction code that is different from those of other UEs existing in the system <NUM>, the UE <NUM> exchanges information about a desired error correction code with those other UEs.

For example, the UE <NUM> may be prevented from obtaining the same error correction code as that obtained by another UE existing in the system <NUM> by obtaining information about the error correction code obtained by the another UE. The UE <NUM> transmits the obtained information about the error correction code to other UEs existing in the system <NUM>. However, this is only an embodiment and the present disclosure is not limited to the embodiment.

According to another embodiment, there may be an error correction code that is preset for each UE existing in the system <NUM>. Error correction codes that are preset for UEs, respectively, may be different from each other.

According to another embodiment, when the transmission UE <NUM> sets different error correction codes for UEs included in the system <NUM> and transmits a data stream, the transmission UE <NUM> may transmit information about an error correction code that is set for each UE.

According to another embodiment, UEs included in the system <NUM> may select an error correction code at random according to a preset random process. Herein, UEs included in the system <NUM> may also include the transmission UE <NUM> and the reception UE <NUM>.

In operation <NUM>, the UE <NUM> transmits a second data stream including at least one of obtained transmission data and an obtained second error correction code. The UE <NUM> transmits a second data stream including at least one of recovered transmission data and the obtained second error correction code to another UE.

Meanwhile, the second data stream may include data in the unit of a packet. The UE <NUM> obtains the second data stream by selecting at least one packet from among a plurality of data packets included in received transmission data and a plurality of error correction packets obtained based on the plurality of data packets. For example, the UE <NUM> may select packets A, B, F, and I from among data packets A, B, and C recovered from the received second data stream and a plurality of error correction packets F, G, and I, to obtain the second data stream. The UE <NUM> transmits the obtained second data stream to another UE.

Meanwhile, this is merely an embodiment, and the second data stream obtained by the UE <NUM> is not limited to the embodiment. The second data stream may include a second error correction code newly obtained from transmission data recovered by the UE <NUM>.

<FIG> is a flowchart illustrating a method in which the UE <NUM> recovers data that is lost in a received data stream and transmits the recovered data to another UE, according to an embodiment. Referring to <FIG>, the system <NUM> for transmitting and receiving data may include the first UE 100a, the second UE 100b, the transmission UE <NUM>, and the reception UE <NUM>. In <FIG>, for convenience, transmission data or an error correction code transmitted and received will be described in the unit of a packet.

The transmission UE <NUM> obtains a plurality of error correction packets D and E based on a plurality of data packets A, B, and C. The transmission UE <NUM> obtains a first data stream including the plurality of data packets A, B, and C and the plurality of error correction packets D and E. The transmission UE <NUM> transmits the first data stream to the first UE 100a.

The first UE 100a according to an embodiment may receive the first data stream from the transmission UE <NUM>. Depending on a channel state between the transmission UE <NUM> and the first UE 100a, packets included in the first data stream may be lost. Referring to <FIG>, for example, if the plurality of data packets A, B, and C and the plurality of error correction packets D and E are included in the first data stream, the first UE 100a may receive the first data stream from which the error correction packet D is lost.

The first UE 100a obtains a plurality of second error correction packets F and G based on the plurality of data packets A, B, and C included in the received first data stream. Herein, the second error correction packets F and G may be obtained using the same algorithm as used for a first error correction packet. However, the first error correction packet and the second error correction packet may have different values.

The first UE 100a transmits a second data stream including the plurality of data packets A, B, and C and the plurality of second error correction packets F and G to the second UE 100b. Depending on a channel state between the first UE 100a and the second UE 100b, packets included in the second data stream may be lost. Referring to <FIG>, for example, if the plurality of data packets A, B, and C and the plurality of second error correction packets F and G are included in the second data stream, the second UE 100b may receive the second data stream from which the data packet B is lost.

The second UE 100b recovers the lost data packet B based on the second error correction packets F and G included in the received second data stream. The second UE 100b may recover the plurality of data packets A, B, and C and the plurality of error correction packets F and G included in the second data stream, by recovering the received second data stream.

The second UE 100b according to an embodiment may obtain a plurality of third error correction packets H and I based on the plurality of data packets A, B, and C. Herein, the third error correction packets H and I may be obtained using the same algorithm as used for the first error correction packet and the second error correction packets. However, the third error correction packet may have a value that is different from that of the first error correction packet or the second error correction packet.

The second UE 100b transmits a third data stream including the plurality of data packets A, B, and C and the plurality of third error correction packets H and I to the reception UE <NUM>. Depending on a channel state between the second UE 100b and the reception UE <NUM>, packets included in the third data stream may be lost. Referring to <FIG>, for example, if the plurality of data packets A, B, and C and the plurality of third error correction packets H and I are included in the third data stream, the reception UE <NUM> may receive the third data stream from which the data packet A is lost. The reception UE <NUM> recovers the lost data packet A based on the plurality of third error correction packets H and I included in the received third data stream.

The reception UE <NUM> may execute the received data packets by using a proper multimedia processor. However, this is only an embodiment and the present disclosure is not limited to the embodiment.

<FIG> is a flowchart illustrating a method in which the UE <NUM> transmits a second data stream to another UE based on transmission data recovered from a received first data stream, according to an embodiment.

In operation <NUM>, the UE <NUM> receives a first data stream including at least one of transmission data and a first error correction code regarding the transmission data. By using the first error correction code, the UE <NUM> recovers data that is lost during transmission of the first data stream to the UE.

Operation <NUM> may correspond to operation <NUM> of <FIG>.

In operation <NUM>, the UE <NUM> determines whether transmission data is recoverable from the received first data stream. If the transmission data obtained from the first data stream is partially lost, the UE <NUM> according to an embodiment determines whether the lost transmission data is recoverable based on an error correction code. Determination of whether the UE <NUM> may recover the lost transmission data may be performed using an existing algorithm.

For example, the first data stream may include at least one of a plurality of data packets and a plurality of error correction packets. As the number of packets included in the first data stream received by the UE <NUM> increases, a probability of recovering a lost data packet may increase.

In operation <NUM>, the UE <NUM> recovers the transmission data from the first data stream. If the UE <NUM> determines that the lost transmission data is recoverable from the received first data stream, the UE may recover the lost transmission data based on non-lost transmission data or non-lost error correction code included in the first data stream.

In operation <NUM>, the UE <NUM> obtains a second error correction code based on the recovered transmission data. The UE <NUM> obtains the second error correction code, which is different from the first error correction code, based on the transmission data recovered from the first data stream. Herein, the UE <NUM> obtains the second error correction code by using the same algorithm as that used to obtain the first error correction code.

In operation <NUM>, the UE <NUM> transmits a second data stream including at least one of the recovered transmission data and the obtained second error correction code. The UE <NUM> transmits a second data stream including at least one of recovered transmission data and the obtained second error correction code to another UE.

In operation <NUM>, the UE <NUM> transmits the received first data stream to another UE. If he UE <NUM> determines that the transmission data may not be recovered from the received first data stream, the UE <NUM> delivers the received first data stream to another UE.

<FIG> is a flowchart illustrating a method in which the UE <NUM> predicts a transmission environment of a channel and transmits a data stream, according to an embodiment.

In operation <NUM>, the UE <NUM> obtains a second error correction code based on the transmission data obtained from the received first data stream. The UE <NUM> obtains the second error correction code, which is different from the first error correction code, based on the transmission data obtained from the first data stream. If the transmission data included in the received first data stream is lost, the UE <NUM> recovers the lost transmission data by using the first error correction code. If the transmission data included in the first data stream is not lost, the UE <NUM> obtains the transmission data by extracting the transmission data from the first data stream.

In operation <NUM>, the UE <NUM> predicts a transmission environment between the UE <NUM> and an external UE that receives the second data stream transmitted by the UE <NUM>. The UE <NUM> according to an embodiment predicts the transmission environment between the UE <NUM> and the external UE based on a data loss rate of the second data stream transmitted to the external UE from the UE <NUM>. Herein, the data loss rate may be a rate of lost data with respect to the entire data transmitted from the UE <NUM> to the external UE. For example, if data is transmitted and received in the unit of a packet between the UE <NUM> and the external UE, the data loss rate may be a rate of the number of lost data packets with respect to the number of all data packets transmitted from the UE <NUM> to the external UE.

In operation <NUM>, the UE <NUM> determines at least one of the number of data packets included in the second data stream and the number of second error correction packets included in the second data stream, based on the predicted transmission environment. The UE <NUM> determines at least one of the number of data packets included in the second data stream and the number of second error correction packets included in the second data stream, based on the predicted transmission environment. For example, if a data loss rate of the second data stream transmitted from the UE <NUM> to the external UE is high, the UE <NUM> may determine a large number of data packets included in the second data stream and a large number of second error correction packets included in the second data stream.

<FIG> is a diagram for describing a method in which the UE <NUM> obtains a data stream for transmission to another UE, according to an embodiment. Referring to <FIG>, a system <NUM> for transmitting and receiving data may include a transmission UE <NUM>, a UE X <NUM>, a UE Y <NUM>, a first reception UE <NUM>, a second reception UE <NUM>, and a third reception UE <NUM>. In <FIG>, for convenience, transmission data or an error correction code transmitted and received will be described in the unit of a packet.

The transmission UE <NUM> obtains a first data stream including the plurality of data packets A, B, and C and the plurality of error correction packets D and E. Herein, the transmission UE <NUM> performs the same function as the transmission UE <NUM> of <FIG>. The transmission UE <NUM> transmits the obtained first data stream to at least one another UE. Referring to <FIG>, the transmission UE <NUM> transmits the obtained first data stream to the UE X <NUM>, the UE Y <NUM>, and the second reception UE <NUM>.

The UE X <NUM> according to an embodiment receives the first data stream from the transmission UE <NUM>. Depending on a channel state between the transmission UE <NUM> and the UE X <NUM>, packets included in the first data stream may be lost. Referring to <FIG>, for example, if the plurality of data packets A, B, and C and a first error correction packet D are included in the first data stream, the UE X <NUM> may receive the first data stream from which the data packet B is lost.

The UE X <NUM> recovers the lost data packet B based on the plurality of data packets A and C and the first error correction packet D included in the received first data stream. The UE X <NUM> obtains a second error correction packet E based on the recovered data packets. Herein, the second error correction packet E may be obtained using the same algorithm as used for a first error correction packet. However, the first error correction packet and the second error correction packet may have different values.

The UE X <NUM> transmits a second data stream including the plurality of data packets A, B, and C and the second error correction packet E to one or more reception UEs <NUM> and <NUM>.

The UE Y <NUM> receives the first data stream from the transmission UE <NUM>. Depending on a channel state between the transmission UE <NUM> and the UE y <NUM>, packets included in the first data stream may be lost. Referring to <FIG>, for example, if the plurality of data packets A, B, and C and the first error correction packet D are included in the first data stream, the UE Y <NUM> may receive the first data stream from which the data packet C is lost.

The UE Y <NUM> recovers the lost data packet C based on the plurality of data packets A and B and the first error correction packet D included in the received first data stream. The UE Y <NUM> obtains second error correction packets F and G based on the recovered data packets. Herein, the second error correction packets F and G may be obtained using the same algorithm as used for a first error correction packet. However, the first error correction packet and the second error correction packet may have different values.

The UE Y <NUM> transmits a third data stream including the plurality of data packets A, B, and C and the second error correction packets F and G to one or more reception UEs <NUM> and <NUM>.

The first reception UE <NUM> receives the second data stream from the UE X <NUM>. The first reception UE <NUM> recovers the lost data packet A based on the plurality of data packets B, C, and E included in the received second data stream.

The second reception UE <NUM> receives the second data stream from the UE X <NUM> and receives the first data stream from the transmission UE <NUM>. The second reception UE <NUM> may also receive a third data stream from the UE Y. That is, the second reception UE <NUM> receives a plurality of data streams including different error correction packets.

The second reception UE <NUM> recovers the lost data packets based on data packets and error correction packets included in the plurality of data streams (the first data stream, the second data stream, and the third data stream). For example, the second reception UE <NUM> may recover the lost data packet based on the data packet A and the error correction packets D and E included in the plurality of data streams.

The third reception UE <NUM> receives the third data stream from the UE Y <NUM>. The third reception UE <NUM> recovers the data packets B and C based on the plurality of data packets A, F, and G included in the received third data stream.

The transmission UE <NUM> obtains a first data stream including the plurality of data packets A, B, and C and the error correction packet D. Herein, the transmission UE <NUM> performs the same function as the transmission UE <NUM> of <FIG>. The transmission UE <NUM> transmits the obtained first data stream to at least one another UE. Referring to <FIG>, the transmission UE <NUM> transmits the obtained first data stream to the UE X <NUM>, the UE Y <NUM>, and the second reception UE <NUM>.

The UE X <NUM> according to an embodiment receives the first data stream from the transmission UE <NUM>. Depending on a channel state between the transmission UE <NUM> and the UE X <NUM>, packets included in the first data stream may be lost. Referring to <FIG>, for example, if the plurality of data packets A, B, and C and the first error correction packet D are included in the first data stream, the UE X <NUM> may receive the first data stream from which the data packet B is lost.

The UE X <NUM> recovers the lost data packet B based on the plurality of data packets A and C and the first error correction packet D included in the received first data stream. The UE X <NUM> obtains second error correction packets E, F, G, and H based on the recovered data packets. Herein, the second error correction packets E, F, G, and H may be obtained using the same algorithm as used for the first error correction packet. However, the first error correction packet and the second error correction packet may have different values.

The UE X <NUM> transmits a second data stream including the second error correction packets E, F, G, and H to one or more reception UEs <NUM> and <NUM>.

The UE Y <NUM> receives the first data stream from the transmission UE <NUM>. Depending on a channel state between the transmission UE <NUM> and the UE y <NUM>, packets included in the first data stream may be lost. Referring to <FIG>, for example, if the plurality of data packets A, B, and C and the second error correction packet D are included in the first data stream, the UE Y <NUM> may receive the first data stream from which the data packet C is lost.

The UE Y <NUM> recovers the lost data packet C based on the plurality of data packets A and B and the first error correction packet D included in the received first data stream. The UE Y <NUM> obtains third error correction packets I, J, K, L, and N based on the recovered data packets. Herein, the third error correction packets I, J, K, L, and N may be obtained using the same algorithm as used for the first error correction packet. However, the first error correction packet and the third error correction packet may have different values.

The UE Y <NUM> transmits a third data stream including a plurality of third error correction packets I, J, K, L, and N to at least one reception UEs <NUM> and <NUM>.

The first reception UE <NUM> receives the second data stream from the UE X <NUM>. The first reception UE <NUM> recovers the data packets A, B, and C based on the plurality of data packets F, G, and H included in the received second data stream.

The second reception UE <NUM> receives the second data stream from the UE X <NUM> and receives the first data stream from the transmission UE <NUM>. The second reception UE <NUM> may also receive a third data stream from the UE Y <NUM>. The second reception UE <NUM> receives a plurality of data streams including different error correction packets.

The second reception UE <NUM> recovers the lost data packets based on data packets and error correction packets included in the plurality of data streams (the first data stream, the second data stream, and the third data stream). For example, the second reception UE <NUM> may recover the lost data packet based on the error correction packets D, E, H, and I included in the plurality of data streams.

The third reception UE <NUM> receives the third data stream from the UE Y <NUM>. The third reception UE <NUM> recovers the data packets A, B, and C based on third error correction packets I, L, and N included in the received third data stream.

<FIG> is a flowchart illustrating a method in which the UE <NUM> obtains an error correction code of the UE <NUM> based on information about an error correction code of another UE, according to an embodiment.

In operation <NUM>, the UE <NUM> obtains at least one data stream that is receivable by the next UE. Herein, the next UE may include a UE that receives the second data stream transmitted by the UE.

Referring to <FIG>, a UE next to the UE X <NUM> may be the first reception UE <NUM> or the second reception UE <NUM>. The second reception UE <NUM> receives a first data stream, a second data stream, and a third data stream from the transmission UE <NUM>, the UE X <NUM>, and the UE Y <NUM>, respectively. Herein, the first data stream, the second data stream, and the third data stream received by the second reception UE <NUM> may be included in at least one data stream that is receivable by the next UE.

Meanwhile, information about the at least one data stream that is receivable by the next UE may include the number and type of data packets included in the at least one data stream, the number and type of error correction packets included in the at least one data stream, or the like.

In operation <NUM>, the UE <NUM> determines at least one of transmission data and a second error correction code included in the second data stream, based on the obtained information about the at least one data stream. The UE <NUM> may avoid an error correction code that is receivable by the next UE from another UE or may control a length of an error correction code obtained by the UE <NUM>.

<FIG> is a diagram for describing a method in which the UE <NUM> transmits and receives data, if a transmission UE <NUM> and a reception UE <NUM> do not perform an error correction function, according to an embodiment.

Referring to <FIG>, a system <NUM> for transmitting and receiving data may include a transmission UE <NUM>, a first UE <NUM>, a second UE <NUM>, a third UE <NUM>, a fourth UE <NUM>, and a reception UE <NUM>. In <FIG>, for convenience, transmission data or an error correction code transmitted and received will be described in the unit of a packet.

The transmission UE <NUM> obtains a first data stream including the plurality of data packets A, B, and C. Herein, the transmission UE <NUM> may be a device incapable of performing an error correction function. The transmission UE <NUM> transmits the obtained first data stream to a first UE.

The first UE <NUM> according to an embodiment may receive the first data stream from the transmission UE <NUM>. Referring to <FIG>, the plurality of data packets A, B, and C are included, for example, in the first data stream. The first UE <NUM> obtains the plurality of error correction packets D and E based on the plurality of data packets A, B, and C. The first UE <NUM> obtains a second data stream including the plurality of data packets A, B, and C and the plurality of error correction packets D and E.

The first UE <NUM> transmits the second data stream to each of at least one next UE, i.e., each of the second UE <NUM> and the third UE <NUM>.

Meanwhile, the second UE <NUM> receives the second data stream from the first UE <NUM>. When the second data stream is transmitted to the second UE <NUM> from the first UE <NUM>, transmission data included in the second data stream may be partially lost. For example, among the plurality of data packets A, B, and C included in the second data stream, the data packet B may be lost.

The second UE <NUM> recovers the lost data packet B based on an error correction packet included in the second data stream. Once recovery of the data packet is completed, the second UE <NUM> obtains new error correction packets F and G based on the recovered data packet. The second UE <NUM> transmits the second data stream including the plurality of recovered data packets A, B, and C and the newly obtained error correction packets F and G to the fourth UE <NUM>.

Meanwhile, the third UE <NUM> receives the third data stream from the first UE <NUM>. When the third data stream is transmitted to the third UE <NUM> from the first UE <NUM>, transmission data included in the third data stream may be partially lost. For example, among the plurality of data packets A, B, and C included in the third data stream, the data packet C may be lost.

The third UE <NUM> recovers the lost data packet C based on an error correction packet included in the third data stream. Once recovery of the data packet is completed, the third UE <NUM> obtains new error correction packets H and I based on the recovered data packet. The third UE <NUM> transmits the third data stream including the plurality of recovered data packets A, B, and C and the newly obtained error correction packets H and I to the fourth UE <NUM>.

The fourth UE <NUM> receives the second data stream from the second UE <NUM> and receives the third data stream from the third UE <NUM>. When each of the second data stream and the third data stream is received in the fourth UE <NUM>, a plurality of data packets included in each data stream may be partially or entirely lost. For example, among the plurality of data packets A, B, and C and the error correction packets F and G included in the second data stream, the data packets A and C and the error correction packet F may be lost. Among the plurality of data packets A, B, and C and the error correction packets H and I included in the third data stream, the data packets A, B, and C may be lost.

The fourth UE <NUM> recovers a data packet based on the data packet B and the error correction packets G, H, and I that are not lost in the second data stream and the third data stream.

<FIG> is a block diagram of the UE <NUM> that transmits and receives data according to an embodiment.

Referring to <FIG>, the UE <NUM> that transmits and receives data may include a receiver <NUM>, a controller <NUM>, and a transceiver <NUM>. The UE <NUM> for transmitting and receiving data, illustrated in <FIG>, includes elements associated with the current embodiment. Thus, it would be understood by those of ordinary skill in the art that general-purpose elements other than the elements illustrated in <FIG> may also be included.

The receiver <NUM> receives a first data stream including at least one of transmission data and a first error correction code regarding the transmission data. The receiver <NUM> receives information about an error correction code for each of a plurality of UEs included in the system <NUM>.

The receiver <NUM> according to an embodiment obtains information about at least one data stream, which is receivable by the next UE that receives a second data stream, from the UE <NUM>.

The controller <NUM> obtains a second error correction code based on the transmission data obtained from the received first data stream. The controller <NUM> obtains the transmission data by extracting the transmission data from the first data stream.

If the transmission data included in the first data stream is partially lost, the controller <NUM> determines whether the transmission data is recoverable from the first data stream. If the transmission data is recoverable, the controller <NUM> obtains a second error correction code based on the transmission data recovered from the first data stream.

The controller <NUM> may predict a transmission environment between the UE <NUM> and an external UE that receives the second data stream transmitted by the UE <NUM>. The controller <NUM> determines at least one of the number of data packets included in the second data stream and the number of second error correction packets included in the second data stream, based on the predicted transmission environment. Herein, the transmission environment may be determined based on a data loss rate. For example, the UE <NUM> may determine at least one of the number of data packets included in the second data stream and the number of second error correction packets included in the second data stream, based on a data loss rate of the second data stream transmitted from the UE <NUM> to the external UE.

The controller <NUM> according to an embodiment determines at least one of transmission data and a second error correction code included in the second data stream, based on information about at least one data stream that is receivable by a UE next to the UE.

The controller <NUM> transmits and receives information about each error correction code to and from another UE and obtains the second error correction code based on the information about each error correction code received from another UE. Herein, the error correction code of the UE <NUM> and the error correction code of another UE may be different from each other.

The controller <NUM> obtains the second error correction code based on the information about the error correction code included in the received first data stream. According to another embodiment, the controller <NUM> may obtain an error correction code based on information about an error correction code that is preset for each of a plurality of UEs. According to another embodiment, the controller <NUM> may select an error correction code at random according to a preset random process.

The transmitter <NUM> transmits a second data stream including at least one of recovered transmission data and an obtained second error correction code. The transmitter <NUM> transmits information about an error correction code of the UE <NUM> to other UEs included in the system <NUM>.

An apparatus according to the present disclosure may a processor, a memory for storing program data and executing it, a permanent storage such as a disk drive, a communications port for communicating with external devices, and user interface devices, such as a touch panel, a key, a button, etc. Methods implemented with a software module or algorithm may be stored as computer-readable codes or program instructions executable on the processor on computer-readable recording media. Examples of the computer-readable recording media may include a magnetic storage medium (e.g., read-only memory (ROM), random-access memory (RAM), floppy disk, hard disk, etc.) and an optical medium (e.g., a compact disc-ROM (CD-ROM), a digital versatile disc (DVD), etc.) , and so forth. The computer-readable recording medium may be distributed over network coupled computer systems so that a computer-readable code is stored and executed in a distributed fashion. The medium may be read by a computer, stored in a memory, and executed by a processor.

Reference numerals have been used in exemplary embodiments illustrated in the attached drawings to help understanding of the present disclosure, and particular terms have been used to describe the embodiments of the present disclosure, but the present disclosure is not limited to the particular terms, and the present disclosure may include any element that may be generally conceived by those of ordinary skill in the art.

The present disclosure may be represented by block components and various process operations. Such functional blocks may be implemented by various numbers of hardware and/or software components which perform specific functions. For example, the present disclosure may employ various integrated circuit components, e.g., memory elements, processing elements, logic elements, look-up tables, and the like, which may carry out a variety of functions under the control of one or more microprocessors or other control devices. Similarly, where the elements of the present disclosure are implemented using software programming or software elements the disclosure may be implemented with any programming or scripting language such as C, C++, Java, assembler, or the like, with the various algorithms being implemented with any combination of data structures, objects, processes, routines or other programming elements. Functional aspects may be implemented as an algorithm executed in one or more processors. Furthermore, the present disclosure may employ any number of conventional techniques for electronics configuration, signal processing and/or control, data processing and the like. The term "mechanism", "element", "means", or "component" is used broadly and is not limited to mechanical or physical embodiments. The term may include a series of routines of software in conjunction with the processor or the like.

The particular implementations shown and described herein are illustrative examples of the present disclosure and are not intended to otherwise limit the scope of the present disclosure in any way. For the sake of brevity, conventional electronics, control systems, software development and other functional aspects of the systems may not be described in detail. Furthermore, the connecting lines, or connectors shown in the various figures presented are intended to represent exemplary functional relationships and/or physical or logical couplings between the various elements. Moreover, no item or component is essential to the practice of the present disclosure unless the element is specifically described as "essential" or "critical".

Claim 1:
A method of transmitting and receiving data by a user equipment, UE (100a, 100b; <NUM>, <NUM>; <NUM>, <NUM>; <NUM>, <NUM>, <NUM>, <NUM>), the method comprising:
receiving a first data stream from a transmitting UE (<NUM>, 100a, 100b; <NUM>, <NUM>, <NUM>; <NUM>, <NUM>, <NUM>; <NUM>, <NUM>, <NUM>, <NUM>, <NUM>), comprising at least one of transmission data and a first error correction code regarding the at least one of transmission data;
recovering lost transmission data by using the first error correction code from the received first data stream;
obtaining, based on the recovered transmission data, a second error correction code different from the first error correction code using the same algorithm used to obtain the first error correction code; and
transmitting a second data stream to a receiving UE (<NUM>; 100a, 100b; <NUM>, <NUM>, <NUM>, <NUM>, <NUM>; <NUM>, <NUM>, <NUM>, <NUM>, <NUM>; <NUM>, <NUM>, <NUM>, <NUM>, <NUM>) comprising the recovered transmission data and the obtained second error correction code;
wherein the obtaining of the second error correction code comprises:
transmitting information about the first error correction code to another UE,
receiving, from the another UE, information about an error correction code of the another UE; and
obtaining the second error correction code based on the received information about the error correction code of the another UE,
wherein the first and second error correction codes of the UE and the error correction code of the another UE are different from each other.