A method of transmitting and receiving data by a user equipment, UE (100a, 100b; 620, 630; 720, 730; 920, 930, 940, 950), the method comprising: receiving a first data stream from a transmitting UE (12, 100a, 100b; 610, 620, 630; 710, 720, 730; 910, 920, 930, 940, 950), 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 (14; 100a, 100b; 620, 630, 642, 644, 646; 720, 730, 742, 744, 746; 920, 930, 940, 950, 960) 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. receiving a first data stream from a transmitting UE (12, 100a, 100b; 610, 620, 630; 710, 720, 730; 910, 920, 930, 940, 950), 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 (14; 100a, 100b; 620, 630, 642, 644, 646; 720, 730, 742, 744, 746; 920, 930, 940, 950, 960) 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. 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.