Rechnerkommunikation Sommersemester Oktober 2009

Ähnliche Dokumente
Rechnerkommunikation Sommersemester September 2013

Rechnerkommunikation Sommersemester Oktober 2010

Rechnerkommunikation Sommersemester Oktober 2011

Rechnerkommunikation Sommersemester Oktober 2012

Rechnerkommunikation Wintersemester 2010/ April 2011

Hauptdiplomklausur Informatik März 2001: Internet Protokolle

TECHNISCHE UNIVERSITÄT MÜNCHEN

TECHNISCHE UNIVERSITÄT MÜNCHEN

Informations- und Kommunikationssysteme

Grundlagen der Telematik AMW Übungsaufgaben

Abschlussklausur. Computernetze. 14. Februar Legen Sie bitte Ihren Lichtbildausweis und Ihren Studentenausweis bereit.

Abschlussklausur. Moderne Netzstrukturen. 18. Februar Aufgabe: Σ Note

Übungsklausur WS 13/14

Institut für Informatik der Ludwig-Maximilians-Universität München Prof. Dr. D. Kranzlmüller, Dr. N. gentschen Felde. Probeklausur

Klausur Rechnernetze

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 3. Februar 2006

Übungsblatt 4. (Router, Layer-3-Switch, Gateway) Aufgabe 2 (Kollisionsdomäne, Broadcast- Domäne)

Betriebssysteme und Netze

Übungsblatt 4. (Router, Layer-3-Switch, Gateway) Aufgabe 2 (Kollisionsdomäne, Broadcast- Domäne)

5. Lesen Sie vor der Bearbeitung einer Aufgabe den gesamten Aufgabentext sorgfältig durch!

Merkzettel für die Klausur

Rechnerkommunikation Wintersemester 2009 / April 2010

Abschlussklausur. Moderne Netzstrukturen. Bewertung: 20. Mai Name: Vorname: Matrikelnummer:

Abschlussklausur. Betriebssysteme und Rechnernetze. 2. August Legen Sie bitte Ihren Lichtbildausweis und Ihren Studentenausweis bereit.

Beispielklausur Parallele und Funktionale Programmierung XXX 200X

Übungen zu Rechnerkommunikation

"Organisation und Technologie von Rechensystemen 4"

Übung 5: Transport. Rechnernetze. Wintersemester 2014/ Allgemeine TCP Verständnisfragen

Hauptdiplomklausur Informatik. September 1998: Rechnernetze

Übungen zu Rechnerkommunikation

Hauptdiplomklausur Informatik. September 2000: Rechnernetze

Universität Augsburg, Institut für Informatik Sommersemester 2001 Prof. Dr. Martin Ester 16. Juli Klausur

Abschlussklausur. Betriebssysteme und Rechnernetze. 12. Juli Legen Sie bitte Ihren Lichtbildausweis und Ihren Studentenausweis bereit.

Rechnernetze Übung 11. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2012

Universität zu Lübeck Institut für Telematik. Prof. Dr. Stefan Fischer

Computational Engineering I

Netzwerk-Programmierung. Netzwerke.

TCP flow control, congestion avoidance

Klausur. Softwareentwurf. 13. März 2013 Bearbeitungszeit: 120 Minuten

Netzwerk-Programmierung. Netzwerke. Alexander Sczyrba Michael Beckstette.

Klausur Grundlagen der Programmierung

Klausur. Betriebssysteme SS 2007

Klausur zur Vorlesung Informatik 1 im Wintersemester 2014/2015 am 18. Februar Bearbeitungszeit: 90 Minuten Gesamtpunktezahl: 90 Punkte

Multicast-Kommunikation Teleseminar Wintersemester 1999/2000. MOSPF (Multicast Open Shortest Path First)

Grundlagen Rechnernetze und Verteilte Systeme IN0010, SoSe 2018

Aufgabe Punkte Aufgabe Σ Punkte. Note:

