Deutsch Intern
Chair of Computer Science III

Practical Course in Hardware: Internet Technologies

Overview

Tutor: Alexej Grigorjew M. Sc.
Introductory Event: Thursday, 20.04.2023, 14:15, Übungsraum I
WueCampus Course: WueCampus Link
Group size: 3 Students
Capacity: max. 36 Students / 12 Groups

Note: While we can give you individual support for concrete questions in English, the majority of the documents provided in this course are in German.

Registration and Procedure

For participation at this practical course, you need to:

  • Register for this course's exam in WueStudy,
  • Register in the WueCampus course, and
  • Announce your group members (after introductory event, via WueCampus).

Further information will be given in the introductory event. You do not need to register anywhere in advance. Regarding previous knowledge, we highly recommend the lecture "Rechnernetze und Informationsübertragung".

The assignments are done in groups of 3 students each. Similar to lecture exercise papers, a number of assignments must be finished each week. A protocol of these assignments containing methodology, intermediate results, problems, and reasoning are to be uploaded in the group's git repository. In addition, each week's exercise contains additional comprehension questions that should make you think further about certain topics. These exercises are not rated, but they are corrected by student tutors and regular feedback will be given. The main purpose of these exercises is to lead you through the practical course and to support your progress. At the end of the course, there will be a final interview with each group to featuring the most important aspects learned during the course.

Currently, there is sufficient hardware available for 12 groups.  If more than 36 persons register, we will decide the further course of action based on the total number of participants.

Contents

HWP Overview

The overall aim of the practical course is to reproduce the displayed network, including configuration of devices and applications. For each individual aspect, separate exercises are available with its respective background information, tips, and further reading resources. The individual exercises include:

  • Configuration of a linux end device (here: raspberry pi)
    • IP addresses
    • SSH
    • Basic usage of the operating system and the shell
  • Configuration of a temperature sensor
    • Assembly of all components on a breadboard connected to the raspberry pi
    • Read the sensor's data in software inside the operating system
  • Configuration of the main components of switches and routers
    • Basic usage of the devices' shell
    • Initial configuration (login, clock, ...)
    • Add ports to the switch and define their behavior
    • View the current MAC address table, ARP table, ...
    • Add router ports to specific (static) subnets
    • View all installed routes
    • Configure NAT (Network Address Translation)
    • Check connectivity
  • Implementation of a simple client/server application
    • Send your local data towards the "cloud" (represented by one of your computers)
    • Plot all received temperature data in a web interface
  • Sound recording and transmission
    • Recording a microphone signal in python with various sample rates, chunk sizes, ...
    • Simple modifications: amplify the signal, ...
    • Fourier transformation, low pass, retransformation
  • Effects of packet loss and latency on different protocols
    • Emulation of packet loss and delay via Net-Em (Network Emulator) device
    • Transmission of voice via UDP
    • Transmission of voice via TCP
  • Introduction in SDN (Software-Defined Networking)
    • The router is replaced by an SDN-capable switch
    • Understanding of the Match-Action abstraction
    • Manual insertion of Match-Action rules to reproduce the same behavior as the router
    • Simple network application: NAT and firewall

Learning objectives

  • Understanding of the different OSI layers
    • Responsibilities: switching, routing, reliability, ...
    • Implementation in networking components (high level)
    • Configuration of the respective layers and devices
  • Deployment of an end-to-end communication path
  • Introduction into digital signal processing
  • Simple application of the raspberry's GPIO pins
  • Understanding of the SDN concept and its typical abstraction of the data plane