Uni Wien:Internettechnologien VO (Adrowitzer, Hlavacs)

Aus VoWi
Wechseln zu: Navigation, Suche

Hard Facts[Bearbeiten]

Inhalt[Bearbeiten]

Ziel[Bearbeiten]

(laut Studienplan)

Es werden die grundlegenden Techniken von Computernetzwerken (auf Basis der Protokollarchitektur) sowie Prinzipien darauf aufbauender verteilter Anwendungen (verteilter Systeme) vermittelt. Der Studierende ist befähigt die methodischen und technischen Zusammenhänge der Durchführung verteilter Applikationen (inklusive Sicherheits- und Managementaspekte) zu verstehen und nachzuvollziehen.

Themen[Bearbeiten]

Die VO ist in 3 Teile geteilt, wobei 2 Vortragende, Prof. Adrowitzer und Prof. Hlavacs die Vorlesung halten:


Teil 1: Netzwerke (Adrowitzer)[Bearbeiten]

1. Einleitung

  • Netzwerktopologien (Bus, Stern, Ring)
  • Netzwerkarten (PAN, LAN, MAN, WAN)
  • Netzwerktechnologien (Ethernet, FDDI, Token Ring, ATM)


2. Referenzmodelle

  • Schichtenmodell allgemein
  • ISO/OSI-Schichtenmodell (7 Schichten-Merkspruch: Physiker Die Nicht Trinken Sind Potentielle Attentäter)
  • TCP/IP-Schichtenmodell
  • Gemeinsamkeiten / Unterschiede zwischen ISO/OSI und TCP/IP-Schichtenmodell


3. Physical Layer

  • Aufgaben
  • Signale
  • Übertragungsmedien (Datenträger, Kabel, Lichtwellenleiter, EM-Wellen, SAT)
  • Übertragungstechnik (Analog, Digital, Basisband, Breitband)
  • Modulation (Amplituden-, Frequenz-, Phasenmodulation)
  • Multiplexing
    • Space-, Frequency-, Time-, Code Division Multiplexing
    • Spread Spectrum (Frequency Hopping S.S., Direct Sequence S.S.)


4. Data Link Layer

  • Aufgaben
  • Fehlerbehandlung (Paritäts-&Blocksummenprüfung)
  • Framesplittungmethoden (Zeitbasiert, Zeichenzählung, Byte Stuffing, Bit Stuffing)
  • Flusssteuerung (Sliding Window Protocol)
  • Übertragungsrichtungen (simplex, halbduplex, duplex)
  • Zugriffsprotokolle (statische/dynamische Zuordnung: Fixed TDM, Klassisches Aloha, Slotted Aloha, DAMA, CSMA(-CD), Bitmusterprotokoll, Binärer Countdown)


5. Network Layer

  • Aufgaben (Wichtige Komponenten, Dienste für die Transportschicht)
  • Routing
    • statische Routingalgorithmen (Shortest-Path-Routing, Flooding)
    • dynamische Routingalgorithmen (Distance Vector Routing, Link State Routing)
  • Überlastungsüberwachung (ungleich Flusssteuerung, Bucket-Algorithmen)
  • Tunneling
  • Internet
    • Header
    • Subnetmasken (fixer/variabler Anteil)
    • Steuerprotokolle (ICMP, ARP, Reverse-ARP)
    • Mobiles Internet (Advertisement, Registrierung, Tunneling, Care-of-Adresse, Agent, Node)
    • DHCP (Ablauf, LeaseTime)


6. Transport Layer

  • Aufgaben
  • Dienstklassen, Dienstqualität und Dienstoperationen (QoS-Parameter, Socket)
  • Transportprotokolle
    • TCP-Protokoll-Übersicht, Header, 3-Wege-Handshake, Überlastungsüberwachung, "Slow"-Start-Algo
    • UDP-Protokoll-Übersicht
    • Vergleich zwischen und Verwendung von TCP und UDP


7. Application Layer

  • Gateways
  • Client-Server-Architektur
  • Anwendungsprotokolle (HTTP, FTP, POP3, IMAP, SMTP, Telnet, DNS)



