Fix timestamp and added forward-jump if wrong packet
[ana-net.git] / README
blob2eee8ff63c8bdaf82a3dcd7ff9406454e95551ee
1              ------------------------------------------
2              Lightweight Autonomic Network Architecture
3              ------------------------------------------
5 Network programming is widely understood as programming strictly defined socket
6 interfaces. Only some frameworks have made a step towards real network programming
7 by decomposing networking functionality into small modular blocks that can be 
8 assembled in a flexible manner. In this work, we tackle the challenge of 
9 accommodating 3 partially conflicting objectives: (i) high flexibility for 
10 network programmers, (ii) re-configuration of the network stack at runtime, and 
11 (iii) high packet forwarding rates. First experiences with a prototype
12 implementation in Linux suggest little performance overhead compared to the 
13 standard Linux protocol stack.
15 Beyond doubt, the Internet has grown out of its infancy and has become a critical
16 infrastructure for private and business applications. Its success is largely due
17 to the plethora of transport media it uses and to the rich set of network
18 applications it offers. Yet, network programming is still mainly about programming
19 sockets that form a strictly defined interface between the networking (TCP/IP)
20 and the actual application part (Facebook, VoIP, etc.). What if designers of
21 network applications could even tailor the networking functionality to their
22 needs? We can just speculate about the resulting innovations.
23 Nowadays, changes in the configuration of a protocol stack usually require
24 applications or even the operating system to be restarted. The need for changing
25 the protocol stack can arise if networking functionality needs to be patched, if
26 the used encryption method is not considered safe anymore, or when privacy
27 concerns change. Ideally, applications should not be affected by such changes.
28 Therefore, we advocate run time reconfigurable protocol stacks. For example, 
29 such protocol stacks can be useful for self-star properties in computing, since
30 they provide an algorithm that configures and adapts the protocol stack
31 autonomously.
33 Similar objectives were also followed by active networking [3], the Click modular
34 router project[4], or OpenFlow [5], etc. Yet, we are not aware of any research
35 that has achieved the following three partially conflicting goals:
36   1. Simple integration and testing of new protocols on end
37      nodes on all layers of the protocol stack.
38   2. Runtime reconfiguration of the protocol stack in order
39      to allow for even bigger flexibility.
40   3. High performance packet forwarding rates.
41 In this work, we propose the Lightweight Autonomic Network Architecture (LANA).
42 Our architecture borrows ideas from ANA [2], where network functionality is
43 divided into functional blocks (FB) that can be combined as required.
44 Each FB implements a protocol such as IP, UDP, or content centric routing. ANA
45 does not impose any protocols to be used. Rather it provides a framework that
46 allows for the flexible composition and recomposition of FBs to a protocol stack.
47 This allows for the experimentation with protocol stacks that are not known by
48 today’s standard operating systems, and it allows for the optimization of
49 protocol stacks at runtime without communication tear down or application
50 support. The existing implementation of ANA shows the feasibility of such a
51 flexible architecture but suffers sever performance issues. In contrast to ANA,
52 the proposed LANA architecture relies on a message passing by reference scheme,
53 minimizes the number of threads, and uses optimized packet processing structures
54 provided by the Linux kernel. Surprisingly, our first experiences with a
55 prototype implementation suggest that we can offer comparable flexibility as
56 ANA, but at packet forwarding rates comparable to those of the standard Linux
57 networking stack.
59 This research has received funding from the European Union 7th Framework
60 Programme (grant no 257906).
62 Web: http://www.ana-project.org/, http://www.epics-project.eu/