Вы находитесь на странице: 1из 18

Network Wireless Systems

subject: CDMA Translation Application Note #9:

date: November 22, 2002

High-Level Protocol Stack Parameter Optimization for 3G-1X Version 2.0

Abstract
The purpose of Application Note is to present the TCP/IP Protocol Stack parameter optimization on the client machines. There are a number of TCP/IP Protocol Stack parameters that have an affect on the operation of CDMA 3G-1X Data. The values and settings of these parameters must be set correctly for best operation of the CDMA 3G-1X-Data system. The purpose of this note is to explain the functions of the important protocol parameters and their inter-relationship. Recommended values for these parameters are also presented.

Lucent Technologies - Proprietary This document contains proprietary information of Lucent Technologies and is not to be disclosed or used except in accordance with applicable agreements. Copyright 2002 Lucent Technologies Unpublished and Not for Publication All rights reserved

Version 1.0

Version History
Version 1.0 1.1 Changes
! ! ! !

2.0

! ! ! ! ! !

! ! !

Original Document Updated Section 6.4 (Data Compression) to include the latest Microsoft Windows Default compression algorithm (Microsoft Point-to-point compression). Updated the Summary (Section 7) to include the need to upgrade the Dual-Up Networking for Microsoft Windows 95/98 to DUN 1.4. Also added (Section 8) the names and values of the windows registry to control the TCP/IP parameters. Added Section 5 (Tuning Physical/RLP Layers for Data Protocol Stack) Added Section 6.3 (TCP Sending Window) to include some information regarding the TCP Window size of the sending server. Updated Section 7.4 (PPP Data Compression) to include more information on PPP Data compression. Updated Title of Section 7.5 (TCP Time Stamping). Added Section 7.7 (MultiLink PPP). Updated Section 8 (Windows TCP/IP Registry Entries). Added lots of information and references for Windows 95/98 family. Added a new section for the Windows 200 family of Operating Systems. Added Section 9 (Client-Specific Features for HTTP Web Browsing). Updated Section 10 (Summary of TCP/IP Protocol Stack Parameters Recommendations). Updated Section 11 (References).

Lucent Technologies - Proprietary See notice on first page

Version 1.0

1.

Introduction

The Application Note for High-Level Protocol Stack [1]-[2] Parameters for 3G-1X is introduced to meet the needs of Lucent customers and optimization teams as Lucent CDMA products are being deployed around the world. The performance of our products is being studied continuously, and our recommendations for new and existing parameters will be updated as needed. Section 3 of this Application Note introduces the TCP/IP Protocol Stack and shows the different Layers and its relationship to the ISO Networking Layers. Each Layer is then described in details in subsequent sub-sections. In section 4, we introduce some aspects regarding throughput measurements at different Layers of the protocol stack. In section 5, we describe some serverspecific TCP/IP Protocol stack features. These features, which include TCP Time Stamping, Large TCP Windows and Selective Acknowledgment, are then described in separate sub-sections in more details. The main focus of this Application Note is introduced in section 6 which describes the Client-specific TCP/IP Protocol Stack Features. Each feature is described in detail in a separate sub-section with specific reference to the relation between each feature and the TCP/IP Protocol stack. The recommended value for each feature is also described. In Section 7, we summarize the list of Client TCP/IP Protocol Stack parameters and their recommended values. A list of references is listed in section 8.

2.
ACK DUN FTP HTTP IMAP4 IP MPPP MPPC MSS NAK POP3 PPP RFC RLP RTO RTT RTTM SACK SMTP TCP UDP VJ

List of Acronyms
Acknowledgment Dial-Up Networking File Transfer Protocol HyperText Transfer Protocol Internet Mail Access Protocol version 4 Internet Protocol Multlink PPP Microsoft Point-to-Point Compression Maximum Segment Size Negative ACK Post Office Protocol Version 3 Point-point Protocol Request For Comment (internet Draft) Radio Link Protocol Retransmission Timeout Round-trip Time Round-Trip Time Measurement Selective Acknowledgment Simple Mail Transfer Protocol Transmission Control Protocol User Datagram Protocol Van Jacobson

Lucent Technologies - Proprietary See notice on first page

Version 1.0

3.

TCP/IP Protocol Stack

Like most networking software, TCP/IP is modeled in layers. This layered representation leads to the term protocol stack, which is synonymous with protocol suite. As shown in Fig.1, the Internet protocols are modeled in four layers. The following sections will describe the function of each of the four layers.

Applications

