Cisco ACNS Software Caching and Streaming Configuration Guide, Release 5.1
Chapter 16: Configuring TCP Stack Parameters

Table Of Contents

Configuring TCP Stack Parameters

TCP Stack Overview

Viewing or Modifying TCP Parameters

Viewing or Modifying TCP Parameters Using the Content Engine GUI

Viewing or Modifying TCP Parameters Using CLI Commands

TCP-Over-Satellite Extensions

TCP Configuration Examples


Configuring TCP Stack Parameters


This chapter describes TCP stack parameters and how best to optimize them for caching purposes. This chapter contains the following sections:

TCP Stack Overview

Viewing or Modifying TCP Parameters

TCP-Over-Satellite Extensions

TCP Configuration Examples


Note For complete syntax and usage information for the CLI commands used in this chapter, refer to the Cisco ACNS Software Command Reference, Release 5.1.


TCP Stack Overview

Caches are typically deployed by customers for any of the following reasons:

To save bandwidth

To accelerate the delivery of content

To apply policies that determine what content is viewed (content filtering)

To increase the throughput of HTTP streams over TCP end to end

The fourth reason is an often overlooked and much less understood property of deploying caching, and it can often have a huge benefit on the performance of TCP end to end.

Queries sent between a server and a client and the replies generated are defined as transactions. For data transactions between client and servers, the size of windows and buffers is important, and fine-tuning the TCP stack parameters therefore becomes the key to maximizing this benefit.

The relevant TCP parameters to maximize cache performance and throughput include the ability to tune timeout periods, client and server receive and send buffer sizes, and TCP window scaling behavior.


Note Because of the complexities involved in TCP parameters, care is advised in tuning these parameters. In nearly all environments, the default TCP settings are adequate. Fine tuning of TCP settings is for network administrators with adequate experience and full understanding of TCP operation details.


Viewing or Modifying TCP Parameters

You can use the Content Engine GUI or CLI to view or modify TCP parameters on a locally deployed Content Engine.

Viewing or Modifying TCP Parameters Using the Content Engine GUI

To view or modify the TCP configuration parameters on a locally deployed Content Engine, follow these steps:


Step 1 From the Content Engine GUI, choose System > TCP. The TCP window appears. (See Figure 16-1.)

Figure 16-1 TCP Configuration Window

The existing TCP parameters are displayed in the TCP window.

Step 2 To modify a TCP parameter, change the value of a field and click Update.


Note For more information on the TCP window fields, click the HELP button to view the context-sensitive help.


Viewing or Modifying TCP Parameters Using CLI Commands

Table 16-1 describes the fields in the TCP window and the related CLI command. Use this as a guidelines to use the CLI to modify the TCP parameters.

Table 16-1 TCP CLI Configuration Parameters 

Fields
TCP CLI Commands
Descriptions

Send Buffer

To Server

tcp server-send-buffer kbytes

TCP outgoing window size in kilobytes (1-512). The default is 8 KB.

To Client

tcp client-send-buffer kbytes

TCP outgoing window size in kilobytes (1-512). The default is 32 KB.

Receive Buffer

To Server

tcp server-receive-buffer kbytes

TCP incoming window size in kilobytes (1-512). The default is 32 KB.

To Client

tcp client-receive-buffer kbytes

TCP incoming window size in kilobytes (1-512). The default is 8 KB.

R/W Timeout

To Server

tcp server-rw-timeout seconds

Interval after which the Content Engine times out trying to read or write to the network (1-3600). The default is 120 seconds.

To Client

tcp client-rw-timeout seconds

Interval after which the Content Engine times out trying to read or write to the network (1-3600). The default is 120 seconds.

Keepalive

Timeout

tcp keepalive-timeout seconds

Length of time that the Content Engine keeps a connection open before disconnecting.

Interval

tcp keepalive-probe-interval seconds

Length of time that the Content Engine keeps an idle connection open (1-3600 seconds). The default is 300 seconds.

Count

