Measuring the Performance of Novell's Packet Burst
Articles and Tips: tip
01 May 1999
Customers commonly compare the performance of the Novell client's packet burst with the Microsoft client's packet burst. Sometimes they find the NetWare client's performance lacking. This is due to basic design differences in the clients and in the packet burst implementation.
The first design difference is that the Microsoft client does not "ease into" a burst read; it begins with the largest burst size possible. The Novell client begins with a small window size (typically 4KB) and increases the size with subsequent successful bursts. This is done in an effort to be a "good citizen" on the wire and not hog bandwidth from other clients. Similarly, TCP/IP implementations based on the Van Jacobsen algorithm usually start with small window sizes.
A second thing the performance difference can be attributed to is the way the client's caching mechanism is implemented. The Novell client does less read-ahead caching than the Microsoft client, which necessitates additional burst requests.
How Novell Implements Pack Burst
The Novell Client for Windows 95/98 and for Windows NT implement the Packet Burst protocol based on the Van Jacobsen algorithm, similar to the sliding window protocol employed in the TCP/IP protocol suite. Several variables contribute to windows size (the size of the burst) and the efficiency of the protocol. Among these are:
Maximum Burst Window Size Defined
Maximum Burst Size Defined. This is set in the advanced client options, packet burst write window size, and packet burst read window size. The maximum burst size is 64 KB. For Windows 95/98, the number set in these parameters multiplied by the maximum packet size, for the media must be no larger than 64KB. For Windows NT, the burst size is set in bytes, so no computation is necessary.
Burst Integrity. Any time a packet is dropped from a burst, the window size will be reduced by 50%. This is a reaction to network congestion, which will continue unless the dynamics of wire traffic change. If no packets are dropped, the window size will increase over time. Even with the window size maximum set to 64KB, the maximum reads window size seldom exceeds 32KB in practice. Writes are typically smaller, due to application demand.
Wire Speed/Capacity. Packet burst automatically adapts to the wire speed and capacity to provide optimum performance by adjusting its transmission timeouts and its window sizes.
Transmission Timeouts. Over high latency links, the Novell client typically outperforms other clients, due to the timing mechanism which optimizes bursts over WAN links. To accomplish this, Novell packet burst dynamically adjusts the timeout to account for high latency links. In addition, when a high latency condition is detected, the maximum burst size is set to 64KB, overwriting any configuration set by the user.
Application Demands. This is a major variable, since what the application requests will determine is what size of burst read or write is possible. If the application asks for a read of 4KB, a small 4KB read will result. The requested read or write size is not decoded by protocol analyzers, but it is present in the packet as a hexadecimal number between the File Handle and the Starting Offset values in the NCP header portion of a Burst Read or Write request.
There are no configuration changes that will improve these performance differences.
* Originally published in Novell AppNotes
The origin of this information may be internal or external to Novell. While Novell makes all reasonable efforts to verify this information, Novell does not make explicit or implied claims to its validity.