This site covers Linux networking specific topics. It does not cover general networking questions, these are covered under the more general Wikipedia Computer Networks. See the External Links section for other useful resources.
Device Performance Enhancements
All network-related queues and buffers in the kernel use a common data structure, struct sk_buff. This is a large struct containing all the control information required for the packet (datagram, cell, whatever). The sk_buff elements are organized as a doubly linked list, in such a way that it is very efficient to move an sk_buff element from the beginning/end of a list to the beginning/end of another list.
NAPI ("New API") is an extension to the device driver packet processing framework, which is designed to improve the performance of high-speed networking. NAPI works through:
TCP testing in Linux is an continuous process. These tests are concerned with the behavior and correctness of the TCP protocol in the Linux kernel.
More will be added to this page soon.
Linux has the most RFC compliant TCP implementation. Over time this page will have more details on it's implementation and areas such as congestion control.
Linux packet generator is a tool to generate packets at very high speed
in the kernel.
This document gives a brief introduction to Generic Netlink, some simple
examples on how to use it and some recommendations on how to make the most of
the Generic Netlink communications interface. While this document does not
require that the reader has a detailed understanding of what Netlink is
and how it works, some basic Netlink knowledge is assumed. As usual, the
kernel source code is your best friend here.
Wireless networking in Linux is really easy to use. The wireless-tools allow to explore and configure wireless network.
UFO (UDP Fragmentation Offload)
By default Mediawiki turns on the "nofollow" in all references so spam is pointless, but that doesn't seem to stop anyone.
This site has some spam blocking suggestions from Bryce Harrington
Please ignore my following comment, I didn't see you already have mentioned the VLAN accelaration part...
regarding the last section, I haven't checked 2.6 kernel, but in 2.4 kernel, it does not like that it is always the case you replace net_if_rx() with vlan_hwaccel_rx(), in fact, seems to me only those interfaces support "hardware accelaration" uses the latter.
What was the purpose of this last edit, 00:18, 18 April 2007 by JyqXan, it seems to remove large chunks of the text for no apparent reason? Unless JyqXan has an explanation I propose we revert the latest change.
There are a few of these random mutilations going on by randomly named users. No idea why! I think I might have accidentaly marked this as patrolled but don't know how to reverse. User:Imcdnzl
Okay, thanks both for the explanation and the fix.