6

My company has to provide support to a piece of equipment that closes the connection on every request.

The problem is that in the most critical workflow, it needs to make 2 requests. The consequence is a very long wait between the two requests establishing SSL connection. The problem is even worse when GPRS is used.

I was wondering whether there is any way to prevent connection interruption. By looking at wireshark dump, it feels like if I could ignore FIN, the connection would remain open. Does that make any sense?

What are my options?

  • Don't forget that the TCP set up and tear down (three way handshake et al) is usually perform by a call from an application to the OS, and this is going to vary across OS and device type. So having an application intercept and ignore the FIN means an disparity between what the OS and wha the application think are happening possibly, on the client side. – jwbensley Feb 6 '16 at 22:10
12

Does that make any sense?

No.

The FIN is send because the sender decided that it wants to close the connection. Even if you would change the recipient that it will ignore the FIN the sender side of the application will still consider the connection closed and not send or receive any more data on it.

Just compare it to a phone call. If the other end decided to hang up the phone and no longer talk to you it does not matter if you are trying to ignore this, the other end still will not talk to you any more.

What are my options?

This must be fixed inside the application. For example the application could reuse the existing TCP connection like done with HTTP keep-alive.

1

no.

The fin means the sender will not send any more data. Pretending you didn't receive the notification isn't going to make them send more data :)

1

There is no network solution for this.

If the interface can't be fixed the only solution would be an application proxy. Essentially, on the outside you build the interface you require and on the inside the proxy translates this interface to the equipment.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.