Programmieren, Wintersemester 13/14 Übungsleiter: Sebastian Ebers Aufgabenblatt 3

Matrikelnummer: 1 Aufgabe 1: Quickies (30 Punkte) a) Wird das folgende Programm von einem Java-Übersetzer ohne Beanstandungen übersetzt? Falls nicht,

Rechnernetze Übung 11

Protokollgraph. Host 1. Host 2. Protokoll 2. Protokoll 1. Protokoll 3. Protokoll 4. Grundlagen der Rechnernetze Einführung 46

Übung Modellierung SS 15. Übungsblatt Nr. 8 Bereich Systemmodelle und Prozessmodelle Thema: Business Process Model and Notation

Name:... Matr.-Nr... Bearbeitungszeit: 120 Minuten. Lesen Sie die Aufgaben jeweils bis zum Ende durch; oft gibt es hilfreiche Hinweise!

Wiederholungsklausur zur Veranstaltung Industrielle Produktionssysteme im Sommersemester 2015

UDP User Datagramm Protokoll

Lehrstuhl für Angewandte Informatik I SS 2003 Prof. Dr. Andreas Henrich 23. September Konzepte der Programmierung. Klausur

Übung 2 - Media Access Control (MAC)

Hauptklausur zur Vorlesung Bildverarbeitung WS 2002/2003

Verwenden von Hubs. Geräte der Schicht 1 Günstig Eingang an einem Port, Ausgang an den anderen Ports Eine Kollisionsdomäne Eine Broadcast-Domäne

Vorlesung Datenbanksysteme Endklausur

Abschlussklausur. Computernetze. Bewertung: 10. Juni Name: Vorname: Matrikelnummer:

Klausur zur Lehrveranstaltung. Technische Informatik für Ingenieure WS 2008/09

Internet Modell. Nothing stated. Bildquelle: Andrew S. Tanenbaum, Computer Networks, Fourth Edition, 2003 Grundlagen der Rechnernetze Einführung 50

Klausur: Java (Liste P)

Netzwerke. Netzwerk-Programmierung. Sven Hartmeier.

Physikalisch Technische Lehranstalt Wedel 31. Januar 2004 Prof. Dr. Uwe Schmidt

Test zu Grundlagen der Programmierung Leitung: Michael Hahsler. 21. Juni 2004

Klausur. Softwareentwurf. 14. Februar 2011 Bearbeitungszeit: 120 Minuten

Einführung in die Programmierung. (K-)II/Wb17

Objekt-Orientierte Programmierung. II/Wb17

Scheinklausur zur Vorlesung Praktische Informatik I. 12. November Punkteübersicht

Übungsblatt 7. (Datentransferrate und Latenz)

Klausur zur Vorlesung Einführung in Verteilte Systeme WS 05/06 Prof. Dr. Odej Kao 30. März 2006

Klausur zur Vorlesung. Grundlagen der Technischen Informatik (GTI) und. Grundlagen der Rechnerarchitektur (GRA)

Kontrollfragen zur Vorlesung Kommunikationsnetze für Medientechnologen

Kontrollfragen zur Vorlesung Kommunikationsnetze für Medientechnologen

Grundlagen Rechnernetze und Verteilte Systeme IN0010, SoSe 2018

Übungen zur Vorlesung Grundlagen der Rechnernetze Sommersemester 2011

Das Internet-Protocol. Aufteilung von Octets. IP-Adressformat. Class-A Netzwerke. Konventionen für Hostadressen

Netzwerke, Kapitel 3.1

Übungen zu Rechnerkommunikation Wintersemester 2010/2011 Übung 8

2. Klausur zur Vorlesung Informatik 1 im Wintersemester 2014/2015 am 30. März Bearbeitungszeit: 90 Minuten Gesamtpunktezahl: 90 Punkte

Rechnernetze Übung 10. Frank Weinhold Professur VSR Fakultät für Informatik TU Chemnitz Juni 2011

Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Simulation und Graphik Prof. Dr. Holger Theisel

