05.11.2013 Aufrufe

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

Zahn - Unix-Netzwerkprogramminerung mit Threads, Sockets und SSL

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

168 4 Gr<strong>und</strong>lagen der Socket-Programmierung<br />

Linklokale IPv6 UnicastAdresse<br />

10 Bit<br />

54 Bit<br />

64 Bit<br />

1111111010 0<br />

InterfaceID<br />

Sitelokale IPv6 UnicastAdresse<br />

10 Bit<br />

54 Bit<br />

64 Bit<br />

1111111011 SubnetzID InterfaceID<br />

Abb. 4.7. Link-lokale <strong>und</strong> Site-lokale Unicast-Adressen<br />

regionalen, lokalen oder nationalen Registrierstellen zugewiesenen Adreßbereich<br />

hinaus gehen. Dazu leiten die Router niemals IP-Pakete <strong>mit</strong> Site-lokaler<br />

Sender- oder Zieladresse nach außen weiter. Obwohl die Subnetz-ID bei Sitelokalen<br />

Unicast-Adressen, wie in Abb. 4.7 zu sehen, 54 Bit umfaßt, werden<br />

ans Internet angeschlossene Einrichtungen aus Gründen der Transparenz im<br />

Regelfall für diese lokalen Adressen die gleiche Subnetz-Strukturierung wie<br />

bei den globalen Unicast-Adressen verwenden.<br />

4.2.4 Netzwerkdarstellung von IP-Adressen<br />

Verständlicherweise ist die für uns lesbare <strong>und</strong> einigermaßen verständliche<br />

Darstellung der IP-Adressen nicht die Darstellung, wie sie von Computersystemen<br />

<strong>und</strong> Netzwerkkomponenten bevorzugt wird. Die in gepunkteter Dezimalschreibweise<br />

(IPv4) oder Hexadezimalschreibweise (IPv6) angegebenen<br />

Adressen müssen deshalb zur weiteren Verarbeitung in eine netzwerkkompatible<br />

Darstellung umgewandelt werden.<br />

Für eine maschinennahe Darstellung einer IPv4-Adresse eignet sich eine vorzeichenlose<br />

32 Bit lange Integerzahl, eine IPv6-Adresse wird dagegen in 16 aufeinanderfolgenden,<br />

vorzeichenlosen, 8 Bit langen Integerwerten gespeichert. In<br />

der Header-Datei werden dafür die beiden Adreßstrukturen<br />

in_addr <strong>und</strong> in6_addr vereinbart.<br />

struct in_addr<br />

{<br />

in_addr_t s_addr; /* network byte order */<br />

} /* in_addr_t equiv. to uint32_t */<br />

struct in6_addr<br />

{<br />

uint8_t s6_addr[16]; /* network byte order */<br />

}

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!