Web Browsing (HTTP), Email, FTP, etc.

Transport

TCP

UDP TCP/IP Protocol Stack

Internetwork

IP

Network Interface and Hardware

PPP

RLP Physical Layer IS-2000

Fig 1: The TCP/IP Protocol Stack

3.1

Network Interface Layer

The network interface layer, also called the link layer or the data-link layer, is the interface to the actual network hardware. This interface may or may not provide reliable delivery, and may be packet or stream oriented. For 3G-1X, the RLP (Radio Link Protocol) and the PPP (Point-toPoint Protocol) act as the Network Interface layer. The version of RLP used for 3G-1X is TIA/EIA/IS-707-A1.10 [3]. The RLP function is responsible for serialized transmission of forward and reverse data for a packet data call. RLP reduces the data error rate, mainly occurring during radio transmission, by retransmitting corrupted and lost RLP frames. RLP controls the exchange of RLP frames between a mobile and the network by assigning and keeping track of transmit and receive sequence numbers in the RLP frame header. It keeps a
Lucent Technologies - Proprietary See notice on first page

Version 1.0

retransmit buffer for data sent in the forward direction, so it can respond to a negative acknowledgment (NAK) for bad or missing frames received by the mobile unit. Similarly, the mobile has a retransmit buffer for data sent in the reverse direction, in case RLP sends NAKs to the mobile. PPP (Point-to-Point, as per RFC-1331 and RFC-1332) [4]-[5] is used for the link layer connection between a computer attached to the 3G-1X mobile, and the IWF (Inter-WorkingFunction) on the network side of the 3G-1X system. In general, PPP has been carefully designed to retain compatibility with most commonly used supporting hardware. The PPP encapsulation also provides for multiplexing of different network-layer protocols simultaneously over the same link. It is intended that PPP provide a common solution for easy connection of a wide variety of hosts, bridges and routers. Some protocols expect error free transmission, and either provide error detection only on a conditional basis, or do not provide it at all. PPP uses the HDLC Frame Check Sequence for error detection. This is commonly available in hardware implementations, and a software implementation is provided.

3.2

Internetwork Layer

The internetwork layer, also called the internet layer or the network layer, provides the virtual network image of an internet (that is, this layer shields the higher levels from the physical network architecture below it). Internet Protocol (IP) is the most important protocol in this layer. It is a connectionless protocol that doesn't assume reliability from the lower layers. IP does not provide reliability, flow control or error recovery. These functions are provided at a higher level. Part of communicating messages between computers is a routing function that ensures that messages will be correctly delivered to their destination. IP provides this routing function. A message unit in an IP network is called an IP datagram. This is the basic unit of information transmitted across TCP/IP networks.

3.3

Transport Layer

The transport layer provides the end-to-end data transfer. Multiple applications can be supported simultaneously. The transport layer is responsible for providing a reliable exchange of information. The main transport layer protocol is TCP (Transmission Control Protocol). Another transport layer protocol is UDP (User Datagram Protocol), which provides a connectionless service in comparison to TCP, which provides a connection-oriented service. That means that applications using UDP as the transport protocol have to provide their own end-toend flow control and their own error detection/recovery. Usually, UDP is used by applications that need a fast transport mechanism.

3.3.1

Transmission Control Protocol (TCP)

TCP is a standard protocol with STD number 7 [6]. TCP is described by RFC 793-Transmission Control Protocol [7]. TCP provides considerably more facilities for applications than UDP, notably error recovery, flow control and reliability. TCP is a connection-oriented protocol unlike UDP which is connectionless. Most of the user application protocols, such as Web Browsing, Email and FTP, use TCP. TCP can be characterized by the following facilities it provides for the applications using it:
Lucent Technologies - Proprietary See notice on first page

Version 1.0

