Application-layer Protocols



Similar documents
Hostnames. HOSTS.TXT was a bottleneck. Once there was HOSTS.TXT. CSCE515 Computer Network Programming. Hierarchical Organization of DNS

Motivation. Domain Name System (DNS) Flat Namespace. Hierarchical Namespace

Applications and Services. DNS (Domain Name System)

DNS : Domain Name System

FTP protocol (File Transfer Protocol)

File Transfer Protocol (FTP) Chuan-Ming Liu Computer Science and Information Engineering National Taipei University of Technology Fall 2007, TAIWAN

Computer Networks Prof. S. Ghosh Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur Lecture - 34 DNS & Directory

DNS Domain Name System

1 Introduction: Network Applications

CS3250 Distributed Systems

Lecture 2 CS An example of a middleware service: DNS Domain Name System

Domain Name System (DNS) Fundamentals

The Application Layer. CS158a Chris Pollett May 9, 2007.

Administrasi dan Manajemen Jaringan 2. File Transfer Protocol (FTP)

Teldat Router. DNS Client

CS 348: Computer Networks. - DNS; 22 nd Oct Instructor: Sridhar Iyer IIT Bombay

Applications & Application-Layer Protocols: The Domain Name System and Peerto-Peer

Domain Name System Richard T. B. Ma

Protocolo FTP. FTP: Active Mode. FTP: Active Mode. FTP: Active Mode. FTP: the file transfer protocol. Separate control, data connections

REMOTE FILE TRANSFER PROTOCOL BY USING MULTITHREDING

THE DOMAIN NAME SYSTEM DNS

Domain Name System (DNS) Session-1: Fundamentals. Ayitey Bulley

File Transfer Protocol - FTP

Domain Name System (DNS)

The Domain Name System

Chakchai So-In, Ph.D.

The Application Layer: DNS

19 Domain Name System (DNS)

Understanding DNS (the Domain Name System)

Domain Name System (DNS) Omer F. Rana. Networks and Data Communications 1

Domain Name System. DNS is an example of a large scale client-server application. Copyright 2014 Jim Martin

Distributed Systems. 09. Naming. Paul Krzyzanowski. Rutgers University. Fall 2015

Naming. Name Service. Why Name Services? Mappings. and related concepts

Internetworking with TCP/IP Unit 10. Domain Name System

Domain Name System (DNS)

Application Protocols in the TCP/IP Reference Model. Application Protocols in the TCP/IP Reference Model. DNS - Concept. DNS - Domain Name System

2- Electronic Mail (SMTP), File Transfer (FTP), & Remote Logging (TELNET)

Application Protocols in the TCP/IP Reference Model

Configuring DNS. Finding Feature Information

How-to: DNS Enumeration

NET0183 Networks and Communications

Domain Name System (DNS) RFC 1034 RFC

Types of hypertext. Hypertext documents can either be 1.Static 2.Dynamic

Forouzan: Chapter 17. Domain Name System (DNS)

1 DNS Packet Structure

Remote login (Telnet):

DNS - Domain Name System

INTERNET DOMAIN NAME SYSTEM

$ftp = Net::FTP->new("some.host.name", Debug => 0) or die "Cannot connect to some.host.name: $@";

NVT (Network Virtual Terminal) description

DNS Conformance Test Specification For Client

File Transfer And Access (FTP, TFTP, NFS) Chapter 25 By: Sang Oh Spencer Kam Atsuya Takagi

Domain Name Resolver (DNR) Configuration

Domain Name System :49:44 UTC Citrix Systems, Inc. All rights reserved. Terms of Use Trademarks Privacy Statement

TCP/IP Fundamentals. OSI Seven Layer Model & Seminar Outline

The Domain Name System

DATA COMMUNICATOIN NETWORKING

Application Protocols in the TCP/IP Reference Model. Application Protocols in the TCP/IP Reference Model. DNS - Domain Name System

ECE 4321 Computer Networks. Network Programming

CS3600 SYSTEMS AND NETWORKS

FILE TRANSFER PROTOCOL INTRODUCTION TO FTP, THE INTERNET'S STANDARD FILE TRANSFER PROTOCOL

Domain Name System DNS

Local DNS Attack Lab. 1 Lab Overview. 2 Lab Environment. SEED Labs Local DNS Attack Lab 1

