Network Topology   «Prev  Next»

Lesson 6 The protocol.ora file, part 2
Objective Describe the use of the TCP.NODELAY option.

Describe the Use of the TCP.NODELAY Option in Oracle Network Services

The TCP.NODELAY option controls how Oracle Network Services handles small TCP packets on the network. Its purpose is to manage latency-sensitive communication between Oracle clients and servers by determining whether to use or disable Nagle’s algorithm.

Nagle’s algorithm attempts to reduce the number of small packets by buffering data briefly before transmitting it. This can reduce network overhead, but it introduces delay, especially noticeable in OLTP systems, chatty client tools, and custom applications that send many small messages.

Setting TCP.NODELAY=YES disables Nagle’s algorithm and instructs Oracle Net to send packets immediately, improving responsiveness at the cost of increasing packet volume.

Why TCP.NODELAY Still Matters in Oracle 23c and Oracle Cloud

Yes—TCP.NODELAY remains relevant in Oracle 23c and Oracle 23ai, especially in environments where low latency is critical. Although Oracle Cloud Infrastructure (OCI) abstracts much of the underlying network behavior, traffic between client applications and database services still uses TCP-based Oracle Net.

In modern Oracle deployments—including Autonomous Database, Exadata Cloud Service, and on-prem hybrid architectures— TCP.NODELAY continues to influence small-packet performance for:

While large SQL fetches and bulk operations benefit from buffering, many Oracle operations involve back-and-forth exchange of relatively small packets. In these cases, disabling buffering provides immediate performance improvement.

Configuring TCP.NODELAY in Oracle 23c

With the deprecation of the protocol.ora file, the parameters once defined there now belong in sqlnet.ora. A modern configuration example is shown below:


# sqlnet.ora – modern configuration example for Oracle 23c/23ai
SQLNET.SEND_BUF_SIZE = 65536
SQLNET.RECV_BUF_SIZE = 65536
TCP.NODELAY           = YES

You may also use protocol-specific settings in listener.ora or tnsnames.ora, but Oracle recommends centralizing most tuning parameters in sqlnet.ora to simplify management.

When to Enable TCP.NODELAY

Illustration: Effect of Nagle’s Algorithm on Oracle Network Services

The following diagram compares the behavior of sending small packets with Nagle’s algorithm enabled (default) versus disabled using the TCP.NODELAY option.

enabling vs. disabling Nagle’s algorithm in Oracle Network Services.
TCP.NODELAY = NO
(Nagle’s algorithm enabled)
TCP.NODELAY = YES
(Disabled algorithm)
Data

Buffered
↙︎  ↘︎
Segment  Segment

Segment

Server
Data

Segment

Segment

Segment

Server
Enabling versus disabling Nagle’s algorithm in Oracle Network Services.

How Oracle Packages Data When TCP.NODELAY Is Used

Oracle Network Services transmits data using packets that may be buffered briefly before sending. Nagle’s algorithm delays transmission to accumulate more data and reduce packet count. This works well for large fetches but can slow down applications that perform rapid, small exchanges.

When TCP.NODELAY=YES is set, Oracle sends packets immediately, reducing latency and improving responsiveness for OLTP and interactive workloads.

Deprecated Components (Modern Oracle Guidance)

  1. Net8 OPEN: No longer supported. Modern Oracle uses simpler, standards-based interfaces.
  2. Prespawned Dedicated Servers: Replaced by shared server and cloud autoscaling mechanisms.
  3. protocol.ora File: Fully deprecated. Parameters migrated to sqlnet.ora including:
    • TCP.NODELAY
    • TCP.EXCLUDED_NODES
    • TCP.INVITED_NODES
    • TCP.VALIDNODE_CHECKING

OracleNet Components - Quiz

Before moving on to the next lesson, click the Quiz link below to check your knowledge of Net components with a short multiple-choice quiz.
OracleNet Components - Quiz

SEMrush Software 6 SEMrush Banner 6