- Trivial File Transfer Protocol
-
TFTP (Trivial File Transfer Protocol) Familie: TCP/IP Einsatzgebiet: Laden von Betriebssystemen
und anderen Daten über
das NetzwerkPorts: 69/UDP TFTP im TCP/IP‑Protokollstapel: Anwendung TFTP Transport UDP Internet IP (IPv4, IPv6) Netzzugang Ethernet Token
BusToken
RingFDDI … Standards: Das Trivial File Transfer Protocol (TFTP) ist ein sehr einfaches Dateiübertragungsprotokoll. Es wurde 1980 auf der Basis von EFTP entwickelt. TFTP unterstützt lediglich das Lesen oder Schreiben von Dateien. Nicht vorhanden sind viele Funktionen des mächtigeren FTP wie etwa Rechtevergabe mittels chmod, Anzeigen der vorhandenen Dateien oder Benutzerauthentifizierung.
Inhaltsverzeichnis
Das Protokoll
Im Gegensatz zu FTP, das ein verbindungsorientiertes Transportprotokoll erfordert, wird TFTP normalerweise über ein verbindungsloses Protokoll wie UDP betrieben. Allerdings gibt es die Ähnlichkeit zu FTP, dass die Daten nicht in der gleichen Verbindung wie die Steuerungskommandos übertragen werden. Der Client fragt eine Aktion (lesen/schreiben) zwar auf dem Port 69 an, aber der Server sendet nicht mit Port 69 als Quellport, wie man es beispielsweise von DNS kennt (mit Port 53). Client und Server wählen vielmehr sogenannte Transfer IDentifiers (TID). Diese TIDs entsprechen dem UDP-Port auf der jeweiligen Seite und liegen im Bereich von 1024 bis 65535.
Motivation für die Entwicklung von TFTP war das Laden von Betriebssystemen oder Konfigurationen über das Netzwerk. Da dies meist von einer Firmware oder einem kleinen Bootloader aus durchgeführt wird, sind das verbindungsorientierte TCP und das darauf aufsetzende FTP viel zu komplex für diesen Zweck. TFTP wurde dagegen bewusst einfach gehalten mit den Funktionen:
- paketorientiertes Protokoll
- Lesen und Schreiben von Dateien (oder E-Mails) auf einem Server
- keine Auflistung von Verzeichnisinhalten
- keine Authentifizierung, Kompression oder Verschlüsselung
- maximale Dateigröße 32 MBytes (16 MBytes bei manchen Implementierungen), 1998 durch RFC 2347 auf 4 GB erweitert, bzw. unbegrenzt durch block number wraparound.
- Paketgröße auf 512 Bytes festgelegt. Die 1998 eingebrachte RFC 2348 erlaubt die Aushandlung der Blockgröße zwischen Client und Server.
Beispiel
Eine Kommunikation könnte ungefähr so aussehen:
Client Port Kommando Server Port 32534 – RRQ filexxx → 69 32534 ← DATA 'xyz' – 1765 32534 – ACK → 1765 32534 ← DATA 'xyz' – 1765 32534 – ACK → 1765 32534 ← DATA 'xyz' – 1765 32534 … 1765 32534 … 1765 32534 – Error → 1765 In diesem Beispiel ist das Lesen vom Server fehlgeschlagen, weil etwa auf dem Client kein Speicherplatz mehr zur Verfügung stand.
Laden von Betriebssystemen und Konfigurationen
PC-BIOSe bieten heute die Möglichkeit eines Netzboots, das heißt Booten über ein Netzwerk, meist mit PXE. Für dieses Verfahren initialisiert das BIOS die Netzwerkkarte, sucht via DHCP einen Server und lädt den ersten Teil des Betriebssystems (Kernel) mittels TFTP herunter. Dann wird der Kernel gestartet. Wenn TFTP verwendet wird, sind für dieses Verfahren nur verbindungslose Protokolle erforderlich, die mit wenig Aufwand in einem ROM implementiert werden können. Daneben wird TFTP verwendet, um die Computerarbeitsplätze in großen Netzwerken (Schulen, Universitäten, Firmen) zentral zu administrieren, was zu einem reduzierten Verwaltungsaufwand führt.
TFTP verwendet Port 69 und UDP als Transportprotokoll.
Missbrauch
Bestimmte Arten von Computerwürmern wie beispielsweise W32.Blaster nutzen TFTP-Server zu ihrer Verbreitung. Deshalb sollte dem Windows-Service tftp.exe bei Benutzung einer Personal Firewall standardmäßig der Internetzugriff verweigert werden.
Programme
Server:
- tftpd (TFTP Daemon, Standard-Komponente auf Linux und verwandten Systemen)
- TFTPD32 (Open-Source-TFTP-Server für Windows)
- PumpKIN (freie Server- und GUI-Anwendung für Windows, enthält auch Client-Fähigkeiten)
- SolarWinds TFTP-Server (für Windows)
- Open TFTP Server (GNU GPL lizenzierter TFTP-Server für Windows, läuft auch als Service)
Clients:
- TFTP ist ein optional aktiver Bestandteil zahlreicher BIOS-Varianten und BIOS-Erweiterungen (z. B. per EEPROM auf einer Netzwerkkarte) von PC-Systemen
- TFTP wird von diversen Thin-Clients und fremd-bootbaren Terminals implementiert
- eine Funktionalität im Open Source Bootloader namens uBoot für Embedded-Systeme, verkoppelt sowohl mit der uBoot-Shell als auch mit dem selbstständigen Boot-Prozess
- ein in Embedded-Systemen mit Busy Box integrierter Kommandozeilenbefehl namens tftp
- das in Linux bzw. Cygwin enthaltene Programm tftp
- das in einigen Windows-Versionen enthaltene Programm tftp
Siehe auch
Weblinks
- RFC 1350 – Trivial File Transfer Protocol
- RFC 2347 – TFTP Option Extension
- RFC 2348 – TFTP Blocksize Option
- Howto Konfiguration Atftpd unter Debian (deutsch)
Kategorien:- Netzwerkprotokoll auf Anwendungsschicht
- FTP
Wikimedia Foundation.