File eXchange Protocol

From Free net encyclopedia

Internet protocol suite
Layer Protocols
Application DNS, TLS/SSL, TFTP, FTP, HTTP, IMAP, IRC, NNTP, POP3, SIP, SMTP, SNMP, SSH, TELNET, BitTorrent, RTP, rlogin, ENRP, …
Transport TCP, UDP, DCCP, SCTP, IL, RUDP, …
Network IP (IPv4, IPv6), ICMP, IGMP, ARP, RARP, …
Link Ethernet, Wi-Fi, Token ring, PPP, SLIP, FDDI, ATM, DTM, Frame Relay, SMDS, …

File eXchange Protocol (FXP) is a method of data transfer which uses the FTP protocol to transfer data from one remote server to another without routing this data through the client's connection. Conventional FTP involves a single server and a single client; all data transmission is done between these two. In an FXP session, a client maintains a standard FTP connection to two servers, and can direct either server to connect to the other to initiate a data transfer. The advantage of using FXP over FTP is evident when a high-bandwidth server demands resources from another high-bandwidth server, but only a low-bandwidth client, such as a network administrator working away from location, has the authority to access the resources on both servers.

Contents

Risk

Enabling FXP support, however, can make a server vulnerable to an exploit known as FTP bounce. FXP is also frequently used for warez trafficking. As a result of this FTP server software often disables FXP by default.

FXP over SSL

Some advanced FTP Servers such as glFTPd and RaidenFTPd support negotiation of a secure data channel between two servers using either the (File Transfer Protocol)FTP protocol extension commands CPSV or SSPN. This normally works by the client replacing the PASV command with one of these commands which instruct the server to create either a SSL or TLS connection.

Technical

Although FXP may be classed as its own "protocol", it is in fact merely an extension of FTP and is specified in RFC 959:

        User-PI - Server A                User-PI - Server B
        ------------------                ------------------
        
        C->A : Connect                    C->B : Connect
        C->A : PASV
        A->C : 227 Entering Passive Mode. A1,A2,A3,A4,a1,a2
                                          C->B : PORT A1,A2,A3,A4,a1,a2
                                          B->C : 200 Okay
        C->A : STOR                       C->B : RETR
                   B->A : Connect to HOST-A, PORT-a

References

This "protocol" is standardized as a subset of RFC 0959 by the IETF as:

See also

fr:File eXchange Protocol ru:FXP fi:FXP