PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

Größe: px
Ab Seite anzeigen:

Download "PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN"

Transkript

1 PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation, zugehörige Systemaufrufe und Kommandos 12. UNIX/Linux-Sockets Wintersemester 2016/17

2 UNIX/Linux-IPC-Mechanismen Nachrichtenbasierter Informationsaustausch: Nachrichten(warte)schlangen ( message queues ) System V IPC Sockets BSD-UNIX Speicherbasierter Informationsaustausch: Gemeinsame Speicherbereiche( shared memory ) System V IPC 5. Pipes (Named Pipes und FIFOs) Version 7 Signale: 6. Asynchrone UNIX-Signale Version 7 Synchronisationsmechanismen: UNIX-Semaphore System V IPC ws2016/17 H.-A. Schindler Folie: 12-2

3 Nachrichtenbasierter Informationsaustausch Prozess 1 Prozess 2 Befehle Befehle Daten Daten Datentransport (Nachrichten) Expliziter Datentransport in Form von Botschaften (= messages) Aus einem Datenbereich wird in den anderen kopiert. Sendender Prozess: benutzt (Variante einer) Send-Funktion Empfangender Prozess: benutzt (Variante einer) Receive-Funktion ws2016/17 H.-A. Schindler Folie: 12-3

4 Sockets -Grundsätzliches Ursprung: erstmalig in BSD-UNIX 4.2 Bedeutung: sind rechnerübergreifend verwendbar (Internet!!), d.h. zur Kommunikation zwischen Prozessen auf verschiedenen (vernetzten) Rechnern (sog. verteilte Systeme) aber auch für IPC innerhalb nur eines Rechners damit universellster Kommunikationsmechanismus auch in anderen BS implementiert ws2016/17 H.-A. Schindler Folie: 12-4

5 Sockets zugehörige Systemaufrufe Umfang: Zu Sockets existiert das umfangreichste Sortiment an Systemaufrufen und Parametern. Da von UNIX-Systemen Sockets als (spezielle) Dateien angesehen werden, kann auch ein Teil der Funktionen für die Dateiarbeit verwendet werden. Beschränkung: wir beschränken uns zunächst auf die Funktionen: 1. socket(6) - Erzeugen eines Sockets 2. bind(6) - Anbinden einer zugehörigen Datenstruktur 3. connect() - Verbinden von 2 Sockets 4. send() - Senden einer Nachricht (bei verbundenen Sockets) 5. sendto(6) - wie send() auch ohne vorheriges connect() 6. recv() - Empfangen (bei verbundenen Sockets) 7. recvfrom() - Empfangen auch ohne vorheriges connect() ws2016/17 H.-A. Schindler Folie: 12-5

6 Zur Benutzung der Systemaufrufe Socket Prozess 1 (z.b. Client) Variante2a: ohne Verbinden: sendto(..) Erzeugen: socket(..) Anbinden: bind(..) Socket- Datenstruktur Variante1: Verbinden: connect(..) +send(..) +recv(..) Erzeugen: socket(..) bind(..) Prozess 2 (z.b. Server) Variante2b: ohne Verbinden: recvfrom(..) ws2016/17 H.-A. Schindler Folie: 12-6

7 Systemaufruf socket(..) erzeugt Socket und typisiert diesen Verwendung im Programm (Prinzip): int <id_sock; <id_sock = socket(<domain, <type, <protocol); Konkretes Beispiel: int id; id = socket(af_inet, SOCK_STREAM, 0); Parameter Symbol Typ Bedeutung Interpretation <id_sock int Rückkehrwert Identifikator des Sockets (auch: Socket-Handle) <domain int <type int <protocol int Zugehörigkeit zu bestimmter Gruppe Protokoll Adress-Familie oder Protokoll-Familie (20) AF_INET oder PF_INET: Internet-Socket AF_UNIX oder PF_UNIX: lokaler UNIX-Socket... Datenmodell + Verlässlichkeitseigenschaften SOCK_DGRAM:unzuverlässige, verbindungslose Kommunikation (normalerweise UDP) SOCK_STREAM:zuverlässige, verbindungsorient. Kommunikation (normalerweise TCP/IP) spezifisches Protokoll (meist System überlassen: 0) ws2016/17 H.-A. Schindler Folie: 12-7

8 verknüpft Socket-Datenstruktur mit erzeugtem Socket Systemaufruf bind(..) Verwendung im Programm (Prinzip): int <rb; <rb= bind(<id_sock, &<my_socketaddr, <socketaddress_length); Parameter Symbol Typ Bedeutung <rb int Rückkehrwert Konkretes Beispiel: int rw; rw=bind(id_socket1, &client_socketaddr, sizeof(client_socketaddr)); Interpretation Rückkehrwert des Systemaufrufs socket(..) <id_sock int Identifikator <my_ socketaddr <socketaddress _length &(struct sockaddr) int Adresse der Datenstruktur, die mit Socket verknüpft wird Länge dieser Datenstruktur ws2016/17 H.-A. Schindler Folie: 12-8

9 Datenstruktur sockaddr Für unterschiedliche Adressfamilien unterschiedliche Datenstrukturen verwenden: Adressfamilie AF_UNIX: #define UNIX_PATH_MAX 108 struct sockaddr_un{ sa_family_t sun_family; /* AF_UNIX */ char sun_path[unix_path_max] /* UNIX-Pfadname */ }; Adressfamilie AF_INET: struct sockaddr_in{ sa_family_t sin_family; /* AF_INET */ unsigned short sin_port; /* 16-Bit TCP- oder UDP-Port-Nr. */ struct in_addr sin_addr; /* 32-Bit IP-Adresse */ char sin_zero[8]; /* nur zum Auffüllen der Struktur */ }; /* einheitlich 16 Byte ( padding ) */ ws2016/17 H.-A. Schindler Folie: 12-9

10 Systemaufruf connect(..) Verbinden mit Socket des Kommunikationspartners (verbindungsorientierte Kommunikation) Verwendung im Programm (Prinzip): int <r; <r= connect(<id_sock, &<server_socketaddr, <socketaddr_length); Konkretes Beispiel: int rx; rx=connect(id_socket1, server_socketaddr, sizeof(struct sockaddr)); Parameter Symbol Typ Bedeutung Interpretation <r int <id_sock int Rückkehrwert Identifikator Rückkehrwert des Systemaufrufs socket(..) <server_ socket_addr &(struct sockaddr) Adresse der Datenstruktur des Sockets der Gegenstelle <socketaddr _length int Länge Länge der Datenstruktur ws2016/17 H.-A. Schindler Folie: 12-10

11 Systemaufruf send(..) Senden einer Botschaft (message) Verwendung im Programm (Prinzip): int <rs; <rs= send(<id_sock, &<message, <message_length, flags); Parameter Symbol <rs int Typ Bedeutung Rückkehrwert Konkretes Beispiel: int rw; rw = send(id_socket1, request, requestlength, 0); Interpretation <id_sock int Socket- Identifikator Rückkehrwert des Systemaufrufs socket(..) <message &char[ ] Anfangsadresse des Speicherbereichs im Programm, in welchem message spezifiziert <message _length int Länge Länge der message <flags zur Spezifikation spezieller Eigenschaften ws2016/17 H.-A. Schindler Folie: 12-11

