Praktikum Mobilkommunikation
(19557)
Typ | Praktikum |
---|---|
Dozent/in | Prof. Dr. Mesut Günes, Michael Baar, Dr. Georg Wittenburg, Tomasz Naumowicz |
Institution | Institute of Computer Science Freie Universität Berlin |
Semester | SS 08 |
Veranstaltungsumfang | 4 |
Leistungspunkte | 10 |
Raum | Takustraße 9 K 60 |
Zeit | Time: Thursday, 14:00-18:00 |
Voraussetzungen
Exam
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.
Schedule
24.04. | Introduction to course and topic 1. |
01.05. | Holiday |
24.04. - 22.05. | 1. Mobile Communications Basics |
29.05. | Hand in your report for topic 1 (send to Michael Baar) |
29.05. - 19.06. | 2. Mobile Devices |
26.06. | Hand in your report for topic 3 (send to Tomasz Naumowicz) |
26.06. - 17.07. | 3. MANET Routing |
24.07. | 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.
Assignments
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
-
Integrate the simple protocol SAbP as described in the PDF in your implementation.
-
This protocol shall run alternatively to (not on top of) RTS/CTS. You need to be able to process both protocols and decide for the procotol used on the packet type.
-
Start by implementing Ping/Pong, then Data Request without and with data.
-
-
Again: Do cross-checks with partner groups to test the interoperability and standard conformance!
2. Mobile Devices and Web Services
-
Assignments will be presented during the first appointment.
Introduction slides: download
-
Review the C# programming language.
- Hanspeter Mössenböck - Introduction to C#
- Hanspeter Mössenböck - Advanced C#
- Tomasz Naumowicz - .net for Java developers
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.
- 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
- display and change environment parameters such as
$PATH
and$LD_LIBRARY_PATH
, - make changes to your shell configuration in
.cshrc
or.bashrc
, - apply patches to source code using
diff
andpatch
, and - compile a program using
configure
andmake
.
- display and change environment parameters such as
- Have a look at the homepage of the network simulator ns-2 and try to install the simulator following these instructions.
- 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.
- 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.
- 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.
-
Using both simulation and emulation, gather the data required for a thorough evaluation. Your data should at least answer the following questions:
- 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:
- 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.
Online material
General Programming
- Coding Conventions (General idea and links, .NET)
C# Programming
- Introduction to C# [Hanspeter Moessenbock]
- Advanced C# [Hanspeter Moessenbock]
Java Programming
Web Services
- XML Web Services Basics (must read)
- Web Services mit .NET Framework 2.0 und Visual Studio 2005 (must read)
- Visual C# - Buch zum Nulltarif (nice to know)
- Amazon E-Commerce Service API
Routing
- 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.