IPC Flashcards

1
Q

Wie lassen sich Sockets mit Files vergleichen, was sind Gemeinsamkeiten, was sind Unterschiede?

A
  • Sockets sind bidirektional. Man kann von ihnen lesen und schreiben
  • Sockets sind wie andere Dateideskriptoren. Alle File Operationen wie open, close, read, write funktionieren - bis auf Seek
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Was ist Protokoltyp und Protokolfamilie bei BSD Sockets?

A
  • Protokol-Familie
    • AF_UNIX
    • IPv4
    • IPv6
  • Protokol-Typ
    • SOCK_STREAM - TCP
    • SOCK_DGRAM - UDP
    • SOCK_RAW - zur Implementierung eigener Protokole
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Was gibt die “socket”-Funktion zurück?

A
  • -1 im Fehlerfall
  • Dateideskriptor, File handle im Erfolgsfall
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

In welchem Format wird die Ziel-IP-Adresse bei BSD Sockets erwartet?

A

Network Byte Order

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

Mit welchem Befehl wird eine IP-Adresse von Zeichenkette in Network Byte Order umgewandelt?

A

int inet_(int af, const char* src, void* dst)

  • af
    • AF_INET => IPv4
    • AF_INET6 => IPv6
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Mit welchem Befehl kann ein DNS Aufruf bei BSD Sockets gemacht werden?

A
  • int getaddrinfo(const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res);
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Was identifiziert einen Socket eindeutig?

A

Das Quintupel { protocol, local-addr, local-process, foreign-addr, foreign-process } identifiziert jeden Socket auf einem System eindeutig. Es legt die Kommunikationsform (das Protokoll), die lokale Adresse, den lokalen Prozess (meist über den Port identifiziert) sowie die Gegenstelle (Adresse und Prozess) fest.

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

Was sind Advisory Locks, Record Locks und Share Reservations?

A

Advisory Locks kommen aus der Unix-Welt und sind lediglich ein Hinweis, der nicht forciert wird. Ein Programm muss testen, ob eine „Sperre“ existiert, und selbst von einem Schreibvorgang absehen; es kann sich aber auch entscheiden, den Hinweis zu ignorieren, ohne einen Fehler zu erhalten.

Record Locks werden dagegen vom Betriebssystem forciert und gelten zudem feingranularer für Dateiabschnitte. So kann eine Datei mehrmals auf verschiedene Arten gesperrt werden.

Share Reservations sind ein Konzept der Windows-API, werden ebenfalls vom Betriebssystem forciert und gelten für die gesamte Datei. Der Programmierer spezifiziert hier, welche Zugriffe er anderen Programmen erlauben und welche er verbieten möchte.

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

Was macht die bind Funktion und was ist das Besondere an der Signatur?

A

Zur erstellung eines Servers und zum Binden an einen Port. Die Bind-Funktion ist leicht “polymorph”, da die Kombination struct sockaddr* addr und socklet_t addrlen genutzt wird.

Bei variablen Datenstrukturen wie der addr-Struktur ist zum Zeitpunkt des APIs nicht vollständig determiniert, welche Ausformung übergeben wird. Entsprechend soll mit der Size sichergestellt werden, dass nicht über den Speicher hinaus gelesen wird.

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

Wie werden bei verbindungsorientierten Sockets Verbindungen akzeptiert?

A
  1. Socket wird mit “socket()” aufgebaut
  2. Socket wird an lokaler Adresse mit “bind” gebunden
  3. Mit “listen()” wird auf einkommende Verbindungen gehorcht
  4. Mit “accept()” wird eine Client-Verbindung akzeptiert
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Was macht die “listen” Funktion?

A
  • mit “listen()” wird eine Warteschlange für eingehende Verbindungen aufgebaut
  • input ist: “sockfd” - file deskriptor des Server Sockets
    • Erfolg: “0”
    • Fehlerfall: “-1”
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Was macht die “accept()” Funktion?

A

Dieser Funktionsaufruf akzeptiert eine Verbindung aus der Warteschlange, die durch listen() aufgebaut wird.

Der Rückgabewert entspricht dem Dateideskriptor, der genutzt werden kann, um mit dem Client mit read() und write() Aufrufe zu kommunizieren.

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

Was ist XDR?

