Modul: Programmierung B-PRG Grundlagen der Programmierung 1

Werbung
Grundlagen
g
der Programmierung
g
g1
Modul: Programmierung B-PRG
Grundlagen der Programmierung 1 – Teil 4
Verteilte Systeme
T il 4 – Verteilte
Teil
V t ilt Systeme
S t
4 1 Vernetzung von Rechnern
4.1
4.2 Routing
4.3 ISO-OSI Referenzmodell
4.4 Internet: Architektur, Protokolle
4.4.1 IP-Adressen
442S
4.4.2
Sockets
k t
4.4.3 TCP
4.4.4 Client / Server – Modell
4.4.5 DNS
Prof. Dr. O. Drobnik
Professur Architektur und Betrieb verteilter Systeme
Institut für Informatik
Fachbereich Informatik und Mathematik
4.1 Vernetzung von Rechnern
Protokoll : Regeln für den Austausch von Nachrichten
zwischen kommunizierenden Einheiten ((Prozessen)) :
Verteiltes Rechnersystem (Distributed Computer System)
 Format, Bedeutung und Reihenfolge (Ordnung) der Nachrichten
 Aktionen, die zur Übertragung und/oder beim Empfang einer
Nachricht oder beim Auftreten eines anderen Ereignisses
durchzuführen sind.
Rechner
Prozess
Kommunikationssystem
Menge von autonomen Rechnern (kein gemeinsamer Speicher)
Kommunikationssystem, das die Rechner untereinander
verbindet und den Austausch von Nachrichten zwischen ihnen
(bzw. Prozessen) ermöglicht (Menge von Hardware- und
Software-Komponenten).
Prozesse kooperieren zur Erfüllung einer gemeinsamen
Aufgabenstellung ; die Kooperation erfolgt über
Nachrichtenaustausch.
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Folie 3
Rechnernetz
(Computer Network)
Rechner und Kommunikationssystem
ermöglichen Nachrichtenaustausch (sind
kommunikationsfähig)
enthalten jjedoch keinerlei Mechanismen,, die eine
kooperative Aufgabenbearbeitung durch mehrere
Programme unterstützt. (Anmerkung : Rechnernetz ist
Basis eines verteilten Systems ! )
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Folie 4
Vernetzungsszenarien
geostationär
z.B. GPS, Galileo
Komponenten:
Host:
H
t Rechner
R h
mit
it A
Anwendungssoftware
d
ft
Router, Switch: Vermittlungsrechner, Routing-Algorithmen
Mobilfunk
Clients
Übertragungsmedium:
Leitungsgebundene Übertragung: Kupferkabel, Glasfaser
Drahtlose Übertragung: WLAN
Parameter:
Übertragungsgeschwindigkeit [bit/s]
Latenz [ms] (Verzögerungszeit)
(
g
g
)
Vermittlungsnetze
Backbone
Intranet
Firewall
Lokales Netz (Local Area Network
Network, LAN)
Weitverkehrsnetz (Wide Area Network, WAN)
Optisches
Transportnetz
(OTN)
Frontend
Firewall
CSMA
Cluster
WLAN
Techn. Prozesse
Folie 5
© J.W.G-Universität Frankfurt a.M.
Grundlagen der Programmierung 1
4.2 Routing: Kürzeste Wege
Routing: Kürzeste Wege
Der kürzeste Weg von einer Quelle zu anderen Knoten
Greedy-Algorithmus nach Dijkstra [Sta07]:
Gegeben: ein gerichteter Graph G = (V, E) mit Kosten GE : E → Nat.
Der Knoten v0  V ist der Startknoten.
Beginne mit S = {ø}
I jedem
In
j d
Schritt
S h i wird
i d ein
i K
Knoten v  V \S zu S hinzugefügt,
hi
fü d
dessen Ab
Abstand
d
zu Knoten u minimal ist (minimal unter dem Knoten in V \S).
Gesucht: der Weg mit minimalen Kosten von v0 zu allen anderen Knoten:
kürzester Weg
Dieser Knoten v läßt sich von Knoten u erreichen, indem man nur über
Knoten in S läuft.
läuft Es kann also keinen kürzeren Weg zu v geben,
geben der über
einen Knoten w  V \S läuft.
Beispiel: Startknoten: v0
Weg
45
v2
v1
20
15
Grundlagen der Programmierung 1
v3
10
35
Folie 6
Betrachte eine Menge S der Knoten
Knoten, zu denen bereits ein kürzester Weg
gefunden wurde.
(Single Source Shortest Path,
Path SSSP)
50
Gateway
S
Supercomp.
© J.W.G-Universität Frankfurt a.M.
Grundlagen der Programmierung 1
20 10 15
Data
Warehouse
Backbone
Gatewayy
Unterscheidung nach Grad der räumlichen Ausdehnung:
v0
Backend
Rechner
Token
Ring
CSMA
Fast-Ethernet
Server
Gigabit-Ethernet
v4
30
3
1
2
3
4
v0v2
v0v2v3
v0v2v3v1
v0v4
Länge/Kosten
Falls (u, · · · , w, · · · v) kürzer ist als (u, · · · , v),
wäre nicht v gewählt worden, sondern w. Daher
muß
ß w  S gelten.
lt
10
25
45
45
u
v5
© J.W.G-Universität Frankfurt a.M.
Folie 7
Grundlagen der Programmierung 1
Es genügt also, den kürzesten Pfad ausgehend
von den Knoten in S aus zu suchen
suchen.
© J.W.G-Universität Frankfurt a.M.
Folie 8
Dictionary in Python
Dictionary:
Beispiel Dictionary
Datentyp { key : value }
k dient als Index.
key
Index Als Index nicht zugelassen sind Dictionaries und
Listen.
value ist eine beliebiges
g Objekt.
j
Zugriff auf Elemente eines Dictionary dict:
 dict[k] = v:
