Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!elroy.jpl.nasa.gov!sdd.hp.com!ucsd!ucbvax!BERSERKLY.CRAY.COM!dab From: dab@BERSERKLY.CRAY.COM (David Borman) Newsgroups: comp.protocols.tcp-ip Subject: Re: IP Bandwidth limits (was Re: TCP window size restriction) Message-ID: <9101141737.AA17276@berserkly.cray.com> Date: 14 Jan 91 17:37:49 GMT Sender: daemon@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 48 > From tcp-ip-RELAY@NIC.DDN.MIL Fri Jan 11 23:00:40 1991 > Date: 10 Jan 91 23:17:18 GMT > From: sgi!cjohnson%somni.wpd.sgi.com@ucbvax.Berkeley.EDU (Chris Johnson) > Organization: Silicon Graphics, Inc., Mountain View, CA > Subject: IP Bandwidth limits (was Re: TCP window size restriction) > References: <9101091020.AA08870@techops.cray.com>, > Sender: tcp-ip-relay@nic.ddn.mil > To: tcp-ip@nic.ddn.mil > > > Well, there is a data rate limit for TCP/IP, > but it isn't window size dependent. The > sixteen bit IP id field and the 16 bit max > packet length limit a particular connection > to 4GB/255 seconds or about 16MB/sec. > > cj* > Gosh, thanks. I guess I shouldn't believe my memory to memory TCP tests (through the software loopback driver on a Cray YMP computer) that show that I've run a TCP stream at 795 mbits/second..., and over 360 mbits/second between machines, across an 800 mbit/second channel. (See the article "High Speed Networking at Cray Research" in the next issue of CCR for more info.) There is no theoretical limit to how fast TCP can run. Period. End of discussion. However, there are physical limiting factors on how fast a specific TCP/IP connection can run: 1) You can't go any faster than then the speed of the slowest link in the path. (pretty obvious...) 2) You can't go any faster then the memory bandwidth of the slowest machine involved (assuming you have a highly tuned implementation that only requires one pass over the data, slower if you don't). 3) You can't go any faster than the maximum TCP window offered by the receiver divided by the round-trip-time, because you can never send more than one entire TCP window per RTT. (Once you've sent the entire window, you've got to wait for that ACK...) The maximum TCP window is 64K-1 bytes. With the expanded TCP window option (RFC 1072), the maximum TCP window is 1.07 gbits ((64K-1)*(2^14)). Now, can we stop all these erroneous messages about limits on the speed of TCP? -David Borman, dab@cray.com