A
  • kein Protokoll
  • Datenbeschreibungssprache - Interfacebeschreibungssprache wie IDL (Interface Definition Language)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Wie wird XDR in C übersetzt?

A

Das Programm rpcgen wird dafür verwendet, dessen Ausgaben für die Verwendung mit der Bibiliothek librpc gedacht sind.

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

Auf welcher Annahme basieren die XDR Datendefinitionen?

A
  • XDR fusst auf der Annahme eines Bytes, bestehend aus acht Bits als kleinster portabler Dateneinheit
    • die Sicherungsschicht sorgt für die korrekte Codierung
    • bei Ethernet gilt Network Order, d.h. das höherwertige Bit wird zuerst übertragen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Was sind die Hauptunterschiede zwischen lokalen und entfernten Aufrufen (function calls)?

A
  • Geschwindigkeit
  • Keine globalen Variablen aufgrund getrennter Address-Räume
    • keine Seiteneffekte, da funktionale Programmierung
  • Authentifizierung und Verschlüsselung müssen Teil des Protokolls sein
  • Fehler bei der Übertragung der Daten übers Netzwerk müssen abgefangen und behandelt werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Wie funktioniert AUTH_SYS Authentifizierung bei ONC RPC?

A

AUTH_SYS Authentifizierung funktioniert über unixoider Anmelde-Prozess, bei dem der Benutzer sich über Benutzer-ID und Passwort und die Zugehörigkeit zu Gruppen authentifiziert. Die Nummern, die übermittelt werden, stammen von Klienten und müssen so abgesichert sein, um die Anmeldung des Benutzers zu gewährleisten.

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

Was wird bei AUTH_SYS Anmeldung an den Server übertragen?

A
  • unsigned int uid
  • unsigned int gid
  • unsigned int gids<16> // 16 Gruppen-Zugehörigkeiten
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Was sind die Nachteile von AUTH_SYS?

A
  • Keine Verschlüsselung
  • Autorisierung ist möglich
  • Authentifizierung ist nicht möglich
  • Begrenzung der Mitgliedschaft auf 16 Gruppen
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Was soll bei ONC RPC in unsicheren Netzwerken für eine Authentifizierung eingesetzt werden und warum?

A
  • GSS-API (Generic Security Services Application Programming Interface)
  • Austausch von kryptographisch abgesicherten Tokens
  • Einsatz bei NFSv4
    • Dadurch kann NFSv4 im Internet genutzt werden
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Was sind die Anforderungen an einem RPC Protokol?

A
  1. Unique specification of a procedure to be called.
  2. Provisions for matching response messages to request messages.
  3. Provisions for authenticating the caller to service and vice-versa.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Was muss jede RPC Call zwingend enthalten?

A
  • three unsigned integer fields
    • remote program number
    • remote program version number
    • remote procedure number – which uniquely identify the procedure to be called.
23
Q

Was muss ein RPC Daemon bereitstellen, um Dienste anbieten zu können?

A

RPC Daemon muss sich bei der RPC Library mit Programm-Nummer, Programm-Version und die jeweiligen Prozeduren “registrieren”/”anmelden”

24
Q

Wo und wie wird die Liste von RPC Programmen verwaltet?

A
  • öffentliche Programme sind aus IANA-RPC beziehbar
  • lokal besitzt jedes System eine Datei, in der Programmnamen und -nummern abgebildet sind
    • /etc/rpc ist eine Datei
25
Q

Auf welchem Port läuft NFS?

A

2049

26
Q

Mit welcher Methode identifiziert ONC RPC die Anfragen?

A

Mit einer Nummer, die der Standard mit XID bezeichnet. Der Client stellt diese Nummer bereit. Der Server kopiert die Nummer bei der Beantwortung der Anfrage zurück.

27
Q

Was sind die Kern-Elemente des NFSv3 Entwurfs gewesen?

A
  • idempotente Operationen
  • Fehler-Robustheit
    • Solange ein Client keine Antwort bekommt, kann er eine Anfrage beliebig häufig stellen
  • State-less Server
    • NFS Server dumb and Client smart
28
Q

Was sind NFSv3 idempotente Operationen und wie wird dies implementiert?

A

Operationen, die beliebig häufig wiederholt werden können, ohne dass sie Seiten-Effekte haben.