KB Windows 2000 DNS Event Messages 1 Through 1614

TOE2-IP FTP Server Demo Reference Design Manual Rev1.0 9-Jan-15

FTP: the file transfer protocol

Domain Name System (or Service) (DNS) Computer Networks Term B10

CS 355. Computer Networking. Wei Lu, Ph.D., P.Eng.

Application-layer protocols

3. The Domain Name Service

You can specify IPv4 and IPv6 addresses while performing various tasks in this feature. The resource

Introduction to DNS CHAPTER 5. In This Chapter

CSIS 3230 Computer Networking Principles, Spring 2012 Lab 7 Domain Name System (DNS)

Names vs. Addresses. Flat vs. Hierarchical Space. Domain Name System (DNS) Computer Networks. Lecture 5: Domain Name System

Internet-Praktikum I Lab 3: DNS

The Domain Name System (DNS)

2.5 TECHNICAL NOTE FTP

Appendix. Web Command Error Codes. Web Command Error Codes

Internet Security [1] VU Engin Kirda

Fundamentals of UNIX Lab Networking Commands (Estimated time: 45 min.)

DNS: Domain Names. DNS: Domain Name System. DNS: Root name servers. DNS name servers

How do I get to

DNS and BIND Primer. Pete Nesbitt linux1.ca. April 2012

Application Layer. CMPT Application Layer 1. Required Reading: Chapter 2 of the text book. Outline of Chapter 2

The Domain Name System

netkit lab dns Università degli Studi Roma Tre Dipartimento di Informatica e Automazione Computer Networks Research Group Version Author(s)

Basic Operation & Management of TCP/IP Networks

DNS Resolving using nslookup

Windows Based FTP Server with Encryption and. other Advanced Features.

Domain Name System (DNS) Services

How to set up the Integrated DNS Server for Inbound Load Balancing

DNS. Computer Networks. Seminar 12

IP addresses have hierarchy (network & subnet) Internet names (FQDNs) also have hierarchy. and of course there can be sub-sub-!!

Transcription:

Application-layer Protocols Based on Notes by D. Hollinger Based on UNIX Network Programming, Stevens, Chapter 9 Also Java Network Programming and Distributed Computing, Chapter 3,8 Also Online Java Tutorial, Sun. Netprog 2002 DNS 1

Topics Issues in Protocol Design Sample Application-layer Protocols TELNET FTP DNS Netprog 2002 DNS 2

Application Protocol Design Think of different people/teams, working on the client and server programs. Different programming languages. Diverse hardware, operating systems. Be unambiguous, precise. Consider potential error conditions. Allow for future extensions. Leave room for additional data, meta-data. Do not replicate services provided by lowerlayer protocols e.g., checksum Netprog 2002 DNS 3

In Summary Strive for: Interoperability Precision Extensibility Efficiency Minimality Netprog 2002 DNS 4

Learn by Example Many existing protocols are the result of long term collaborations. Look at existing Request for Comments (RFC) documents, specifying protocols: See http://www.rfc-editor.org/rfc.html Netprog 2002 DNS 5

Knock-Knock Protocol Server: Knock knock! Client: Who's there? Server: Dexter. Client: Dexter who? Server: Dexter halls with boughs of holly. Client: Groan. Netprog 2002 DNS 6

Java Implementation Client class KnockKnockClient.java Server class KnockKnockServer.java Protocol class KnockKnockProtocol.java Netprog 2002 DNS 7

Supporting multiple clients Main listener code KKMultiServer.java Protocol service thread code KKMultiServerThread.java Netprog 2002 DNS 8

The TELNET Protocol Reference: RFC 854 Netprog 2002 DNS 9

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. Many application protocols are built upon the TELNET protocol. Netprog 2002 DNS 10

The TELNET Protocol TCP connection data and control over the same connection. Network Virtual Terminal negotiated options Netprog 2002 DNS 11

Network Virtual Terminal intermediate representation of a generic terminal. provides a standard language for communication of terminal control functions. Netprog 2002 DNS 12

Network Virtual Terminal Server Process NVT TCP NVT TCP Netprog 2002 DNS 13

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 2002 DNS 14

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 2002 DNS 15

