nodelay 特性會影響用於指定協定的 Nagle 演算法 (TCP/IP 上 TCP_NODELAY 傳輸層選項的值)。Nagle 演算法可用以改善使用慢速連線 (例如廣域網路 (WAN) 等) 之系統上的 TCP 效能。
使用該演算法時,TCP 會將資料包裝為較大的資料封包,從而避免傳送一些小的資料塊到遠端系統。如果寫入套接的資料未填滿所需緩衝區大小,那麼協定會在緩衝區填滿或特定延遲時間結束前,延遲傳送封包。一旦緩衝區填滿或發生逾時,即會傳送資料封包。
對於大部份的訊息傳送應用程式,如果傳送資料封包時沒有延遲 (未啟用 Nagle 演算法),則效能為最佳。這是因為用戶端與代理程式之間大部份都是請求/回應式互動:用戶端傳送資料封包給代理程式且等待回應。例如,典型的互動包括:
建立連線
建立產生器或用戶
傳送永久性訊息 (代理程式會確定已接收訊息)
在 AUTO_ACKNOWLEDGE 或 CLIENT_ACKNOWLEDGE 階段作業中傳送用戶端確認 (代理程式會確定確認處理)
對於這些互動,大部份的資料封包都小於緩衝區大小。這表示,如果使用 Nagle 演算法,則代理程式在傳送回應到用戶之前,會延遲數毫秒。
但是,在連線速度緩慢和不需代理程式回應的狀況下,Nagle 演算法可改善效能。例如,在用戶端傳送非永久性訊息,或用戶端的確認未經代理程式確定 (DUPS_OK_ACKNOWLEDGE 階段作業) 等狀況下。