Difference between revisions of "File Transfer Protocol"

From FileZilla Wiki
Jump to navigationJump to search
(jmGbRStST)
(26 intermediate revisions by 13 users not shown)
Line 1: Line 1:
-720p HDMI output -An aeclhetisatly nice software (Zune 4.0 interface is very pretty to look at, not a dull spreadsheet like iTunes) -An aeclhetisatly nice device OS (Artist pictures and info float around while playing a song, it's cool) -OLED screen (brighter, more vibrant than LCD) -Free HD radio -Radio  tagging  (If you like a song you hear on the radio, tag  it to add it to your cart for download) -A feature called  Smart DJ  that functions identically to the online radio service  Pandora  but has no limitations on skips and allows you to rate/download songs you like. Requires a ZunePass though.  -XBOX Live integration  -An advanced nVidia Tegra Chip (A couple of graphically-intense 3D games are coming out this fall, like Burnout: Ferrari Edition) -On-demand music (play music online with your Zune HD, don't need to download it to your hard drive) Again, the Zune HD is just simply amazing. With the Nvidia Tegra chip and highly capable processor, the potential for this device is endless. The Zune HD is supposed to be a portable gaming platform to compete head-to-head with the Nintendo DS and PSP brands. I'm excited to see Burnout: Ferrari Edition on it this fall. I'm also looking forward to see more apps as well. Could this device take significant market share from Apple's iPod Touch? With the right marketing to increase public awareness of this product, yes it definitely can. Every large monopolizing entity like Kmart, GM, and even Apple will dominate a market completely for some period of time. However, times change and something better always comes along. Is this Zune HD the better alternative to the iPod? With some more releases in the app store and updates, it clearly will be. The question is will Apple change and copy the Zune's features including the Zune Pass? I don't know, we'll see. The Zune Pass will clearly become the new standard of digital music services and the $1-per-song marketplace model will not be competitive much longer. ***UPDATE*** I've been getting a lot of comments on my review saying that the Zune's HD radio does not compensate for the lack of online radio services found on the iPod Touch (such as Pandora). I believe I already said in my review that with some more app development the Zune HD will be a strong competitor to the iPod Touch. However, who in the world needs Pandora if you have a Zune Pass? Your Zune will learn your musical tastes and give you recommendations. You can download/stream all the music you want without limits. But if you like Pandora, I suggest playing with the Zune's  Smart DJ . It will create a streaming playlist of songs based on your overall musical tastes or play specifically based on a certain artist. I also forgot to add the Zune HD does not have an external speaker. If that's a super-important feature to you, the iPod Touch may suit you for now. However you can always get headphone couplers or battery-powered mini-speakers to remedy this. ***UPDATE*** The new apps on the Zune released this fall include some amazing 3D games. They look just as good (if not better) than what you would find on a PSP or Nintendo DS. Among these games are Van's Sk8, Burnout: Ferrari Edition, Audiosurf Tilt, and many others. Twitter has been released as well and Facebook should follow soon. I have no complaints about the Zune after owning it for a few months. I'm convinced the Zune brand provides the best music experience service ever created. ***UPDATE*** October 2010 It's been a
+
'''FTP''' or '''file transfer protocol''' is a commonly used protocol for exchanging files over any network that supports the TCP/IP protocol (such as the Internet or an intranet). There are two computers involved in an FTP transfer: a server and a client. The '''FTP server''', running FTP server software, listens on the network for connection requests from other computers. The client computer, running '''FTP client''' software, initiates a connection to the server. Once connected, the client can do a number of file manipulation operations such as uploading files to the server, download files from the server, rename or delete files on the server and so on. Any software company or individual programmer is able to create FTP server or client software because the protocol is an open standard. Virtually every computer platform supports the FTP protocol. This allows any computer connected to a TCP/IP based network to manipulate files on another computer on that network regardless of which operating systems are involved (if the computers permit FTP access).
 +
 
 +
