UDP-, MTU- und IP- Fragmentierung

Transcription

UDP-, MTU- und IP- Fragmentierung
R|V|S
Rechnernetze und
Verteilte Systeme
UDP-, MTU- und IPFragmentierung
Jörn Stuphorn
[email protected]
Universität Bielefeld
Technische Fakultät
Bielefeld, den15.
15.
Juni
2005
Juni
2005
Stand der Veranstaltung
R|V|S
Rechnernetze und
Verteilte Systeme
Unix-Umgebung
Unix-Umgebung
Unix-Umgebung
ARP, ICMP, ping
IP-Adressen & Subnetzmasken
Einführung in Bridging, Routing, ...
IOS, Spanning-Tree
IOS Befehle, Brigding, Routing
Statisches Routing
UDP-, MTU- und IP-Fragmentierung
TCP-Verbindungen und -Datenfluss
DHCP und NTP
NAT und Firewalls
Verschlüsselung, Vertraulichkeit,
13. Juli 2005 Authentisierung
20. Juli 2005 Sichere Anwendungen
13. April 2005
20. April 2005
27. April 2005
4. Mai 2005
11. Mai 2005
18. Mai 2005
25. Mai 2005
1. Juni 2005
8. Juni 2005
15. Juni 2005
22. Juni 2005
29. Juni 2005
6. Juli 2005
Bielefeld, den15.
15.
Juni
2005
Juni
2005
R|V|S
Routing
User
Process
User
Process
User
Process
Rechnernetze und
Verteilte Systeme
User
Process
TCP
UDP
ICMP
IP
IGMP
ARP
Hardware
Interface
RARP
Application
Layer
Transport
Layer
Network
Layer
Link Layer
Media
Bielefeld, den15.
15.
Juni
2005
Juni
2005
R|V|S
UDP & TCP
Rechnernetze und
Verteilte Systeme
 Die beiden verbreiteten Transport-Layer Protokolle des
Internets:
UDP - User Datagram
Protocol
 Datagramm
orientiert
 Unzuverlässig, Verbindungslos
 Einfach
 Unicast und Multicast
Übertragung
 für einige Anwendungen
nützlich (z.B. Multimedia)
 oft für Dienste verwendet
 Netzwerk
Management (SNMP),
Routing (RIP), Namensauflösung
(DNS), etc.
TCP - Transmission
Control Protocol
 Stream
orientiert
 Zuverlässig, Verbindungsorientiert
 Komplex
 Nur Unicast Übertragung
 Für die meisten Internet
Anwendungen verwendet::
 Web
(http), eMail (smtp),
Dateiübertragung (ftp),
Terminal (telnet), etc.
Bielefeld, den15.
15.
Juni
2005
Juni
2005
R|V|S
UDP
Rechnernetze und
Verteilte Systeme
 Unterstützt unzuverlässige Übertragung von Datagrammen
 UDP erweitert Host-to-Host Übertragung von IP-Datagramm um
Application-to-Application Service
 UDP fügt multiplexing und demultiplexing hinzu
Applications
Applications
UDP
UDP
IP
IP
IP
IP
IP
Bielefeld, den15.
15.
Juni
2005
Juni
2005
R|V|S
UDP Header
Rechnernetze und
Verteilte Systeme
 Port Nummern identifizieren sendende und empfangende
Anwendung
 Maximaler Port: 65535 (16bit)
 Nachrichtenlänge zwischen 8 und 65535 Byte
 Checksum für UDP Header und UDP Daten
IP header
UDP header
20 bytes
8 bytes
UDP data (payload)
Source Port Number
Destination Port Number
UDP message length
Checksum
0
15 16
31
Bielefeld, den15.
15.
Juni
2005
Juni
2005
R|V|S
Port Nummern
Rechnernetze und
Verteilte Systeme
 UDP und TCP verwenden Port Nummern um Anwendungen zu
identifizieren
 Global Eindeutige Adresse im Transport-Layer:
 IP Adresse
 Port Nummer
