Forum Discussion

JJMan's avatar
JJMan
Icon for Nimbostratus rankNimbostratus
Apr 19, 2019

iRule: dual connection uses two simultaneous TCP connections

Dual connection uses two simultaneous TCP connections, one of which will be used for sending messages and the other for receiving messages.

 

• The first connection initiated by client_1 will be used to send messages to server

 

• The second connection, also initiated by the client_1 will be used to receive messages from the server

 

The problem is that the server does not support this mode of operation, imposed by the client. The idea is to use F5 to open only one connection to the server but must adapt to the client's operating mode.

 

Can you help to accomplish this with F5?

 

4 Replies

  • Hi JJMan,

     

    This could be very difficult to pull off. But before judging if its possible or not lets dive a little bit deeper into your requirements...

     

    How much load does the application have? If the load is low (just a few connections with little throughput), CMP could be disabled to have all client connections sharing the same CPU core. This would make it slightly easier to copy application payloads from the sending connection (it will receive the response payload) to the receiving client connection.

     

    Is the protocol some sort of one request followed by one response or is the TCP connection itself multiplexed?

     

    Is it tolerable to add some minor delays to the responses? This would allow you to perform a kind of Nagle for the receiving connection (check every 250ms if the sending connection has buffered response payload which needs to become copied to the receiving connection).

     

    How could the related pair of sending and receiving connections be identified?

     

    Cheers, Kai

     

  • Is it an application written for your company or an application using a well known protocol?

     

    Reading protocol specifications can help to provide a solution!

     

  • JJMan's avatar
    JJMan
    Icon for Nimbostratus rankNimbostratus

    Hi,

     

    How much load does the application have? If the load is low (just a few connections with little throughput), CMP could be disabled to have all client connections sharing the same CPU core. This would make it slightly easier to copy application payloads from the sending connection (it will receive the response payload) to the receiving client connection.

     

    => The intrinsic load of this service is low. But our F5 applicance is shared on several services.We can not disable the CMP seen our traffic.

     

    Is the protocol some sort of one request followed by one response or is the TCP connection itself multiplexed?

     

    => I do not quite understand the question but... request followed by one response.

     

    Is it tolerable to add some minor delays to the responses? This would allow you to perform a kind of Nagle for the receiving connection (check every 250ms if the sending connection has buffered response payload which needs to become copied to the receiving connection).

     

    => 250ms is acceptable.

     

    How could the related pair of sending and receiving connections be identified?

     

    => The client_1 first attempts to establish the connection that will be used to send messages to the server. then establishes the connection that will be used for receiving messages

     

    Is it an application written for your company or an application using a well known protocol?

     

    => it's a proprietary protocol from a well-known company

     

    Thanks.