KLAUSUR 2010.April.01 (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 2010.April.01 (inkl. Lösungsversuch)
Hier die “Lösung” für die Klausur vom April 2010. Keine Garantie auf Richtigkeit.

1. Verbindungsaufbau
Keinen Schimmer

2. TCP
noch nicht bearbeitet

3. Sicherungsschicht

3.1 Empfängerchart

3.2 Senderprogramm

import java.*;

public class BehaviorImpl extends Behavior {

     void fromAbove(String data) thros NotReadyException {
          while(true) {
               if(isChannelFree()) {
                    transmit(data);
                    break;
               } else {
                    throw new NotReadyException("fail");
               }
          }
     } //Ende fromAbove()

     void rcv(int Type) {
          if(type == 2) {
               stopTimer();
          }
          if(type == 1) {
               stopTimer();
               m=0;
          }
     } //Ende rcv()

     void timeout() {
          m++;
          (rnd.nextInt(pow(2,m)-1) * TAU) was damit machen?
     } //Ende timeout()

} //Ende BehaviorImpl

3.3 Leistungsanalyse
S_A = N * P(1-p)^[2*(N-1)] = 0.18
S_C = 1 / (1+6.4a)

=> 1 / (1+6.4a) < 0.18 => 1-0.18 < 1.152a => 0.7118 < a

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

Attachment:
klausur-WS0910.pdf: https://fsi.cs.fau.de/unb-attachments/post_85001/klausur-WS0910.pdf


änder mal den Link, dass haut so nicht hin. bei [correct frame]/ fehlt noch das toAbove


meine Variante

import java.*;

public class BehaviorImpl extends Behavior {
     boolean ready=true;
     String databak;
     void fromAbove(String data) throws NotReadyException {
          if(!ready)
               throw new NotReadyException();
          else{
               ready=false;
               while(!isChannelFree()) {}
               databak=data
               transmit(data);
               startTimer(TAU);
          }
     } //Ende fromAbove()

     void rcv(int Type) {
          if(type == 2) {
               stopTimer();
               ready=true;
               fromAbhove(databak);
          }
          if(type == 1) {
               stopTimer();
               m=0;
               ready=true;
          }
     } //Ende rcv()

     void timeout() {
          m++;
          wait((rnd.nextInt(pow(2,m)-1) * TAU)) //?
          ready=true;
          fromAbhove(databak);
     } //Ende timeout()

} //Ende BehaviorImpl

fixed


meine loesung. ohne garantie auf richtigkeit.

Loesung


@Ull

schau mal wegen der RTT Berechnung auf Folie 140 Transportschicht
und nach einem TimeOut wird das CW auf 1 gesetzt, Folie 153

oh man, man muss morgen wirklich Schritt für Schritt nach dem Skript gehen, damit man nix vergisst


Kurze Frage hier, wir ham die Klausur auch gerade nochmal angeschaut.

Bei den ARP Requests, brauch ich da die IPS oder geht das wirklich nur mit den MAC addressen?


Nach Wikipedia (http://de.wikipedia.org/wiki/Address_Resolution_Protocol#Paketformat) ist im Ziel-IP-Feld die Adresse des gesuchten Rechners angegeben, im Quell-IP-Feld logischerweise die Absender-IP.


Ich schätze mal, dass das IP Feld in dieser Aufgabe als Informationen im IP Protokoll verstanden werden soll. Da das ARP Paket aber nur auf der Sicherungsschicht „stattfindet“ enthällt es wohl keinen IP Header.

Das wäre zumindest meine Interpretation


Ich bin mir da eben nicht sicher, ob wir es nun eintragen sollen, oder nicht. Hat jemand da nen genaueren Hinweis?


Hat jemand eine Lösung für die gleiche Aufgabenstellung (also 1. Aufgabe) aus der Klausur WS10/11.

http://www7.informatik.uni-erlangen.de/~eckert/teaching/rechnerkommunikation-ss11/rk-ws1011.pdf


Hat jemand bei der Klausur die Leistungsanalyse (Aufgabe 2.3) gemacht?

Mein Vorschlag zur Lösung:

d = 2RTT + O/R + Summe Wartezeiten bis P1 + Summe Wartezeiten bis P2 + tau
wobei P1 = min{Q, K_1 -1} mit Q wie in der Übung/Vorlesung, K_1 = n-1 (Anzahl Wartezeiten vor dem verlorenen Fenster)
und P2 = min{Q, K_2 -1} mit selbem Q und K_2 = ceil(log2(O/L - 2^(n-1)+2) (Wartezeiten nach dem verlorenen Fenster)


d = 555ms, laut Lösung aus der Fragestunde (hoffe nur, dass ichs richtig abgeschrieben hab ^^).


Verdammt, ich komm auf 554ms…
Am Ende steht als Formel bei mir: 4RTT + O/R + tau, also 400ms + 40kBit/10Mbit/s + 150ms = 554ms

Edit: Ich glaube ich habe meinen Fehler gefunden… die Wartezeit tau startet erst, nachdem das erste Paket des verlorenen Fensters auf der Leitung liegt, oder? Dann kommen bei mir noch 1x L/R = 10kBit/10Mbit/s = 1ms dazu → 555ms :slight_smile:


Wie ich das sehe ist dein P2 leicht falsch, ich scan bissl später mal die Lösungen ein und lads hoch :slight_smile:


Was passt denn an der RTT-Berechnung von ull nicht?
Hätte ich da diese Formel:EstimatedRTT = (1-alpha) x EstimatedRTT + alpha x SampleRTT anwenden müssen? und wenn ja kanns mir jemand erklären?