fügt den Wert v mit Index k ein.
Falls Index k schon existiert, wird der alte Wert mit v überschrieben.
 dict[k]:
liefert Wert (Objekt) mit Index k.
 dict.keys():
liefert Liste aller Indizes ((auch Schlüssel g
genannt))
 dict.values():
liefert Liste aller Werte
 del dict[k]:
löscht Eintrag mit Index k.
© J.W.G-Universität Frankfurt a.M.
Grundlagen der Programmierung 1
Folie 9
>>> dict={‘Apfel‘:‘apple‘,‘Birne‘:‘pear‘}
>>> p
print dict
{'Apfel': 'apple', 'Birne': 'pear'}
oder
>>> dict = {}
>>> dict[‘Apfel‘]=‘apple‘
>>> dict[‘Birne‘]=‘pear‘
print
t d
dict
ct
>>> p
{'Apfel': 'apple', 'Birne': 'pear'}
>>> print dict[‘Apfel‘]
apple
>>> print dict.keys()
['Apfel', 'Birne']
>>> print
i
di
dict.values()
l
()
['apple', 'pear']
>>> del dict[‘Birne‘]
>>> print
i t dict
di t
{'Apfel': 'apple'}
© J.W.G-Universität Frankfurt a.M.
Grundlagen der Programmierung 1
Routing: Kürzeste Wege
Routing: Kürzeste Wege
Variablen im Programm:
Repräsentation von Graphen (vgl. Minimaler Spannbaum):
g
Graph g als Datenstruktur: class Graph
result
Liste der kürzesten Wege einschließlich der zugeordneten
Kosten
short
h t
Menge S der Knoten
Knoten, zu denen bereits kürzeste Wege bestimmt
worden sind. Dictionary mit Elementen:
vertices
Differenzmenge V \ S: Liste
distance
Kosten der bisher gefundenen kürzesten Wege von v zu
Knoten vj in vertices über Knoten vi in short
pathcost
Kosten des aktuell betrachteten Weges
{Ziel : (Liste der Knoten, Kosten des Weges)}
Knoten aus vertices, zu dem der bisher kürzeste Weg
gefunden wurde
anchor
h
Direkter Vorgänger von nearest
t in short
h t
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
init:
addvertex:
addedge:
getvertices:
Erzeugen eines Graphen
Hinzufügen eines Knotens
Hinzufügen einer markierten Kante
Liefert die Menge der Knoten
cost:
Liefert Kosten zu einer Kante des Graphen,
sofern die Kante existiert; None: Sonst
Interne Kantendarstellung:
None: unendl. Kosten, keine Kante
nearest
Folie 10
i
i[0][0]
i[0][1]
i[1]
Folie 11
= ((v1,v2,),c)
((v1 v2 ) c)
= v1
= v2
=c
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Folie 12
Routing: Kürzeste Wege
Routing: Kürzeste Wege
def printshort(dict,result): ## debug-Ausgabe-Funktion
print
i t
eins = "short = "
for v in dict.keys():
print "%s '%s' : %s" % (eins,v,dict[v])
eins = "
"
print "result = %s" % result
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Folie 13
Routing: Kürzeste Wege
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Folie 14
Routing: Kürzeste Wege
g = Graph()
g.addvertex('v0')
g.addvertex('v1')
g.addvertex('v2')
g.addvertex('v3')
g.addvertex('v4')
g.addvertex('v5')
g.addedge('v0','v1',50)
g.addedge('v0','v2',10)
dd d (' 0' ' 2' 10)
g.addedge('v2','v0',20)
g.addedge('v1','v2',15)
g.addedge('v2','v3',15)
dd d (' 2' ' 3' 15)
g.addedge('v1','v4',10)
g.addedge('v3','v4',35)
g addedge('v4' 'v3' 30)
g.addedge('v4','v3',30)
g.addedge('v5','v3',3)
g.addedge('v0','v4',45)
g addedge('v3' 'v1' 20)
g.addedge('v3','v1',20)
ergebnis = sssp(g, 'v0')
Grundlagen der Programmierung 1
# SSSP nach Dijkstra
def sssp(g, v):
result
lt = []
vertices = g.getvertices()
vertices.remove(v)
short = {v: ([v], 0)}
printshort(short result) ### debug
printshort(short,result)
debug-Ausgabe
Ausgabe
while len(vertices) > 0:
distance = None
for vs in short.keys():
for vv in vertices:
pathcost = g.cost(vs,vv)
if pathcost <> None:
pathcost = pathcost + short[vs][1]
if distance == None or distance > pathcost:
di t
distance
= pathcost
th
t
nearest = vv
anchor = vs
if distance == None:
break
vertices.remove(nearest)
short[nearest] = (short[anchor][0] + [nearest],
short[anchor][1] + g.cost(anchor, nearest))
result.append((short[nearest][0], short[nearest][1]))
printshort(short,result) ### debug-Ausgabe
return result
short = 'v0' : (['v0'], 0)
result = []
short
=
'v0' : (['v0'], 0)
(['v0',
, 'v2'],
], 10)
)
'v2' : ([
result = [(['v0', 'v2'], 10)]
short
=
short
=
'v0' : (['v0'], 0)
'v2' : (['v0', 'v2'], 10)
'v3' : (['v0', 'v2', 'v3'], 25)
result = [(['v0', 'v2'], 10), (['v0', 'v2', 'v3'], 25)]
'v0' : (['v0'], 0)
'v2' : (['v0', 'v2'], 10)
'v3' : (['v0', 'v2', 'v3'], 25)
'v4' : (['v0', 'v4'], 45)
result = [(['v0', 'v2'], 10), (['v0', 'v2', 'v3'], 25),
([' 0' 'v4'],
(['v0',
' 4'] 45)]
© J.W.G-Universität Frankfurt a.M.
Folie 15
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Folie 16
Routing: Kürzeste Wege
4.3 ISO-OSI Referenzmodell
short
Das ISOISO-OSI Referenzmodell
=
'v0' : (['v0'], 0)
'v1'
v1 : (['v0',
([ v0 , 'v2',
v2 , 'v3',
v3 , 'v1'],
v1 ], 45)
'v2' : (['v0', 'v2'], 10)
'v3' : (['v0', 'v2', 'v3'], 25)
'v4' : (['v0', 'v4'], 45)
result = [(['v0', 'v2'], 10), (['v0', 'v2', 'v3'], 25),
(['v0',
([
, 'v4'],
], 45),
), ([
(['v0',
, 'v2',
, 'v3',
, 'v1'],
], 45)]
)]
Bei der Kommunikation zwischen Rechnern kommen
i a mehrere Protokolle zum Einsatz,
Einsatz die verschiedene
i.a.
Aufgaben erfüllen und aufeinander aufbauen.
Elementare Protokolle realisieren Funktionen, die von
höheren Protokollen verwendet
er endet werden,
erden um
m ihrerseits
neue Funktionen zu realisieren.
Laufzeit:
Die hier vorgestellte Implementierung besitzt eine Laufzeit
der Größenordnung: |V|3
Durch bessere Datenstrukturen lässt sich eine Laufzeit in
der Größenordnung von |V|log|V|+|E| erreichen.
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Protokolle werden durch kooperierende Instanzen
(Prozesse) abgewickelt. Diese tauschen
Protokolldateneinheiten aus
aus, die neben den zu
übertragenden Daten die protokollrelevante
Informationen erhalten (z.B. Sequenznummern,
Prüfsummen).
Prüfsummen)
Folie 17
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
ISO-OSI Referenzmodell
ISO-OSI Referenzmodell
Architekturmodell für Kommunikationssysteme :
ISO
International Organisation for Standardisation
OSI
Open Systems Interconnection
Zerlegung
Z
l
d
des kkomplexen
l
K
Kommunikationsvorgangs
ik i
iin
einfachere Teilfunktionen, die weitgehend voneinander
unabhängig betrachtet werden können.
Folie 18
1977 – 82/83 : Int. Standard
Z
Zweck
k dieses
di
M
Modells
d ll :
Bereitstellung einer gemeinsamen konzeptuellen Basis zur Koordination
der internationalen Entwicklung
g von existierenden und zukünftigen
g
Standards für die Kommunikation zwischen Systemen im Sinne offener
Systeme.
Probleme :
 Identifikation der Teilfunktionen
 Zusammenwirken der Teilfunktionen zur Erfüllung des
Systemzwecks
Einschätzung des Werts existierender Standards
Standards.
Identifikation von Bereichen, in denen Standards neu entwickelt werden
oder verbessert werden müssen.
Kommunikation : Austausch von Informationen
zwischen Partnern mittels Nachrichten über ein
Medium.
Flexibilität gegenüber neueren technischen Entwicklungen.
zu
Das Referenzmodell unterteilt die vom Kommunikationssystem
y
erbringenden Aufgaben in sieben aufeinander aufbauende Schichten:
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Folie 19
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Folie 20
ISO-OSI Referenzmodell
Anwendung
(application)
4.4 Internet: Architektur, Protokolle
Host
Semantik der durchzuführenden Aktion
Darstellung
(presentation)
Syntaktische Regeln für den Informationstransfer mit
Umsetzung
Kommunikationssteuerung (session)
Organisation und Synchronisation der Kommunikation
zwischen Anwendungsprozessen
g p
Transport
(transport)
Transparenter, zuverlässiger und kostengünstiger
Transfer von Daten zwischen Anwendungsprozessen
Vermittlung
(network)
Transfer von Daten zwischen Endsystemen über
gekoppelte Teilstrecken oder Netze
Client
Bitübertragung
(physical)
Überwachung von Teilstrecken mit Fehlererkennung
dF
Fehlerkorrektur
hl k
kt
und
Port
Server
App X
1
Sicherung
(data link)
Host
App Y
2
3
Logische Verbindung (TCP)
TCP
IP
Network Access
Protocol #1 (NAP 1)
Bitübertragung
(physical)
Globale Internet
Adresse
© J.W.G-Universität Frankfurt a.M.
6
z.B. Ethernet
Network Access
Protocol #2 (NAP 2)
Bitübertragung
(physical)
IP
Jede Schicht stellt eine Menge von Funktionen bereit, die der Schnittstelle zur
darüberliegenden Schicht zur Verfügung steht, und als Dienst bezeichnet
wird. Ein Dienst wird an Dienstzugangspunkten bereitgestellt.
Di
Dienstzugangspunkte
t
kt werden
d d
durch
h Ad
Adressen id
identifiziert.
tifi i t
Grundlagen der Programmierung 1
5
TCP
IP
Router
Übergang von Bits über Medien ohne Sicherung
(z.B. über Glasfaser)
4
Folie 21
Netzwerk 1
NAP 1 NAP 2
Physisch
Grundlagen der Programmierung 1
Netzwerk 2
Physisch
© J.W.G-Universität Frankfurt a.M.
4.4.1 IP-Adressen (1)
IP-Adressen (2)
IP : Internet Protocol
Eine IP-Adresse der Klasse A,B oder C identifiziert eine
Netzschnittstelle, nicht einen Rechner, denn ein Rechner kann
mehrere Netzschnittstellen besitzen.
IP ist ein verbindungsloses Protokoll. Es bietet die Basis für eine Vielzahl
der im Internet verwendeten Protokolle.
IP-Adressen
Folie 22
Beispiel für eine IP-Adresse
Die Adressen der Schicht 3 sind IP-Adressen.
IP-Adressen
IP-Adressen sind 32-Bit Zahlen, die meist byteweise notiert werden, z.B.
141.2.14.16.
Als Beispiel dient die IP-Adresse eines Rechners im Netz der
Universität Frankfurt : 141.2.14.16.
IP-Adressen sind in fünf Klassen unterteilt :
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Folie 23
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Folie 24
IP--Routing
IP
4.4.2 TCP : Transmission Control Protocol
Beim Transport eines IP-Paketes lassen sich zwei Fälle
unterscheiden.
TCP ist ein verbindungsorientiertes, zuverlässiges Transportprotokoll.
 Der Empfänger ist direkt mit dem Sender verbunden, z.B.
g oder durch eine Schnittstelle zum
über eine PPP-Verbindung
gleichen Netz :
IP-Pakete können direkt an den Empfänger gesendet werden.
Der Empfänger ist nicht direkt mit dem Sender verbunden :
IP-Pakete
IP
Pakete müssen über Netzgrenzen hinweg transportiert
werden. Dazu werden die IP- Pakete an den Default-Router
des lokalen Netzes gesendet, der sie auf der Basis seiner
Routing-Tabellen
liefert. Routing Routing Tabellen an den Empfänger liefert
Protokolle (RIP, OSPF) dienen der Erstellung der Routing –
Tabellen.
Di K
Die
Kommunikation
ik ti zwischen
i h E
Endsystemen
d
t
erfolgt
f l tb
beii TCP iin d
dreii
Schritten
 Aufbau der Kommunikationsverbindung,
 Austausch von Daten,
 Abbau der Kommunikationsverbindung.
TCP unterteilt Anwendungsdaten in Segmente (TCP-Segmente)
(TCP Segmente), die
mit IP transportiert werden. Die Größe der Segmente kann von den
Kommunikationspartnern beim Verbindungsaufbau bestimmt werden.
OSPF: Basiert auf Dijkstra-Algorithmus für kürzeste Wege.
© J.W.G-Universität Frankfurt a.M.
Grundlagen der Programmierung 1
Folie 25
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Folie 26
4.4.3 Sockets
Sockets
Die Adressen der Schicht 4 sind Sockets.
Durch die feste Zuordnung eines Teils der Portnummern
zu Diensten (RFC 3232 ) wird die Bereitstellung von
Internetweit-verfügbaren Diensten ermöglicht.
Sockets bestehen aus :
IP-Adresse und Portnummer
Port: Adreßkomponente, identifiziert Speicherbereich für die
Daten einer Kommunikationsverbindung
Portnummer: Zahl zwischen 0-65535.
Schreibweise für Sockets :
IP-Adresse:Port
z.B. 141.2.1.1:22.
Sockets erlauben die Adressierung
g verschiedener Empfänger
p g
innerhalb eines Rechners, z.B. verschiedener Prozesse.
well known ports:
0 – 1023

Port 21 : File Transfer Protocol (FTP)

Port 22 : Secure Shell (SSH)

Port 80 : Hypertext Transfer Protocol (HTTP)
registered ports:
102 – 49151
91 1
1024
dynamic and/or private ports:
49152 – 65535
orientieren sich am Unix-Prinzip für Datei-Zugriff:
Open Read Write Close
Grundlagen der Programmierung 1
(ORWC)
© J.W.G-Universität Frankfurt a.M.
Folie 27
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Folie 28
4.4.4 Client / Server - Modell
Schema für Client-Server Interaktion
Client / Server - Modelle beruhen auf dem Grundsatz einer
f kti
funktionalen
l Trennung
T
von Benutzer
B
t
(Client)
(Cli t) und
d Bereitstellung
B it t ll
sowie Verwaltung von Betriebsmitteln / Diensten (Server).
Betriebsmittel sind u. a.: Rechnerleistung, Datenbestände,
Plattenspeicher, etc.
Client:
Server:
System, das die Dienstleistung eines Servers anfordert
und nutzt.
Zentrales oder dezentrales System, auf dem Dienste
(Services) installiert sind, die vom Client aufgerufen
und genutzt werden
werden.
Beispiel: WWW-Browser (Client), - Server
Protokoll HTTP unter Benutzung von TCP
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Der Client sendet eine Nachrichte an den Server, in der er den zu
erbringenden Dienst spezifiziert.
Der Server nimmt die Nachricht entgegen und führt den Dienst aus.
Falls kein Fehler aufgetreten ist, sendet der Server das Ergebnis in einer
weiteren Nachricht an den Client zurück.
zurück Im Fehlerfall wird ein
Fehlerindikator zurückgeschickt.
Der Client nimmt das Ergebnis (bzw. den Fehlerindikator) entgegen und
verarbeitet
b it t dies
di weiter.
it
Anforderungen
(Request)
Client
Server
send (p)
Entkopplung, ggf.
weitere Aktivitäten
und Anforderungen
receive (p)
Ergebnis
(Reply)
Bearbeitung von p
send (r)
receive (r)
Folie 29
© J.W.G-Universität Frankfurt a.M.
Grundlagen der Programmierung 1
Folie 30
Domain Name System (DNS)
4.4.5 DNS - Verwaltung des IPIP-Adressraums
ICANN (the Internet Corporation for Assigned Names and Numbers)
ist verantwortlich für :
IP Adressraum Zuordnung,
DNS verwendet einen hierarchischen Namensraum (Baum),
ähnlich dem Unix-Dateisystem
Unix Dateisystem.
DNS (Domain Name System) Management,
Jeder Knoten hat einen Namen (label) von bis zu 63 Zeichen.
An der Wurzel des Baums befindet sich ein besonderer
Knoten mit einem Namen der Länge 0.
Root Server System-Managementfunktionen.
Groß- und Kleinschreibung in Namen ist irrelevant.
Protokollparameter Zuweisung,
Der Domainname eines Knotens ist die Liste der
Knotennamen beginnend mit dem Namen des Knotens selbst
bis zur Wurzel,, wobei die Namen mit Punkten („ .“))
voneinander getrennt werden.
DNS :
DNS ist eine verteilte Datenbank u.a. zur Abbildung von
Rechnernamen auf Adressen (und umgekehrt)
umgekehrt).
Eigenschaften:
Ein Domainname, der mit einem Punkt endet, heißt absoluter
oder voll
qualifizierter
(fully
qualified
oll q
alifi ierter Domainname (f
ll q
alified domain
name, FQDN), zum Beispiel:
Es g
gibt keine Instanz auf dem Internet,, der die kompletten
p
Informationen vorliegen.
Nameserver stellen Daten zur Verfügung.
hera.rbi.informatik.uni-frankfurt.de.
hera.rbi.informatik.uni
frankfurt.de.
Zugang zum DNS : über Resolver (Bibliothek).
(Bibliothek)
Die TCP/IP-Protokolle wissen nichts über DNS.
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
(IP-Adresse: 141.2.16.36)
Folie 31
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Folie 32
Internet-Architektur
Literaturverzeichnis
Internet heute
[PD07]
L.L. Peterson and B. Davie. Computer Networks
– A System Approach,
Approach 4.
4 edition,
edition Morgan
Kaufmann Publishers, 2007
[Sta07]
W. Stallings. Data and Computer
Communications. Pearson Education,, 2007
Großes Unternehmen
Autonome
S t
Systeme
Peering
Point
Internet Service
Provider (ISP)
Backbone Service Provider
Peering
Point
Transit
ISP
Kl i fi
Kleinfirma
Grundlagen der Programmierung 1
ISP
S
G ß Unternehmen
Großes
U t
h
© J.W.G-Universität Frankfurt a.M.
Folie 33
Grundlagen der Programmierung 1
© J.W.G-Universität Frankfurt a.M.
Folie 34
Zugehörige Unterlagen
Herunterladen