02 Netzwerkprogrammierung Flashcards

(46 cards)

1
Q

Definition

Was sind Kommunikationspartner?

Wer? Wieviele?

A

“Kommunikationspartner sind die Beteiligten einer Kommunikation; die Anzahl kann 1:1

1:n

m:1 oder n:m sein.”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Abgrenzung

Unterschied direkte vs. indirekte Adressierung?

Adressierung

A

“Direkt: Alle kennen alle (symmetrisch) oder Sender kennt Empfänger (asymmetrisch). Indirekt: Über zwischengeschaltete Instanz (~Broker).”

Indirekt entkoppelt Sender/Empfänger.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Abgrenzung

Unterschied indirekt vs. implizit adressiert?

Adressierung

A

“Indirekt: Vermittelt über Zwischeninstanz. Implizit: Kommunikation im lokalen Netzwerk per Broadcast.”

Implizit = Broadcast im LAN.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Verständnis

Warum indirekte Adressierung nutzen?

Vorteile

A

“Verbesserte Modularität; erweiterte Zuordnung (1:n

m:1

n:m); transparente Restrukturierung; Replikation; Abfangen von Ausfällen.”

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Architektur/Zuordnung

Aufgaben einer Zwischeninstanz?

Broker

A

“Weiterleiten; Speichern und weiterleiten; Nachrichten transformieren.”

Kernfunktionen der indirekten Adressierung.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Definition

Was ist das Muster One Way?

Kommunikationsmuster

A

“Einzelnachricht ohne Antwort oder Quittung.”

Geeignet für einfache Sensorik/Hardware.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Definition

Was ist Request/Response?

Kommunikationsmuster

A

“Client-Rolle (Auftraggeber) sendet Auftrag; Server-Rolle (Auftragnehmer) antwortet; kann synchron (blockierend) oder asynchron (nebenläufig) erfolgen.”

Häufigster Fall (z. B. HTTP).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Definition

Was ist Publisher/Subscriber?

Topics/Event Channel

A

“Nachrichten sind in Topics/Event Channels klassifiziert; Empfänger abonnieren Topics (Subscriber); Sender publizieren Nachrichten/Events (Publisher).”

Typisch z. B. im Internet der Dinge (MQTT).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Definition

Was bedeutet Duplex?

Senden/Empfangen

A

“Alle Kommunikationspartner können immer senden und empfangen.”

Vollständige Bidirektionalität.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Definition

Was bestimmt den Nachrichteninhalt?

Struktur

A

“Inhalt und Länge müssen festgelegt sein; Aufbau ist allen Partnern bekannt; typischer Aufbau: Header und Payload.”

Ohne Längen-/Strukturangabe nur Bytestrom.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Architektur/Zuordnung

Typischer Headerinhalt einer Nachricht?

Felder

A

“Empfänger; Absender; Typ; Länge; ggf. weitere Felder; Payload enthält Daten (typisierte Objekte möglich).”

Header/Payload-Trennung zentral.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Verständnis

Wie mit langen Nachrichten umgehen?

Fragmentierung

A

“Falls längere Nachricht notwendig

mehrere Pakete des Transportprotokolls zusammenfassen; Länge kann durch Transportprotokoll begrenzt sein.”

Transportgrenzen beachten.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Definition

Was ist Endianness?

Byte-Reihenfolge

A

“Reihenfolge

in der Bytes einer Zahl abgelegt werden: niederwertige zuerst = Little Endian; höherwertige zuerst = Big Endian.”

Achtung bei ganzen Zahlen (Byte-Reihenfolge).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Abgrenzung

Little Endian vs. Big Endian?

Byte-Reihenfolge

A

“Little Endian: niederwertige Bytes zuerst. Big Endian: höherwertige Bytes zuerst.”

Netzwerk typischerweise Big Endian.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Verständnis

Host- vs. Netzwerk-Endianness?

Architektur vs. Netz

A

“Host: abhängig von Architektur

üblicherweise Little Endian (x86/x64). Netzwerk: typischerweise Big Endian.”

Konvertierung bei Übertragung nötig.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Architektur/Zuordnung

Welche Schichten abstrahiert das OS?

Kommunikationskanal

A

“Hardwarenahe Abstraktionsschichten werden typischerweise durch das Betriebssystem abstrahiert (Kernel-space); obere Netzwerkschichten sind anwendungsspezifisch (User-space).”

Anwendung ändert untere Schichten nicht.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Verständnis

Wo werden obere Netzwerkschichten umgesetzt?

Implementierung

A

“Obere Netzwerkschichten werden in Anwendungen implementiert; keine Aktualisierung des Betriebssystems notwendig.”

