Improving optimal TFTP settings
search cancel

Improving optimal TFTP settings

book

Article ID: 281045

calendar_today

Updated On:

Products

Deployment Solution Ghost Solution Suite

Issue/Introduction

You are trying to adjust your TFTP  settings.

Starting with ITMS 8.7.1 release, Deployment Solution (DS) supports larger TFTP blkSize (512-65535) for WinPE images.
Starting with ITMS 8.7.2 release, DS supports TFTP WindowSize for WinPE images.

DS 8.7.2 and Ghost Solution Suite (GSS) 3.3.12 release introduced support for TFTP WindowSize, however its value can only be controlled through 'pxefixup.bat'.

It was needed to add an UI control for this option.

Environment

DS 8.7.2, 8.8
GSS 3.3 RU12+

Resolution

For Deployment Solution 8.8 release, the following improvement was done:

New option 'Window size' was introduced in the 'NBS General Settings' page allowing to better control PXE boot speed in combination with already available 'MTU packet size' option.

For GSS 3.3 RU13 this can now be configured in General PXE config:

NOTE:

Both UI-configurable options are applied globally across all PXE servers. If testing or custom configuration is needed for a specific PXE boot image, it is recommended to use the BCDEdit commands provided below within the custom PXE image.

In scenarios where conflicting values are set via the UI and BCDEdit, the PXE boot process will use the lowest specified values.

 

 

DS 8.7.2 & 8.7.3 and GSS 3.3 RU12 releases:

To find optimal value, first prepare PXE image without iPXE option enabled.

For 8.7.2 & 8.7.3

Modify global TFTP MTU packet size to the max value (65464):

 * Open NS console, navigate to Site Management>Site Server Settings>Network Boot Service>Settings>NBS General Settings

 * Expand the 'TFTP Settings' and set the 'MTU packet size' value to '65464'

For GSS 3.3 RU12

Modify global TFTP Packet Size to the max value (65464):

 * Open GSS eXpress console, and select Tools > PXE Configuration from Menu Bar.

 * In PXE configuration Utility screen, change Tab to Multicast and change values accordingly.


 
The next step is to test different TFTP blkSize and TFTP Window on a selected PXE image.
* Go to PXE server.
* Launch cmd, and execute the following commands:
BCDEdit.exe /store "<path_to_pxe_image>\<arch>\pxeboot.bcd" /set {ramdiskoptions} RamDiskTftpBlockSize 65464
BCDEdit.exe /store "<path_to_pxe_image>\<arch>\pxeboot.bcd" /set {ramdiskoptions} RamDiskTftpWindowSize 8 
BCDEdit.exe /store "<path_to_pxe_image>\<arch>\boot\bcd"    /set    {ramdiskoptions} RamDiskTftpBlockSize 65464
BCDEdit.exe /store "<path_to_pxe_image>\<arch>\boot\bcd"    /set    {ramdiskoptions} RamDiskTftpWindowSize 8
(replace the '65464' and '8' values)

While testing different values, monitor boot time as well as Wireshark trace logs to ensure that no packets get lost/resent.

After finding optimal values, the changes can be applied to 'pxefixup.bat' so, that every new created or re-created PXE image (WinPE, without iPXE) contains the optimal values:
* Go to NS.
* Find the following files:
  \Deployment\BDC\bootwiz\Platforms\WinPE\x64\Templates\pxefixup.bat
  \Deployment\BDC\bootwiz\Platforms\WinPE\x86\Templates\pxefixup.bat
  and put the updated 'RamDiskTftpBlockSize' and 'RamDiskTftpWindowSize' values.
* Refresh BDC package.

NOTE: it's not recommended to get to maximum RamDiskTftpWindowSize and BlockSize and it might affect stability and performance.

 

Those changes are only applicable to WinPE booting, as LinuxPE does not take those values into consideration.

Additional Information

Precautions: If you've customized your network, a large block or window size could cause the boot image download to fail with a time-out error. The RamDisk TFTP block and window size customizations allow you to optimize TFTP traffic when using PXE to meet your specific network requirements. To determine what configuration is most efficient, test the customized settings in your environment.

  • TFTP block size: The block size is the size of the data packets that the server sends to the client that is downloading the file. A larger block size allows the server to send fewer packets, so there are fewer round-trip delays between the server and the client. However, a large block size leads to fragmented packets, which most PXE client implementations don't support.

  • TFTP window size: TFTP requires an acknowledgment (ACK) packet for each block of data that is sent. The server doesn't send the next block in the sequence until it receives the ACK packet for the previous block. TFTP windowing enables you to define how many data blocks it takes to fill a window. The server sends the data blocks back-to-back until the window is filled, and then the client sends an ACK packet. If you increase this window size, it reduces the number of round-trip delays between the client and server, and it decreases the overall required time to download a boot image.

For further details and explanation regarding packets please see KB 398430 Possible causes of slow network file transfer when PXE booting