AG Technische Informatik

Praktikum Mobilkommunikation

Examples of technology and "practical research" in the field of mobile communications. The participants have to dig into the foundations of wireless communication techniques and learn how to work with them and become acquainted with the advantages and flaws of upcoming technologies.





Prof. Dr. Mesut Günes, Michael Baar, Dr. Georg Wittenburg, Tomasz Naumowicz


Institute of Computer Science

Freie Universität Berlin


SS 08






Takustraße 9

K 60


Time: Thursday, 14:00-18:00


Vordiplom/B.Sc., Telematics


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.


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.


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

  1. Assignments will be presented during the first appointment.

    Introduction slides: download

  2. 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.
    • 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.
    Alternatively, you can use online tutorials and references, e.g. at
  • 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 and patch, and
    • compile a program using configure and make.
    A quick introduction for novice users is at Learn UNIX in 10 minutes. For specific commands, consult the manual pages.
  • 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:
    • 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?
    Think about whether to use simulation or emulation to conduct your measurements!
  • 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:
    1. Introduction - Give some background on routing in mobile ad-hoc networks and motivate your work.
    2. 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?
    3. Evaluation - Use the data from your simulation and emulation runs to evaluate your protocol. Include and describe graphs of all relevant measurements.
    4. 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.
    5. Conclusion - Summarize your findings and point out open questions with regard to your routing protocol. Say something nice at the end.
    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!

Online material

General Programming

C# Programming

Java Programming

Web Services