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