Download presentation
Presentation is loading. Please wait.
1
Lecture 12 Overview
2
TELNET TELNET is a protocol that provides Over TCP connection
general, bi-directional, eight-bit byte oriented communications Over TCP connection data and control over the same connection Many application protocols are built upon the TELNET protocol Used to test HTTP, FTP, SMTP, POP3, IRC, etc. CPE 401/601 Lecture 12 : TELNET protocol
3
Network Virtual Terminal
intermediate representation of a generic terminal provides a standard language for communication of terminal control functions Server Process NVT NVT TCP TCP CPE 401/601 Lecture 12 : TELNET protocol
4
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 CPE 401/601 Lecture 12 : TELNET protocol
5
Command Structure Commands start with a special character called the Interpret as Command escape character The IAC code is 255 If a 255 is sent as data, it must be followed by another 255 If IAC is found and the next byte is IAC a single byte is presented to application/terminal If IAC is followed by any other code the TELNET layer interprets this as a command CPE 401/601 Lecture 12 : TELNET protocol
6
A Typical Mail Environment
Internet Interactive Mail Access Protocol SMTP Mail Server Mail Server IMAP Mail Client IMAP store POP Store SMTP POP SMTP Mail Client CPE 401/601 Lecture 12 : protocols
7
Terminology User Agent Message Transfer Agent Mail Exchanger
end-user mail program Message Transfer Agent responsible for communicating with remote hosts and transmitting/receiving both a client and server Mail Exchanger host that takes care of for a domain CPE 401/601 Lecture 12 : protocols
8
SMTP Used to exchange mail messages between mail servers (Message Transfer Agents) MTA MTA MTA SMTP SMTP File System UA UA CPE 401/601 Lecture 12 : protocols - SMTP
9
SMTP Protocol SMTP sender is the client SMTP receiver is the server
Alternating dialogue: client sends command and server responds with command status message Order of the commands is important! Status messages include ASCII encoded numeric status code (like HTTP,FTP) and text string CPE 401/601 Lecture 12 : protocols - SMTP
10
Data Format ASCII only must convert binary to an ASCII representation to send via What if we want to send a line containing only a period? Sender prepends a period to any line staring with a period (in the message) Receiver strips the leading period in any line that starts with a period and has more stuff CPE 401/601 Lecture 12 : protocols - SMTP
11
TCP Connection Termination
Message Progress TCP Connection Establishment TCP Connection Termination CPE 401/601 Lecture 12 : protocols - SMTP
12
Reply Codes 354 Contain a Lot of Information
Only the reply codes count Other information in a reply is purely for humans The first digit indicates success, failure, or incomplete 354 The third digit is the specific message for that category The second digit is the category of error message CPE 401/601 Lecture 12 : protocols - SMTP
13
SMTP Extensions (EHLO)
A mailer supporting extensions uses EHLO instead of HELO in the greeting $ telnet mail.unr.edu 25 Trying 220 smtp.unr.edu ESMTP Postfix EHLO 250-smtp.unr.edu 250-PIPELINING 250-SIZE 250-VRFY 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DNS A mailer that supports extensions responds with a list of which ones it can do CPE 401/601 Lecture 12 : protocols - SMTP
14
Mail Headers Email messages contain many headers
some headers are created by the UA some are automatically added by the MTA Every MTA adds (at least) a “Received:” header Some of the headers are parsed by intermediate MTAs but the message content is ignored and passed on transparently CPE 401/601 Lecture 12 : protocols - SMTP
15
Multipurpose Internet Mail Extensions
Defines extensions to support binary attachments of arbitrary format Images, Audio, Video and multi-media messages Text having unlimited line length or overall length Multiple objects in a single message Character sets other than ASCII Multi-font messages Requires more capable UAs to interpret messages CPE 401/601 Lecture 12 : protocols - MIME
16
A sample MIME message From: (Jan Trumbo) Subject: small message with Word attachment To: MIME-version: 1.0 Content-type: MULTIPART/MIXED; BOUNDARY="Boundary_[ID_nf99lkyavAuSoClF/HeK0Q]" --Boundary_[ID_nf99lkyavAuSoClF/HeK0Q] Content-type: text/plain; charset=us-ascii Joel, attached is a Word document. - Jan Date: Thu, 19 Sep :49: Content-type: application/mac-binhex40; name=tiny_text_Word_doc.doc Content-disposition: attachment; filename=tiny_text_Word_doc.doc <Word document and more stuff below here> This identical boundary marker separates the parts of the mail message Return-path: Received: from [ ] ( ) by Opus1.COM (PMDF V5.1-2 #9830) with SMTP id for trumbo; Thu, 19 Sep :50:39 MST From: (Jan Trumbo) Subject: small message with Word attachment X-Sender: To: Message-id: MIME-version: 1.0 Content-type: MULTIPART/MIXED; BOUNDARY="Boundary_[ID_nf99lkyavAuSoClF/HeK0Q]" --Boundary_[ID_nf99lkyavAuSoClF/HeK0Q] Content-type: text/plain; charset=us-ascii Attached is a Word document. Date: Thu, 19 Sep :49: Content-type: application/mac-binhex40; name=tiny_text_Word_doc.doc Content-disposition: attachment; filename=tiny_text_Word_doc.doc (This file must be converted with BinHex 4.0) :%R4TERNJG'9iG#"AEh*N)'4[B`"A4%*1690A4!!!!!!)!!!!!8b!2rih!#-!!!! !!!!%!!!C!!!!!!!!!!!"!!!!!8d!!!I"!!!!!!!!!%d!!!!!!!!!!!!!!!!!!!! CPE 401/601 Lecture 12 : protocols - MIME
17
Pulling Emails Offline (POP3 model) Online (Original IMAP model)
Client connects to server and pulls all down to client Everything is stored on the client Online (Original IMAP model) Client connects to server for every transaction Everything is stored on the server Disconnected (Later IMAP model) Client and server share storage burden Server is always authoritative and client must synchronize to server CPE 401/601 Lecture 12 : protocols
18
POP – Post Office Protocol
Used to transfer mail from a mail server to a User Agent Mail Server POP UA File System CPE 401/601 Lecture 12 : protocols - POP3
19
POP (version 3) Similar to SMTP command/reply lockstep
Minimizes server resources Used to retrieve mail for a single user requires authentication Commands and replies are ASCII lines Replies start with “+OK” or “-ERR” Replies may contain multiple lines POP has no security Except when used with SSL, TLS CPE 401/601 Lecture 12 : protocols - POP3
20
A POP3 Exchange > telnet monte pop3 Trying Connected to monte.cs.rpi.edu ( ). Escape character is '^]'. +OK POP3 monte.cs.rpi.edu v7.59 server ready user joe +OK User name accepted, password please pass joepw +OK Mailbox open, 1 messages stat +OK list +OK Mailbox scan listing follows telnet plus.pop.mail.yahoo.com 110 telnet pop.gmail.com 995 CPE 401/601 Lecture 12 : protocols - POP3
21
POP3 Example Continued retr 1 +OK 412 octets Return-Path: <hollingd> Received: (from by monte.cs.rpi.edu (8.9.3/8.9.3) id NAA06943 for joe; Mon, 20 Mar :49: Date: Mon, 20 Mar :49: From: Dave Hollinger Message-Id: To: Status: O blah . CPE 401/601 Lecture 12 : protocols - POP3
22
Internet Message Access Protocol
On-line, off-line, or disconnected mode operation Server-side Mailbox Manipulation Multiple mailbox support Control of all folders everywhere Online performance optimization User can check header or search a string before downloading Real authentication CPE 401/601 Lecture 12 : protocols - IMAP
23
POP vs. IMAP POP3: IMAP: …. Internet Whole message headers Internet
All Messages Internet Whole message IMAP: Dr.Amer Friends …. headers Internet CPE 401/601 Lecture 12 : protocols
24
WebMail Web-base email access User agent -> web browser
User agent-mail server communication based on HTTP HTTP to send messages from user to the mail server of the user HTTP to get mail from the mail server of the destination CPE 401/601 Lecture 12 : protocols - WebMail
25
Lecture 13 File Transfer Protocols
CPE 401 / 601 Computer Network Systems slides are modified from Dave Hollinger slides are modified from Dave Hollinger and Michael
26
File Transfer Protocols
File Transfer Protocol (RFC 959) Why FTP? FTP’s connections FTP in action FTP commands/responses Trivial File Transfer Protocol (RFC 1350) TFTP and TFTP’s message formats FTP and TFTP compared CPE 401/601 Lecture 13 : File Transfer Protocols
27
Why do we need a FTP Service?
Purpose: To Transfer files between two computers Goals of FTP Service Promote sharing of files (programs and/or data) Encourage indirect/implicit use of remote computers Shield users from variations in file storage among hosts Transfer data reliably and efficiently CPE 401/601 Lecture 13 : File Transfer Protocols
28
Problems of File Transfer
At first, file transfer may seem simple Heterogeneous systems use different: Operating Systems Character Sets Naming Conventions Directory Structures File Structures and Formats FTP need to address and resolve these problems CPE 401/601 Lecture 13 : File Transfer Protocols
29
File Transfer Protocol
Exchange and manipulate files over TCP Separate control and data connections between the client and server applications RFC 959 includes information and details parameters for commands lists of reply status codes protocol state diagrams support for a variety of file structures sample sessions CPE 401/601 Lecture 13 : FTP
30
The FTP Model PI: Protocol Interpreter DTP: Data Transfer Protocol
User Interface User Control Server PI User PI File System Data File System Server DTP User DTP CPE 401/601 Lecture 13 : FTP
31
Control and Data Connections
Control functions (commands) and reply codes are transferred over the control connection. All data transfer takes place over the data connection. The control connection must be “up” while data transfer takes place. CPE 401/601 Lecture 13 : FTP
32
Control Connection The control connection is the “well known” service.
The control connection uses the TELNET protocol. Commands and replies are all line oriented text (default is ASCII). CPE 401/601 Lecture 13 : FTP
33
FTP’s Connections * Insulates users from “raw” FTP commands
* Persistent command and reply connection Non-persistent data connection client * Routes “raw” FTP commands * Receives server’s replies *Server uses port 20 for data connections Server is listening on port 21 for connection requests User Interface server User Protocol Interpreter Control Connection Server Protocol Interpreter 21 User Data Transfer Function Data Connection Server Data Transfer Function 20 CPE 401/601 Lecture 13 : FTP
34
FTP - Connection Establishment
ftp> open cse.unr.edu Connected to cse.unr.edu 220 cse FTP server ready. 530 Please login with USER and PASS client 331 Password req for mgunes. Password: User Interface 230 User mgunes logged in. ftp> USER mgunes PASS mypass server User Protocol Interpreter Server Protocol Interpreter Control Connection User Data Transfer Function Data Connection Server Data Transfer Function CPE 401/601 Lecture 13 : FTP
35
FTP - Data Transfer Control Connection Data Connection client
ls client.txt -rw-r--r-- mgunes client.txt User Interface 226 Closing Data Connection PORT 192,168,100,173,19,137 150 Data Connection will be open shortly 200 Port Command Sucessful LIST client.txt server User Protocol Interpreter User Protocol Interpreter Server Protocol Interpreter Server Protocol Interpreter Control Connection Passive open on Port 5001 User Data Transfer Function Data Connection Server Data Transfer Function CPE 401/601 Lecture 13 : FTP Establish Data Connection
36
FTP - Connection Closing
bye client User Interface 221 Service Closing QUIT server User Protocol Interpreter Server Protocol Interpreter Control Connection User Data Transfer Function Data Connection Server Data Transfer Function CPE 401/601 Lecture 13 : FTP
37
FTP Connections CPE 401/601 Lecture 13 : FTP
38
FTP Client Commands Command Description get filename mget filename*
Retrieve file from server mget filename* Retrieve multiple files from server* put filename Copy local file to server mput filename* Copy multiple local files to server* open server Begin login to server bye / close / exit Logoff server ls / dir List files in current remote dir on server lcd Change local directory cd Change remote directory rhelp / remotehelp Lists commands the server accepts * Sent to server as multiple command by User Protocol Interpreter CPE 401/601 Lecture 13 : FTP
39
Data Transfer Modes STREAM: BLOCK: COMPRESSED:
file is transmitted as a stream of bytes BLOCK: file is transmitted as a series of blocks preceded by headers containing count and descriptor code COMPRESSED: uses a simple compression scheme on transmitted blocks CPE 401/601 Lecture 13 : FTP
40
FTP Replies All replies are sent over control connection.
Replies are a single line containing 3 digit status code (sent as 3 numeric chars). text message. The FTP spec. includes support for multiline text replies. CPE 401/601 Lecture 13 : FTP
41
FTP Reply Status Code First digit of status code indicates type of reply: ‘1’: Positive Preliminary Reply (got it, but wait). ‘2’: Positive Completion Reply (success). ‘3’: Positive Intermediate Reply (waiting for more information). ‘4’: Transient Negative Completion (error - try again). ‘5’: Permanent Negative Reply (error - can’t do). CPE 401/601 Lecture 13: FTP
42
FTP Reply Status Code 2nd digit indicates function groupings.
‘0’: Syntax (problem with command syntax). ‘1’: Information (reply to help or status cmds). ‘2’: Connections (problem with a connection). ‘3’: Authentication (problem with login). ‘4’: Unspecified. ‘5’: File system (related to file system). 3rd digit indicates specific problem within function group. CPE 401/601 Lecture 13 : FTP
43
Example FTP Responses 120 Service will be ready shortly 200 Command OK
User login OK User name OK; password is needed Service not available User not logged in Requested action aborted; exceeded storage allocation CPE 401/601 Lecture 13 : FTP
44
Trivial FTP
45
Trivial FTP (TFTP) Simple and small:
5 message formats Runs on UDP Designed to fit in ROM Uses a “stop and wait” protocol NO BUILT IN SECURITY FEATURES (login) Used only to read and write files from/to a server Cannot list directories Useful for bootstrapping diskless systems Workstations X terminals TFTP uses the services of UDP on well known port 69. CPE 401/601 Lecture 13 : TFTP
46
Diskless Workstation Booting 1
The call for help Help! I don't know who I am! My Ethernet address is: 4C:23:17:77:A6:03 Diskless Workstation RARP CPE 401/601 Lecture 13 : TFTP
47
The answer from the all-knowing
RARP Server I know all! You are to be know as: Diskless Workstation RARP REPLY CPE 401/601 Lecture 13 : TFTP
48
The request for instructions
I need the file named boot Diskless Workstation TFTP Request (Broadcast) CPE 401/601 Lecture 13 : TFTP
49
The dialog here is part 1 TFTP Server I got part 1 here is part 2
Diskless Workstation boot file TFTP File Transfer CPE 401/601 Lecture 13 : TFTP
50
TFTP Protocol 5 message types: Each is an independent UDP Datagram
Read request Write request Data ACK (acknowledgment) Error Each is an independent UDP Datagram Each has a 2 byte opcode (1st 2 bytes) The structure of the rest of the datagram depends on the opcode CPE 401/601 Lecture 13 : TFTP
51
TFTP Message Formats FILENAME OPCODE MODE BLOCK# DATA ERROR MESSAGE
MODE BLOCK# DATA ERROR MESSAGE 2 bytes RRQ: client to establish a connection for reading data from the server. WRQ: write data from the client to the server DATA: All data bytes are exactly 512 bytes long except the last block which is between 0 and 511 bytes…EOF indicator – if data is in exact multiples of 512, sender must send one extra block of zero bytes. DATA can be in NVT ASCII or octet (binary format) ACK: Block number is a 2byte field containing the number of the block received CPE 401/601 Lecture 13 : TFTP
52
TFTP transfer modes octet : for transferring binary files.
no translation done. netascii : for transferring text files. all lines end with \r\n (CR,LF). provides standard format for transferring text files. both ends responsible for converting to/from netascii format. CPE 401/601 Lecture 13 : TFTP
53
NetAscii Transfer Mode
Unix - end of line marker is just '\n' receiving a file you need to remove '\r' before storing data. sending a file you need to replace every '\n' with "\r\n" before sending CPE 401/601 Lecture 13 : TFTP
54
Read Request variable length fields! 01 filename mode
mode null terminated ascii string containing name of file null terminated ascii string containing transfer mode 2 byte opcode network byte order variable length fields! CPE 401/601 Lecture 13 : TFTP
55
Write Request variable length fields! 02 filename mode
mode null terminated ascii string containing name of file null terminated ascii string containing transfer mode 2 byte opcode network byte order variable length fields! CPE 401/601 Lecture 13 : TFTP
56
TFTP Data Packet 03 block # data 0 to 512 bytes 2 byte block number
network byte order 2 byte opcode network byte order all data packets have 512 bytes except the last one. CPE 401/601 Lecture 13 : TFTP
57
TFTP Acknowledgment 04 block # 2 byte block number network byte order
2 byte opcode network byte order CPE 401/601 Lecture 13 : TFTP
58
TFTP Error Packet 05 errcode errstring
null terminated ascii error string 2 byte opcode network byte order 2 byte error code network byte order CPE 401/601 Lecture 13 : TFTP
59
TFTP Error Codes (16 bit int)
0 - not defined 1 - File not found 2 - Access violation 3 - Disk full 4 - Illegal TFTP operation 5 - Unknown port 6 - File already exists 7 - No such user CPE 401/601 Lecture 13 : TFTP
60
TFTP Connection Establishment
CPE 401/601 Lecture 13 : TFTP
61
TFTP Session CPE 401/601 Lecture 13 : TFTP
62
Lost Data Packets Original Protocol Specification
Sender uses a timeout with retransmission. sender could be client or server. Duplicate data packets must be recognized and ACK retransmitted. This original protocol suffers from the "sorcerer’s apprentice syndrome". CPE 401/601 Lecture 13 : TFTP
63
Sorcerer’s Apprentice Syndrome
send DATA[n] (time out) retransmit DATA[n] receive ACK[n] send DATA[n+1] receive ACK[n] (dup) send DATA[n+1](dup) ... receive DATA[n] send ACK[n] receive DATA[n] (dup) send ACK[n] (dup) receive DATA[n+1] send ACK[n+1] receive DATA[n+1] (dup) send ACK[n+1] (dup) CPE 401/601 Lecture 13 : TFTP
64
The Fix Sender should not resend a data packet in response to a duplicate ACK. If sender receives ACK[n] don’t send DATA[n+1] if the ACK was a duplicate. CPE 401/601 Lecture 13 : TFTP
65
Concurrency TFTP servers use a "well known address"
UDP port number How would you implement a concurrent server? forking (alone) may lead to problems! Can provide concurrency without forking, but it requires lots of bookkeeping. CPE 401/601 Lecture 13 : TFTP
66
TFTP Concurrency According to the protocol, the server may create a new udp port and send the initial response from this new port. The client should recognize this, and send all subsequent messages to the new port. CPE 401/601 Lecture 13 : TFTP
67
When is it over? There is no length of file field sent!
All data messages except the last one contain 512 bytes of data. message length is = 516 The last data message might contain 0 bytes of data! CPE 401/601 Lecture 13 : TFTP
68
Issues What if more than 65535 chunks are sent?
65536 blocks x 512 bytes/block = 33,554,432 bytes. The RFC does not address this issue! Remember that the network can duplicate packets! CPE 401/601 Lecture 13 : TFTP
69
FTP vs. TFTP FTP provides (minimal) security through login procedure
TFTP has NO login procedure FTP Provides a reliable service through its use of TCP TFTP must handle its own retransmissions since it uses UDP FTP uses two connections TFTP uses one connection (stop and wait) FTP provides many commands TFTP can only read and write files CPE 401/601 Lecture 13 : TFTP
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.