Klausur Rechnernetze für Studierende des Studiengangs Scientific Programming und Auszubildende zum Beruf des Math.-Tech. Software-Entwicklers

Klausur Algorithmen und Datenstrukturen

Vorlesung Dokumentation und Datenbanken Klausur

Netzwerke. Netzwerk - Programmierung. Alexander Sczyrba. Madis Rumming.

TECHNISCHE UNIVERSITÄT MÜNCHEN

Aufgabenblatt 4. Aufgabe 3. Aufgabe 1. Aufgabe 2. Prof. Dr. Th. Letschert Algorithmen und Datenstrukturen

Klausur Informatik II

Abschlussklausur. Netzwerke. 13. Juli Legen Sie bitte Ihren Lichtbildausweis und Ihren Studentenausweis bereit.

Übungen zu Rechnerkommunikation

Klausur Einführung in die Informatik I für Elektrotechniker 16. Juli 2003

Netzwerktechnologien 3 VO

Abschlussklausur. Verteilte Systeme. Bewertung: 15. Juli Name: Vorname: Matrikelnummer:

Transkript:

Leistungsnachweis in Rechnerkommunikation Sommersemester 2009 5. Oktober 2009 Name: Matrikelnummer: Geburtsdatum: Studienfach: Fachsemester: Bitte verwenden Sie einen blauen oder schwarzen Kugelschreiber (kein rot, keinen Bleistift). Schriftliche Aufzeichnungen (sowohl eigene Aufzeichnungen wie auch Bücher) sind als Hilfsmittel zugelassen. Auch ein Taschenrechner ist erlaubt und hilfreich. Nicht zugelassen sind dagegen Computer, PDAs, Mobiltelefone und sonstige Kommunikationsmittel. Legen Sie den Ausweis (mit Lichtbild) griffbereit auf den Platz. Bitte überprüfen Sie, ob Sie alle 19 Blätter erhalten haben. Schreiben Sie die Antworten jeweils in den freien Raum hinter den Fragen. Sollte dieser nicht ausreichen, steht noch freier Raum am Ende der Klausur zur Verfügung. Bitte kennzeichnen Sie dort deutlich, welche Aufgabe Sie bearbeiten. Gesondert beigelegte Blätter werden nicht bewertet! Schreiben Sie deutlich! Unleserliche Antworten gehen nicht in die Bewertung ein! Die Arbeitskopien können der Klausur entnommen werden und müssen nicht mit abgegeben werden. Ich habe die Hinweise auf dieser Seite zur Kenntnis genommen und alle 19 Blätter der Klausur empfangen: Unterschrift Bewertung: 1 2 3 4 Σ Rechnerkommunikation 1

1 Allgemeine Fragen (20 Punkte) a) (2 Punkt) Was ist Timed Wait beim Verbindungsabbau von TCP und wofür wird es verwendet? b) (2 Punkte) Nennen Sie stichpunktartig 4 Einsatzbereiche des Netzwerkmanagements nach ISO. c) (1 Punkt) Nennen Sie 2 Realisierungs-Möglichkeiten für die Switching Fabric. d) (2 Punkte) Beschreiben Sie kurz die Bedingungen, bei denen das Hidden-Terminal Problem auftritt. Rechnerkommunikation 2

e) (2 Punkte) Was bedeutet die Abkürzung SDP und was ist dessen Aufgabe? f) (1 Punkte) Nennen Sie einen Vor- und einen Nachteil des Pseudo-Headers bei UDP. g) (3 Punkte) Was bedeutet die Abkürzung FDMA? Welche Möglichkeit für den Mehrfachzugriff beim Medienzugriff realisiert FDMA? Nennen Sie außerdem 2 weitere Möglichkeiten für den Mehrfachzugriff und hierfür jeweils eine Beispiel-Technologie. Rechnerkommunikation 3