12 Systemaufruf recv(..) Empfangen einer Botschaft (message) Verwendung im Programm (Prinzip): int <r; <r= recv(<id_sock, &<receive_buffer, <message_length, <flags); Konkretes Beispiel: int rw; rw = recv(id_socket1, buffer, bufferlength, 0); Parameter Symbol <rs int <id_sock int Typ Bedeutung Rückkehrwert Socket- Identifikator Interpretation Anzahl der tatsächlich empfangenen Byte Rückkehrwert des Systemaufrufs socket(..) <receive _buffer &char[ ] Anfangsadresse des Speicherbereichs im Programm, wo message zu deponieren <message _length int Länge Länge der message <flags zur Spezifikation spezieller Eigenschaften ws2016/17 H.-A. Schindler Folie: 12-12

13 Systemaufruf recvfrom(..) Empfangen einer Botschaft (message) und Abspeichern der Quelladresse Verwendung im Programm (Prinzip): int <r; <r = recvfrom(<id_sock, &<receive_buffer, <message_length, <flags, <source_address, <source_address_length); Konkretes Beispiel: int rw; rw = recvfrom(id_socket1, buffer, bufferlength, 0,...); Parameter Symbol <source address <source_ address_ length Typ struct sockaddr* socklen_t Bedeutung / Interpretation Wenn (<source_address NULL) wird Adresse der Quelle einer empfangenen Botschaft auf Paramter<source_address bereitgestellt, falls diese durch das verwendete Transportprotokoll zur Verfügung gestellt wird. Länge der Quell-Adresse Restliche Parameter: siehe recv()! ws2016/17 H.-A. Schindler Folie: 12-13

14 Systemaufrufe read( ) und write( ) Anstelle von send() kann auch write(),anstelle von recv() auch read() verwendet werden, beide aber ohne Parameter flags. Es gilt exakt die Syntax (= Aufruf im Programm ) von write()und read() für Arbeit mit Dateien. Verwendung im Programm (Prinzip): <x= read(<id_sock, &<receive_buffer, <message_length); <y= write(<id_sock, &<message, <message_length); Konkretes Beispiel: int u, v; u = read(id_socket1, buffer, bufferlength); v = write(id_socket2, &message, message_length); Parameter Symbol Typ Bedeutung <x, <y int Rückkehrwerte Interpretation Restliche Parameter: siehe send() bzw. recv()! ws2016/17 H.-A. Schindler Folie: 12-14

15 Beispielprogramm: server1.c #include <stdio.h #include <stdlib.h #include <sys/socket.h #include <sys/types.h #include <string.h #define socket_name_length 14 #define request_length 16 #define message_length 128 main() { int id_server_socket; // Socket-Handle (= Identifizierer) int rv_bind; // Rueckkehrwert von bind() int rv_connect; // Rueckkehrwert von connect() char server_socketname[socket_name_length] = /tmp/svsocket"; struct sockaddr server_socketaddr; char client_socketname[socket_name_length] = /tmp/clsocket"; struct sockaddr client_socketaddr; ws2016/17 H.-A. Schindler Folie: 12-15

16 N // zum Senden int rv_send; // Rueckkehrwert vom Senden char answer_buffer[message_length] = "Elbe"; // zum Empfangen int rv_receive; //Rueckkehrwert beim Empfangen char receive_buffer[request_length]; // Server-Socket erzeugen id_server_socket = socket(af_unix, SOCK_DGRAM, 0 ); N // Anbinden des Namens an Server-Socket server_socketaddress.sa_family = AF_UNIX; strcpy(server_socketaddress.sa_data, server_socket_name); rv_bind= bind(id_server_socket, &server_socket_address, sizeof(server_socket_address)); N ws2016/17 H.-A. Schindler Folie: 12-16

17 N // Warten auf Anfrage rv_receive=recv(id_server_socket, receive_buffer, request_length, 0); N // Nach einer Anfrage: Vorbereiten zum Antwort senden client_socketaddr.sa_family = AF_UNIX; strcpy(client_socketaddress.sa_data, client_socket_name); // Verbinden mit Server-Socket rv_connect= connect(id_server_socket, &client_socket_address, sizeof(struct sockaddr)); N // Senden rv_send = send( id_server_socket, answer_buffer, message_length,0); N // Sauber abschließen, Socket-Name entfernen unlink(server_socket_name); } ws2016/17 H.-A. Schindler Folie: 12-17

18 Sockets weitere Systemaufrufe weitere wichtige Aufrufe: listen(6) accept(6) zu Datenstruktur sockaddr für AF_INET Include-Dateien: #include <sys/socket.h #include <netinet/in.h ws2016/17 H.-A. Schindler Folie: 12-18

