As we have to give marks to each participant, each participant has to submit a short protocol at the end of each part (3-4 pages). These protocols should describe the theory behind the practical assignment, how it was done and what the results were.
A participance of at least 80% is mandatory.
||Introduction to course and topic 1.
|24.04. - 22.05.
||1. Mobile Communications Basics
||Hand in your report for topic 1 (send to Michael Baar)
|29.05. - 19.06.
||2. Mobile Devices
||Hand in your report for topic 3 (send to Tomasz Naumowicz)
|26.06. - 17.07.
||3. MANET Routing
||Hand in your report for topic 2 (send to Georg Wittenburg)
Attention, change of dates: May the 17th is a public holiday. All following dates need to be shifted by one week so there is four weeks for each of the topics.
Assigments will be presented during the first lecture and provided during the course.
1. Mobile Communication Basics
Introduction and details for the following assignments (pdf).
1.1 Programming serial communication
Decide for a programming language of your choice (Visual C++, Visual C#, Visual Basic, Java, C or anything else that is installed on the Lab PCs)
Get familiar with programming the serial port.
Write your own program that allows you to configure the serial port you are using, and that sends and receives data from a file / to a file.
Use a crossed serial cable to test your program between the two serial ports of your PC.
Develop this application in a way that:
- you can extend it for packet transmission
- other people can read and understand your code (read and follow standard coding conventions)
- includes at least minimal documentation (a few lines to describe what each func-tion does)
1.2 Radio Framing
Realize the low-level framing described in section 2.3.3 (encapsulation when sending, decapsulation when receiving, you wont need checksums yet).
Verify the bitstream sent over the serial port by writing it to a file and inspecting it with an Hex Editor like the installed PsPad editor.
Test your program using a 868 MHz module. You should be able to send ACII and Unicode text strings to others.
Do cross-checks with partner groups to test the interoperability and standard conformance!
1.3 Concurrent Media Access
Define a new pair of primitives as known from the lecture mobile communications: RTS (ready to send) and CTS (clear to send). A node A that wants to transmit data first listens into the medium, than it sends a RTS primitive to another node B. Node B answers with a CTS primitive, if it is ready to receive data. Thus, the other nodes receiving both RTS and CTS know that there is a transmission going on and delay their transmission for a random amount of time.
Find out the effect on this MAC scheme on your throughput.
1.4 Simple Transport Service
2. Mobile Devices and Web Services
Assignments will be presented during the first appointment.
Introduction slides: download
Review the C# programming language.
You are allowed to use other programming languages. Please make sure you are able to access XML Web Services with the platform of your choice.
3. Mobile Ad-hoc Network (MANET) Routing
The overall task in this part of the course is to implement and evaluate a routing protocol and write a short (6-8 pages) report on your ideas and findings. The following sub-tasks serve as milestones and help you to structure your work.
3.0 Preparation for MANET Routing (due for 26.6.2008)
- Make sure your UNIX account is working properly and you know how to use the shell, the GUI, and the editor of your choice.
Review the C/C++ programming languages.
Alternatively, you can use online tutorials and references, e.g. athttp://www.cprogramming.com.
- Brian W. Kernighan and Dennis M. Ritchie. The C++ Programming Language, 2nd Edition. Prentice Hall, March 1988.
- Bjarne Stroustrup. The C++ Programming Language, 3rd Edition. Addison-Wesley Professional, February 2000.
Review common shell and toolchain commands. Make sure you know how to
A quick introduction for novice users is at Learn UNIX in 10 minutes. For specific commands, consult the manual pages.
- display and change environment parameters such as
- make changes to your shell configuration in
- apply patches to source code using
- compile a program using
- Have a look at the homepage of the network simulator ns-2 and try to install the simulator following these instructions.
3.1 The Network Simulator - ns-2 (26.6.2008)
- Install the latest version of ns-2 in your UNIX home directory following these instructions.
- Patch your installation with service_placement_framework-0.2.tar.gz. Run a few simple simulations following the examples and familiarize yourself with the code and APIs.
- Read one (per person) of the publications of linked below and summarize it in about half a page. Your summary should clearly state the main contributions of the paper and your judgment on its relevance. You may reuse the summaries in your final report. Try to select the paper that will help you most with your task of implementing a routing protocol.
3.2 Simulations with Basic Routing (3.7.2008)
- Start implementing your idea for a routing protocol, possibly based on the papers that you have read. Run simple simulations to verify that the protocol works as expected. If you are still unsure how to approach the problem, you may use this patch (routing_first_steps.patch) as a starting point.
- As above, read another one of the publications of linked below and summarize it in about half a page.
3.3 Simulation and Emulation (10.7.2008)
- Continue implementing your routing protocol. Try to run more advanced simulations with different number of participating nodes and different traffic load.
- Run simple emulations of your protocol. To this end, you will have to compile your code natively for either the Linux or Windows platform (see READMEs for instructions on how to do this) and run the executables on at least two machines in the lab. Try to measure the round trip time (RTT) of a single packet.
- As above, read another one of the publications of linked below and summarize it in about half a page.
3.4 Evalation of a Routing Protocol (17.7.2008)
Using both simulation and emulation, gather the data required for a thorough evaluation. Your data should at least answer the following questions:
Think about whether to use simulation or emulation to conduct your measurements!
- How does your routing protocol scale with the size of the network, i.e. how does the number of nodes affect the packet delivery ratio (PDR)?
- How does your routing protocol scale with the load of the network, i.e. how does the PDR behave in light of different numbers of packets transmitted per second?
- How fast is your routing protocol in establishing a route, i.e. how long does it take for the first packet to be delivered?
Due on 24.7.2008: Send your finished report by email to Georg Wittenburg, preferably as PDF. Your report should consists of 6-8 pages and generally follow the structure of the routing papers that you've read, i.e. it should have the following sections:
The report can be written in either German or English. If you feel lost, have look at the AODV and/or DSR papers for inspiration. Don't forget to include the names of all members of your group!
- Introduction - Give some background on routing in mobile ad-hoc networks and motivate your work.
- Your Protocol - Describe how your protocol works and why you have decided to make it work in this particular way, i.e. which alternatives did you consider and why did you decide against them?
- Evaluation - Use the data from your simulation and emulation runs to evaluate your protocol. Include and describe graphs of all relevant measurements.
- Related Work - Compare your routing protocol to other routing protocols and/or generally the state of the art. You may re-use your summaries of the papers you have read so far in this course.
- Conclusion - Summarize your findings and point out open questions with regard to your routing protocol. Say something nice at the end.
- Charles E. Perkins and Elizabeth M. Royer. Ad-hoc On Demand Distance Vector Routing. In Proceedings of the 2nd IEEE Workshop on Mobile Computing Systems and Applications (WMCSA'99), 1999.
- David B. Johnson, David A. Maltz, and Josh Broch. DSR: The Dynamic Source Routing Protocol for Multi-Hop Wireless Ad Hoc Networks, Ad Hoc Networking, chapter 5: pages 139 - 172. Addison-Wesley, 2001.
- Josh Broch, David A. Maltz, David B. Johnson, Yih-Chun Hu, and Jorjeta Jetcheva. A Performance Comparison of Multi-Hop Wireless Ad Hoc Network Routing Protocols. InProceedings of the Fourth Annual International Conference on Mobile Computing and Networking (MobiCom'98), Dallas, TX, U.S.A., October 1998.
- David Kotz, Calvin Newport, and Chip Elliott. The Mistaken Axioms of Wireless-Network Research. Darthmouth College Computer Science Technical Report TR2003-467, July 2003.
- Zygmunt J. Haas. A New Routing Protocol For The Reconfigurable Wireless Networks. InProceedings of 6th IEEE International Conference on Universal Personal Communications (ICUPC 1997), San Diego, California, U.S.A., October 1997.
- T. Clausen, P. Jacquet, A. Laouiti, P. Muhlethaler, A. Qayyum, and L. Viennot. Optimized Link State Routing Protocol. In Proceedings of IEEE INMIC 2001, Pakistan, 2001.
- Mahesh M. Marina and Samir R. Das. Routing Performance in Presence of Unidirectional Links in Multihop Wireless Networks. In Proceedings of the Third ACM International Symposium on Mobile Ad Hoc Networking and Computing (MobiHoc 2002), Lausanne, Switzerland, June 2002.
- Henri Dubois-Ferriere, Matthias Grossglauser, and Martin Vetterli. Age Matters: Efficient Route Discovery in Mobile Ad Hoc Networks Using Encounter Ages. In Proceedings of the Fourth ACM International Symposium on Mobile Ad Hoc Networking and Computing (MobiHoc 2003), Annapolis, MD, U.S.A., June 2003.
- Venugopalan Ramasubramanian, Zygmunt Haas, and Emin Gun Sirer. SHARP: A Hybrid Adaptive Routing Protocol for Mobile Ad Hoc. In Proceedings of the Fourth ACM International Symposium on Mobile Ad Hoc Networking and Computing (MobiHoc 2003), Annapolis, MD, U.S.A., June 2003.
- Stéphane Lohier, Sidi-Mohammed Senouci, Yacine Ghamri Doudane and Guy Pujolle. A Reactive QoS Routing Protocol for Ad Hoc Networks. In Proceedings of the European Symposium on Ambient Intelligence (EUSAI 2003), Eindhoven, Netherlands, November 2003.