Ethernet and TCP Throughput Model

This is a simplified model of TCP/IP over Ethernet behaviour of a single TCP connection intended to provide insight into throughput limitations of TCP/IP due to network transit latency.  In the model, TCP/IP sends the maximum TCP receive window size worth of application data (filling the maximum possible receive buffer), then waits for a single acknowledgement for the entire max. window size burst.  The model also assumes that the instant the acknowledgement is sent, the data is emptied from the receive buffer and the entire window size is again fully available.
Analysis assumes no lost data (no retransmits are required, no delay associated with retransmit timer waits & no ACK timer waits); All datagrams sent are maximum size; No allowance for TCP slow start algorithm delay;  This results in an upper bound style result.  Bear in mind that this simulates the performance of a single application, not an aggregate usage model of multiple simultaneous users on a network.  Furthermore, at the upper limit of TCP performance the model assumes that computer hardware and network equipment can sustain the peak TCP allowed data rates.
In Basic TCP, the maximum number of bytes that can be in transit (specified by the TCP receive window size) is limited to 64KB by the 16 bit window size in the TCP header.  Often the 64KB value is used to illustrate the maximum theoretical throughput of TCP.  This is only partially true.  In the early 1990s Van Jacobsen et Al. recognized that higher bandwidths were becoming available and that TCP needed to be updated to support high bandwidth, high latency networks.  The work culminated in 1992 with the publication of RFC1323 which specified modifications to TCP to support the high bandwidth, high latency networks.  This removed the 64 KB limit, in theory.
In practise, most TCP stacks do not support RFC 1323 extensions and still have a maximum TCP window size on the order of 8 KB.  An example is Microsoft TCP/IP v.2.0 used in Windows NT.  It has a 8760 Byte maximum receive window.  Windows 2000, while supporting RFC 1323 extensions, by default has a maximum receive window of 17520 Bytes.  To enable the RFC1323 extensions in Windows 2000, registry entries must be manually adjusted.
Select Line Rate: Gigabit Ethernet
Custom TCP Receive Window (for best perf. Use even multiples of 1460) 65536 Bytes
Gigabit Ethernet
Round Trip Latency (2T) Maximum User Data Throughput (64KB Window) Maximum User Data Throughput (WinNT) Maximum User Data Throughput (Win2K) Maximum User Data Throughput (Custom)
0.1 mS 803,755 Kbps 403,166 Kbps 565,965 Kbps 803,755 Kbps
0.2 mS 696,915 Kbps 255,931 Kbps 403,166 Kbps 696,915 Kbps
0.4 mS 550,550 Kbps 147,903 Kbps 255,931 Kbps 550,550 Kbps
0.6 mS 454,993 Kbps 104,003 Kbps 187,468 Kbps 454,993 Kbps
0.8 mS 387,702 Kbps 80,199 Kbps 147,903 Kbps 387,702 Kbps
1 mS 337,750 Kbps 65,262 Kbps 122,128 Kbps 337,750 Kbps
2 mS 205,418 Kbps 33,793 Kbps 65,262 Kbps 205,418 Kbps
3 mS 147,591 Kbps 22,799 Kbps 44,528 Kbps 147,591 Kbps
4 mS 115,170 Kbps 17,203 Kbps 33,793 Kbps 115,170 Kbps
5 mS 94,427 Kbps 13,812 Kbps 27,228 Kbps 94,427 Kbps
6 mS 80,016 Kbps 11,538 Kbps 22,799 Kbps 80,016 Kbps
7 mS 69,421 Kbps 9,907 Kbps 19,609 Kbps 69,421 Kbps
8 mS 61,304 Kbps 8,680 Kbps 17,203 Kbps 61,304 Kbps
9 mS 54,886 Kbps 7,723 Kbps 15,322 Kbps 54,886 Kbps
10 mS 49,685 Kbps 6,957 Kbps 13,812 Kbps 49,685 Kbps
20 mS 25,510 Kbps 3,491 Kbps 6,957 Kbps 25,510 Kbps
30 mS 17,160 Kbps 2,330 Kbps 4,649 Kbps 17,160 Kbps
40 mS 12,929 Kbps 1,749 Kbps 3,491 Kbps 12,929 Kbps
50 mS 10,371 Kbps 1,400 Kbps 2,795 Kbps 10,371 Kbps
60 mS 8,658 Kbps 1,167 Kbps 2,330 Kbps 8,658 Kbps
70 mS 7,431 Kbps 1,000 Kbps 1,998 Kbps 7,431 Kbps
80 mS 6,509 Kbps 875 Kbps 1,749 Kbps 6,509 Kbps
90 mS 5,790 Kbps 778 Kbps 1,555 Kbps 5,790 Kbps
100 mS 5,214 Kbps 700 Kbps 1,400 Kbps 5,214 Kbps
110 mS 4,742 Kbps 637 Kbps 1,272 Kbps 4,742 Kbps
120 mS 4,349 Kbps 584 Kbps 1,167 Kbps 4,349 Kbps
130 mS 4,016 Kbps 539 Kbps 1,077 Kbps 4,016 Kbps
140 mS 3,730 Kbps 500 Kbps 1,000 Kbps 3,730 Kbps
150 mS 3,482 Kbps 467 Kbps 933 Kbps 3,482 Kbps
160 mS 3,266 Kbps 438 Kbps 875 Kbps 3,266 Kbps
170 mS 3,074 Kbps 412 Kbps 824 Kbps 3,074 Kbps
180 mS 2,904 Kbps 389 Kbps 778 Kbps 2,904 Kbps
190 mS 2,751 Kbps 369 Kbps 737 Kbps 2,751 Kbps
200 mS 2,614 Kbps 350 Kbps 700 Kbps 2,614 Kbps
210 mS 2,490 Kbps 334 Kbps 667 Kbps 2,490 Kbps
220 mS 2,377 Kbps 318 Kbps 637 Kbps 2,377 Kbps
230 mS 2,274 Kbps 305 Kbps 609 Kbps 2,274 Kbps
240 mS 2,180 Kbps 292 Kbps 584 Kbps 2,180 Kbps
250 mS 2,093 Kbps 280 Kbps 560 Kbps 2,093 Kbps
260 mS 2,012 Kbps 269 Kbps 539 Kbps 2,012 Kbps
270 mS 1,938 Kbps 259 Kbps 519 Kbps 1,938 Kbps
280 mS 1,869 Kbps 250 Kbps 500 Kbps 1,869 Kbps
290 mS 1,804 Kbps 242 Kbps 483 Kbps 1,804 Kbps
300 mS 1,744 Kbps 234 Kbps 467 Kbps 1,744 Kbps
310 mS 1,688 Kbps 226 Kbps 452 Kbps 1,688 Kbps
320 mS 1,636 Kbps 219 Kbps 438 Kbps 1,636 Kbps
330 mS 1,586 Kbps 212 Kbps 425 Kbps 1,586 Kbps
340 mS 1,540 Kbps 206 Kbps 412 Kbps 1,540 Kbps
350 mS 1,496 Kbps 200 Kbps 400 Kbps 1,496 Kbps
360 mS 1,454 Kbps 195 Kbps 389 Kbps 1,454 Kbps
370 mS 1,415 Kbps 189 Kbps 379 Kbps 1,415 Kbps
380 mS 1,378 Kbps 184 Kbps 369 Kbps 1,378 Kbps
390 mS 1,342 Kbps 180 Kbps 359 Kbps 1,342 Kbps
400 mS 1,309 Kbps 175 Kbps 350 Kbps 1,309 Kbps
410 mS 1,277 Kbps 171 Kbps 342 Kbps 1,277 Kbps
420 mS 1,247 Kbps 167 Kbps 334 Kbps 1,247 Kbps
430 mS 1,218 Kbps 163 Kbps 326 Kbps 1,218 Kbps
440 mS 1,190 Kbps 159 Kbps 318 Kbps 1,190 Kbps
450 mS 1,164 Kbps 156 Kbps 311 Kbps 1,164 Kbps
460 mS 1,138 Kbps 152 Kbps 305 Kbps 1,138 Kbps
470 mS 1,114 Kbps 149 Kbps 298 Kbps 1,114 Kbps
480 mS 1,091 Kbps 146 Kbps 292 Kbps 1,091 Kbps
490 mS 1,069 Kbps 143 Kbps 286 Kbps 1,069 Kbps
500 mS 1,047 Kbps 140 Kbps 280 Kbps 1,047 Kbps
Data:
Ethernet Frame Size 1518 Bytes
Ethernet Preamble 8 Bytes
Interframe Gap 12 Bytes
Total Inter-Frame Time 1538 Bytes
Ethernet Overhead 38 Bytes
Ethernet Data 1500 Bytes
IP Datagram Overhead 20 Bytes
TCP Datagram Overhead 20 Bytes
Maximum User Data per Ethernet Frame 1460 Bytes
Line Rate
Ethernet 10000000 10000000
Fast Ethernet 100000000 100000000
Gigabit Ethernet 1000000000 1000000000
Maximum TCP Receive Window 65536 Bytes
Maximum Windows NT TCP Receive Window (on Ethernet) 8760 Bytes
Maximum Windows 2000 TCP Receive Window 17520 Bytes
 
Application Throughput:
Application Data Size/(Ethernet Serialization Delay + Round Trip Latency)