The main goal of the FINS Framework is to allow researchers to develop and experimentally test new networking ideas and modify existing network behaviors. In addition to being able to create new solutions, implementations of current protocols will be available, allowing researchers to pick and choose which portions of the stack they wish to modify. This type of customization is currently available in network simulation packages but is not readily available to experimental researchers.
This project aims to create a framework, known as the Flexible Internetwork Stack (FINS) Framework, that makes it straightforward to re-conceptualize the network stack, to implement and rapidly deploy new networking ideas, and to collect extensive experimental data regarding the performance of a modified stack. Specifically, the framework defines interfaces that make it possible to create new or modified network layers that can interact with each other in a variety of ways, provides a configuration interface that allows for the construction of the network stack, offers a control interface for real-time control of active layers, and provides extensive, tunable, data collection spanning the protocol stack.
The main objectives of the FINS Framework are:
- The framework will work with existing physical and data link layer protocols and hardware.
- Externally, a protocol stack implemented with FINS will adhere to protocol specifications, such as IPv4 and TCP, if desired.
- Internally, the protocol stack can be structured however the user wishes and may use any algorithm to make operational decisions.
- Existing applications will access the network through the protocol stack implemented in the FINS Framework (when the stack exhibits a traditional interface to the application).
- New applications that leverage the features of a custom protocol stack will be easy to implement and deploy.
- A FINS Framework user can redesign any layer or combination of layers above the Data Link and Physical layers using an interface provided by us.
- The initial implementation of the framework will be developed and deployed on a handheld device platform.
The FINS Framework will be designed to support the following example usage scenarios. These are examples of ideas that drove the creation of FINS. Please see the project Wiki for more information on specific use cases.
- Dynamic routing behavior: Research on routing and reputation management for ad-hoc networks may require the ability to control routing behavior on a packet-by-packet basis. The selected next-hop could vary from one packet to the next and change over time. The FINS Framework would allow one to modify the network layer to introduce this complex, packet-by-packet, next-hop decision making without altering other layers.
- TCP behavior in wireless networks: Beyond TCP Reno: The use of packet losses as an indication of congestion is not justified in wireless networks. Numerous approaches to modify TCP to account for this fact appear in the literature, e.g. TCP Reno. With the FINS Framework, researchers could create a host of modified transport layer behaviors, consistent with expected TCP behavior or not, and test them easily without changing the behavior of other layers.
- Network Aware Applications: One of the goals of current networking models is to abstract the network away from the application. This is good until one wishes to modify the behavior of an application (or the network itself) in response to network conditions. The FINS Framework will allow the user to monitor the network (e.g. by observing the arrival of TCP acknowledgements) to make adjustments to an application, such as changing the data encoding or reducing the amount of data that is being transmitted. Additionally, the framework will allow the user to change the behavior of the network (e.g. by changing the TCP window size to reduce jitter). These capabilities will be added to the implementations of the standard protocols to allow for the implementation of network-aware applications without modification of the protocol stack itself.
- Creation of new network layers and layering structures: Finally, a researcher can create new cross-layer protocols that simplify the networking stack by combining the transport and networking layer in an effort to reduce complexity and processing time.
In the context of a normal network stack model, the initial implementation of the FINS Framework will reside above the physical layer and MAC layers and below the application layers. The framework will allow for lower-layer information access and control by directly interacting with the lower layers. The framework will reside below the application layer such that unmodified applications can be used with the framework.
A primary concept of the framework is the ability to query and control layers above and below from any point. Table 1 shows the information and control that could be available to each layer and to the application using the stack in the context of a standard networking implementation using IEEE 802.11, IPv4, and TCP.
|Layer||Information Available (Meters)||Accessible Controls (Knobs)|
|Physical and Data Link||
Table 1. Examples of information and controls (meters and knobs) potentially available in a FINS Framework implementation of IEEE 802.11, IPv4, and TCP.
Ideally, the FINS Framework will be built natively and integrated with the operating system kernel. This may not be possible if we cannot find a handheld system that is sufficiently open. This approach will offer the greatest flexibility to the user, but may offer limited portability from platform to platform. In the event that we cannot identify a device that will allow us to implement the framework natively, though, we are considering alternatives. The first alternative approach is to construct the framework as a library using Ethernet sockets to communicate with the 802.11 interface. Other alternatives would be to use raw sockets or UDP datagrams with multicast, but these approaches would be significantly less realistic. All three alternatives would also require the framework to interact with the network interface driver to offer additional information and control of the interface.
The following is a list of deliverables for this project. All of these will be publically available on the website.
1) The Framework: Over the course of the project, we will release the FINS Framework via an open source license as a collection of software libraries and/or operating system patches for the targeted handheld platform. We will also release a version for “standard” laptop and desktop computers, if resources permit. Further, we will release FINS Framework implementations of common, standard-compliant layers including at least IPv4, TCP, and UDP; we will later include other protocols, including IPv6, and various proposed ad hoc routing protocols. We will also release extensive documentation regarding the operation and use of the framework, and we will create an online community including a discussion board and Wiki to provide coordination between the collaborating partners and to provide support for other users of the framework.
2) Course materials: This project includes a courseware portion with the goal of developing atomic course “modules” relevant to courses on mobile systems and advanced networking topics. The project aims to create the following modules:
- Introduction to Handheld Device Application Development
- Constraints of Handheld Devices: Resources, Interfaces, and Intermittent Use
- Networking and Mobility with Handheld Devices
- Creating Location-aware Applications
- Introduction to the FINS Framework
- Observing Layer Behavior with the FINS Framework
- Modifying Existing Layers with the FINS Framework
- Creating New Layers with the FINS Framework
The first four modules concentrate on mobile device development. We anticipate these to be used in hands-on upper-level undergraduate or graduate design course. The last four modules are more advanced and we envision them being used in an advanced networking course where creation of new protocols or modifications of existing protocols is relevant.
3) Helpful tools: Finally, we foresee the creation of a set of additional, smaller tools that are relevant to the goal of making experimental networking research more attainable. One likely component is the creation of a software distribution system for a mobile ad-hoc network. Such a system was needed during the MANIAC Challenge and would be helpful in future MANET experiments.
Again, the goal of the FINS Framework is to make experimental networking research easier through a few different routes. We openly welcome external thoughts on what else is needed and how we can improve what we have, in addition to help developing, using, and testing what we develop. Our desire is to move forward with this project and create a community where researchers can help support each other’s research.