TCP connection in IS pub.client:http - Resending HTTP request on TCP [RST,ACK] packet, which has already been sent to Target

Hi Experts,

Let me explain what we faced or observing during IS send http request to target :

  • Consider there will be a healthy TCP connection socket opened for example 12345 from IS to the target system to send HTTP requests.
  • After target system reaches its idle timeout, it will request to close this TCP socket connection 12345 (issues FIN,ACK) and our IS issues ACK back.
  • Now immediately there will be a HTTP request A before IS socket pool sweeper is executed to close the connection 12345. So, IS will post this HTTP request A to target with existing TCP connection 12345 (as its not yet closed by sweeper) and waits for the response from target.
  • As per wireshark TCP dump, there is a [RST, ACK] from target system to IS and new connection say 67890 is created from IS to target system to post same HTTP request A again. (Duplicate request?)

Question is :

  1. Which system is initiating this new connection to post the http request again? is it pub.client.http or the TCP protocol?
  2. Is this a expected behavior to resend HTTP request A on TCP [RST,ACK] packet from target system which has already been sent? Can we configure this in IS?

Thanks in advance for your reply.

Note: To know on what is socket pool sweeper keepAliveTimeout in pub.client:http - #17 by Niranth_NS

Regards,
Niranth