Freigeben über


StreamWebSocketControl.NoDelay Eigenschaft

Definition

Ein Wert, der angibt, ob der Nagle-Algorithmus für ein StreamWebSocket-Objekt verwendet wird.

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

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

Eigenschaftswert

Boolean

bool

Ein Wert, der angibt, ob der Nagle-Algorithmus für die TCP-Verbindung eines StreamWebSocket-Objekts verwendet wird.

Hinweise

Die NoDelay-Eigenschaft steuert, ob der Nagle-Algorithmus für ein StreamWebSocket-Objekt aktiviert oder deaktiviert ist. Der Standardwert für die NoDelay-Eigenschaft ist true.

Der Nagle-Algorithmus ist eine Technik, um die Effizienz von TCP/IP-Netzwerken zu verbessern, indem die Anzahl der Pakete reduziert wird, die über das Netzwerk gesendet werden müssen. Der Algorithmus versucht, Probleme zu beheben, die durch eine Anwendung verursacht werden, die wiederholt Daten in kleinen Blöcken ausgibt. Ein TCP-Paket verfügt über einen 40-Byte-Header (20 Bytes für IP und 20 Bytes für TCP). Wenn eine App also nur 4 Bytes in einem Paket sendet, ist der Mehraufwand für die Paketdaten sehr groß. Dies kann für ein Remotezugriffsprotokoll (z. B. Telnet oder secure Shell) auftreten, bei dem die meisten Tastendrücke nur ein oder zwei Byte von Daten generieren, die sofort übertragen werden. Bei einer langsamen Verbindung werden viele dieser Pakete möglicherweise gleichzeitig über das Netzwerk übertragen. Der Nagle-Algorithmus funktioniert, indem er eine Reihe von kleinen ausgehenden Nachrichten kombiniert und alle gleichzeitig sendet. Wenn ein gesendetes Paket vorhanden ist, für das der Absender keine Bestätigung erhalten hat, puffert der Absender die Ausgabe weiter, bis er den Wert der Ausgabe des vollständigen Pakets aufweist. Dadurch kann die Ausgabe auf einmal gesendet werden. Der Effekt der Anwendung des Nagle-Algorithmus besteht darin, die Bandbreite auf Kosten der Latenz zu erhöhen. Eine gut geschriebene App, die intern von Puffern gesendet wird, sollte nicht den Nagle-Algorithmus verwenden müssen.

Wenn diese Eigenschaft true ist, deaktiviert streamWebSocket den Nagle-Algorithmus für die TCP-Verbindung. Diese Einstellung verringert die potenziellen Verzögerungen beim Senden kleiner Nachrichten. Wenn ein StreamWebSocket erstellt wird, ist der Standardwert für diese Eigenschaft true.

Wenn diese Eigenschaft false ist, aktiviert streamWebSocket den Nagle-Algorithmus für die TCP-Verbindung. Diese Einstellung kann die Bandbreite auf Kosten der Latenz erhöhen, sollte aber nur mit Vorsicht verwendet werden. Es sind einige nachteilige Nebenwirkungen möglich, wenn der Nagle-Algorithmus aktiviert ist und auch bestimmte andere TCP-Optimierungen verwendet werden.

Diese Eigenschaft kann festgelegt werden, bevor streamWebSocket verbunden ist. Nachdem streamWebSocket verbunden ist, führt das Festlegen der Eigenschaft zu einem Fehler.

Diese Eigenschaft legt den Wert der TCP_NODELAY Socketoption für den TCP-Socket fest, der vom StreamWebSocket verwendet wird.

Gilt für:

Weitere Informationen