h) (2 Punke) Was bedeutet die Abkürzung MPLS und für was ist es ein Beispiel? Nennen Sie außerdem die Wurzeln und einen Vorteil von MPLS. i) (2 Punkte) Nennen Sie 4 Möglichkeiten der Leitungskodierung. j) (3 Punkte) Nennen und beschreiben Sie die 3 wesentlichen Aspekte der Strukturierung in Schichten. Verwenden Sie hierbei Fachbegriffe. Rechnerkommunikation 4

2 Verzögerungszeiten (28 Punkte) In folgenden wird von der Netzwerk-Topologie gemäß Abbildung 1 ausgegangen. Host C und Host S können nur indirekt über Host G miteinander kommunizieren. Mit Host G sind noch weitere Netzwerkteilnehmer verbunden, die ebenfalls Daten mit Host S austauschen wollen. Dadurch entsteht ein sogenannter bottleneck (Engpass) der dazu führt, dass alle Pakete, die über Host G zu Host S gesendet werden, in einer Warteschlange zwischengespeichert werden müssen. Alle anderen Verbindungen müssen nicht gepuffert werden. Pakete benötigen in den einzelnen Knoten keine Verarbeitungszeit. Gehen Sie weiterhin davon aus, dass alle Links symmetrisch sind und die Warteschlange nie überläuft. Ein Paketverlust tritt ebenfalls nicht auf. Verwenden Sie für Ihre Berechnungen die Werte gemäß Tabelle 1. Für die Warteschlangenverzögerung können Sie von einer konstanten mittleren Verzögerung, die gemäß Formel 1 berechnet werden kann, ausgehen. Die Ausbreitungsverzögerung für den Link zwischen Host C und G ist so gering, dass sie vernachlässigt werden kann (idealisiert: l 1 = 0 m). d queue = ρl R(1 ρ) (1) Ausbreitungsgeschwindigkeit: Leitungslängen: Raten: Paketlänge: c = 2 10 8 m s l 1 = 0 m l 2 = 200 km R 1 = 100 Mbit s R 2 = 1 Mbit s L = 1250 Byte Verkehrsintensität: ρ = 1 3 Tabelle 1: Konstanten... R 1 l 1 R 1 Host C Host G Host S l 1 R 1 l 1 R 2 l 2... Abbildung 1: Netzwerk-Topologie Rechnerkommunikation 5

a) (2 Punkte) Berechnen Sie die Ausbreitungsverzögerung für den Link zwischen Host C und G (d propcg ) sowie für den Link zwischen Host G und S (d propgs ). b) (8 Punkte) Nehmen Sie an, Host C baut zu Host S eine TCP Verbindung auf, um Daten von Host S zu erhalten. Host S beginnt ohne Anfrage so bald wie möglich mit dem Senden der Daten. Gehen Sie in dieser Teilaufgabe davon aus, dass der Link zwischen Host C und G eine geringe Ausbreitungsverzögerung besitzt (d propcg > 0; d propcg d propgs ). Zeichnen Sie in Abbildung 2 ein Ablaufdiagramm, unter Berücksichtigung oben genannter Eigenschaften des Netzwerks, bis einschließlich des zweiten Sendefensters und dessen Bestätigung. Berücksichtigen Sie in Ihrer Skizze die Host-Namen und qualitativ die unterschiedlichen Ausbreitungszeiten der Links. Markieren Sie auf der Seite des Hosts C die erste Round Trip Time (RTT) mit t 1 und das Zeitintervall des ersten Sendefensters inklusive der Wartezeit auf Seiten des Hosts S mit t 2. Rechnerkommunikation 6

Host Host Host t t t Abbildung 2: Ablauf Diagramm für eine TCP Verbindung Rechnerkommunikation 7

c) (5 Punkte) Geben Sie eine Formel an, mit der man die RTT für die in Abbildung 1 gezeigte Topologie berechnen kann. Wie groß ist die Verzögerung einer RTT für die in Tabelle 1 angegeben Werte. Verwenden Sie für Ihre Berechnungen eine idealisierte Paketgröße von 0 byte. Rechnerkommunikation 8

