Rechnerorganisation Inhaltsverzeichnis

Werbung
Rechnerorganisation
Dieter Zöbel
Universität Koblenz-Landau
Fachbereich Informatik, Institut für Softwaretechnik
Inhaltsverzeichnis
0 Prolog
1
1 Mechanismen der Organisation
1.1 Vorüberlegungen zur Organisation . .
1.2 Entwicklung von Rechensystemen . .
1.3 Organisation der Datenverarbeitung .
1.4 Beispiele . . . . . . . . . . . . . . . .
1.4.1 Organisation einer Vorlesung .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
9
10
15
25
26
27
2 Datenorganisation
2.1 Organisation beim Publizieren . .
2.2 Dokumentenstruktur in LATEX . .
2.3 HTML - die Sprache des Web . .
2.4 XML - die Auszeichnungssprache
2.5 Content Management Systeme . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
31
32
36
61
70
82
.
.
.
.
.
.
.
.
.
.
3 Betriebssysteme
92
3.1 Nutzersicht auf Betriebssysteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.1.1 Konzeptuelle Eigenschaften . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
3.1.2 Der Unix-Dateibaum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
i
3.2
3.3
3.1.3 Die Shell . . . . . . . . . . . . . . . . . . .
3.1.4 Wichtige Unix-Kommandos . . . . . . . .
3.1.5 Schutzmechanismen . . . . . . . . . . . . .
3.1.6 Aufbau des Dateisystems . . . . . . . . . .
3.1.7 Aufruf von Diensten . . . . . . . . . . . .
Werkzeuge . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Shell-Skripte . . . . . . . . . . . . . . . . .
3.2.2 Der Erzeugung lauffähiger Programme . .
3.2.3 Programmentwicklung mit make . . . . . .
3.2.4 Dezentrale Programmentwicklung mit cvs
3.2.5 Weitere Unix-nahe Werkzeuge . . . . . . .
Prozesse und Interprozesskommunikation . . . . .
3.3.1 Erzeugung paralleler Prozesse mit fork . .
3.3.2 Der Pipe-Mechanismus . . . . . . . . . . .
3.3.3 Ersetzen von Prozessen durch andere . . .
4 Netzwerke
4.1 Das ISO/OSI-Referenzmodell . . . .
4.2 Bauformen . . . . . . . . . . . . . . .
4.3 Transportprotokolle für das Internet .
4.4 Zugang zum Internet . . . . . . . . .
4.5 Dienste der Anwendungsschicht . . .
4.6 Der socket-Mechanismus . . . . . .
4.7 Verteilte Dateisysteme . . . . . . . .
4.8 Verteilte Programmierung . . . . . .
4.9 Schutzmechanismen . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
101
107
116
124
131
134
134
136
137
142
147
148
148
152
160
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
165
166
167
169
171
173
174
189
190
191
5 World Wide Web
192
5.1 Internetadressierung über URL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
ii
5.2
5.3
5.4
Elementare Internet-Protokolle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
Server-seitige Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
Client-seitige Anwendungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 198
iii
Kapitel 4
Netzwerke
Das Internet als Referenznetzwerk steht im Mittelpunkt der Betrachtung —
warum?
Seit Jahrzehnten spielt das Internet und seine Vorläufer eine entscheidende Rolle für die Entwicklung von Netzwerken in technischer, programmiertechnischer,
anwendungsorientierter und organisatorischer Sicht.
• Das OSI-Referenzmodell
• Zugangsprotokolle zum Internet
• technische und topologische Bauformen
• Dienste der Anwendungsschicht
• Internetprotokolle
• Programmierschnittstellen
165
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.1
4.1. DAS ISO/OSI-REFERENZMODELL
Das ISO/OSI-Referenzmodell
Festgelegt von der Untergruppe Open System Interconnection (OSI) der
International Standard Organisation(ISO) wurden sieben Schichten unterschiedlicher Aufgaben definiert, die im Allgemeinen bei der Datenübertragung
in Netzwerken anfallen.
• peer to peer-Kommunikation
client
write(...)
-->
server
read(...)
• der Protokollstapel, d.h. die Abbildung der write(...)- bzw. read(...)Operationen auf die Fähigkeiten der auf dem lokalen Endgerät vorhandenen
nächst niedrigeren Schicht.
Dieter Zöbel
IST
166
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.2
4.2. BAUFORMEN
Bauformen
Gliederung von Netzwerken anhand
der überbrückten Entferungen
Bauelemente von Netzwerken
• Übertragungsmedien
• Gerätenetzwerke (CAN1)
• Netwerkomponenten
• lokale Netzwerke (LAN2)
– Übetragungsgeräte
• regionale Netze (MAN3 )
– Endgeräte
• Weitverkehrsnetze (WAN4 )
1
controller area networks
local area networks
metropolitan area networks
4
wide area networks
2
3
Dieter Zöbel
IST
167
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.2. BAUFORMEN
Topologien und Bauelemente
• Repeater
schicht)
Topologien von Netzwerken
• Bus
• Bridge und Switching Hub (Sicherungsschicht)
• Stern
• Ring
Bauelemente auf unterschiedlichen
Transportschichten
Dieter Zöbel
(Bitübertragungs-
IST
• Router (Netzwerkschicht)
• Gateway (Transportschicht)
168
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.3
4.3. TRANSPORTPROTOKOLLE FÜR DAS INTERNET
Transportprotokolle für das Internet
Enscheidend und maßgebend sind die kombinierten Protolkolle TCP5/IP6.
Die IP-Adresse identifiziert einen
Rechner, z.B.: 141.26.131.16. Hierbei handelt es sich um einen Rechner
in der Domäne der Universität Koblenz (141.26). IP-Packete bestehen
aus drei Angaben:
Das TCP-Protokoll ist verbindungsorientiert und wickelt eine Sitzung
(engl.: session) zwische Sender und
Empfänger ab. Dabei wird der ganze
Datenstrom in eine Folge von Packeten
zerlegt. TCP besitzt:
• IPwoher
• Sicherheitsmechanismen
• IPwohin
• Flusssteuerung
• Daten
• Programmierschnittstelle (API,
z.B. die Socket-Schnittstelle)
Das IP-Protokoll ist verbindungslos.
5
6
Transmission Control Protocol
Internet Protocol
Dieter Zöbel
IST
169
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.3. TRANSPORTPROTOKOLLE FÜR DAS INTERNET
Dienste und Dienstleister bei TCP/IP
Dienste auf Kommandoebene
• ping testet den Bestand der
Übertragungsstrecke
• traceroute findet alle Router auf
der Übertragungsstrecke
Sogenannte demon-Programme laufen im Hintergrund der Rechner, die
TCP/IP oder höhere Protokolle fahren
• inetd der TCP/IP Dämon, der
die Ports des TCP-Protokolls
abhört und nach Bedarf einen der
Dieter Zöbel
IST
folgenden anwendungsspezifischen
Dämon-Programme startet
• telnetd der Dämon für eine Terminal-Verbindung zu einem
Rechner
• ftpd der Dämon für die Übertragung von Dateien zwischen Rechnern
• httpd der Dämon für das httpProtokoll
170
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.4
4.4. ZUGANG ZUM INTERNET
Zugang zum Internet
• via Telekommunikationsnetze
• via Rechnernetze (Datenkommunikationsnetze)
Protokolle für die Datenübertragung auf Telekommunikationsnetzen
• für Modems: PPP7 oder Slip8
ISDN10 und HDLC
• für ISDN9 -Anschlüsse: PPP over
11
• für xDSL12-Anschlüsse
7
point to point protocol
serial line protocol(SLIP verfügt im Gegensatz zu PPP über variable Packetlängen und über mechanismen zur Authentisierung
9
integrated systems digital network
10
z.B. für die Kommunikation einer Fritz-Card
11
high level data link control protocol
12
digital subscriber line, bei TDSL mit 756kBit/s im Download und 128kBit/s im Upload
8
Dieter Zöbel
IST
171
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.4. ZUGANG ZUM INTERNET
Organisation des Internetzugangs
Für Netzwerkbetreiber ist das NIC13, genauer DE-NIC in Karlsruhe, maßgebend.
.
.edu
.com
top-level
first-level
second-level
.de
uni-koblenz.de
balvanie
mailhost
Das Auffinden von Netwerken wird durch den DNS14 ermöglicht.
13
14
network information center
domain name service
Dieter Zöbel
IST
172
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.5
4.5. DIENSTE DER ANWENDUNGSSCHICHT
Dienste der Anwendungsschicht
Protokolle auf der Grundlage von TCP/IP
• ftp (file transfer protocol): Unter Einloggen auf einem entfernten Rechner mittles dessen IP-Adresse stehen eine Reihe von Kommandos zur Datenübertragung und Administration auf dem entfernten Rechner bereit,
z.B. put, get, ls, cd und bye. Die Sicherheit wird durch Angabe einer
Kennung (z.B. anonymous) und eines Passwortes auf dem entfernten Rechner hergestellt.
• telnet: Terminalverbindung mit einem entfernten Rechner. Auch hier
wird die sicherheit durch Angabe einer Kennung (z.B. anonymous) und
eines Passwortes auf dem entfernten Rechner hergestellt. Die Standardeingabe des Terminalfensters wird an den entfernten Rechner weitergeleitet.
Mit quit wird diese Verbindung wieder abgebaut. Mit der escape-Taste
gefolgt von [ wird ein Kommando an das eigene Terminalfenster geschickt.
Dieter Zöbel
IST
173
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.6
4.6. DER SOCKET-MECHANISMUS
Der socket-Mechanismus
Kommunikation von Client-Server Prozessen auf verschiedenen Rechnern (im
Zuge von BSD 4.3)
Kunde
Bediener
Anwendung
Dienstprogramm
Socket
Transportschichten
Socket
Transportschichten
Netzwerk
Kundeprozeß und Bedienerprozeß installieren sog. Sockets (Kommunikationsendpunkte). Das Paar von Sockets steht für eine spezielle Kunde-BedienerBeziehung.
Dieter Zöbel
IST
174
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.6. DER SOCKET-MECHANISMUS
Anbindung des Kunden an den Bediener
Die Anbindung von Kunden an den Bediener erfolgt in einer Reihe von Schritten (hier auf der Grundlage eines verbindungsorientierten Transportprotokolls
TCP/IP).
Kunde:
Bediener:
socket()
bind()
listen()
accept()
socket()
connect()
read(), write()
write(), read()
Nachdem auf Bedienerseite mit accept() alle Voraussetzungen für eine Bedingung getroffen sind, kann ein Kunde ein connect() durchführen.
Dieter Zöbel
IST
175
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.6. DER SOCKET-MECHANISMUS
Datenstrukturen für Sockets
Die Socket-Adresse im Internet (definiert in <netinet/in.h>):
struct soccaddr_in
{
short
sin_familiy;
u_short sin_port;
struct in_addr sin_addr;
char
sin_zero(8);
};
/*
/*
/*
/*
hier AF_INET */
2 Byte Port-Nummer */
4 Byte Internet-Adresse */
ungenutzt */
Ein Socket wird netzweit eindeutigdurch die 4Byte IP-Adresse und die 2Byte
Portnummer identifiziert.
Dieter Zöbel
IST
176
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.6. DER SOCKET-MECHANISMUS
Allgemeine socket-Stuktur
Die Internet-Socket-Adresse ist eingebettet in allgemeine Socket-Adressen (definiert in <sys/socket.h>):
struct soccaddr
{
short
sa_family;
union
{
struct soccaddr_in sa_in;
.
.
.
};
};
/* AF-Internet */
/* Internet Basis */
/* andere Basen */
Dieter Zöbel
IST
177
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.6. DER SOCKET-MECHANISMUS
Einrichten eines Socket
Einrichten eines Socket (auf der Basis von TCP/IP): int socket(int
family, int type, int protocol)
Der Aufruf, um
• im Internet (family)
• verbindungsorientiert (type)
• unter TCP (protocol)
kommunizieren zu können, lautet für Kunde und Bediener gleichermaßen:
sockfd = socket(AF INET, SOCK STREAM, IPPROTO TCP);
und liefert den Dateidescriptor sockfd zurück, auf den die üblichen Systemaufrufe read(), write() und close() anwendbar sind.
Dieter Zöbel
IST
178
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.6. DER SOCKET-MECHANISMUS
Die Socket-Verbindung
Mit sockfd wird auf eine sog. association verwiesen, die eine Verbindung
beschreibt durch:
• Protokoll
• lokale Adresse
• lokaler Prozeß
• entfernter Adresse
• entfernter Prozeß
Durch den Aufruf des socket()-Kommandos wird dabei nur das Protokoll,
die lokale Adresse (hier: Internet-Adresse) und der lokale Prozeß (hier: PortNummer) festlegt. Da alle Kunden mit einem speziellen Bediener kommunizieren, ist es ratsam, eine gemeinsame Header-Datei (hier: socket.h) zu benutzen, in der die Adresse und der Port des Servers festgelegt sind.
Dieter Zöbel
IST
179
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.6. DER SOCKET-MECHANISMUS
Identifikation des bedieners in socket.h
Inhalt der gemeinsamen Header-Datei socket.h:
/* Aufbau eine Kunde-Bediener-Systems
/* auf der Grundlage von Sockets.
#include
#include
#include
#include
*/
*/
<sys/types.h>
<sys/socket.h>
<netinet/in.h>
<arpa/inet.h>
#define SERV_TCP_PORT 5566 /* mind. 5000 */
#define SERV_HOST_ADDR "141.26.7.100" /* IP-Adresse */
Mit dem Systemaufruf bind() identifiziert sich der Bediener für einen speziellen Dienst, der mit dem Systemaufruf connect() vom Kunden in Anspruch
genommen wird.
Dieter Zöbel
IST
180
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.6. DER SOCKET-MECHANISMUS
schema des Aufbaus einer Socket-Verbindung
socket.h
b_socket.c
k_socket.c
..
.
bind(sockfd, &serv_addr,
... );
...
listen(sockfd, ... );
..
.
accept(sockfd, &serv_addr, ... );
..
.
..
.
connect(sockfd, &serv_addr, ... );
...
liefert:
(tcp, 141.26.7.100, 5566, , )
(tcp, 141.26.7.107, 493, 141.26.7.100, 5566)
Socket des Bedieners Socket des
Kunden noch
unbekannt
Erzeugter Socket
auf Rechner des
Kunden
Socket des Bedieners
Mit dem Systemaufruf listen() erzeugt der Bediener eine Schlange, um
connect()-Aufrufe von Kunden zu puffern. Die eigentliche Annahme eines
connect()-Aufrufers vollzieht der Bediener mit accept().
Dieter Zöbel
IST
181
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.6. DER SOCKET-MECHANISMUS
Der Bedienvorgang
Die Ausführung der Bedienung kann
• sequentiell in der Reihenfolge der connect()-Aufrufe von Kunden oder
• pseudo-parallel durch mit fork() erzeugte Bedienerprozesse erfolgen.
Der zweite Fall ist markanter und wird im Folgenden exemplarisch vorgestellt.
Der accept()-Aufruf durch den Bediener blockiert solange, bis ein entsprechender connect()-Aufruf ergeht. Mit diesem Aufruf macht sich der Kunde
beim Bediener bekannt. Gleichzeitig ist die association vollständig und wird
von accept() in einen neuem Deskriptor abgelegt:
n sockfd = accept(sockfd, &serv addr, ...);
Mit einem anschließenden fork() kann zum einen die Bedienung in einen Kindprozeß erfolgen, während der Elternprozeß den nächsten connect()-Aufruf
erwartet.
Dieter Zöbel
IST
182
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.6. DER SOCKET-MECHANISMUS
Programmbeispiel: Die Socket-Verbindung
Inhalt der Datei bediener.c:
b_socket()
{ int sockfd,n_sockfd;
int kind_pid, kunde_laddr;
struct sockaddr_in serv_addr, kunde_addr;
int aufruf_nr=0;
/* Erzeugen eines Socket
*/
if ((sockfd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))<0)
{
/* Fehlerbehandlung */
printf("Bediener: Fehler beim socket-Aufruf\n");
exit(0);
}
Dieter Zöbel
IST
183
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.6. DER SOCKET-MECHANISMUS
Socket-Verbindung (Fortsetzung 1)
/* Anbindung des Socket an eine Adresse und einen Prozess */
bzero((char *)&serv_addr,sizeof(serv_addr));
serv_addr.sin_family=AF_INET;
serv_addr.sin_addr.s_addr=htonl(INADDR_ANY);
serv_addr.sin_port=htons(SERV_TCP_PORT);
if((bind(sockfd,
(struct sockaddr *) &serv_addr,
sizeof(serv_addr))) < 0)
{
/* Fehlerbehandlung */
printf("Bediener: Fehler beim bind-Aufruf\n");
exit(0);
}
Dieter Zöbel
IST
184
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.6. DER SOCKET-MECHANISMUS
Socket-Verbindung (Fortsetzung 2)
/* Einrichten der Auftragsschlange der Laenge 3 */
if((listen(sockfd,3))<0)
{
/* Fehlerbehandlung */
printf("Bediener: Fehler beim listen-Aufruf\n");
exit(0);
}
for(;;)
{
printf("Bediener: Warten auf Kundschaft\n");
/* Erwarten eines Kundenauftrages */
kunde_laddr=sizeof(kunde_addr);
if((n_sockfd=accept(sockfd,
(struct sockaddr *) &kunde_addr,
&kunde_laddr)) < 0)
{
/* Fehlerbehandlung */
printf("Bediener: Fehler beim accept-Aufruf\n");
exit(0);
}
Dieter Zöbel
IST
185
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.6. DER SOCKET-MECHANISMUS
Socket-Verbindung (Fortsetzung 3)
/* Erzeugung eines Kind-Prozesses, der
*/
/* die eigentliche Bedienung uebernimmt
*/
aufruf_nr++;
if((kind_pid=fork())<0)
{
/* Fehlerbehandlung */
printf("Bediener: Fehler beim fork-Aufruf\n");
exit(0);
}
if(kind_pid==0)
{
/* Kind-Prozess als Bediener */
printf("%d-ter Bedienaufruf\n",aufruf_nr);
close(sockfd);
/* Datenaustausch mit read und write */
b_proc(n_sockfd,aufruf_nr);
close(n_sockfd);
exit(0);
}
/* Eltern-Prozess */
close(n_sockfd);
}
}
Dieter Zöbel
IST
186
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.6. DER SOCKET-MECHANISMUS
Socket-Verbindung (Fortsetzung 4)
Inhalt der Datei kunde.c:
k_socket()
{ int sockfd;
struct sockaddr_in serv_addr;
/* Erzeugen eines Socket
*/
if ((sockfd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))<0)
{
/* Fehlerbehandlung */
printf("Kunde: Socket nicht installiert.\n");
exit(0);
}
Dieter Zöbel
IST
187
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.6. DER SOCKET-MECHANISMUS
Socket-Verbindung (Fortsetzung 5)
/* Verbindungsaufbau durch den Kunden */
bzero((char*)&serv_addr,sizeof(serv_addr));
serv_addr.sin_family=AF_INET;
serv_addr.sin_addr.s_addr=inet_addr(SERV_HOST_ADDR);
serv_addr.sin_port=htons(SERV_TCP_PORT);
printf("Portnummer %d\n",ntohs(serv_addr.sin_port));
if((connect(sockfd, (struct sockaddr *) &serv_addr,
sizeof(serv_addr))) < 0)
{
/* Fehlerbehandlung */
printf("Kunde: Verbindung nicht hergestellt.\n");
exit(0);
}
/* Datenaustausch mit write und read */
k_proc(sockfd);
close(sockfd);
}
Dieter Zöbel
IST
188
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.7
4.7. VERTEILTE DATEISYSTEME
Verteilte Dateisysteme
Stellvertretend: NFS (network file system), das auf die Schichten UDP15 /IP,
RPC16 und XDR17 aufbaut.
NFS : Operationen auf DateiNFS, MOUNT,YP
en: Lesen, Schreiben, Erzeugen,
Löschen, Suchen usw.
XDR
MOUNT : Verbinden und Trennen von Dateisystemen
RPC
a
YP : Zentralisierte Benutzterverwaltung: Eintragen, Löschen,
UDP/IP
usw.
a
15
16
17
yellow pages
user datagram protocol
remote procedure call
external data representation
Dieter Zöbel
IST
189
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.8
4.8. VERTEILTE PROGRAMMIERUNG
Verteilte Programmierung
Dieter Zöbel
IST
190
Rechnerorganisation
KAPITEL 4. NETZWERKE
4.9
4.9. SCHUTZMECHANISMEN
Schutzmechanismen
Dieter Zöbel
IST
191
Literaturverzeichnis
[DvH66] J. B. Dennis and E. C. van Horn. Programming semantics for multiprogrammed computations. CACM, 9(3):143 – 155, 1966.
[GMS94] Michel Goossens, Frank Mittelbach, and Alexander Samarin. Der
LaTeX-Begleiter. Addison-Wesley, Bonn, 1994.
[JM02]
Stefan Jablonski and Christian Meiler. Web-content-management.
Informatik-Spektrum, 25(2):101–119, April 2002.
[Knu86] Donald E. Knuth. The TeXbook - Computers and Typesetting.
Addison-Wesley, Reading, Massachusetts, 1986.
[Old01] Unversität Oldenburg. Tutorium Studiertechniken. http//:www.unioldenburg.de/fb11/prima/tutorium.htm, 2001.
Rechnerorganisation
LITERATURVERZEICHNIS
[RR01]
LITERATURVERZEICHNIS
Gunther Rothfuss and Christian Ried. Content Management mit
XML. Springer-Verlag, Berlin, 2001.
[SW00] Erwin Schuster and Stephan Wilhelm. Content management. Informatik Spektrum, 23(6):373–375, Dezember 2000.
[Tan95] Andrew Tanenbaum. Moderne Betriebssysteme. Hanser Verlag,
München, 1995.
[Wes01] Georg Westermann.
Organisationslehre.
http://www2.fhharz.de/ gwestermann/EinfOrgaFolien/EinfOrgaFolien.htm, 2001.
Dieter Zöbel
IST
199
Herunterladen