Edmund A. Hajim  School of Engineering and Applied Sciences

Communications Tools

Introduction

The Internet is a world wide network connecting hundreds of regional networks, which in turn connect hundreds of thousands of local area and wide area networks. Communications among users on the Internet, and by users to remote computer databases, is accomplished easily with a widely available set of software tools. This tutorial is intended to introduce you to some of these many tools for communicating with users and online services throughout the Internet. It will also serve as an introduction to some of the online services themselves. It is important to note that as the services undergo changes, some of the specific addresses we note within this document may change.

An excellent reference for this material is the NYSERNet New User's Guide to Useful and Unique Resources on the Internet, which was a source of some of the information appearing in this document. It is available from the UCC at Taylor Hall for the cost of printing. Additional references for this material would include Sun's Using The Network: Beginner Guide, and the Unix manual pages on the software tools discussed in the following sections.

Conventions

The symbols [RETURN] and [CR] both mean that you are to press the carriage return key on your keyboard. The symbol [ESCAPE] means that you are to press the escape key on your keyboard. The symbol [CONTROL-x] means that you should hold down the control key while pressing the x key.

UR Connectivity

The UR has a Gigabit backbone (often refered to as the ELAN) that connects systems within the UR). This in turn has multiple redundant highspee connections to the larger Internet.

Due to security concerns, the UR (ITS/NCS) blocks some forms of connections at the border between the UR and the Internet.

Moving Files

Sometimes you may need to move a file (or several files) from one machine to another. Or you may need to give a copy of your files to somebody else. In either case, your task is to cause a copy of your file to be moved across the network to another machine or account.

In this section, we'll talk about a few ways to accomplish this.

RCP

Rcp stands for remote copy. Rcp is intended to make it easy to copy a file between two machines on which you have an account. The syntax is similar to that of cp, but you can specify a machine- name as part of the source and/or destination pathname.

The name of a file can be preceded with the name of a computer and a ":". For example "oz.che:list.txt" specifies the file named list.txt in your home directory on oz (assuming that you have the same username on oz).

So you could say:


	rcp list.txt oz.che.rochester.edu:list.txt

which would copy list.txt from whatever machine you're logged onto, to your home directory on oz. Similarly:


	rcp oz.che.rochester.edu:list.txt list.txt

would copy list.txt from your home directory on oz to your current directory on whatever machine you're logged into. Please note though - you do NOT need to do this for files in your home directory. Your home directory is the same on all UNIX systems on the HSEAS production network. In other words, the file you are trying to copy already exists and is in fact the same object.

Rcp doesn't know how to prompt you for a username or password. So rcp works best if your username is the same on both machines, and both machines "trust" each other. In general, HSEAS machines are configured to trust other machines in the same department.

FTP

Ftp stands for File Transfer Protocol. Ftp is a more general purpose way to transfer files than rcp. Ftp still requires that you have an account on the two machines you're going to transfer files between, with an important exception mentioned below.

To run ftp, issue the command "ftp" followed by the name of the computer to exchange files with. E.g., to transfer files to/from the host blurf.blarf.com - assuming you had an account there -


	ftp blurf.blarf.com

Ftp will attempt to establish communications with the other computer. Once it has contacted the other computer, ftp will prompt you for the username and the password of the account on the other computer you want to use for transferring files. Once you're "logged on" to the other computer, ftp will prompt you for your next command.

Some of the commands you can issue are:

get remote-file [local-filename]
Transfer a file from the remote computer to the local computer. If you leave out [local-filename], the name of the new file on the local computer will be the same as the original file on the remote computer.
put local-file [remote-filename]
Transfer a file from the local machine to the remote machine. If you leave out the [remote-filename], then the file created on the remote computer will have the same name as the local version did.
cd directory-path
Change the current directory on the remote machine to directory-path. That will cause any file transfer operations to default to that directory on the remote machine. The default directory locally will remain the same.
lcd directory-path
Change the current directory on the local machine. Any file operations will default to directory-path for accessing or creating files locally.
type file-type
Ftp needs to know whether the file being transferred is an ASCII text file, or a file containing non-printable (binary) information. A file type of "ascii" is the default. If the file to be transferred isn't ASCII, set the filetype to "binary".
ls
The ls command will cause ftp to generate a listing of the files in the current directory on the remote machine.
help [command]
Describe what [command] does. If you don't specify a command, it will list all the available commands.

In addition, it's possible for the system manager of the remote machine to configure it to allow anybody to login and transfer files to/from a special directory. This is known as "anonymous ftp". If the remote machine is configured for anonymous ftp, use the username anonymous, and use your email address as your password. Note that the username anonymous is only valid for ftp, e.g. you can't telnet to that machine and login as "anonymous".

Remember that you're a guest when you use anonymous ftp.

There are lots of other commands available in ftp. Look at the man page for more details.

Electronic Mail

You can also use electronic mail to transfer text files around. Mail is a convenient method to transfer text to another account either locally, or on another machine. When the recipient receives your mail, they will need to save it to a file, and then edit out the header that mail prepends to a file.

Mail can only transfer text files (also known as ASCII files). Before sending a non-text file, such as an executable program or an image file, it is necessary to translate the file into text. The program uuencode can translate non-text files into text; the companion program uudecode undoes the translation, producing the original file.

uuencode [input-file] final-file-name
Uuencode will take input-file, convert it to an ASCII representation, and write the ASCII version to standard output. Later, when uudecode reconstructs the binary file from the ASCII representation, it will be given the name final-file-name. The most common usage of uuencode is to just pipe it's output to mail.

	  uuencode input-file final-file-name | mail address