tcp keepalive-probe-cnt count

Number of times the Content Engine retries a connection (1-10 attempts). The default is 4 attempts.

Congestion Window base value

tcp cwnd-base segments

Initial congestion window value (1-10 segments). The default is 2 segments.

Initial Slow Start Threshold value

tcp init-ss-threshold value

Threshold for slow start (2-10 segments). The default is 2 segments.

Retransmit Timer Increment factor

tcp increase-xmit-timer-value value

Factor (1-3) used to modify the length of the retransmit timer by 1 to 3 times the base value determined by the TCP algorithm. The default is 1, which leaves the times unchanged.

Note Modify this factor with caution. It can improve throughput when TCP is used over slow reliable connections but should never be changed in an unreliable packet delivery environment.

Maximum Segment Size

To Server

tcp server-mss maxsegsize

Maximum packet size sent to servers. The default is 1460 bytes.

To Client

tcp client-mss maxsegsize

Maximum packet size sent to clients. The default is 1432 bytes

Others

Satellite

tcp server-satellite
tcp client-satellite

Server and client TCP compliance with RFC 1323. See the "TCP-Over-Satellite Extensions" section.

Type of Service

type-of-service enable

TCP Type of Service. The default is disabled.

Ecn

ecn enable

TCP explicit congestion notification.


TCP-Over-Satellite Extensions

The Content Engine has the ability to turn on TCP-over-satellite extensions (as documented in RFC 1323) to maximize performance and end-to-end throughput over satellite-type connections.

The large number of satellites available to network infrastructures has increased the amount of bandwidth available in the air. Taking advantage of these connections through satellite-type connections has created new challenges in the use of TCP transactions and acknowledgments:

Latency—Round trip times to satellites orbiting 24,000 miles above the earth are 550 milliseconds for a single satellite hop. Window size must be set to prevent low-throughput connections.

Bit errors—Packet loss can occur in a land-based device-to-satellite connection in addition to the losses caused by regular network congestion.

Asymmetric bandwidth—Return bandwidth from satellites can be narrower than receiving bandwidth, thereby affecting performance.

Use the tcp server-satellite and tcp client-satellite commands to set the TCP connection so that it complies with RFC 1323.

TCP Configuration Examples

To display current TCP configuration information, use the show tcp EXEC command. Note that the default 8 KB incoming window size for the client buffer is used.

ContentEngine# show tcp
        ==TCP Configuration==
TCP keepalive timeout 300 sec
TCP keepalive probe count 4
TCP keepalive probe interval 75 sec
TCP server R/W timeout 120 sec
TCP client R/W timeout 120 sec
TCP server send buffer 8 k
TCP server receive buffer 32 k
TCP client send buffer 32 k
TCP client receive buffer 8 k
TCP server max segment size 1460
TCP satellite (RFC1323) disabled
TCP client max segment size 1432
TCP explicit congestion notification disabled
TCP type of service disabled
TCP cwnd base value 2
TCP initial slowstart threshold value 2
TCP increase(multiply) retransmit timer by 1
ContentEngine#

In this example, the tcp client-receive-buffer command is used to change the TCP incoming window size to 100 KB.

ContentEngine(config)# tcp client-receive-buffer 100
ContentEngine(config)

You can now verify the configuration change with the show tcp command.

ContentEngine# show tcp
        ==TCP Configuration==
TCP keepalive timeout 300 sec
TCP keepalive probe count 4
TCP keepalive probe interval 75 sec
TCP server R/W timeout 120 sec
TCP client R/W timeout 120 sec
TCP server send buffer 8 k
TCP server receive buffer 32 k
TCP client send buffer 32 k
TCP client receive buffer 100 k
TCP server max segment size 1460
TCP satellite (RFC1323) disabled
TCP client max segment size 1432
TCP explicit congestion notification disabled
TCP type of service disabled
TCP cwnd base value 2
TCP initial slowstart threshold value 2
TCP increase(multiply) retransmit timer by 1
ContentEngine#