RFC Errata

Errata Search

Source of RFC  
Summary Table Full Records

RFC 793, "Transmission Control Protocol", September 1981

Note: This RFC has been obsoleted by RFC 9293

Note: This RFC has been updated by RFC 1122, RFC 3168, RFC 6093, RFC 6528

Source of RFC: Legacy
Area Assignment: tsv

Errata ID: 4785
Status: Held for Document Update
Type: Technical
Publication Format(s) : TEXT

Reported By: Sanjeev Ranot
Date Reported: 2016-08-20
Held for Document Update by: Mirja Kühlewind
Date Held: 2016-09-01

Section 3.9 p. 72 says:

If the ACK is a duplicate
(SEG.ACK < SND.UNA), it can be ignored.

It should say:

If the ACK is a duplicate
(SEG.ACK =< SND.UNA), it can be ignored except when equality is met, 
then window should be updated. This can happen when there are 
segments in flight but the receiver shrinks its RCV.BUF to drop all 
of them and send an ACK carrying zero window update. Upon its 
arrival at the sending TCP, condition SND.UNA = SEG.ACK is met and 
we must update SND.WND <- 0. Then sender starts persist timer for 
sending zero-window probes [Ref. RFC 1122 Section, page 92]


The condition is corrected as Duplicate ACK in
RFC 1122, Section (g) p. 94. Accordingly old text must be
modified and new text should also be present to support the corrected
condition in RFC 793.

This is one case where duplicate acknowledgment cannot be ignored. i.e.
when SEG.ACK == SND.UNA and advertised window in the incoming ACK is 0
in which case sender needs to :
1. update window
2. start persist timer
3. send zero window probe segments.

Such ACKs should not be called as duplicates as it fails condition (e)
of definition of "DUPLICATE ACKNOWLEDGMENT" in Ref 5681 Section 2, pg 4

Report New Errata

Advanced Search