lwip-users
[Top][All Lists]
Advanced

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

[lwip-users] Slow ACK for TCP data


From: Mark Dowdy
Subject: [lwip-users] Slow ACK for TCP data
Date: Wed, 29 Jan 2014 17:02:14 -0800

We’re using lwIP in raw mode on a MicroBlaze and are seeing instances of very slow ACK’s. Other than disabling UDP, our configuration parameters were unchanged from the ‘standard’ installation. Grasping at straws we tried setting TCP_WND to 8192 and TCP_MSS to 1450 but it didn’t help. Any idea what could be going on or how we could tune the stack to speed things up? A WireShark trace is shown below.

 

192.168.81.1 is our client, 192.168.86.1 is the MicroBlaze device running lwIP. Data is sent from the client to the server in frame 10 and the corresponding ACK arrives over a second later in frame 12.

 

No.     Time        Source                Destination           Protocol Info

      7 5.557890    192.168.81.1          192.168.86.1          TCP      65463 > 11002 [SYN] Seq=0 Win=32768 Len=0 MSS=1460 WS=0 SACK_PERM=1 TSV=0 TSER=0

      8 5.560238    192.168.86.1          192.168.81.1          TCP      11002 > 65463 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1450

      9 5.560241    192.168.81.1          192.168.86.1          TCP      65463 > 11002 [ACK] Seq=1 Ack=1 Win=33580 Len=0

     10 5.560244    192.168.81.1          192.168.86.1          TCP      65463 > 11002 [PSH, ACK] Seq=1 Ack=1 Win=33580 Len=1

     11 6.579581    192.168.81.1          192.168.86.1          TCP      [TCP Keep-Alive] 65463 > 11002 [PSH, ACK] Seq=1 Ack=1

     12 6.581536    192.168.86.1          192.168.81.1          TCP      11002 > 65463 [ACK] Seq=1 Ack=2 Win=8192 Len=0

     13 6.636343    192.168.86.1          192.168.81.1          TCP      11002 > 65463 [PSH, ACK] Seq=1 Ack=2 Win=8192 Len=2

     14 6.638403    192.168.86.1          192.168.81.1          TCP      [TCP Keep-Alive ACK] 11002 > 65463 [ACK] Seq=3 Ack=2 Win=8192 Len=0

     15 6.829526    192.168.81.1          192.168.86.1          TCP      65463 > 11002 [ACK] Seq=2 Ack=3 Win=33580 Len=0

     16 7.637363    192.168.81.1          192.168.86.1          TCP      65463 > 11002 [FIN, ACK] Seq=2 Ack=3 Win=33580 Len=0

     17 7.639507    192.168.86.1          192.168.81.1          TCP      11002 > 65463 [FIN, ACK] Seq=3 Ack=3 Win=8191 Len=0

     18 7.639511    192.168.81.1          192.168.86.1          TCP      65463 > 11002 [ACK] Seq=3 Ack=4 Win=33580 Len=0

 

Interestingly, at least for us, if we do back-to-back server accesses without closing the connection, the slow ACK is only there for the first exchange. Here’s the WireShark trace for that scenario. Slow ACK for frame 304, ‘fast’ ACK for frame 310.

 

No.     Time        Source                Destination           Protocol Info

    301 1237.342429 192.168.81.1          192.168.86.1          TCP      65451 > 11002 [SYN] Seq=0 Win=32768 Len=0 MSS=1460 WS=0 SACK_PERM=1 TSV=0 TSER=0

    302 1237.344687 192.168.86.1          192.168.81.1          TCP      11002 > 65451 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1450

    303 1237.344691 192.168.81.1          192.168.86.1          TCP      65451 > 11002 [ACK] Seq=1 Ack=1 Win=33580 Len=0

    304 1237.344694 192.168.81.1          192.168.86.1          TCP      65451 > 11002 [PSH, ACK] Seq=1 Ack=1 Win=33580 Len=1

    305 1238.361179 192.168.81.1          192.168.86.1          TCP      [TCP Keep-Alive] 65451 > 11002 [PSH, ACK] Seq=1 Ack=1 Win=33580 Len=1

    306 1238.363151 192.168.86.1          192.168.81.1          TCP      11002 > 65451 [ACK] Seq=1 Ack=2 Win=8192 Len=0

    307 1238.417927 192.168.86.1          192.168.81.1          TCP      11002 > 65451 [PSH, ACK] Seq=1 Ack=2 Win=8192 Len=2

    308 1238.419985 192.168.86.1          192.168.81.1          TCP      [TCP Keep-Alive ACK] 11002 > 65451 [ACK] Seq=3 Ack=2 Win=8192 Len=0

    309 1238.611125 192.168.81.1          192.168.86.1          TCP      65451 > 11002 [ACK] Seq=2 Ack=3 Win=33580 Len=0

    310 1239.418975 192.168.81.1          192.168.86.1          TCP      65451 > 11002 [PSH, ACK] Seq=2 Ack=3 Win=33580 Len=1

    311 1239.420951 192.168.86.1          192.168.81.1          TCP      11002 > 65451 [ACK] Seq=3 Ack=3 Win=8192 Len=0

    312 1239.475760 192.168.86.1          192.168.81.1          TCP      11002 > 65451 [PSH, ACK] Seq=3 Ack=3 Win=8192 Len=2

    313 1239.710900 192.168.81.1          192.168.86.1          TCP      65451 > 11002 [ACK] Seq=3 Ack=5 Win=33580 Len=0

    314 1240.476744 192.168.81.1          192.168.86.1          TCP      65451 > 11002 [FIN, ACK] Seq=3 Ack=5 Win=33580 Len=0

    315 1240.478900 192.168.86.1          192.168.81.1          TCP      11002 > 65451 [FIN, ACK] Seq=5 Ack=4 Win=8191 Len=0

    316 1240.478904 192.168.81.1          192.168.86.1          TCP      65451 > 11002 [ACK] Seq=4 Ack=6 Win=33580 Len=0

 

Any insights would be greatly appreciated. Thanks.

 


reply via email to

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