Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger

 << zurück
Linux-UNIX-Programmierung von Jürgen Wolf
Das umfassende Handbuch – 2., aktualisierte und erweiterte Auflage 2006
Buch: Linux-UNIX-Programmierung

Linux-UNIX-Programmierung
1216 S., mit CD, 49,90 Euro
Rheinwerk Computing
ISBN 3-89842-749-8
gp Kapitel 11 Netzwerkprogrammierung
  gp 11.1 Einführung
  gp 11.2 Aufbau von Netzwerken
    gp 11.2.1 ISO/OSI und TCP/IP – Referenzmodell
    gp 11.2.2 Das World Wide Web (Internet)
  gp 11.3 TCP/IP – Aufbau und Struktur
    gp 11.3.1 Netzwerkschicht (Datenübertragung)
    gp 11.3.2 Internetschicht
    gp 11.3.3 Transportschicht (TCP, UDP)
    gp 11.3.4 Anwendungsschicht
  gp 11.4 TCP Socket
  gp 11.5 Kommunikationsmodell
  gp 11.6 Grundlegende Funktionen zum Zugriff auf die Socket-Schnittstelle
    gp 11.6.1 Ein Socket anlegen – socket()
    gp 11.6.2 Verbindungsaufbau – connect()
    gp 11.6.3 Socket mit einer Adresse verknüpfen – bind()
    gp 11.6.4 Auf Verbindungen warten – listen() und accept()
    gp 11.6.5 Senden und Empfangen von Daten (1) – write() und read()
    gp 11.6.6 Senden und Empfangen von Daten (2) – send() und recv()
    gp 11.6.7 Verbindung schließen – close()
  gp 11.7 Aufbau eines Clientprogramms
    gp 11.7.1 Zusammenfassung: Clientanwendung und Quellcode
  gp 11.8 Aufbau des Serverprogramms
    gp 11.8.1 Zusammenfassung: Serveranwendung und Quellcode
  gp 11.9 IP-Adressen konvertieren, manipulieren und extrahieren
    gp 11.9.1 inet_aton(), inet_pton() und inet_addr()
    gp 11.9.2 inet_ntoa() und inet_ntop()
    gp 11.9.3 inet_network()
    gp 11.9.4 inet_netof()
    gp 11.9.5 inet_lnaof()
    gp 11.9.6 inet_makeaddr()
  gp 11.10 Namen und IP-Adressen umwandeln
    gp 11.10.1 Name-Server
    gp 11.10.2 Informationen zum Rechner im Netz – gethostbyname und gethostbyaddr
    gp 11.10.3 Service-Informationen – getservbyname() und getservbyport()
  gp 11.11 Der Puffer
  gp 11.12 Standard-E/A-Funktionen verwenden
    gp 11.12.1 Pufferung von Standard-E/A-Funktionen
  gp 11.13 Parallele Server
  gp 11.14 Syncrones Multiplexing – select()
  gp 11.15 POSIX-Threads und Netzwerkprogrammierung
  gp 11.16 Optionen für Sockets setzen bzw. erfragen
    gp 11.16.1 setsockopt()
    gp 11.16.2 getsockopt()
    gp 11.16.3 Socket-Optionen
  gp 11.17 UDP
    gp 11.17.1 Clientanwendung
    gp 11.17.2 Serveranwendung
    gp 11.17.3 recvfrom() und sendto()
    gp 11.17.4 bind() verwenden oder weglassen
  gp 11.18 UNIX-Domain-Sockets (IPC)
    gp 11.18.1 Die Adressstruktur von UNIX-Domain-Sockets
    gp 11.18.2 Lokale Sockets erzeugen – socketpair()
  gp 11.19 Multicast-Socket
    gp 11.19.1 Anwendungsgebiete von Multicast-Verbindungen
  gp 11.20 Nicht blockierende I/O-Sockets
  gp 11.21 Etwas zu Streams und TLI, Raw Socket, XTI
    gp 11.21.1 Raw Socket
    gp 11.21.2 TLI und XTI
    gp 11.21.3 RPC (Remote Procedure Call)
  gp 11.22 IPv4 und IPv6
    gp 11.22.1 IPv6 – ein wenig genauer
  gp 11.23 Netzwerksoftware nach IPv6 portieren
    gp 11.23.1 Konstanten
    gp 11.23.2 Strukturen
    gp 11.23.3 Funktionen
  gp 11.24 Sicherheit und Verschlüsselung


Rheinwerk Computing

11.22 IPv4 und IPvdowntop

Im Buch war häufig die Rede von IPv4 und dem zukünftigen IPv6 – wobei der eine oder andere Leser mit beidem vielleicht nichts anfangen konnte. IPv4 steht für Internet-Protokoll Version 4 und wurde 1973 von den Amerikanern eingeführt, um den Rechner des Pentagons mit verschiedenen Hochschulen des Landes im damaligen ARPA-Netz zu verbinden.