Trennung User-space vs. Kernel-space.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Definition

Eigenschaften von IPv4?

Verbindungsprotokoll

A

“Verbindungslos; Best-Effort Beförderung von Einzelnachrichten (Datagram); Prüfsumme nur für den Header; begrenzte Lebensdauer; Adressierung mit 32-bit Adressen.”

Best-Effort ≠ Zuverlässigkeit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Verständnis

Status von IPv6 laut Folie?

Einordnung

A

“Immer noch nicht durchgesetzt

da Probleme mit IPv4 anderweitig gelöst wurden (CIDR

NAT).”

20
Q

Definition

Eigenschaften von TCP?

Transportprotokoll

A

“Transmission Control Protocol (TCP): zuverlässiger

bidirektionaler Punkt-zu-Punkt-Transport eines Bytestroms; verbindungsorientiert; Duplex-fähig; Endpunkte via IP-Adresse und Portnummer (16bit).”

Basis für zuverlässige Streams.

21
Q

Prozess/Handshake

Wie erreicht TCP Zuverlässigkeit?

Mechanismen

A

“Gegeben/Gesucht: Sicherer Bytestrom über unzuverlässiges Netz.\n- Sequenznummern\n- Prüfsummenbildung (wie IP)\n- Empfangsquittungen (ACK)\n- Sendewiederholung nach Timeout\n- Sliding-Window für Flusskontrolle\nEndergebnis: Zuverlässiger

geordneter Transport.”

Mechanismen wirken zusammen.

22
Q

Definition

Eigenschaften von UDP?

Transportprotokoll

A

“User Datagram Protocol (UDP): bidirektionaler Best-effort Punkt-zu-Punkt-Transport von Einzelnachrichten; verbindungslos; Multicast/Broadcast-fähig; keine Sicherungsfunktionen; nur Prüfsummenbildung (laut Standard optional).”

Neuordnung, Verlust, Duplikation möglich.

23
Q

Abgrenzung

Unterschied TCP vs. UDP?

Zuordnung

A

“TCP: verbindungsorientiert

zuverlässig

Bytestrom

24
Q

Definition

Port-Nummern: Bereiche?

IANA/RFC 6335

A

“0–1023: reservierte System-Ports (well-known). 1024–49151: registrierte/User-Ports. 49152–65535: private/ephemeral Ports.”

Vergabe durch IANA (RFC 6335).