d) (5 Punkte) Nehmen Sie an, daß in der TCP-Verbindung nun Stop-and-Wait verwendet wird. Wie lange dauert es aus Sicht des Hosts S ohne Verbindungsaufbau und Anfrage ein Objekt der Größe O = 5000 byte erfolgreich (d.h. inklusive der letzten Bestätigung) zu übertragen? Verwenden sie für Ihre Berechnungen das Ergebnis aus Teilaufgabe c), ansonsten können sie für die RTT den Wert d RT T = 9 ms annehmen. (Hinweis: Storeand-Forward) Rechnerkommunikation 9

e) (8 Punkte) Im Folgenden wird nun wieder von einer normalen TCP Verbindung (mit Fenstern) ausgegangen. Ändern Sie die in der Vorlesung hergeleitete Formel 2 für die Gesamtverzögerungszeit, die benötigt wird, um ein Objekt der Größe O zu übertragen, von dem Fall einer direkten Verbindung auf die in Abbildung 1 gezeigten Netzwerk-Topologie um. Gehen Sie davon aus, dass die Anzahl der Wartezeiten P bekannt ist. Geben Sie im Weiteren an, ob sich, für die Berechnung von P, K oder/und Q ändert. Begründen Sie für beide Variablen Ihre Antwort. Gehen Sie davon aus, das die RTT als Konstante bekannt ist. Berechnen Sie, wie lange es dauert, bis ein Objekt der Größe O = 3750 bytes auf Host C verfügbar ist. Verwenden sie für Ihre Berechnungen das Ergebnis aus Teilaufgabe c), ansonsten können sie für die RTT den Wert d RT T = 9 ms annehmen. (Hinweis: Die benötigte Zeit kann auch händisch ausgerechnet werden.) d = 2RT T + O ( R + P RT T + L ) ( 2 P 1 ) L R R (2) Rechnerkommunikation 10

3 Socket-Programmierung (26 Punkte) Ein Dienst wartet auf Datagramm-Pakete, die eine Temperatur enthalten. Empfängt der Dienst ein Paket, ruft er handle(packet) von BehaviorImpl auf und verhält er sich wie im Statechart (Abb. 3) dargestellt. Aufgabe: Realisieren Sie dieses Verhalten in JAVA. Leiten Sie dazu die Klasse BehaviorImpl von der Klasse Bahavior ab und implementieren Sie die Methoden handle(...) und encode(...) unter Berücksichtigung folgender Aspekte: byte[] encode(int value) soll einen Integer in das byte[] der String-Darstellung umwandeln (vgl. Übung); sende... via... im Statechart beinhaltet alle Vorbereitungen zum Versenden der Nachticht, das Versenden der Nachricht, sowie das saubere Beenden des Sendevorgangs; Verwenden Sie hierfür die Konstanten SERVER, PORT und ALARM von Behavior; Verwenden Sie die Methoden decode(...) und mean(...) von Behavior wie im Statechart angegeben; Exceptions müssen berücksichtigt, aber nicht behandelt werden. aus packet extrahiert wait handle(packet) / int temperature = decode(data); int mean = mean(temperature); [temperature < mean] / byte[] tolog = encode(mean); sende tolog via UDP an (SERVER, PORT); [temperature >= mean] / sende ALARM via TCP an (SERVER,PORT); Abbildung 3: Verhalten des Servers. import java. net. DatagramPacket ; public abstract class Behavior { final static String SERVER = "192.3.45.2"; // Server - Adresse final static int PORT = 12345; // Server - Port final static String ALARM = " Achtung "; // Alarmnachricht int decode ( byte [] data ) { xxx } // Umwandeln byte [] -- > int int mean ( int value ) { xxx } // Berechnung eines Mittelwerts // Abarbeiten eines Datgramm - Pakets!!! TODO!!! abstract void handle ( DatagramPacket packet ) throws Exception ; } // Umwandeln int --> byte []!!! TODO!!! abstract byte [] encode ( int value ) throws Exception ; Rechnerkommunikation 11

Rechnerkommunikation 12

4 Routingverfahren (16 Punkte) Wie in Abbildung 4 dargestellt hat der Knoten A in einem Netzwerk die Nachbarn B und C und kennt die angegebenen Kosten für die jeweiligen direkten Verbindungen. Weiterhin gibt es die Knoten D und E im Netzwerk, die A nur über seine direkten Nachbar erreichen kann. Der Distanz-Vektor-Routing-Algorithmus hat bereits die Konvergenz erreicht. A 5 2 B C...... Abbildung 4: Netzwerk a) (1 Punkt) Vervollständigen sie zunächst die Distanztabelle Tabelle 2, die der Knoten A vorhält. Die Notation ist wie in der Vorlesung gewählt. D.h. nh A ( ) bezeichnet den Vektor der aktuellen nächsten Knoten auf den kürzesten Wegen von A zu den anderen Knoten. D A ( ) beschreibt die dafür anfallenden Kosten. von A zu D A ( ) nh A ( ) A B C D 5 C E 7 B Tabelle 2: Distanztabelle von A Rechnerkommunikation 13

