Questione : Permettere a tcp_nodelay

Ciao tipi,

Can che contribuite a fare più luce nel tcp_nodelay di cui sopra, come è che gli abbiamo permesso di ridurre il ritardo a 0 su una macchina di linux. Lasciarlo conoscere i vostri pensieri su questo. TY

Mike
class= del

Risposta : Permettere a tcp_nodelay

Ci è una descrizione qui: 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.html

Inoltre dal tcp (5) pagina di uomo:

       TCP_NODELAY
              Se regolato, rendere invalida la procedura di Nagle.  Ciò significa che i segmenti sono trasmessi sempre As
              presto come possibile, anche se ci è soltanto una piccola quantità di dati.  Una volta non regolato, dati
              è attenuato fino a che non ci sia un importo sufficiente da spedire, quindi evitare
              frequente invio dei pacchetti piccoli, che provoca l'utilizzazione difficile della rete
              lavoro.  Questa opzione è ignorata da TCP_CORK; tuttavia, regolando le forze di questa opzione
              un rossoreare esplicito di uscita in corso, anche se TCP_CORK attualmente è regolato.

Ho scritto un assistente di TCP del campione che regola TCP_NODELAY sullo zoccolo. Allora spedice i dati in vari formati da 1 a 8192 byte. Potete compilare e farlo funzionare gradire questo:

GCC di $ - o nodelay_test.c più nodelay_test
$ ./nodelay_test

Allora dalle altre coperture potete collegarti ad esso gradite questo, using netcat:

$ di localhost 5678 di nc

Potete fare i vari esperimenti di sincronizzazione permettendo/rendendo invalida la regolazione di TCP_NODELAY ed usando “il tempo„ con il nc come questo:

$ di tempo di localhost 5678 di nc > /dev/null

0m0.003s reale
utente 0m0.000s
sistema 0m0.000s

Naturalmente potete anche usarli sulla rete per i risultati più interessanti. Sostituire appena il localhost con i adderss del IP della macchina che fa funzionare il programma di prova. E potete aumentare il formato dell'amplificatore.

Sperare che aiuti!
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
/*
 * Esempio dell'assistente di TCP_NODELAY
 */

#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  
#include  

ORIFICIO 5678    di #define

dprintf di #define di // (arg…)
dprintf di #define (arg…) printf (arg)

handle_connection di int (cliente di int)
{
    buf del carbone [16384];
    int la SZ = 1;
    int i;

    per (i=0;  trasmetto (cliente, buf, SZ, 0)) {
	perror (“trasmettere venire a mancare„);
	uscita (EXIT_FAILURE);
      }
    }
    dprintf (“zoccolo di chiusura \ n del cliente„);
    fine (cliente);
}

conduttura di int ()
{
    listensock di int, clientsock;
    nome del sockaddr_in dello struct;
    clientname del sockaddr_in dello struct;
    formato di int;
    int pid;
    il int sceglie;

    listensock = zoccolo (PF_INET, SOCK_STREAM, 0);
    se (listensock  < 0="">
           
Altre soluzioni  
 
programming4us programming4us