socket_quickack(3) turn TCP Quick ACK mode on or off

SYNTAX

#include <socket.h>

int socket_quickack(int s,int value);

DESCRIPTION

socket_quickack switches TCP Quick ACK mode on (value=1) or off (value=0). If the platform does not support this functionality, returns -1 and sets errno to ENOPROTOOPT (or ENOSYS if the platform does not define ENOPROTOOPT).

TCP Quick ACK mode is on by default because the operating system has to assume it's an interactive connection. In that case, an ACK will be sent quickly after data came in. If your code handles non-interactive server connections, it may make sense to switch Quick ACK mode off, telling the kernel to delay sending ACKs because the server is going to respond to incoming requests anyway, so the ACK can be piggy-backed onto that response, saving useless network traffic.

Normally socket_quickack returns 0. If anything goes wrong, socket_quickack returns -1, setting errno appropriately.

EXAMPLE


  #include <socket.h>


  int s;
  char ip[4];
  uint16 p;


  s = socket_tcp4b();
  socket_quickack(s);
  socket_bind4_reuse(s,ip,p);
  socket_listen(16);