PROGRAMMIEREN MIT UNIX/LINUX-SYSTEMAUFRUFEN
|
|
|
- Anke Geiger
- vor 8 Jahren
- Abrufe
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 Olaf Spinczyk Arbeitsgruppe Eingebettete Systemsoftware Lehrstuhl für Informatik 12 TU Dortmund [email protected] http://ess.cs.uni-dortmund.de/~os/
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
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
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
Rechnernetze II SS 2015. Betriebssysteme / verteilte Systeme [email protected] Tel.: 0271/740-4050, Büro: H-B 8404
Rechnernetze II SS 2015 Betriebssysteme / verteilte Systeme [email protected] Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 14. Juli 2015 Betriebssysteme / verteilte Systeme Rechnernetze
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
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
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.
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.
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
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
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
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
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
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
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
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.
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,
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
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:
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
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
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
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
Programmieren mit sockets
Netzwerk-Programmierung Programmieren mit sockets Sven Hartmeier [email protected] Übersicht Datentypen und Konversionsfunktionen minimaler Client minimaler Server Netzwerk-Programmierung
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
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"
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 [email protected] Dr.
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
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
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
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
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.
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
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!)
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
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
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.
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
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
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,
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
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
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
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?
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
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
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
Programmierung mit sockets
Netzwerk-Programmierung Programmierung mit sockets Jan Krueger [email protected] Alexander Sczyrba [email protected] Übersicht Datentypen und Konvertierung Minimaler Client
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
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
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...................................
Netzwerkprogrammierung mit C++
Netzwerkprogrammierung mit C++ Bernhard Trummer Linux User Group Graz für die Linuxtage03 [email protected] 24. April 2003 Typeset by FoilTEX Übersicht System Calls: Wie erzeugt man Sockets? Wie
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
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)
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?...................
IPv6 in der Praxis. Felix von Leitner CCC Berlin [email protected]. Dezember 2000. IPv6 in der Praxis
IPv6 in der Praxis Felix von Leitner CCC Berlin [email protected] Dezember 2000 IPv6 in der Praxis Agenda 1. Autoconfiguration, Neighbor Discovery 2. Router Discovery, Router Renumbering 3. BSD socket API Erweiterungen
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
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...
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
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.
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
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
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
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
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
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:
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
Ü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
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
