Jump to content

Retransmission (data networks)

From Wikipedia, the free encyclopedia

Retransmission,essentially identical withautomatic repeat request(ARQ), is the resending ofpacketswhich have been either damaged or lost. Retransmission is one of the basic mechanisms used byprotocolsoperating over apacket switchedcomputer networkto provide reliable communication (such as that provided by areliable byte stream,for exampleTCP).

Such networks are usually "unreliable", meaning they offer no guarantees that they will not delay, damage, or losepackets,or deliver them out of order. Protocols which provide reliable communication over such networks use a combination ofacknowledgments(i.e. an explicitreceiptfrom the destination of thedata), retransmission of missing or damaged packets (usually initiated by atime-out), andchecksumsto provide that reliability.

Acknowledgment[edit]

There are several forms ofacknowledgementwhich can be used alone or together in networking protocols:

  • Positive Acknowledgement: the receiver explicitly notifies the sender which packets, messages, or segments were received correctly. Positive Acknowledgement therefore also implicitly informs the sender which packets were not received and provides detail on packets which need to be retransmitted.
  • Negative Acknowledgment (NACK): the receiver explicitly notifies the sender which packets, messages, or segments were received incorrectly and thus may need to be retransmitted (RFC 4077).
  • Selective Acknowledgment (SACK): the receiver explicitly lists which packets, messages, or segments in a stream are acknowledged (either negatively or positively). Positive selective acknowledgment is an option in TCP (RFC 2018) that is useful inSatellite Internet access(RFC 2488).
  • Cumulative Acknowledgment: the receiver acknowledges that it correctly received a packet, message, or segment in a stream which implicitly informs the sender that the previous packets were received correctly. TCP uses cumulative acknowledgment with its TCPsliding window.

Retransmission[edit]

Retransmission is a very simple concept. Whenever one party sends something to the other party, it retains a copy of the data it sent until the recipient has acknowledged that it received it. In a variety of circumstances the senderautomatically retransmits the datausing the retained copy. Reasons for resending include:

  • if no such acknowledgment is forthcoming within a reasonable time, the time-out
  • the sender discovers, often through someout of bandmeans, that the transmission was unsuccessful
  • if the receiver knows that expected data has not arrived, and so notifies the sender
  • if the receiver knows that the data has arrived, but in a damaged condition, and indicates that to the sender

See also[edit]