Uploaded image for project: 'Axis-C++'
  1. Axis-C++
  2. AXISCPP-749

Currently TCP_NODELAY is turned off. This is only efficient when the messages are small.

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Trivial
    • Resolution: Won't Fix
    • current (nightly)
    • None
    • None
    • n/a

    Description

      When setting up the socket, the following initialisation is performed (see the last few lines of method HTTPChannel::OpenChannel() and HTTPSSLChannel::OpenChannel())...

      /* Turn off the Nagle algorithm - Patch by Steve Hardy */

      /* This is needed, because our TCP stack would otherwise wait at most

      • 200 ms before actually sending data to the server (while waiting for
      • a full packet). This limits performance to around 5 requests per
      • second, which is not acceptable. Turning off the Nagle algorithm
      • allows for much faster transmission of small packets, but may
      • degrade high-bandwidth transmissions.
        */

      int one = 1;

      setsockopt( m_Sock, IPPROTO_TCP, TCP_NODELAY, (char *) &one, sizeof( int));

      When the message is not so small, does this omission degrade the socket performance? Would it be better to set a threshold and perhaps change the socket options 'on the fly' when the message size dictates that it should be handled differently?

      Attachments

        Activity

          People

            Unassigned Unassigned
            prestonf Fred Preston
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: