Veranstaltung/Unix Networking 2

Aus LaborWiki
Version vom 25. Juli 2009, 02:36 Uhr von Asklepios (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „== Intro == Diese Vortragsreihe ist dazu gedacht, Euch mit den verschiedenen Netzwerk APIs der Unixoiden Betriebssysteme vertraut zu machen. Vorausgesetzt werden …“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Intro

Diese Vortragsreihe ist dazu gedacht, Euch mit den verschiedenen Netzwerk APIs der Unixoiden Betriebssysteme vertraut zu machen. Vorausgesetzt werden Basiskenntnisse in der Programmiersprache C. Rudimentäre Kenntnisse über Netzwerke (TCP, UDP, IP(v4))

Während der Vorträge wird anschaulicher Beispielcode generiert und erläutert - Es lohnt sich also den Laptop mitzubringen. Konnektivität gibt es wie immer via WLan oder Lan.

Tag 1

Unix file descriptors

Hier wird zunächst einmal geklärt, wie man auf Datei Deskriptoren in C zugreift und nutzt. Welche Arten es gibt, wie man non-blocking und blocking I/O realisiert, sowie verschiedene Deskriptoren gleichzeitig nutzen kann.

Dauer: 45-60 Min

Folientexsourcecode

Internet Sockets

Bei diesem Vortrag lernt Ihr, wie man TCP und UDP sockets aufmacht und das erste eigene Programm mit Netzwerkfähigkeit schreibt.

Dauer: ca. 60 Min

sockettexfolien

daytime-client-source

daytime-server-source

Die beiden Sourcecode examples habe ich von dem FreeBSD Developer Handbuch

Tag 2

Tun/Tap devices

Die meisten Unixoiden Betriebssysteme bieten inzwischen die Möglichkeit, nicht nur einzelne Verbindungen, sondern auch ganze devices aus dem Userland heraus zu erstellen. Diese können als Grundlage für z.B. eine VPN-Anwendung genutzt werden.

Dauer: 30-45 Min

Beispielcode

Folien

Wir basteln uns eine eigene VPN Applikation

Auf Basis der vorhergehenden Vorträge wird nun eine simple VPN-Applikation erstellt, die ganze IP Pakete via TUN device schluckt, in TCP pakete verpackt und zu einer Gegenstelle überträgt.

Dauer: 60 Min