Connectivity funniness (very long)
Posted in 1999
Topics: General Discussion
Everyone, We've come across an interesting thing with Informix's connectivity: i don't really know what to call it: tli, I/Connect, etc, etc. We put a sniffer on our network and found that when Informix responds to a remote client it does so in a round about fashion: On the TCP level: instead of sending a reply with the acknowledgement piggy- backed, it first acknowledges and then sends the data with the acknowledgement piggybacked. If this sounds funny here's the conversation on a TCP level: (In the following description these acronyms are used: SYN: Synchronize, a TCP primitive to initiate a conversation Data: Send packet x with data ACK: Acknowledge receipt of packet x FIN: Finish, terminate the connection) Client -> Host: SYN (x) Host -> Client: ACK (x), SYN (y) Client -> Host: ACK (y) This is the initial 3-way handshake, quite normal. Now the conversation continues. The client behaves normal, but the host always sends an extra ACK packet before sending the data. These ACK and data packets could be combined. The extra ACK packet means an extra 40 bytes (20 bytes TCP + 20 bytes IP). Ito bandwidth 40 extra bytes is probably not that much but the extra packet is a bummer on a long delay network such as via satellite. Client -> Host: Data (x1), ACK (y) Host -> Client: ACK (x1) Host -> Client: Data (y1), ACK (x1) Client -> Host: Data (x2), ACK (y1) Host -> Client: ACK (x2) Host -> Client: Data (y2), ACK (x2) Client -> Host: Data (x3), ACK (y2) ... Termination shows the same behaviour from the host, and normal behaviour from the client: Client -> Host: FIN (xn), ACK (xn-1) Host -> Client: ACK (xn) Host -> Client: FIN (yn), ACK (xn) Client -> Host: ACK (yn) Informix: 7.30.UC2 OS: Unixware 7.1 + relevant patches Client: I'm not quite sure, something like SDK 2.30 or so? Does anyone have an idea where to go from here. Should i log this with Tech Support? TIA --- #include <disclaimer.h> static char rcptfrom[]="$Id: Willem Roos - (+27) 21 980 4941 $";
Willem Roos wrote: > > Everyone, > > We've come across an interesting thing with Informix's connectivity: i > don't > really know what to call it: tli, I/Connect, etc, etc. We put a sniffer > on our > network and found that when Informix responds to a remote client it does > so in a > round about fashion: > > On the TCP level: instead of sending a reply with the acknowledgement > piggy- > backed, it first acknowledges and then sends the data with the > acknowledgement > piggybacked. If this sounds funny here's the conversation on a TCP > level: [SNIP] > Does anyone have an idea where to go from here. Should i log this with > Tech Support? That's up to you Willem. It is not causing an integrity problem and the additional ACK is certainly permitted by the protocols so I'd call it a Feature Request. Art S. Kagel