uudecode encoded-file-name
Uudecode will read in a file generated by uuencode, and convert it back into its original binary format. Uudecode is smart enough to skip over headers generated by mail, so to convert a file mailed to you via the procedure described above:
  1. Issue the mail "save" command, and save the uuencoded file to some filename.
  2. Exit mail, and run uudecode on the saved file as "uudecode filename". There is no need to edit out the headers, as you would if you were just transferring an ASCII file.

Fortunately, most modern mail programs, even the text-based mailers like Pine, have the ability to easily handle 'metamail' (mail that is more than just simple text). These mailers can automatically "attach" non-text files (e.g., images, sound files, executables, moives, etc.), performing the binary-to-ascii-text encoding (and decoding) for you. Most MacOS and Windows mailers (Eudora, Outlook) and most GUI mailers (Thunderbird, Netscape) of course do this quite well.

Logging in to Remote Machines

Another form of communication is to actually login to another computer and use it interactively. There are several methods available to do this from the HSEAS Unix computers.

Rlogin (and rsh)

rlogin machine-name [-l username]

Rlogin will attempt to open an interactive session with the computer machine-name. By default, it will attempt to log you in to the remote computer using your current username. Depending on how the remote computer is configured, rlogin may prompt you for your password on the remote machine. If the account you wish to login to has a different username than your account on the local machine, use the -l option to specify your account on the remote computer.

Rlogin will terminate when you logout from the remote computer. In addition, rlogin recognizes some command sequences that are similar to the "~" sequences in mail. If a new line begins with a "~", the next character is interpreted as a command. The command "~.", will cause rlogin to log you out from the remote host and terminate. You can push rlogin into the background by issuing the command "~[Control-z]".

rsh machine-name [unix-command]

Rsh will attempt to login to the remote computer machine-name, and execute the command unix-command on the remote computer for you. If there is any output from the command, it will print on your screen. Interactive commands, such as editors, will not work with rsh.

If you invoke rsh without specifying a command to execute, rsh will simply start a shell on the remote computer, effectively logging you in to the remote computer in the same manner as rlogin.

Telnet

We'll tell you about telnet here for historical completeness and because you may need it to connect to some types of remote sytems. But - whenever possible, avoid using telnet. It is a very old method of connecting to systems, and it has many serious flaws, including serious security flaws. Rlogin/rsh are much better than telnet, and SecureShell is even better. We strongly recommend you use a SecureShell client when connecting to HSEAS computers from outside of HSEAS. Many UR departments have already turned off telnet access to their systems; we are considering disabling incoming telnet as well. Telnet? Just say no!

Telnet will establish a terminal connection over the network, in much the same way that rlogin does. Telnet is more general then rlogin. For example, while rlogin only works between two computers running Unix, telnet will allow for connections to many computers which don't run Unix.


	telnet machine-name

Telnet will open a connection with the remote computer named machine-name. When you logout from the remote computer, telnet will terminate.

The [Control-]] character will put you into telnet's command mode. Type "help" for a list of commands available in telnet's command mode.

A related program, tn3270, allows for a telnet-like connection to IBM mainframe computers running the VM operating system.

SecureShell

SecureShell is a telnet/rlogin/rsh replacement that has two things going for it. First, it is a much better facility (especially on Windows; Windows telnet clients are horrible. The SecureSHell clients are much better). Second, it is much more secure. For telnet - and for rlogin/rsh to un-trusted hosts - your password is passed over the network in clear text. Anyone with the ability to examine traffic on the network (which is not hard to do) can capture your password and login name - and thus have access to anything you do. SecureShell (ssh) encrypts traffic between the two hosts; someone "sniffing" network traffic will have a lot of hard work to break that encryption. In addition, ssh can tunnel X-window traffic nicely. We have more infomration on SecureShell on our (what else?) SecureShell page.

Finger

Finger is an application that helps in finding out information about users on your system, or on other systems.

By itself, finger reports on the users currently logged onto your system


% finger

Login       Name              TTY Idle    When    Where
systaff  System Staff          co   6d Thu 08:07
lho      Ling Cherd Ho         p0      Tue 00:58  1640commserver.c
dela     Del Armstrong         p2   32 Tue 09:00  thermal.ceas.roc
zhmo     Zhimin Mo             p5   30 Tue 16:34  gav226.che.roche
jgp      Jim Prescott          p7    1 Thu 10:30  socrates.ceas.ro
kaser    Bob Kaser             p9   33 Fri 09:58  dagger.ceas.roch

Using the form finger address, finger reports on the address. The address can take three forms:

finger name
reports on users on this system with either the username or realname name.
finger @hostname
reports on users on the network-connected system with the name hostname.
finger name@hostname
reports on users with either the username or real-name name on the network-connected system with the name hostname.

QUICK SUMMARY OF NETWORK TOOLS AND SERVICES

Programs:

rcp	- remote copy
ftp	- file transfer program
Mail	- electronic mail
uuencode	- encode binary data as ASCII
uudecode	- decode uuencoded data
rlogin	- remote login
rsh	- remote shell
slogin	- remote login via secure shell
ssh	- remote shell via secure shell
telnet	- user interface to a remote system using the TELNET protocol
tn3270	- user interface to a remote IBM mainframe computer
finger	- display information about users
whois	- query the Internet user address database
rup	- get load information on remote machines
rusers	- return information about users on remote machines

Prepared by Jim Prescott, Deke Kassabian and John Simonson

Last modifed: Thursday, 07-Apr-2011 09:22:56 EDT