Rechnerkommunikation III

Werbung
Rechnerkommunikation III
Protokolle und Dienste des TCP / IP Modells
1
Protokolle und Dienste der Anwendungsschicht
1.1
•
Kommunikation zwischen Anwendungsprozessen
Ein Prozess kommuniziert mit einem anderen, indem er
Nachrichten durch seinen Socket ( allgem.: Kanal zum Zwecke
des Informationsaustauschs) schickt.
Der Socket leitet die Nachricht weiter an die Transportschicht.
Der Prozess geht davon aus, dass auf die Empfängerseite über einen
gleichen Socket verfügt, um die Nachricht zu empfangen.
•
•
Rechnerkommunikation III
1.2
•
Adressierung von Prozessen
Um eine Nachricht von einem Prozess zu einem anderen zu
senden, muss der empfangende Prozess identifiziert werden.
•
Die Identifikation besteht aus zwei Teilen:
- dem Namen oder der Adresse des Hosts,
- einem Identifizierer, der den empfangenden Prozess
auf dem Zielhost bezeichnet
•
Der Zielhost wird durch seine IP-Adresse identifiziert.
•
Der Prozess wird durch eine Portnummer identifiziert.
Rechnerkommunikation III
1.3
•
Portnummern
Beliebten Protokollen auf der Anwendungsschicht wurden
spezifische Portnummern zugewiesen:
• z.B.:
• Ein Web-Server-Prozess (der HTTP benutzt) wird durch
Portnummer 80 identifiziert.
•
Ein Mail-Server-Prozess (der SMTP benutzt) wird durch
Portnummer 25 identifiziert.
•
RFC 1700 enthält eine (veraltete) Liste der "wohlbekannten„
Portnummern der Internet-Standardprotokolle. Die aktuelle
Liste wird in einer Datenbank (www.iana.org) geführt.
Rechnerkommunikation III
1.4
Hypertext Transfer Protocol (HTTP)
1.4.1
•
Charakteristik von HTTP
Protokoll für den Zugriff auf Webseiten
•
HTTP unterstützt sowohl persistente Verbindungen als auch nicht
persistente Verbindungen. HTTP/1.0 arbeitet mit nicht persistenten,
HTTP/1.1 mit persistenten Verbindungen als Default-Modus.
•
HTTP ist ein zustandsloses (kontextloses) Protokoll, d.h. der Server
muss sich keine Kontextinfo hinsichtlich einer gestellten Anfrage merken
(schließt die Verbindung mit der Antwort).
•
HTTP ist ein pull-Protokoll, d.h. der Client zieht die Dateien von Server
herunter.
Rechnerkommunikation III
1.4.2
•
Nicht persistente Verbindung
•
Der HTTP-Client schickt eine Anfragenachricht an den Server. Der
Anfragename enthält bereits den Pfadnamen der gewünschten Datei.
•
Der HTTP-Server empfängt die Anfrage, liest das angefragte Objekt
ein, kapselt es in eine HTTP-Antwortnachricht und schickt diese an
den Client.
•
Der HTTP-Server weist TCP an, die Verbindung zu schließen, wenn
der Client die Nachricht korrekt empfangen hat.
•
Der HTTP-Client empfängt die Antwortnachricht, die TCPVerbindung wird geschlossen. Der Client analysiert die Nachricht und
sucht mögliche Referenzen in der HTML-Datei.
•
Pro enthaltener Referenz werden die Schritte 1-4 wiederholt, bis alle
Objekte vom Server zum Client übertragen wurden.
Der HTTP-Client leitet eine TCP-Verbindung zum Server auf Port 80
als Default ein. Das Handshake findet statt.
Rechnerkommunikation III
1.4.3
Persistente Verbindung
•
Der Server läßt die TCP-Verbindung offen, nachdem er die
Antwortnachricht verschickt hat.
•
Anschließende Kommunikation zwischen Server und Client erfolgt auf
der offenen TCP-Verbindung.
•
Die TCP-Verbindung wird geschlossen, wenn sie für eine bestimmte
(konfigurierbare) Zeitdauer nicht benutzt worden ist.
•
Persistente Verbindungen gibt es mit und ohne Pipelining.
- ohne Pipelining bedeutet, dass die TCP-Verbindung tatsächlich
unbenutzt bleibt, solange der Client Daten empfängt. Der Client sendet
nur dann eine neue Anfrage, wenn er die vorherige Antwort
empfangen hat.
- mit Pipelining bedeutet, dass der Client eine Anfrage nach einem
neuen Objekt losschickt, sobald er auf eine Referenz stößt, ohne dass
er die Antwort auf die vorherige Anfrage abwartet.
- HTTP/1.1 nutzt im Default-Modus persistente Verbindungen mit
Pipelining.
Rechnerkommunikation III
1.4.4 Exkurs:
•
•
•
•
•
Proxy Server
Ein Proxy-Server genannt, ist eine Netzwerkeinheit, die HTTPAnfragen im Auftrage eines Client erfüllt.
Der Client schickt eine Anfragenachricht zuerst an den ProxyServer.
Der Proxy-Server prüft, ob das geforderte Objekt in seinem
Speicher vorrätig und nicht veraltet ist.
Wenn ja, schickt er dem Client das Objekt, ohne den
Originalserver zu kontaktieren.
Wenn nein, wird der Proxy-Server zum Client und fragt beim
Originalserver das Objekt an.
Rechnerkommunikation III
Rechnerkommunikation III
1.5
E-Mail
(1)
Rechnerkommunikation III
•
User Agent: Unterstützt den Benutzer bei der Erstellung und den
Versand seiner Nachricht; er ist ein Anwendungsprozeß, über den
Dienstleistungen des Übermittlungssystems dem Benutzer verfügbar
gemacht werden. (= Mailprogramm)
•
Message Transfer Agent: Diese übernehmen die Nachricht vom
User Agent oder anderen MTAs und vermitteln sie so an den
Empfänger; sie realisieren also das eigentliche
Nachrichtenübermittlungssystem.
•
Bei der Übermittlung von Nachrichten können verschiedene
Protokolle zum Einsatz kommen: SMTP, POP3, IMAP…
Rechnerkommunikation III
1.5.1
Simple Mail Transfer Protocol (SMTP)
•
Im Internet wird Mail zugestellt, indem die Quelle eine TCP-Verbindung
zu Port 25 des Ziels aufbaut.
•
SMTP ist ein einfaches ASCII-Protokoll:
– Nach dem Aufbau der TCP-Verbindung wartet der sendende Rechner (Client),
bis der empfangende Rechner (Server) zuerst mit der Kommunikation beginnt.
– Der Server beginnt durch Aussenden einer Textzeile, durch die er sich
identifiziert und mitteilt, ob er Email annehmen kann
•
SMTP funktioniert nur, wenn der Empfänger einer Mail an einem Rechner
arbeitet, der Emails senden und Empfangen kann.
•
Da dies normalerweise nicht der Fall ist (kaum jemand hat einen Rechner
zuhause, der Tag und Nacht online ist, und auf dem ein Mailserver läuft!)
musste eine andere Lösung gefunden werden, um der steigenden Zahl
an Benutzern den Empfang von Email zu ermöglichen: POP3
Rechnerkommunikation III
1.5.2
Post Office Protocol 3 (POP3)
= Protokoll um Nachrichten, die auf einem Übertragungsagenten
hinterlegt sind, lokal abzurufen.
Rechnerkommunikation III
•
POP3 durchläuft nacheinander 3 Zustände:
ƒ
ƒ
ƒ
•
Autorisierung: Senden des Benutzernamens und
Passworts
Transaktion: Abruf der Nachrichten aus der Mailbox
(Speicherort beim ISP)
Aktualisierung: Löschen der Nachrichten
POP3 setzt wie SMTP auf TCP auf, d.h. zunächst errichtet
die das Mailprogramm eine TCP-Verbindung über einen Port
(hier idR 110) und führt dann das POP3 Protokoll aus.
Rechnerkommunikation III
1.5.3
•
Nachrichtenformate
RFC 822
Rechnerkommunikation III
•
Multimediale Nachrichten
- Standard-SMTP sieht nur die Übertragung von Nachrichten
als ASCII-Text vor
- deshalb wurde ein Standard für die Übertragung
multimedialer Nachrichteninhalte definiert: MIME
(Multipurpose Internet Mail Extensions)
- neue Datenfelder im Headerteil einer Nachricht:
z.B.:
Content-Type: video/mpeg
Content-Transfer-Encoding: base64
Rechnerkommunikation III
1.6
1.6.1
•
Domain Name System (DNS)
Begriffe
Domain Name System
= auf Domänen basierendes Benennungsschema für IPAdressen (RFC 1034, 1035), das als verteiltes
Datenbanksystem realisiert ist.
•
Domain Name Server (Name Server):
Programm oder Rechner, das /der die Information über die
Struktur des DNS verwaltet und aktualisiert.
•
DNS-Protokoll:
Protokoll, das die Umwandlung von IP-Adressen in DNSNamen regelt. Momentan wird für die Übermittlung von DNSAnfragen UDP oder TCP verwendet
•
Domain Name Service:
Dienst, der das DNS realisiert.
Rechnerkommunikation III
1.6.2
•
•
•
DNS-Namensraum
Top Level Domain, Second Level Domain, Subdomain
134.95.100.203
uni-koeln.de
Jede Domäne bestimmt, wie die unter ihr liegenden Domänen
zugewiesen werden
Bsp.: cs.yale.edu
cs.keio.ac.jp
hki.uni-koeln.de
Rechnerkommunikation III
1.6.3
Nameserver
Jede Zone enthält Nameserver, die Domänenanfragen
beantworten und DNS-Einträge verwalten.
1.6.4
Resolver
Resolver stellen die Schnittstelle zwischen Anwendungsprogramm
und Nameserver her. Sie können Informationen aus den Nameservern
abrufen, z.B. Ressource Records um eine angeforderte IP-Adresse zu
erhalten.
Rechnerkommunikation III
2
2.1
Dienste und Protokolle der Transportschicht
Dienste
•
Instanzen der Vermittlungsschicht arbeiten gemäß unterschiedlicher
Vermittlungsschichtprotokolle.
Dementsprechend bieten sie unterschiedliche Dienste an.
Die Transportschicht soll einen zuverlässigen Datentransferdienst für die
Anwendungsprozesse bereit stellen, unabhängig von der verwendeten
Netztechnologie in den Schichten unterhalb Æ zusätzliche Robustheit
•
Rechnerkommunikation III
2.2
2.2.1
–
–
–
–
Protokolle
User Datagram Protocol (UDP)
Definiert in RFC 768.
Verbindungsloses Protokoll
Bietet einen einfachen, unbestätigten Datagramm-Dienst.
Unterstützt also nicht Flusskontrolle, Fehlerkontrolle oder erneutes
Senden
– Max. Größe einer UDP-PDU: 64 KB.
– Schnelle, einfache Übertragung
– Verwendung: z.B.: Multimediaanwendungen, kurze Anforderungen
Rechnerkommunikation III
2.2.2
•
•
•
•
•
Realtime Transport Protocol (RTP)
Definiert in RFC 3550, (1889).
Protokoll für Echtzeit-Multimedia-Anwendungen (Internettelefonie, Audiostreaming, …).
RTP ist ein Protokoll das sich nicht exakt in eine Schicht einordnen läßt, da es ein
Transportprotokoll ist, das in der Anwendungsschicht implementiert ist; es verwendet
wiederum UDP als Transportmedium
Bietet keine Fehlerkorrektur, da Pakete, die erneut gesendet werden würden, ohnehin
zu spät einträfen.
RTP hat auch ein Kontrollprotokoll: RTCP. RTCP kann z.B. Informationen über
Übertragungsverzögerung, Jitter (Abweichungen in der Paketübermittlungszeit),
Bandbreite liefern.
Rechnerkommunikation III
2.2.3
Transmission Control Protocol (TCP)
– Definiert in RFC 793.
– Verbindungsorientiertes Protokoll
– TCP ist zuverlässig (alle Datenpakete kommen redundanzfrei,
vollständig und in richtiger Reihenfolge an) und verbindungsorientiert
(stellt virtuellen Kanal über Sockets her)
– Multiplexen/ Demultiplexen:
• Um Daten zwischen mehreren Prozessen auszutauschen, müssen sie
multiplext/demultiplext werden, d.h. die Daten müssen einzelnen
Prozessen zugeordnet werden.
• Die Aufgaben der Übertragung der in einem Transportschichtsegment
enthaltenen Daten an den richtigen Anwendungsprozess heißt
Demultiplexen.
• Die Aufgabe des Einsammelns von Daten aus verschiedenen
Anwendungsprozessen, die Vervollständigung der Daten mit HeaderInformationen, um Pakete zu bilden, und die Weiterleitung der Pakete
an die Vermittlungsschicht heißt Multiplexen.
Rechnerkommunikation III
3.
Protokolle und Dienste der Internetschicht
•
Dienstklassen der Internetschicht
–
–
Verbindungslose Dienste (Datagramm Teilnetz Æ Postsystem)
Verbindungsorientierte Dienste (Virtuelle Verbindung, Virtual Circuit Æ Telefonsystem)
3.1 Routing
3.1.1 Routing-Algorithmen
•
Verfahren zur Bestimmung von Wegen, die ein Datenpaket vom Sender zum
Empfänger nehmen soll.
ƒ
Routing-Algorithmen verarbeiten Wegewahlinformationen, mit Hilfe derer der Weg
festgelegt wird (Æ statische / dynamische Routing-Algorithmen)
ƒ
Beispiele für Routing Verfahren
ƒ
ƒ
ƒ
ƒ
Fluten:
(Datenpakete werden vom Router repliziert und auf allen anderen Wegen weitergeschickt Æ
hoher Netzverkehr)
Shortest Path Routing
(Kürzester Weg berechnet nach: Anzahl der Teilstrecken / Entfernung in km / …)
Distance Vector Routing
(Jeder Router verwaltet eine Tabelle, die für jedes Ziel die bestmögliche Entfernung und die zu
verwendende Ausgangsleitung enthält)
Link State Routing
(Routing der Pakete nach Zustand der Leitungen Æ gleichmässigere Netzauslastung)
Rechnerkommunikation III
• Routing mittels Wegewahltabellen (verbindungsloser Dienst)
Rechnerkommunikation III
• Routing mittels Wegewahltabellen (verbindungsloser Dienst)
Das gezeigte sog. Datagramm-Teilnetz arbeitet wie folgt:
• Der Prozess P1 hat eine lange Nachricht für P2
• Er übergibt sie an die Transportschicht mit der Anweisung,
sie an P2 auf Host H2 zuzustellen.
• Die Nachricht wird in Pakete aufgeteilt (4 Stück) und an
Router A (über PPP).
• Jeder Router hat eine interne Tabelle, aus der er jedes
mögliche Ziel zum Versenden der Pakete entnimmt.
• Jeder Tabelleneintrag ist ein Paar aus Ziel und der
Ausgangsleitung, um dieses Ziel zu erreichen.
• Es können nur direkte Verbindungsleitungen verwendet
werden.
• So hat A nur zwei Ausgänge: B und C, so dass jedes
eingehende Paket entweder zu B oder C gesendet werden
muss.
• Die Pakete werden auf A kurz gespeichert und die
Prüfsumme verifiziert.
• Anhand der Tabelle werden die Pakete dann von A an C
weitergeleitet.
• Das Paket 1 wird dann an E gesendet und dann an F.
• Bei F wird es in einen Rahmen der Sicherungsschicht
gekapselt und über das LAN an H2 gesendet. Die Pakete 2
und 3 nehmen den gleichen Weg.
• Paket 4 wird an B weitergeleitet, da A entschieden, dass
Paket 4 aufgrund eines Datenstaus im Pfad A-C-E
dazugelernt und seine Tabelle aktualisiert.
Rechnerkommunikation III
• Routing mittels Wegewahltabellen (verbindungsorientierter Dienst)
Rechnerkommunikation III
• Routing mittels Wegewahltabellen (verbindungsorientierter Dienst)
• Beim verbindungsorientierten Dienst wird eine feste
Verbindung zwischen den beiden Hosts H1 und H2 hergestellt.
• Dies wird im ersten Eintrag der entsprechenden Routingtabelle
notiert.
• Die erste Zeile der Tabelle von A gibt an, dass ein von H1
kommenden Paket mit der Verbindungskennung 1 an Router
C geschickt wird.
• Genauso leitet der erste Eintrag in C das Paket an E weiter.
• Wenn ein weiterer Host H3 eine Verbindung aufbauen möchte
geschieht folgendes:
• H3 wählt ebenfalls die Verbindungskennung 1, da er
nur eine Verbindung aufgebaut hat, und weist das
Teilnetz an, eine virtuelle Verbindung einzurichten.
• Dies zeigt die zweite Zeile in den Tabellen.
• An dieser Stelle tritt ein Konflikt auf, da nun die Pakete
von zwei Rechner die gleiche Verbindungskennung
haben: 1.
• Obwohl A die Pakete von H1 und H3 leicht auseinander
halten kann, kann C das nicht. Daher weist A den
Paketen für den ausgehenden Datenverkehr von H3 eine
andere Verbindungskennung zu.
• Um deratige Konflikte zu bewältigen, haben Router die
Fähigkeit, die Verbindungskennung ausgehender Pakete
zu ersetzen:
- diese Fähigkeit nennt man Label-Switching.
Rechnerkommunikation III
3.2 Internet Protocol
3.2.1 IPv4 Charakteristik:
•
•
•
•
•
•
Besteht aus einem Header- (20 Byte feste Länge + optionaler Abschnitt
mit variabler Länge (max. 40 Byte)) und Textteil.
Header+Text bilden zusammen das Datagramm.
Max. Gesamtlänge eines Datagramms: 65.536 Byte.
Elementare Fragmenteinheit: 8 Byte.
Header:
Mehrere festgelegte Felder kodieren verschiedene Basisinformationen
(Version des Protokolls, Länge, …(s. Abb. 5.45)) und zusätzliche optionale
Informationen (Sicherheit, Striktes Source-Routing…(s. Abb 5.46))
Verbindungsloses, relativ unzuverlässiges Protokoll: keine Bestätigung
der Zustellung/ Verlust eines Pakets; keine Überlastkontrolle
Rechnerkommunikation III
3.2.1.2 Classless InterDomain Routing (CIDR)
•
•
•
•
•
•
Netzklassen sind nicht mehr in Gebrauch, IP-Adressen werden nach
CIDR vergeben!
CIDR (Classless Interdomain Routing) (RFC 1519) soll das Problem der
"ausgehenden" IP-Adressen lösen:
Die verbleibende Netze werden in Blöcken vergeben, unabhängig von
Klassen:
Adressen 194.0.0.0 bis 195.255.255.255 für Europa
Adressen 198.0.0.0 bis 199.255.255.255 für Noramerika
...
Rechnerkommunikation III
3.2.2 IPv6 Charakteristik
•
IPv6 wurde eingeführt, um vor allem die Anzahl der zu vergebenden IPAdressen zu vergrößern; dabei soll zusätzlich das Protokoll aufgrund von
mit IPv4 gemachten Erfahrungen verbessert werden; neue Anwendungen
(Multimediaanwendungen) und veränderte technologische
Rahmenbedingungen (Realisierung hoher Datenraten) sind weitere Gründe.
•
Die Größe der IP-Adresse wurde von 32 auf 128 Bit erhöht.
Nicht mehr vorhanden sind (vor allem aus Gründen des Zeitaufwandes bei der
Verarbeitung):
–
–
–
Fragmentierung/Reassemblierung findet jetzt nur noch bei Quelle und Ziel statt,
nicht aber bei dazwischen liegenden Routern
Prüfsumme: aufgrund des TTL-Feldes musste in jedem Router die Prüfsumme
neu berechnet werden
Optionen verschoben in „nächsten Header“
Notation der 16-Byte Adressen:
–
X:X:X:X:X:X:X:X
z.B.: FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 (in Hex-Format)
Herunterladen