StreamSocketControl.NoDelay Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ein -Wert, der angibt, ob der Nagle-Algorithmus für ein StreamSocket-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 = streamSocketControl.noDelay;
streamSocketControl.noDelay = boolean;
Public Property NoDelay As Boolean
Eigenschaftswert
bool
Ein -Wert, der angibt, ob der Nagle-Algorithmus für die TCP-Verbindung eines StreamSocket-Objekts verwendet wird.
Windows-Anforderungen
App-Funktionen |
ID_CAP_NETWORKING [Windows Phone]
|
Hinweise
Die NoDelay-Eigenschaft steuert, ob der Nagle-Algorithmus für ein StreamSocket-Objekt aktiviert oder deaktiviert ist. Der Standardwert für die NoDelay-Eigenschaft 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 streamSocket verbunden wird. Nachdem streamSocket verbunden wurde, 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.