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


StreamSocketControl.NoDelay Свойство

Определение

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

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

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

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

Boolean

bool

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

Требования к Windows

Возможности приложения
ID_CAP_NETWORKING [Windows Phone]

Комментарии

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

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

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

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

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

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

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

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