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