Anwendungsnahe Adressierung im Internet DNS

Werbung
Anwendungsnahe Adressierung im Internet
Telekommunikationsdienste und –protokolle
— Die Internet-Protokollsuite (II) —
S Domain Name Service
S Transmission Control Protocol
S User Datagram Protocol
S Firewalls
Adressierung erfolgt über logische Namen
S Einfacher zu merken
S Dienste einfacher auf andere Rechner übertragbar
Aufbau eines logischen Namens
S Weltweit eindeutig
S Hierarchische Struktur
S Gliederung in Domänen
Beispiel
S ikmcip1.e-technik.tu-ilmenau.de
Rechner
Land
Abteilung
Institution
Benötigt:
S Abbildung logischer Name → IP-Adresse
S Ursprünglich: Datei (hosts.txt), die jede Nacht vom Server geladen wurde
S Problem: steigende Anzahl der Namen ließ zentrale Datei nicht mehr zu
TKDP-SS01-1-2
DNS-Namensraum
DNS – Resource Records
S Namensraum ist in Zonen aufgeteilt
Fünf-Tupel, der einzelne Ressourcen näher beschreibt:
S Domain_name
S Time_to_live
S Class
S Type
• A (IP-Adresse des Rechners)
• MX (Mail Exchange)
• HINFO (CPU und Betriebssystem des Rechners in ASCII)
• CNAME (Canonical Name)
• ...
S Value
Länder
us
de
tu-ilmenau
e-technik
ikmcip1
Allgemeine Kategorie
(vorrangig innerhalb
der USA)
se
...
uk net org gov mil
ac co
www
nasa
...
edu
com
Geplante, z.T.
bereits realisierte
weitere Zonen
(top level domains):
• arts
• firm
• info
• nom
• rec
• shop
• web
TKDP-SS01-1-3
TKDP-SS01-1-4
DNS - Beispieldatenbank
"
"
"
"
"
555
"
#%
DNS - Name Servers
! "#
$
#% &#
'
#!$
(
) *+#
(
, -.
/ &0
'
)112))),
'
)3,1),1))4
(
) "
(
, *+#
'(6
#
'(6
*+#
'
)3,1),1),)
-.
-7 8#%
/$ 7##
#
'9 <
9#
!
9
9
8=!#*"+
#9
9
%
%
%
!
#:
!
;:
+
555
:#
,
"0
TKDP-SS01-1-5
DNS: Nameserver
TKDP-SS01-1-6
DNS: Beispiele
S Jede Zone hat einen primären und beliebig weitere sekundäre
Nameserver
S Anfragen können rekursiv oder nicht-rekursiv beantwortet werden
• rekursiv:
Name
Name
@
IP-Adresse für
www.nasa.gov ?
? http://www.nasa.gov/
Endsystem
B http 198.116.142.34
etc.
DNS-Name Server
A 198.116.142.34
Info
Router
Info
•
@ MX-Daten für ieee.org ?
? mail [email protected]
nicht-rekursiv:
Name
Endsystem
Info
B smtp 199.172.136.14
Name
Info
DNS-Name Server
A gemini.ieee.org,
IP-Adresse 199.172.136.14, SMTP
Router
TKDP-SS01-1-7
TKDP-SS01-1-8
TCP (Transmission Control Protocol):
Dienste
Die Internet-Protokollfamilie: Wiederholung
Die Bezeichnung TCP/IP wird häufig als Synonym für die gesamte
Protokollfamilie verwendet
Einordnung der Internetprotokolle in das ISO/OSI-Referenzmodell:
Kommunikationssteuerungsschicht
TCP
IGMP
Transportschicht
UDP
ICMP
IP
ARP
Vermittlungsschicht
RARP
Sicherungsschicht
Im Weiteren wird die Transportschicht behandelt
S Verbindungsverwaltung
Verbindungsaufbau zwischen zwei „Sockets“ (entspricht CEP im
TSAP).
• Datentransfer über virtuelle Verbindung.
• Gesicherter Verbindungsabbau (alle Daten müssen quittiert sein).
S Multiplexen
• Mehrere Prozesse können gleichzeitig eine TCP-Instanz benutzen
S Datenübertragung
• Vollduplex
• Reihenfolgetreue
• Flusskontrolle mit Fenstermechanismus
• Fehlerkontrolle durch Folgenummern (Sequenznummern),
Prüfsumme, Quittung, Übertragungswiederholung
• Unterstützung von Sicherheitsstufen und Prioritäten
• Zeitbehaftete Daten: Falls Auslieferung in bestimmter Zeit nicht
möglich ist, wird der Dienstbenutzer informiert
S Fehleranzeige
•
TKDP-SS01-1-9
TKDP-SS01-1-10
TCP: fest vereinbarte Port-Nummern
(well-known ports)
TCP: Adressierung
Viele Anwendungen wählen TCP als Protokoll, allerdings muss der richtige
Port gewählt werden, um auf der Gegenseite mit der richtigen Anwendung zu
kommunizieren.
> telnet walapai 13
S Identifikation von TCP-Diensten geschieht über Ports
(TSAPs in der OSI-Terminologie)
S Portnummern bis 255 sind für häufig benutzte Dienste reserviert
(z.B. 21 für FTP, 23 für TELNET, 80 für HTTP)
S Ein Socket besteht aus der Internetadresse eines Rechners und einem Port.
Notation: (IP-Adresse:Portnummer) → Internet-weit eindeutig
S Beispiel: Der FTP-Server der TU Ilmenau ist über den Socket
141.24.191.41:21 erreichbar
S 13: Tageszeit
S 20: FTP Daten
S 25: SMTP
(Simple Mail Transfer Protocol)
S 53: DNS
FTP-Server
Benutzer A
(Domain Name Server)
Benutzer B
Port 21
Port 400
Port 400
TCP
IP
TCP
IP
TCP
IP
S 80: HTTP
(Hyper Text Transfer Protocol)
S 119: NNTP
(Network News Transfer
Protocol)
TKDP-SS01-1-11
Trying 129.13.3.121...
Connected to walapai.
Escape character is '^]'.
Mon Aug 4 16:57:19 1997
Connection closed by foreign host
> telnet mailhost 25
Trying 129.13.3.161...
Connected to mailhost .
Escape character is '^]'.
220 mailhost ESMTP Sendmail 8.8.5/8.8.5;
Mon, 4 Aug 1997 17:02:51 +0200
HELP
214-This is Sendmail version 8.8.5
214-Topics:
214- HELO
EHLO
MAIL
RCPT
DATA
214- RSET
NOOP
QUIT
HELP
VRFY
214- EXPN
VERB
ETRN
DSN
214-For more info use "HELP <topic>".
...
214 End of HELP info
TKDP-SS01-1-12
TCP: Verbindungsaufbau
TCP: Verbindungsmanagement
Connect; SYN
Verbindungen können nach der Erstellung eines Sockets
S aktiv (connect) oder
S passiv (listen/accept)
aufgebaut werden.
S Aktiver Modus: Anforderung einer TCP-Verbindung mit dem
spezifizierten Socket.
S Passiver Modus: Ein Benutzer informiert TCP, dass er auf eine
eingehende Verbindung wartet.
• Spezifikation eines speziellen Sockets, von dem er eine
eingehende Verbindung erwartet wird (fully specified passive
open) oder
• Alle Verbindungen annehmen (unspecified passive open).
• Geht ein Verbindungsaufbauwunsch ein, wird ein neuer
Socket erzeugt, der dann als Verbindungsendpunkt dient.
S Anmerkung: Die Verbindung wird von den TCP-Instanzen ohne
weiteres Eingreifen der Dienstbenutzer aufgebaut (es existiert z.B.
kein Primitiv, das T-CONNECT.Rsp entspricht).
Verbindungsaufbau
Closed
Listen; - Close; SYN; SYN+ACK
RST; -
Estblshd
Close Activ
Close; FIN
FIN; ACK
FIN wait2 FIN; ACK Timed wait
(Timeout; -)
31
Destination
Destination Port
Port
Piggyback
Piggyback Acknowledgement
Acknowledgement
U
UA
A EE R
R SS FF
R
RC
CO
O SS Y
Y II
G
GK
KM
M TT N
NN
N
Checksum
Checksum
Close; FIN
Last ACK
ACK; -
TKDP-SS01-1-14
TCP-Paketformat
16
66 bit
bit
unused
unused
Close wait
Closed
Sequence
Sequence Number
Number
44 bit
bit TCP
TCP
header
header
length
length
Closing
FIN+ACK; ACK; ACK
SYN+ACK; ACK
FIN; ACK
Close Passive
FIN wait1
ACK; -
SYN sent
ACK; -
Close; FIN
TCP-Paketformat: Aufbau
Source
Source Port
Port
Send
SYN; SYN+ACK
(gleichzeitig)
SYN rcvd
TKDP-SS01-1-13
0
Close; -
Listen
Window
Window
Paketkopf
Urgent
Urgent Pointer
Pointer
Options
Options (0
(0 oder
oder mehr
mehr 32-bit-Worte)
32-bit-Worte)
Daten
Daten ...
...
Dieses Bit wird in der Literatur auch durch
PSH (Push-Bit) bezeichnet.
TKDP-SS01-1-15
- Source- und Destinationport identifizieren die Endpunkte der Verbindung. Wie die
Hosts ihre Ports zuweisen, bleibt ihnen überlassen (bis auf die standardisierten bis
Nummer 255)
- Sequence number enthält die Byte-Folgenummer
- Piggyback acknowledgement: Huckepackverschickung von Quittungen. Die nächste
erwartete Folgenummer
- TCP header length: Anzahl der 32-bit-Wörter im Paketkopf
- URG: Wird auf 1 gesetzt, falls der Urgent Pointer verwendet wird
- SYN: Wird beim Verbindungsaufbau verwendet, um CONNECT.Req/Ind anzuzeigen
- ACK: Unterscheidet bei gesetztem SYN-Bit eine CR-PDU von einer CC-PDU.
Signalisiert die Gültigkeit des Acknowledgement-Feldes
- FIN: Gibt an, dass der Sender keine Daten mehr senden möchte
- RST: Wird benutzt, um eine Verbindung zurückzusetzen
- EOM (bzw. PSH): Dieses Bit zeigt das Ende einer Nachricht an
- Window: Dient zur Flusskontrolle. Anzahl der Bytes, die nach dem höchsten
bestätigten Byte gesendet werden dürfen
- Checksum: Enthält die Prüfsumme über Paketkopf und Daten
- Urgent Pointer: Relativer Zeiger auf wichtige Daten
- Das Options-Feld kann Optionen variabler Länge aufnehmen
TKDP-SS01-1-16
TCP-Verbindungsaufbau
Verwaistes SYN
TCP-Verbindungsaufbau im Detail
A
Active Open
B Passive Open
SYN i
A
A beantragt Verbindung
1
CK i+
A
,
j
SYN
B akzeptiert und bestätigt
DAT
A i+
1, AC
K j+
1
A akzeptiert und beginnt
Übertragung
B Passive Open
altes S
Y
Altes SYN kommt an
Ni
1
CK i+
A
,
j
SYN
RST
, AC
K j+
1
B akzeptiert und bestätigt
A verweigert Bs Verbindung
S 3-Wege-Handshake
•
•
Beide SYNs müssen bestätigt sein
Für den Empfänger gilt die Verbindung erst nach der
Bestätigung seines SYNs als aufgebaut
TKDP-SS01-1-17
TCP-Verbindungsaufbau:
Verspätetes SYN/ACK
A
Active Open
TKDP-SS01-1-18
TCP: Duplikaterkennung
B Passive Open
p
CK
A
k,
N
SY
S
RST YN i
, AC
K p+
1
1
CK i+
A
,
j
SYN
DAT
A i+
1, AC
K j+
1
A beantragt Verbindung
Altes SYN/ACK kommt an
A bricht „alte“ Verbindung
ab
B akzeptiert und bestätigt
neue Verbindung
A bestätigt und beginnt
Übertragung
TKDP-SS01-1-19
Datenpakete werden zur Duplikaterkennung durchnummeriert
Unter Umständen wird ein Datenpaket mehrfach bestätigt
Î Kein Anzeichen für Duplikate
Sequenznummernbereich muss groß genug sein, dass zwei Pakete mit
der gleichen Sequenznummer genügend weit auseinander liegen
Allerdings:
ƒ Datenpakete können Verbindungsabbau überstehen und irrtümlich
einer neuen Verbindung zugeordnet werden
ƒ Durch einen Systemzusammenbruch kann die Paketnummerierung
verloren gehen
Problemvermeidung:
ƒ Uhr-unterstützte Sequenznummer (Clock-based initial sequence
number)
ƒ Sendeverzögerung (Quiet Time)
TKDP-SS01-1-20
TCP: Fenstermanagement
TCP: Flusskontrolle / Staukontrolle
Sender
S Flusskontrolle regelt den Datenfluss zwischen den Endsystemen
Empfänger
Anwendung
schreibt 2KB
2K SEQ
=0
S Flusskontrolle in TCP: Fenstermechanismus mit Kreditvergabe
2K
IN=2048
ACK=2048 W
Anwendung
schreibt 3KB
S Staukontrolle befasst sich mit Stausituationen in den Zwischensystemen
Empfängerpuffer
0
4K
Leer
0
96 WIN=
ACK=40
0
2 48
96 WIN=
ACK=40
1K SE
Q=409
Window-Feld gibt an, wieviele Bytes der Empfänger zusätzlich akzeptiert
Stau in Zwischensystemen führt oftmals dazu, dass Transportprotokolle nach
einem Timeout Pakete wiederholen. ⇒ Die Stausituation wird verstärkt!
Voll
Sender kann bis zu
2KB übertragen
ACK-Feld im Paketkopf bestätigt alle niedrigeren Bytefolgenummern
•
S Staukontrolle in TCP: Problem „congestion collapse“:
2K SEQ=
2048
Sender ist
blockiert
•
Anwendung liest 2KB
S TCP: „slow start“ und „multiplicative decrease“ Mechanismen
2K
6
1K
2K
•
Bei Datenverlust reduziert TCP den Schwellwert, bis zu dem eine
Steigerung der Senderate möglich ist, auf die Hälfte des aktuellen
Fensterwerts. (multiplicative decrease).
•
Nach einer Stauperiode wird die Fenstergröße um ein Datenpaket erhöht
und weiterhin nach jeder empfangenen Quittung (slow start)
⇒ Der „slow start“ Mechanismus verhindert, dass nach einem Stau direkt
zu hoher Verkehr auftritt
TKDP-SS01-1-21
TCP: Staukontrolle am Beispiel
TKDP-SS01-1-22
TCP: Verbindungsabbau
44
Bestätigter und nummerierter Verbindungsabbau
S Noch ausstehende Datenpakete können erkannt werden, so dass der
Verbindungsabbau erst mit Eintreffen des letzten Datenpakets
vollzogen werden kann.
Timeout
40
36
Schwelle
Übertragungsfenster (KB)
32
A
B
Close
28
FIN i
24
Schwelle
20
i,
ACK
16
FIN j
12
ACK
j
8
4
0
0
2
4
6
8
10
12
14
Anzahl der Übertragungen
16
18
20
22
A sendet VerbindungsabbauAnfrage
B bestätigt und sendet eigenes
Verbindungsabbau-Signal
A bestätigt den Verbindungsabbau von B. Ist dieses Signal
bei B angekommen, gilt die
Verbindung als abgebaut.
24
TKDP-SS01-1-23
TKDP-SS01-1-24
UDP (User Datagram Protocol)
Firewall zum Schutz des WWW-Servers
S Unzuverlässig, verbindungslos, einfacher und schneller als TCP
WWW-Server
HTTP
TCP
IP
LLC
MAC
PHY
S Demultiplexing der empfangenen Pakete basiert auf der Port-Nummer
S Optionale Prüfsumme
0
16
31
Source
Source Port
Port
Destination
Destination Port
Port
Message
Message Length
Length
Checksum
Checksum
Paketkopf
Notebook
WWW-Browser
HTTP
TCP
IP
LLC
MAC (WLAN)
PHY (Code...)
Daten
Daten ...
...
S festgelegte, sogenannte „well-known“ Ports:
13: daytime
53: domain name server
123: network time protocol
•
•
•
S sehr viele Multimedia-Anwendungen nehmen UDP statt TCP wegen
Leistungsvorteilen
Funk
TKDP-SS01-1-25
Firewalls im Internet
Firmen, Behörden, Privatpersonen, Universitäten sind von den Protokollen
TCP/IP her gleichberechtigt an das Internet angebunden
⇒ Das interne Netz von unerwünschten Zugriffen von außen schützen:
S am sichersten ist nur die physikalische Trennung zwischen Rechnern am
Internet und firmeninternen Rechnern
S Firewalls sind meist Router, die Pakete anhand der IP-Adresse und Port-
Nummer herausfiltern können (zusätzliche Vermerke in einer Log-Datei
möglich)
•
Beispiel: Ausfiltern von Paketen mit dem Port 80 verhindert den
Zugriff auf normale WWW-Server; werden z.B. 129.13.x.y Adressen
gefiltert, kann kein Rechner der Telematik auf etwas zugreifen!
S Außer Paketfilter sind oft noch Anwendungsgateways und
Adressübersetzung integriert
•
Umsetzung zwischen verschiedenen mail-Systemen
•
dynamische Abbildung einer IP-Adresse auf viele verschiedene
interne Endsysteme
TKDP-SS01-1-27
Router
Router
Funk
Coax
Router
Router
Glasfaser
Router
Router
Router
Router
Firewall
Glasfaser
Bridge
LLC
MAC (WLAN) MAC (Ethernet)
PHY (Code...)
PHY
Router
IP
LLC
MAC (Ethernet)
PHY
LLC
MAC (FDDI)
PHY
UTP5 – Twisted Pair
TKDP-SS01-1-26
Herunterladen