b) (5 Punkte) Im folgenden Schritt wird nun eine neue Verbindung eingeführt. Knoten A und E besitzen nun eine direkte Verbindung mit den Kosten 1. Tabelle 3 beschreibt den Distanzvektor, den Knoten E an Knoten A sendet. Tragen Sie die neue Distanztabelle von A in Tabelle 4 ein. Parallel dazu sendet auch Knoten A an Knoten E seine Informationen. Ändert sich für den Knoten E etwas in seinem Distanzvektor? Wenn ja, dann streichen sie die Kosten für den jeweiligen Knoten in Tabelle 3 und ersetzen ihn durch den neuen Wert. von E zu D E ( ) A 1 B 2 C 6 D 3 E 0 Tabelle 3: Distanzvektor von E von A zu D A ( ) nh A ( ) A B C D E Tabelle 4: Distanztabelle von A c) (6 Punkte) Knoten A sendet im nächsten Schritt seine Änderung an seine direkten Nachbarkonten. Wie ändern sich die Distanztabellen, wenn sie vorher gemäß Tabelle 5 gefüllt waren und kein anderer Knoten neue Informationen verschickt. Tragen Sie die Änderungen in Tabelle 6 ein. Ändert sich im darauf folgenden Schritt die Distanztabelle von A, wenn nur noch Knoten B und C aktualisierte Informationen aus dem Schritt zuvor im Netzwerk verteilen? Tragen Sie die Änderungen ggf. in Tabelle 7 ein oder streichen Sie sie durch. von B zu D B ( ) nh B ( ) von C zu D C ( ) nh C ( ) A 5 A A 2 A B 0 - B 4 D C 4 D C 0 - D 1 D D 3 D E 2 E E 6 D Tabelle 5: Distanztabelle von B und C (vorher) von B zu D B ( ) nh B ( ) von C zu D C ( ) nh C ( ) A A B B C C D D E E Tabelle 6: Distanztabelle von B und C (nachher) Rechnerkommunikation 14

von A zu D A ( ) nh A ( ) A B C D E Tabelle 7: Distanztabelle von A d) (4 Punkte) Vervollständigen Sie anschließend das gesamte Netzwerk anhand der in den Tabellen verfügbaren Informationen (inklusive der Verbindungskosten) in Abbildung 5. Für jede falsche Verbindung wird ein Punkt abgezogen. A 5 2 B C E D Abbildung 5: Gesamtes Netzwerk Rechnerkommunikation 15

Zusatzblatt Rechnerkommunikation 16

Zusatzblatt Rechnerkommunikation 17

