Copyright: Tftpd32 copyright Philippe Jounin


Contents

Tftpd32 version 2.80

A full featured TFTP server, a TFTP client, a BOOTP/DHCP Server, an SNTP server and a SYSLOG server combined into a single program which takes only 100kBytes.

What's new with this version ?

Getting Started

The Tftp Protocol

The Syslog Protocol

A simple BOOTP/DHCP Server

An SNTP server

The TFTP client

Tftpd32 Setup

Tftpd32 registry entries

FAQ

License

Why Tftpd32 has been created ?


FAQ

 FAQ

Q: Where can i get the latest version of Tftpd32 ?

Q: Has TFTPD32 an official home page ?

A: TFTPD32's home page is http://tftpd32.jounin.net.

Q: Does TFTPD32 work with Netscape or Internet Explorer ?

Q: I am unable to use TFTPD32 with my FTP client !

A: TFTPD32 is a TFTP server, whereas Netscape and IE need an FTP server. The protocols are quite different and are not interchangeable.

Q: Sometimes the client begins a transfer correctly, but  receives no data; what's wrong?

A: The requested block size is too high. Either decrease it from the client or disable the option negotiation switch from the server.

Alternatively you can adjust the MTU parameter in your TCP/IP settings.

Q: I have checked "Hide Window at startup" option and i am now unable to change settings anymore !

A: Look at the right of your task bar. You will find the TFTPD32 icon near the clock. Double click on it and the main window will be displayed.

A: Since version 2.2, you can also launch a new instance of Tftpd32.

Q: Can i run Tftpd32 as a NT service ?

A: Microsoft provides a utility called SRVANY.EXE. This program turns a daemon program into a service.  Users have reported that it works with tftpd32.

