The TELNET Protocol

Download Report

Transcript The TELNET Protocol

The TELNET Protocol
Mozafar Bag Mohammadi
1
Telnet



Telnet is generally considered the first
network application. (late 1960s)
Uses a client/server model to define a
standard way in which to interact with a
remote system.
The telnet protocol is the basis for many
protocols

FTP, HTTP, SMTP, NTTP just to name a few.

They don’t open a telnet connection, just use the
protocol.
2
TELNET vs. telnet

TELNET is a protocol that provides “a
general, bi-directional, eight-bit byte
oriented communications facility”.

telnet is a program that supports the
TELNET protocol over TCP.
3
The TELNET Protocol




TCP connection
data and control over the same connection.
Network Virtual Terminal
negotiated options
4
Network Virtual Terminal

All communications uses a standard terminal
called NVT


The client takes input, translates into NVT sends it
to the server, which translates to the
representation that the computer uses.
Special Telnet commands are interspersed with
the data to perform the functions needed to for
the operation of the protocol
5
Network Virtual Terminal
Server
Process
NVT
NVT
TCP
TCP
6
Telnet
7
NVT ASCII Control Codes

Three mandatory codes

0, Null


10, Line Feed


No operation, no effect on output
Moves printer to the next line, keep same print
position
13, Carriage Return

Moves the printer to the left margin of the current line
8
NVT ASCII Control Codes(2)

Optional Codes


7, Bell
8, Back Space



9, Horizontal tab
11, Vertical Tab


Move the print position one character to the left
devices negotiate to agree on tab stops
12, Form Feed

next page or clear the screen and put cursor at the top
9
NVT ASCII Control Codes(3)

End of line marker


Since different computers use different standards
for the end of line marker,
CR+LF is defined as the end of line marker.
10
Negotiated Options



All NVTs support a minimal set of capabilities.
Some terminals have more capabilities than
the minimal set.
The 2 endpoints negotiate a set of mutually
acceptable options (character set, echo
mode, etc).
11
Negotiated Options


The protocol for requesting optional features
is well defined and includes rules for
eliminating possible negotiation “loops”.
The set of options is not part of the TELNET
protocol, so that new terminal features can be
incorporated without changing the TELNET
protocol.
12
Option examples

Line mode vs. character mode

echo modes

character set (EBCDIC vs. ASCII)
13
Control Functions

TELNET includes support for a series of
control functions commonly supported by
servers.

This provides a uniform mechanism for
communication of (the supported) control
functions.
14
Control Functions

Interrupt Process (IP)


Abort Output (AO)


suspend/abort process.
process can complete, but send no more output
to user’s terminal.
Are You There (AYT)

check to see if system is still running.
15
More Control Functions

Erase Character (EC)



delete last character sent
typically used to edit keyboard input.
Erase Line (EL)

delete all input in current line.
16
Command Structure




All TELNET commands and data flow
through the same TCP connection.
Commands start with a special character
called the “Interpret as Command” escape
character (IAC).
The IAC code is 255.
If a 255 is sent as data - it must be followed
by another 255.
17
Looking for Commands



Each receiver must look at each byte that
arrives and look for IAC.
If IAC is found and the next byte is IAC - a
single byte is presented to the
application/terminal (a 255).
If IAC is followed by any other code - the
TELNET layer interprets this as a command.
18
commands

WILL option (to Enable an option)

Response is either



DO option, indicate agreement and enable option
DONT option, initiator must not use the option.
WONT option (to disable option)

Response must be

DONT option, option is disabled.
19
Command Codes





IP
AO
AYT
EC
EL
243
244
245
246
247
WILL
 WON’T
 DO
 DON’T
 IAC

251
252
253
254
255
20
Telnet Options

When a option needs more parameters


Example: negotiate the terminal type





Use SB (subnegotiation) and SE (end subnegotiation
)command
(IAC is interpret as command)
IAC WILL Terminal-type
IAC DO Terminal-type
IAC SB terminal-type SEND IAC SE
IAC SB TERINAL-TYPE IS <type> IAC SE
21
Playing with TELNET


You can use the telnet program to play
with the TELNET protocol.
telnet is a generic TCP client.



Sends whatever you type to the TCP socket.
Prints whatever comes back through the TCP
socket.
Useful for testing TCP servers (ASCII based
protocols).
22
Some TCP Servers you can
play with

Many Unix systems have these servers
running (by default):




echo
discard
daytime
chargen
port 7
port 9
port 13
port 19
23
telnet hostname port
> telnet rcs.rpi.edu 7
Trying 128.113.113.33...
Connected to cortez.sss.rpi.edu
(128.113.113.33).
Escape character is '^]'.
Hi dave
Hi dave
stop it
stop it
^]
telnet> quit
Connection closed.
24
telnet vs. TCP

Not all TCP servers talk TELNET (most don't)

You can use the telnet program to play with
these servers, but the fancy commands won't do
anything.

type ^], then "help" for a list of fancy TELNET stuff you
can do in telnet.
25
RFCs



The first RFC specifically defining Telnet was
RFC 97, First Cut at a Proposed Telnet
Protocol, published in February 1971.
Telnet Protocol Specification, was published
as RFC 854 in May 1983.
Telnet Option Specifications, RFC 855
26