Network Working Group G. Kessler Request for Comments: 2151 S. Shepard FYI: 30 Hill Associates, Inc. Obsoletes: RFC 1739 June 1997 Category: Informational A Primer On Internet and TCP/IP Tools and Utilities Status of this Memo This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind. Distribution of this memo is unlimited. Abstract This memo is an introductory guide to many of the most commonly- available TCP/IP and Internet tools and utilities. It also describes discussion lists accessible from the Internet, ways to obtain Internet and TCP/IP documents, and some resources that help users weave their way through the Internet. Table of Contents 1. Introduction................................................... 2 2. Nomenclature................................................... 2 3. Finding Information About Internet Hosts and Domains........... 3 3.1. NSLOOKUP.................................................. 3 3.2. Ping...................................................... 6 3.3. Finger.................................................... 8 3.4. Traceroute................................................ 9 4. The Two Fundamental Tools...................................... 12 4.1. TELNET.................................................... 12 4.2. FTP....................................................... 15 5. User Database Lookup Tools..................................... 19 5.1. WHOIS/NICNAME............................................. 19 5.2. KNOWBOT................................................... 23 6. Information Servers............................................ 24 6.1. Archie.................................................... 24 6.2. Gopher.................................................... 28 6.3. VERONICA, JUGHEAD, and WAIS............................... 30 7. The World Wide Web............................................. 31 7.1. Uniform Resource Locators................................. 34 7.2. User Directories on the Web............................... 35 7.3. Other Service Accessible Via the Web...................... 36 8. Discussion Lists and Newsgroups................................ 37 8.1. Internet Discussion Lists................................. 37
8.2. LISTSERV.................................................. 38 8.3. Majordomo................................................. 38 8.4. Usenet.................................................... 39 8.5 Finding Discussion Lists and Newsgroups.................... 40 9. Internet Documentation......................................... 41 9.1. Request for Comments (RFCs)............................... 41 9.2. Internet Standards........................................ 44 9.3. For Your Information Documents............................ 45 9.4. Best Current Practices.................................... 45 9.5. RARE Technical Reports.................................... 46 10. Perusing the Internet......................................... 46 11. Acronyms and Abbreviations.................................... 48 12. Security Considerations....................................... 49 13. Acknowledgments............................................... 49 14. References.................................................... 49 15. Authors' Address.............................................. 51 1. Introduction This memo is an introductory guide to some of the most commonly- available TCP/IP and Internet tools and utilities that allow users to access the wide variety of information on the network, from determining if a particular host is up to viewing a multimedia thesis on foreign policy. It also describes discussion lists accessible from the Internet, ways to obtain Internet and TCP/IP documents, and some resources that help users weave their way through the Internet. This memo may be used as a tutorial for individual self-learning, a step- by-step laboratory manual for a course, or as the basis for a site's users manual. It is intended as a basic guide only and will refer to other sources for more detailed information. 2. Nomenclature The following sections provide descriptions and detailed examples of several TCP/IP utilities and applications, including the reproduction of actual sessions using these utilities (with some extraneous information removed). Each section describes a single TCP/IP-based tool, it's application, and, in some cases, how it works. The text description is usually followed by an actual sample session. The sample dialogues shown below were obtained from a variety of software and hardware systems, including AIX running on an IBM RS/6000, Linux on an Intel 486, Multinet TCP/IP over VMS on a VAX, and FTP Software's OnNet (formerly PC/TCP) running on a DOS/Windows PC. While the examples below can be used as a guide to using and learning about the capabilities of TCP/IP tools, the reader should understand that not all of these utilities may be found at all TCP/IP hosts nor in all commercial software packages. Furthermore, the user
interface for different packages will be different and the actual command line may appear differently than shown here; this will be particularly true for graphical user interfaces running over Windows, X-Windows, OS/2, or Macintosh systems. Windows-based sessions are not shown in this RFC because of the desire to have a text version of this document; in addition, most GUI-based TCP/IP packages obscure some of the detail that is essential for understanding what is really happening when you click on a button or drag a file. The Internet has many exciting things to offer but standardized interfaces to the protocols is not yet one of them! This guide will not provide any detail or motivation about the Internet Protocol Suite; more information about the TCP/IP protocols and related issues may be found in RFC 1180 [29], Comer [6], Feit [7], Kessler [14], and Stevens [30]. In the descriptions below, commands are shown in a Courier font (Postscript and HTML versions); items appearing in square brackets ([]) are optional, the vertical-bar (|) means "or," parameters appearing with no brackets or within curly brackets ({}) are mandatory, and parameter names that need to be replaced with a specific value will be shown in italics (Postscript and HTML versions) or within angle brackets (<>, text version). In the sample dialogues, user input is in bold (Postscript and HTML versions) or denoted with asterisks (**) in the margin (text version). 3. Finding Information About Internet Hosts and Domains There are several tools that let you learn information about Internet hosts and domains. These tools provide the ability for an application or a user to perform host name/address reconciliation (NSLOOKUP), determine whether another host is up and available (PING), learn about another host's users (Finger), and learn the route that packets will take to another host (Traceroute). 3.1. NSLOOKUP NSLOOKUP is the name server lookup program that comes with many TCP/IP software packages. A user can use NSLOOKUP to examine entries in the Domain Name System (DNS) database that pertain to a particular host or domain; one common use is to determine a host system's IP address from its name or the host's name from its IP address. The general form of the command to make a single query is: nslookup [IP_address|host_name] If the program is started without any parameters, the user will be prompted for input; the user can enter either an IP address or host name at that time, and the program will respond with the name and
address of the default name sever, the name server actually used to resolve each request, and the IP address and host name that was queried. Exit is used to quit the NSLOOKUP application. Three simple queries are shown in the example below: 1 Requests the address of the host named www.hill.com, the World Wide Web server at Hill Associates. As it turns out, this is not the true name of the host, but an alias. The full name of the host and the IP address are listed by NSLOOKUP. 2 Requests the address of host syrup.hill.com, which is the same host as in the first query. Note that NSLOOKUP provides a "non- authoritative" answer. Since NSLOOKUP just queried this same address, the information is still in its cache memory. Rather than send additional messages to the name server, the answer is one that it remembers from before; the server didn't look up the information again, however, so it is not guaranteed to still be accurate (because the information might have changed within the last few milliseconds!). 3 Requests the name of the host with the given IP address. The result points to the Internet gateway to Australia, munnari.oz.au. One additional query is shown in the dialogue below. NSLOOKUP examines information that is stored by the DNS. The default NSLOOKUP queries examine basic address records (called "A records") to reconcile the host name and IP address, although other information is also available. In the final query below, for example, the user wants to know where electronic mail addressed to the hill.com domain actually gets delivered, since hill.com is not the true name of an actual host. This is accomplished by changing the query type to look for mail exchange (MX) records by issuing a set type command (which must be in lower case). The query shows that mail addressed to hill.com is actually sent to a mail server called mail.hill.com. If that system is not available, mail delivery will be attempted to first mailme.hill.com and then to netcomsv.netcom.com; the order of these attempts is controlled by the "preference" value. This query also returns the name of the domain's name servers and all associated IP addresses. The DNS is beyond the scope of this introduction, although more information about the concepts and structure of the DNS can be found in STD 13/RFC 1034 [19], RFC 1591 [21], and Kessler [16]. The help command can be issued at the program prompt for information about NSLOOKUP's more advanced commands.
TECHNICAL NOTE: There are other tools that might be available on your system or with your software for examining the DNS. Alternatives to NSLOOKUP include HOST and DIG. ==================================================================== **SMCVAX$ nslookup Default Server: ns1.ner.bbnplanet.net Address: 192.52.71.5 **> www.hill.com Name: syrup.hill.com Address: 199.182.20.3 Aliases: www.hill.com **> syrup.hill.com Non-authoritative answer: Name: syrup.hill.com Address: 199.182.20.3 **> 128.250.1.21 Name: munnari.OZ.AU Address: 128.250.1.21 **> set type=MX **> hill.com hill.com preference = 20, mail exchanger = mail.hill.com hill.com preference = 40, mail exchanger = mailme.hill.com hill.com preference = 60, mail exchanger = netcomsv.netcom.com hill.com nameserver = nameme.hill.com hill.com nameserver = ns1.noc.netcom.net hill.com nameserver = ns.netcom.com mail.hill.com internet address = 199.182.20.4 mailme.hill.com internet address = 199.182.20.3 netcomsv.netcom.com internet address = 192.100.81.101 ns1.noc.netcom.net internet address = 204.31.1.1 ns.netcom.com internet address = 192.100.81.105 **> exit SMCVAX$ ====================================================================
3.2. Ping Ping, reportedly an acronym for the Packet Internetwork Groper, is one of the most widely available tools bundled with TCP/IP software packages. Ping uses a series of Internet Control Message Protocol (ICMP) [22] Echo messages to determine if a remote host is active or inactive, and to determine the round-trip delay in communicating with it. A common form of the Ping command, showing some of the more commonly available options that are of use to general users, is: ping [-q] [-v] [-R] [-c Count] [-i Wait] [-s PacketSize] Host where: -q Quiet output; nothing is displayed except summary lines at startup and completion -v Verbose output, which lists ICMP packets that are received in addition to Echo Responses -R Record route option; includes the RECORD_ROUTE option in the Echo Request packet and displays the route buffer on returned packets -c Count Specifies the number of Echo Requests to be sent before concluding test (default is to run until interrupted with a control-C) -i Wait Indicates the number of seconds to wait between sending each packet (default = 1) -s PacketSize Specifies the number of data bytes to be sent; the total ICMP packet size will be PacketSize+8 bytes due to the ICMP header (default = 56, or a 64 byte packet) Host IP address or host name of target system In the first example below, the user pings the host thumper.bellcore.com, requesting that 6 (-c) messages be sent, each containing 64 bytes (-s) of user data. The display shows the round- trip delay of each Echo message returned to the sending host; at the end of the test, summary statistics are displayed.
In the second example, the user pings the host smcvax.smcvt.edu, requesting that 10 messages be sent in quite mode (-q). In this case, a summary is printed at the conclusion of the test and individual responses are not listed. TECHNICAL NOTE: Older versions of the Ping command, which are still available on some systems, had the following general format: ping [-s] {IP_address|host_name} [PacketSize] [Count] In this form, the optional "-s" string tells the system to continually send an ICMP Echo message every second; the optional PacketSize parameter specifies the number of bytes in the Echo message (the message will contain PacketSize-8 bytes of data; the default is 56 bytes of data and a 64 byte message); and the optional Count parameter indicates the number of Echo messages to send before concluding the test (the default is to run the test continuously until interrupted). ==================================================================== **syrup:/home$ ping -c 6 -s 64 thumper.bellcore.com PING thumper.bellcore.com (128.96.41.1): 64 data bytes 72 bytes from 128.96.41.1: icmp_seq=0 ttl=240 time=641.8 ms 72 bytes from 128.96.41.1: icmp_seq=2 ttl=240 time=1072.7 ms 72 bytes from 128.96.41.1: icmp_seq=3 ttl=240 time=1447.4 ms 72 bytes from 128.96.41.1: icmp_seq=4 ttl=240 time=758.5 ms 72 bytes from 128.96.41.1: icmp_seq=5 ttl=240 time=482.1 ms --- thumper.bellcore.com ping statistics --- 6 packets transmitted, 5 packets received, 16% packet loss round-trip min/avg/max = 482.1/880.5/1447.4 ms **syrup:/home$ ping -q -c 10 smcvax.smcvt.edu PING smcvax.smcvt.edu (192.80.64.1): 56 data bytes --- smcvax.smcvt.edu ping statistics --- 10 packets transmitted, 8 packets received, 20% packet loss round-trip min/avg/max = 217.8/246.4/301.5 ms ====================================================================
3.3. Finger The Finger program may be used to find out who is logged in on another system or to find out detailed information about a specific user. This command has also introduced a brand new verb; fingering someone on the Internet is not necessarily a rude thing to do! The Finger User Information Protocol is described in RFC 1288 [32]. The most general format of the Finger command is: finger [username]@host_name The first example below shows the result of fingering an individual user at a remote system. The first line of the response shows the username, the user's real name, their process identifier, application, and terminal port number. Additional information may be supplied at the option of the user in "plan" and/or "project" files that they supply; these files are often named PLAN.TXT or PROJECT.TXT, respectively, and reside in a user's root directory (or somewhere in an appropriate search path). The second example shows the result of fingering a remote system. This lists all of the processes currently running at the fingered system or other information, depending upon how the remote system's administrator set up the system to respond to the Finger command. ==================================================================== **C:> finger kumquat@smcvax.smcvt.edu [smcvax.smcvt.edu] KUMQUAT Gary Kessler KUMQUAT not logged in Last login Fri 16-Sep-1996 3:47PM-EDT Plan: =================================================================== Gary C. Kessler Adjunct Faculty Member, Graduate College INTERNET: kumquat@smcvt.edu =================================================================== **C:> finger @smcvax.smcvt.edu [smcvax.smcvt.edu] Tuesday, September 17, 1996 10:12AM-EDT Up 30 09:40:18 5+1 Jobs on SMCVAX Load ave 0.16 0.19 0.21
User Personal Name Subsys Terminal Console Location GOODWIN Dave Goodwin LYNX 6.NTY2 waldo.smcvt.edu JAT John Tronoan TELNET 1.TXA5 HELPDESK System Manager EDT 2:08.NTY4 [199.93.35.182] SMITH Lorraine Smith PINE .NTY3 [199.93.34.139] SYSTEM System Manager MAIL 23.OPA0 The VAX Console *DCL* SMCVX1$OPA0 The VAX Console ==================================================================== 3.4. Traceroute Traceroute is another common TCP/IP tool, this one allowing users to learn about the route that packets take from their local host to a remote host. Although used often by network and system managers as a simple, yet powerful, debugging tool, traceroute can be used by end users to learn something about the ever-changing structure of the Internet. The classic Traceroute command has the following general format (where "#" represents a positive integer value associated with the qualifier): traceroute [-m #] [-q #] [-w #] [-p #] {IP_address|host_name} where -m is the maximum allowable TTL value, measured as the number of hops allowed before the program terminates (default = 30) -q is the number of UDP packets that will be sent with each time-to-live setting (default = 3) -w is the amount of time, in seconds, to wait for an answer from a particular router before giving up (default= 5) -p is the invalid port address at the remote host (default = 33434) The Traceroute example below shows the route between a host at St. Michael's College (domain smcvt.edu) and a host at Hill Associates (www.hill.com), both located in Colchester, VT but served by different Internet service providers (ISP).
1 St. Michael's College is connected to the Internet via BBN Planet; since the mid-1980s, BBN operated the NSF's regional ISP, called the New England Academic and Research Network (NEARNET), which was renamed in 1994. The first hop, then, goes to St. Mike's BBN Planet gateway router (smc.bbnplanet.net). The next hop goes to another BBN Planet router (denoted here only by IP address since a name was not assigned to the device), until the packet reaches the BBN Planet T3 backbone. 2 The packet takes two hops through routers at BBN Planet's Cambridge (MA) facility and is then forwarded to BBN Planet in New York City, where the packet takes four more hops. The packet is then forwarded to BBN Planet in College Park (MD). 3 The packet is sent to BBN Planet's router at MAE-East, MFS Datanet's Network Access Point (NAP) in Washington, D.C. MAE stands for Metropolitan Area Exchange, and is a Fiber Distributed Data Interface (FDDI) ring interconnecting routers from subscribing ISPs. The packet is then forwarded to NETCOM, Hill Associates' ISP. 4 The packet now travels through NETCOM's T3 backbone, following links from Washington, D.C. to Chicago to Santa Clara (CA), to San Jose (CA). 5 The packet is now sent to Hill Associates router (again, a system designated only by an IP address since the NETCOM side of the router was not named) and then passed to the target system. Note that the host's real name is not www.hill.com, but syrup.hill.com. TECHNICAL NOTE: The original version of Traceroute works by sending a sequence of User Datagram Protocol (UDP) datagrams to an invalid port address at the remote host. Using the default settings, three datagrams are sent, each with a Time-To-Live (TTL) field value set to one. The TTL value of 1 causes the datagram to "timeout" as soon as it hits the first router in the path; this router will then respond with an ICMP Time Exceeded Message (TEM) indicating that the datagram has expired. Another three UDP messages are now sent, each with the TTL value set to 2, which causes the second router to return ICMP
TEMs. This process continues until the packets actually reach the other destination. Since these datagrams are trying to access an invalid port at the destination host, ICMP Destination Unreachable Messages are returned indicating an unreachable port; this event signals the Traceroute program that it is finished! The Traceroute program displays the round-trip delay associated with each of the attempts. (Note that some current implementations of Traceroute use the Record-Route option in IP rather than the method described above.) As an aside, Traceroute did not begin life as a general-purpose utility, but as a quick-and-dirty debugging aid used to find a routing problem. The code (complete with comments!) is available by anonymous FTP in the file traceroute.tar.Z from the host ftp.ee.lbl.gov. (See Section 4.2 for a discussion of anonymous FTP.) ==================================================================== **SMCVAX$ traceroute www.hill.com traceroute to syrup.hill.com (199.182.20.3), 30 hops max, 38 byte packets 1 smc.bbnplanet.net (192.80.64.5) 10 ms 0 ms 0 ms 2 131.192.48.105 (131.192.48.105) 0 ms 10 ms 10 ms 3 cambridge1-cr4.bbnplanet.net (199.94.204.77) 40 ms 40 ms 50 ms 4 cambridge1-br1.bbnplanet.net (4.0.1.205) 30 ms 50 ms 50 ms 5 nyc1-br2.bbnplanet.net (4.0.1.121) 60 ms 60 ms 40 ms 6 nyc2-br2.bbnplanet.net (4.0.1.154) 60 ms 50 ms 60 ms 7 nyc2-br2.bbnplanet.net (4.0.1.154) 60 ms 40 ms 50 ms 8 nyc2-br1.bbnplanet.net (4.0.1.54) 70 ms 60 ms 30 ms 9 collegepk-br2.bbnplanet.net (4.0.1.21) 50 ms 50 ms 40 ms 10 maeeast.bbnplanet.net (4.0.1.18) 200 ms 170 ms 210 ms 11 fddi.mae-east.netcom.net (192.41.177.210) 60 ms 50 ms 70 ms 12 t3-2.was-dc-gw1.netcom.net (163.179.220.181) 70 ms 60 ms 50 ms 13 t3-2.chw-il-gw1.netcom.net (163.179.220.186) 70 ms 80 ms 80 ms 14 t3-2.scl-ca-gw1.netcom.net (163.179.220.190) 140 ms 110 ms 160 ms 15 t3-1.sjx-ca-gw1.netcom.net (163.179.220.193) 120 ms 130 ms 120 ms 16 198.211.141.8 (198.211.141.8) 220 ms 260 ms 240 ms 17 syrup.hill.com (199.182.20.3) 220 ms 240 ms 219 ms SMCVAX$ ====================================================================
4. The Two Fundamental Tools The two most basic tools for Internet applications are TELNET and the File Transfer Protocol (FTP). TELNET allows a user to login to a remote host over a TCP/IP network, while FTP, as the name implies, allows a user to move files between two TCP/IP hosts. These two utilities date back to the very early days of the ARPANET. 4.1. TELNET TELNET [27] is TCP/IP's virtual terminal protocol. Using TELNET, a user connected to one host can login to another host, appearing like a directly-attached terminal at the remote system; this is TCP/IP's definition of a virtual terminal. The general form of the TELNET command is: telnet [IP_address|host_name] [port] As shown, a TELNET connection is initiated when the user enters the telnet command and supplies either a host_name or IP_address; if neither are given, TELNET will ask for one once the application begins. In the example below, a user of a PC uses TELNET to attach to the remote host smcvax.smcvt.edu. Once logged in via TELNET, the user can do anything on the remote host that would be possible if connected via a directly-attached terminal or via modem. The commands that are subsequently used are those available on the remote system to which the user is attached. In the sample dialogue below, the user attached to SMCVAX will use basic VAX/VMS commands: o The dir command lists the files having a "COM" file extension. o The mail command enters the VMS MAIL subsystem; the dir command here lists waiting mail. o Ping checks the status of another host. When finished, the logout command logs the user off the remote host; TELNET automatically closes the connection to the remote host and returns control to the local system. It is important to note that TELNET is a very powerful tool, one that may provide users with access to many Internet utilities and services that might not be otherwise available. Many of these features are accessed by specifying a port number with the TELNET command, in addition to a host's address, and knowledge of port numbers provides another mechanism for users to access information with TELNET.
This guide discusses several TCP/IP and Internet utilities that require local client software, such as Finger, Whois, Archie, and Gopher. But what if your software does not include a needed client? In some cases, TELNET may be used to access a remote client and provide the same functionality. This is done by specifying a port number with the TELNET command. Just as TCP/IP hosts have a unique IP address, applications on the host are associated with an address, called a port. Finger (see Section 3.3 above), for example, is associated with the well-known port number 79. In the absence of a Finger client, TELNETing to port 79 at a remote host may provide the same information. You can finger another host with TELNET by using a command like: telnet host_name 79 Other well-known TCP port numbers include 25 (Simple Mail Transfer Protocol), 43 (whois), 80 (Hypertext Transfer Protocol), and 119 (Network News Transfer Protocol). Some services are available on the Internet using TELNET and special port numbers. A geographical information database, for example, may be accessed by TELNETing to port 3000 at host martini.eecs.umich.edu and current weather information is available at port 3000 at host downwind.sprl.umich.edu. ==================================================================== **C:> telnet smcvax.smcvt.edu FTP Software PC/TCP tn 3.10 01/24/95 02:40 Copyright (c) 1986-1995 by FTP Software, Inc. All rights reserved - Connected to St. Michael's College - **Username: kumquat **Password: St. Michael's College VAX/VMS System. Node SMCVAX. Last interactive login on Monday, 16-SEP-1996 15:47 Last non-interactive login on Wednesday, 6-MAR-1996 08:19 You have 1 new Mail message. Good Afternoon User KUMQUAT. Logged in on 17-SEP-1996 at 1:10 PM. User [GUEST,KUMQUAT] has 3225 blocks used, 6775 available, of 10000 authorized and permitted overdraft of 100 blocks on $1$DIA2
To see a complete list of news items, type: NEWS DIR To read a particular item, type NEWS followed by the name of the item you wish to read. **SMCVAX$ dir *.com Directory $1$DIA2:[GUEST.KUMQUAT] BACKUP.COM;24 24 16-JUL-1990 16:22:46.68 (RWED,RWED,RE,) DELTREE.COM;17 3 16-JUL-1990 16:22:47.58 (RWED,RWED,RE,) EXPANDZ.COM;7 2 22-FEB-1993 10:00:04.35 (RWED,RWED,RE,) FTSLOGBLD.COM;3 1 16-JUL-1990 16:22:48.57 (RWED,RWED,RE,) FTSRRR.COM;2 1 16-JUL-1990 16:22:48.73 (RWED,RWED,RE,) LOGIN.COM;116 5 1-DEC-1993 09:33:21.61 (RWED,RWED,RE,) SNOOPY.COM;6 1 16-JUL-1990 16:22:52.06 (RWED,RWED,RE,) SYLOGIN.COM;83 8 16-JUL-1990 16:22:52.88 (RWED,RWED,RE,RE) SYSTARTUP.COM;88 15 16-JUL-1990 16:22:53.21 (RWED,RWED,RE,) WATCH_MAIL.COM;1 173 10-MAY-1994 09:59:52.65 (RWED,RWED,RE,) Total of 10 files, 233 blocks. **SMCVAX$ mail You have 1 new message. **MAIL> dir NEWMAIL # From Date Subject 1 IN%"ibug@plainfield. 15-SEP-1996 ANNOUNCE: Burlington WWW Conference **MAIL> exit **SMCVAX$ ping kestrel.hill.com /n=5 PING HILL.COM (199.182.20.24): 56 data bytes 64 bytes from 199.182.20.24: icmp_seq=0 time=290 ms 64 bytes from 199.182.20.24: icmp_seq=1 time=260 ms 64 bytes from 199.182.20.24: icmp_seq=2 time=260 ms 64 bytes from 199.182.20.24: icmp_seq=3 time=260 ms 64 bytes from 199.182.20.24: icmp_seq=4 time=260 ms ----KESTREL.HILL.COM PING Statistics---- 5 packets transmitted, 5 packets received, 0% packet loss round-trip (ms) min/avg/max = 260/266/290 **SMCVAX$ logout KUMQUAT logged out at 17-SEP-1996 13:17:04.29 Connection #0 closed C:> ====================================================================
4.2. FTP FTP [26] is one of the most useful and powerful TCP/IP utilities for the general user. FTP allows users to upload and download files between local and remote hosts. Anonymous FTP, in particular, is commonly available at file archive sites to allow users to access files without having to pre-establish an account at the remote host. TELNET might, in fact, be used for this purpose but TELNET gives the user complete access to the remote system; FTP limits the user to file transfer activities. The general form of the FTP command is: ftp [IP_address|host_name] An FTP session can be initiated in several ways. In the example shown below, an FTP control connection is initiated to a host (the Defense Data Network's Network Information Center) by supplying a host name with the FTP command; optionally, the host's IP address in dotted decimal (numeric) form could be used. If neither host name nor IP address are supplied in the command line, a connection to a host can be initiated by typing open host_name or open IP_address once the FTP application has been started. The remote host will ask for a username and password. If a bona fide registered user of this host supplies a valid username and password, then the user will have access to any files and directories to which this username has privilege. For anonymous FTP access, the username anonymous is used. Historically, the password for the anonymous user (not shown in actual use) has been guest, although most systems today ask for the user's Internet e-mail address (and several sites attempt to verify that packets are coming from that address before allowing the user to login). The "help ?" command may be used to obtain a list of FTP commands and help topics available with your software; although not always shown, nearly all TCP/IP applications have a help command. An example of the help for FTP's type command is shown in the sample dialogue. This command is very important one, by the way; if transferring a binary or executable file, be sure to set the type to image (or binary on some systems). The dir command provides a directory listing of the files in the current directory at the remote host; the UNIX ls command may also usually be used. Note that an FTP data transfer connection is established for the transfer of the directory information to the local host. The output from the dir command will show a file listing that is consistent with the native operating system of the remote
host. Although the TCP/IP suite is often associated with UNIX, it can (and does) run with nearly all common operating systems. The directory information shown in the sample dialogue happens to be in UNIX format and includes the following information: o File attributes. The first character identifies the type of file entry as a directory (d), link or symbolic name (l), or individual file (-). The next nine characters are the file access permissions list; the first three characters are for the owner, the next three for the owner's group, and the last three for all other users. Three access privileges may be assigned to each file for each of these roups: read (r), write (w), and execute (x). o Number of entries, or hard links, in this structure. This value will be a "1" if the entry refers to a file or link, or will be the number of files in the listed directory. o File owner o File owner's group. o File size, in bytes. o Date and time of last modification. If the date is followed by a timestamp, then the date is from the current year. o File name. After the directory information has been transferred, FTP closes the data transfer connection. The command cd is used to change to another working directory, in this case the rfc directory (note that file and directory names may be case-sensitive). As in DOS, "cd .." will change to the parent of the current directory. The CWD command successful is the only indication that the user's cd command was correctly executed; the show-directory (may be truncated to fewer characters, as shown) command, if available, may be used to see which working directory you are in. Another dir command is used to find all files with the name rfc173*.txt; note the use of the * wildcard character. We can now copy (download) the file of choice (RFC 1739 is the previous version of this primer) by using the get (or receive) command, which has the following general format: get remote_file_name local_file_name FTP opens another data transfer connection for this file transfer purpose; note that the effective data transfer rate is 93.664 kbps. FTP's put (or send) command allows uploading from the local host to the remote. Put is often not available when using anonymous FTP.
Finally, we terminate the FTP connection by using the close command. The user can initiate another FTP connection using the open command or can leave FTP by issuing a quit command. Quit can also be used to close a connection and terminate a session. TECHNICAL NOTE: It is important to note that different FTP packages have different commands available and even those with similar names may act differently. In the example shown here (using MultiNet for VMS), the show command will display the current working directory; in FTP Software's OnNet, show will display a file from the remote host at the local host. Some packages have nothing equivalent to either of these commands. ==================================================================== **SMCVAX$ ftp nic.ddn.mil SMCVAX.SMCVT.EDU MultiNet FTP user process 3.4(111) Connection opened (Assuming 8-bit connections) <*****Welcome to the DOD Network Information Center***** < *****Login with username "anonymous" and password "guest" **Username: anonymous <Guest login ok, send "guest" as password. **Password: guest <--- Not displayed <Guest login ok, access restrictions apply. **NIC.DDN.MIL> help type TYPE Set the transfer type to type. Format TYPE type Additional information available: Parameters Example Restrictions **TYPE Subtopic? parameters TYPE Parameters type Specify a value of ASCII, BACKUP, BINARY, IMAGE or LOGICAL- BYTE. Use TYPE ASCII (the default) for transferring text files. Use TYPE BACKUP to set the transfer type to IMAGE and write the local file with 2048-byte fixed length records. Use this command to transfer VAX/VMS BACKUP save sets.
Use TYPE BINARY to transfer binary files (same as TYPE IMAGE). Use TYPE IMAGE to transfer binary files (for example, .EXE). Use TYPE LOGICAL-BYTE to transfer binary files to or from a TOPS-20 machine. **TYPE Subtopic? **Topic? **NIC.DDN.MIL> dir <Opening ASCII mode data connection for /bin/ls. total 58 drwxr-xr-x 2 nic 1 512 Sep 16 23:00 bcp drwxr-xr-x 2 root 1 512 Mar 19 1996 bin drwxr-xr-x 2 nic 1 1536 Jul 15 23:00 ddn-news drwxr-xr-x 2 nic 1 512 Mar 19 1996 demo drwxr-xr-x 2 nic 1 512 Mar 25 14:25 dev drwxr-xr-x 2 nic 10 512 Mar 19 1996 disn_info drwxr-xr-x 2 nic 1 512 Sep 17 07:01 domain drwxr-xr-x 2 nic 1 512 Mar 19 1996 etc lrwxrwxrwx 1 nic 1 3 Mar 19 1996 fyi -> rfc drwxr-xr-x 2 nic 10 1024 Sep 16 23:00 gosip drwxr-xr-x 2 nic 1 512 Mar 19 1996 home drwxr-xr-x 2 nic 1 512 Mar 19 1996 lost+found lrwxrwxrwx 1 nic 1 8 Mar 19 1996 mgt -> ddn-news drwxr-xr-x 2 nic 1 1024 Sep 13 12:11 netinfo drwxr-xr-x 4 nic 1 512 May 3 23:00 netprog drwxr-xr-x 2 nic 1 1024 Mar 19 1996 protocols drwxr-xr-x 2 nic 1 512 Mar 19 1996 pub drwxr-xr-x 3 140 10 512 Aug 27 21:03 registrar drwxr-xr-x 2 nic 1 29696 Sep 16 23:00 rfc drwxr-xr-x 2 nic 1 5632 Sep 9 23:00 scc drwxr-xr-x 2 nic 1 1536 Sep 16 23:00 std drwxr-xr-x 2 nic 1 1024 Sep 16 23:00 templates drwxr-xr-x 3 nic 1 512 Mar 19 1996 usr <Transfer complete. 1437 bytes transferred at 33811 bps. Run time = 20. ms, Elapsed time = 340. ms. **NIC.DDN.MIL> cd rfc <CWD command successful. **NIC.DDN.MIL> show <"/rfc" is current directory. **NIC.DDN.MIL> dir rfc173*.txt
<Opening ASCII mode data connection for /bin/ls. -rw-r--r-- 1 nic 10 156660 Dec 20 1994 rfc1730.txt -rw-r--r-- 1 nic 10 11433 Dec 20 1994 rfc1731.txt -rw-r--r-- 1 nic 10 9276 Dec 20 1994 rfc1732.txt -rw-r--r-- 1 nic 10 6205 Dec 20 1994 rfc1733.txt -rw-r--r-- 1 nic 10 8499 Dec 20 1994 rfc1734.txt -rw-r--r-- 1 nic 10 24485 Sep 15 1995 rfc1735.txt -rw-r--r-- 1 nic 10 22415 Feb 8 1995 rfc1736.txt -rw-r--r-- 1 nic 10 16337 Dec 15 1994 rfc1737.txt -rw-r--r-- 1 nic 10 51348 Dec 15 1994 rfc1738.txt -rw-r--r-- 1 nic 10 102676 Dec 21 1994 rfc1739.txt <Transfer complete. 670 bytes transferred at 26800 bps. Run time = 10. ms, Elapsed time = 200. ms. **NIC.DDN.MIL> get rfc1739.txt primer.txt <Opening ASCII mode data connection for rfc1739.txt (102676 bytes). <Transfer complete. 105255 bytes transferred at 93664 bps. Run time = 130. ms, Elapsed time = 8990. ms. **NIC.DDN.MIL> quit <Goodbye. SMCVAX$ ==================================================================== 5. User Database Lookup Tools Finding other users on the Internet is an art, not a science. Although there is a distributed database listing all of the 16+ million hosts on the Internet, no similar database yet exists for the tens of millions of users. While many commercial ISPs provide directories of the users of their network, these databases are not yet linked. The paragraphs below will discuss some of the tools available for finding users on the Internet. 5.1. WHOIS/NICNAME WHOIS and NICNAME are TCP/IP applications that search databases to find the name of network and system administrators, RFC authors, system and network points-of-contact, and other individuals who are registered in appropriate databases. The original NICNAME/WHOIS protocol is described in RFC 954 [10]. WHOIS may be accessed by TELNETing to an appropriate WHOIS server and logging in as whois (no password is required); the most common Internet name server is located at the Internet Network Information Center (InterNIC) at rs.internic.net. This specific database only
contains INTERNET domains, IP network numbers, and domain points of contact; policies governing the InterNIC database are described in RFC 1400 [31]. The MILNET database resides at nic.ddn.mil and PSI's White Pages pilot service is located at psi.com. Many software packages contain a WHOIS/NICNAME client that automatically establishes the TELNET connection to a default name server database, although users can usually specify any name server database that they want. The accompanying dialogues shows several types of WHOIS/NICNAME information queries. In the session below, we request information about an individual (Denis Stratford) by using WHOIS locally, a specific domain (hill.com) by using NICNAME locally, and a network address (199.182.20.0) and high-level domain (com) using TELNET to a WHOIS server. ==================================================================== **SMCVAX$ whois stratford, denis Stratford, Denis (DS378) denis@@SMCVAX.SMCVT.EDU St. Michael's College Jemery Hall, Room 274 Winooski Park Colchester, VT 05439 (802) 654-2384 Record last updated on 02-Nov-92. SMCVAX$ **C:> nicname hill.com [198.41.0.5] Hill Associates (HILL-DOM) 17 Roosevelt Hwy. Colchester, Vermont 05446 US Domain Name: HILL.COM Administrative Contact: Kessler, Gary C. (GK34) g.kessler@HILL.COM 802-655-0940 Technical Contact, Zone Contact: Monaghan, Carol A. (CAM4) c.monaghan@HILL.COM 802-655-0940
Billing Contact: Parry, Amy (AP1257) a.parry@HILL.COM 802-655-0940 Record last updated on 11-Jun-96. Record created on 11-Jan-93. Domain servers in listed order: SYRUP.HILL.COM 199.182.20.3 NS1.NOC.NETCOM.NET 204.31.1.1 **C:> telnet rs.internic.net SunOS UNIX 4.1 (rs1) (ttypb) *********************************************************************** * -- InterNIC Registration Services Center -- * * For wais, type: WAIS <search string> <return> * For the *original* whois type: WHOIS [search string] <return> * For referral whois type: RWHOIS [search string] <return> * ********************************************************************** Please be advised that use constitutes consent to monitoring (Elec Comm Priv Act, 18 USC 2701-2711) **[vt220] InterNIC > whois InterNIC WHOIS Version: 1.2 Wed, 18 Sep 96 09:49:50 **Whois: 199.182.20.0 Hill Associates (NET-HILLASSC) 17 Roosevelt Highway Colchester, VT 05446 Netname: HILLASSC Netnumber: 199.182.20.0 Coordinator: Monaghan, Carol A. (CAM4) c.monaghan@HILL.COM 802-655-0940 Record last updated on 17-May-94.
**Whois: com-dom Commercial top-level domain (COM-DOM) Network Solutions, Inc. 505 Huntmar park Dr. Herndon, VA 22070 Domain Name: COM Administrative Contact, Technical Contact, Zone Contact: Network Solutions, Inc. (HOSTMASTER) hostmaster@INTERNIC.NET (703) 742-4777 (FAX) (703) 742-4811 Record last updated on 02-Sep-94. Record created on 01-Jan-85. Domain servers in listed order: A.ROOT-SERVERS.NET 198.41.0.4 H.ROOT-SERVERS.NET 128.63.2.53 B.ROOT-SERVERS.NET 128.9.0.107 C.ROOT-SERVERS.NET 192.33.4.12 D.ROOT-SERVERS.NET 128.8.10.90 E.ROOT-SERVERS.NET 192.203.230.10 I.ROOT-SERVERS.NET 192.36.148.17 F.ROOT-SERVERS.NET 192.5.5.241 G.ROOT-SERVERS.NET 192.112.36.4 **Would you like to see the known domains under this top-level domain? n **Whois: exit **[vt220] InterNIC > quit Wed Sep 18 09:50:29 1996 EST Connection #0 closed C:> ====================================================================
5.2. KNOWBOT KNOWBOT is an automated username database search tool that is related to WHOIS. The Knowbot Information Service (KIS), operated by the Corporation for National Research Initiatives (CNRI) in Reston, Virginia, provides a simple WHOIS-like interface that allows users to query several Internet user databases (White Pages services) all at one time. A single KIS query will automatically search the InterNIC, MILNET, MCImail, and PSI White Pages Pilot Project; other databases may also be included. KNOWBOT may be accessed by TELNETing to host info.cnri.reston.va.us. The help command will supply sufficient information to get started. The sample dialogue below shows use of the query command to locate a user named "Steven Shepard"; this command automatically starts a search through the default set of Internet databases. ==================================================================== **C:> telnet info.cnri.reston.va.us Knowbot Information Service KIS Client (V2.0). Copyright CNRI 1990. All Rights Reserved. KIS searches various Internet directory services to find someone's street address, email address and phone number. Type 'man' at the prompt for a complete reference with examples. Type 'help' for a quick reference to commands. Type 'news' for information about recent changes. Please enter your email address in our guest book... **(Your email address?) > s.shepard@hill.com **> query shepard, steven Trying whois at ds.internic.net... The ds.internic.net whois server is being queried: Nothing returned. The rs.internic.net whois server is being queried: Shepard, Steven (SS2192) 708-810-5215 Shepard, Steven (SS1302) axisteven@AOL.COM (954) 974-4569
The nic.ddn.mil whois server is being queried: Shepard, Steven (SS2192) R.R. Donnelley & Sons 750 Warrenville Road Lisle, IL 60532 Trying mcimail at cnri.reston.va.us... Trying ripe at whois.ripe.net... Trying whois at whois.lac.net... No match found for .SHEPARD,STEVEN **> quit KIS exiting Connection #0 closed C:> ====================================================================