Trivial File Transfer Protocol

Aus Foxwiki

Trivial File Transfer Protocol (TFTP) - Einfaches Dateiübertragungsprotokoll

Beschreibung

TFTP (Trivial File Transfer Protocol)
Familie UDP/IP
Einsatzgebiet Laden von Betriebssystemen
und anderen Daten über
das Netzwerk
Ports 69/UDP
Vorlage:Netzwerk-UDP-IP-Anwendungsprotokoll
Überblick
  • 1981 auf der Basis von EFTP entwickelt
Funktionen

TFTP unterstütztnur das Lesen und Schreiben von Dateien

Nicht vorhanden

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

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

TFTP Beispiel-Kommunikation
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

Die Firmware von netzwerkfähigen Geräten, beispielsweise Personal Computer, bietet meist die Möglichkeit eines Netzboots, das heißt das Starten des Gerätes über ein Netzwerk

  • Dies kann entweder direkt über die Eingabe von Dateiname und IP-Adresse (inklusive Subnetzmaske und Gateway) geschehen, oder über ein eigens dafür geschaffenes Protokoll wie BOOTP oder PXE
  • Nach dem Initialisieren der Netzwerkkarte sucht die Firmware in letzterem Fall meist via DHCP selbständig einen Server und lädt die entsprechende Datei herunter
  • Diese Datei entspricht dem ersten Teil des zu startenden Betriebssystems, kann z. B. der Kernel sein
  • Sobald die Datei per TFTP in den Arbeitsspeicher des Gerätes übertragen wurde, wird diese ausgeführt und holt sich im Anschluss weitere benötigte Dateien ebenfalls per Netzwerk auf das im Netzboot befindliche Gerät
Beispiele für TFTP-fähige Firmware

Bei der Verwendung von TFTP sind nur verbindungslose Protokolle erforderlich, es kann daher mit nur wenig Aufwand in einem ROM implementiert werden

  • Zudem müssen durch einen Netzboot gestartete Geräte keine zusätzlichen Datenspeicher wie Festplatten bereitstellen, was kleinere und billigere Geräte ermöglicht
  • Daneben wird TFTP auch dazu verwendet, um Computerarbeitsplätze in großen Netzwerken (Schulen, Universitäten, Firmen) zentral zu administrieren, was den Verwaltungsaufwand reduziert
Weitere Beispiele zur Nutzung von TFTP
  • Die Konfigurationen und IOS-Images von Cisco-Routern und Switches können auch auf TFTP-Servern gesichert werden
  • Siemens-Telefonanlagen können die Gebührendatensätze von Telefongesprächen auf TFTP-Servern ablegen

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
TFTPD.EXE TFTP Service, enthalten in Windows Server 2000, Windows XP, Windows Server 2003, Windows Server 2008 und Windows Server 2012
TFTPD32 Open-Source-TFTP-Server/-Client und DHCP/DNS-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 optionaler 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.EXE


Anhang

Siehe auch


RFC

RFC Titel
783 Trivial File Transfer Protocol (Revision 2), Updated=1350
1350 Trivial File Transfer Protocol (Revision 2)
1785 TFTP Option Negotiation Analysis
2347 TFTP Option Extension
2348 TFTP Blocksize Option
2349 Timeout Interval and Transfer Size Options
7440 TFTP Windowsize Option

Links

Weblinks