MAP13: FTP (PART ONE) "The desire of knowledge, like the thirst of riches, increases ever with the acquisition of it." -- Laurence Sterne, Tristram Shandy Welcome back to the third week of the Roadmap workshop! I hope that you are having as much fun participating in this workshop as I am having teaching it! :) Last week we used a tool called "Telnet" which allowed us to access remote computers and run programs on those remote computers. This week we are going to use a tool called "File Transfer Protocol" (or "FTP") which will allow us to access remote computers and retrieve files from these computers. Actually, it is probably more accurate to say that we will be using "anonymous" FTP, but I'll explain that in a minute. What sort of files are available through FTP? Well, "hundreds of systems connected to the Internet have file libraries, or archives, accessible to the public. Much of this consists of free or low-cost {computer} programs for virtually every make of computer. If you want a different communications program for your IBM, or feel like playing a new game on your Amiga, you'll {probably} be able to get it {using FTP}." "But there are also libraries of documents as well. If you want a copy of a recent U.S. Supreme Court decision, you can {get a copy using FTP}. Copies of historical documents, from the Magna Carta to the Declaration of Independence are also yours for the asking ... You can also find song lyrics, poems, {and} even summaries of every {Animaniacs} episode ever made. You can also find extensive files detailing everything you could possibly want to know about the Net itself" (1) Before we get too in-depth into FTP, I think that now is as good a time as any to quickly review the client/server relationship that I briefly mentioned in lesson three (MAP03: Levels of Internet Connectivity). "Client" is just another word for a program running on your service provider's system that enables you to talk to, and get stuff from, distant computers. The client on your service provider's system takes your commands and turns them into requests for information from programs -- "servers" -- running on other, distant computers. The client/server relationship allows you to TELNET into remote computers and run programs on those remote computers, and it also allows you to use FTP to get files from remote sites. The client/server relationship is also what makes my job as an Internet trainer quite difficult. While all of the FTP clients out there do the exact same thing, they all use different commands to do it. Fortunately, if you can understand the basics of what happens during an FTP session, the commands -- no matter what client you are using -- are pretty easy. The basic steps in an FTP session are: 1. Start-up your FTP client 2. Give your FTP client an address to connect to (and, just like TELNET, step one and two can be combined into one easy step). 3. Identify yourself to the remote site 4. Give the remote site your password 5. Look around the directory for files 6. Change Directories 7. Set the transfer mode (optional) 8. Get the file(s) you want 9. Quit The best way to understand what is going on is to look at a sample FTP session. The University of Alabama's connection to the Internet is through SURAnet (a large regional network), so I'm going to FTP to them. Before I do that, though, there are three things that I need to emphasize: 1. FTP requires a heck of a lot of resources, both on your system and on the remote system that you are accessing. Because of this, FTP sessions should only be run during non-working hours (usually 6 PM to 6 AM local). I realize that this constraint is going to be a difficult for those of you who are reading this at work, and who only have Internet (and FTP access) through your employer. However, as responsible Internet citizens we have to remember that the FTP sites are providing us FTP access out of the kindness of their hearts. If we take advantage of this kindness, and access various FTP sites during working hours, those FTP sites may decide to close their doors to the public ... and then EVERYONE loses. 2. In light of what was said in #1, please do not flood SURAnet. Later this week I will post a list of FTP sites that you can visit (much like the TELNET list I posted Friday). Until I post that list, just sit back and enjoy the show :) 3. Since this lesson is already over 100 lines long, I hope that you won't mind if I break this FTP lesson into two lessons. The first lesson will be today, and I'll finish tomorrow. This will mean that we will end this lesson in the middle of our sample FTP session, but it will also mean that this lesson won't be the size of a small book :) Starting an FTP session is pretty easy. For most of you, all you have to do to start-up your FTP client is type ftp on you system's command line (or, if you are in a Windows or Mac environment, double-click on the FTP icon). From there, you would give the client an FTP address to connect to. Like TELNET, however, there is a way to combine these two steps into one, easy step. For most of you, to access your FTP client and give your client an address to hook up to, all you would have to do it type the command ftp and replace with the address of the FTP site that you want your client software to access. In our example, the SURAnet FTP address is ftp.sura.net, so I would type ftp ftp.sura.net to start an FTP session. (Note that the second "ftp" is part of SURAnet's FTP address. If I wanted to ftp to info.umd.edu, I would type "ftp info.umd.edu"; if I wanted to ftp to lcs.mit.edu, I would type "ftp lcs.mit.edu"). Once I hit the enter key, the following appears on my screen: ftp ftp.sura.net Connecting to ftp.sura.net 128.167.254.179, port 21 220 nic.sura.net FTP server (Version wu-2.4(1) Fri May 20 10:20:58 EDT 1994) ready. USER (identify yourself to the host): The second line tells me that my system is connecting to ftp.sura.net (and even gives me the IP number for ftp.sura.net), the third line is some automatic information from SURAnet, and the bottom line is asking me to log in. If I had an account on the SURAnet system, I would enter my SURAnet user ID. But, since I don't have an account on this system, I have to find another way to access the system. ;) This is where the "anonymous" FTP I mentioned earlier comes in :) The other way to access some FTP sites -- at least those FTP sites that allow outside access -- is to use the userid "anonymous". By using the name "anonymous", you are telling that FTP site that you aren't a regular user of that site, but you would still like to access that FTP site, look around, and retrieve files. So, where it says USER, I type the word anonymous hit enter, and cross my fingers. If SURAnet does not allow anonymous access, I'm about to find out :) >>>USER anonymous 331 Guest login ok, send your complete e-mail address as password. Password: COOL! Its going to let me in. All I have to do is give the site a password. Out of politeness to the FTP site, if you login as "anonymous", you need to use your full Internet address as your password. This helps the FTP site keep track of who has visited its site. So, since it wants my password, and since the password for any anonymous FTP session is my full Internet address, I type pcrispe1@ua1vm.ua.edu (Stop laughing -- p-crispy-one is *NOT* funny!!). Once I hit enter, my screen fills with the following: >>>PASS ******** 230- SURAnet ftp server running wuarchive experimental ftpd 230- 230-Welcome to the SURAnet ftp server. If you have any problems with 230-the server please mail the to systems@sura.net. If you do have problems, 230-please try using a dash (-) as the first character of your password 230- -- this will turn off the continuation messages that may be confusing 230-your ftp client. ... 230 Guest login ok, access restrictions apply. Command: Notice the line "Guest login ok, access restrictions apply." This means that the site has given me access, but I only have access to the files that are available to the general public. Okay ... now what? I've started-up my FTP client, I've given the client an FTP address to connect to, I've identified myself to the remote site (I told it that I am anonymous), and I've given the site my password. Now it's time to see what sort of files and directories are around, and to get those files ... which we will do tomorrow :) HOMEWORK: 1. See if your local Internet service provider has a handout on FTP commands. 2. If you do not have FTP access, please be patient. I'll show you how to access FTP by e-mail on Wednesday. 3. There *WILL* be a pop quiz sometime this week, and the quiz will cover lessons 1-10 :) SOURCES: (1) The "EFF's Guide to the Internet", reprinted by permission. PATRICK DOUGLAS CRISPEN THE VIEWS EXPRESSED IN THIS LETTER DO NOT PCRISPE1@UA1VM.UA.EDU NECESSARILY REPRESENT THE VIEWS OF THE THE UNIVERSITY OF ALABAMA UNIVERSITY OF ALABAMA - TUSCALOOSA ROADMAP: COPYRIGHT PATRICK CRISPEN 1994. ALL RIGHTS RESERVED.