Netzwerk
TCP/IP (Webserver)
2 Netzwerkgrundlagen

Im folgenden Kapitel werden Grundlagen von Netzwerken sowie die Programmierung mit Netzwerkfunktionen auf Basis von TCP/IP vorgestellt.

 


2.1 Die IP Adresse

Die IP Adresse besteht aus 4 Bytes. Diese werden normalerweise dezimal durch Punkte getrennt dargestellt.

 

Hier ein Beispiel:

192.168.0.101  (Host-Adresse)

 

Solch eine IP Adresse bezeichnet einen Rechner  in einem IP Netzwerk. Zu beachten ist, das diese Adresse innerhalb des IP Netzes eindeutig sein muss, d.h. jeder Rechner im Netz muss eine eigene, eindeutige Adresse besitzen.

 

Anmerkung: Vergleichen kann man diese Adresse mit einer Hausnummer eines Hauses.

 

Meist werden Rechner zu einem Netzwerk zusammengefaßt. Diese Zusammenfassung ist willkürlich und richtet sich meist nach Organisationsformen, in denen die Rechner betrieben werden (z.B. Firmennetz, Abteilungsnetz, Testnetz, ...). Um die Zuordnung der Rechner zu einem Netzwerk zu bestimmen, wird die sogenannte Netzwerkadresse samt Maske (der Netmask) eingesetzt. Diese Adresse bildet den ersten Teil der IP Adresse eines Rechners; der Anteil wird durch die Netmask festgelegt. Die Netmask ist aus binärer Sicht eine Zahl, die mit Einsen (1) beginnt und ab einer bestimmten Stelle nur noch Nullen (0) hat.

 

Hier ein Beispiel

Host:192.168.0.101

Netmask: 255.255.255.0

Net-Adresse:192.168.0.0

 

Der Zusammenhang zwischen Hostadresse, Netmask und Netzwerkadresse ergibt sich folgendermaßen: Wird die Hostadresse und die Netmask mit logisch UND auf binärer Ebene verknüpft, so ergibt sich die Netzwerkadresse.

 

Auf obiges Beispiel angewendet ergibt sich

102.168.  0.101  11000000.10101000.00000000.01100101

255.255.255.  0 AND 11111111.11111111.11111111.00000000

-----------------------------------------------------------

192.168.  0.  0  11000000.10101000.00000000.00000000

 

Man unterscheidet drei Standardtypen von Netzwerken. Diese unterscheiden sich anhand ihrer Netmask.

 

Class A:255.0.0.0

Class B:255.255.0.0

Class C:255.255.255.0

 

Es spricht nichts dagegen, eine Netmask zu verwenden, die von diesem Standard abweicht.

 

Anmerkung: Innerhalb eines Netzwerkes brauchen die Datenpakete nicht geroutet zu werden. Bei Kommunikation von Rechnern, die nicht zu einem Netzwerk gehören, ist immer ein Router (Gateway) notwendig.

 

Innerhalb eines Netzwerkes gibt es zwei besondere Adressen, die nie an einen Host vergeben werden dürfen. Zum einen ist dies die schon angesprochene Netzwerkadresse, d.h. es gibt keinen Host mit der Adresse 0. Zum anderen ist dies die sogenannte Broadcastadresse,. Diese wird für eine – wie der Name schon sagt – Nachricht an alls Hosts des Netzwerkes benutzt. Somit gibt es z.B. bei einem C-Netz keinen Host mit der Adresse 255.

Hieraus läßt sich die maximale Anzahl von Hosts innerhalb eines Netzwerkes ableiten.

 

Class A:16777214

Class B:65534

Class C:254

 

Anmerkung: Die Netzwerkadresse kann man sich wie den Straßennamen innerhalb einer „normalen“ Adresse vorstellen. Die Gesamtheit der IP Netze wie eine ganze Stadt.

 

Neben den A, B und C Netzwerken, die durch die Netmask unterschieden werden, gibt es noch eine weitere Einteilung innerhalb dieser Netze. Hierbei unterscheidet man zwischen privaten und öffentlichen Netzwerken, deren Unterscheidung sich durch die Adresse ergibt.

 


2.2 Byteanordnung in TCP/IP Netzwerken

Da TCP/IP nicht auf einen Rechnertyp / Betriebssystem beschränkt ist, muss man bei dem Datentransfer die Reihenfolge der Bytes beachten. Es gibt zwei prinzipielle Möglichkeiten:

 

Big Endian: Das höchstwertige Byte steht an der niedrigsten Adresse

Little Endian: Das höchstwertige Byte steht an der höchsten Adresse

 

Es gibt auch Strategien, die keiner dieser beiden Formen entsprechen.

 

Anmerkung: TCP/IP schreibt die Big Endian Strategie vor.

 


2.3 Die Socket-Adresse

Da üblicherweise auf einem Rechner mit einer IP Adresse mehr als eine Anwendung mit IP Kommunikation läuft, reicht die IP Adresse alleine nicht aus, um eine Verbindung zu einer auf diesem Rechner laufenden Anwendung herzustellen.

 

Hierzu werden nun die Portnummern eingesetzt. Dabei handelt es sich um  eine 16bit Zahl, die den Start- und Endpunkt einer Verbindung festlegt.

 

Anmerkung: Die Portnummer  kann man mit Klingeln an einem Haus zu vergleichen

 

Meist werden die Portnummern in zwei Bereiche eingeteilt. Von 0 bis 1024 werden Anwendungen zugeordnet, die besondere Privilegien benötigen (Root-Rechte). Die restlichen Ports sind unprivilegiert und sind frei verfügbar.

In der Regel belegt eine Anwendung einen bestimmten Port und unterstützt ein bestimmtes Protokoll.

 

Hier einige Beispiele für Portnmummern und das zugeordnete Protokoll

21 FTP

22 SSH

23 Telnet

25 SMTP

80 HTTP

110 POP3

443 HTTPS

 

Anmerkung: Die Protokolle kann man mit der auf den Ports gesprochenen Sprache vergleichen.

 

Die sogenannte Socket Adresse setzt sich aus der IP Adresse (Hostadresse) und der Portnummer zusammen. Diese beiden Zahlen werden üblicherweise mit einem Doppelpunkt getrennt dargestellt.

 

Beispiel:

192.168.0.101:80

10.0.0.1:1011

172.19.3.176:65501

 

Eine TCP/IP Verbindung wird immer von einer Socketadresse zu einer Socketadresse hergestellt. Somit sind immer 4 Teile für eine eindeutige Verbindung notwendig.

 

lokale IP Adresse

lokale Portnummer

remote IP Adresse

remote Portnummer

 

Anmerkung: Der lokale Port ist i.d.R. ein unprivilegierter Port, d.h. sie ist größer als 1024. Der remote Port ist i.d.R. ein privilegierter Port, d.h. eine Nummer kleiner als 1024 (man will ja meist eine registrierte Anwendung auf einem entfernten Server kontaktieren, wie z.B. einen Mailserver, einen Webserver, ...).

 



Last update:  13.07.2005