'packet engine' discussion.

Chris Newton newton at unb.ca
Tue Mar 20 08:23:17 EST 2001


I'm hoping the subject line will attract attention :)

  I would like to get a discussion going about how to build the best platform 
for monitoring the worst case scenarios in the life of a network, usually DoS 
attacks.

  I have an article at home (I'll post the URL tonight), that talks about how 
a guy got the Intel Etherexpress Pro 1000 (one variant, anyways), with a 
modified Linux driver to be able to receive (he had stats on send too), 60 
byte packets at a rate of 680,000/second.  Now, this is only the card... and I 
assume the machine was very likely consumed, being able to d o no real work on 
these packets it was receiving... but, that is indeed a very good number (I 
think).

  I have heard that most Intel network cards will generate 1 interrupt per 
packet, and that the CPU will start having difficulties at around 20,000 
interrupts per second.  The Etherexpress pro 1000, and other cards, batch up 
packets and send them, DMA, to memory on one interrupt, saving lots of CPU 
over head.  Other cards do some of the TCP/ip header work, on the card.  
Others do... (fill in cool performance feature here), and so on.  Question:  
Which card, OS, drivers, features, and setup are best??

  Also, some of the places we will be monitoring, are full duplex.  Putting 
taps in (like the ones at www.shomiti.com), feed us two 100, or 1000 Mbit 
wires.  These will have to go into two cards in a server, and have Argus read 
from both cards, and merge records.  Question:  Whats best, two cards, or 1 
cards with dual ports??  If two cards, which is best, single, dual, or quad 
CPU?  Do we tie interrupts from each card to a unique CPU?

  Dealing with the packets you get is another issue... i.e.: memory bandwidth. 
Now, there are new memory technologies coming (and current ones that maybe 
have no data as to how they affect an application like Argus, ie: Rambus).  
Which of these is most promising?

  With regard to operating system technologies, Linux has some new zero-copy 
networking patches, that tries to avoid moving network traffic stuff around in 
memory very much, and there may be others.  Question: does this help us, and 
if so, what technology like this is the most promising for high speed network 
monitoring?

  The CPUs: P3, P4, Itanium (its coming)...

  The PCI bus...  obviously a bottleneck.  PCI-X is coming, Infiband right 
after that.  32 bit, or 64 bit current PCI?  We need to move data across the 
bus to memory/cpu... Question:  Is the optimal machine PCI-X, Infinband, a Sun 
server?

  The general thing here I'm trying to weed out is this:  Money no object 
(lets be realistic though)... what is the best hardware/software/network 
card/bus/memory/CPUs(dual/quad/single)(P3,p4, Itanium), and _configuration_  
combination to be able to deal with the stormiest network events... ie: as 
many tiny packets, or other crap, thrown at your network.  Obviously there is 
a real hard limit out there... but, how do we get as close as possible to it?

Thanks,

Chris

_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

Chris Newton, Systems Analyst
Computing Services, University of New Brunswick
newton at unb.ca 506-447-3212(voice) 506-453-3590(fax)



More information about the argus mailing list