Can Reliable Data Transfer Be Guaranteed in Communication Networks?

  • Thread starter Bipolarity
  • Start date
  • Tags
    Data
In summary: The simplest scheme is for the receiving end to tell the transmitting end the number of the last packet it received. The transmitting end can then, if he receives an acknowledgment for packet 20, figure that packets 0 through 19 have been received.In summary, in the context of transport-layer protocols in communication networks, reliable data transfer is achieved through the use of checksums and acknowledgments. These protocols have mechanisms in place to handle corrupted packets and acknowledgments, such as retransmission and the use of timers. Additionally, there are steps that can be taken to further ensure reliability, such as using ECCs and tracking sequence numbers. Ultimately, it is the responsibility of the transmitting end to determine which packets need to be retransmitted
  • #1
Bipolarity
776
2
Not sure if this is the right forum, but I'l give it a shot. This question regards reliable data transfer in the context of transport-layer protocols in communication networks.
Let's say a sender sends a packet of information over a channel. The packet is corrupted, and the receiver replies with a negative acknowledgment (telling the sender that the packet wasn't properly transmitted).

However, the acknowledgment is corrupted during transmission, so the sender doesn't realize that the packet he originally sent wasn't properly transmitted. He therefore proceeds to send the next packet, with a different sequence number.

However, suppose the sequence number is corrupted during transmission. Then the receiver has no way of knowing whether the packet received is retransmission of the original packet, or transmission of the next packet.
This raises an issue and I am rather confused on how protocols would deal with this. Is it even possible for the sequence number to be corrupted during transmission?

Thanks!

BiP
 
Engineering news on Phys.org
  • #2
Bipolarity said:
Not sure if this is the right forum, but I'l give it a shot. This question regards reliable data transfer in the context of transport-layer protocols in communication networks.
Let's say a sender sends a packet of information over a channel. The packet is corrupted, and the receiver replies with a negative acknowledgment (telling the sender that the packet wasn't properly transmitted).

However, the acknowledgment is corrupted during transmission, so the sender doesn't realize that the packet he originally sent wasn't properly transmitted. He therefore proceeds to send the next packet, with a different sequence number.

However, suppose the sequence number is corrupted during transmission. Then the receiver has no way of knowing whether the packet received is retransmission of the original packet, or transmission of the next packet.
This raises an issue and I am rather confused on how protocols would deal with this. Is it even possible for the sequence number to be corrupted during transmission?

Thanks!

BiP

It depends on the protocol, but in general everything has a CRC as part of the packet, so it is very unlikely that a corrupted packet will be interpreted as anything. So the sending node knows that it never got an ACK for some packet it sent, and it has to retry that packet again. It will retry until it gets a positive ACK for that packet, or until the configured number of retries is exceeded.

BTW, if the receiver receives a corrupted packet, it does not NACK, at least not in the protocols I'm familiar with. I suppose that in some point-to-point applications, the receiver could NACK in response to a CRC error. The times I've seen NACKs coming back from receivers is not for physical errors, but instead for logical errors in a packet that has a valid CRC. For example, if the receiver is told to write some memory that is write-protected, or out of range, etc.
 
  • Like
Likes davenn
  • #3
Bipolarity said:
Not sure if this is the right forum, but I'l give it a shot. This question regards reliable data transfer in the context of transport-layer protocols in communication networks.
Let's say a sender sends a packet of information over a channel. The packet is corrupted, and the receiver replies with a negative acknowledgment (telling the sender that the packet wasn't properly transmitted).

However, the acknowledgment is corrupted during transmission, so the sender doesn't realize that the packet he originally sent wasn't properly transmitted. He therefore proceeds to send the next packet, with a different sequence number.

However, suppose the sequence number is corrupted during transmission. Then the receiver has no way of knowing whether the packet received is retransmission of the original packet, or transmission of the next packet.
This raises an issue and I am rather confused on how protocols would deal with this. Is it even possible for the sequence number to be corrupted during transmission?

Thanks!

BiP

depending on the expected environment and how robust you need your system to be a few steps can be taken.

You can have a hard interrupt line to signal an error.
you can use ECCs
you can put in logic that tracks the sequence number order, and flags an error if they come out of order.

and finally you can use a better transmission system
 
  • #4
Bipolarity said:
Let's say a sender sends a packet of information over a channel. The packet is corrupted, and the receiver replies with a negative acknowledgment (telling the sender that the packet wasn't properly transmitted).
In modern networking, transport layer protocols do not even receive corrupted packets - they are deleted in the data link layer.
The receiving end of the transport layer only acknowledges perfect packets, using the packet number. It is the responsibility of the transmitting end of transport layer to figure out whether or not to retransmit a packet.
There are several timers involved in each end, since not only can data packets get lost, but so also can acknowledgments.
 
  • Like
Likes berkeman

Related to Can Reliable Data Transfer Be Guaranteed in Communication Networks?

1. What is reliable data transfer?

Reliable data transfer refers to the process of ensuring that data is delivered accurately and in a timely manner from one device to another. This is achieved by implementing protocols and techniques to detect and correct errors that may occur during transmission.

2. Why is reliable data transfer important?

Reliable data transfer is important because it ensures the integrity of the data being transmitted. This is particularly crucial in scientific research where accurate and precise data is essential for drawing valid conclusions and making informed decisions.

3. What are some common techniques used for reliable data transfer?

Some common techniques used for reliable data transfer include error detection and correction codes, automatic repeat request (ARQ) protocols, and flow control mechanisms. These techniques help to identify and correct errors, as well as manage the flow of data to prevent congestion.

4. Can reliable data transfer be guaranteed?

While various techniques and protocols can greatly improve the reliability of data transfer, it cannot be guaranteed to be 100% error-free. Factors such as network congestion, hardware failures, and other external factors can still affect the accuracy of data transmission.

5. How does reliable data transfer impact scientific research?

Reliable data transfer is crucial in scientific research as it ensures the accuracy and validity of the data being collected and analyzed. It allows for more reliable and reproducible results, which are essential for advancing scientific knowledge and understanding.

Similar threads

Replies
1
Views
1K
  • Computing and Technology
Replies
14
Views
1K
  • Engineering and Comp Sci Homework Help
Replies
4
Views
910
Replies
11
Views
2K
  • Programming and Computer Science
Replies
6
Views
2K
Replies
4
Views
1K
  • Electrical Engineering
Replies
2
Views
3K
  • Computing and Technology
Replies
0
Views
531
Replies
4
Views
3K
Replies
2
Views
1K
Back
Top