Teil 2: Verteilte Systeme (Hlavacs)[Bearbeiten]

1. Definition, Ziele, Eigenschaften

  • Begriffsdefinitionen: Transparenz, Offenheit, Skalierbarkeit, Interoperabilität, Portabilität, Flexibilität
  • Skalierungstechniken
  • Entwurfsaspekte von Verteilten Systemen:
    • Hardwarekonzepte: Crossbar-Switches, Grids/Hypercubes, geschachteltes Omega-Netzwerk
    • Softwarekonzepte: Mehrprozessor-OS, Mulitcomputer-OS (Distributed Shared Memory), NetzwerkOS, strenge/lose Kopplung
    • Einführung des Begriffs der Middleware, um ein Verteiltes System zu realisieren
    • Middleware und Offenheit
    • Client-Server: Mehrschichtige Verteilung (Vertikale/Horizontale Verteilung)


2. Kommunikation bei Verteilten Systemen

  • Middleware-Protokolle (RPC, RMI, Nachrichtenqueue-Dienste, Audio-/Video-Streaming)
  • RPC (IDL-File, Stubs, Erweiterte RPC-Modelle z.B. Doors,AsyncRPC)
  • Nachrichtenorientierte Kommunikation (Persistent/Transient/Asynchron/Synchron)


3. Prozesse

  • Threads vs. Prozesse vs. Lightweight-Prozesse
  • Server-Entwurfsaspekte
    • Portmapper / Superserver ((X)Inetd)
    • Stateless / Stateful Server / Objekt-Server
  • Code-Migration (schwache/starke Mobilität)
    • Bindung an lokale Ressourcen (nach ID, nach Wert, nach Typ)
    • Migration von Ressourcen
    • Beispiel: D'Agents (Eigenschaften von Agenten)


4. Namen

  • Name->Einheit-Transformation
    • Definition, Aufgaben von Namen
    • Hard Link, Soft Link, Binden(Mounten)
    • Namensräume
  • Mobile Einheiten mit Namen finden
    • Broadcast/Multicast
    • Vorwärtszeiger
    • Home-basierte Ansätze (MobileIP)
    • Hierarchische Ansätze


5. Synchronisation

  • Uhren-Synchronisation
    • Definitionen (Clock Offset, Clock Skew, Clock Drift, ideale/reale Uhr)
    • Uhr zurückstellen / Methode von Cristian
  • Wahl-Algorithmen
    • Bully-Algorithmus
    • Ring-Algorithmus
  • Wechselseitiger Ausschluss (Mutual Exclusion)
    • Zentraler Ansatz
    • Ringbasierter Ansatz
    • Verteilter Ansatz


6. Verteilte Objektbasierte Systeme erklärt anhand CORBA

  • Globale Architektur
  • Corba Facilities
  • ORB (Objekt Request Broker): Dienste für Clients
  • Interoperabilität bei CORBA (Inter-ORB-Protokoll, GIOP, IIOP)
  • Ablauf und Struktureinsichten anhand eines kleinen Beispiels


7. Verteilte koordinationsbasierte Systeme erklärt anhand JINI

  • Koppelung von Prozessen: Temporär / Referentiell
  • Jini: Aufgaben, Ablauf, Lookup-Service, Leases, Java-Spaces


8. Verteilte Dateisysteme erklärt anhand NFS

  • Funktionen, Ziele
  • Zugriffsmodelle: Modell d. entfernten Dateisystems, Upload-Download-Modell
  • NFS-Architektur: Virtuelles Dateisystem (VFS), NFS-Client, RPC-Client-Stub
  • NFS-Dateisystem-Modell: Dateibäume (Graphen), Unteschiede V3/V4
  • NFS-Client-Server-Kommunikation: ONC RPC, Unterschiede V3/V4
  • Namensgebung: Transparenz implementieren, Mounting, Namensauflösung (iterativ, rekursiv)
  • Datei-Handles
  • Auto-Mount (Alles oder On Demand)
  • Konsistenzprobleme/Synchronisation: Caching, Unix-Semantik, Sitzungs-Semantik, Transaktionen, Modell Nicht-änderbarer Dateien
  • Dateisperren (Unterschiede V3/V4) / Gemeinsame Reservierung
  • Delegierung von Serverrechten an Client (Öffnungsdelegierung / Call-Back)
  • Fehlertoleranz
  • Dateireplikation
  • Vorliegen von Fehlern: Leases, Renew-Lease
  • Alternativen zu NFS: SMB, WebDAV


