Condividi tramite


StreamWebSocketControl.NoDelay Proprietà

Definizione

Valore che indica se l'algoritmo Nagle viene utilizzato in un oggetto StreamWebSocket .

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

Valore della proprietà

Boolean

bool

Valore che indica se l'algoritmo Nagle viene utilizzato sulla connessione TCP di un oggetto StreamWebSocket .

Commenti

La proprietà NoDelay controlla se l'algoritmo di Nagle è abilitato o disabilitato in un oggetto StreamWebSocket . Il valore predefinito per la proprietà NoDelay è true.

L'algoritmo di Nagle è una tecnica per migliorare l'efficienza delle reti TCP/IP riducendo il numero di pacchetti necessari per l'invio in rete. L'algoritmo tenta di gestire i problemi causati da un'applicazione che genera ripetutamente dati in blocchi di piccole dimensioni. Un pacchetto TCP ha un'intestazione a 40 byte (20 byte per IP e 20 byte per TCP). Pertanto, se un'app invia solo 4 byte in un pacchetto, l'overhead sui dati del pacchetto è molto grande. Ciò può verificarsi per un protocollo di accesso remoto (telnet o shell sicura, ad esempio) in cui la maggior parte dei tasti può generare solo un singolo byte o due di dati trasmessi immediatamente. Tramite un collegamento lento, molti di questi pacchetti possono essere in transito sulla rete contemporaneamente. L'algoritmo di Nagle funziona combinando un numero di piccoli messaggi in uscita e inviandoli tutti contemporaneamente. Quando è presente un pacchetto inviato per il quale il mittente non ha ricevuto alcun riconoscimento, il mittente mantiene l'output del buffer finché non ha un pacchetto completo di output. In questo modo l'output può essere inviato tutti contemporaneamente. L'impatto dell'applicazione dell'algoritmo di Nagle consiste nell'aumentare la larghezza di banda a scapito della latenza. Un'app ben scritta che invia buffer internamente non deve usare l'algoritmo di Nagle.

Quando questa proprietà è true, StreamWebSocket disabiliterà l'algoritmo di Nagle sulla connessione TCP. Questa impostazione riduce i potenziali ritardi durante l'invio di messaggi di piccole dimensioni. Quando viene creato un oggetto StreamWebSocket , il valore predefinito per questa proprietà è true.

Quando questa proprietà è false, StreamWebSocket abiliterà l'algoritmo di Nagle sulla connessione TCP. Questa impostazione può aumentare la larghezza di banda a scapito della latenza, ma deve essere usata solo con cautela. Esistono alcuni effetti collaterali negativi quando l'algoritmo di Nagle è abilitato e vengono usate anche alcune altre ottimizzazioni TCP.

Questa proprietà può essere impostata prima della connessione di StreamWebSocket . Dopo la connessione di StreamWebSocket , l'impostazione della proprietà genererà un errore.

Questa proprietà imposta il valore dell'opzione socket TCP_NODELAY sul socket TCP utilizzato da StreamWebSocket .

Si applica a

Vedi anche