diff --git a/Writerside/images/image_866.png b/Writerside/images/image_866.png new file mode 100644 index 0000000..a34b31f Binary files /dev/null and b/Writerside/images/image_866.png differ diff --git a/Writerside/in.tree b/Writerside/in.tree index ec3628f..aa93796 100644 --- a/Writerside/in.tree +++ b/Writerside/in.tree @@ -101,13 +101,19 @@ - - - - - - + + + + + + + + + + + + @@ -129,6 +135,7 @@ + diff --git a/Writerside/topics/04/Rechnernetze/00_RNIntroduction.md b/Writerside/topics/04/Rechnernetze/Teil-1/00_RNIntroduction.md similarity index 100% rename from Writerside/topics/04/Rechnernetze/00_RNIntroduction.md rename to Writerside/topics/04/Rechnernetze/Teil-1/00_RNIntroduction.md diff --git a/Writerside/topics/04/Rechnernetze/01_Internetworking.md b/Writerside/topics/04/Rechnernetze/Teil-1/01_Internetworking.md similarity index 100% rename from Writerside/topics/04/Rechnernetze/01_Internetworking.md rename to Writerside/topics/04/Rechnernetze/Teil-1/01_Internetworking.md diff --git a/Writerside/topics/04/Rechnernetze/02_HW-BausteineUndVerkabelung.md b/Writerside/topics/04/Rechnernetze/Teil-1/02_HW-BausteineUndVerkabelung.md similarity index 100% rename from Writerside/topics/04/Rechnernetze/02_HW-BausteineUndVerkabelung.md rename to Writerside/topics/04/Rechnernetze/Teil-1/02_HW-BausteineUndVerkabelung.md diff --git a/Writerside/topics/04/Rechnernetze/03_GrundlagenNetzwerke_Ethernet.md b/Writerside/topics/04/Rechnernetze/Teil-1/03_GrundlagenNetzwerke_Ethernet.md similarity index 99% rename from Writerside/topics/04/Rechnernetze/03_GrundlagenNetzwerke_Ethernet.md rename to Writerside/topics/04/Rechnernetze/Teil-1/03_GrundlagenNetzwerke_Ethernet.md index ffc52b5..3b9e78d 100644 --- a/Writerside/topics/04/Rechnernetze/03_GrundlagenNetzwerke_Ethernet.md +++ b/Writerside/topics/04/Rechnernetze/Teil-1/03_GrundlagenNetzwerke_Ethernet.md @@ -1,4 +1,4 @@ -# Ethernet(IEEE 802.3) mit [CSMA/CD](02_HW-BausteineUndVerkabelung.md#csma-cd-protokoll) +# Ethernet(IEEE 802.3) mit CSMA/CD ## Vollduplex vs Halbduplex ![image_787.png](image_787.png) diff --git a/Writerside/topics/04/Rechnernetze/04_ipv4subnetting.md b/Writerside/topics/04/Rechnernetze/Teil-1/04_ipv4subnetting.md similarity index 100% rename from Writerside/topics/04/Rechnernetze/04_ipv4subnetting.md rename to Writerside/topics/04/Rechnernetze/Teil-1/04_ipv4subnetting.md diff --git a/Writerside/topics/04/Rechnernetze/05_SwitchingVlanUndMehr.md b/Writerside/topics/04/Rechnernetze/Teil-1/05_SwitchingVlanUndMehr.md similarity index 100% rename from Writerside/topics/04/Rechnernetze/05_SwitchingVlanUndMehr.md rename to Writerside/topics/04/Rechnernetze/Teil-1/05_SwitchingVlanUndMehr.md diff --git a/Writerside/topics/04/Rechnernetze/06_ipRoutingIPQoS.md b/Writerside/topics/04/Rechnernetze/Teil-1/06_ipRoutingIPQoS.md similarity index 100% rename from Writerside/topics/04/Rechnernetze/06_ipRoutingIPQoS.md rename to Writerside/topics/04/Rechnernetze/Teil-1/06_ipRoutingIPQoS.md diff --git a/Writerside/topics/04/Rechnernetze/Teil-2/12_EndeZuEnde_UDP_TCP.md b/Writerside/topics/04/Rechnernetze/Teil-2/12_EndeZuEnde_UDP_TCP.md new file mode 100644 index 0000000..2826440 --- /dev/null +++ b/Writerside/topics/04/Rechnernetze/Teil-2/12_EndeZuEnde_UDP_TCP.md @@ -0,0 +1,23 @@ +# Ende-zu-Ende Protokolle: UDP und TCP +## TCP +> Zuverlässiger Byte-Strom mit integrierter Flusskontrolle + + +### Ausgangslage für eine (virtuelle) TCP-Verbindung +![image_866.png](image_866.png) + +- MSS (Maximum Segment Size) + - maximale Größe eines TCP-Segments (NUR Daten, ohne Header) + - wird bei Verbindungsaufbau ausgehandelt + - abhängig von der MTU (Maximum Transmission Unit) des darunterliegenden Netzwerks + +## TCP Sequenznummern +- Sequenznummer eines TCP-Segments + - Bytestromnummer des ersten Bytes im Segment + - wird bei Verbindungsaufbau ausgehandelt + +## TCP Bestätigungsnummern +- Bestätigungsnummer eines TCP-Segments + - Bytestromnummer des nächsten erwarteten Bytes + - Als Quittungsnummer wird gesetzt: + - ACK-Nummer (von Host B) = fehlerfrei empfangene Squenznummer + Größe der Nutzdaten in Byte diff --git a/Writerside/topics/04/Theoretische Informatik/Hausaufgaben/ti_hausaufgabe7.md b/Writerside/topics/04/Theoretische Informatik/Hausaufgaben/ti_hausaufgabe7.md new file mode 100644 index 0000000..7ff5b9b --- /dev/null +++ b/Writerside/topics/04/Theoretische Informatik/Hausaufgaben/ti_hausaufgabe7.md @@ -0,0 +1,131 @@ +# Übungsblatt 7 +> Wenzel Schwan (1125033), Paul Kneidl (1125219), David Schirrmeister (1125746), Michelle Klein (1126422) + +## Übung 1 +Betrachten Sie folgende Grammatik: +$$ +G : \quad S \Rightarrow abSc \mid bT \\ +T \Rightarrow bT \mid bU \\ +U \Rightarrow b \mid c +$$ + +### 1(a) +Geben Sie Ableitungen (Folge von 1-Schritt-Ableitungen) für jedes der folgenden Wörter an: + +- (i) $$w_1 = bbbc$$ + - $S → bT → bbT → bbbU → bbbc$ +- (ii) $$w_2 = ababbbbcc$$ + - $S → abSc → ababScc → ababbTcc → ababbbUcc → ababbbbcc$ +- (iii) $$w_3 = abbbcc$$ + - $S → abSc → abbTc → abbbUc → abbbcc$ + + +### 1(b) +Welche Sprache wird von Grammatik $G$ erzeugt? + +Wörter, die mit beliebig vielen $ab$ beginnen, gefolgt von einer beliebigen Anzahl von $b$ und enden mit einer beliebigen Anzahl von $c$, mindestens aber so viele, wie a, maximal eins mehr. + +## Übung 2 +### 2(a) +Geben Sie für jede der folgenden Sprachen eine Grammatik mit höchstens 7 Regeln an, welche die jeweilige Sprache erzeugt, und begründen Sie die Korrektheit Ihrer Grammatik. + +- (i) $$L_1 = \{ w \in \{0,1\}^* \mid w \text{ ist ein Palindrom mit durch 4 teilbarer Länge} \}$$ + - $S → 00S00 | 01S10 | 10S01 | 11S11 | ε$ +- (ii) $$L_2 = \{ w \in \{0,1\}^* \mid \#1(w) \geq \#0(w) \}$$ + - $S → 1A | 0B | ε$ + - $A → 1A | 0S | ε$ + - $B → 1A$ +- (iii) $$L_3 = \{ w \in \{0,1\}^* \mid \#0(w) \leq 2 \}$$ + - $S → 1S | 0A | ε$ + - $A → 1A | 0B | ε$ + - $B → 1B | ε$ + + +## Übung 3 +In den Vorlesungsfolien zu „Kapitel 5: Grundlagen formaler Grammatiken“ finden Sie die kontextfreie Grammatik $G_{\text{Tags}}$. +Diese benutzt mehrere $\varepsilon$-Regeln der Form $V \Rightarrow \varepsilon$ für Variablen $V$. + +Passen Sie die Grammatik $G_{\text{Tags}}$ so an (ohne die erzeugte Sprache zu ändern), dass $G_{\text{Tags}}$ weiterhin kontextfrei ist und $S \Rightarrow \varepsilon$ die einzige $\varepsilon$-Regel ist. +**Hinweis:** Es reicht, das Vorgehen zu beschreiben. Eine vollständige Neudefinition der Grammatik ist nicht notwendig (aber erlaubt). + +S zu $S → S' | ε$ ändern, wobei $S'$ eine neue Variable ist, die alle Regeln von $S$ außer der Regel $S \Rightarrow \varepsilon$ enthält. +In den restlichen Regeln das ε durch ein S' ersetzen, sodass die Regeln nur noch auf S' enden. Dadurch können beliebig viele Elemente hinzugefügt werden, ohne dass die Grammatik ihre kontextfreie Eigenschaft verliert und S → ε ist die einzige ε-Regel. + +## Übung 4 +Vergleichen Sie die Definition von **regulären Grammatiken** aus den Vorlesungsfolien (Definition 5.5) mit der Definition von **rechtslinearen Grammatiken** aus dem Skript (Definitionen 3.6 und 3.7), indem Sie folgende Fragen beantworten: + +### 4(a) +Beschreiben Sie in eigenen Worten, worin sich beide Definitionen unterscheiden. + +Eine reguläre Grammatik erlaubt Produktionen der Form: +- rechtslinear: A→aB oder A→a +- linkslinear: A→Ba oder A→a +- Oder eine Kombination aus beiden – also: entweder links- oder rechtslinear, gemischt erlaubt. + +Eine rechtslineare Grammatik erlaubt nur Produktionen der Form: +- A→aB oder A→aA +- d.h. Nichtterminale dürfen nur ganz rechts stehen, es ist keine Mischung oder Linkslinearität erlaubt. + +### 4(b) +Geben Sie eine Grammatik an, die nach diesen Definitionen regulär, aber nicht rechtslinear ist. + +$S → aS | Sb | ε$ + + +### 4(c) (Diskussionsaufgabe für die Präsenzübung) +Bereiten Sie diese Aufgabe vor, indem Sie in Ihrer Abgabegruppe darüber diskutieren. +Sie müssen für diese Teilaufgabe **keine schriftliche Lösung abgeben** (machen Sie sich aber ruhig Notizen für die Diskussion in der Präsenzübung). + +Betrachten Sie die Definition einer regulären Sprache (Definition 5.10) und die Definition einer rechtslinearen Sprache (Definition 3.8): + +- (i) Erklären Sie, warum jede **rechtslineare Sprache** auch **regulär** ist. + - Struktur entspricht Übergangsfunktion eines endlichen Automaten, daher ist jede rechtslineare Sprache auch regulär. + - Man kann einen äquivalenten DEA konstruieren, der die gleiche Sprache akzeptiert. +- (ii) Erklären Sie, warum jede **reguläre Sprache** auch **rechtslinear** ist. + - Jede reguläre Sprache wird von einem DEA akzeptiert + - Zu jedem DEA kann man eine rechtslineare Grammatik konstruieren + - Zustände = Nichtterminale + - Übergänge = Produktionen der Form A → aB + - Akzeptierende Zustände = Produktionen der Form A → a oder A → ε + + + +## Übung 5 +Betrachten Sie folgende Grammatik: +$$ +G: \quad S \Rightarrow ABS \mid ACS \mid \varepsilon \\ +AB \Rightarrow BA,\quad AC \Rightarrow CA,\quad BC \Rightarrow CB \\ +A \Rightarrow a,\quad B \Rightarrow b,\quad C \Rightarrow c +$$ + +### 5(a) +Leiten Sie nachvollziehbar die Wörter +$$w_1 = abac,\quad w_2 = cbaa,\quad w_3 = baba,\quad w_4 = bbbaaaac$$ +ab. + +- abac + - $S → ABS → ABACS → ABAC → aBAC → abAC → abaC → abac$ +- cbaa + - $S → ACS → ACABS → ACAB → CAAB → CABA → CBAA → cBAA → cbAA → cbaA → cbaa$ +- baba + - $S → ABS → ABABS → ABAB → BAAB → BABA → bABA → baBA → babA → baba$ +- bbbaaaac + - $S → ABS → ABABS → ABABABS → ABABABACS → ABABABAC → ABABBAAC → ABBABAAC → ABBBAAAC → BABBAAAC → BBABAAAC → BBBAAAAC → ... → bbbaaaac$ + - ... = $A → a, B → b, C → c$ + +### 5(b) +Wie lautet die von $G$ erzeugte Sprache $L(G)$? + +Die von $G$ erzeugte Sprache $L(G)$ besteht aus Wörtern, die aus den Buchstaben $a$, $b$ und $c$ bestehen und in denen die Buchstaben in beliebiger Reihenfolge angeordnet sind, solange die Anzahl der Buchstaben $a$ = $b$ + $c$ ist. + +### 5(c) +Die gezeigte Grammatik ist nach der Definition aus der Vorlesung (siehe Folien) **nicht kontextsensitiv**. Erklären Sie weshalb. + +Da auf der rechten Seite ebenfalls die Startvariable $S$ vorkommt, ist die Grammatik nicht kontextsensitiv. + +### 5(d) (Bonusaufgabe) +Wandeln Sie die Grammatik $G$ in eine **kontextsensitive Grammatik** $G'$ um, so dass $$L(G') = L(G)$$ gilt. + +**Hinweis:** +Überlegen Sie sich zunächst, **welche Regeln die Kontextsensitivität verletzen**. +Ersetzen Sie diese Regeln dann jeweils durch eine oder mehrere neue Regeln (ggf. mit neuen Variablen), die **kontextsensitiv sind** und denselben Effekt erzielen. \ No newline at end of file