Teil 3: Sicherheit (Adrowitzer, Hlavacs)[Bearbeiten]

1. Sicherheit allgemein:

  • Begriffsdefinitionen: Authentizität, Autorisation, Integrität, Vertraulichkeit, Maleware
  • Viren: Arten, Vermerhung, Erkennung
  • Trojaner: Eigenschaften
  • Würmer: Eigenschaften
  • Andere Gefahren: Dialer, Spyware, Adware, Phishing, Spoofing, DoS, Portsacn, ...


2. Kryptologie:

  • Begriffsdefinitionen: Kryptographie, Kryptoanalyse
  • klassische Verfahren: Substitutions-&Transpositionsmethoden
  • moderne Verfahren: Symmetrische (DES, AES) / Asymmetrische (RSA, Diffie Hellman) Kryptosysteme
  • Steganographie


3. Computer-Security

  • Zugriffs-&Zugangskontrollen, Digitale Unterschrift, Zertifikate
  • Kommunikationssicherheit: IPSEC, VPN, SSL, SSH


4. Sicherheit in verteilten Systemen:

  • Trusted Computing Base (TCB), Sicherer Kanal
  • Aufbau eines Sicheren Kanals:
    • klassisch
    • Needham-Schröder-Verfahren: Challenge-Response, Key Distribution Center
  • Kerberos als Beispiel eines Needham-Schröder-Verfahrens:
    • AuthServer, TicketGranting-System, Ablauf, Kompromittierung
  • Zugriffskontrollmatrix (ACM), Zugriffskontrollliste (ACL), Capabilities, Schutzdomänen


5. Spam:

  • Entstehung, Direkt-Marketing-Strategie
  • Anti-Spam-Methoden
    • PRE-Send (Problem bekämpfen, bevor es entsteht)
      • technische Kosten (Verzögerung) / finanzielle Kosten pro Mail
      • Risiko für SpammerIn erhöhen (Opt-In, Opt-Out, Blacklisting, Whitelisting, Graylisting, Stärken und Schwächen der Verfahren)
    • POST-Send (auf der Empfängerseite Mails nach SPAM oder HAM einteilen)
      • Ursprung der Mail / Inhalt / Beides analysieren


Benötigte Vorkenntnisse[Bearbeiten]

  • Voraussetzung gemäß Studienplan: Technische Grundlagen und Systemsoftware
  • Wer schon mit der Architektur des Internet ein bisschen umzugehen gelernt hat, hat gute Voraussetzungen für das Verstehen der Inhalte dieser Vorlesung.

Zeitaufwand[Bearbeiten]

  • Man sollte schon eine volle Woche oder eventuell ein bisschen mehr zum Lernen für die Prüfung einrechnen. Wenn man sich entschließt, die vorgeschriebenen Bücher genau durchzuarbeiten, könnte man zum Beispiel mitlernen (jeweils die behandelten Kapitel lesen) oder durch eine Hardcore-Lern-Session (sicher 2 Wochen++) beide Bücher auf einmal durcharbeiten. Prinzipiell reicht es aber für eine positive Note aus, die Folien und ein paar Kapitel aus dem Buch zu lernen.

Vortrag[Bearbeiten]

  • Prinzipiell ist es nicht zwingend notwendig, der Vorlesung physisch (oder auch psychisch) beizuwohnen, da man prinzipiell alles im Buch nachlesen oder dem Vortrag des Professors digital lauschen kann. Es ist aber trotzdem ganz nett, neben sich noch echte Menschen zu haben und sozusagen Real-Time mit dem Vortragenden zu versuchen, unklare Dinge klarer zu machen, so man sich denn traut, Fragen zu stellen.
  • Es werden die Vorlesungseinheiten auf Video aufgezeichnet und auf der E-Learning-Plattform veröffentlicht. (Verfügbar als Audio-Only (MP3) oder als Audio-Video-File (AVI))

