lwip-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[lwip-devel] [bug #55590] Zero window probe breaks incoming TCP stream


From: Puneet
Subject: [lwip-devel] [bug #55590] Zero window probe breaks incoming TCP stream
Date: Mon, 28 Jan 2019 09:00:02 -0500 (EST)
User-agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36

URL:
  <https://savannah.nongnu.org/bugs/?55590>

                 Summary: Zero window probe breaks incoming TCP stream
                 Project: lwIP - A Lightweight TCP/IP stack
            Submitted by: puneetsharma
            Submitted on: Mon 28 Jan 2019 02:00:00 PM UTC
                Category: TCP
                Severity: 3 - Normal
              Item Group: Faulty Behaviour
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
         Planned Release: None
            lwIP version: git head

    _______________________________________________________

Details:

<h3>
In tcp_zero_window_probe, below patch updates snd_nxt without updating 
pcb->unacked list.</font>
Change introduced in commit : 9ba9dee2aa809624eda0e96c96abd8abff29539e

Due to this change, if lwIP receives any data from peer while lwIP is
performing Zero Window probe, lwIP ACKs with sequence = snd_nxt +1 and while
len=0.

I see there is difference between Zero window probe implementation of lwIP and
linux.
Linux doesn't send any data in zero window probe.
While lwIP sends 1 byte of data in zero window probe. Even though lwIP sends 1
byte in zero window probe,it doesn't split unsent segment after window update
has been received.



118     16.312644000    192.168.0.3     192.168.0.2     TCP     1514    [TCP 
Window Full]
5249\u219244878 [ACK] Seq=94463 Ack=1 Win=59392 Len=1460
119     16.351201000    192.168.0.2     192.168.0.3     TCP     54      [TCP 
ZeroWindow]
44878\u21925249 [ACK] Seq=1 Ack=95923 Win=0 Len=0
120     17.083572000    192.168.0.3     192.168.0.2     TCP     55      [TCP 
ZeroWindowProbe]
5249\u219244878 [ACK] Seq=95923 Ack=1 Win=59392 Len=1
121     17.083614000    192.168.0.2     192.168.0.3     TCP     54      [TCP 
ZeroWindowProbeAck] [TCP
ZeroWindow] 44878\u21925249 [ACK] Seq=1 Ack=95923 Win=0 Len=0
122     17.266698000    192.168.0.2     192.168.0.3     TCP     254     [TCP 
ZeroWindow]
44878\u21925249 [PSH, ACK] Seq=1 Ack=95923 Win=0 Len=200
<font color="red">
123     17.335240000    192.168.0.3     192.168.0.2     TCP     54      [TCP 
Previous segment not
captured] 5249\u219244878 [ACK] Seq=95924 Ack=201 Win=59136 Len=0
</font>
124     17.335293000    192.168.0.2     192.168.0.3     TCP     54      [TCP 
ZeroWindow]
44878\u21925249 [ACK] Seq=201 Ack=95923 Win=0 Len=0
125     17.467214000    192.168.0.2     192.168.0.3     TCP     254     [TCP 
ZeroWindow]
44878\u21925249 [PSH, ACK] Seq=201 Ack=95923 Win=0 Len=200
126     17.587074000    192.168.0.3     192.168.0.2     TCP     54      
5249\u219244878 [ACK]
Seq=95924 Ack=401 Win=58880 Len=0


</h3>






    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/bugs/?55590>

_______________________________________________
  Message sent via Savannah
  https://savannah.nongnu.org/




reply via email to

[Prev in Thread] Current Thread [Next in Thread]