More information about FTP can be found in the [https://en.wikipedia.org/wiki/File_Transfer_Protocol Wikipedia article about FTP] or in the documents linked below.
 +
 
 +
== Technical Specifications ==
 +
 
 +
* [https://filezilla-project.org/specs/rfc0959.txt <nowiki>RFC 959</nowiki>] "FILE TRANSFER PROTOCOL"<br />This document describes the basic FTP protocol.
 +
 
 +
=== Protocol extensions ===
 +
 
 +
* [https://filezilla-project.org/specs/rfc1579.txt RFC <b></b>1579] "Firewall-Friendly FTP"<br />Describes the rarely-used APSV command.
 +
* [https://filezilla-project.org/specs/rfc2228.txt RFC <b></b>2228] "FTP Security Extensions"<br />This document describes the mechanism to use different authentication and encryption schemes using commands like AUTH, PROT and related new commands.
 +
* [https://filezilla-project.org/specs/rfc2389.txt RFC <b></b>2389] "Feature negotiation mechanism for the File Transfer Protocol"<br />Describes the FEAT command to detect available protocol extensions and the OPTS command to change the behaviour of some features.
 +
* [https://filezilla-project.org/specs/rfc2428.txt RFC <b></b>2428] "FTP Extensions for IPv6 and NATs"<br />This RFC makes the FTP protocol ready for IPv6
 +
* [https://filezilla-project.org/specs/rfc2640.txt RFC <b></b>2640] "Internationalization of the File Transfer Protocol"<br />Describes the use of UTF-8 encoding for filenames. Since the original FTP standard did only allow 7-bit US-ASCII as encoding, this extension is fully backwards compatible. However, a few servers and clients are wrongly assuming the local encoding is used for the FTP protocol. Thus this extension seemingly creates incompatibilities where there in fact are none.
 +
* [https://filezilla-project.org/specs/rfc4217.txt RFC <b></b>4217] "Securing FTP with TLS"<br />This RFC describes how to secure the FTP with TLS by using the commands introduced in RFC 2228. It should be noted, that this RFC for the most part also applies to the deprecated FTP over SSL. See [[TLS specifications]] for further information.
 +
* [https://filezilla-project.org/specs/rfc3659.txt RFC <b></b> 3659] This RFC introduces the MLS* family of commands for a machine parsable directory listing format. It also clarifies the use of REST and introduces a specified way to present the server's directory structure using TVFS (Trivial Virtual File Store). In addition, it introduces the SIZE and MDTM commands. It makes it very clear, that the MDTM command should only be used to get the timestamp of a file and should not be used to set the timestamp, as that would add ambiguity.
 +
 
 +
==== Drafts ====
 +
* [https://filezilla-project.org/specs/draft-preston-ftpext-deflate-04.txt IETF Draft for deflate compression]<br />This document describes a method to compress the transfer channel using the deflate compression algorithm. For that, it introduces the "MODE Z" command.
 +
* [https://filezilla-project.org/specs/eplf.html EPLF specification] "Easily Parsed LIST Format"<br />Describes a machine parsable directory listing format.
 +
* [https://filezilla-project.org/specs/draft-somers-ftp-mfxx-04.txt The 'MFxx' Command Extensions for FTP]. This IETF draft describes the MFMT command to change the file modification time.
 +
* [https://filezilla-project.org/specs/draft-peterson-streamlined-ftp-command-extensions-10.txt Streamlined FTP Command Extensions]. This IETF draft describes various new commands of which the RMDA command is the most useful.
 +
 
 +
=== Additional documents ===
 +
 
 +
* [https://filezilla-project.org/specs/rfc0854.txt <nowiki>RFC 854</nowiki>] "TELNET PROTOCOL SPECIFICATION"<br />The FTP protocol is implemented on top of Telnet which is specified in this document. Especially the specification of the NVT (Network Virtual Terminal) is of importance.
 +
* [https://filezilla-project.org/specs/rfc1123.txt RFC <b></b>1123] "Requirements for Internet Hosts -- Application and Support"<br />This RFC gives additional requirements and suggestions for FTP implementations to improve interoperability.
 +
* [https://filezilla-project.org/specs/rfc2577.txt RFC <b></b>2577] "FTP Security Considerations"<br />This document discusses the security of the FTP protocol in general and considers things like FTP Bounce Attacks.
 +
 
 +
== See also ==
 +
 
 +
* [[TLS specifications]]
 +
* [[Other specifications]]
 +
* [[SFTP specifications]]

Revision as of 09:26, 1 May 2017

FTP or file transfer protocol is a commonly used protocol for exchanging files over any network that supports the TCP/IP protocol (such as the Internet or an intranet). There are two computers involved in an FTP transfer: a server and a client. The FTP server, running FTP server software, listens on the network for connection requests from other computers. The client computer, running FTP client software, initiates a connection to the server. Once connected, the client can do a number of file manipulation operations such as uploading files to the server, download files from the server, rename or delete files on the server and so on. Any software company or individual programmer is able to create FTP server or client software because the protocol is an open standard. Virtually every computer platform supports the FTP protocol. This allows any computer connected to a TCP/IP based network to manipulate files on another computer on that network regardless of which operating systems are involved (if the computers permit FTP access).

More information about FTP can be found in the Wikipedia article about FTP or in the documents linked below.

Technical Specifications

  • RFC 959 "FILE TRANSFER PROTOCOL"
    This document describes the basic FTP protocol.

Protocol extensions

  • RFC 1579 "Firewall-Friendly FTP"
    Describes the rarely-used APSV command.
  • RFC 2228 "FTP Security Extensions"
    This document describes the mechanism to use different authentication and encryption schemes using commands like AUTH, PROT and related new commands.
  • RFC 2389 "Feature negotiation mechanism for the File Transfer Protocol"
    Describes the FEAT command to detect available protocol extensions and the OPTS command to change the behaviour of some features.
  • RFC 2428 "FTP Extensions for IPv6 and NATs"
    This RFC makes the FTP protocol ready for IPv6
  • RFC 2640 "Internationalization of the File Transfer Protocol"
    Describes the use of UTF-8 encoding for filenames. Since the original FTP standard did only allow 7-bit US-ASCII as encoding, this extension is fully backwards compatible. However, a few servers and clients are wrongly assuming the local encoding is used for the FTP protocol. Thus this extension seemingly creates incompatibilities where there in fact are none.
  • RFC 4217 "Securing FTP with TLS"
    This RFC describes how to secure the FTP with TLS by using the commands introduced in RFC 2228. It should be noted, that this RFC for the most part also applies to the deprecated FTP over SSL. See TLS specifications for further information.
  • RFC 3659 This RFC introduces the MLS* family of commands for a machine parsable directory listing format. It also clarifies the use of REST and introduces a specified way to present the server's directory structure using TVFS (Trivial Virtual File Store). In addition, it introduces the SIZE and MDTM commands. It makes it very clear, that the MDTM command should only be used to get the timestamp of a file and should not be used to set the timestamp, as that would add ambiguity.

Drafts

Additional documents

  • RFC 854 "TELNET PROTOCOL SPECIFICATION"
    The FTP protocol is implemented on top of Telnet which is specified in this document. Especially the specification of the NVT (Network Virtual Terminal) is of importance.
  • RFC 1123 "Requirements for Internet Hosts -- Application and Support"
    This RFC gives additional requirements and suggestions for FTP implementations to improve interoperability.
  • RFC 2577 "FTP Security Considerations"
    This document discusses the security of the FTP protocol in general and considers things like FTP Bounce Attacks.

See also