The TELNET Protocol

Download Report

Transcript The TELNET Protocol

The TELNET Protocol
Mozafar Bag mohammadi
Netprog:
TELNET
1
Telnet

Telnet date back to late 1960s is generally
consider the first network application.
– There are several RFCs are listed at the end of
the lecture.

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.
Netprog:
TELNET
2
Telnet (2)

While telnet should be a very simple
protocol, it’s not.
– It has to deal with all communications
methods that different terminal and
computers use.
– It ensures compatibility between the
terminal types and computers and still
allow the special features used.
Netprog:
TELNET
3
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.
Netprog:
TELNET
4
The TELNET Protocol
TCP connection
 data and control over the same
connection.
 Network Virtual Terminal
 negotiated options

Netprog:
TELNET
5
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
Netprog:
TELNET
6
Network Virtual Terminal
Server
Process
NVT
NVT
TCP
TCP
Netprog:
TELNET
7
Telnet
Netprog:
TELNET
8
NVT ASCII Control Codes

Three mandatory codes
– 0, Null
» No operation, no effect on output
– 10, Line Feed
» Moves printer to the next line, keep same print
position
– 13, Carriage Return
» Moves the printer to the left margin of the
current line
Netprog:
TELNET
9
NVT ASCII Control Codes(2)

Optional Codes
– 7, Bell
– 8, Back Space
» Move the print position one character to the left
– 9, Horizontal tab
– 11, Vertical Tab
» devices negotiate to agree on tab stops
– 12, Form Feed
» next page or clear the screen and put cursor at
the top
Netprog:
TELNET
10
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.
Netprog:
TELNET
11
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).

Netprog:
TELNET
12
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.

Netprog:
TELNET
13
Option examples

Line mode vs. character mode

echo modes

character set (EBCDIC vs. ASCII)
Netprog:
TELNET
14
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.
Netprog:
TELNET
15
Control Functions

Interrupt Process (IP)
– suspend/abort process.

Abort Output (AO)
– process can complete, but send no more
output to user’s terminal.

Are You There (AYT)
– check to see if system is still running.
Netprog:
TELNET
16
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.
Netprog:
TELNET
17
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.

Netprog:
TELNET
18
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.

Netprog:
TELNET
19
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.
Netprog:
TELNET
20
Command Codes
IP
 AO
 AYT
 EC
 EL

243
244
245
246
247
WILL
 WON’T
 DO
 DON’T
 IAC

Netprog:
TELNET
251
252
253
254
255
21
Telnet Options

When a option needs more parameters
– Use SB (subnegotiation) and SE (end
subnegotiation )command

Example: negotiate the terminal type
– (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
Netprog:
TELNET
22
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).
Netprog:
TELNET
23
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
Netprog:
TELNET
24
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.
Netprog: TELNET
25
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.
Netprog:
TELNET
26
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

Netprog:
TELNET
27