User
Process
User
Process
User
Process
User
Process
TCP
User
Process
User
Process
Demultiplex
based on
port number
UDP
IP
Demultiplex
based on
Protocol field in IP
header
Bielefeld, den15.
15.
Juni
2005
Juni
2005
R|V|S
UDP Experiment
Rechnernetze und
Verteilte Systeme
 Packetgenerator: hping3
 Exercise 4
 sock -u -i -ni -w10000 remote_host echo
 Beobachte die übertragenen Pakete
 Beschreibe die Pakete und die Felder, die für
Fragmentierung wichtig sind
 Exercise 5
 Rufe den folgende Befehl mit variierenden SIZE auf
 sock -u -i -n1 -w<SIZE> remote_host echo
 Wie groß ist die maximale Größe eines UDP Datagramms
wenn Fragmentierung erlaubt ist?
Bielefeld, den15.
15.
Juni
2005
Juni
2005
R|V|S
Rückblick: MTU
Rechnernetze und
Verteilte Systeme
 DataLink Protokoll hat begrenzte Rahmengröße
 Rahmengröße wirkt sich auf maximale Datenmenge, die ein IP
Datagramm kapseln kann, aus.
 MTU (Maximum Transmission Unit)

MTUs for various data link layers:
Ethernet: 1500
802.3: 1492
802.5: 4464
FDDI: 4352
ATM AAL5: 9180
PPP: 296
 Was passiert, wenn IP Datagramm größer als MTU ist?
 Datagramm wird fragmentiert
 Was passiert, wenn Route über Netzwerke mit
unterschiedlichen MTUs läuft?
 Die niedrigste MTU wird als Pfad MTU (Path MTU)
verwendet.
Bielefeld, den15.
15.
Juni
2005
Juni
2005
R|V|S
IP Fragmentation (1)
Rechnernetze und
Verteilte Systeme
 Host A sendet ein großes IP Datagramm and Host B
 Wie geht der Router damit um?
 IP Router splittet das Datagramm in mehrere Fragmente
 Die Größe aller Fragmente (bis auf das Letzte) ist ein Vielfaches
von 8Byte.
Host A
MTUs:
FDDI
Ring
FDDI: 4352
Ethernet
Router
Host B
Ethernet: 1500
Bielefeld, den15.
15.
Juni
2005
Juni
2005
R|V|S
IP Fragmentation (2)
Rechnernetze und
Verteilte Systeme
 Fragmentierung kann auf beim Sender oder einer
Zwischenstation passieren.
 Das gleiche Datagramm kann öfters fragmentiert werden.
 Zusammensetzen der empfangenen Fragmente erfolgt nur beim
Empfänger
IP datagram
H
Fragment 2
H2
Fragment 1
H1
Router
Bielefeld, den15.
15.
Juni
2005
Juni
2005
IP Header Informationen
R|V|S
Rechnernetze und
Verteilte Systeme
 Die folgenden Header Felder betreffen Fragmentierung:
 Identification für alle Fragmente gleich
 Flag beinhaltet ein „more fragments“ bit
