I noticed following behaviour of curl_easy_perform when server
terminates connection after sending response to curl client.

Case1: curl_easy_perform returns immediately, and detects broken
connection at the time of next request.
        It then re-establishes the connection and retrieve page successfully.
Whole process takes around 220ms (200ms for TCP connection + SSL
Handshake, 8 ms for http response)

Case2: curl_easy_perform is taking around 900ms to sec to return.
        In this case too, I see server returned response followed by TCP FIN
immediately.
        All termination packet flow is same as of case1.
        Still curl_easy_perform is taking 800ms further to return.

Please advice any work around to deal with this.

Case2 flow: 900ms return from curel_easy_perform, actually server
returns response immediately in 8ms.
        
Req        2245 11:01:12.121 203.243.24.23         172.206.36.76
TLSv1    Application Data
           2246 11:01:12.122 203.243.24.23         172.206.36.76
TLSv1    [TCP Out-Of-Order] Application Data
Resp       2247 11:01:12.128 172.206.36.76         203.243.24.23
TLSv1    Application Data
           2248 11:01:12.128 172.206.36.76         203.243.24.23         TCP
    https > 57468 [FIN, ACK] Seq=106247 Ack=22273 Win=26652 Len=0
           2249 11:01:12.128 172.206.36.76         203.243.24.23
TLSv1    [TCP Out-Of-Order] Application Data
           2250 11:01:12.128 172.206.36.76         203.243.24.23         TCP
    https > 57468 [FIN, ACK] Seq=106247 Ack=22273 Win=26652 Len=0
           2251 11:01:12.128 203.243.24.23         172.206.36.76         TCP
    57468 > https [ACK] Seq=22273 Ack=106247 Win=64128 Len=0
           2252 11:01:12.128 203.243.24.23         172.206.36.76         TCP
    [TCP Dup ACK 2251#1] 57468 > https [ACK] Seq=22273 Ack=106247
Win=64128 Len=0
           2253 11:01:12.129 203.243.24.23         172.206.36.76
TLSv1    Encrypted Alert
           2254 11:01:12.129 203.243.24.23         172.206.36.76
TLSv1    [TCP Out-Of-Order] Encrypted Alert
           2255 11:01:12.130 203.243.24.23         172.206.36.76         TCP
    57468 > https [FIN, ACK] Seq=22302 Ack=106248 Win=64128 Len=0
           2256 11:01:12.130 203.243.24.23         172.206.36.76         TCP
    57468 > https [FIN, ACK] Seq=22302 Ack=106248 Win=64128 Len=0
           2257 11:01:12.133 172.206.36.76         203.243.24.23         TCP
    https > 57468 [RST, ACK] Seq=106248 Ack=22302 Win=26681 Len=0
           2258 11:01:12.133 172.206.36.76         203.243.24.23         TCP
    https > 57468 [RST, ACK] Seq=106248 Ack=22302 Win=26681 Len=0
        
        
Case1 flow: Immediate return by curl_easy_perform

Req        3513 11:01:52.923 203.243.24.23         172.206.36.76
TLSv1    Application Data
           3514 11:01:52.923 203.243.24.23         172.206.36.76
TLSv1    [TCP Out-Of-Order] Application Data
Resp       3515 11:01:52.929 172.206.36.76         203.243.24.23
TLSv1    Application Data
           3516 11:01:52.929 172.206.36.76         203.243.24.23         TCP
    https > 57482 [FIN, ACK] Seq=106247 Ack=22273 Win=26652 Len=0
           3517 11:01:52.929 172.206.36.76         203.243.24.23
TLSv1    [TCP Out-Of-Order] Application Data
           3518 11:01:52.929 172.206.36.76         203.243.24.23         TCP
    https > 57482 [FIN, ACK] Seq=106247 Ack=22273 Win=26652 Len=0
           3519 11:01:52.929 203.243.24.23         172.206.36.76         TCP
    57482 > https [ACK] Seq=22273 Ack=106247 Win=64128 Len=0
           3520 11:01:52.929 203.243.24.23         172.206.36.76
TLSv1    Encrypted Alert
           3521 11:01:52.929 203.243.24.23         172.206.36.76         TCP
    57482 > https [ACK] Seq=22273 Ack=106247 Win=64128 Len=0
           3522 11:01:52.930 203.243.24.23         172.206.36.76
TLSv1    [TCP Out-Of-Order] Encrypted Alert
           3523 11:01:52.931 203.243.24.23         172.206.36.76         TCP
    57482 > https [FIN, ACK] Seq=22302 Ack=106248 Win=64128 Len=0
           3524 11:01:52.931 203.243.24.23         172.206.36.76         TCP
    57482 > https [FIN, ACK] Seq=22302 Ack=106248 Win=64128 Len=0
           3525 11:01:52.934 172.206.36.76         203.243.24.23         TCP
    https > 57482 [RST, ACK] Seq=106248 Ack=22302 Win=26681 Len=0
           3526 11:01:52.934 172.206.36.76         203.243.24.23         TCP
    https > 57482 [RST, ACK] Seq=106248 Ack=22302 Win=26681 Len=0
-------------------------------------------------------------------
List admin: http://cool.haxx.se/list/listinfo/curl-library
Etiquette:  http://curl.haxx.se/mail/etiquette.html

Reply via email to