Option examples Line mode vs. character mode echo modes character set (EBCDIC vs. ASCII) Netprog 2002 DNS 16

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 2002 DNS 17

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 2002 DNS 18

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 2002 DNS 19

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 2002 DNS 20

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 2002 DNS 21

Command Codes IP 243 AO 244 AYT 245 EC 246 EL 247 WILL 251 WON T 252 DO 253 DON T 254 IAC 255 Netprog 2002 DNS 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 2002 DNS 23

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 Netprog 2002 DNS 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 2002 DNS 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. See GenericClient.java Netprog 2002 DNS 26

FTP File Transfer Protocol Reference: RFC 959 Netprog 2002 DNS 27

FTP Objectives (from RFC 959) promote sharing of files encourage indirect use of remote computers shield user from variations in file storage transfer data reliably and efficiently FTP, although usable directly by a user at a terminal, is designed mainly for use by programs Netprog 2002 DNS 28

The FTP Model PI: Protocol Interpreter DTP: Data Transfer Protocol User Interface User Server PI Control User PI File System Server DTP Data User DTP File System Netprog 2002 DNS 29

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. Netprog 2002 DNS 30

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). Netprog 2002 DNS 31

Standard Connection Model Control A Data B Netprog 2002 DNS 32

Alternative Connection Model Control A Control B Data C Netprog 2002 DNS 33

Access Control Commands USER PASS CWD CDUP QUIT specify user specify password change directory change directory to parent logout Netprog 2002 DNS 34

Transfer Parameter PORT PASV TYPE MODE STRU Commands publish local data port server should listen establish data representation establish transfer mode establish file structure Netprog 2002 DNS 35

Service Commands RETR retrieve file STOR STOU APPE ABOR PWD LIST send file send file and save as unique send file and append abort prev. service command print working directory transfer list of files over data link Netprog 2002 DNS 36

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. Netprog 2002 DNS 37

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). Netprog 2002 DNS 38

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. Netprog 2002 DNS 39

Data Transfer Modes STREAM: 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 (EOF, EOR, restart marker). COMPRESSED: uses a simple compression scheme - compressed blocks are transmitted. Netprog 2002 DNS 40

RFC 959 The RFC includes lots more information and many details including: parameters for commands lists of reply status codes protocol state diagrams support for a variety of file structures sample sessions Netprog 2002 DNS 41

Address Conversion Functions and The Domain Name System Based on Notes by D. Hollinger Refs: UNIX Network Programming, Stevens, Chapter 9 RFC 1034 RFC 1035 Also based on Java Network Programming and Distributed Computing, Chapter 3 Netprog 2002 DNS 42

Hostnames IP Addresses are great for computers IP address includes information used for routing. IP addresses are tough for humans to remember. IP addresses are impossible to guess. ever guessed at the name of a WWW site? Netprog 2002 DNS 43

The Domain Name System The domain name system is usually used to translate a host name into an IP address. Domain names comprise a hierarchy so that names are unique, yet easy to remember. Netprog 2002 DNS 44

DNS Hierarchy edu com org jp rpi albany Netprog 2002 DNS 45

Host name structure Each host name is made up of a sequence of labels separated by periods. Each label can be up to 63 characters The total name can be at most 255 characters. Examples: whitehouse.gov barney.the.purple.dinosaur.com monica.cs.rpi.edu Netprog 2002 DNS 46

Domain Name The domain name for a host is the sequence of labels that lead from the host (leaf node in the naming tree) to the top of the worldwide naming tree. A domain is a subtree of the worldwide naming tree. Netprog 2002 DNS 47

Top level domains edu, gov, com, net, org, mil, Countries each have a top level domain (2 letter domain name). New top level domains include:.aero.biz.coop.info.name.pro Netprog 2002 DNS 48

DNS Organization Distributed Database The organization that owns a domain name is responsible for running a DNS server that can provide the mapping between hostnames within the domain to IP addresses. So - some machine run by RPI is responsible for everything within the rpi.edu domain. Netprog 2002 DNS 49

DNS Distributed Database There is one primary server for a domain, and typically a number of secondary servers containing replicated databases. rpi.edu DNS server rpi.edu DNS DB Authoritative rpi.edu rpi.edu DNS rpi.edu DNS DB DNS DB DB Replicas Netprog 2002 DNS 50

