Monitoring FTP Servers and File Transfer Performance

Posted by on September 1, 2016

This week we added support for File Transfer Protocol (FTP) with a new web layer test, the FTP Server Test. This new tests helps network ops teams quickly visualize and troubleshoot file transfer performance, whether for an internal or external FTP server. We also pair the FTP Server Test with our standard TCP/IP metrics and views of network paths and routes to help streamline fault detection. You can validate both FTP server listings and content. Plus, FTP can be a handy way to do robust (and more bandwidth intensive) throughput measurements, in addition to the throughput and bandwidth capacity measurements available in Web and Network layer tests.

You’re probably wondering why we’ve added support for testing FTP servers. Isn’t this just an old protocol that has been replaced by HTTP(S)? In reality, FTP is still alive and well within major enterprise networks. Not only is FTP responsible for external software downloads and internal file transfers, it is also a critical component of transaction data flows in large banks.

So how can you put the new FTP Server Test to use? Read on!

How FTP, FTPS and SFTP Work

FTP communicates using TCP connections over port 21 (a stateful command channel) and port 20 (a stateless data channel). Its current implementation is described in RFC 959. Once the command channel is established, multiple data channels can be established to upload, download and list files from the server.

FTP Server Tests support FTP, FTPS and SFTP. What’s the difference?

  • FTP is your plain vanilla file transfer protocol that has been around since the 1970s.
  • FTPS (FTP over SSL) is an extension of FTP with TLS, using SSL encryption protocols.
  • SFTP (SSH File Transfer Protocol) is a secure file transfer system for SSH (port 22) and does not use or interoperate with FTP.

FTP and FTPS have active and passive modes. In the active mode, the client sends the FTP server the port it is listening on via the command channel. The server then initiates a data channel on port 20 with a TCP connection to the specified client port. However, the client may not be able to accept incoming TCP connections (e.g. it is behind a firewall). In this case, passive mode can be used to have the server designate a port (with the PASV command) for the client to initiate a connection to.

Configuring FTP Server Tests

In addition to specifying FTP, FTPS or SFTP, there are a number of other options to customize the FTP Server Test to best match your environment. You will specify username and password to authenticate to the FTP server. Also choose from request types that include download from, upload to (a file with random bytes), or listing of files on the server. You can also limit the download or upload size of a large file so that measurements will fit within the timeout period you set for your test.

Understanding FTP Performance Data

FTP Server Tests measure availability, response time and throughput of the agent-to-FTP Server connection. Response time is broken down into DNS, Connect, Negotiation and Wait Time. In the throughput view, you can also see the transfer time and total time.

Fig-1
Figure 1: Response Time to an FTP Server in Sweden, per agent (row) and phase (column).

In addition, you can monitor and report on errors in each phase:

  • DNS: Resolve domain to an IP address
  • Connect: Complete a TCP handshake
  • Negotiation: Login
  • Transfer: Execute upload, download or list command
  • FTP: Reply code (2XX)
  • Content: Optional regex verification for the list command
Fig-2
Figure 2: FTP Server Test status by phase, with Hong Kong experiencing a transfer error.

Like other web layer tests (e.g. HTTP Server, Page Load), you can match Layer 7 metrics with contextual Layer 3 and 4 network data. FTP Server Tests include end-to-end network metrics such as loss, latency, jitter and available bandwidth. They also include Path Visualization and Route Visualization views to provide a network context alongside FTP performance.

Fig-3
Figure 3: Packet loss present in the path from the U.S. to an FTP Server in Sweden.

Each of these metrics can be assigned to alerts or displayed in reports to easily detect faults or long-term trends. You can also, of course, share FTP Server test data with your team or vendors to communicate performance and speed up ticket resolution.

Want to try out FTP Server Tests? Log into your account and start using them today. Or if you’re new to ThousandEyes, sign up for a Lite account and get started for free.

Processing...