TCP Settings

This section shows you how to configure the TCP settings used for client‑to‑event broker and event broker-to-event broker connections.

Configuring TCP Keepalive Settings

The TCP Keepalive facility is used to keep TCP connections alive on Solace PubSub+ event brokers. The timers for the TCP Keepalive facility can be configured for client-to-event broker connections and event broker-to-event broker neighbor connections.

Configuring TCP Keepalives for Client-to-Event Broker Connections

To configure the TCP Keepalive for client-to-event broker connections, enter the following CONFIG commands.

solace# configure
solace(configure)# client-profile <name> message-vpn <name>
solace(configure/client-profile)# tcp keepalive
solace(configure/client-profile/tcp/keepalive)#

Where:

<name> is the name of the client profile. A client profile name can contain up to 32 alphanumeric characters (case-sensitive). The “_” character is also permitted.

<vpn-name> is the name of an existing Message VPN the client profile belongs to.

The CLI is now in the TCP Keepalive configuration mode, where you can make the following configurations for the TCP Keepalive facility timers for client-to-event broker connections:

  • solace(configure/client-profile/tcp/keepalive)# count <num>—sets the maximum number of keepalive probes (from 2 to 5 ) TCP should send before dropping the connection. The default value is 5.
  • solace(configure/client-profile/tcp/keepalive)# idle <seconds>—sets the time (from 3 to 120 seconds) a connection must remain idle before TCP begins sending keepalive probes. The default value is 3.
  • solace(configure/client-profile/tcp/keepalive)# interval <seconds>—sets the time (from 1 to 30 seconds) to set as the interval between individual keepalive probes. The default value is 1.

The no version of these commands, no, resets the values back to the defaults.

Configuring TCP Keepalives for Event Broker-to-Event Broker Connections

To configure the TCP Keepalive for event broker-to-event broker neighbor connections, enter the following commands on each neighbor event broker:

solace# configure
solace(configure)# routing
solace(configure/routing)# cspf neighbor <physical-router-name>
solace(configure/routing/cspf/neighbor)# tcp keepalive
solace(...e/routing/cspf/neighbor/tcp/keepalive)#

The CLI is now in the TCP Keepalive configuration mode, where you can make the following configurations for the TCP Keepalive facility timers for event broker-to-event broker connections:

  • solace(configure/client-profile/tcp/keepalive)# count <num>—sets the maximum number of keepalive probes (from 2 to 5 ) TCP should send before dropping the connection. The default value is 5.
  • solace(configure/client-profile/tcp/keepalive)# idle <seconds>—sets the time (from 3 to 120 seconds) a connection must remain idle before TCP begins sending keepalive probes. The default value is 3.
  • solace(configure/client-profile/tcp/keepalive)# interval <seconds>—sets the time (from 1 to 30 seconds) to set as the interval between individual keepalive probes. The default value is 1.

The no version of these commands, no, resets the values back to the defaults.

Configuring TCP Initial Congestion Window Size

The TCP initial congestion window size is used when starting up a TCP connection or on recovery from idle (that is, no traffic). It is the number of segments TCP sends before waiting for an acknowledgment from the peer. Larger values of initial window allows a connection to come up to speed more quickly. For further details, refer to RFC 2581.

Changing the TCP initial congestion window size from its default of 2 results in non-compliance with RFC 2581. Further, care must be taken for if this parameter value is set too high, it may cause congestion in the network. Always contact Solace for technical support before you attempt to change this TCP parameter on Solace PubSub+ event brokers.

The TCP initial congestion window size facility can be configured for both client‑to‑event broker connections and event broker‑to‑event broker neighbor connections.

Configuring TCP Initial Congestion Window Sizes for Event Broker-to-Client Connections

To configure the initial congestion window size for the event broker to use when sending data to a client, enter the following CONFIG commands.

solace(configure)# client-profile <name> message-vpn <vpn-name>
solace(configure/client-profile)# tcp initial-cwnd <num-mss>

Where:

<name> is the name of the client profile. A client profile name can contain up to 32 alphanumeric characters (case-sensitive). The “_” character is also permitted. If the profile does not already exist, it is created.

<vpn-name> is the name of the Message VPN the client profile belongs to. It must already exist.

<num-mss> is an integer specifying the size of the TCP initial congestion window measured in number of TCP maximum segment size (MSS). Valid values are 2 through 7826. The default value is 2.

The no version of this command, no tcp initial-cwnd, resets the size of the TCP initial congestion window back to the default value.

Configuring TCP Initial Congestion Window Sizes for Event Broker-to-Event Broker Connections

