This commit is contained in:
David Schirrmeister 2025-04-24 01:40:05 +02:00
parent 17a921f3cc
commit 7e2869c2c7
4 changed files with 451 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

View File

@ -96,6 +96,8 @@
</toc-element>
<toc-element toc-title="Rechnernetze">
<toc-element topic="Praktikum_Protokoll.md"/>
<toc-element topic="00_RNIntroduction.md"/>
<toc-element topic="01_Internetworking.md"/>
<toc-element topic="02_HW-BausteineUndVerkabelung.md"/>
@ -112,6 +114,8 @@
</toc-element>
<toc-element toc-title="Hausaufgaben">
<toc-element topic="ti_hausaufgabe1.md"/>
<toc-element topic="ti_hausaufgabe2.md"/>
</toc-element>
<toc-element topic="01Einleitung.md"/>
<toc-element topic="02_GrundlagenFormaleSprachen.md"/>

View File

@ -0,0 +1,126 @@
# Praktikum 1
> Michelle Klein (1126422), David Schirrmeister (1125746)
## Versuch: ICMP und RTT
### Vorbereitung
Primäres Netzwerk-Interface
```bash
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.18.188.38 netmask 255.255.240.0 broadcast 172.18.191.255
inet6 fe80::215:5dff:fe64:f4c5 prefixlen 64 scopeid 0x20<link>
ether 00:15:5d:64:f4:c5 txqueuelen 1000 (Ethernet)
RX packets 25060 bytes 37385604 (37.3 MB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1472 bytes 156608 (156.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
```
Interface-Name: `eth0`
IPv4: `172.18.188.38`
### Durchführung und Auswertung: ICMP
**Versuchsbeschreibung:**
In diesem Versuch sollen Sie das Kommando ping -i 5 -c 5 www.cern.ch benutzen und eine erste
Aufzeichnung davon mit Wireshark durchführen.
1. Mit wie vielen aufgezeichneten Paketen rechnen Sie?
- 10 Pakete
- 5 Anfragen
- 5 Antworten
2. Wieviele Pakete sind insgesamt wirklich aufgezeichnet worden?
- 10 Pakete
3. Warum ergibt sich da einen Unterschied?
- es ergibt sich kein Unterschied
4. Wie lautet der Filter?
- `Strg + /`
- `icmp`
5. Können Sie ”Ihre“ ICMP-Pakete identifizieren?
- ICMP Pakete, welche in der Info `request` enthalten
6. Wie viele ICMP-Pakete sehen Sie?
- 10 ICMP Pakete
7. Hätten Sie mit dieser Anzahl von ICMP-Paketen gerechnet?
- ja
### Durchführung und Auswertung: RTT
| Zeitstempel request | Zeitstempel reply | RTT [µs] |
|---------------------|-------------------|----------|
| 606338 | 621931 | 15593 |
| 5612004 | 5628981 | 16977 |
| 10617131 | 10634138 | 17007 |
| 15622287 | 15640563 | 18276 |
| 20628685 | 20647957 | 19272 |
Durchschnitt: 17425 [µs]
Standardabweichung: 1402,431995 [µs]
```mermaid
xychart-beta
title "RTT Time per Packet-Pair"
x-axis "Packet Pair" [1,2,3,4,5]
y-axis "RTT (µs)" 15000 --> 19500
line [15593, 16977, 17007, 18276, 19272]
```
**Interpretation:**
Die RTT kann immer schwanken, aufgrund von restlichem Netzwerktraffic, CPU-Last, Routernänderung, usw. . Dadurch ist die unterschiedliche RTT zu erklären, welche in diesem Fall ansteigt.
#### Vergleich der Mittelwerte bei 3 Durchführungen
| Durchführung | Mittelwert RTT |
|--------------|----------------|
| Nr. 1 | 17425 [µs] |
| Nr. 2 | 17243,8 [µs] |
| Nr. 3 | 18503,4 [µs] |
**Interpretation:**
Die Roundtrip-Zeiten weichen ein wenig ab, sollte man mehr Versuche machen, wird diese jedoch nicht immer weiter steigen sondern etwa gleich bleiben. Sie wird beeinflusst durch div. anderen Netzwerk-Traffic, der zusätzlich anfällt.
## Vorbereitung für Laborversuche
### Versuchsaufbau:
Der Labor-PC wird über ein Ethernetkabel an den Server (Port 3) angeschlossen.
Über `sudo ifconfig enp0s31f6 192.168.8.4 netmask 255.255.255.0` wird das Netzwerk-Interface konfiguriert
**Ausgabe `ifconfig enp0s31f6`:**
```bash
enp0s31f6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.8.4 netmask 255.255.0.0 broadcast 192.168.8.255
inet6 fe80::ce96::e5ff:fe35:23be prefixlen 64 scopeid 0x20<link>
ether cc:96:e5:35:23:be txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 181 bytes 32096 (32.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19 memory 0x74000000-74020000
```
Mit `ssh vyos@192.168.8.1` und dem Passwort `vyos` kann der Computer sich mit dem Vyos-Router verbinden.
**Eingabemaske, welche sich öffnet:**
```bash
Last login: Thu Apr 17 12:37:56 2025 from 192.168.8.200
vyos@192.168.10.2-Vyos-1.3.ß-epa3:~$
```

