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.
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 initial slowstart threshold value 2
TCP increase(multiply) retransmit timer by 1
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
You can now verify the configuration change with the show tcp command.
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 initial slowstart threshold value 2
TCP increase(multiply) retransmit timer by 1