To configure the initial congestion window size for an event broker to use when sending data to the neighbor event broker, you must use the tcp initial-cwnd command.

Example:

solace(configure)# routing
solace(configure/routing)# cspf neighbor <physical-router-name>
solace(configure/routing/cspf/neighbor)# tcp initial-cwnd <num-mss>

Where:

<num-mss> is an integer specifying the size of the TCP initial congestion window measured in number of TCP maximum segment size (MSS). Valid values are 2 through 7826. The default value is 2.

The no version of this command, no tcp initial-cwnd, resets the size of the TCP initial congestion window back to the default value.

Configuring TCP Max Window Sizes

The TCP maximum window size should be set to equal at least the bandwidth‑delay product of the link between the TCP peers.

If the maximum window size is set to less than the bandwidth-delay product, then the TCP connection operates below its maximum potential throughput. If the maximum window is set to less than about twice the bandwidth-delay product, then occasional packet loss causes the TCP connection to operate below its maximum potential throughput as it handles the missing acknowledgments and retransmissions.

Alternately, if the TCP maximum window size is set too large, in the presence of a high offered load, TCP gradually increases its congestion window size until either:

  • the congestion window size reaches the maximum window size
  • packet loss occurs in the network

Initially, when the TCP congestion window size is small, the physical bandwidth‑delay of the network acts as a memory buffer for packets in flight. But as the congestion window crosses the bandwidth-delay product, the buffering of in-flight packets moves to queues in various switches, event brokers, and other equipment throughout the network. As the TCP congestion window continues to increase in size, these various equipment queues overflow, causing packet loss and TCP backoff.

The TCP maximum window size can be configured for both client‑to‑event broker connections and event broker‑to‑event broker neighbor connections.

Configuring TCP Max Window Size for Client-to-Event Broker Connections

To configure a maximum window size for data that clients send to and receive from the event broker, enter the following CONFIG commands:

solace(configure)# client-profile <name> message-vpn <vpn-name>
solace(configure/client-profile)# tcp max-wnd <num-kilo-bytes>

Where:

<name> is the name of the client profile. A client profile name can contain up to 32 alphanumeric characters (case-sensitive). The “_” character is also permitted. If the profile does not already exist, it is created.

<vpn-name> is the name of an existing Message VPN that the client profile belongs to.

<num-kilo-bytes> is an integer specifying the size of the TCP maximum window measured in number of kilobytes (KB). Valid values are 32 through 65536. The default value is 256.

The no version of this command, no tcp max-wnd, resets the size of the TCP maximum window back to the default value.

:  Configuration changes are applied to all existing client connections.>

Configuring TCP Max Window Sizes for Event Broker-to-Event Broker Neighbor Connections

To configure a maximum window size for data that the neighbor event broker sent to and received from the event broker, enter the following CONFIG commands:

solace(configure)# routing
solace(configure/routing)# cspf neighbor <physical-router-name>
solace(configure/routing/cspf/neighbor)# tcp max-wnd <num-kilo-bytes>

Where:

<num-kilo-bytes> is an integer specifying the size of the maximum TCP window size in KB. Valid values are 32 through 65536. The default value is 2048.

The no version of this command, no tcp max-wnd, resets the size of the TCP maximum window back to the default value.

Configuring TCP MSS

You can configure the TCP maximum segment size (MSS) used for client‑to‑event broker and event broker-to-event broker connections.

Configuring TCP MSS for Client-to-Event Broker Connections

To configure the TCP MSS for data that the event broker sends to clients, enter the following CONFIG commands:

solace# configure
solace(configure)# client-profile <name> message-vpn <name>
solace(configure/client-profile)# tcp mss <byte-count>

Where:

<byte-count> is the size of the maximum segment size in bytes (256 through 1460). The default value is 1460.

The no version of this command, no mss, resets the TCP maximum segment size back to default. Changing this value during event broker operation takes effect immediately on all existing and new TCP connections.

Configuring TCP MSS for Event Broker-to-Event Broker Connections

To configure the TCP MSS for a neighbor event broker, enter the following CONFIG commands:

solace(configure)# routing
solace(configure/routing)# cspf neighbor <physical-router-name>
solace(configure/routing/cspf/neighbor)# mss <byte-count>

Where:

<byte-count> is the size of the maximum segment size in bytes (256 through 1460). The default value is 1460.

The no version of this command, no mss, resets the TCP maximum segment size back to default. Changing this value during event broker operation takes effect immediately on all existing and new TCP connections.