View File

@ -0,0 +1,321 @@
# Übungsblatt 2
## Übung 1
Betrachten Sie den Automaten A aus Abbildung 1:
![image_766.png](image_766.png)
### (a) Wie lautet die formale Tupeldarstellung des Automaten?
- $A=(Σ,Q,q_s,Q_a, δ)$
- $Σ = \{x,y\}$
- $Q = \{a,b,c,d\}$
- $q_s = \{a\}$
- $Q_a = \{d\}$
- $δ:$
- | Zustand | δ(.,x) | δ(.,y) |
|---------|--------|--------|
| a | b | |
| b | c | b |
| c | d | b |
| d | d | b |
### (b) Beschreiben Sie wie der Automat die Eingabe $xyyxyx$ verarbeitet.
1. Start in Zustand $a$
- x → $δ(a,x)=b$
2. Zustand $b$
- y → $ δ(b,y)=b$
3. Zustand $b$
- y → $ δ(b,y)=b$
4. Zustand $b$
- x → $ δ(b,x)=c$
5. Zustand $c$
- y → $ δ(c,y)=b$
6. Zustand $b$
- x → $ δ(b,x)=c$
→ Endzustand: $c$, da der akzeptierende Zustand $d$ ist, wird die Eingabe nicht akzeptiert.
### (c) Nennen Sie zwei verschiedene kürzeste Wörter, die von A akzeptiert werden und die jeweils jeden Übergang (Kante) aus Abbildung 1 mindestens einmal benutzen.
$w_1 ∈ Σ^* := xyxyxxyxxx$
$w_2 ∈ Σ^* := xxyyxxyxxx$
### (d) Beschreiben Sie die von A akzeptierte Sprache sowohl informal (in Worten) als auch formal (als Teilmenge von $\{x,y\}^*$).
#### Informal:
Die von A akzeptierte Sprache muss mit x beginnen und mit xx aufhören. Dazwischen dürfen beliebig viele x und y in beliebiger Reihenfolge sein.
#### Formal:
$L_A:= \{w \space | \space w = x*a*xx, a ∈ \{x,y\}^*\}$
### (e) Automat $A$ ist unvollständig (die Übergangsfunktion ist partiell). Geben Sie einen vollständigen Automaten $A$ mit $L(A) = L(A)$ in Graphdarstellung an.
```plantuml
@startuml
left to right direction
skinparam dpi 150
skinparam state {
BackgroundColor #FFFACD
BorderColor black
FontName Helvetica
RoundCorner 30
Shadowing false
LineThickness 0
}
state a
state d##[bold]
[*] --> a
a --> b : x
a --> e : y
b --> b : y
b --> c : x
c --> b : y
c --> d : x
d --> d : x
d --> b : y
e --> e : x,y
@enduml
```
## Übung 2
Betrachten Sie die Sprache $ L = \{s ∈ Σ^* \space | \space s \space hat \space das\space Präfix\space 42\space und \space endet \space nicht \space auf \space 23 \}$
über dem Alphabet $ Σ=\{0,1,...,9\}$.
### (a) Beschreiben Sie einen vollständigen endlichen Automaten in Graphdarstellung der die Sprache L akzeptiert.
```plantuml
@startuml
left to right direction
skinparam dpi 150
skinparam state {
BackgroundColor #FFFACD
BorderColor black
FontName Helvetica
RoundCorner 30
Shadowing false
LineThickness 0
}
state c##[bold]
state d##[bold]
[*] --> a
a -up-> f : {0,...,9}\{4}
a --> b : {4}
b -up-> f : {0,...,9}\{2}
f --> f : {0,...,9}
b --> d: {2}
c --> c : {0,...,9}\{2}
c --> d : {2}
d --> c : {0,...,9}\{3}
d --> e : {3}
e --> c : {0,...,9}\{2}
e --> d : {2}
@enduml
```
### (b) Beschreiben Sie einen vollständigen endlichen Automaten in Graphdarstellung der genau die nicht-leeren Zeichenketten über dem Alphabet $Σ$ akzeptiert, die keine Wörter der Sprache L sind.
```plantuml
@startuml
left to right direction
skinparam dpi 150
skinparam state {
BackgroundColor #FFFACD
BorderColor black
FontName Helvetica
RoundCorner 30
Shadowing false
LineThickness 0
}
state f##[bold]
state b##[bold]
state e##[bold]
[*] --> a
a -up-> f : {0,...,9}\{4}
a --> b : {4}
b -up-> f : {0,...,9}\{2}
f --> f : {0,...,9}
b --> d: {2}
c --> c : {0,...,9}\{2}
c --> d : {2}
d --> c : {0,...,9}\{3}
d --> e : {3}
e --> c : {0,...,9}\{2}
e --> d : {2}
@enduml
```
## Übung 3
Beschreiben Sie für jede der nachfolgend definierten Sprachen jeweils einen endlichen
deterministischen Automaten, der die Sprache akzeptiert. Geben Sie die Automaten
dabei sowohl in der formalen Tupel- als auch in der Graphdarstellung an. Begründen1
Sie jeweils die Korrektheit Ihrer Konstruktion.
### (a) Die Sprache $L1$ aller geraden natürlichen Zahlen in Dezimaldarstellung ohne führende Null (d. h. $\{ 0, 2, 8, 42 \} ⊆ L1$ aber $\{ 02, 23 \} ∩ L1 = ∅$).
#### Tupeldarstellung (a)
- $A=(Σ,Q,q_s,Q_a, δ)$
- $Σ = \{0,...,9\}$
- $Q = \{a,b,c,d,e\}$
- $q_s = \{a\}$
- $Q_a = \{b,d\}$
- $δ:$
- | Zustand | δ(.,0) | δ(.,1) | δ(.,2) | δ(.,3) | δ(.,4) | δ(.,5) | δ(.,6) | δ(.,7) | δ(.,8) | δ(.,9) |
|---------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|
| a | b | e | d | e | d | e | d | e | d | e |
| **b** | c | c | c | c | c | c | c | c | c | c |
| c | c | c | c | c | c | c | c | c | c | c |
| **d** | d | e | d | e | d | e | d | e | d | e |
| e | d | e | d | e | d | e | d | e | d | e |
#### Graphdarstellung (a)
```plantuml
@startuml
left to right direction
skinparam dpi 150
skinparam state {
BackgroundColor #FFFACD
BorderColor black
FontName Helvetica
RoundCorner 30
Shadowing false
LineThickness 0
}
state b##[bold]
state d##[bold]
[*] --> a
a --> b : {0}
b -up-> c : {0,...,9}
b --> c : {0,...,9}
a --> d : {2,4,6,8}
a --> e : {1,3,5,7,9}
d --> e : {1,3,5,7,9}
d --> d : {0,2,4,6,8}
e --> d : {0,2,4,6,8}
e --> e : {1,3,5,7,9}
@enduml
```
#### Begründung (a)
- Startzustand a: nur 0 wird in b geschickt (direkt akzeptierend)
- Andere Ziffern (2, 4, 6, 8) leiten in d, auch akzeptierend, aber nur wenn keine führenden Nullen davor kamen
- Zustand e „hält“ ungerade Endziffern (nicht akzeptierend)
- Folgeziffern verhalten sich konsistent
### (b) Die Sprache $L2 = \{ w ∈ \{ 0, 7 \}^* \space|\space w\space enthält\space 007\space genau\space einmal\space als\space Teilwort \}$.
#### Tupeldarstellung (b)
- $A=(Σ,Q,q_s,Q_a, δ)$
- $Σ = \{0,...,9\}$
- $Q = \{a,b,c,d,e,f,g\}$
- $q_s = \{a\}$
- $Q_a = \{d\}$
- $δ:$
- | Zustand | δ(.,0) | δ(.,1) | δ(.,2) | δ(.,3) | δ(.,4) | δ(.,5) | δ(.,6) | δ(.,7) | δ(.,8) | δ(.,9) |
|---------|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|
| a | b | a | a | a | a | a | a | a | a | a |
| b | c | a | a | a | a | a | a | a | a | a |
| c | a | a | a | a | a | a | a | d | a | a |
| **d** | d | d | d | d | d | d | d | e | d | d |
| e | d | d | d | d | d | d | d | f | d | d |
| f | d | d | d | d | d | d | d | g | d | d |
| g | g | g | g | g | g | g | g | g | g | g |
#### Graphdarstellung (b)
```plantuml
@startuml
skinparam dpi 150
skinparam state {
BackgroundColor #FFFACD
BorderColor black
FontName Helvetica
RoundCorner 30
Shadowing false
LineThickness 0
}
state d##[bold]
[*] -right-> a
a -right-> b : {0}
b -right-> c : {0}
c -right-> d : {7}
d -right-> e : {0}
e -right-> f : {0}
f -right-> g : {7}
b --> a : {0,...,9}\{0}
a --> a : {0,...,9}\{0}
c --> a : {0,...,9}\{7}
d --> d : {0,...,9}\{0}
e --> d : {0,...,9}\{0}
f --> d : {0,...,9}\{7}
g --> g : {0,...,9}
@enduml
```
#### Begründung (b)
- Einmaliges Vorkommen von 007 wird erkannt und in d akzeptiert
- Zweites Vorkommen leitet in g, das nicht akzeptierend ist
- Rücksprünge für unpassende Sequenzen sind korrekt konstruiert
### (c) Die Sprache $L3 = \{ w ∈ \{ a, b \}^* \space| \space \#_a(w) ≡ \#_b(w) mod 3 \}$.
#### Tupeldarstellung (c)
- $A=(Σ,Q,q_s,Q_a, δ)$
- $Σ=\{a,b\}$
- $Q=\{q0,q1,q2\}$
- $q_s=\{q0\}$
- $Q_a=\{q0\}$
- $ δ:$
- $δ(q,a)=(q+1) \space mod \space 3,δ(q,b)=(q1) \space mod \space 3$
- | Zustand | δ(.,a) | δ(.,b) |
|---------|--------|--------|
| q0 | q1 | q2 |
| q1 | q2 | q0 |
| q2 | q0 | q1 |
#### Graphdarstellung (c)
```plantuml
@startuml
left to right direction
skinparam dpi 150
skinparam state {
BackgroundColor #FFFACD
BorderColor black
FontName Helvetica
RoundCorner 30
Shadowing false
LineThickness 0
}
state q0##[bold]
[*] -right-> q0
q0 -right-> q1 : a
q0 --> q2 : b
q1 -right-> q2: a
q1 --> q0 : b
q2 --> q0 : a
q2 --> q1 : b
@enduml
```
#### Begründung (c)
- q0 wird genau dann erreicht, wenn $\#_a ≡ \#_b mod 3$
- Übergänge sind konsistent