April 5, 2003 Louis Breit Network Throughput and Performance Calculations draft-breit-network-perf-throughput-00.txt Status of This Document This document is an Internet-Draft and is NOT offered in accordance with Section 10 of RFC2026, and the author does not provide the IETF with any rights other than to publish as an Internet-Draft Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/1id-abstracts.html The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html Abstract This memo provides an overview and summary of the mathematical calculations and formulas which can be used to determine network throughput and performance. Body Since TCP/IP is one of the most commonly used protocols, we examine some basic calculations to determine estimated throughput. 1) First, examine the TCP window size. The maximum value is 65535, though it may be much less in practice. 2) Next, examine the average data segment size. This can range anywhere from 64 bytes to 1460 bytes, a bit more or less based on overhead, etc. 3) Next, see how many packets can fit into the window. For example, a total number of 44 packets of 1460 bytes each can fit into a 65535 window: 44 (X) 1460 = 64240 The receiving station will likely send an ACK before the window is completely filled, perhaps at the 50% point. Examining the trace data will help to determine the actual time of ACK. Assume (for our example) the receiver sends an ACK for every 22 segments. The LAN is Ethernet 10mbps. 4) Now we need to determine the actual total packet size for a DATA packet and an ACK packet. Add 78 bytes to the DATA segment for actual packet size. Add 84 bytes for the size of an ACK packet. Why? Because the Ethernet addressing and TCP/IP Headers need to also be included. See Below: FIELD DATA BYTES ACK BYTES Ethernet Preamble 8 8 Eth Dest Address 6 6 Eth Source Address 6 6 Eth Type 2 2 IP Header 20 20 TCP Header 20 20 User Data 1460 0 Pad to Minimum 0 6 Eth CRC 4 4 Interpacket Gap 12 12 TOTAL 1538 84 So a data size of 1460 bytes yields a total packet size of 1538 bytes. An ACK always yields an 84 byte packet. 5) Now letÆs do the math! 22 (X) 1460 bytes = 32,120 22 (X) 1538 bytes (+) 84 bytes = 33,920 Next: 32,120 / 33,920 = 0.9469 Next: 10,000,000 bits/sec (divided by) 8 bits/byte = 1,250,000 Next: 0.9469 (X) 1,250,000 = 1,183,625 bytes/sec maximum throughput. Note these are approximate numbers, but useful when analyzing performance potential when TCP data is transferred over a specific WAN/LAN connection. Another example using a 536 byte data size, a 65,535 TCP window, and an ACK ever 128th segment over a 10Mb Ethernet LAN: 128 (X) 256 bytes = 32,768 128 (X) 334 bytes (+) 84 bytes = 42,836 Next: 32,768 / 42,836 = 0.7649 Next: 10,000,000 bits/sec (divided by) 8 bits/byte = 1,250,000 Next: 0.7649 (X) 1,250,000 = 956,125 bytes/sec maximum throughput Note that other factors which may affect throughput, particularly the round trip time delays over long haul or WAN circuits, are not included in this calculation. However, this can be assumed to be the ôbest possibleö bytes per second speed, which is critical for determining ôminimum time to completionö for data transfer over network connections. Conclusion The calculation of ôminimum time to completionö for data transfers over a local or wide area network connection can be achieved through the use of trace data review and basic analysis. Author's Contact Information Lou Breit Seaford, NY 11783 Email: l.breit@att.net END DRAFT