| Inhalt: | Computer networks are essential for many modern applications. The Internet of Things (IoT) and Industrial Internet of Things (“Industrie 4.0”) implement networks of sensors, actuators, and controllers to control machines in factories, smart home devices, or any kind of “cyber-physical” system. Cloud computing services rely on huge data-center networks to connect hundreds of thousands of machines in each data center. Mobile networks provide connectivity for autonomous cars and other vehicles such as unmanned aerial vehicles (UAV). Such applications face great challenges: (1) the flexibility to adapt the network quickly and automatically to new applications, protocols, devices (“plug and produce”), etc.; (2) high efficiency while using precious network resources; (3) providing quality of service such a guaranteed bandwidth or real-time guarantees (bounded delay). The goal of this lab-course (Fachpraktikum) is to get practical hands on experience and profound technical knowledge of two specific modern networking technologies: Software Defined Networking (SDN) and Time-Sensitive Networking (TSN). SDN has been first introduced and utilized by companies such as Google and Microsoft to improve the efficiency and flexibility of their networking and cloud infrastructures. SDN is based on the following essential concepts: separation of network data plane (forwarding of packets by switches and routers) and control plane (controlling network devices such as switches and routers). In particular, the control plane is “outsourced” to a logically centralized network controller with global view onto the network and communication flows (data streams between applications). The network controller implements the control logic (“apps”) “in software” using standard programming languages such as C, Java, or Python to dynamically control the forwarding of packets by the data plane or dynamic configuration of other network functionality such as firewalls or load balancers. TSN is a set of official IEEE standards that extend standard IEEE 802.3 (Ethernet) networks to enable “hard” real-time applications requiring deterministic bounds on network delay and delay variation (jitter) as typically required by safety-critical networked applications (e.g., control of machines in a factory, or sensors and actuators in cars, planes, etc.). In particular, TSN introduces so-called shapers to schedule packets to be forwarded based on their priority, as well as other functionality to increase reliability (packet duplication), robustness (filtering of packets), time synchronization, etc. After presenting the specific knowledge about SDN and TSN to the participants, the participants will practically apply their knowledge by implementing different networked applications and systems to gain hands-on experience with these technologies. Besides SDN and TSN, different tools and technologies will be taught and used in this course, such as network programming, network emulators (Mininet), network simulators (OMNeT++/INET), software SDN switches (Open vSwitch), Linux networking mechanisms (Queuing Disciplines/QDISCs), and Controller Area Networks (CAN). Requirements: Basic knowledge of computer networks, e.g., lectures Systemkonzepte und -Programmierung or Computer Networks (Rechnernetze); motivation to use system-oriented programming languages such as C/C++/Rust (besides other languages such as Python). |