Irreversible Funktionen können mit eine “Replay Cache” idempotent gemacht werden. Der Server speichert im Cache den Funktionsaufruf und dessen Ergebnis und antwortet mit dem Inhalt des Zwischenspeichers, statt den Befehl erneut auszuführen. Damit spielt der Server gewissermaßen eine “Aufnahme erneut ab” (Replay)

29
Q

Was sind die Funktionalität des NFSv3 Mount Protokols?

A
  • erlangen des ersten Directory-Handles
  • Mount hat hauptsächlich Auskunftsfunktion und liefert eine Liste von Pfaden und Freigaben
30
Q

Was macht der Lookup Befehl bei NFSv3?

A
  • Wandelt einen Pfad in ein Directory Handle um
  • Wird beim Verzeichniswechsel genutzt
31
Q

Was sind die “Hauptobjekte”, auf die NFSv3 Befehle operieren?

A

NFS arbeitet ausschließlich mit Handles, die ein Objekt = {Directory, File} im Dateisystem eindeutig identifizieren. Die Methode Lookup kann zum Transformieren von Pfaden in Handles genutzt werden. Das “Tokenizen” des Pfades nach “Separators” und Sonderzeichen muss vom Client übernommen werden

32
Q

Welche drei modis kennt NFSv3 beim Schreiben der Daten?

A
  • FILE_SYNC: Server muss alle Daten sofort schreiben
  • DATA_SYNC: Server muss die Nutzerdaten synchronisieren, darf aber die Meta-Daten im Speicher halten
  • UNSTABLE: Server darf sowohl Nutzer- wie auch Metadaten im Speicher halten.
33
Q

Was macht der COMMIT Befehl bei NFSv3?

A
  • ermöglicht das fein-granulare Schreiben der Daten
  • der Client darf das Geschriebene erst dann verwerfen, wenn er sicher ist, dass der Server alles geschrieben hat
34
Q

Wie muss bei NFS ein Client mit Schreibdaten umgehen?

A

Ein Client darf Daten, die er zum Schreiben an den Server schickt, erst dann aus dem Speicher entfernen, wenn sie vollständig synchronisiert sind. Solange der Client aber Pufferplatz im Speicher hat, kann er Daten als UNSTABLE markiert schreiben, um die Geschwindigkeit zu erhöhen.

35
Q

Was ist bei NFSv3 der Verifier Cookie und wozu wird er verwendet?

A

Es ist eine beliebige ID, die sich nur dann verändert, wenn der Server neu gestartet werden musste. Dann muss der Client alle Daten, die noch nicht sicher geschrieben wurden, neu an den Server schicken.

36
Q

Was machen READDIR und READDIRPLUS Funktionen?

A
  • Auflistung der Inhalte von Verzeichnissen
  • READDIRPLUS gibt zusätzlich die Attribute der Einträge zurück
37
Q

Welche Optimierung machen viel NFS Befehle?

A

Viele Funktionen liefern mittels der post_op_attr-Struktur zusätzlich Datei- oder Verzeichnisattribute, damit ein Client sie nicht separat anfordern muss. Insbesondere im Fehlerfall, wenn der Server den Zugriff verweigert

38
Q

In welchem Format gibt NFS das Datum zurück?

A

Im Unix-Format: ein Zeitstempel mit Sekunden und Nanosekunden seit dem 01.01.1970

39
Q

Was ist die Idee hinter Weak Cache Consistency bei NFS?

A

Many NFS version 2 clients cache file and directory data to improve performance. At times, the version 2 method fails when multiple clients are sharing and caching the same data.

Weak cache consistency enables the client to detect data changes between its last access and the current request. This is done when the server sends back the previous attributes with the response. The client can then compare the previous attributes with what it thought the previous attributes were and detect the changes.

40
Q

Welche Arten von Sperren lässt NFSv3 zu?

A

Advisory Lock, Share Reservation

41
Q

Mit welchen Hilfsprotokollen implementiert NFSv3 das Locking?

A
  • Lock Manager
  • Status Monitor
42
Q

Was sind die Haupterweiterungen von NFSv4 gewesen?

