Há uma descrição aqui:
http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_MRG/1.0/html/Realtime_Tuning_Guide/sect-Realtime_Tuning_Guide-Application_Tuning_and_Deployment-TCP_NODELAY_and_Small_Buffer_Writes.htmlIgualmente páginas de homem do tcp (das 5):
TCP_NODELAY
Se ajustado, incapacitar o algoritmo de Nagle. Isto significa que os segmentos estão emitidos sempre como
logo como possível, mesmo se há somente uma pequena quantidade de dados. Quando não ajustado, dados
é protegido até que haja uma suficiente quantidade a mandar, desse modo evitação
emissão freqüente de pacotes pequenos, que conduz à utilização pobre da rede
trabalho. Esta opção é cancelada por TCP_CORK; entretanto, ajustando forças desta opção
um resplendor explícito da saída pendente, mesmo se TCP_CORK é ajustado atualmente.
Eu escrevi um usuário do TCP da amostra que ajustasse TCP_NODELAY no soquete. Manda então dados em vários tamanhos de 1 a 8192 bytes. Você pode compilar e para funcioná-lo gostar disto:
GCC de $ - o o nodelay_test.c o mais nodelay_test
$ ./nodelay_test
Então de um outro escudo você pode conetar-lhe gosta disto, using o netcat:
$ do localhost 5678 do nc
Você pode fazer várias experiências do sincronismo permitindo/incapacitando o ajuste de TCP_NODELAY, e usando o “tempo” com o nc como este:
do tempo $ do localhost 5678 do nc > /dev/null
0m0.003s real
usuário 0m0.000s
sistema 0m0.000s
Naturalmente você pode igualmente usá-lo sobre a rede para uns resultados mais interessantes. Apenas substituir o localhost com os adderss do IP da máquina que funciona o programa de teste. E você pode aumentar o tamanho do amortecedor.
Esperar que ajudas!