[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: zero-copy TCP




Today probably not, but looking towards the future, the 10-gigabit
ethernet standard is still on track to be ratified by next year:
http://www.10gea.org/pr09-18-00.pdf

Doing some back of an envolope calculations we can determine what this
means for a given system.  Assuming we want a sustained full bandwidth
data transfer this requires a system to push:

                bits           1500 bytes (in ip packet)
1.000 x 10^10  -------  x  -------------------------------      = 
                sec           1518 bytes (in ethernet frame)

                        bits                 gigabits
	9.881 x 10^9  --------   or  9.881  ----------
                        sec                    sec

(note here that I am using the MTU of ethernet including the CRC and the
interframe gap)

Now let's make a fair assumption that we have a great new dual athlon with
PC2100 memory which effectively gives us a 266MHz system bus.  Now for
simplicity let's ignore bus arbitration and use the theoretical
maximum of the system bus.  If our system bus is 64 bits wide 
then we can sustain:
                  
                   bits                       bits               gigabits
64 x 266 x 10^6  --------  = 1.702 x 10^10  --------  or 17.02  ----------
                   sec                        sec                 sec

Now consider a full-duplex operation (9.881 gbps RX + 9.881 gbps TX) and
already our system is overwhelmed even before it copies data from kernel
buffers into user buffers.  Even if we have an intelligent NIC that
offloads TCP/IP altogether, we still need to push about 9.6 gbps in
half-duplex.  Cleary we should minimize transfers over the system bus and
therefore zero-copy TCP is a big win.


On Tue, 13 Feb 2001, Timur Tabi wrote:

>** Reply to message from Adam 'WeirdArms' Wiggins <awiggins@cse.unsw.EDU.AU> on
>Wed, 14 Feb 2001 06:32:38 +1100 (EST)
>
>
>> There are no kernel buffers used I beleive. Data goes straigh from
>> the user space into the device buffers.
>
>Are network cards so fast and CPU/memory so slow that this makes a difference?
>
>
>-- 
>Timur Tabi - ttabi@interactivesi.com
>Interactive Silicon - http://www.interactivesi.com
>
>When replying to a mailing-list message, please direct the reply to the mailing list only.  Don't send another copy to me.
>
>-
>Kernelnewbies: Help each other learn about the Linux kernel.
>Archive:       http://mail.nl.linux.org/
>IRC Channel:   irc.openprojects.net / #kernelnewbies
>Web Page:      http://www.surriel.com/kernelnewbies.shtml
>


-Michael F. Brown, UMass Lowell Computer Science

phone:  (978) 934-5354
email:  mbrown@cs.uml.edu

"If you are out to describe the truth, leave elegance to the tailor."
                                           -L. Boltzmann

-
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/
IRC Channel:   irc.openprojects.net / #kernelnewbies
Web Page:      http://www.surriel.com/kernelnewbies.shtml