DNS Clients A DNS client is called a resolver. A call to getbyname(host)is handled by a resolver (typically part of the client). Most Unix workstations have the file /etc/resolv.conf that contains the local domain and the addresses of DNS servers for that domain. Netprog 2002 DNS 51

/etc/resolv.conf domain rpi.edu 128.113.1.5 128.113.1.3 Netprog 2002 DNS 52

nslookup nslookup is an interactive resolver that allows the user to communicate directly with a DNS server. nslookup is usually available on Unix workstations. Netprog 2002 DNS 53

$ nslookup Default Server: oldtotter.cs.rpi.edu Address: 128.213.8.12 > rpi.edu Server: oldtotter.cs.rpi.edu Address: 128.213.8.12 Non-authoritative answer: Name: rpi.edu Addresses: 128.113.26.42, 128.113.26.41 Netprog 2002 DNS 54

DNS Servers Servers handle requests for their domain directly. Servers handle requests for other domains by contacting remote DNS server(s). Servers cache external mappings. Netprog 2002 DNS 55

Server - Server Communication If a server is asked to provide the mapping for a host outside it s domain (and the mapping is not in the server cache): The server finds a nameserver for the target domain. The server asks the nameserver to provide the host name to IP translation. To find the right nameserver, use DNS! Netprog 2002 DNS 56

DNS Data DNS databases contain more than just hostname-to-address records: Name server records NS Hostname aliases CNAME Mail Exchangers MX Host Information HINFO Netprog 2002 DNS 57

The Root DNS Server The root server needs to know the address of 1st (and many 2nd) level domain nameservers. edu com org jp rpi albany Netprog 2002 DNS 58

Server Operation If a server has no clue about where to find the address for a hostname, ask the root server. The root server will tell you what nameserver to contact. A request may get forwarded a few times. Netprog 2002 DNS 59

DNS Message Format HEADER QUERIES Response RESOURCE RECORDS Response AUTHORITY RECORDS Response ADDITIONAL INFORMATION Netprog 2002 DNS 60

DNS Message Header 16 bit fields query identifier flags # of questions # of RRs # of authority RRs # of additional RRs } Response Netprog 2002 DNS 61

Message Flags QR: Query=0, Response=1 AA: Authoritative Answer TC: response truncated (> 512 bytes) RD: recursion desired RA: recursion available rcode: return code Netprog 2002 DNS 62

Recursion A request can indicate that recursion is desired - this tells the server to find out the answer (possibly by contacting other servers). If recursion is not requested - the response may be a list of other name servers to contact. Netprog 2002 DNS 63

Question Format Name: domain name (or IP address) Query type (A, NS, MX, ) Query class (1 for IP) Netprog 2002 DNS 64

Response Resource Record Domain Name Response type Class (IP) Time to live (in seconds) Length of resource data Resource data Netprog 2002 DNS 65

UDP & TCP Both UDP and TCP are used: TCP for transfers of entire database to secondary servers (replication). UDP for lookups If more than 512 bytes in response - requestor resubmits request using TCP. Netprog 2002 DNS 66

Lots more This is not a complete description! If interested - look at: RFC 1034: DNS concepts and facilities. RFC 1035: DNS implementation and protocol specification. play with nslookup. Look at code for BIND (DNS server code). Netprog 2002 DNS 67

Internet Addresses in Java java.net.inetaddress class You get an address by using static methods: ad = InetAddress.getByName(hostname); myaddress = InetAddress.getLocalHost(); Netprog 2002 DNS 68

Printing Internet Addresses You get information from an InetAddress by using methods: ad.gethostname(); ad.gethostaddress(); Both return Strings representing the host name, and the IP address in dotted decimal format. Netprog 2002 DNS 69

Additional InetAddress methods getaddress() returns the IP address. in byte array format (network byte order), with highest byte at bytearray[0]. getallbyname(hostname) returns an array of InetAddress instances for the given host name. One host name may be mapped to multiple machines. One host name can map to multiple addresses in the same machine (virtual addresses). Netprog 2002 DNS 70

Additional InetAddress methods ismulticastaddress() returns a boolean representing whether it is a Class D address. getallbyname(hostname) returns an array of InetAddress instances for the given host name. One host name may be mapped to multiple machines. One host name can map to multiple addresses in the same machine (virtual addresses). Netprog 2002 DNS 71