RFCs and Internet Documentation
In this subject, we concentrate fairly heavily on the protocols and
architectures used in the global Internet.
Every aspect of the Internet is documented in a series of documents
called "RFCs" (Request For Comment). RFCs are the means by which new
technologies are introduced in the Internet: after suitable research
work has been done, the new proposals are published as an RFC. On the
other hand, some RFCs document standard Internet protocols. RFCs are
usually in plain text form.
Once an RFC is published, it is not changed. However, it may be
"obsoleted" by later work. Unfortunately, there is no easy way to
"browse" RFCs to discover which RFC is the latest on a particular
topic, although there are various Indexes which can be useful.
RFCs are available on-line on the Internet, and can be downloaded
using anonymous ftp. In Australia, they are available at several
sites: in particular at ftp://archie.au/rfc/
You may (later) need to learn how to download RFCs to answer some of
the assignment questions.
Application Protocols
Application protocols define the way in the TCP reliable service can
be used to achieve network- based computing. Because applications can
assume reliability, their protocols can be quite simple.
Most application protocols use commands (and, in some cases,
responses) in a human-readable form. They normally also use plain
ASCII text where possible. This makes debugging the protocols quite
straightfoward in most cases.
Some application protocols include:
- Telnet
- provides remote login allowing a user to log into a remote
computer as though it was local. We examine Telnet in this lecture.
- SMTP
- provides the basic Internet electronic mail delivery protocol. We
look at electronic mail later in the unit.
- FTP
- is used to copy files from one system to another.
- HTTP
- is the protocol basis of the World Wide Web, and is quite complex.
We may look at a subset.
Remote Login
Remote login means to "log in" to a computer as though you were using
it locally.
Key concepts:
- The idea of "remote login", as opposed to "local login" is
significant in the history of computing - originally, a user "logged
in" at a basic display terminal which was directly connected to a
hardware port on a multi-user host computer. If the host was connected
to a network, remote login allowed users to log in to other networked
hosts over the network as though their terminal was directly
connected.
- Some systems do not (even now) support remote login because they
are built on the assumption of a single user sitting at a directly
connected keyboard and graphics screen, or because their operating
system makes other unwarranted assumptions.
- Different operating systems have (or used to have...) quite
different procedures for handling local logins, making the problem of
providing a generic remote login facility (potentially) quite
difficult.
Telnet
Telnet is the basic remote login utility, and is supported on
virtually all time-shared operating systems.
Basic Telnet operation:
- The user invokes the telnet client process, usually by name from
the command line, eg:
telnet ironbark
Once running, the client process then establishes a TCP connection to
the desired telnet server, which is "waiting for connections" at the
well-known port 23 - note that we are again ignoring the question of
how the name "ironbark" gets translated to a network address, see
later.
- In the case of Unix, the telnet server connects the incoming
connection to a variation of the standard "login" process on the
server host. This may work differently on other systems.
- The user's keystrokes are transmitted to the remote server, and
output is displayed on the user's screen. Thus, initially the user can
"log in", and once authenticated has a normal shell (command line
interface) on the remote host.
Telnet Commands and Options
- The telnet protocol defines a "network virtual terminal"
that provides a standard interface to remote systems, regardless of
their particular approach to terminal login. A Telnet implementation
(client or server) maps the semantics of local terminal operation to
the NVT before sending data over the connection. Some aspects of the
NVT include:
- The NVT uses standard US-ASCII, defining the meaning of a subset
of
the ASCII control codes.
- It defines a standard "line ending", the two character sequence
<CR><LF>
- It permits certain "out of band" commands to be sent to the remote
host.
- It permits either of the client or the server to negotiate a
variety
of standard and advanced options. These include:
- Allow one side to echo all data which it receives.
- Use 8-bit characters, instead of the default 7-bit.
- Set terminal type for (eg) screen editing.
- Change to linemode or character mode.
Other Aspects of Remote Login
Programs which implement the telnet protocol are widely (and freely)
available, and Telnet is much used.
The BSD version of Unix introduced a remote login utility with
enhanced characteristics called "rlogin". Some of its features are:
- It supports the idea of "trusted" hosts, whereby a remote login
request from a trusted host (providing usernames match) is not
re-authenticated. This can be administered on a per-host basis
(/etc/hosts.equiv) or a per-user basis (~/.rhosts).
- rlogin exports the user's local "login environment" to the remote
host, so that an rlogin session can look almost identical to a local
login.
Finally, the telnet program can be used to connect to other services
than the standard telnet server at port 23. Most telnet
implementations allow the user to specify a port number on the command
line, and will open a TCP connection to that port. This can be very
useful in debugging communications software.
This lecture is also available in PostScript format.
The tutorial for this lecture is Tutorial #03.
Phil Scott