Data Transfer: From the application's viewpoint, TCP transfers a contiguous stream of bytes through the network. The application does not have to bother with chopping the data into basic blocks or datagrams. TCP does this by grouping the bytes in TCP segments, which are passed to IP for transmission to the destination. Also, TCP itself decides how to segment the data and it can forward the data at its own convenience. Reliability: TCP assigns a sequence number to each packet transmitted and expects a positive acknowledgment (ACK) from the receiving TCP. If the ACK is not received within a timeout interval, the data is retransmitted. Since the data is transmitted in blocks (TCP segments) only the sequence number of the first data byte in the segment is sent to the destination host. The receiving TCP uses the sequence numbers to rearrange the segments when they arrive out of order, and to eliminate duplicate segments. Flow Control: The receiving TCP, when sending an ACK back to the sender, also indicates to the sender the number of bytes it can receive beyond the last received TCP segment, without causing overrun and overflow in its internal buffers. This is sent in the ACK in the form of the highest sequence number it can receive without problems. This mechanism is also referred to as a window-mechanism and we discuss it in more detail later in sections 4 and 5. Multiplexing: This section introduces the concepts of port and socket, which are necessary to exactly determine which local process at a given host actually communicates with which process at which remote host using which protocol. Each process that wants to communicate with another process identifies itself to the TCP/IP protocol suite by one or more ports. A port is a 16-bit number, used by the host-to-host protocol to identify to which higher level protocol or application program (process) it must deliver incoming messages. On the other hand, a socket is a special type of file handle, which is used by a process to request network services from the operating system. Each side of a TCP connection has a socket that can be identified by the triple <TCP, IP address, port number>. Therefore, multiplexing is achieved through the use of ports, just as with UDP. Logical Connections: The reliability and flow control mechanisms described above require that TCP initializes and maintains certain status information for each data stream. The combination of this status, including sockets, sequence numbers and window sizes, is called a logical connection. Each connection is uniquely identified by the pair of sockets used by the sending and receiving processes. Full Duplex: TCP provides for concurrent data streams in both directions.

3.3.2 User Datagram Protocol (UDP)


UDP is a standard protocol with STD number 6 [8]. UDP is described by RFC 768 - User Datagram Protocol [9]. UDP is basically an application interface to IP. It adds no reliability, flow-control or error recovery to IP. It simply serves as a multiplexer/demultiplexer for sending and receiving datagrams. It is also important to note that Proxy caches in general, and some firewalls limit or block UDP streams. In addition, due to the fact that UDP does not provide any flow-control, some PDSN and IWF components enforce UDP bandwidth limits to conserve backhaul capacity. UDP streams that violate bandwidth limits are throttled via packet discards.

Lucent Technologies - Proprietary See notice on first page

Version 1.0

3.4

Application Layer

The application layer is provided by the program that uses TCP/IP for communication. An application is a user process cooperating with another process on the same or a different host. Few examples of popular applications are Web Browsing (which uses HTTP), Email (which uses SMTP, POP3, IMAP4) and File Transfer Protocol (FTP).

4.

Throughput

The version of RLP used for 3G-1X is TIA/EIA/IS-707-A1.10 [3]. The user payload available on the 153.6 Kbps F-SCH (Forward Supplemental CHannel) after RLP and MAC layer framing is 336 bytes per 20 ms frame, or 134,400 bits per second at the PPP layer (not the application layer). This is the maximum achievable PPP throughput at 0% FER. However, at a more realistic FER of 5% and again assuming perfect frame packing, this rate (PPP throughput) drops to 127,680 bits per second. If data transfer occurs only on the 9.6 Kbps F-FCH (Forward Fundamental CHannel), then the user payload drops to 20 bytes per 20 ms frame. This results in 8,000 bits per second for an error free channel, and 7,920 bits per second for a 1% FER F-FCH. Note that signaling and RLP control messages also travel on the F/R-FCH, which reduces the FCH capacity further. In the forward direction, data can travel either on the F-FCH or F-SCH, but not on both simultaneously. In the reverse direction, however, data can simultaneously travel on the R-SCH and R-FCH.

5.

Tuning Physical/RLP Layers for Data Protocol Stack

F-SCH Notification Threshold is a parameter that can be used as a knob to adjust the degree at which the system would assign the rate for the F-SCH. For new F-SCH bursts, rate assignments is a function of the F-SCH Notification Threshold. Lower values for the F-SCH Notification Threshold would result in the system assigning higher F-SCH rates and becoming more aggressive in its assignments. Higher values for the F-SCH Notification Threshold would result in the system assigning lower F-SCH rates and becoming less aggressive in its assignments. There is a tradeoff between the aggressive F-SCH Rate assignments and the system capacity. The recommended F-SCH Notification Threshold is 50%.

RC/V Field Name F-SCH Notification Threshold (%)

RC/V Form Ceqface3g

Allowed Values 5 - 100

Default Value 50

Recommended Value 50

Lucent Technologies - Proprietary See notice on first page

Version 1.0

6.

Server-specific TCP/IP Protocol Stack Features

CLIENT

SERVER

Fig 2: Server vs Client

