1 / 49

CSCE 515 : Computer Network Programming ------ Rlogin, Telnet, Ftp

CSCE 515 : Computer Network Programming ------ Rlogin, Telnet, Ftp. Wenyuan Xu http://www.cse.sc.edu/~wyxu/csce515f07.html Department of Computer Science and Engineering University of South Carolina. TELNET vs. telnet.

zalika
Download Presentation

CSCE 515 : Computer Network Programming ------ Rlogin, Telnet, Ftp

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CSCE 515:Computer Network Programming------ Rlogin, Telnet, Ftp Wenyuan Xu http://www.cse.sc.edu/~wyxu/csce515f07.html Department of Computer Science and Engineering University of South Carolina

  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. • RLOGIN is a protocol • rlogin is a program that supports the RLOGIN protocol CSCE515 – Computer Network Programming

  3. TELNET and RLOGIN • Both are used to remote login across network • TELNET is standard application provided by almost every TCP/IP implementation • Can work between hosts running different OSs • Can negotiate options to determine features provided by each end • RLOGIN is from BSD and was designed to work between Unix systems only CSCE515 – Computer Network Programming

  4. Local login login shell terminal driver kernel user at a terminal CSCE515 – Computer Network Programming

  5. TELNET Client and Server TELNET client TELNET server login shell terminal driver TCP/IP TCP/IP pseudo- terminal driver login shell kernel kernel user at a terminal terminal driver Only ONE TCP connection !!! kernel user at a terminal CSCE515 – Computer Network Programming

  6. RLOGIN

  7. RLOGIN Protocol – Start up • Specified in RFC 1282 • Use a single TCP connection • Protocol between client and server after connection is set up • Client writes 4 strings to server • a byte of 0 • login name of user on client, terminated by a byte of 0 • login name of user on server, terminated by a byte of 0 • name of user’s terminal type, a slash, terminal speed, terminated by a byte of 0 • (\0John\0John\0ibmpc3/9600\0) • Server responds with a byte of 0 • Optionally server can ask user for a password • Server sends a request to client asking for terminal’s window size CSCE515 – Computer Network Programming

  8. 1byte 1byte Date Date ACK = 1 WIN = xxx Interactive input Client Server keystroke Server echo display ACK = 1 WIN = xxx CSCE515 – Computer Network Programming

  9. Flow control • Done by client • User type Control-S, Control-Q, asking SERVER to stop sending data, or start sending data • Control-S stop writing to the network • Control-Q start writing to the network • Control by Server CSCE515 – Computer Network Programming

  10. Server to Client Commands • Need to mark command bytes because only one TCP connection is used • Use TCP’s urgent mode to mark command bytes • To send a command to client, server enters urgent mode and makes command byte the last byte of urgent data • Four command bytes • 0x02: client flushes output • 0x10: client stops performing flow control • 0x20: client resumes flow control • 0x80: client sends current window size to server immediately and notifies server if changing window size • Out-of-band signaling CSCE515 – Computer Network Programming

  11. TCP Segment Format 0 15 16 31 source port number destination port number sequence number acknowledgment number 20 bytes header length reserved U R G A C K P S H R S T S Y N F I N window size TCP checksum urgent pointer option (if any) data (if any) CSCE515 – Computer Network Programming

  12. Client to Server Command • When client receives command 0x80 from server, client needs to send window size to server • This command needs to be marked • 2 bytes of 0xff • 2 flag bytes of ASCII char ‘s’ • 4 16-bit values: #rows, #chars per row, #pixels in X direction, #pixels in Y direction • In-band signaling CSCE515 – Computer Network Programming

  13. RLOGIN Client Escape • Talk to client directly instead of sending the input to server • Start with a tilde ‘~’ • Followed by one of four characters • ‘.’: terminate client • EOF (Ctrl-D): terminate client • Job control suspend char (Ctrl-Z): suspend client • Job control delayed suspend char (Ctrl-Y): suspend only client input but keep server output CSCE515 – Computer Network Programming

  14. TELNET

  15. TELNET Protocol • Specified in RFC 854 • TCP connection • data and control over the same connection. • Network Virtual Terminal • Designed to work between any host and any terminal • Negotiated options CSCE515 – Computer Network Programming

  16. Network Virtual Terminal Server Process NVT NVT TCP TCP CSCE515 – Computer Network Programming

  17. Network Virtual Terminal • intermediate representation of a generic terminal. • provides a standard language for communication of terminal control functions. • Client maps user’s terminal type to NVT • Server maps NVT into its terminal type • Use NVT ASCII, the 7-bit US variant of ASCII character set, but also allow 8-bit data transmission CSCE515 – Computer Network Programming

  18. 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). CSCE515 – Computer Network Programming

  19. 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. CSCE515 – Computer Network Programming

  20. Option examples • Four operation modes • Half-duplex • Character at a time • Line at a time • Linemode • character set (EBCDIC vs. ASCII) CSCE515 – Computer Network Programming

  21. Command Structure • In-band signaling for both directions • All TELNET commands and data flow through the same TCP connection. • Commands start with a special character called the Interpret as Command (IAC) escape character. • The IAC code is 255 (0xff). • Next byte is command byte • <IAC COMMAND XX > • If a 0xff is sent as data - it must be followed by another 0xff. CSCE515 – Computer Network Programming

  22. 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 0xff). • If IAC is followed by any other code - the TELNET layer interprets this as a command. CSCE515 – Computer Network Programming

  23. Command Codes • IP 243 0xf3 • AO 244 0xf4 • AYT 245 0xf5 • EC 246 0xf6 • EL 247 0xf7 • WILL 251 0xfb • WON’T 252 0xfc • DO 253 0xfd • DON’T 254 0xfe • IAC 255 0xff CSCE515 – Computer Network Programming

  24. TELNET Option Negotiation • Either side can send request to other side • <IAC COMMANDID OPTIONID > • Four different requests for any given option • WILL: sender wants to enable option • DO: receiver says OK • DONT: receiver says NO • DO: sender wants receiver to enable option • WILL: receiver says OK • WONT: NO • WONT: sender wants to disable option • DONT: receiver must say OK • DONT: sender wants receiver to disable option • WONT receiver must say OK CSCE515 – Computer Network Programming

  25. TELNET Options Option ID Name 1 echo 3 suppress go ahead 5 status 6 timing mark 24 terminal type 31 window size 32 terminal speed 33 remote flow control 34 linemode 36 environment variables CSCE515 – Computer Network Programming

  26. TELNET Suboption Negotiation • Used for options that require more information than just “enable” or “disable” • For example, client: <IAC, WILL, 24> server: <IAC, DO, 24> server: <IAC, SB, 24, 1, IAC, SE> client: <IAC, SB, 24, 0, ‘I’, ‘B’, ‘M’, ‘P’, ‘C’, IAC, SE> CSCE515 – Computer Network Programming

  27. 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. CSCE515 – Computer Network Programming

  28. 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. CSCE515 – Computer Network Programming

  29. 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. CSCE515 – Computer Network Programming

  30. TELNET Client Escape • Talk to client directly instead of sending the input to server • Normal client escape char is Ctrl-] • Can type commands to change settings or print information CSCE515 – Computer Network Programming

  31. 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. CSCE515 – Computer Network Programming

  32. 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). CSCE515 – Computer Network Programming

  33. Some TCP Servers you can play with • Many Unix systems have these servers running (by default): • echo port 7 • discard port 9 • daytime port 13 • chargen port 19 CSCE515 – Computer Network Programming

  34. Security • Does not encrypt any data sent over the connection • Including password • No authentication – man in the middle attack • Daemons have vulnerabilities CSCE515 – Computer Network Programming

  35. Secure Shell (SSH) • Operate over TCP/IP connection or other reliable but insecure transport layers to support secure remote login, secure file transfer and other secure services • Can automatically encrypt, authenticate, and compress transmitted data • Three major components • Transport Layer Protocol to provide server authentication, confidentiality, and integrity • User Authentication Protocol to provide authentication of client-side user to server • Connection Protocol to multiplex encrypted channels to logical channels CSCE515 – Computer Network Programming

  36. FTP

  37. File Transfer Protocol (FTP) • Internet standard for file transfer • Designed to work between different systems but support limited number of file types and structures • Use two TCP connections • Control connection • Client active open to TCP port 21 of server • Stay up all the time of communication • IP TOS should be “minimize delay” • Data connection • Created each time a file is transferred • IP TOS should be “maximize throughput” CSCE515 – Computer Network Programming

  38. FTP Client and Server client user at a terminal user interface server user protocol interpreter server protocol interpreter control connection (FTP commands, FTP replies) file system user data transfer function server data transfer function file system data connection CSCE515 – Computer Network Programming

  39. 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). CSCE515 – Computer Network Programming

  40. FTP Commands • Commands are sent in NVT ASCII with a pair of CR, LF at end of each line • Commands are 3 or 4 bytes of ASCII chars, some require optional arguments • Access Control Commands USER usernamespecify user PASS passwordspecify password CWD change directory CDUP change directory to parent QUIT logout CSCE515 – Computer Network Programming

  41. Transfer Parameter Commands PORT publish local data port PASV server should listen TYPE type establish data representation MODE establish transfer mode STRU establish file structure CSCE515 – Computer Network Programming

  42. Service Commands RETR filenameretrieve file STOR filenamesend file STOU send file and save as unique APPE send file and append ABOR abort prev. service command PWD print working directory LIST transfer list of files over data link CSCE515 – Computer Network Programming

  43. 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. CSCE515 – Computer Network Programming

  44. 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). CSCE515 – Computer Network Programming

  45. 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. • 331: Username OK, password required CSCE515 – Computer Network Programming

  46. FTP Data Representation • Four dimensions determine how file is transferred and stored • File type: ASCII file, EBCDIC file, binary file, local file • Format control: nonprint, telnet format control, Fortran carriage control • Structure: file structure, record structure, page structure • Transmission mode: stream mode, block mode, compressed mode • Typical implementation restricts to ASCII or binary, nonprint, file structure, stream mode CSCE515 – Computer Network Programming

  47. FTP Connection Management • Three uses for data connection • Sending file from client to server • Sending file from server to client • Sending a listing of files or directories from server to client • Client chooses an ephemeral port, sends it to server across control connection, and passive open for data connection • Server receives this port number from control connection, and active open to that port on client CSCE515 – Computer Network Programming

  48. Anonymous FTP • A server can allow anyone to login and use FTP to transfer files • To use anonymous FTP, login with “anonymous” as username and an email address as password • Some anonymous FTP server denies client from a host that does not have valid hostname CSCE515 – Computer Network Programming

  49. Forwarder uses provides StdControl CommControl ReceiveMsg GenericComm Main StdControl SendMsg ReceiveMsg StdControl SendMsg ForwarderM Leds LedsC Leds TinyOS Communication to RS-232, NOT something you should dig into. Radio. Here you go! Keep digging. CSCE515 – Computer Network Programming

More Related