A
  • für NFSv3 müssen fünf ports aufgemacht werden (portmapper, mountd, nfsd, lockd und statd)
    • NFSv4 integriert alle Hilfsprotokolle
  • NFSv4 entfernt das Mount Protokoll, das mit dem Root Filehandle seine Berechtigung verloren hat. Das erste Handle wird per Standard festgelegt.
  • NFSv4 unterstützt auch Record Locks
43
Q

Was sind Record Locks im Kontext von NFSv4?

A

Record Locks sind vom Betriebssystem forcierte Sperren, die sich nur auf einen Teil einer Datei beziehen

44
Q

Was sind die Anzeichen für die Zustandsorientierung von NFSv4?

A
  • Einführung von OPEN
    • erlaubt wie bei Windows auch die Anforderung einer Share Reservation
45
Q

Wie wird bei NFSv4 sichergestellt, dass Sperren auch nach einem Neustart vom Server aufgehoben werden?

A

Durch zeitliche Begrenzung von Sperren

46
Q

Was macht der COMPOUND Befehl bei NFSv4?

A

ermöglicht das Abschicken von einer Gruppe von Befehlen

47
Q

Mit welcher Optimierung arbeitet NFSv4, um in einem WAN eingesetzt werden zu können?

A

Einführung von Zwischenspeichern in einem WAN, um ein Dateisystem mit akzeptabler Geschwindigkeit zu betreiben und die Anzahl der Pakete zu begrenzen, die geschickt werden müssen. Die Verantwortung für ein Objekt wird an eine andere Maschine delegiert. Somit wird das zu einem lokalen Objekt, das entweder im Arbeitsspeicher oder auf der Festplatte festgehalten wird. Dieser Mechanismus ist ähnlich wie eine Sperre. Die Datei kann lokal quasi final bearbeitet werden und anschließend dann in einem Bulk auf dem Server übertragen und gespeichert werden.

48
Q

Was bedeutet “Delegation” exakt im Kontext von NFSv4?

A
  • Delegation is a technique by which the server delegates the management of a file to a client.
    • read delegation
    • write delegation
  • Read delegations can be granted to multiple clients at the same time, because these read delegations do not conflict with each other.
  • Write delegation can be granted to only one client, because a write delegation conflicts with any file access by any other client.
    • While holding a write delegation, the client would not send various operations to the server because the client is guaranteed exclusive access to a file. Similarly, the client would not send various operations to the server while holding a read delegation. The reason is that the server guarantees that no client can open the file in write mode.
49
Q

Was ist der Effekt der “Delegation” bei NFSv4?

A

The effect of delegation is to greatly reduce the interactions between the server and the client for delegated files. Therefore, network traffic is reduced, and performance on the client and the server is improved.

50
Q

Wofür kommen Callbacks bei NFSv4 zum Einsatz?

A

Callbacks kommen zum Einsatz, wenn “Delegation” Konflikte entstehen. Durch einen Callback wird der Client informiert, der gerade eine Delegation hält, die zum Konflikt geführt hat.

51
Q

Warum ist die Kommunikation über den Lookback Device ineffizent?

A

Jedes Betriebssystem besitzt einen sogenannten Lookback Adapter, eine lokale Netzwerkschleife, bei der die Pakete das System nicht verlassen, gleichzeitig aber eine Netzwerkkommunikation simuliert wird. Dies ist allerdings ineffizient, weil bei jedem Paket der volle IP-Stack des Betriebssystems eingesetzt wird.

52
Q

Was ist der Vorteil von Unix-Sockets bei lokaler Kommunikation und wie werden sie sonst noch bezeichnet?

A
  • POSIX Inter-Process Communication Sockets
  • Unix Domain Sockets
  • Funktionieren transparent wie andere Sockets
    • allerdings werden die Daten nicht unter dem Einsatz des kompletten Netzwerk-Stacks übertragen
    • Protokoll-Verwaltungsdaten wie Protokollköpfe, Prüfsummen oder ACK-Pakete können vollkommen entfallen
53
Q

Was machen POSIX Message Queues?

A
  • Sind wie der Name schon sagt, Message Queues
    • haben gegenüber lokale Sockets den Vorteil, dass die Nachrichten direkt in eine C-Struktur geschickt werden können, so dass Marshaling/Unmarshaling Aufwand wegfällt.
54
Q
A