Freigeben über


StreamSocketListenerControl.NoDelay Eigenschaft

Definition

Ein -Wert, der angibt, ob der Nagle-Algorithmus für ein StreamSocket-Objekt verwendet wird, das erstellt wird, wenn eine Verbindung vom StreamSocketListener-Objekt empfangen wird.

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

Eigenschaftswert

Boolean

bool

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

Hinweise

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

Der Nagle-Algorithmus ist eine Technik zur Verbesserung der Effizienz von TCP/IP-Netzwerken, indem die Anzahl der Pakete reduziert wird, die über das Netzwerk gesendet werden müssen. Der Algorithmus versucht, Probleme zu behandeln, 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 Byte für IP und 20 Byte 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 bei einem 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. Über eine langsame Verbindung können viele dieser Pakete gleichzeitig über das Netzwerk übertragen werden. Der Nagle-Algorithmus kombiniert eine Reihe von kleinen ausgehenden Nachrichten und sendet sie alle gleichzeitig. Wenn ein gesendetes Paket vorhanden ist, für das der Absender keine Bestätigung erhalten hat, puffert der Absender die Ausgabe so lange, bis er über eine vollständige Paketausgabe verfügt. 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 Gesendete puffert, sollte den Nagle-Algorithmus nicht verwenden müssen.

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

Wenn diese Eigenschaft false ist, aktiviert StreamSocket 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 negative Nebenwirkungen möglich, wenn der Nagle-Algorithmus aktiviert ist und auch bestimmte andere TCP-Optimierungen verwendet werden.

Diese Eigenschaft kann festgelegt werden, bevor streamSocketListener beginnt, auf eingehende Verbindungen zu lauschen. Nachdem streamSocketListener gestartet hat, auf eingehende Verbindungen zu lauschen, führt das Festlegen der -Eigenschaft zu einem Fehler.

Diese Eigenschaft legt den Wert der Option TCP_NODELAY Sockets für den TCP-Socket fest, der vom StreamSocket verwendet wird.

Gilt für:

Weitere Informationen