Condividi tramite


StreamSocketListenerControl.NoDelay Proprietà

Definizione

Valore che indica se l'algoritmo Nagle viene usato in un oggetto StreamSocket creato quando una connessione viene ricevuta dall'oggetto StreamSocketListener .

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

Valore della proprietà

Boolean

bool

Valore che indica se l'algoritmo Nagle viene usato nella connessione TCP di un oggetto StreamSocket creato.

Commenti

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

L'algoritmo di Nagle è una tecnica per migliorare l'efficienza delle reti TCP/IP riducendo il numero di pacchetti necessari per essere inviati tramite la 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 di 40 byte (20 byte per IP e 20 byte per TCP). Quindi, se un'app invia solo 4 byte in un pacchetto, il sovraccarico 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 dati trasmessi immediatamente. Su 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 spese della latenza. Un'app ben scritta che invia i buffer internamente non deve usare l'algoritmo di Nagle.

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

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

Questa proprietà può essere impostata prima che StreamSocketListener inizi ad ascoltare le connessioni in ingresso. Dopo l'avvio dell'ascolto di StreamSocketListener per le connessioni in ingresso, l'impostazione della proprietà genera un errore.

Questa proprietà imposta il valore dell'opzione socket TCP_NODELAY nel socket TCP usato dal streamSocket.

Si applica a

Vedi anche