A: It has also been reported that Tftpd32 can be started by firedaemon (http://www.firedaemon.com/) and XYNTService which are free of charge.

Q: Can i speed up transfers ?

Q: My network bandwidth is of 256 kB/s and a file transfer with TFTPD32 never exceeds 50 kB/s.What's wrong ?

Q: How do i tune the anticipation window ?

A: The TFTP protocol has not been designed for efficiency and never use full bandwidth. However you can increase bandwidth's use by increasing the size of the message. Moreover, you can enable an anticipation window of two to five messages.

Q: Can Tftpd32 logs history into a file ?

A: You have to edit registry and set the TftpLogFile entry to the log file name.All transfers will be timestamped and logged.

Q: How to desinstall Tftpd32 ?

A: Start tftpd32, go in the settings part and click on Default. This will remove the registry entry. Delete the files Tftpd32.hlp and Tftpd32.exe.

A : Tftpd32 now provides un uninstall program which deletes registry entries.

Q: There's a problem with transfering files >16Mb, The error message on the server is: TIMEOUT while waiting for Data block 32769, file <...> ?

A: Tftpd32 is not affected by this classic bug. The client should be faulty.

Q: I can not drag IP address to another window.

A: That's right. Instead of this, i suggest you to select the address into the drop-down box. It will be copied into the clipboard. The same for the filename in the show dir pop-up window.

Q: How can I  change syslog port ?

A: Edit the services file and change syslog/udp association.

Q: Where can i get the latest version of Tftpd32 ?

Q: Has TFTPD32 an official home page ?

A: TFTPD32's home page is http://tftpd32.jounin.net.

Q: May i use a configuration file instead of the registry ?

A: Create an empty file called Tftpd32.ini in the same directory as Tftpd32.exe. Open the settings window, validate with OK, go into the DHCP Tab and click on Save. The configuration has now been saved into Tftpd32.ini.

Q: Can the DHCP server assign static IP ?

A: Yes. Create a new "string value" registry key under HKEY_LOCAL_MACHINE\SOFTWARE\TFTPD32\DHCP. The key's name will be the host's mac-address (ie 0A:0B:0C:0D:0E:0F). The key's data value will be the desired IP address (ie 192.168.1.2).

Q: Can the DHCP server manage user DHCP option ?

A: Yes. You have to edit either the registry or the Ini file and change the AddOptionNumber<N> and AddOptionValue<N>. The values are string values unless they begin whith 0x followed by a hexadecimal value. Note that the special string '$IP$' will be replaced by the assigned IP address.


License

 License

TFTPD32 is a freeware package copyrighted 1998-2005 by Philippe Jounin (philippe@jounin.net).

TFTPD32 is a free, non-commercial product. All documents, software and archives that are attached or included, hereafter referred to as TFTPD32, are protected by applicable copyright laws. TFTPD32 is provided as is, without warranty of any kind; guaranties for fitness for a particular purpose, either expressed or implied, are hereby explicitly disclaimed.

You may freely distribute and copy TFTPD32 as long as no fee is charged and the TFTPD32 archive contains unmodified copies of the original files as produced by its author. No part of TFTPD32 may be modified, altered, reverse engineered, sold, or distributed in any form involving exchange of currency or services without prior written permission from its author.

Please send any comments to tftpd32@jounin.net.


Tftpd32 advanced setup

 Tftpd32 advanced setup

Some options are available only by modifying the registry entries.

Tftpd32 saves its configuration into the registry.

The key used is :

     \\HKEY_LOCAL_MACHINE\SOFTWARE\TFTPD32

It uses the following entries :

BaseDirectory    	Type Char : The base directory

Beep	Type BOOL

DirText              	Type BOOL.

Hide                  	Type BOOL.

LocalIP                	Type Char: The IP address of the enabled interface. Empty string if unused.

MaxRetransmit  	Type DWORD.

Negociate           	Type BOOL.

SecurityLevel     	Type DWORD. O -> None, 1 Standard, 2 High

Services	Type DWORD. The services activated at startup

0x0001	Tftp server

0x0002	Tftp client

0x0008	Syslog server

ShowProgressBar	Type BOOL.

TftpLogFile	Type Char: Name of the logging file, Empty string if unused.

TftpPort            	Type DWORD.

Timeout            	Type DWORD.

UnixStrings	Type BOOL

WinSize           	Type DWORD: The size of anticipation window

SyslogFile	Type Char : Name of the syslog log file. Empty string if unused.

VirtualRoot	Type BOOL : TRUE if '/' should be interpreted as the base directiry

DHCP part saves its configuration into the registry.

The key used is :

     \\HKEY_LOCAL_MACHINE\SOFTWARE\TFTPD32\DHCP

Those values should be changed using the DHCP Server view.

IP_Pool	Type DWORD.

PoolSize	Type DWORD

BootFile            	Type CHAR.

DNS            	Type DWORD.

Mask            	Type DWORD.

Gateway          	Type DWORD.


Tftpd32 setup

 Tftpd32 setup

TFTPD32 allows the user to modify the base (default) directory (used both for read and write requests), the security behavior and many communication parameters.

The base directory can be changed at any time, however it does not affect the transfers in progress.

TFTP options

4 security states are defined:

•  None

The client can read or write any file anywhere on the system.

•  Standard

The client can read or write files only in the base directory.

•  High

The client can read or write files only in the base directory;  Moreover, TFTPD32 will only accept a write request if the file exists and is empty.

•  Read-Only

The client can read any files from the base directory.

Of course, the level Security=NONE should be used only in a lab environment.

TFTP Advanced options

•  The option negotiations as described in RFC 1782 can be allowed. Block size can be increased to a maximum of 8192 bytes and decreased to 8 bytes.

•  Create dir.txt files automatically creates a file named dir.txt which contains the contents of Tftpd32's base directory.

•  Show Progress Bar allows Tftpd32 to display a gauge window for each transfer in progress.

•  Hide Window at Startup enables a daemon-like mode: TFTPD32 just adds an icon in the task tray and the main window remains hidden.

•  Translate Unix File Names allows Tftpd32 to translate Unix-like file names (such as '/tftpboot/system.rom') into DOS names.

•  Beep for long transfer will produce a single beep when a long transfer (over 10 seconds) has ended.

•  Use Tftpd32 only on this interface enables TFTP on the designated interface only. TFTP requests incoming from any other interface are ignored. Do not use this option if you have only one network interface.

•  Use anticipation window allows Tftpd32 to send in a row one or more data packets without waiting for each separate acknowledgement. This can greatly improve transfer speed. Since it is prohibited by the TFTP specification, a special warning is displayed when this box is checked.

•  Allow \ as virtual root : a leading '\' or '/' in the filename is ignored. Thus the file is read/written in the base directory.

Other settings

Some other settings are available by modifying the registry entries. They have been described into the advanced settings chapter.

Syslog Options

•  Save syslog Messages allows Tftpd32 to append any syslog messages into a given file. If no directory is given, the current directory  is used.


The Syslog Protocol

 The Syslog Protocol

The syslog protocol is a very basic protocol made for event logging.

Many network equipements can transfer debug or informational

messages to a syslog server. The syslog window will display them

just as they come.


The Tftp Protocol

 The Tftp Protocol

TFTP (Trivial File Transfer Protocol) is a simple protocol used to transfer files to and from a TFTP server (daemon). This protocol was designed by Noël Chiappa. Its second version (TFTPv2) is described by RFC 1350, «The TFTP Protocol (Revision 2).»

 TFTP is designed to be compact and easy to implement.  Therefore, it lacks most of the features of a regular FTP.  The only thing it can do is read and write files from/to a remote server.  It cannot list directories, and currently has no provisions for user authentication.

 TFTPD32 is my implementation of a TFTP server for Windows 95/98/Me and Windows NT/2000/XP. It supports the Get and Put commands, but does not support the netascii transfer mode (but who really needs it?).

Tftpd32 supports the TFTP extensions described in RFCs 1782 to 1785.


What’s new with this version

 What's new with Tftpd32 version 2.80 ?

Version  2.80	Jan 2005

Added : Ten user-defined options for DHCP

Added : configuration read either from registry or ini file

Added : Syslog daemon shows the IP address of sender

Fixed : BOOTP protocol OK again

Fixed : A race condition may crash Tftpd32 when sending illegal connect frames.

Version  2.74	May/July 2004

Added : Copy to Clipboard button in Tftp server and syslog

Added : DHCP server reads port definition in file services

Fixed : characters in field file in TFTP client window were converted in lowercase (affects versions 2.71 to 2.73)

Memory footprint has been reduced.

Binary is now compiled for Pentium.

Version  2.73	Mar 2004

Added : Name of file which failed to be transferred

Fixed : no answer to BootP requests (affects versions 2.70 to 2.72)

Version  2.72	Feb 2004

Fixed : DHCP lease time may be set to zero (affects only version 2.71)

Version  2.71	Feb 2004

Added : "Send full path to server" button

Added : drag and drop fonctionality on the File field (TFTP client). Upload a full directory by droppping files into the control.

Version  2.70	Feb 2004

Fixed : Trouble with server when uploading with options

Added : block negotiation in client

Version  2.62	Oct 2003

Added user defined DHCP parameter

Fixed: Selection of LAN address into settings window

Tftpd32 now retains windows position

If Hide option has been enabled, Tftpd32's main window will stay 2 seconds. This should discourage Virus developpers to use Tftpd32.

Version  2.60	Aug 2003

SNTP server added

Bug fixed in DHCP server : The server may deliver twice the same address.

Version  2.54	March 2003

Add port field in the client thread

About is the default button

Version  2.53	February 2003

Fix two bugs in the DHCP thread

Version  2.52	February 2003

Fix: Tsize option did not work with PXE .

Fix: Virtual root did not work in v2.50 and 2.51

if Pool Size is 0, DHCP server is desactivated

Version  2.51	November 2002

Fix a vulnerability in Tftpd32.

Version  2.50	November 2002

TFTP Code has been complely rewritten to support multithreading

BOOTP/DHCP server included

Read only mode for TFTP server

Virtual Root option for TFTP server

Selecting a line in 'Server interfaces' drop-down box copy IP address into the Clipboard

Selecting a line in 'Show Dir' windows copy filename into the Clipboard

Syslog port can be changed by editing services file

Version  2.20	April 5th 2002

Settings windows was changed

Option 'Save Syslog messages' is saved into the registry

Version  2.12	March 20th 2002

Bug fixed: Hide window at Startup did not work

Change task tray management

Version  2.11

Bug fixed: The OACK packet has 4 NUL bytes in excess

Change Window size for XP

Use EclipseHelp as Help maker.

Version  2.1

Bug fixed: The statistics may give one block in excess

Add syslog server

Add tftp client

Logging into a file available via registry

Mail address changed into about window

Version 2.0	April 4 2000

Anticipation window available

Add current directory button

Main window is resizeable

Version 1.3	Mars 28 1999

Add progress bars

Add Show Dir button

Add Create dir.txt files setting

Version 1.2	July 30 1998

Bug fixed: Transfer can not exceed 65.535 blocks

Add TFTPv2 support.

Version 1.1	June 19 1998

Add Hide window at startup setting.

Version 1.0	June 3 1998


Why Tftpd32 has been created ?

 Why Tftpd32 has been created ?

I use TFTP to save or load configurations or softwares from network devices . My Unix station has been removed, and i was compelled to use MS Windows. I have therefore spent a lot of time searching for an efficient TFTP server. The only ones i have found were amazingly huge (for instance the freeware Windows TFTP server from Cisco fills more than 1 Mb of disk space and sucks more than 2 Mb of memory from your system).

Thus i have decided to write my own TFTP server This one takes only 110 kB and has more useful features than many others (Tftp client, Syslog server, DHCP Server, anticipation window, easy to configure security, ...)

Helped by "encouragements" from the Internet community, i still maintain it and provide now this new release. As promised, I just have included a BOOTP/DHCP server.

I also plan to make it work with IPv6 or multicast.


Getting Started

 Getting Started

TFTPD32 is designed for

Windows NT/2000/XP

Windows 95/98/Me

TFTPD32 has no installation program. To run TFTPD32 just launch the executable file tftpd32.exe.

The following window appears:

TFTPD32 is already listening for incoming requests and the syslog server is running.


The BOOTP/DHCP Server

A simple DHCP Server

Tftpd32 may act as a basic BOOTP/DHCP Server.

Use the DHCP tab and fill the fields.

Once you click on the Save button, the settings are saved in the registry and the DHCP server starts affecting address on the LAN.

Both last fields serve to define a specific parameter and its ASCII value.

Bringing up a DHCP server can cause severe troubles on the LAN if another DHCP is running. For that reason, no additional help is given. Please refer to another DHCP documentation in order to understand fields meaning.


The SNTP server

A complete SNTP server

Tftd32 includes a complete SNTP server.

It is activated from the settings window.

Note that the server may conflict with Windows 2000 and XP which run a NTP client.


The TFTP client

An enhanced TFTP client

Put the name or IP address of the server into the Host field and fill the File field.

You may either use the keyboard or the drag and drop facility. If more than one file is dropped into the field, Tftpd32 proposes you to send the specified files to the server.