Make Hosts Ready for Gigabit Networks. Hardware Requirement. To allow a host to fully utilize Gbps bandwidth, its hardware system must be ready for Gbps. For example: CPU speed Is Pentium 100 MHZ PC fast enough to process a large number of packets per second? (10 bits/HZ ?) Memory throughput
Both scoreboarding and super-scalar methods benefit reading a
small amount of data. They are not very useful for reading
a large amount of data. Therefore, operating system should
be designed to minimize the number of times that a large amount
of data has to be copied.
Good cache performance depends
on good locality.
However, networking code often
violates the locality assumptions.
Example: when a packet arrives,
it interrupts the execution of the
processor. This forces the processor
to load new instructions. Furthermore,
because the data of the packet is not
in the data cache, it needs to be
fetched from memory.
The difficulty is that different manipulations cannot be easily
Do not put too many if-then-else in your networking code.
For a high-speed system, macros are preferred over function calls.
Function calls are preferred over threads (need to save its PC and
stack) to process an incoming packet.