19 Datenstruktur sockaddr für AF_INET unterschiedliche Datenstrukturen für unterschiedliche Adressfamilien!! Adressfamilie AF_INET: struct sockaddr_in { sa_family_t sin_family; // AF_INET unsigned short sin_port; // 16-Bit TCP- oder UDP-Port-Nr. struct in_addr sin_addr; // 32-Bit IP-Adresse char sin_zero[8]; // nur zum Auffüllen der Struktur }; // einheitlich 16 Byte ( padding ) Beispiel: #define SERVER_PORT 4711 // Port-Nr. für Socket struct sockaddr_in ssock; // Einrichten der Datenstruktur ssock vom Typ sockaddr_in ssock.sin_family = AF_INET; // siehe oben ssock.sin_port = htons(server_port); // htons: konvertiert SERVER_PORT geeignet ssock.sin_addr.s_addr = INADDR_ANY; ws2016/17 H.-A. Schindler Folie: 12-19

20 Systemaufruf listen(..) legt Warteschlange für Server-Aufrufe an Verwendung im Programm (Prinzip): int <rl; <rl = listen(<id_sock, <number); Parameter Symbol Typ Bedeutung <rl int Rückkehrwert Konkretes Beispiel: int rw; rw = listen(id_socket1, 5); Interpretation <id_sock int <number int Beschreibung: Identifikator Rückkehrwert des Systemaufrufs socket(..) Anzahl gleichzeitig möglicher Anforderungen Über <number wird spezifiziert, wie viele Verbindungsanforderungen gleichzeitig akzeptiert werden. Dazu wird Warteschlange mit entsprechender Platzanzahl eingerichtet. Werden mehr als <number Verbindungen gleichzeitig gefordert, werden alle Anforderungen ab (<number + 1) zurückgewiesen ws2016/17 H.-A. Schindler Folie: 12-20

21 Stellt Empfangsbereitschaft eines Sever-Prozesses her Systemaufruf accept(..) Verwendung im Programm (Prinzip): int <r; <connect_id= accept(<id_serversocket, &<client_socket, &<clientsocket_length); Konkretes Beispiel: int xz; rw = accept(id_ssock, cl_socketaddr, &sizeof(struct sockaddr); Parameter Symbol Typ Bedeutung / Interpretation <connect_id int Rückkehrwert(Erfolgkontrolle und Verbindungd-ID) <id_ serversocket &<client _socket &<clientsocket _length int &(struct sockaddr) int Rückkehrwert des Systemaufrufs socket(..) Adresse der sockaddr-datenstruktur der Gegenstelle Länge einer Socket-Adresse accept() blockiert bis tatsächlich ein Aufruf stattfindet ws2016/17 H.-A. Schindler Folie: 12-21

22 Aufgabenstellung (Anregungen) 1. Analysieren Sie server1.c und client1.c. Lesen Sie dabei auch die Kommentare. Übersetzen Sie beide Programme und beobachten Sie deren Arbeit. (Server und Client dazu in jeweils eigenen Kommandofenstern starten! Reihenfolge beachten!) Die angelegten Sockets sind ähnlich wie benannte Pipes im Dateisystem sichtbar (bevor sie wieder gelöscht werden). Analysieren Sie z.b. nach dem Serverstart die entsprechenden Stellen im Dateisystem. Bei server2.c wurden recv() durch read() und send() durch write() ersetzt. 2. Übersetzen Sie server2.c und überprüfen Sie, ob auch dieser mit dem ungeänderten client1.c zusammenarbeiten kann. In server2b.c wurde als einzige Änderung gegenüber server1.c das Datenmodell des Sockets von SOCK_DGRAM auf SOCK_STREAM gesetzt. 3. Übersetzen Sie server2b.c und beobachten Sie! (Es reicht den Server zu starten.) ws2016/17 H.-A. Schindler Folie: 12-22

23 Auch server3.c ist eine Modifikation von server1.c. Es wurde eine einfache Schleife implementiert, so dass der Server wiederholt auf Anfragen antworten kann. (Für einen echten Server fehlt jedoch noch die Fähigkeit, die Anfragen zu analysieren und zur jeweiligen Anfrage passend zu antworten.) 4. Übersetzen Sie server3.c. Starten Sie verschiedene Clients, die Anfragen an den Server stellen und beobachten Sie. Ursprung aller Clients kann natürlich immer das Programm client1.c sein. ws2016/17 H.-A. Schindler Folie: 12-23

24 server4.c ist eine Modifikation von server3.c, wobei jetzt Internet-Sockets und eine Port-Nummer Anwendung finden. Anstelle von bind() und connect() werden jetzt listen() und accept() verwendet, die eine ähnliche Funktion haben. 5. Analysieren Sie server4.c. Übersetzen und starten Sie danach dieses Programm. Ein funktionsfähiges Programm muss blockieren, bis eine Anfrage kommt. Ob server4wirklich am Port 4711lauscht, kann durch das Kommando netstat a grep 4711 untersucht werden. Ein simpler Client kann dann mittels Kommando telnet<server_name 4711simuliert werden. (Wird das Kommando auf der gleichen Maschine eingegeben, auf der auch der Server läuft, ist telnetlocalhost4711 zu verwenden). Es werden dann die an der Tastatur eingegebenen Zeichen als Anfrage an server4übertragen. ws2016/17 H.-A. Schindler Folie: 12-24

Tafelübung zu BS 4. Interprozesskommunikation

Tafelübung zu BS 4. Interprozesskommunikation Tafelübung zu BS 4. Interprozesskommunikation Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund olaf.spinczyk@tu-dortmund.de http://ess.cs.uni-dortmund.de/~os/

Mehr

Projekt: Web-Server. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2014

Projekt: Web-Server. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2014 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

Projekt: Web-Proxy. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015

Projekt: Web-Proxy. Foliensatz 9: Projekt Folie 1. Hans-Georg Eßer, TH Nürnberg Systemprogrammierung, Sommersemester 2015 Sep 19 14:20:18 amd64 sshd[20494]: Accepted rsa for esser from ::ffff:87.234.201.207 port 61557 Sep 19 14:27:41 amd64 syslog-ng[7653]: STATS: dropped 0 Sep 20 01:00:01 amd64 /usr/sbin/cron[29278]: (root)

Mehr

Computer and Communication Systems (Lehrstuhl für Technische Informatik) Socket-Programmierung

Computer and Communication Systems (Lehrstuhl für Technische Informatik) Socket-Programmierung Computer and Communication Systems (Lehrstuhl für Technische Informatik) Socket-Programmierung [RN] Sommer 2012 Socket - Programmierung 1 Überblick Allgemeine Grundlagen für die Socket-Programmierung Elementare

Mehr

Operating Systems Principles. Event Queue

Operating Systems Principles. Event Queue Humboldt University Computer Science Department Operating Systems Principles Event Queue 1. Aufgabe 3 Wochen Zeit zum Lösen der Aufgaben Aufgabenstellung auf der SAR Website Abgabe über GOYA Abgabefrist:

Mehr

PROGRAMMIEREN MIT UNIX/Linux-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/Linux-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/Linux-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation, zugehörige Systemaufrufe und Kommandos 7. UNIX/Linux-Shared Memory 8. (Benannte) Pipes UNIX/Linux-IPC-Mechanismen Nachrichtenbasierter

Mehr

J-1 Überblick. 1 Binden von Sockets. Besprechung 6. Aufgabe (jsh) Domain, z. B. (PF_ = Protocol Family) Byteorder bei Netzwerkkommunikation

J-1 Überblick. 1 Binden von Sockets. Besprechung 6. Aufgabe (jsh) Domain, z. B. (PF_ = Protocol Family) Byteorder bei Netzwerkkommunikation J 8. Übung J 8. Übung J-1 Überblick #include int socket(int domain, int type, int protocol); Besprechung 6. Aufgabe (jsh) Byteorder bei Netzwerkkommunikation Domain, z. B. (PF_ = Protocol

Mehr

7. Tafelübung. Socket - Erzeugung. Netzwerkkommunikation und Byteorder. Binden von Sockets. Lösung der jsh-aufgabe. Erläuterung der rshd-aufgabe

7. Tafelübung. Socket - Erzeugung. Netzwerkkommunikation und Byteorder. Binden von Sockets. Lösung der jsh-aufgabe. Erläuterung der rshd-aufgabe 7. Tafelübung Lösung der jsh-aufgabe Erläuterung der rshd-aufgabe Sockets Socket - Erzeugung s = socket(domain, type, protocol) Domain, z.b. AF_INET: Internet AF_UNIX: Unix Filesystem AF_APPLETALK: Appletalk

Mehr

Byteorder bei Netzwerkkommunikation Netzwerkprogrammierung - Sockets Netzwerkprogrammierung - Verschiedenes

Byteorder bei Netzwerkkommunikation Netzwerkprogrammierung - Sockets Netzwerkprogrammierung - Verschiedenes U9 9. Übung U9 9. Übung Besprechung Aufgabe 7 (lash) Informationen zu Aufgabe 8 (simail) Byteorder bei Netzwerkkommunikation Netzwerkprogrammierung - Sockets Netzwerkprogrammierung - Verschiedenes U9.1

Mehr

Michael Golm, Universität Erlangen-Nürnberg, IMMD 4, 1999/2000 1999-12-20 14.51 / Tafelübung 7. Netzwerkkommunikation und Byteorder

Michael Golm, Universität Erlangen-Nürnberg, IMMD 4, 1999/2000 1999-12-20 14.51 / Tafelübung 7. Netzwerkkommunikation und Byteorder 7. Tafelübung Lösung der jsh-aufgabe Erläuterung der rshd-aufgabe Sockets 83 Netzwerkkommunikation und Byteorder Wiederholung: Byteorder big endian little endian 0 1 2 3 11 aa bb cc cc bb aa 11 0x11aabbcc

Mehr

Rechnernetze II SS 2015. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404

Rechnernetze II SS 2015. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Rechnernetze II SS 2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 14. Juli 2015 Betriebssysteme / verteilte Systeme Rechnernetze

Mehr

Rechnernetze II WS 2012/2013. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404

Rechnernetze II WS 2012/2013. Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Rechnernetze II WS 2012/2013 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 5. Mai 2014 Betriebssysteme / verteilte Systeme Rechnernetze

Mehr

1 Communication Domain und Protokoll

1 Communication Domain und Protokoll U9 9. Übung U9 9. Übung U9-1 Netzwerkkommunikation und Byteorder U9-1 Netzwerkkommunikation und Byteorder Besprechung Aufgabe 7 (lash) Wiederholung: Byteorder Informationen zu Aufgabe 8 (simail) Byteorder

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 2. UNIX/Linux-Prozessverwaltung und zugehörige Systemaufrufe Wintersemester 2016/17 2. Die UNIX/LINUX-Prozessverwaltung Aufgaben: 1. Erzeugen neuer Prozesse

Mehr

Rechnernetze & Verteilte Systeme (T) Netzprogrammierung/Sockets (P)

Rechnernetze & Verteilte Systeme (T) Netzprogrammierung/Sockets (P) Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom 07.01. Foliensatz 7 Rechnernetze & Verteilte Systeme (T) Netzprogrammierung/Sockets (P) Thomas Schaaf, Nils gentschen Felde Lehr- und Forschungseinheit

Mehr

Internetanwendungstechnik (Übung)

Internetanwendungstechnik (Übung) Internetanwendungstechnik (Übung) Sockets Stefan Bissell, Gero Mühl Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik Kommunikations- und Betriebssysteme (KBS) Einsteinufer 17, Sekr.

Mehr

Interprozesskommunikation (IPC)

Interprozesskommunikation (IPC) Gliederung 1. Einführung und Übersicht 2. Prozesse und Threads 3. Interrupts Interprozesskommunikation (IPC) 4. Scheduling 5. Synchronisation 6. Interprozesskommunikation 7. Speicherverwaltung IPC Cl.

Mehr

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen

Kommunikationsnetze. 2. Direkte TCP/IP-Verbindungen 2.1 Höhere Programmiersprachen Kommunikationsnetze Gliederung 1. Socket-Programmierung unter C 2. Socket-Programmierung unter Java Gliederung Berkeley Sockets (Erste freie TCP/IP-Implementierung in Berkeley UNIX): SOCKET: Erzeugen eines

Mehr

Lösung Übungszettel 6

Lösung Übungszettel 6 Lösungen zur Vorlesung GRUNDLAGEN DER INFORMATIK I Studiengang Elektrotechnik SS 03 AG Betriebssysteme FB3 Kirsten Berkenkötter Lösung Übungszettel 6 1 Aufgabe 1: Parallel-Server 1.1 Client #include

Mehr

Attribute: Name (Zuweisung eines Namens durch Binding) Communication Domain Duplizieren von Filedeskriptoren. SoS I - Ü

Attribute: Name (Zuweisung eines Namens durch Binding) Communication Domain Duplizieren von Filedeskriptoren. SoS I - Ü U7 7. Übung U7 7. Übung U7-1 Überblick Endpunkte einer Kommunikationsverbindung Besprechung 4. Aufgabe (malloc) Arbeitsweise: FIFO, bidirektional Byteorder bei Netzwerkkommunikation Netzwerkprogrammierung

Mehr

U7-2 Netzwerkkommunikation und Byteorder

U7-2 Netzwerkkommunikation und Byteorder U7 7. Übung U7 7. Übung U7-1 Überblick Besprechung 4. Aufgabe (malloc) Byteorder bei Netzwerkkommunikation Netzwerkprogrammierung - Sockets Duplizieren von Filedeskriptoren Netzwerkprogrammierung - Verschiedenes

Mehr

Netzwerk-Programmierung in C

Netzwerk-Programmierung in C 1 / 26 Netzwerk-Programmierung in C Oliver Bartels Fachbereich Informatik Universität Hamburg 2 Juli 2014 2 / 26 Inhaltsverzeichniss 1 IPv4 und IPv6 Wie werden Daten verschickt? 2 3 Verbindungsaufbau ohne

Mehr

Client/Server-Systeme

Client/Server-Systeme Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth WS 2006/2007 Teil 2 Sockets cs 0200 ww6 wgs 09-96 Literatur Socket-Schnittstelle J. Martin, J. Leben: TCP/IP Netzwerke. Prentice Hall, 1994, Kapitel

Mehr

Client/Server-Systeme

Client/Server-Systeme Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth WS 2005/2006 Teil 2 Sockets cs 0200 ww6 wgs 09-96 Literatur Socket-Schnittstelle J. Martin, J. Leben: TCP/IP Netzwerke. Prentice Hall, 1994, Kapitel

Mehr

U8-3 Netzwerkkommunikation und Byteorder. U8-2 Evaluation. U8-4 Sockets. U8-1 Überblick. Wiederholung: Byteorder. 0 1 2 3 14 a2 b5 c8 0x14a2b5c8

U8-3 Netzwerkkommunikation und Byteorder. U8-2 Evaluation. U8-4 Sockets. U8-1 Überblick. Wiederholung: Byteorder. 0 1 2 3 14 a2 b5 c8 0x14a2b5c8 U8 8. Übung U8 8. Übung U8-3 Netzwerkkommunikation und Byteorder U8-3 Netzwerkkommunikation und Byteorder U8-1 Überblick Wiederholung: Byteorder Besprechung der Miniklausur Online-Evaluation big endian

Mehr

An Open Interface for Network Programming under Microsoft Windows. DI. Dr. Peter René Dietmüller

An Open Interface for Network Programming under Microsoft Windows. DI. Dr. Peter René Dietmüller Windows Sockets An Open Interface for Network Programming under Microsoft Windows DI. Dr. Peter René Dietmüller Institut für Informationsverarbeitung und Mikroprozessortechnik Johannes Kepler Universität

Mehr

Betriebssysteme. Kommunikation von Prozessen und Threads. Sommersemester Prof. Dr. Peter Mandl. Seite 1. Prof. Dr. Peter Mandl.

Betriebssysteme. Kommunikation von Prozessen und Threads. Sommersemester Prof. Dr. Peter Mandl. Seite 1. Prof. Dr. Peter Mandl. Kommunikation von Prozessen und Threads Sommersemester 2014 Seite 1 Gesamtüberblick 1. Einführung in 2. Betriebssystemarchitekturen und Betriebsarten 3. Interruptverarbeitung in n 4. Prozesse und Threads

Mehr

1 Client-Server-Modell

1 Client-Server-Modell U1 Interprozesskommunikation mit Sockets U1 Interprozesskommunikation mit Sockets U1-1 Organisatorisches U1-1 Organisatorisches Organisatorisches IPC-Grundlagen Adressierung in IP-Netzwerken Betriebssystemschnittstelle

Mehr

Client/Server-Systeme

Client/Server-Systeme Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth WS 2008/2009 Teil 2 Sockets cs 0200 ww6 wgs 09-96 Literatur Socket-Schnittstelle J. Martin, J. Leben: TCP/IP Netzwerke. Prentice Hall, 1994, Kapitel

Mehr

Kommunikation von Prozessen und Threads

Kommunikation von Prozessen und Threads Kommunikation von Prozessen und Threads Sommersemester 2015 Prof. Dr. Peter Mandl Prof. Dr. Peter Mandl Seite 1 Gesamtüberblick 1. Einführung in Computersysteme 2. Entwicklung von Betriebssystemen 3. Architekturansätze

Mehr

Netzwerkprogrammierung mit Sockets und C. Ulrich Vogel

Netzwerkprogrammierung mit Sockets und C. Ulrich Vogel Netzwerkprogrammierung mit Sockets und C Ulrich Vogel Netzwerkprogrammierung mit Sockets und C von Ulrich Vogel Dieses Tutorial ist eine Einführung in die Netzwerkprogrammierung mit Hilfe von Sockets.

Mehr

UDP auf Basis der BSD-Sockets 273

UDP auf Basis der BSD-Sockets 273 UDP auf Basis der BSD-Sockets 273 Bei socket lässt sich SOCK_DGRAM als zweiter Parameter angeben. Der Netzwerkdienst kann dann wie gewohnt setsockopt und bind aufrufen. Der Systemaufruf listen fällt weg,

Mehr

Einführung in die Netzwerkprogrammierung mit Sockets und C

Einführung in die Netzwerkprogrammierung mit Sockets und C Einführung in die Netzwerkprogrammierung mit Sockets und C 1 BrB/V0.1 1 Vorwort Dieses Tutorial ist eine Einführung in die Netzwerkprogrammierung mit Hilfe von Sockets und der Programmiersprache C. Als

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 3. UNIX/Linux-Dateisysteme und zugehörige Systemaufrufe und Kommandos (Teil I) Wintersemester 206/7 UNIX/Linux-Dateisystem(e) Systemaufrufe zur Dateiarbeit:

Mehr

Verteilte Systeme - Java Networking (Sockets) -

Verteilte Systeme - Java Networking (Sockets) - Verteilte Systeme - Java Networking (Sockets) - Prof. Dr. Michael Cebulla 30. Oktober 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 36 M. Cebulla Verteilte Systeme Gliederung Grundlagen TCP/IP

Mehr

21 Netzwerkprogrammierung mit Sockets

21 Netzwerkprogrammierung mit Sockets 302 21 Netzwerkprogrammierung mit Sockets Das Socket-API liegt zwischen den transportorientierten und den anwendungsorientierten Netzwerkschichten und tritt in der Praxis in 2 Formen auf: Ursprünglich

Mehr

Adressauflösung. IP Adresse Physikalische Adresse 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.16 85:48:A4:28:AA:18

Adressauflösung. IP Adresse Physikalische Adresse 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.16 85:48:A4:28:AA:18 Adressauflösung IP Adresse Physikalische Adresse 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.16 85:48:A4:28:AA:18 IP Adresse Physikalische Adresse 128.96.34.15??? 128.96.34.16 85:48:A4:28:AA:18 128.96.34.15

Mehr

Blatt 2, Kommunikationskanäle. Betriebssysteme. Deadlocks. Kommunikationskanäle. y=12; recv(k2, y); y = y+4; send(k1, y);

Blatt 2, Kommunikationskanäle. Betriebssysteme. Deadlocks. Kommunikationskanäle. y=12; recv(k2, y); y = y+4; send(k1, y); Blatt 2, Kommunikationskanäle Betriebssysteme Übung 7 Martin Alt Gruppe PVS Institut für Informatik Gegeben sind die beiden folgenden Prozesse: P 1 : P 2 : send(k2, x); recv(k1,z); recv(k2, y); send(k1,

Mehr

Linux Prinzipien und Programmierung

Linux Prinzipien und Programmierung Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2012/2013 1 / 25 Netzwerkkonfiguration TCP (Forts.) UDP IPC über Unix Domain Sockets 2 / 25 Grundlagen Netzwerk

Mehr

Programmieren mit sockets

Programmieren mit sockets Netzwerk-Programmierung Programmieren mit sockets Sven Hartmeier shartmei@techfak.uni-bielefeld.de Übersicht Datentypen und Konversionsfunktionen minimaler Client minimaler Server Netzwerk-Programmierung

Mehr

Client/Server-Systeme

Client/Server-Systeme Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth WS 2003/2004 Teil 2 Sockets cs 0200 ww6 wgs 09-96 Literatur Socket-Schnittstelle J. Martin, J. Leben: TCP/IP Netzwerke. Prentice Hall, 1994, Kapitel

Mehr

U7-1 Hinweise zur Evaluation. U7-2 Netzwerkkommunikation und Byteorder. U7-3 Sockets. Evaluation. Frage "eigener Aufwand zur Vor- und Nachbereitung"

U7-1 Hinweise zur Evaluation. U7-2 Netzwerkkommunikation und Byteorder. U7-3 Sockets. Evaluation. Frage eigener Aufwand zur Vor- und Nachbereitung U7 Interprozesskommunikation mit Sockets U7 Interprozesskommunikation mit Sockets U7-1 Hinweise zur Evaluation U7-1 Hinweise zur Evaluation Evaluation Frage "eigener Aufwand zur Vor- und Nachbereitung"

Mehr

10. Vorlesung Betriebssysteme

10. Vorlesung Betriebssysteme Dr. Christian Baun 10. Vorlesung Betriebssysteme Hochschule Mannheim WS1213 1/63 10. Vorlesung Betriebssysteme Dr. Christian Baun Hochschule Mannheim Fakultät für Informatik wolkenrechnen@gmail.com Dr.

Mehr

Client/Server-Systeme

Client/Server-Systeme Client/Server-Systeme Prof. Dr.-Ing. Wilhelm G. Spruth WS 2004 / 2005 Teil 2 Sockets cs 0200 ww6 wgs 09-96 Literatur Socket-Schnittstelle J. Martin, J. Leben: TCP/IP Netzwerke. Prentice Hall, 1994, Kapitel

Mehr

Themen. Transportschicht. Internet TCP/UDP. Stefan Szalowski Rechnernetze Transportschicht

Themen. Transportschicht. Internet TCP/UDP. Stefan Szalowski Rechnernetze Transportschicht Themen Transportschicht Internet TCP/UDP Transportschicht Schicht 4 des OSI-Modells Schicht 3 des TCP/IP-Modells Aufgaben / Dienste: Kommunikation von Anwendungsprogrammen über ein Netzwerk Aufteilung

Mehr

1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells.

1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells. Übung 7 1.) Nennen Sie Aufgaben und mögliche Dienste der Transportschicht (Transport Layer) des ISO/OSI-Schichtenmodells. 2.) Charakterisieren Sie kurz das User Datagram Protokoll (UDP) aus der Internetprotokollfamilie

Mehr

Netzwerkprogrammierung unter Linux und UNIX

Netzwerkprogrammierung unter Linux und UNIX Netzwerkprogrammierung unter Linux und UNIX Bearbeitet von Stefan Fischer, Walter Müller 2. Auflage 1999. Buch. XII, 228 S. Hardcover ISBN 978 3 446 21093 6 Format (B x L): 14 x 20,9 cm Gewicht: 329 g

Mehr

Theoretische Aspekte

Theoretische Aspekte Webserver mit Win32 API Datum: 04.02.03 Autor: Michael Hielscher Homepage: www.genesis-x7.de Theoretische Aspekte Aufbau eines Webservers Als erstes sollte man im Abschnitt Multithreaded SocketServer nachlesen

Mehr

6.1 Verbindungsorientiert, Verbindunslos

6.1 Verbindungsorientiert, Verbindunslos Kapitel 6 client server Bisher wurden Methoden besprochen, die auf einem Rechner funktionieren. Dabei wurde bei threads bereits wirklich parallel gerechnet, sofern mehrere Prozessoren vorhanden waren.

Mehr

Transmission Control Protocol (TCP)

Transmission Control Protocol (TCP) Transmission Control Protocol (TCP) Verbindungsorientiertes Protokoll, zuverlässig, paketvermittelt stream-orientiert bidirektional gehört zur Transportschicht, OSI-Layer 4 spezifiziert in RFC 793 Mobile

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 10. UNIX/Linux: Reaktion auf Fehler Wintersemester 2016/17 Reaktion auf Fehler: Übersicht Systemaufrufe: 1. Rückkehrwert: in den meisten (aber nicht in allen!)

Mehr

Labor Nachrichtentechnik, Versuch 11 Teil 2: Socket-Programmierung

Labor Nachrichtentechnik, Versuch 11 Teil 2: Socket-Programmierung Labor Nachrichtentechnik, Versuch 11 Teil 2: Socket-Programmierung 1. Hintergrundliteratur Ausgewählte Vorlesungskapitel zur Socket-Programmierung. Linksammlung zu auf jochenkoegel.de/dhbw mit Anleitung

Mehr

Kapitel 4: Design von Client/Server-Software. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes

Kapitel 4: Design von Client/Server-Software. Middleware in Java vieweg 2005 Steffen Heinzl, Markus Mathes Kapitel 4: Design von Client/Server-Software Definition: Client und Server Client Ein Client ist ein Dienstnutzer, der von einem Server aktiv einen Dienst anfordert und anschließend darauf wartet, dass

Mehr

TCP-Sockets in Java und C. Verteilte Systeme Hochschule Regensburg Vorlesung 4, 25.04.2012 Universitätsstraße 31, 93053 Regensburg

TCP-Sockets in Java und C. Verteilte Systeme Hochschule Regensburg Vorlesung 4, 25.04.2012 Universitätsstraße 31, 93053 Regensburg TCP-Sockets in Java und C Hochschule Regensburg Vorlesung 4, 25.04.2012 Universitätsstraße 31, 93053 Regensburg Prof. Dr. Jan Dünnweber Ziel: Threads sollen unabhängig von ihrer Position kommunizieren

Mehr

Verbessertes Konzept: Monitore

Verbessertes Konzept: Monitore Verbessertes Konzept: Monitore Ein Nachteil von Semaphoren ist die Notwendigkeit zur expliziten Anforderung P und Freigabe V des kritischen Bereiches durch den Programmierer Vergißt der Entwickler z.b.

Mehr

Programmieren von UNIX-Netzen

Programmieren von UNIX-Netzen W. R. Stevens Programmieren von UNIX-Netzen Grundlagen, Programmierung, Anwendung aus dem Englischen übersetzt von Michael Frese, Werner Maisch, Eberhard Trautwein Eine Coedition der Verlage Carl Hanser

Mehr

Verteilte Systeme. Organisatorisches. Secure Identity Research Group

Verteilte Systeme. Organisatorisches. Secure Identity Research Group Verteilte Systeme Organisatorisches Tutorium Do, 8:30-10:00 Philipp Schmidt (ab 28.4.) Fr, 14:15-16:00 Andreas Nüßlein (ab 29.4.) Verteilte Systeme Klassifizierung von Kommunikationsdiensten II Fehlertypen

Mehr

Speicherbasierte Kommunikation (T) Realisierung von Semaphoren (T) Shared Memory (P) Synchronisation mittels Semaphoren (P)

Speicherbasierte Kommunikation (T) Realisierung von Semaphoren (T) Shared Memory (P) Synchronisation mittels Semaphoren (P) Systempraktikum im Wintersemester 2009/2010 (LMU): Vorlesung vom 26.11. Foliensatz 5 Speicherbasierte Kommunikation (T) Realisierung von Semaphoren (T) Shared Memory (P) Synchronisation mittels Semaphoren

Mehr

Beispiel für einen IPC-Server, der seinen Dienst über den Global Name Service im Netzwerk bekannt gibt. Header-Dateien einbinden

Beispiel für einen IPC-Server, der seinen Dienst über den Global Name Service im Netzwerk bekannt gibt. Header-Dateien einbinden Dokument: gns_ipc_server.c, 1 - Seite 1 - - 1: 1 von 1 - Beispiel für einen IPC-Server, der seinen Dienst über den Global Name Service im Netzwerk bekannt gibt. Header-Dateien einbinden int main(int argc,

Mehr

Einführung in die Systemprogrammierung unter Linux

Einführung in die Systemprogrammierung unter Linux Einführung in die Systemprogrammierung unter Linux Systemsoftware Praktikum Inhalt Übersicht über benötigte Systemfunktionen Programmieren unter Linux Grundlegendes Message-Queue Shared Memory Semaphore

Mehr

Dienstspezifikation nach RFC 2396 193

Dienstspezifikation nach RFC 2396 193 Dienstspezifikation nach RFC 2396 193 Für die Kombination aus Rechnernamen (oder alternativ einer IP-Adresse) und einer Portnummer gibt es mit RFC 2396 einen Standard: hostport host [ : port ] host hostname

Mehr

Kommunikation im Netzwerk

Kommunikation im Netzwerk Kommunikation im Netzwerk Die Client-Server Beziehung Der Client stellt eine Frage (Request) an den Server, dieser sendet eine Antworte (Response) zurück. Grundlage ist die Verfügbarkeit von Sockets, die

Mehr

TCP/UDP. Transport Layer

TCP/UDP. Transport Layer TCP/UDP Transport Layer Lernziele 1. Wozu dient die Transportschicht? 2. Was passiert in der Transportschicht? 3. Was sind die wichtigsten Protkolle der Transportschicht? 4. Wofür wird TCP eingesetzt?

Mehr

Betriebssysteme Teil 11: Interprozess-Kommunikation

Betriebssysteme Teil 11: Interprozess-Kommunikation Betriebssysteme Teil 11: Interprozess-Kommunikation 19.12.15 1 Übersicht Grundbegriffe Shared Memory Pipelines Messages Ports Sockets 2 Grundbegriffe Interprocess-Kommunikation = Austausch von Daten über

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN 2. UNIX/Linux-Prozessverwaltung und zugehörige Systemaufrufe Wintersemester 2015/16 2. Die UNIX/LINUX-Prozessverwaltung Aufgaben: 1. Erzeugen neuer Prozesse

Mehr

Java und Netzwerkkommunikation

Java und Netzwerkkommunikation Java und Netzwerkkommunikation Ziel: Kommunikation über Rechnergrenzen hinweg Grundlagen Sockets in Java Java-Netzwerk-Einführung Seite 1 Grundbegriffe Senden und Empfangen von Daten! Frau B Herr A Sender

Mehr

C - Grundlagen und Konzepte

C - Grundlagen und Konzepte C - Grundlagen und Konzepte Networking in C Arbeitsbereich Wissenschaftliches Rechnen Fachbereich Informatik Fakultät für Mathematik, Informatik und Naturwissenschaften Universität Hamburg Vorgelegt von:

Mehr

Probeklausur zu Systemnahe Software II SS 2012 Dr. Andreas Borchert mit Markus Schnalke

Probeklausur zu Systemnahe Software II SS 2012 Dr. Andreas Borchert mit Markus Schnalke Probeklausur zu Systemnahe Software II SS 2012 Dr. Andreas Borchert mit Markus Schnalke 1 Aufgabe 1 (15 Punkte) Prozesse, Signale und Interprozesskommunikation (a) 3 Punkte Was wird von dem folgenden Programm

Mehr

Programmierung mit sockets

Programmierung mit sockets Netzwerk-Programmierung Programmierung mit sockets Jan Krueger jkrueger@cebitec.uni-bielefeld.de Alexander Sczyrba asczyrba@cebitec.uni-bielefeld.de Übersicht Datentypen und Konvertierung Minimaler Client

Mehr

I. Interprozesskommunikation

I. Interprozesskommunikation I. Interprozesskommunikation I.1 Überblick Konkurrenz zw. Prozessen und Threads bzgl. gemeinsamer Ressourcen Synchronisierung. Kooperation zw. Prozessen u. Threads, um Aufgaben gemeinsam zu bearbeiten

Mehr

Verteilte Systeme Kapitel 4: Realisierung von Netzwerkdiensten

Verteilte Systeme Kapitel 4: Realisierung von Netzwerkdiensten Verteilte Systeme Kapitel 4: Realisierung von Netzwerkdiensten Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer Inhaltsüberblick der Vorlesung

Mehr

Sockets - Eine Programmierschnittstelle für Kommunikation im Netz

Sockets - Eine Programmierschnittstelle für Kommunikation im Netz Sockets - Eine Programmierschnittstelle für Kommunikation im Netz M. Jäger - FB MNI - FH Gießen-Friedberg 24. November 2002 Inhaltsverzeichnis 1 Socket-Konzept 2 2 Internet-Sockets 2 2.1 Socket-Aufruf...................................

Mehr

Linux Prinzipien und Programmierung

Linux Prinzipien und Programmierung Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2012/2013 1 / 24 RPMs Socket-Programmierung TCP 2 / 24 RPMs: Grundlagen Die meisten Linux-Distributionen benutzen

Mehr

Linux Prinzipien und Programmierung

Linux Prinzipien und Programmierung Linux Prinzipien und Programmierung Dr. Klaus Höppner Hochschule Darmstadt Wintersemester 2011/2012 1 / 24 RPMs Socket-Programmierung TCP 2 / 24 RPMs: Grundlagen Die meisten Linux-Distributionen benutzen

Mehr

Netzwerkprogrammierung mit C++

Netzwerkprogrammierung mit C++ Netzwerkprogrammierung mit C++ Bernhard Trummer Linux User Group Graz für die Linuxtage03 bernhard.trummer@gmx.at 24. April 2003 Typeset by FoilTEX Übersicht System Calls: Wie erzeugt man Sockets? Wie

Mehr

Programmierschnittstellen

Programmierschnittstellen Programmierschnittstellen Dr. Hannes P. Lubich Bank Julius Bär Zürich IP Next Generation - Programmierschnittstellen (1) Die Internet-Programmierschnittstelle: Sockets Unterstützung verschiedener Protokolle

Mehr

shri Raw Sockets Prof. Dr. Ch. Reich

shri Raw Sockets Prof. Dr. Ch. Reich shri Raw Sockets Prof. Dr. Ch. Reich Szenario: Verschicken einer gespooften Ping-Message IP-Source-Adresse ist Adresse des Opfers Nachrichtenformat: IP-Header (normal, außer IP-Source-Address ist einstellbar)

Mehr

G.1 Überblick (2) G.1 Überblick (2) G.1 Überblick

G.1 Überblick (2) G.1 Überblick (2) G.1 Überblick G Rechnerkommunikation (TCP/IP) G Rechnerkommunikation (TCP/IP) G.1 Überblick (2) G.1 Überblick G.1 Überblick Ende der 70er Jahre in den USA Entwicklung neuer Netzwerkprotokolle, gefördert durch DARPA

Mehr

Vorlesung "Verteilte Systeme" Wintersemester 2000/2001. Verteilte Systeme. Internet-Protokolle: FTP, TELNET, SMTP, DNS, NSP, NTP, HTTP,...

Vorlesung Verteilte Systeme Wintersemester 2000/2001. Verteilte Systeme. Internet-Protokolle: FTP, TELNET, SMTP, DNS, NSP, NTP, HTTP,... Verteilte Systeme 3. Protokollfamilie TCP/IP Einordnung in OSI-Modell Internet-Protokolle: FTP, TELNET, SMTP, DNS, NSP, NTP, HTTP,... Ebene 4-7 RPC-Protokolle PVM, MPI, Corba,... UDP TCP Ebene 3 IP / ICMP

Mehr

Eine Mini-Shell als Literate Program

Eine Mini-Shell als Literate Program Eine Mini-Shell als Literate Program Hans-Georg Eßer 16.10.2013 Inhaltsverzeichnis 1 Eine Mini-Shell 1 1.1 Einen Befehl parsen......................... 2 1.2 Was tun mit dem Kommando?...................

Mehr

IPv6 in der Praxis. Felix von Leitner CCC Berlin felix@ccc.de. Dezember 2000. IPv6 in der Praxis

IPv6 in der Praxis. Felix von Leitner CCC Berlin felix@ccc.de. Dezember 2000. IPv6 in der Praxis IPv6 in der Praxis Felix von Leitner CCC Berlin felix@ccc.de Dezember 2000 IPv6 in der Praxis Agenda 1. Autoconfiguration, Neighbor Discovery 2. Router Discovery, Router Renumbering 3. BSD socket API Erweiterungen

Mehr

Alles Text Sockets à la Plan 9

Alles Text Sockets à la Plan 9 Alles Text Sockets à la Plan 9 Petra Gremeyer, Axel-Tobias Schreiner, Fachbereich Mathematik/Informatik, Universität Osnabrück Plan 9, das neue verteilte Betriebssystem der UNIX-Schöpfer, hat bekanntlich

Mehr

Vorwort. Martin Gräfe. C und Linux. Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen ISBN:

Vorwort. Martin Gräfe. C und Linux. Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen ISBN: Vorwort Martin Gräfe C und Linux Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen ISBN: 978-3-446-42176-9 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42176-9

Mehr

Verteilte Systeme - Java Networking (Sockets) 2 -

Verteilte Systeme - Java Networking (Sockets) 2 - Verteilte Systeme - Java Networking (Sockets) 2 - Prof. Dr. Michael Cebulla 06. November 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 30 Michael Cebulla Verteilte Systeme Gliederung Wiederholung:

Mehr

Client/Server Programmierung mit Sockets

Client/Server Programmierung mit Sockets 1 Client/Server Programmierung mit Sockets 1 ZUGRUNDELIEGENDE PROTOKOLLE... 2 1.1 EINFÜHRUNG... 2 1.2 PROTOKOLLSTAPEL... 2 1.3 DIE ETHERNETSCHICHT... 4 1.4 VERPACKEN VON NUTZDATEN... 4 1.5 DIE IP-SCHICHT...

Mehr

Unterschiede zu Pipelines 165

Unterschiede zu Pipelines 165 Netzwerkdienste 164 Ein Netzwerkdienst ist ein Prozess, der unter einer Netzwerkadresse einen Dienst anbietet. Ein Klient, der die Netzwerkadresse kennt, kann einen bidirektionalen Kommunikationskanal

Mehr

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften

Programmiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder

Mehr

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN

PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN UNIX/Linux-Interprozesskommunikation 8. UNIX/Linux-Signale Wintersemester 2015/16 UNIX/Linux-IPC-Mechanismen Nachrichtenbasierter Informationsaustausch: 5. 1.

Mehr

Netzwerksicherheit Musterlösung Übungsblatt 5: Firewalls

Netzwerksicherheit Musterlösung Übungsblatt 5: Firewalls Institut für Informatik Philipp Hagemeister Netzwerksicherheit Musterlösung Übungsblatt 5: Firewalls 1 Virus-Konstruktion Erstellen Sie nun ein Programm in einer Programmiersprache Ihrer Wahl, welches

Mehr

MODBUS/TCP und Beckhoff Steuerelemente

MODBUS/TCP und Beckhoff Steuerelemente MODBUS/TCP und Beckhoff Steuerelemente Die 1.7.5 Version wurde zum DOMIQ/Base Modul die Funktion der Bedienung des MOD- BUS/TCP und MODBUS/UDP Protokolls hinzugefügt. Das Base Modul erfüllt die Rolle des

Mehr

Hintergrundinformationen/Begriffe. Netzwerkverbindungen. Virtuelle Kreise. Sockettypen. Inhalt, vorige Seite, nächste Seite

Hintergrundinformationen/Begriffe. Netzwerkverbindungen. Virtuelle Kreise. Sockettypen. Inhalt, vorige Seite, nächste Seite Hintergrundinformationen/Begriffe Inhalt, vorige Seite, nächste Seite Hintergrundinformationen/Begriffe Netzwerkverbindungen Netzwerkverbindungen können entweder verbindungsorientiert oder verbindungsfrei

Mehr

Einreihung in eine einfach verkettete Liste Elementaroperation zum Anhängen eines Kettenglieds

Einreihung in eine einfach verkettete Liste Elementaroperation zum Anhängen eines Kettenglieds Koordination durch Kommunikation Interprozesskommunikation (engl. inter-process communication, IPC) Interaktion von Prozessen ist zwingend, um in einem Mehrprozesssystem Fortschritte in der Programmverarbeitung

Mehr

Leseprobe. Martin Gräfe. C und Linux. Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen ISBN: 978-3-446-42176-9

Leseprobe. Martin Gräfe. C und Linux. Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen ISBN: 978-3-446-42176-9 Leseprobe Martin Gräfe C und Linux Die Möglichkeiten des Betriebssystems mit eigenen Programmen nutzen ISBN: 978-3-446-42176-9 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42176-9

Mehr

Praktikum Rechnernetze Aufgabe 3: Messung mit dem Protokollanalyzer

Praktikum Rechnernetze Aufgabe 3: Messung mit dem Protokollanalyzer Praktikum Rechnernetze Aufgabe 3: Messung mit dem Protokollanalyzer 16. Mai 2001 Niels-Peter de Witt Matrikelnr. 2083921 Karsten Wolke Matrikelnr. 2083967 Helge Janicke Matrikelnr. 2083973 1 Rechnernetze

Mehr

7.5 Maskerade. (spoofing)

7.5 Maskerade. (spoofing) 7.5 Maskerade (spoofing) Angreifer tritt mit gefälschter Absender-Adresse auf, entweder mit eigenen Nachrichten oder mit entsprechend modifizierten Nachrichten anderer (man-in-the-middle attack) IP: TCP/UDP:

Mehr

UDP User Datagramm Protokoll

UDP User Datagramm Protokoll UDP User Datagramm Protokoll Marco Gerland Janina de Jong Internet Protokolle WS 03 / 04 1/31 Einführung IP Datagramme werden durchs Internet geroutet abh. von der IP Adresse Anhand der Ziel IP Adresse

Mehr

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free()

Übungspaket 29 Dynamische Speicherverwaltung: malloc() und free() Übungspaket 29 Dynamische Speicherverwaltung malloc() und free() Übungsziele Skript In diesem Übungspaket üben wir das dynamische Alloziieren 1. und Freigeben von Speicherbereichen 2. von Zeichenketten

Mehr

Vorlesung Betriebssysteme II

Vorlesung Betriebssysteme II 1 / 15 Vorlesung Betriebssysteme II Thema 3: IPC Robert Baumgartl 20. April 2015 2 / 15 Message Passing (Nachrichtenaustausch) Prinzip 2 grundlegende Operationen: send(), receive() notwendig, wenn kein

Mehr

Betriebssysteme (BS) Interprozesskommunikation. Olaf Spinczyk.

Betriebssysteme (BS) Interprozesskommunikation. Olaf Spinczyk. Betriebssysteme (BS) Interprozesskommunikation http://ess.cs.tu-dortmund.de/de/teaching/ss2017/bs/ Olaf Spinczyk olaf.spinczyk@tu-dortmund.de http://ess.cs.tu-dortmund.de/~os AG Eingebettete Systemsoftware

Mehr