In der Zeit des Internet-Booms, wo immer mehr Menschen diese Technik verwenden, liegen viele Schwächen auf der Hand. Allen voran die Adresslänge von 32 Bit (xxx.xxx.xxx.xxx) droht allmählich knapp zu werden (besonders die Klasse-A-, Klasse-B- und Klasse-C-Netze). Daneben ist dieses Protokoll bezüglich Sicherheit auch nicht das beste.

Wo ist IPv5, wird sich manch einer fragen? IPv5 wurde ebenfalls schon recht früh entwickelt, konnte sich allerdings nicht durchsetzen, da die Soft- und Hardware-Hersteller zu dieser Zeit aus Kostengründen keine Portierung ihrer Produkte angeboten haben. Dies hat sich aber mit der Entwicklung von IPv6 stark verändert – weshalb die Chancen gut stehen, dass sich IPv6 als Standard durchsetzen kann.

Weshalb die Einführung von IPv6 nicht vollzogen wird, lässt sich recht schwer nachvollziehen – wobei sich wohl die vielen Provider vor den eventuellen Problemen fürchten, die damit auftreten könnten. Natürlich spielt dabei auch der finanzielle Aspekt eine große Rolle. Viele Hersteller von z. B. Routern bieten IPv6-Support immer noch in der Beta-Version an – lassen aber immer noch die Finger von kommerziellen Versionen. Aber egal, ob finanzielle oder technische Aspekte den einen oder anderen Provider immer noch zurückhalten, zwangsläufig wird man in absehbarer Zukunft IPv6 einführen müssen, wenn keine Adressen mehr vorhanden sind und man damit an die Grenzen gestoßen ist. Wann das allerdings der Fall sein wird, steht noch in den Sternen.


Rheinwerk Computing

11.22.1 IPv6 – ein wenig genauer  toptop

Die Idee zum neuen Protokoll kam Anfang der 90er-Jahre auf und wurde unter dem Namen IPnG zusammengefasst. Vorrangig ging es um die Anzahl der Bits, die man für die Adresslänge verwenden konnte. Die Ideen kreisten von 64 Bit bis hin zu einer variablen Länge, um das Problem Adressknappheit für immer zu lösen. An Ende entschied man sich für eine Adresslänge von 128 Bit (3,4 * 1038  ). Nachdem die Entwürfe erschienen waren, wurde 1997 IPv6 zum Draft Standard erklärt.

Würde man jetzt bei IPv6 die bisherige Schreibweise (xxx.xxx.xxx.xxx) verwenden, hätten Sie folgende unhandliche Adresse (xxx.xxx.xxx.xxx. xxx.xxx.xxx.xxx.xxx.xxx.xxx. xxx.xxx.xxx.xxx.xxx). Daher hat man beschlossen, diese 128 Bit durch 16-Bit-Integerzahlen (anstatt bisher durch 8 Bit) darzustellen. Jeder Integer wird dabei durch ein Tupel in hexadezimaler Ziffer repräsentiert. Die einzelnen Tupels werden durch Doppelpunkte voneinander getrennt (z. B. 1ffa:399:277:0:0:0:0:1). Diese Schreibweise kann man jetzt mit einer Regel des IPv6 zu einer komprimierten Schreibweise zusammenfassen, die aufeinander folgende Nullen durch zwei Doppelpunkte ersetzt (z. B. 1ffa:399:277::1). Und damit die bestehenden IPv4-Adressen im IPv6-Adressraum ebenfalls erhalten bleiben, kann folgende Schreibweise verwendet werden: ::ffff:7f00:0001

Natürlich ließe sich dazu noch eine Menge mehr schreiben – weshalb Sie hierzu auf der Buch-CD eine sehr gute Dokumentation zu IPv6 finden, die mit freundlicher Genehmigung von der Webseite http://www.ipv6-net.de/ stammt.

 << zurück
  
  Zum Rheinwerk-Shop
Neuauflage: Linux-UNIX-Programmierung
Neuauflage:
Linux-UNIX-
Programmierung

bestellen
 Ihre Meinung?
Wie hat Ihnen das Openbook gefallen?
Ihre Meinung

 Buchtipps
Zum Rheinwerk-Shop: Linux-Server






 Linux-Server


Zum Rheinwerk-Shop: Das Komplettpaket LPIC-1 & LPIC-2






 Das Komplettpaket
 LPIC-1 & LPIC-2


Zum Rheinwerk-Shop: Linux-Hochverfügbarkeit






 Linux-
 Hochverfügbarkeit


Zum Rheinwerk-Shop: Shell-Programmierung






 Shell-
 Programmierung


Zum Rheinwerk-Shop: Linux Handbuch






 Linux Handbuch


 Lieferung
Versandkostenfrei bestellen in Deutschland, Österreich und der Schweiz
Info





Copyright © Rheinwerk Verlag GmbH 2006
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das Openbook denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt.
Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Rheinwerk Verlag GmbH, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de

Cookie-Einstellungen ändern