Вопрос : Включите tcp_nodelay

Здравствулте! ванты,

Can, котор вы помогаете полинять больше света в вышеуказанное tcp_nodelay, как будет что мы позволили оно уменьшить задержку до 0 на машине linux. Препятствуйте мне знать ваши мысли на этом. TY

Mike
class=

Ответ : Включите tcp_nodelay

Будет описание здесь: 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

Также от tcp (5) страницы человека:

       TCP_NODELAY
              Если установлено, выведите алгоритм из строя Nagle.  Это намеревается что этапы всегда посланы как
              скоро как по возможности, даже если будет только небольшое количество данных.  Когда установлено, данные
              амортизирует до тех пор пока не будет достаточно количества, котор нужно послать вне, таким образом избегать
              частая посылка малых пакетов, которая приводит к в плохом использовании сети
              работа.  Этот вариант отвергается TCP_CORK; однако, устанавливающ усилия этого варианта
              точный приток ожидающего решения выхода, даже если TCP_CORK в настоящее время установлено.

Я писал серверу TCP образца устанавливает TCP_NODELAY на гнезде. Он после этого посылает вне данные в различных размерах от 1 до 8192 байта. Вы можете составить и побежать оно полюбите это:

gcc $ - o nodelay_test nodelay_test.c
$ ./nodelay_test

После этого от другой раковины вы можете соединиться к ей любите это, using netcat:

$ localhost 5678 nc

Вы можете сделать различные эксперименты по времени путем позволять/выводящ установку из строя TCP_NODELAY, и использующ «время» с nc как это:

времени $ localhost 5678 nc > /dev/null

реальное 0m0.003s
потребитель 0m0.000s
sys 0m0.000s

Конечно вы можете также использовать его над сетью для более интересных результатов. Как раз замените localhost с adderss IP машины тестовая программа. И вы можете увеличить размер буфера.

Понадейтесь что помощь!
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:
/*
 * Пример сервера TCP_NODELAY
 *

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

ПОРТ 5678    #define

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

handle_connection int (клиент int)
{
    buf чарса [16384];
    int sz = 1;
    int iий;

    для (i=0; я посылаю (клиент, buf, sz, 0)) {
	perror («пошлите неудачный»);
	выход (EXIT_FAILURE);
      }
    }
    dprintf («закрывая гнездо клиента \ n»);
    конец (клиент);
}

основа int ()
{
    listensock int, clientsock;
    имя sockaddr_in struct;
    clientname sockaddr_in struct;
    размер int;
    int pid;
    int выбирает;

    listensock = гнездо (PF_INET, SOCK_STREAM, 0);
    если (listensock  < 0="">
           
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us