KLAUSUR 2008.September.12 (inkl. Lösungsversuch)

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

KLAUSUR 2008.September.12 (inkl. Lösungsversuch)
Hier die “Lösung” für die Klausur vom September 2008. Keine Garantie auf Richtigkeit.

1. Allgemeine Fragen
a) Nr.5: Anwendungsschicht - Dateitransfer
Nr.4: Transportschicht - Überlastkontrolle
Nr.3: Netzwerkschicht (Vermittlungsschicht) - Wegewahl
Nr.2: Verbindungsschicht (Sicherungsschicht) - Medienzugriff
Nr.1: physikalische Schicht (Bitübertragungsschicht) - Modulation
b) Internettelefonie
c) 3, 3, 1, 1
d) Router führen ein Longest-Prefix-Match durch:
Sie vergleichen die Adresse mit Übereinstimmungen in der Weiterleitungstabelle und wählen diejenige, bei denen die meisten Bits übereinstimmen.
e) falls W < 1+2a: S = W / (1+2a), sonst S = 1
a_LAN < a_SAT => S_LAN > S_SAT
außerdem: bei LAN typischerweise W > 1+2a => S = 1 (Maximalwert)
f) 128.128.255.255 = 10000000.10000000.11111111.11111111
10 => Klasse B => 16 Bits Netzwerkteil, 16 Bits Hostteil
10000000.10000000 = Netzwerkteil
11111111.11111111 = Hostteil
g) fehlt
h) Anzahl gesendeter Bits während sich das erste Bit vom Sender zum Empfänger ausbreitet.
i) fehlt
j) fehlt

2. Transportschicht
a)
b)

3. Socket-Programmierung

import java.io.*;
import java.net.*;

public class ProxyRequest extends Request {
     private final String CRLF="\r\n";
     private final String RESPONSE = "HTTP/1.0 404 Not Found" + CRLF + CRLF;

     protected void handle() throws Exception {
          String request = "";
          String tmp;
          String serverName = ""; // Adresse des Servers
          int serverPort = 80; // Port des Servers
          cOut = client.getOutputStream();
          cIn = new BufferedReader(new InputStreamReader(client.getInputStream()));
          
          while((tmp = cIn.readLine()).length() != 0) {
               if(tmp.contains("Host:")) {
                    String[] erg = tmp.split(":");
                    serverName = erg[1].trim();
               }
               request += (tmp + CRLF);
          }

          request += CRLF;
          
          try {
               server = new Socket(serverName, serverPort);
               sOut = new DataOutputStream(server.getOutputStream());
               sIn = server.getInputStream();
               sOut.writeBytes(request);
               sOut.flush();
          } catch(Exception e) {
               cOut.write(RESPONSE.getBytes(), 0, RESPONSE.length());
               return;
          }

          byte[] data = new byte[BUFFER];
          int length = −1;

          while((length = sIn.read(data)) != −1) {
               cOut.write(data, 0, length);
          }

          cOut.flush();
     } //Ende handle()
} //Ende ProxyRequest

4. Routingverfahren
siehe hier: https://fsi.informatik.uni-erlangen.de/forum/post/84993 (Aufgabe 5)

5. Verbindungsschicht
a)
b)

Attachment:
klausur-2008-09.pdf: https://fsi.cs.fau.de/unb-attachments/post_85029/klausur-2008-09.pdf


Aufgabe 2, 3 und 5 geupped.


hmm kann mir mal jemand erklären, warum bei Aufgabe 2 auf SQN=10, ein Ack=11 folgt? 0o


Die ACK, die du schickst, ist immer eins höher wie die SQN welche du erhalten hast.


hab mich ungeschickt ausgedrückt, ich meine, warum verwendet Host B immer 10 als SQN


er verschickt ja keine Daten deshalb wird seine SQN nicht erhöht.


Hat noch jemand die Graphiken, die in diesem Thread waren, und könnte sie irgendwo hochladen?