Fig.2 shows the locations of the Server and the Client. Both have a TCP/IP protocol stack. There are some parameters in this protocol stack that are related and controlled by the server, and others that can be set on the Client. This section describes some of the TCP features related to the server-side of the network.

6.1

TCP Time Stamping

TCP time stamping is a TCP extension for high performance that is described in RFC-1323 [10]. TCP implements reliable data delivery by retransmitting segments that are not acknowledged within some retransmission timeout (RTO) interval. Accurate dynamic determination of an appropriate RTO is essential to TCP performance. RTO is determined by estimating the mean and variance of the measured round-trip time (RTT), i.e., the time interval between sending a segment and receiving an acknowledgment for it. Using TCP Time Stamping option, the sender places a timestamp in each data segment, and the receiver reflects these timestamps back in ACK segments. Then a single subtract gives the sender an accurate RTT measurement for every ACK segment (which will correspond to every other data segment, with a sensible receiver). This is called the RTTM (Round-Trip Time Measurement) mechanism. For the 3G-1X system, it is expected that servers supporting RFC-1323 (TCP Time Stamping) can slightly enhance the performance of the TCP by preventing accidental reuse of TCP sequence numbers in an old data segment that was delayed due to RLP retransmissions over the air interface. However, there is a known conflict between RFC-1323 (TCP Time Stamping) and another TCP/IP enhancement called IP Header Compression (RFC-1144, see details in sec. 5.3). Use of TCP timestamps prevents header compression, because the timestamps are sent as TCP options. This means that each timestamped header has TCP options that differ from the previous header, and headers with changed TCP options are always sent uncompressed. Performance Analysis over 3G-1X networks has shown that the gain in performance due to the IP header compression is more significant than that from TCP time stamping. As will be mentioned in sec.
Lucent Technologies - Proprietary See notice on first page

Version 1.0

5.5, our recommendation is to disable the RFC-1323 (TCP Time Stamping) option on the client machines and to enable the RFC-1144 (IP header compression) option [11].

6.2

Large TCP Windows

A TCP window is the amount of outstanding (unacknowledged by the recipient) data a sender can send on a particular connection before it gets an acknowledgment back from the receiver. Large TCP Windows is a TCP extension for high performance that is also described in RFC1323 [10] (bundled with the TCP Time Stamping). The TCP header uses a 16 bit field to report the receive window size to the sender. Therefore, the largest window that can be used is 2**16 = 64K bytes. To circumvent this problem, RFC-1323 defines a new TCP option that enables larger TCP window sizes. Tests over 3G-1X networks showed that this option is not needed and does not impact the performance.

6.3

TCP Sending Window

Some servers have default TCP maximum sending window sizes. The TCP window is limited by both receiver advertised window size and the server sending window size. For servers under control, it is recommended that the server TCP sending window size be properly set such that it is no less than the receiver advertised window size in the client setting (see Sec. 6.2).

6.4

Selective Acknowledgment (SACK)

Selective Acknowledgment (SACK) is described in RFC-2018 [12]. SACK allows the receiver to inform the sender about all the segments that are received successfully. Thus, the sender will only send the segments that actually got lost. SACK is a TCP option that can help improve the performance of the TCP. It is recommended to have this TCP option enabled at the server as well as at the client (see details in sec. 5.6).

7.

Client-specific TCP/IP Protocol Stack Features

This section describes some of the TCP/IP Protocol Stack parameters on the client-side (end-user machines connected to the mobile terminal) of the network and their recommended values. The goal is to achieve the best performance over the 3G-1X networks by setting these values to the recommended ones.

7.1

Operating System

Most operating systems support the TCP/IP options represented in the next sections. In addition, these operating systems have default values for these TCP/IP options, however they also provide a way to modify these values for optimum network performance.

Lucent Technologies - Proprietary See notice on first page

Version 1.0

