Books for protocol development

michi1 at michi1 at
Tue Sep 25 11:50:45 EDT 2012


On 09:12 Tue 25 Sep     , V.Ravikumar wrote:
> On Mon, Sep 24, 2012 at 9:03 PM,
> <michi1 at>wrote:
> > Hi!
> >
> > On 17:02 Mon 24 Sep     , V.Ravikumar wrote:
> > > Hello all ,
> > >
> > > Could some body please suggest any books/links for Linux networking
> > > protocol development.
> > > Protocol development at L2/L3 layers.
> >
> > There is a book called "The Linux Networking Architecture: Design and
> > Implementation of Network Protocols in the Linux Kernel".
> >
> > Is there anything in particular you are looking for?
> >
> I need information specifically about VPN technology like MPLS and other
> related stuff.
> About their design & implementation at layer L2 level.

MPLS is not really a VPN, but rather a layer 2.5 encapsulation supposed to
combine the speed of switching with the flexibility of routing. It should be
possible to use MPLS to build VPNs, but I guess few people did this before.
Also, MPLS is probably not in widespread use by linux to begin with.

There are some "other" VPN technologies as well:
- ipsec: This is a standard which is implemented by most "hardware" firewalls
  and it is quite popular in corporate networks. The linux implementation does
  not do anything at layer 2 at all. Packet are captured before they are
  passed to the layer 2 and encapsulated. They pass iptables twice. In
  practice ipsec can be pretty weird/confusing.

- openvpn: cross platform free+open source project; It connects to the other
  side with either udp or tcp. It creates a virtual network device. Everything
  you send to this device will be sent to the other side as if the machines
  were directly connected. On linux openvpn runs completely in userspace and
  creates the virtual device via the tun/tap interface.

  If you are interested in how to create such a virtual device in the kernel,
  you can want to take a look at the ethos project. Its project site seems
  down/gone, but you can get a copy here:

programing a layer 3+4 network protocol for mesh networks

More information about the Kernelnewbies mailing list