Rules, Schmools for FTP
Many standards exist for file transfer. However, the one I've been writing about here, called FTP, has one core RFC that defines the details: RFC 959. The FTP RFC defines the messages that FTP uses to send the username, password, GET, PUT, and many other commands. It also defines the process by which the actual file is transferred, as was shown in Figures 8-11 and 8-12.
Interestingly, FTP uses a different underlying TCP connection for the control messages, versus the actual file transfer. Huh? Well, it's a small chicken-and-egg problem here: I can't tell you about TCP connections until you read the next chapter, but I want you to know now, when reading about FTP, that FTP uses two TCP connections. So, for now, just know that the process of controlling thingsauthentication, naming the file to be transferred, and so onis considered separate from the actual data transfer.
The general idea works like using a shipping company. You might call the shipping company, schedule it to pick up a package, tell it where the package is going, and make sure it has directions to your house. You might even tell the shipping company if the package is an odd size or shape or if it's really heavy. That's the equivalent of a control connection.
The person whom you talked to on the phone probably isn't the person who shows up to pick up your package. The driver of the truck keeps it simple; he puts your package on the truck and delivers it to the destination. Similarly, FTP keeps the processes separated; it sends control information over one connection or channel, and the data transfer happens on another.
In summary, FTP works with clients connecting to a server, for the purpose of putting files on the server, and to get files from the server. The FTP server does not need to talk to other FTP servers; instead, each user who wants to get or put files connects to that one server. The server typically uses authentication, ensuring that each user has the right to get to the files on the server.