• No results found

The impact of the research in this thesis has been, and continues to be, large. The lwIP and uIP software developed as part of this thesis has been adopted by well over one hundred companies world-wide in a wide variety of embed-

2.2 Impact 13

ded devices. Examples include satellite systems, oil boring and oil pipeline equipment, TV transmission devices, equipment for color post-processing of movies, world-wide container monitoring and security systems, switches and routers, network cameras, and BMW racing car engines. The software is also used in system development kits from hardware manufacturers including Ana- log Devices, Altera, and Xilinx, which greatly increases the dissemination of the software. Articles in professional embedded systems developer magazines have been written, by others, on porting the uIP software for new hardware platforms [9]. The software is also covered in books on embedded systems and networking [34, 50] and is included in embedded operating systems [2, 14, 65]. The lwIP and uIP homepages have for a few years been among the top five hits for Google searches such as TCP/IP stack and embedded TCP/IP.

The Contiki operating system has become a well-known operating sys- tem in the wireless sensor network community and is used by several research projects in the area. Many ideas from Contiki such as dynamic module load- ing and the optional multi-threading library have also been adopted by other operating systems for wireless sensor networks [26, 51]. The dynamic loader mechanism in Contiki has also been investigated for use by Ericsson Mobile Platforms as part of the hardware platform used in many of today’s 3G mobile telephones.

Protothreads are currently used by numerous embedded software devel- opers and have been recommended twice in acclaimed embedded developer Jack Ganssle’s Embedded Muse newsletter [20]. Protothreads have also been ported, by others, to other programming languages and operating sys- tems [40, 58].

The papers and the software in this thesis are used in advanced courses on embedded systems and sensor networks at many universities and institutions throughout the world. The papers are cited by many scientific papers in the area of wireless sensor networks. In early 2007 the Google Scholar citation index [3] reports a total of 121 citations of the first three papers in this thesis. The last two papers had not yet been indexed by Google Scholar.

Chapter 3

Summary of the Papers and

Their Contributions

The thesis is a collection of five papers, Paper A, B, C, D, and E. All papers are published in peer-reviewed conference and workshop proceedings. Conference proceedings are the primary venue for scientific publishing in the area of this thesis. I have presented all papers at the conferences and workshops at which they appeared.

Papers A, D, and E are published at top-tier conferences, ACM MobiSys 2003 and ACM SenSys 2006. ACM MobiSys is a high-quality single track conference. ACM SenSys is regarded as the most prestigious conference in the area of wireless sensor networks. Paper B was published in the first instance of a now established high quality workshop, IEEE EmNets 2004. Paper C was published at the REALWSN 2005 workshop on real-world wireless sensor networks.

Paper A presents and evaluates the lwIP and uIP TCP/IP stacks. The event- driven nature of uIP forms the basis of the Contiki operating system introduced in Paper B. Paper B presents Contiki and the dynamic module loading mech- anism and the per-process optional multi-threading in Contiki. The dynamic loading mechanism in Contiki is further developed and evaluated in Paper E. The multi-threading mechanism in Contiki, presented in Paper B, is the first step towards the protothreads mechanism that I introduce in Paper C. Paper D refines, extends, and evaluates the protothreads mechanism. Paper C also includes a qualitative comparison between protothreads, events, and threads that is not included in Paper D. Papers B, C, D, and E show how the research

16 Chapter 3. Summary of the Papers and Their Contributions

has progressed from development of the underlying mechanisms in Contiki in Paper B and the novel protothreads mechanism in Paper C, to more refined mechanisms and their evaluations in Paper D and E.

3.1

Paper A: Full TCP/IP for 8-Bit Architectures

Adam Dunkels. Full TCP/IP for 8-bit architectures. InProceedings of The First International Conference on Mobile Systems, Applications, and Services (ACM MobiSys 2003), San Francisco, USA, May 2003.

Summary. The TCP/IP protocol suite is the family of protocols used for communication over the global Internet, and is often used in private networks such as local-area networks and corporate intranets. In order to attach a de- vice to the network, the device must be able to use the TCP/IP protocols for communication.

This paper presents two small implementations of the TCP/IP protocol stack with slightly different designs; lwIP, which is designed in a modular and generic fashion, similar to how large-scale protocol implementations are de- signed, and uIP which is designed in a minimalistic fashion and only contains the absolute minimum set of features required to fulfill the protocol standards. In order to reduce the code size and the memory requirements, the uIP imple- mentation uses an event-based API which is fundamentally different from the most common TCP/IP API, the BSD socket API.

As expected, measurements from an actual system running the implementa- tions show that the smaller uIP implementation provides a very low throughput, particularly when sending data to a PC host. However, small systems running uIP usually do not produce enough data for the performance degradation to become a serious problem.

Contribution. The main contribution of this paper is that it refutes the common conception that the TCP/IP protocol suite is too “heavy-weight” to be possible to fully implement on tiny devices. At the time this paper was written, most TCP/IP protocol stack implementations were designed for workstations and server-class systems, where communication performance was the primary concern. This caused a wide-spread belief that tiny devices such as sensor net- work nodes would be too constrained to be able to fully implement the TCP/IP stack. There were also a number of commercial implementations of the TCP/IP stack intended for embedded devices, where the protocols in the TCP/IP suite had been modified in order to reduce the code size and memory usage of their implementation. Such implementations are problematic as they may cause in-

3.2 Paper B: Contiki - a Lightweight and Flexible Operating System for