A method for transmitting duplicate packets based on network conditions comprising: determining, by a first device (700, 800(a)), whether a metric of a network condition of a first link established between the first device (700, 800(a)) and a second device (800(b)) is within a threshold value, wherein the metric of the network condition of the first link is based on a packet delay rate of the first link or a packet loss rate of the first link; generating, by the first device (700, 800(a)), responsive to determining that the metric of the network condition of the first link is within the threshold value, duplicate packets of packets to be transmitted from the first device (700, 800(a)) to the second device (800(b)) via the first link, the duplicate packets generated based on the packet loss rate over the first link or the packet delay rate over the first link and a packet acceptance rate of a second link to reach a target effective packet loss rate or a target effective packet delay rate, wherein the effective packet loss rate is based on the packet loss rate of the first link and the packet acceptance rate of the second link, wherein the effective packet delay rate is based on the packet delay rate of the first link and the packet acceptance rate of the second link, and wherein the packet acceptance rate of the second link is based on a total number of duplicate packets received at the second device (800(b)), a number of duplicate packets received on the second link that correspond to lost packets on the first link, or on a number of duplicate packets received on the second link that correspond to delayed packets on the first link; transmitting, by the first device (700, 800(a)), on the first link, the packets to be transmitted from the first device (700, 800(a)) to the second device (800(b)); and transmitting, by the first device (700, 800(a)), the duplicate packets on the second link established between the first device (700, 800(a)) and the second device (800(b)). determining, by a first device (700, 800(a)), whether a metric of a network condition of a first link established between the first device (700, 800(a)) and a second device (800(b)) is within a threshold value, wherein the metric of the network condition of the first link is based on a packet delay rate of the first link or a packet loss rate of the first link; generating, by the first device (700, 800(a)), responsive to determining that the metric of the network condition of the first link is within the threshold value, duplicate packets of packets to be transmitted from the first device (700, 800(a)) to the second device (800(b)) via the first link, the duplicate packets generated based on the packet loss rate over the first link or the packet delay rate over the first link and a packet acceptance rate of a second link to reach a target effective packet loss rate or a target effective packet delay rate, wherein the effective packet loss rate is based on the packet loss rate of the first link and the packet acceptance rate of the second link, wherein the effective packet delay rate is based on the packet delay rate of the first link and the packet acceptance rate of the second link, and wherein the packet acceptance rate of the second link is based on a total number of duplicate packets received at the second device (800(b)), a number of duplicate packets received on the second link that correspond to lost packets on the first link, or on a number of duplicate packets received on the second link that correspond to delayed packets on the first link; transmitting, by the first device (700, 800(a)), on the first link, the packets to be transmitted from the first device (700, 800(a)) to the second device (800(b)); and transmitting, by the first device (700, 800(a)), the duplicate packets on the second link established between the first device (700, 800(a)) and the second device (800(b)).