25
# Anwendung/Beispiele Beispiele für Ports? | Zuordnung
"22: SSH; 25: SMTP; 53: DNS; 80: HTTP." | Nur Beispiele laut Folie.
26
# Definition Was ist ein Socket? | Einführung
"Kommunikationsendpunkt | vom Betriebssystem verwaltet; bietet der Anwendung eine Abstraktion der darunterliegenden Hardware; einfache API für verteilte Anwendungen; Basis für Protokolle auf TCP/IP." ## Footnote Plattformweit unterstützt (4.X BSD Ursprung).
27
# Architektur/Zuordnung Welche Arten von Sockets? | Zuordnung
"Stream Sockets: verbindungsorientiert | verlässlich (TCP). Datagram Sockets: verbindungslos ## Footnote unzuverlässig (UDP). Raw Sockets: Zugriff auf unterlagerte Protokolle (z. B. IP)."
28
# Prozess/Handshake Typischer Ablauf Client/Server mit Sockets | Schritte
"Gegeben: Client/Server-Kommunikation.\n- Server: socket() → bind() → listen() → accept()\n- Client: socket() → connect()\n- Datenaustausch: send()/recv() (beidseitig | loop)\n- Beenden: shutdown() → close()\nEndergebnis: Etablierter Duplex-Datenaustausch über Verbindung." ## Footnote listen() existiert in Java/C# nicht.
29
# Verständnis Warum Inversion of Control heute? | Ablauf
"Früher: Anwendung ruft Socket direkt (aktiviert). Heute: Eher umgekehrt (Inversion of Control) durch Frameworks/Middleware | die Sockets verwalten." ## Footnote Entlastet Anwendungslogik.
30
# Verständnis Wann schlägt bind() fehl? | Stolperfallen
"bind() schlägt fehl | wenn der Port bereits durch bestehenden Socket belegt ist; Verwaltung durch das Betriebssystem." ## Footnote Portbelegung vorher prüfen.
31
# Verständnis Warum blockierende Socket-API problematisch? | Nebenläufigkeit
"Ursprünglich blockierend (send()/recv()); bei TCP bis Empfang quittiert; für Server nicht akzeptabel (nur eine Verbindung gleichzeitig)." | Führt zu schlechter Skalierung.
32
# Definition Nebenläufigkeit im Server | Thread-Pools
"Heutzutage: Server behandelt Anfragen in separatem Thread; typischerweise Nutzung eines Thread-Pools zur Begrenzung der Threadzahl; erfordert Synchronisation." | Nebenläufigkeit entkoppelt I/O.
33
# Definition Was ist Middleware (Einführung)? | Schicht
"Schicht aus Standardsoftware als Verteilungsplattform; definiert Struktur/Dynamik (verteilbare Einheiten | Benennung/Adressierung ## Footnote Akteure
34
# Abgrenzung Middleware vs. Socket-API? | Transparenz
"Sockets: Low-level | keinerlei Transparenz. Middleware: Abstraktion/Strukturierung verteilter Anwendungen über Paradigmen." ## Footnote Middleware verwaltet nötige Sockets.
35
# Verständnis Haupttreiber für Geschäftsanwendungen? | Motivation
"Funktionalität (flexible Geschäftsprozesse | Legacy-Integration ## Footnote Interoperabilität); niedrige Kosten (Time-to-Market
36
# Definition Nachrichtenorientierung (Grundmodell)? | Paradigma
"Prozesse als verteilbare Einheiten; Nachrichten als kommunizierte Einheiten; Beispiele: Socket-Programmierung | Message Passing Interface (MPI) ## Footnote Message Queues."
37
# Definition Message-oriented Middleware (MOM)? | Einsatz
"Typischerweise eingesetzt | um Spitzenlasten abzufedern; Producer → Message Queue → Consumer; Beispiele: IBM WebSphere MQ ## Footnote MSMQ
38
# Definition Dienstorientierung (RPC-basiert)? | Paradigma
"Dienste als verteilbare Einheiten; Nutzung entfernter Dienste durch Prozeduraufruf; Requests/Responses mit typisierten Parametern in Netzdatendarstellung; Bindung Client/Server oft relativ statisch." | Basis für Client/Server-Anwendungen.
39
# Anwendung/Beispiele Beispiele für RPC-Technologien? | Auswahl
"SunRPC; OSF DCE RPC; Apache Thrift; gRPC." | Liste gemäß Folie.
40
# Definition Objektoriente Middleware? | Paradigma
"Objekte als verteilbare Einheiten; kommunizierte Einheiten sind Methodenaufrufe (basierend auf RPCs); Wiederverwendung von Klassen auf Quellcodeebene; Bedeutung stark gesunken (bis auf OPC UA)." | Beispiele: OMG CORBA, Microsoft DCOM, Java RMI, OPC UA.
41
# Definition Komponentenorientierung? | Paradigma
"Komponente als verteilbare Einheit; kommunizierte Einheiten sind Methodenaufrufe von Schnittstellen; Verwendung als Middleware-Konzept." | Schnittstellen: Provided/Required.
42
# Definition Was ist OSGi (Java)? | Komponentenmodell
"Komponenten heißen Bundles; bestehen aus Code und spezieller Klasse für Aktivierung; Registrierung/Auflösung von Diensten im Dependency Injection Container; z. B. Eclipse Equinox." | Öffentliche Schnittstellen per RPC erreichbar (Idee).
43
# Anwendung/Beispiele Server-seitige Komponenten (JEE/EJB)? | Bezug OSGi
"Enterprise Java Beans (EJB) als Teil der Spezifikation für Server-seitige Komponenten (J2EE/JEE); Skalierbarkeit durch Replikation einzelner Komponenten; flexibles Deployment; Beispielprodukte: JBoss | Apache Geronimo ## Footnote JOnAS
44
# Definition Service-orientierte Architekturen (SOA)? | Merkmale
"Dienste als verteilte Einheiten; Anwendungen sind Integrationen von Diensten; Selbstbeschreibung z. B. über WSDL (W3C) mit XML Schema; zentrale Service Registry; Aufruf über Enterprise Service Bus." | Architekturansatz für Geschäftsanwendungen.
45
# Definition Geschäftsprozesse in SOA? | Orchestrierung
"Geschäftsprozess = Ablaufplan zur Zielerfüllung; formale Modellierung erlaubt automatische Ausführung (Web Service Orchestration); „Programmieren im Großen“ (Web Services als Einheiten)." | Standards: WS-BPEL (OASIS, heute wenig bedeutend), BPMN (OMG, ISO/IEC 19510).
46
# Zusammenfassung Wozu Sockets und Middleware? | Überblick
"Sockets: plattformunabhängige | allgemeine Schnittstelle ## Footnote Low-level