Vernetzte Rechnersysteme und insbesondere das weltumspannende Internet haben unsere Welt verändert. Die Anziehungskraft derartiger Rechnernetze steht und fällt mit der Leistungsfähigkeit und Zuverlässigkeit der darüber verfügbaren Anwendungen. Ohne Online-Enzyklopädien, Online-Shopping, File-Sharing und vieles mehr wäre das Internet wohl nach wie vor nur für Wissenschaftler und Computerexperten von Interesse.
Bei der Entwicklung netzwerkfähiger Anwendungen sind neben der Kenntnis der Netzwerk-APIs auch fundierte Einsichten in die Systemprogrammierung unabdingbar. Aufbauend auf einer kompakten Einführung in die Unix-Systemprogrammierung erläutert der Autor anhand zahlreicher praktischer Beispiele die Programmierung nebenläufiger Abläufe mittels Unix-Prozessen und POSIX-Threads. Die Grundlagen der Netzwerkprogrammierung mit TCP/IP und der Sockets-API werden durch fünf einschlägige Implementierungsmuster für typische Server-Programme vertieft. Das Themenspektrum der Netzwerkprogrammierung wird durch die ausführliche Darstellung der Absicherung des Datenaustauschs mittels SSL/TLS am Beispiel von OpenSSL abgerundet.
Ausgehend von der Programmierung mehrerer, parallel zueinander arbeitender Prozesse erfolgt eine kompakte Einführung in die UNIX-Systemprogrammierung und in die Programmierung von POSIX-Threads (Pthreads), die insbesondere für parallele Anwendungen Effizienzsteigerungen bietet. Basierend auf den Prinzipien des TCP/IP-Protokolls erfolgt eine fundierte Darstellung der Programmierung von UNIX-Sockets, dem De-facto-Standard der UNIX-Netzwerkprogrammierung, und aller wichtigen Socket-Funktionen und -Optionen sowie der IP-Namens- und IP-Adressumwandlungen. Der Autor geht auf Sicherheitsaspekte insbesondere durch die ausführliche Darstellung des SSL- und TLS-Protokolls ein.
Markus Zahn
Entwicklung IEEE~Std~1003.1-2001 IPv4 IPv6 OpenSSL POSIX Threads Parallelität Processing Programmieren Programmierung Prozessmodell Pthreads Sockets TCP/IP UNIX