ARBEITSKOPIE: Verzögerungszeiten In folgenden wird von der Netzwerk-Topologie gemäß Abbildung 6 ausgegangen. Host C und Host S können nur indirekt über Host G miteinander kommunizieren. Mit Host G sind noch weitere Netzwerkteilnehmer verbunden, die ebenfalls Daten mit Host S austauschen wollen. Dadurch entsteht ein sogenannter bottleneck (Engpass) der dazu führt, dass alle Pakete, die über Host G zu Host S gesendet werden, in einer Warteschlange zwischengespeichert werden müssen. Alle anderen Verbindungen müssen nicht gepuffert werden. Pakete benötigen in den einzelnen Knoten keine Verarbeitungszeit. Gehen Sie weiterhin davon aus, dass alle Links symmetrisch sind und die Warteschlange nie überläuft. Ein Paketverlust tritt ebenfalls nicht auf. Verwenden Sie für Ihre Berechnungen die Werte gemäß Tabelle 8. Für die Warteschlangenverzögerung können Sie von einer konstanten mittleren Verzögerung, die gemäß Formel 3 berechnet werden kann, ausgehen. Die Ausbreitungsverzögerung für den Link zwischen Host C und G ist so gering, dass sie vernachlässigt werden kann (idealisiert: l 1 = 0 m). d queue = ρl R(1 ρ) (3) Ausbreitungsgeschwindigkeit: Leitungslängen: Raten: Paketlänge: c = 2 10 8 m s l 1 = 0 m l 2 = 200 km R 1 = 100 Mbit s R 2 = 1 Mbit s L = 1250 Byte Verkehrsintensität: ρ = 1 3 Tabelle 8: Konstanten... R 1 l 1 R 1 Host C Host G Host S l 1 R 1 l 1 R 2 l 2... Abbildung 6: Netzwerk-Topologie Rechnerkommunikation 18

ARBEITSKOPIE: Socket-Programmierung Ein Dienst wartet auf Datagramm-Pakete, die eine Temperatur enthalten. Empfängt der Dienst ein Paket, ruft er handle(packet) von BehaviorImpl auf und verhält er sich wie im Statechart (Abb. 7) dargestellt. Aufgabe: Realisieren Sie dieses Verhalten in JAVA. Leiten Sie dazu die Klasse BehaviorImpl von der Klasse Bahavior ab und implementieren Sie die Methoden handle(...) und encode(...) unter Berücksichtigung folgender Aspekte: byte[] encode(int value) soll einen Integer in das byte[] der String-Darstellung umwandeln (vgl. Übung); sende... via... im Statechart beinhaltet alle Vorbereitungen zum Versenden der Nachticht, das Versenden der Nachricht, sowie das saubere Beenden des Sendevorgangs; Verwenden Sie hierfür die Konstanten SERVER, PORT und ALARM von Behavior; Verwenden Sie die Methoden decode(...) und mean(...) von Behavior wie im Statechart angegeben; Exceptions müssen berücksichtigt, aber nicht behandelt werden. aus packet extrahiert wait handle(packet) / int temperature = decode(data); int mean = mean(temperature); [temperature < mean] / byte[] tolog = encode(mean); sende tolog via UDP an (SERVER, PORT); [temperature >= mean] / sende ALARM via TCP an (SERVER,PORT); Abbildung 7: Verhalten des Servers. import java. net. DatagramPacket ; public abstract class Behavior { final static String SERVER = "192.3.45.2"; // Server - Adresse final static int PORT = 12345; // Server - Port final static String ALARM = " Achtung "; // Alarmnachricht int decode ( byte [] data ) { xxx } // Umwandeln byte [] -- > int int mean ( int value ) { xxx } // Berechnung eines Mittelwerts // Abarbeiten eines Datgramm - Pakets!!! TODO!!! abstract void handle ( DatagramPacket packet ) throws Exception ; } // Umwandeln int --> byte []!!! TODO!!! abstract byte [] encode ( int value ) throws Exception ; Rechnerkommunikation 19