> Please check latest news in Stud.IP, where you find further course materials and easy interface for discussions (including a WiKi entry for your project progress).
Updated
- 2008-18-04: Time schedule is changed to Friday, 15:30-17:00.
- 2008-09-04: First session will be on April 18, 2008.
Course description
The course objectives for Praktikum Telematik include (but
are not limited to) the following:
- Learning to architect, develop, and test an
example network application based on the TCP/IP network infrastructure.
- Learning to work effectively in a team environment and project-style
development.
- Developing your written and oral communication skills in English.
- Becoming proficient with software development tools and networking
environments, using standard programming language C/C++/Java/... and tools (such as CVS, Eclipse).
- Integrating everything you have learned in your other computer science courses.
Organization and Examination:
The
course consists of several projects and each team is expected to do one
of the listed projects. The team may consist of 2-4 members. The course
aims to familiarize the students with network programming and/or in the
use of a popular network simulator and to teach them to implement
network protocols on the simulator.
Each team is expected to give a mandatory intermediate and a final presentation and a project report too.
Projects:
Implementation of Pre Congestion Notification for providing Quality of Service(QoS) in NS-2
Description
Pre-congestion
notification (PCN)
[http://tools.ietf.org/html/draft-ietf-pcn-architecture-03] is one
method to guarantee QoS to data traffic in a DiffServ network. It is
based on the idea of marking packets when a certain load threshold on a
link is exceeded by PCN traffic. The egress node uses this information
for making decisions on admitting new flows or to terminate existing
flows. The objective of this project is to design such a network on a
simulator (NS-2) and study its behaviour. Afterwards, a working
implementation will be make available to the community.
Requirements
Good programming skills in C/C++; good understanding of computer networking.
Expected results
1. Implement the ingress to send PCN traffic.
2. Implement the intermediate nodes to mark packets.
3. Implement the egress to measure marked packets and send feedback information to the ingress.
4. Evaluate and compare the performance to best effort traffic.
Team size: 3
Implementation of Diameter server and client
Description
Diameter
is a computer networking protocol for Authentication, Authorization and
Accounting (AAA) and the proposed successor to the RADIUS protocol. The
Diameter Base Protocol (RFC 3588) describes the basic functions of
Diameter and is extended by specific Diameter applications to meet the
requirements of the respective AAA scenario. During the practical
training we will implement a Diameter server and a Diameter client to
perform basic authentication and authorization functions within a
web-based environment.
Diameter server
The
Diameter server will be implemented as a stand-alone Linux networking
daemon using C/C++. It should offer basic Diameter server
functionalities and be able to perform authentication and authorization
functions for the Diameter client.
Diameter client
The
Diameter client will be implemented as a module for the Apache HTTP
server to perform authentication and authorization of a web user
against the Diameter server. Depending on the progress of the team, we
might also try to port the module to the PHP programming language.
Requirements
Good programming skills in C/C++; good understanding of computer networking.
Team size:
Diameter server: 3
Diameter client: 2
Implementation of a Mobile IP Interactive Connectivity Establishment (M-ICE)
Description
draft-tschofenig-mip6-ice
describes how the Interactive Connectivity Establishment (ICE)
methodology can be used for Mobile IP to determine whether end-to-end
communication is possible. ICE makes use of the Session Traversal
Utilities for NAT (STUN) protocol in addition to mechanisms for
checking connectivity between peers. After running the ICE the two MIP
end points will be able to communicate directly or through a relay via
Network Address Translators (NATs), Network Address and Port
Translators (NAPTs) and firewalls. draft-tschofenig-mip6-ice addresses
also the problems raised in RFC 4487 "Mobile IPv6 and Firewalls:
Problem Statement". As draft-tschofenig-mip6-ice based up on the
modified RRT sequence as defined in draft-bajko-mip6-rrtfw, this
project has to deal with draft-bajko-mip6-rrtfw. STUN and ICE are
mechanisms for NAT and firewall traversal. They are often used to allow
e.g. VoIP clients to successfully traverse the variety of firewalls/NAT
that may exist between source and destination.
Requirements
Good programming skills in C/C++; good understanding of computer networking and knowledge of mobile networking.
Group Member: 4
Implementation of new TCP variants and a scenario in Omnet++:
Description
Omnet++
is an easy to use discrete event simulator. Advantages of Omnet++ are
the simple structure and the detailed documentation compared to other
discrete event simulators, e.g. NS-2. At the moment Omnet++ lacks of
implementations of various TCP variants.
Within this
practical course the TCP variants (e.g. TCP Cubic, TCP Compound and
FAST-TCP) will be implemented in Omnet++ with one scenario of the TCP
evaluation suite (Towards a Common TCP Evaluation Suite).
TCP Cubic and TCP Compound are chosen because they are the current TCP
variant in Linux and Windows, respectively. FAST-TCP is proposed by
Caltech research group and is especially targeted at high-speed,
long-distance links.
Afterwards, a working implementation will be make available to the community.
Requirements:
1. Implement three TCP modules.
2. Implement one scenario of the TCP evaluation suite
3. Verify the results by compare them to results from the simulator NS-2.
Group Member: 3
Useful Tools: Network Simulator
A
discrete event Network simulator can be used for traffic modelling of
telecommunication networks, protocol modelling, modelling queuing
networks, modelling multiprocessors and other distributed hardware
systems, validating hardware architectures, evaluating performance
aspects of complex software systems and modelling any other system
where the discrete event approach is suitable. In this course we will
be using the popular OMNeT++ and/or ns2 network simulator.
OMNeT++
is an object oriented discrete event network simulator. It is highly
modular, well structured, scalable and based on C++. It provides a
basic infrastructure wherein modules exchange messages. Its main
features includes its extensive GUI support , portable on windows and
Unix platforms , an open source distribution policy for academic
purposes and etc. It can be use to model communication and queuing
networks, protocol modelling, multiprocessors and other distributed
hardware systems as well as to validate hardware architectures. OMNeT++
simulations can feature varying user interfaces for different purposes:
de-bugging, demonstration and batch execution. Advanced user interfaces
make the inside of the model visible to the user; allow control over
simulation execution and to intervene by changing variables/objects
inside the model. This is very useful in the development/debugging
phase of the simulation project. User interfaces also facilitate
demonstration of how a model works. OMNeT++ also supports parallel
distributed simulation.
Ns2 is a discrete event simulator
targeted at networking research. Ns2 is popularly used in the
simulation of TCP, routing and multicast protocols, among others, and
is heavily used in ad-hoc research. It was built in C++ and provides a
simulation interface through OTcl, an object-oriented dialect of Tcl.
The user describes a network topology by writing OTcl scripts, and then
the main ns program simulates that topology with specified parameters