Miradore TFTP server

Miradore TFTP server runs at installation point and provides data access to the necessary boot files that are requested by PXE clients (Preboot Execution Environment) during network boot and initial installation.

Miradore TFTP server features

Miradore TFTP server configuration

Miradore TFTP server uses Windows registry values for configuration. During installation, default values are written to the registry. These can be modified afterwards in order to achieve the desired operation. The registry values are described on the following table.

Registry key

Default value

Possible values

Description

DefaultBlockSize

512 bytes

512 bytes

This registry entry controls the default block size of the TFTP server. This means the amount of data bytes sent in one TFTP packet. However, the only accepted value is 512 bytes as stated in the TFTP specification.

InitialDataPort

60 000

1025 - 65 535

This registry entry defines the initial data port that is used by the TFTP server to communicate with client applications. Default value is 60 000. The port is increased by one each time a connection request is processed and the server only accepts values in the range of 1025 – 65 535.

LogFile

mdtftpserver.log

String

This registry entry defines the name of the TFTP server log file.

LogPath

C:\Windows\Temp

String

This registry value defines the path of the TFTP server log file. The full path of the log file is a combination of LogPath and LogFile entries. By default the LogPath entry is left empty and Windows Temp -folder is used for logging. For example, C:\Windows\Temp, if Windows is installed on C drive.

LogSeverity

Info

Verbose, Debug, Info, Warning, Error, Security, Critical, Crash

This registry entry defines the severity level of logging. Possible values are: Verbose, Debug, Info, Warning, Error, Security, Critical and Crash. The more severe the level of logging, the less logs are recorded to the defined log file. For example, if Critical is chosen for LogSeverity then only events with a severity of Critical and Crash are recorded (the most serious events and exceptions). The default value for the LogSeverity is Info, at which time events with a severity between Info and Crash are written to the log file.

MaxBlockSize

65 464 bytes

512 - 65 464 bytes

TFTP option negotiation allows the client and server to negotiate a block size that is different from the default 512 bytes. This can dramatically increase the data transfer rate and performance of the TFTP session. This registry entry defines the maximum accepted block size during block size negotiation. Block size negotiation is initiated by the client (e.g. the client suggests of using block size 1432 bytes instead of 512 bytes) and the server can either accept the value or deny it. If the client suggests a value that is higher than MaxBlockSize, the server denies the request and used protocol default 512 bytes.

MaxLogSizeMB

5 MB

1 - 1000 MB

This registry entry controls the maximum log size in megabytes. The default value is 5 MB so that the generated log file can be quickly accessed remotely. After the size of the log file exceeds the limit the content is copied to LogFile.old file. The value must be in the range of 1 – 1000 MB.

PacketLossThreshold

20 packets

1 - 100 packets

This registry value defines the maximum amount of TFTP packets that the server allows to be lossed in the network subsequently. When packet loss limit is exceeded, the server detects that the client has lost connection and frees resources that are allocated for that client. Default value is 20. The value must be in the range of 1 – 100 packets.

TFTPRoot

Empty, which means current working folder.

String

This registry entry defines TFTP root directory that is used as a base folder for sharing files to the client. By default TFTPRoot entry is left empty (as in the figure 1 above) and working folder is used (directory where .exe is being run). For example,

C:\Program Files\Miradore\Server\TFTP\

Timeout

3 seconds

1 - 10 seconds

Since TFTP uses UDP for transport layer, packets can get loss in the network either due to network congestion or other network errors. This registry value defines the timeout value of the TFTP server. When timeout is reached with a client the server detects that packet loss has occurred and resends the packet/TFTP window. Default value is 3 seconds. The value must be in the range of 1 – 10 seconds.

WindowSize

4 packets

1 - 8 packets

This registry value defines the window size of the TFTP server. This means the amount of packets that the server can send without waiting for client ACK. This pipelined transfer mode can dramatically increase the data transfer rate and utilization of network resources. However, if window size is negotiated at the beginning of data transfer (client initiates), the negotiated value is used instead of registry defined value. This way Miradore TFTP server can adapt to the requirements of different clients.

   

Options during network boot

During network boot, users have an opportunity to choose whether to use TFTP in safe mode or boosted mode (illustrated on the following picture). Generally, safe mode means slower but more reliable data transfer. Boosted mode increases data transfer speed but might not work on virtual machines due to the increased block size and packet fragmentation.

Network boot options

Image: Options during network boot

 

WinPE x64 (Safe TFTP)

WinPE x86 (Safe TFTP)

WinPE x64 (Boosted TFTP)

WinPE x86 (Boosted TFTP)

Logging

Miradore TFTP server provides file logging that can be used to debug and validate the status of the server and possible exceptions. The desired log file can be defined from the registry combination of LogPath and LogFile. By default, the path entry is left empty and Windows\Temp folder is used for logging. When the size of the log file exceeds the defined limit (MaxLogSizeMB), the server copies the log content to LogFile.old file and restarts actual logging.

Since the log file and path are defined in the registry, a temporary file (mdtftptemp.log) is created to log events before the server is actually running. However, if there are some problems in startup (e.g. invalid setting/registry values), the temporary log file remains in Windows\Temp folder and can be used to debug the problem. In normal startup, the temporary file content is copied to the actual log file and deleted.

Troubleshooting TFTP issues

If you're having issues with the TFTP server, please refer to Troubleshooting TFTP issues document for more information.

See also

Installation point

Troubleshooting TFTP issues