diff --git a/Writerside/images/image_822.png b/Writerside/images/image_822.png new file mode 100644 index 0000000..2e500fc Binary files /dev/null and b/Writerside/images/image_822.png differ diff --git a/Writerside/images/rnimage-1.png b/Writerside/images/rnimage-1.png new file mode 100644 index 0000000..cbf285d Binary files /dev/null and b/Writerside/images/rnimage-1.png differ diff --git a/Writerside/images/rnimage-2.png b/Writerside/images/rnimage-2.png new file mode 100644 index 0000000..70a0957 Binary files /dev/null and b/Writerside/images/rnimage-2.png differ diff --git a/Writerside/images/rnimage-3.png b/Writerside/images/rnimage-3.png new file mode 100644 index 0000000..af1d039 Binary files /dev/null and b/Writerside/images/rnimage-3.png differ diff --git a/Writerside/images/rnimage-4.png b/Writerside/images/rnimage-4.png new file mode 100644 index 0000000..b59b80a Binary files /dev/null and b/Writerside/images/rnimage-4.png differ diff --git a/Writerside/images/rnimage-5.png b/Writerside/images/rnimage-5.png new file mode 100644 index 0000000..3a78e47 Binary files /dev/null and b/Writerside/images/rnimage-5.png differ diff --git a/Writerside/images/rnimage.png b/Writerside/images/rnimage.png new file mode 100644 index 0000000..456f9a2 Binary files /dev/null and b/Writerside/images/rnimage.png differ diff --git a/Writerside/in.tree b/Writerside/in.tree index 16b31ac..2866487 100644 --- a/Writerside/in.tree +++ b/Writerside/in.tree @@ -100,6 +100,7 @@ + @@ -119,7 +120,8 @@ - + + diff --git a/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/Protokoll P2.md b/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/Protokoll P2.md new file mode 100644 index 0000000..6a2eb81 --- /dev/null +++ b/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/Protokoll P2.md @@ -0,0 +1,192 @@ +# Praktikum 2 +> Gruppe 2: David Schirrmeister (1125746), Michelle Klein (1126422) + +## Vorbereitung +**Unterschied zwischen Switch und Hub bei der Datenübertragung** +* Switch leitet Daten gezielt an den Empfänger weiter +* Hub sendet Daten an alle angeschlossenen Geräte (Broadcast) +* Switch arbeitet intelligenter und effizienter + +**Rolle der MAC-Adresse beim Switch** +* Switch speichert MAC-Adressen in einer Tabelle (MAC-Adress-Tabelle) +* Entscheidet anhand der MAC-Adresse, an welchen Port die Daten weitergeleitet werden + +**Verhalten bei unbekannter MAC-Adresse** +* Switch sendet das Paket an alle Ports außer dem eingehenden (Flooding) +* Sobald das Zielgerät antwortet, speichert der Switch dessen MAC-Adresse + +**Sicherheitsvorteile des Switches gegenüber dem Hub** +* Daten werden nur an das Zielgerät gesendet, nicht an alle Geräte +* Erschwert das Abhören (Sniffing) durch Unbefugte +* Reduziert die Angriffsfläche im Vergleich zum Hub + +**Vermeidung von Kollisionen im Ethernet** +* In modernen Netzwerken durch Verwendung von Switches mit Vollduplex +* In älteren Netzwerken mit CSMA/CD (Carrier Sense Multiple Access with Collision Detection) + +**Wird Ethernet bei WLAN verwendet** +* ja, jedoch nur auf den höhreren Protokollschichten +- IEEE 802.11 nutzt nicht das gleiche, physische Ethernet, orientiert sich aber auf OSI L2 stark am Ethernet-Frame-Format + +**Bedeutung und Funktion von ARP** +* ARP steht für Address Resolution Protocol +* Übersetzt IP-Adressen in MAC-Adressen +* Ermöglicht Kommunikation im lokalen Netzwerk auf Layer 2 + +**Ablauf von ARP-Request und ARP-Reply** +* Gerät sendet ARP-Request an Broadcast-Adresse mit gesuchter IP +* Zielgerät mit passender IP antwortet mit seiner MAC-Adresse (ARP-Reply) +* Absender speichert MAC-Adresse in seiner ARP-Tabelle + +## Laborversuch +### Versuchsbeschreibung +Es werden 3 PCs zunächst über je ein Ethernet-Kabel an einen Hub angeschlossen. +Diesen wird dann nach folgender Tabelle eine IP-Adresse zugewiesen: + +| Labor-PC | IP-Adresse| +|----------|-----------| +| PC 1 |192.168.1.1| +| PC 2 |192.168.1.2| +| PC 3 |192.168.1.3| + +Schließlich wird auf allen dreien eine Wireshark-Aufnahme gestartet und +von PC1 ein Ping Befehl gesendet, um zu testen ob PC2 erreichbar ist. + + + +Gleiches wird danach mit einem Switch statt des Hubs wiederholt. + +### Beobachtungen +#### Hub Ping PC1 -> PC2: +```bash +student@netlab-2023-5:~$ ping 192.168.1.2 +PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. +64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=1.66 ms +64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=1.59 ms +64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=1.54 ms +64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=1.49 ms +64 bytes from 192.168.1.2: icmp_seq=5 ttl=64 time=1.44 ms +64 bytes from 192.168.1.2: icmp_seq=6 ttl=64 time=1.45 ms +64 bytes from 192.168.1.2: icmp_seq=7 ttl=64 time=1.52 ms +64 bytes from 192.168.1.2: icmp_seq=8 ttl=64 time=1.98 ms +64 bytes from 192.168.1.2: icmp_seq=9 ttl=64 time=1.77 ms +64 bytes from 192.168.1.2: icmp_seq=10 ttl=64 time=1.71 ms +64 bytes from 192.168.1.2: icmp_seq=11 ttl=64 time=1.68 ms +64 bytes from 192.168.1.2: icmp_seq=12 ttl=64 time=1.68 ms +64 bytes from 192.168.1.2: icmp_seq=13 ttl=64 time=1.72 ms +64 bytes from 192.168.1.2: icmp_seq=14 ttl=64 time=1.76 ms +--- 192.168.1.2 ping statistics --- +14 packets transmitted, 14 received, 0% packet loss, time 13024ms +rtt min/avg/max/mdev = 1.435/1.640/1.975/0.143 ms +``` + +##### Hub Wiresharkaufzeichnung PC1: +![hub_pc1](rnimage.png) +##### Hub Wiresharkaufzeichnung PC2: +![hub_pc2](rnimage-1.png) +##### Hub Wiresharkaufzeichnung PC3: +![hub_pc3](rnimage-2.png) + + +#### Switch Ping PC1 -> PC2: +```bash +student@netlab-2023-5:~$ ping 192.168.1.2 +PING 192.168.1.2 (192.168.1.2) 56(84) bytes of data. +64 bytes from 192.168.1.2: icmp_seq=1 ttl=64 time=2.58 ms +64 bytes from 192.168.1.2: icmp_seq=2 ttl=64 time=1.79 ms +64 bytes from 192.168.1.2: icmp_seq=3 ttl=64 time=1.49 ms +64 bytes from 192.168.1.2: icmp_seq=4 ttl=64 time=1.49 ms +64 bytes from 192.168.1.2: icmp_seq=5 ttl=64 time=1.79 ms +64 bytes from 192.168.1.2: icmp_seq=6 ttl=64 time=1.59 ms +64 bytes from 192.168.1.2: icmp_seq=7 ttl=64 time=1.54 ms +64 bytes from 192.168.1.2: icmp_seq=8 ttl=64 time=1.67 ms +64 bytes from 192.168.1.2: icmp_seq=9 ttl=64 time=1.51 ms +64 bytes from 192.168.1.2: icmp_seq=10 ttl=64 time=1.36 ms +64 bytes from 192.168.1.2: icmp_seq=11 ttl=64 time=1.56 ms +64 bytes from 192.168.1.2: icmp_seq=12 ttl=64 time=1.73 ms +64 bytes from 192.168.1.2: icmp_seq=13 ttl=64 time=1.90 ms +--- 192.168.1.2 ping statistics --- +13 packets transmitted, 13 received, 0% packet loss, time 12022ms +rtt min/avg/max/mdev = 1.362/1.692/2.580/0.295 ms +``` + +##### Switch Wiresharkaufzeichnung PC1: +![switch_pc1](rnimage-3.png) +##### Switch Wiresharkaufzeichnung PC2: +![switch_pc2](rnimage-4.png) +##### Switch Wiresharkaufzeichnung PC3: +![switch_pc3](rnimage-5.png) + +### Auswertung +#### Auswertung Hub +##### prinzipieller Aufbau und Funktionsweise eines Hubs +- Multiport-Repeater (OSI L1) +- empfängt Datenpakete über einen Port und sendet sie an alle anderen Ports weiter (Broadcast) + +##### Konnten Sie Pakete zwischen PC2 und PC1 im Wireshark-Mitschnitt von PC3 beobachten? +- Ja konnten beobachtet werden ([siehe hier](#hub-wiresharkaufzeichnung-pc3)) +- Da der Hub die Pakete an alle anderen angeschlossenen Netzwerkgeräte weiterleitet, kommen sie auch bei PC3 an. + +##### Risiken und Nachteile durch Verwendung eines Hubs +- Datenrate + - Alle Geräte teilen sich die Bandbreite + - dadurch geringe effektive Datenrate pro Gerät +- Latenz + - Es können Kollisionen und Wiederholungen auftreten +- Medienzugriffe + - Kein intelligentes Zugriffsmanagement +- Sicherheit + - Jeder empfängt alle Datenpakete + - dadurch einfaches Abhören möglich + + +##### Software-Funktionen, mit denen diese Risiken vermindert werden können +- VLANs (in Switches) +- Firewall + +--- + +#### Auswertung Switch +##### Prinzipieller Aufbau und Funktionsweise +- Nimmt physikalische Trennung von Netzen vor +- Führt Fehler- und Lasttrennung durch +- Mechanismen zum Filtern implementiert +- Lernt die MAC-Quell-Adressen der aktiven Endgeräte +- Trennt Kollisions-Domänen im LAN auf Schicht 2 +- wenn Datenpakete empfangen werden, können diese gezielt weitergeleitet werden (Routing) + +##### Konnten Sie diesmal auch Pakete zwischen PC2 und PC1 im Wireshark-Mitschnitt von PC3 beobachten? +- Nein, diesmal konnten keine Pakete bei PC3 beobachtet werden ([siehe hier](#switch-wiresharkaufzeichnung-pc3)) + - Dies ist zu begründen an der Funktionalität des Switch, welche Pakete gezielt weiterleiten kann + +##### Vorteile dieser Eigenschaft hinsichtlich IT-Sicherheit +- kein einfaches Mitlesen der Nachrichten möglich + - Beim Hub Gegenteil der Fall: Alle Geräte erhalten alle Daten + +##### Können bei der Hub/Switch Kollisionen auftreten? Wann? +- Hub: + - ja, können auftreten, wenn mehrere Geräte gleichzeitig senden + - alle Geräte teilen sich das Medium (Halbduplex) +- Switch: + - nein, jedes Gerät hat eine eigene Verbindung (Vollduplex) + - Ausnahme: + - alte Switch, die noch Halbduplex arbeiten + - falsche Konfigurationen am Switch + +##### Wie verhält sich der Hub/Switch im Bezug auf Broadcasts und Kollisionsdomänen? +- Hub erweitert KD, Broadcasts +- Switch segmentiert KD, erweitert Broadcast + +##### Weiteres Medium, in dem Kollisionen auftreten können +- WLAN + + +## Nachbereitung +### Welche Sicherheitsrisiken sind mit ARP verbunden und wie kann man davor schützen? +- ARP-Spoofing + - Angreifer täuscht falsche MAC-Adresse vor + - dadurch Datenumleitung, MiM, Mitlesen möglich + - Schutzmaßnahmen: + - Statische ARP-Einträge + - Port-Security am Switch + - Dynamic ARP Inspection \ No newline at end of file diff --git a/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_hub_pc1.pcapng b/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_hub_pc1.pcapng new file mode 100644 index 0000000..a084d2b Binary files /dev/null and b/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_hub_pc1.pcapng differ diff --git a/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_hub_pc2.pcapng b/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_hub_pc2.pcapng new file mode 100644 index 0000000..a7f1112 Binary files /dev/null and b/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_hub_pc2.pcapng differ diff --git a/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_hub_pc3.pcapng b/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_hub_pc3.pcapng new file mode 100644 index 0000000..bc7e4e4 Binary files /dev/null and b/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_hub_pc3.pcapng differ diff --git a/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_switch_pc1.pcapng b/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_switch_pc1.pcapng new file mode 100644 index 0000000..cb28b45 Binary files /dev/null and b/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_switch_pc1.pcapng differ diff --git a/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_switch_pc2.pcapng b/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_switch_pc2.pcapng new file mode 100644 index 0000000..6064ccc Binary files /dev/null and b/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_switch_pc2.pcapng differ diff --git a/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_switch_pc3.pcapng b/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_switch_pc3.pcapng new file mode 100644 index 0000000..a8cb726 Binary files /dev/null and b/Writerside/topics/04/Rechnernetze/Praktikum/Praktikum2/wireshark_switch_pc3.pcapng differ diff --git a/Writerside/topics/04/Theoretische Informatik/Hausaufgaben/ti_hausufgabe3.md b/Writerside/topics/04/Theoretische Informatik/Hausaufgaben/ti_hausaufgabe3.md similarity index 100% rename from Writerside/topics/04/Theoretische Informatik/Hausaufgaben/ti_hausufgabe3.md rename to Writerside/topics/04/Theoretische Informatik/Hausaufgaben/ti_hausaufgabe3.md diff --git a/Writerside/topics/04/Theoretische Informatik/Hausaufgaben/ti_hausaufgabe4.md b/Writerside/topics/04/Theoretische Informatik/Hausaufgaben/ti_hausaufgabe4.md new file mode 100644 index 0000000..df4f765 --- /dev/null +++ b/Writerside/topics/04/Theoretische Informatik/Hausaufgaben/ti_hausaufgabe4.md @@ -0,0 +1,147 @@ +# Übungsblatt 4 +> Wenzel Schwan (1125033), Paul Kneidl (1125219), David Schirrmeister (1125746), Michelle Klein (1126422) + + +## Übung 1 +Betrachten Sie den Automaten $A$ aus Abbildung 1 über dem Alphabet $\Sigma = \{ 0, 1 \}$. +![image_822.png](image_822.png) + + +### 1(a) +Gibt es einen endlichen Automaten mit 9 Zuständen, der die Sprache $L(A)$ akzeptiert? Begründen Sie Ihre Antwort. + +ja, da man bspw. von `d` aus weitere Zustände erstellen könnte, auf die man mit `1` kommt und von dort auf dann auf `g` verweist mit `0` + +### 1(b) +Gibt es einen endlichen Automaten mit 3 Zuständen, der die Sprache $L(A)$ akzeptiert? Begründen Sie Ihre Antwort. + +Nein, da der Automat 5 Nerode-Klassen hat. + +### 1(c) +Bestimmen Sie für jeden Zustand $q$ ($q \in \{ a, b, c, d, e, f, g \}$) von Automat $A$ die Sprache (in formaler +Mengenschreibweise), die $A$ akzeptieren würde, wenn $q$ der Startzustand von $A$ wäre. + +- $L_a :=\{00*1^n, n ∈ \mathbb{N}_0 υ 1 *0^m*1^i, m ∈ \mathbb{N}_0, i ∈ \mathbb{N}\}$ +- $L_b :=\{0^n*1^m \space | \space n ∈ \mathbb{N}_0, m ∈ \mathbb{N}\}$ +- $L_c :=\{1^n \space|\space n ∈ \mathbb{N}_0\}$ +- $L_d :=\{1^n \space|\space n ∈ \mathbb{N}_0\}$ +- $L_e :=\{0*1^n \space|\space n ∈ \mathbb{N}_0 \}$ +- f, g: Müllzustand - von hier aus wird die Sprache nicht mehr akzeptiert + +### 1(d) +Bestimmen Sie alle Nerode-Klassen und den Nerode-Index der Sprache $L(A)$ und begründen Sie Ihre Antwort. +- $N_0 = N(ε) = \{\w ∈{0,1\}^*\space|\space w = ε\}$ +- $N_1 = N(1) = \{\w ∈{0,1\}^*\space|\space w = 1*0^n, n ∈ \mathbb{N}_0\}$ +- $N_2 = N(0) = \{\w ∈{0,1\}^*\space|\space w = 0\}$ +- $N_3 = N(00\spaceu\space11) = \{\w ∈{0,1\}^*\space|\space w = 1*0^n*1^m, n ∈ \mathbb{N}_0, m ∈ \mathbb{N}\ \space u \space w ∈ \{0,1\}^*\space|\space w=0*0*1^n, n ∈ \mathbb{N}_0\}$ +- $N_4 =$ Müllzustand + + + +### 1(e) +Geben Sie den Nerode-Automaten der Sprache $L(A)$ an (Graphdarstellung oder formale Tuppeldarstellung, Ihre Wahl). + +```plantuml +@startuml +scale 0.50 + +left to right direction +skinparam dpi 150 + +skinparam state { + BackgroundColor #FFFACD + BorderColor black + FontName Helvetica + RoundCorner 30 + Shadowing false + LineThickness 0 +} + + +state c##[bold] + +[*] --> a +a --> b: 1 +a --> e: 0 +b --> b: 0 +b --> c: 1 +c --> c: 1 +e --> c: 0 +e --> f: 1 +c --> f: 0 +f --> f: 0,1 + + + +@enduml +``` + +## Übung 2 +Betrachten Sie die folgenden Sprachen: +- $L_1 = \{ 111 \cdot s \mid s \in \{ 0,1,2,4 \}^* \}$ +- $L_2 = \{ s \cdot xx \mid s \in \{ x,y,z \}^* \}$ +- $L_3 = \{ 0^n 1^0 2^n \mid n \in \mathbb{N} \}$ +- $L_4 = \{ x^n y^z n^m \mid n,m \in \mathbb{N} \}$ + +### 2(a) +Welche der angegebenen Sprachen haben einen Nerode-Index größer oder gleich vier? Begründen Sie für die von Ihnen +ausgewählten Sprachen Ihre Antwort. + +- $L_1$ - Nerode-Index=4 + - leere Menge, 3 weitere für jede eins & einen Müllzustand in den ein akzeptiertes Wort nicht mehr zu erreichen ist, da es z.B. mit einer 0 anfängt +- $L_2$ - Nerode-Index=3 + - leere Menge&Wörter ohne x/xx am Ende, Wörter die mit x enden, Wörter die mit xx enden (akzeptierter Zustand) +- $L_3$ - Nerode-Index=∞ + - um n = n = n zu unterscheiden braucht man unendlich Nerode-Klassen +- $L_4$ - Nerode Index ∞ + - min so viele z+1 wie x + - gleiches wie bei $L_3$, es kommt auf die Anzahl x an & es gibt ∞ Optionen + + +### 2(b) +Welche der angegebenen Sprachen haben einen endlichen Nerode-Index? Begründen Sie für die von Ihnen ausgewählten +Sprachen Ihre Antwort. + +Wie in a schon beschrieben haben $L_1$ und $L_2$ einen endlichen Nerode-Index. +Bei $L_1$ muss der Präfix untersucht werden und der Rest ist egal, somit ist dies mit 4 Zuständen möglich +Bei $L_2$ muss der Suffix untersucht werden, somit ist dies mit 3 Zuständen möglich + +### 2(c) +Für welche der angegebenen Sprachen existiert kein endlicher Automat, der die Sprache akzeptiert? Begründen Sie für die +von Ihnen ausgewählten Sprachen Ihre Antwort. + +Wie in a beschrieben existiert bei $L_3$ und $L_4$ kein endlicher Automat, da beide einen unendlichen +Nerode-Index haben. Beide Automaten benötigen ∞ Zustände um n zu speichern + +## Übung 3 + +Betrachten Sie die folgenden Sprachen über dem Alphabet $\Sigma = \{ 0, 1, 2 \}$: + +- $L_1 = \{ 0^n 1^m \mid n,m \in \mathbb{N} \} \cup \{ 0^n 2^m \mid n,m \in \mathbb{N} \}$ +- $L_2 = \{ 0^n 1^m \mid n,m \in \mathbb{N} \} \cup \{ 2^n 1^m \mid n,m \in \mathbb{N} \}$ +- $L_3 = \{ s \in \Sigma^* \mid \exists s_1 \in \Sigma^* : s = 2 \cdot s_1 \wedge \forall s_2 \in \Sigma^* : s \neq s_2 \cdot 00 \}$ + +Für welche der angegebenen Sprachen gilt, dass **jeder** endliche Automat, der die Sprache akzeptiert, **mehr als einen +akzeptierenden Zustand** hat? Begründen Sie Ihre Antwort für jede der drei Sprachen. + +- $L_1$ + - Es gibt mehr als 2 akzeptierende Zustände, da ein akzeptiertes Wort immer mit beliebig vielen 0 anfängt, aber dann entweder mit beliebig vielen 1 oder 2 endet, wodurch 2 akzeptierte Zustände benötigt werden. +- $L_2$ + - Ein akzeptierter Zustand reicht, da ein Wort zwar unterschiedlich anfängt, aber am Ende immer mit einer beliebigen Zahl 1 aufhört, wodurch alle vorherigen Schritte in einem Zustand zusammengeführt werden können. +- $L_3$ + - Es sind mehr als ein akzeptierter Zustand benötigt, da man einen Zustand benötigt für den Fall, dass das Wort mit nur einer 0 endet und einen für den Fall, dass das Wort mit keiner 0 endet. + + +## Übung 4 + +Benutzen Sie das Kochrezept aus der Vorlesung, um zu zeigen, dass die Sprache $L = \{ a^n b^n c^n \mid n \in \mathbb{N} +\}$ von **keinem endlichen Automaten** akzeptiert wird. + + +- $L = \{a^n,b^n,c^n\space|\space n ∈ \mathbb{N}\}$ +- definiere $X=\{a^n\space|\space n ∈ \mathbb{N}\}$ +- seien $u = a^i, v=a^j ∈ X mit i \not= j$ +- dann gilt für $w = b^i*c^i$: + - $u*w=a^i*b^i*c^i ∈ L$ + - $u*v=a^j*b^j*c^j \not ∈ L$ +- → $L-Index ≥ |X| = ∞$, sodass kein DEA $L$ akzeptiert \ No newline at end of file