(ein „don't fragment bit“ existiert auch)
 Fragment offset zeigt den offset (Vielfaches von 8Byte) an
 Total length gibt die Größe des Fragments an.
version header Type of Service
(4 bits) length
Identification
/TOS
TTL Time-to-Live
(8 bits)
Total Length (in bytes)
flags
Protocol
(8 bits)
Fragment Offset
Header Checksum (16 bits)
......
Bielefeld, den15.
15.
Juni
2005
Juni
2005
R|V|S
Pfad MTU Ermittlung
Rechnernetze und
Verteilte Systeme
 Ein host sendet eine Folge von IP datagrammen mit
unterschiedlichen Größen und dem „don't fragment“-Flag
gesetzt.
Bielefeld, den15.
15.
Juni
2005
Juni
2005
Experiment MTU Ermittlung
R|V|S
Rechnernetze und
Verteilte Systeme
 Exercise 6
Host_A
60.10/24
Ethernet
192.168.60.*
60.1/24
61.1/24
Ethernet
192.168.61.*
Host_B
Router
61.2/24
Router







62.10/24
62.1/24
Ethernet
192.168.62.*
Verbinde die Router wie abgebildet
Telnet zu redem Router (RIP aktivieren)
Router2: eth1 MTU auf 500 Byte setzen
Teste Verbindung mit ping von Host_A nach Host_B
Starte sock Server auf Host_B sock -u -s 5555
Host_A: sock -i -u -n10 -w1200 -p remote_host 5555
Host_A: sock -i -u -n10 -w1200 -p5 remote_host 5555
Bielefeld, den15.
15.
Juni
2005
Juni
2005
Client/Server Architektur
R|V|S
Rechnernetze und
Verteilte Systeme
 Die meisten Netzwerkanwendung sind als Client/Server
Systeme konzipiert
 Ein Server bietet die Netzwerkdienst an
 Clients greifen auf diese Dienste zurück
 Server benutzen bekannte Ports und laufen rund um die Uhr (im
optimalen Fall)
 Client benutzt einen kurzlebigen Port, der nach
Verbindungsabbau wieder frei gegeben wird
 Wenn ein Client einen Dienst anfordert, der nicht angeboten
wird:
 UPD: ICMP port unreachable Nachricht wird zurückgegeben
 TCP: Verbindung wird zurückgesetzt.
Bielefeld, den15.
15.
Juni
2005
Juni
2005
TFTP
R|V|S
Rechnernetze und
Verteilte Systeme
 Trivial File Transfer Protocol
 Verwendet UDP (nicht verbindungsorientiert und unzuverlässig)
 Unregelmäßige Übertragung kleiner Dateien
 Durchsatz ist nicht übermäßig wichtig
 Verwendet stop-and-wait Flow Windows Control Algorithmus
 Warte auf ACK bevor nächstes Paket gesendet wird
 Ein verlorenes Paket erzeugt Timeout und Retransmission
 Konzipiert für plattenlose Systeme (Thin-Clients) um
Konfigurationsinformationen während Bootvorgang abzurufen
Bielefeld, den15.
15.
Juni
2005
Juni
2005
FTP
R|V|S
Rechnernetze und
Verteilte Systeme
 File Transfer Protocol
 Verwendet 2 TCP Verbindungen
 Kontrolle: Port 21 auf dem Server
 Daten: Port 20 auf dem Server
Bielefeld, den15.
15.
Juni
2005
Juni
2005
Verbindungs Management
R|V|S
Rechnernetze und
Verteilte Systeme
 Kontrollverbindung bleibt während client/server Verbindung aktiv
 Verbindungsaufbau der Datenverbindung wird vom Client gesteuert
 Client wählt einen vorübergehenden Port für sein Ende der
Datenverbindung
 Client sendet PORT Kommando an Server über Kontrollverbindung
 Server überträgt Daten an Client-Port
 Ermöglicht viele FTP-Sitzungen von vielen Clients zu einem Server
Bielefeld, den15.
15.
Juni
2005
Juni
2005
TFTP Experiment
R|V|S
Rechnernetze und
Verteilte Systeme
 Exercise 8
 Übertragung einer großen Datei mit TFTP
 Beobachte Transfer mit ethereal
 Kopiere Datei von yoda nach windu mit TFTP
 Welche Nachrichten wurden übertragen?
Bielefeld, den15.
15.
Juni
2005
Juni
2005
FTP Experiment
R|V|S
Rechnernetze und
Verteilte Systeme
 Exercise 9
 Übertragung einer großen Datei mit FTP
 Beobachte Transfer mit ethereal
 Kopiere Datei von yoda nach windu mit FTP
 Welche Nachrichten wurden übertragen?
Bielefeld, den15.
15.
Juni
2005
Juni
2005
FTP / TFTP Vergleich
R|V|S
Rechnernetze und
Verteilte Systeme
 Exercise 7
 Übertragung einer großen Datei mit TFTP
 Beobachte Transfer mit ethereal
 Kopiere Datei von yoda nach windu mit FTP
 Notiere Übertragungsdauer
 Kopiere Datei von yoda nach windu mit TFTP
 Notiere Übertragungsdauer
 Welche Variante ist schneller?
 Warum?
Bielefeld, den15.
15.
Juni
2005
Juni
2005