Поделиться через


StreamSocketListenerControl.NoDelay Свойство

Определение

Значение , указывающее, используется ли алгоритм Nagle в объекте StreamSocket , созданном при получении соединения объектом StreamSocketListener .

public:
 property bool NoDelay { bool get(); void set(bool value); };
bool NoDelay();

void NoDelay(bool value);
public bool NoDelay { get; set; }
var boolean = streamSocketListenerControl.noDelay;
streamSocketListenerControl.noDelay = boolean;
Public Property NoDelay As Boolean

Значение свойства

Boolean

bool

Значение , указывающее, используется ли алгоритм Nagle для TCP-соединения созданного объекта StreamSocket .

Комментарии

Свойство NoDelay определяет, включен или отключен алгоритм Nagle в созданном объекте StreamSocket . Значение по умолчанию для свойства NoDelay в StreamSockettrue.

Алгоритм Нейгла — это метод повышения эффективности сетей TCP/IP за счет уменьшения количества пакетов, которые необходимо отправить по сети. Алгоритм пытается справиться с проблемами, вызванными приложением, которое неоднократно выдает данные небольшими блоками. Tcp-пакет имеет 40-байтовый заголовок (20 байт для IP-адреса и 20 байт для TCP). Таким образом, если приложение отправляет только 4 байта в пакете, накладные расходы на данные пакета очень велики. Это может произойти для протокола удаленного доступа (например, telnet или защищенной оболочки), где большинство нажатий клавиш может создавать только один байт или два данных, которые передаются немедленно. По медленному каналу многие из этих пакетов могут одновременно находиться в пути по сети. Алгоритм Нейгла работает путем объединения нескольких небольших исходящих сообщений и отправки их всех одновременно. При наличии отправленного пакета, для которого отправитель не получил подтверждения, отправитель сохраняет буферизацию выходных данных до тех пор, пока не будет получен полный объем выходных данных пакета. Это позволяет отправлять все выходные данные одновременно. Применение алгоритма Нейгла заключается в увеличении пропускной способности за счет задержки. Хорошо написанное приложение, которое выполняет внутренние буферы, не должно использовать алгоритм Нейгла.

Если это свойство имеет значение true, StreamSocket отключит алгоритм Нейгла для TCP-подключения. Этот параметр сокращает потенциальные задержки при отправке небольших сообщений. При создании StreamSocket это свойство имеет значение по умолчанию true.

Если это свойство имеет значение false, StreamSocket включит алгоритм Нейгла для TCP-подключения. Этот параметр может увеличить пропускную способность за счет задержки, но его следует использовать только с осторожностью. Есть некоторые неблагоприятные побочные эффекты, возможные, если алгоритм Нейгла включен и также используются некоторые другие оптимизации TCP.

Это свойство может быть задано до того, как StreamSocketListener начнет прослушивать входящие подключения. После того как StreamSocketListener начнет прослушивать входящие подключения, установка свойства приведет к ошибке.

Это свойство задает значение параметра сокета TCP_NODELAY в сокете TCP, используемом StreamSocket.

Применяется к

См. также раздел