Microsoft clients, Windows 95, 98, NT 3.x/4.x, Me, or 2000, support these TCP options. However, for Win 95, it is recommended to have the latest TCP/IP WinSock 2.0 (contact Microsoft at http://support.microsoft.com/support/kb/articles/Q285/1/89.ASP ).

7.2

TCP Window Size

The TCP window size is by far the most important parameter to adjust for achieving maximum bandwidth across the 3G-1X network. Properly setting the TCP window size can often increase the throughput. A TCP window is the amount of outstanding (unacknowledged by the recipient) data a sender can send on a particular connection before it gets an acknowledgment back from the receiver that it has gotten some of it. According to Microsoft, Windows 95, 98, and Me, have a default TCP window size of 8KB (8192 Bytes). Windows NT 3.x/4.x have a default TCP window size of 8760 Bytes. Windows 2000 Professional and Windows 2000 Server, on the other hand, does not use a hard-coded default TCP window size. Instead, TCP adjusts to even increments of the maximum segment size (MSS), which is negotiated during connection setup. It is our recommendation to set the default TCP window size to 16KB (16384 Bytes) regardless of the Client operating system. In all Microsoft operating systems (windows 95, 98, Me, NT or 2000), overriding the default TCP window size can be done through setting a value in the Windows Registry (please refer to http://support.microsoft.com/support/kb/articles/Q285/1/89.ASP for more details). For Windows 95 and 98, setting the TCP window size can also be done easily using a freeware software called TCPtune (please refer to http://moat.nlanr.net/Software/TCPtune). It is also recommended that the TCP window sizes do not exceed 26KB.

7.3

Van Jacobson TCP/IP Header Compression

The Van Jacobsen Header Compression is used to reduce the size of the combined IP and TCP headers from 40 bytes to 8 bytes by recording the states of a set of TCP connections at each end of the link and replacing the full headers with encoded updates for the normal case where many of the fields are unchanged or are incremented by small amounts between successive IP datagrams for a session. This compression is described in RFC-1144. Van Jacobson TCP/IP header compression is an available options on most Microsoft platforms. If it is not used, then the PPP size for a typical TCP/IP header is approximately 45 bytes (this includes the 0x7E PPP framing characters). If VJ TCP/IP Header compression is activated, this can drop to approximately 14 bytes. It is our recommendation to enable TCP/IP Header Compression which results in an improvement in the performance of 3G-1X networks. For most Microsoft platforms, the TCP/IP Header Compression is an available option in the TCP/IP settings of the Dial-Up Networking and can be easily set through the properties of the Dial-Up Networking set for 3G-1X on the client machine.

Lucent Technologies - Proprietary See notice on first page

10

Version 1.0

7.4

PPP Data Compression

The PPP compression protocol provides a method to negotiate and utilize compression protocols over PPP encapsulated links. The Data Compression method usually negotiated by the Microsoft Clients and Servers (with the latest service packs) is MPPC (Microsoft Point-topoint compression) algorithm (RFC-2118)[13]. Older Microsoft service packs sometimes negotiate PPP STAC LZS Compression Protocol (RFC-1974) [14]. If neither TCP/IP Header Compression nor Data Compression is used, then the PPP size for a typical TCP/IP header is approximately 45 bytes (this includes the 0x7E PPP framing characters). If VJ compression is activated, this can drop to approximately 14 bytes. If Data Compression is then added, this can sometimes decrease the result to 13 bytes. Note that Data Compression without VJ compression will only lower the result to approximately 23 bytes. This is because VJ compression is highly optimized to reduce the size of the TCP/IP header, while Data Compression is more generalized, and therefore less efficient. For most Microsoft platforms, the Data Compression is an available option in the TCP/IP settings of the Dial-Up Networking and can be easily set through the properties of the Dial-Up Networking set for 3G-1X on the client machine. Enabling this option causes the client to negotiate software compression with the PDSN. PPP data compression compresses both TCP/IP (or other protocols above PPP layer) header and payload. Therefore, data compression can often provide significant gain in user application throughput. It is our recommendation to enable this option on the client machines. However, it is not recommended to have the software compression option enabled during testing/trials. This is due to the fact that the throughput measurements tend to be misleading when the software compression is enabled (specially with files that are highly compressible).

7.5

TCP Time Stamping

Since the use of TCP timestamps conflicts with TCP/IP header compression, it is our recommendation to disable TCP timestamping. In most Microsoft operating systems (windows 95, 98, Me, NT or 2000), disabling the TCP timestamping can be done through setting a value in the Windows Registry (please refer to http://support.microsoft.com/support/kb/articles/Q285/1/89.ASP for more details). For Windows 95 and 98, this can also be done easily using a freeware software called TCPtune (please refer to http://moat.nlanr.net/Software/TCPtune).

7.6

Selective Acknowledgment (SACK)

Selective Acknowledgment (SACK, as per RFC-2018) is an available TCP option in most Microsoft platforms. According to Microsoft, Windows 95, 98, Me, NT, and 2000, all have the SACK TCP option enabled by default. Performance analysis of the current 3G-1X network showed that enabling SACK TCP option yields the better performance. So it is our recommendation to keep the SACK option enabled.
Lucent Technologies - Proprietary See notice on first page

11

Version 1.0

In all Microsoft operating systems (windows 95, 98, Me, NT or 2000), checking the default TCP optins (including SACK) can be done through checking some values in the Windows Registry (please refer to http://support.microsoft.com/support/kb/articles/Q285/1/89.ASP for more details). For Windows 95 and 98, setting these options can also be checked easily using a freeware software called TCPtune (please refer to http://moat.nlanr.net/Software/TCPtune).

7.7

MultiLink PPP (MLPPP)

In the Microsoft Windows 2000 Family of Operating Systems, a new capability has been added called the MultiLink PPP (MLPPP) [15]. This enables the Operating system to deal with multiple independent PPP circuits (e.g. from more than one modem). MLPPP is able to balance the bandwidth as well as aggregate the bandwidths from the separate modem connections. PPP traces shows that in the process of using the MLPPP, 5 extra Bytes are added to the header of the forward link packets (even if there is only one modem, e.g. 3G-1X Dial-Up Adapter). Since there is no advantage in using this feature with 3G-1X, it is our recommendation to disable this feature (uncheck MLPPP in the Dial-Up Networking Module).

8.

Windows TCP/IP Registry Entries

For information about how to edit the registry, view the "Changing Keys and Values" help topic in Registry Editor (Regedit.exe) or the "Add and Delete Information in the Registry" and "Edit Registry Data" help topics in Regedt32.exe. Note that you should back up the registry before you edit it. If you are running Windows NT or Windows 2000, you should also update your Emergency Repair Disk (ERD).

8.1

Edit Registry for Windows 95/98/Me

The information in this section is described in details in [16] and applies to the following operating systems: Microsoft Windows 95 Microsoft Windows 98 Microsoft Windows 98 Second Edition Microsoft Windows Millennium Edition

The value entries that are described in this section do not normally exist in the Windows registry; they must be added to the following registry key:

Lucent Technologies - Proprietary See notice on first page

12

Version 1.0 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\V xD\MSTCP

The following registry entries shall be added or updated. DefaultRcvWindow = 16384 Specifies the default receive window advertised by TCP. The default is 8192. Tcp1323Opts = 1 Controls RFC 1323 time stamps and window scaling options, where 0 = disable RFC 1323 options, 1 = window scale enabled only, 2 = time stamps enabled only, and 3 = both options enabled. SackOpts = 1 Windows 98 supports selective acknowledgements as documented by Request for Comment (RFC) 2018. 1= Sack Option enabled.

8.2

Edit Registry for Windows 2000

The information in this section is described in details in [17] and applies to the following operating systems:

Microsoft Windows 2000 Professional Microsoft Windows 2000 Server Microsoft Windows 2000 Advanced Server Microsoft Windows 2000 Datacenter Server

The value entries that are described in this section do not normally exist in the Windows registry; they must be added to the following registry key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ Tcpip\Parameters

The following registry entries shall be added or updated.


TcpWindowSize = 17520 Specifies the default receive window advertised by TCP. It overrides the default window size algorithm (For Ethernet connections, the default window size is normally set to 17520 bytes, i.e., 16K rounded up to twelve 1460-byte segments).
Lucent Technologies - Proprietary See notice on first page

13

Version 1.0 Tcp1323Opts = 1 Controls RFC 1323 time stamps and window scaling options, where 0 = disable RFC 1323 options, 1 = window scale enabled only, 2 = time stamps enabled only, and 3 = both options enabled.

9.

Client-Specific Features for HTTP Web Browsing

A typical web page consists of many referenced objects. A web-browser will begin serving a users request by fetching the initial HTML page using an HTTP GET request. After receiving the page, the web-browser will parse the HTML page for additional references to embedded objects such as image files, and then these objects are requested. This represents a serialized request-response nature of HTTP. Currently two versions of HTTP, HTTP/1.0 and HTTP/1.1 [18], are widely used. These two versions differ in how the transport layer TCP connections are used for the transfer of the HTML page and the embedded objects as described below. In HTTP/1.0, a distinct TCP connection is used for each of the main and embedded objects downloaded in a web page. Most of the popular browser clients download the embedded objects using multiple simultaneous TCP connections; this is known as HTTP/1.0-burst mode transfer. The maximum number of such simultaneous TCP connections, N, is configurable; most browsers use a maximum of 4 simultaneous TCP connections. If there are more than N embedded objects, a new TCP connection is initiated when an existing connection is closed. The effects of slow-start and congestion control overhead of TCP occur on a per object basis. In HTTP/1.1, persistent TCP connections are used to download the objects, which are located at the same server and the objects are transferred serially over a single TCP connection; this is known as HTTP/1.1-persistent mode transfer. The TCP overhead of slow-start and congestion control occur only once per persistent connection. It is our recommendation to use HTTP/1.1 for the client web browser. HTTP/1.1 also defines a pipelining feature. With regular HTTP/1.1 persistent connection, HTTP requests are issued sequentially, with the next request being issued only after the response to the current request has been completely received. For networks with high latency, this can result in a significant delay and impact end user experience. HTTP/1.1 pipelining allows multiple HTTP requests to be issued before receiving the corresponding responses. The client then waits for the responses to arrive in the order in which they were requested. Pipelining HTTP requests can result in a dramatic improvement in page download time, especially over high latency connections. It is our recommendation to turn on HTTP/1.1 pipelining for client web browser. However, some popular web browsers (such as Internet Explorer) do not support HTTP/1.1 pipelining. For these web browsers, it is possible to use multiple simultaneous TCP connections, with each being an HTTP/1.1 persistent connection, to alleviate the delay caused by serialized request-response. It shall be noted that TCP slow-start and congestion control occur on a per persistent connection basis. So too many simultaneous connections will not only consume a lot of resources at client and server, but it may also hurt web browsing performance eventually.

Lucent Technologies - Proprietary See notice on first page

14

Version 1.0

It is our recommendation to set the maximum number of simultaneous TCP connections to a single HTTP/1.1 server to 5 for web browsers that do not support HTTP/1.1 pipelining. For web browsers supporting pipelining, pipelining shall be used while the maximum number of simultaneous connections shall be kept as the default number, which is typically 2 in compliance to RFC 2068 [17] recommendations. It should be noted that setting the maximum number of simultaneous connections to 5 is a violation of RFC 2068 [17], which recommends 2 simultaneous connections. However, as connection speeds increase, and the number of total connections that are allowed to Internet servers increase, the two-connection limit may be restrictive. This recommendation of maximum 5 simultaneous connections is for wireless applications only, with the purpose to combat the high latency induced by wireless access when HTTP/1.1 pipelining is not implemented.

9.1

Internet Explorer

Internet Explorer, the latest version as 6.0, does not support HTTP/1.1 pipelining. This section describes how to configure Internet Explorer to have more than two simultaneous connections to a single HTTP/1.1 server [19]. Complying with RFC 2068, Internet Explorer limits the number of simultaneous connections to a single HTTP/1.1 server to two. However, as connection speeds increase, and the number of total connections that are allowed to Internet servers increase, the two-connection limit may be restrictive. One can exceed this limit by editing Windows registry. In registry key HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\In ternet Settings create and set the following registry entry: MaxConnectionsPerServer=5

Sets the number of simultaneous TCP connections to a single HTTP 1.1 Server to 5. The default number is 2. This setting is made for a specific user and will have no effect on other users who log onto the machine.

9.2

Netscape 7.0

Netscape 7.0 supports HTTP/1.1 pipelining. This feature can be turned on through: EditPreferencesAdvancedHTTP networking, then check the box: Enable Pipelining. The default setting in Netscape 7.0 is off. Netscape 7.0 has maximum of 2 simultaneous TCP connections to a single HTTP/1.1 server.

9.3

Opera

Opera 6.05 supports HTTP/1.1 pipelining. In addition, the number of simultaneous connections to a single HTTP/1.1 server can be readily changed in Opera web browser. Go to
Lucent Technologies - Proprietary See notice on first page

15

Version 1.0

FilePreferencesNetwork, then under Performance, change Maximum connections to a server to the desired value. The default number is 8.

10.

Summary of TCP/IP Protocol Stack Parameters Recommendations

Our recommendations for client TCP/IP protocol stack parameters are summarized as follows and are listed in the table below. 1. TCP window size: 16 KBytes (16384 Bytes for Win 95/98 Family and 17520 Bytes for Win 2000 Family); 2. Van Jacobson TCP/IP header compression: On; 3. PPP data compression: On; 4. TCP time stamping: Off; 5. TCP selective acknowledgment: On; 6. MultiLink PPP (MLPPP): Off; 7. HTTPInternet Explorer maximum number of simultaneous TCP connections to a single HTTP/1.1 server: 5; 8. HTTPNetscape 7.0 HTTP/1.1 pipelining: On. (Maximum number of simultaneous TCP connections to a single HTTP/1.1 server: 2.)

Lucent Technologies - Proprietary See notice on first page

16

Version 1.0

Client TCP/IP Option


For Windows 2000 Professional OS

Recommendat ion Service Pack 3

Modification Method

Notes

Upgrade using Microsoft Service Pack http://microsoft.com/windows2000/downloa ds/servicepacks/sp3/sp3lang.asp Upgrade using Microsoft Patch http://support.microsoft.com/support/kb/arti cles/Q285/1/89.ASP Upgrade using Microsoft Patch http://support.microsoft.com/default.asp x?scid=kb;en-us;Q297840 Windows Registry (all Microsoft platforms) http://support.microsoft.com/default.aspx?sc id=kb;en-us;Q158474 and http://support.microsoft.com/default.aspx?sc id=kb;en-us;Q224829 TCPtune Program (win 95/98) http://moat.nlanr.net/Software/TCPtune Check the field for "IP Header Compression" Check the field for "Software Compression" Leave it unchecked (disabled) during FTP Trials/Tests Microsoft default = enabled Details are in section 7. Win 95,98,Me Set "DefaultRcvWindow = 16384" For Windows 2000, set "TcpWindowSize = 17520" Details are in section 7.

For Windows 95 OS

Winsock 2.0

Win 95/98 Dial-Up Networking

DUN 1.4

TCP Window Size

16KB

Van Jacobson TCP/IP Header Compression Software Compression

Enabled

Dial-Up Networking TCP/IP setting

Enabled

Dial-Up Networking

TCP Timestamping

Disabled

Windows Registry (all Microsoft platforms) TCPtune Program (win 95/98) Windows Registry (all Microsoft platforms) TCPtune Program (win 95/98)

TCP Selective Acknowledgment

Enabled

Microsoft default = enabled

MultiLink PPP (MLPPP) Internet Explorer Number of Simultaneous Connections Netscape 7.0 HTTP/1.1 Pipelining

Disabled 5

- Dial-Up Networking PPP Settings Windows Registry (all Microsoft platforms)

Uncheck field for "MLPPP" Set MaxConnectionsPerServer = 4 Microsoft default = 2 Details are in Section 8. Check the field for Enable Pipelining Netscape default = disabled.

Enabled

Netscape Preferences Menu

Lucent Technologies - Proprietary See notice on first page

17

Version 1.0

11.

References

[1] A. Rodriguez, J. Gatrell, J. Karas, R. Peschke, TCP/IP Tutorial and Technical Overview, Redbook, Aug. 2000. [2] W.R. Stevens, TCP/IP Illustrated, Volume I: The Protocols, Addison Wesley, Jan. 1994. [3] TIA/EIA/IS-707-A1.10, Data Services Options for Spread Spectrum Systems Radio Link Protocol. [4] RFC-1331, The Point-to-Point Protocol (PPP) for the Transmission of Multi-protocol Datagrams over Point-to-Point Links, May 1992. [5] RFC-1332, The PPP Internet Protocol Control Protocol (IPCP), May 1992. [6] Internet Protocol Standard STD number 7, Transmission Control Protocol, 1981. [7] RFC-793, Transmission Control Protocol, 1981. [8] Internet Protocol Standard STD number 6, User Datagram Protocol, 1980. [9] RFC-793, User Datagram Protocol, 1980. [10] RFC-1323, TCP Extensions for High Performance, May 1992. [11] RFC-1144, Compressing TCP/IP Headers for Low-Speed Serial Links, Feb 1990. [12] RFC-2018, TCP Selective Acknowledgment Options, Oct. 1996. [13] RFC-2118, "Microsoft Point-to-Point Compression Protocol," March 1997. [14] RFC-1974, "PPP Stac LZS Compression Protocol," Aug. 1996. [15] RFC-1990, " The PPP Multilink Protocol (MP)," Aug. 1996. [16] Microsoft Support, "Windows TCP/IP Registry Entries",
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q158474 , Feb 1999.

[17] Microsoft Support, Description of Windows 2000 TCP Features, http://support.microsoft.com/default.aspx?scid=kb;en-us;Q224829, March 1999. [18] RFC-2068, Hypertext Transfer Protocol -- HTTP/1.1, Jan. 1997. [19] Microsoft Support, How to Configure Internet Explorer to Have More Than Two Download Sessions, http://support.microsoft.com/default.aspx?scid=kb;en-us;Q282402, Dec. 2000.

Lucent Technologies - Proprietary See notice on first page

18

Вам также может понравиться