Tải bản đầy đủ (.pdf) (5 trang)

Practical TCP/IP and Ethernet Networking- P32 ppt

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (77.58 KB, 5 trang )

Application layer protocols 137
Many operating systems have a GUI-based FTP client such as NetManage’s Chameleon
NFS that displays the file systems of the local and the remote machines in two separate
windows and allows file transfers from one machine to another by mouse movements on
the screen.
Most UNIX machines act as FTP servers by default. A daemon process watches the
TCP command port (21) continuously for the arrival of a request for a connection and
calls the necessary FTP processes when one arrives.
Windows 95/98 does not include FTP server software, but it does provide an FTP client
program. However, a number of third-party FTP packages have been written for use with
Windows. Examples of such software are CuteFTP, an FTP client, and Serv-U-FTP
server.
8.2.3 Anonymous FTP
Anonymous FTP access allows a client to access publicly available files using the login
name ‘anonymous’ and the password ‘guest’. Alternatively the password may be required
to be a valid e-mail address. Public files are often placed in a separate directory on the
server, and are commonly used by Internet sites such as Network Information Systems,
Yellow Pages, etc.
8.3 Trivial file transfer protocol (TFTP)
8.3.1 Introduction
TFTP (RFC 1350) is a less sophisticated version of FTP, and caters for situations where
the complexity of FTP and the reliability of TCP is neither desired nor required. TFTP
does not log on to the remote machine; so it does not provide user access and file
permission controls.
TFTP is used for simple file transfers and is typically placed in the read-only memory
of diskless machines such as PLCs that use it for bootstrapping or to load applications.
The absence of authorization controls can be overcome by diligent system
administration. For example, on a UNIX system, a file may only be transferred if it is
accessible to all users on the remote machine (i.e. both read and write permissions
are set).
TFTP does not monitor the progress of the file transfer so does not need the reliable


stream transport service of TCP. Instead, it uses an unreliable packet delivery system
such as UDP, using time-out and retransmission mechanisms to ensure data delivery. The
UDP source and destination port fields are used to create the socket at each end, and
TFTP transfer identifiers (TIDs) ranging between 0 and 65 535 are created by TFTP and
passed to UDP to be placed in the UDP header field as a source port number. The
destination (server) port number is set to the well-known port 69, which is reserved for
TFTP.
The server returns an acknowledgment message, upon which the data
transfer commences.
Data is then relayed in consecutively numbered blocks of 512 bytes. Each block must
be acknowledged, using the block number in the message header, before the next block is
transmitted. This system is known as a flip-flop protocol. A block of less than 512 bytes
indicates the end of the file. A block is assumed lost and re-sent if an acknowledgment is
not received within a certain time period. The receiving end of the connection also sets a
138 Practical TCP/IP and Ethernet Networking
timer and if the last block to be received was not the end of file block, on time-out the
receiver will re-send the last acknowledgment message.
TFTP can fail for many reasons and almost any kind of error encountered during the
transfer will cause complete failure of the operation. An error message sent either in place
of a block of data or as an acknowledgment terminates the interaction between the client
and the server.
8.3.2 Frame types
There are five TFTP package types, distinguished by an opcode field. They are:
Opcode Operation
1 Read request (RRQ)
2 Write request (WRQ)
3 Data (DATA)
4 Acknowledgment (ACK)
5 Error (ERROR)
The frames for the respective operations are constructed as follows:

RRQ/WRQ frames

Figure 8.1
RRQ/WRQ frame format
The various fields are as follows:
• Opcode: 2 bytes
1 for RRQ, 2 for WRQ
• Filename: variable length
Written in Netascii, defined by ANSI X3.4-1968. Terminated by a 0 byte.
• Mode: variable length
Indicates the type of transfer. Terminated by a 0 byte. The three available
modes are:
• Netascii
• Byte – raw 8-bit bytes and binary information
• Mail – indicates destination is a user not a file – information
transferred as Netascii
DATA frames
The filename does not need to be included as the IP address and UDP protocol port
number of the client are used as identification.

Figure 8.2
Data frame format
Application layer protocols 139
The fields are as follows:
• Opcode: 2 bytes
3 indicates DATA
• Block number: 2 bytes
The particular 512-byte block within a specific transfer (allocated
sequentially)
• Data: Variable, 1–512 bytes.

Data is transmitted as consecutive 512-byte blocks, a frame with less than
512 bytes means that it is the last block of a particular transfer
ACK frames
These frames are sent to acknowledge each block that arrives. TFTP uses a ‘lock-step’
method of acknowledgment, which requires each data packet to be acknowledged before
the next can be sent.

Figure 8.3
ACK frame format
The fields are as follows:
• Opcode: 2 bytes
4 indicates acknowledgment
• Block number: 2 bytes
The number of the block being acknowledged
Error frames
An error message causes termination of the operation.


