Ssl – RST ACK over SSL in FireFox POST request

ssltlswireshark

The original question is here. In short, for few users several POST requests hangs and are aborted after couple of minutes, when working over SSL (http is OK).

What I'm asking here is an explanation of the WireShark log:

No.     Time        Source                Destination           Protocol Info
  > "submit" clicked
  1 0.000000    11.22.33.44         192.168.1.9           TCP      [TCP segment of a reassembled PDU]
  2 0.000114    11.22.33.44         192.168.1.9           TLSv1    Application Data
  3 0.000394    192.168.1.9           11.22.33.44         TCP      https > 50950 [ACK] Seq=1 Ack=2305 Win=64690 Len=0
  > what happened???
  4 97.611245   192.168.1.9           11.22.33.44         TCP      https > 50950 [RST, ACK] Seq=1 Ack=2305 Win=0 Len=0
  5 97.752530   11.22.33.44         192.168.1.9           TCP      50958 > https [SYN] Seq=0 Win=8192 Len=0 MSS=1459 WS=2 SACK_PERM=1
  6 97.752612   192.168.1.9           11.22.33.44         TCP      https > 50958 [SYN, ACK] Seq=0 Ack=1 Win=16384 Len=0 MSS=1460 WS=0 SACK_PERM=1
  7 97.778024   11.22.33.44         192.168.1.9           TCP      50958 > https [ACK] Seq=1 Ack=1 Win=17508 Len=0
  8 97.784462   11.22.33.44         192.168.1.9           TLSv1    Client Hello
  9 97.785107   192.168.1.9           11.22.33.44         TLSv1    Server Hello, Change Cipher Spec, Encrypted Handshake Message
 10 97.813970   11.22.33.44         192.168.1.9           TLSv1    Change Cipher Spec, Encrypted Handshake Message
 11 97.814082   11.22.33.44         192.168.1.9           TLSv1    Application Data
 12 97.814208   192.168.1.9           11.22.33.44         TCP      https > 50958 [ACK] Seq=123 Ack=2555 Win=64647 Len=0
 > and here user sees the request being aborted
 13 227.535270  192.168.1.9           11.22.33.44         TCP      https > 50958 [RST, ACK] Seq=123 Ack=2555 Win=0 Len=0

Sometimes, the request finally works, instead of being aborted. Also, this happens only for particular POST data, see original question.

Best Answer

It looks like the server is still waiting for data. Maybe there's a buffer in the SSL path which isn't being flushed? Maybe Firefox is screwing up and only sending a partial record (I can't tell without seeing the TLS frames).

Giving details of the server would help.