Re: TCP performance limitations

Thu, 1 Oct 87 18:06 PDT

> I have been doing some work in this area to predict potential
> performance at 100 Mb/s FDDI rates. First, you can expect a
> TCP to execute about 1000-1200 instructions per packet,
> assuming all is well. Some of this is checksum. In fact, I
> recall some early statistics in which the checksum alg took up 40% of the
> CPU cycles for processing incoming segments of TCO. I am lumping
> IP level processing into TCP in the 1000-1200. This is absolutely
> a WAG - so anyone with some hard data on instruction count is
> most welcome to provide better info.

The instruction count sounds low to me, how about 10 times more?

(A 1000 byte packet sounds like it would take 500 adds just to
compute the TCP checksum, not to mention a 64K packet).

Speaking of checksums, it seems to me that the IP header checksum
could be replaced with a "packet" level CRC at the link level and
done by hardware. Most (all?) HDLC type chips provide this
without any extra hardware (or effort).

Unfortunately for a TCP connection, most of the checksum overhead
is in the TCP checksum (which is an end-to-end check) and this
sounds harder to move off of the general purpose CPU. The idea
would be to let your general purpose 14 MIP CPU do general
purpose work rather than adding up checksums.

> With no constraints, and using 1000 byte packets, you would
> be sending 10,000 packets/second to achieve full throughput.
> That gives you 100 microseconds worth of insruction time.
> At 14 MIPs, that is 1400 instructions. So, if you did nothing
> else but TCP/IP, you might make it, with respect to
> instruction rate.

I have been thinking of how to design a T3 (45Mb) type speed
packet switch (just thinking) and there are some real problems
with doing IP packet header processing when you need to process a
packet every 6 us. (Voice packets want to be about 100 bytes so
you need to be able to handle about 56K packets/sec).

Virtual circuts sure seem easer at the packet level at this speed
(smaller packet overhead too). Of course, a virtual circut could
carry embedded IP packets.

This archive was generated by hypermail 2.0b3 on Thu Mar 09 2000 - 14:39:34 GMT