Adrowitzer:[Bearbeiten]

  • Grundsätzlich verständlich. Alles relevante ist auf den Folien und wird im WebCT Vista bereitgestellt. Mensch ist angehalten, bei Unklarheiten in der Vorlesung oder im Forum nachzufragen. Der Vortragende ist sympathisch und bemüht, auf das Feedback und die Stimmung des Studenten-Volkes einzugehen. Er betont auch mehrmals, dass man ihn bei Fragen jederzeit kontaktieren kann (per Mail oder auch online über das WebCT).

Hlavacs:[Bearbeiten]

  • Hlavacs ist ebenfalls ein kompetenter, sachlicher Mann. Die Stoffinhalte wurden, wenn man wirklich konzentriert zuhört, verständlich nahegebracht. Leider scheint er den direkten Kontakt mit den Studenten eher zu scheuen. Jedenfalls hatte ich von ihm weder einen Eintrag im Forum noch einen Versuch, von den Studenten Feedback über ihr Verständnis während des Vortrags zu bekommen, entdeckt. Sich den Vortrag anzuhören lohnt dennoch, da die Folien mit guten Kommentaren ergänzt werden, sodass die trockenen Begriffe etwas färbiger und besser unterscheidbar werden.

Autodidakt[Bearbeiten]

  • Vorlesungsfolien im vielgeliebten und hochverfügbaren WebCT Vista
  • Video-Mitschnitte der Vorlesung
  • Die beiden Standardwerke von Tanenbaum, die für die Vorlesung als Pflichtlektüre(!) angegeben werden, und die es wert sind, zumindest ein paar Blicke hineinzuwerfen. (siehe Literaturangaben unten)


Prüfung[Bearbeiten]

  • Modus: Freitext (stichwortartig), Verständnis-&Wissensfragen
  • Hilfsmittel: Keine!
  • Zeit: 2 Stunden (reicht aus)
  • Benotung: In Ordnung
  • Der erste Prüfungstermin beinhaltete relativ faire, aber auch einige knifflige Fragen. Wichtig ist, dass man die Grundprinzipien der Stoffinhalte verstanden hat, um auch einige auf den ersten Blick seltsame Fragen als Fangfragen einordnen und dann richtig beantworten zu können.
  • 60% der Punkte wurden von Prof. Adrowitzers Fragen abgedeckt (Überwiegend kurze Fragen), während Prof. Hlavacs Fragen 40 % der Punkte abdeckte (überwiegend längere, dafür aber meist Verständnisfragen).
  • Man muss nicht jedes prüfungsrelevante Kapitel durchgehend gelesen haben, um die Prüfung positiv zu bestehen, aber zumindest sollte man versuchen, die Dinge, die einem nicht ganz in den Kopf wollen, durch das Buch nochmals durchzuarbeiten.


Literatur[Bearbeiten]

Laut Angeben der Vortragenden ist es notwendig, sich diese beiden Bücher anzuschaffen, da sie 1. Standardwerke sind, und man 2. damit die Inhalte der Vorlesung besser versteht und dann auch die Prüfung besser meistern kann. Ich muss zugeben, dass ich mir die beiden Bücher in der Bücherei nur ausgeborgt habe und prinzipiell nur jene Kapitel gelesen habe, die ich während der Vorlesung nicht ganz verstanden habe, bzw. die die Vorlesung gar nicht abgedeckt hatte und die mich interessiert haben (z.B. Quantenkryptographie).


(1) Andrew Tanenbaum: Computernetzwerke, 4. Aufl, Pearson Studium (Preis: ~50EUR)


(2) Andrew Tanenbaum, M. van Steen: Verteilte Systeme - Grundlagen und Paradigmen, 2003, Person Studium (Preis: ~50EUR)