Figure 8.4
Error frame
The fields are:
• Opcode: 2 bytes
5 indicates an error
• Error code: 2 bytes
This field contains a code that describes the problem
• 0 Not defined
• 1 File not found
• 2 Access violation
• 3 Disk full/allocation exceeded
140 Practical TCP/IP and Ethernet Networking

• 4 Illegal operation
• 5 Unknown transfer operation
• 6 File already exists
• 7 No such user
• Error message: Variable length string
This is Netascii string, terminated by a 0 byte
8.4 TELNET (telecommunications network)
TELNET is a simple remote terminal protocol, included in the TCP/IP suite that enables
virtual terminal capability across a network. That is, a user on machine A can log in to
another machine B across a network without being aware that he is working across a
network.
Once connected, the user’s computer emulates the remote computer. When the user
types in commands, they are executed on the remote computer. The user’s monitor
displays what is taking place on the remote computer during the TELNET session.
The procedure for connecting to a remote computer depends on how the user’s Internet
access is set up. The process is generally menu driven. Some remote machines require
the user to have an account on the machine and will request a username and password.
However, many information resources are available to the user without an account
and password.
TELNET achieves a connection via the well known port number 23, using either the
server’s domain name or its IP address, and then passes keystrokes to the remote server
and receives output back from it.
TELNET treats both ends of the connection similarly, so that software at either end of a
connection can negotiate the parameters that will control their interaction. It provides a
set of options, such as type of character set to be used (7-bit or 8-bit), type of carriage-
return character to be recognized (e.g. CR or LF) etc, which can be negotiated to suit the
client and the server. It is possible for a machine to act as both client and server
simultaneously, enabling the user to log into other machines while other users log into his
machine.
In the case of a server capable of managing multiple, concurrent connections, TELNET

will listen for new requests and then create a new instantiation (or ‘slave’) to deal with
each new connection.
The TELNET protocol uses the concept of a network virtual terminal (NVT) to
define each end of a connection. NVT uses standard 7-bit US ASCII codes to represent
printable characters and control codes such as ‘move right one character’, ‘move down
one line’, etc. 8-bit bytes with the high order bit set are used for command sequences.
Each end has a virtual keyboard that can generate characters (it could represent the user’s
keyboard or some other input stream such as a file) and a logical printer that can display
characters (usually a terminal screen). The TELNET programs at either end handle the
translation from virtual terminal to physical device. As long as this translation is possible,
TELNET can interconnect any type of device. When the connection is first established
and the virtual terminals are setup, they are provided with codes that indicate which
operations the relevant physical devices can support.
An operating system usually reserves certain ASCII keystroke sequences for use as
control functions. For example, an application running on UNIX operating systems will
not receive the Ctrl-C keystroke sequence as input if it has been reserved for interrupting
the currently executing program. TELNET must therefore define such control functions
Application layer protocols 141
so that they are interpreted correctly at both ends of the connection. In this case, Ctrl-C
would be translated into the TELNET IP command code.
TELNET does not use ASCII sequences to represent command codes. Rather, it
encodes them using an escape sequence. This uses a reserved octet, called the ‘interpret
as command’ (IAC) octet, to indicate that the following octet contains a control code.
The actual control code can be represented as a decimal number, as follows:
Command Decimal Value Meaning
EOR 239 End of record
SE 240 End of option sub-negotiation
NOP 241 No operation
DMARK 242 Data mark – the data stream part of a
SYNCH (always marked by TCP as urgent)

BRK 243 Break
IP 244 Interrupt process – interrupts or terminates
the active process
AO 245 Abort output – allows the process to run
until completion, but does not send the
end of record command
AYT 246 Are you there – used to check that an
application is functioning at the other end
EC 247 Erases a character in the output stream
EL 248 Erases a line in the output stream
GA 249 Go ahead – indicates permission to proceed
when using half-duplex (no echo)
communications
SB 250 Start of option sub-negotiation
WILL 251 Agreement to perform the specified option or
confirmation that the specified option is now
being performed
WON’T 252 Refusal to perform the specified option or
confirmation that the specified option will no
longer be performed
DO 253 Asks for the other end to perform the
specified option, or acknowledges that the
other end will perform the specified option
DON’T 254 Demand that the other end stops performing
the specified option, or confirmation that the
other end is no longer performing the
specified option
IAC 255 Interpret as command – interpret the next
octet as a command. When the IAC octet
appears as data the 2-octet sequence that is

sent will be IAC-IAC
The IAC character to have the above meanings must precede the control code. For
example, the two-octet sequence IAC-IP (or 255-244) would induce the server to abort
the currently executing program.
The following command options are used by TELNET:
Option Code Meaning
0 Transmit binary – change transmission to 8-bit binary
1 Echo

×