chapter 3 application layer functionality and protocols

90
Chapter 3 Application Layer Functionality and Protocols CIS 81 Networking Fundamentals Rick Graziani Cabrillo College [email protected] Spring 2010

Upload: faustine-gaynor

Post on 03-Jan-2016

43 views

Category:

Documents


0 download

DESCRIPTION

Chapter 3 Application Layer Functionality and Protocols. CIS 81 Networking Fundamentals Rick Graziani Cabrillo College [email protected] Spring 2010. This Presentation. Additonal information and explanations may be found in the notes section of this powerpoint. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Chapter 3 Application Layer Functionality and Protocols

Chapter 3Application Layer Functionality and Protocols

CIS 81 Networking Fundamentals

Rick Graziani

Cabrillo College

[email protected]

Spring 2010

Page 2: Chapter 3 Application Layer Functionality and Protocols

2

This Presentation

Additonal information and explanations may be found in the notes section of this powerpoint.

For a copy of this presentation and access to my web site for other CCNA, CCNP, and Wireless resources please email me for a username and password. Email: [email protected] Web Site: www.cabrillo.edu/~rgraziani

Page 3: Chapter 3 Application Layer Functionality and Protocols

3

Note

This presentation is not in the order of the book or online curriculum. This presentation also contains information beyond the curriculum.

Page 4: Chapter 3 Application Layer Functionality and Protocols

Applications: Interface Between the Networks

Page 5: Chapter 3 Application Layer Functionality and Protocols

5

Application Layer: OSI and TCP/IP Models

The Application layer Layer seven Top layer Interface between the applications we use to communicate and the

underlying network.

Page 6: Chapter 3 Application Layer Functionality and Protocols

6

Application layer protocols Exchange data between programs running on the source and

destination hosts.

Email

HTTP (www)

HTTP HTTP

Page 7: Chapter 3 Application Layer Functionality and Protocols

7

Application Layer: OSI and TCP/IP Models

Page 8: Chapter 3 Application Layer Functionality and Protocols

8

The Presentation Layer

The Presentation layer has three primary functions: Coding and conversion Compression Encryption

Compression and Coding formats: Graphics Interchange Format (GIF) Joint Photographic Experts Group (JPEG) Tagged Image File Format (TIFF).

Page 9: Chapter 3 Application Layer Functionality and Protocols

9

The Session Layer

Create and maintain dialogs between source and destination applications. Handles the exchange of information to:

Initiate dialogs Keep them active Restart sessions that are disrupted or idle for a long period of time

Most applications, like web browsers or e-mail clients, incorporate functionality of the OSI layers 5, 6 and 7.

Page 10: Chapter 3 Application Layer Functionality and Protocols

10

Application Layer: OSI and TCP/IP Models

Common TCP/IP Protocols Domain Name Service Protocol (DNS) Hypertext Transfer Protocol (HTTP) Simple Mail Transfer Protocol (SMTP) Telnet File Transfer Protocol (FTP)

Note: Usually a single server will function as a server for multiple applications

Page 11: Chapter 3 Application Layer Functionality and Protocols

11

RFCs: Request For Comments

The protocols in the TCP/IP suite are generally defined by Requests for Comments (RFCs). Maintained by IETF (Internet Engineering Task Force) There are a few in there for fun -

ftp://ftp.rfc-editor.org/in-notes/rfc1882.txt.

Page 12: Chapter 3 Application Layer Functionality and Protocols

12

Application Layer Software

Network-Aware Applications Applications to communicate over the network. They implement the application layer protocols:

Email Clients Web Browsers

User applications

Services

System Operations

Application layer: Applications Services

Page 13: Chapter 3 Application Layer Functionality and Protocols

13

Application Layer Software

Application layer Services Network resources such as:

File transfer Network print spooling

Interface with the network and prepare the data for transfer.

User applications

Services

System Operations

Page 14: Chapter 3 Application Layer Functionality and Protocols

14

Application Layer Software

Applications provide people a way to create messages. Services establish an interface to the network. Protocols provide the rules and formats that govern how data is

treated.

Bottom line: When discussing an application like "Telnet" we could be

referring to the application, the service, or the protocol.

Page 15: Chapter 3 Application Layer Functionality and Protocols

15

Application Layer Protocol Functions

Protocols: (This will become clearer later! Herding cats.) Rules for exchanging data. Structure of the message

Page 16: Chapter 3 Application Layer Functionality and Protocols

16

Application Layer Protocol Functions

Applications and services can use multiple protocols. Using a web browser (HTTP):

May invoke: DNS, ARP, ICMP

May use: TCP, UDP, Ethernet, PPP

Uses IP

Page 17: Chapter 3 Application Layer Functionality and Protocols

17

Client Server Model

Client: the device requesting the information Server: the device responding to the request is called a server.

Page 18: Chapter 3 Application Layer Functionality and Protocols

18

Servers

A server contains information to be shared with many client systems. Web server Email server File or database server Applications server

May require authentication and vary permissions.

Page 19: Chapter 3 Application Layer Functionality and Protocols

19

Servers

The server runs a service, or process, sometimes called a server daemon.

Daemons (like other services) typically run in the background and are not under an end user's direct control.

Daemons are described as "listening" for a request from a client. When a daemon "hears" a request from a client responds

appropriately.

Page 20: Chapter 3 Application Layer Functionality and Protocols

Application Layer Protocols

Page 21: Chapter 3 Application Layer Functionality and Protocols

21

HTTP (WWW)

FTP

SMTP (email)

Telnet

(file transfer)

(remote login)

DHCP(IP address resolution)

DNS

(file sharing)P2P

(domain name resolution)

(file sharing)SMB

We will examine HTTP in detail.

Page 22: Chapter 3 Application Layer Functionality and Protocols

22

DataHTTP Header

TCP Header

IP Header

Data Link Header

Data Link Trailer

IP PacketData Link Header

Data Link Trailer

IP PacketData Link Header

Data Link Trailer

IP PacketData Link Header

Data Link Trailer

IP PacketData Link Header

Data Link Trailer

IP PacketData Link Header

Data Link Trailer

IP PacketData Link Header

Data Link Trailer

DataHTTP Header

TCP Header

IP Header

Data Link Header

Data Link Trailer

Reminder of encapsulation/decapsulation

Page 23: Chapter 3 Application Layer Functionality and Protocols

23

Focus on Application Header and/or Data

We will examine how the application (header) and/or data communication with each other between the client and the server.

“Later” we will look at what roles the other layers, protocols (TCP, IP, etc.) play.

HTTP

HTTP

Page 24: Chapter 3 Application Layer Functionality and Protocols

24

HTTP (HyperText Transfer Protocol)

HTTP – The Web’s application layer protocol. RFC 1945 and RFC 2616 Implemented in:

Client program Server program

Current version: HTTP/1.1 Encapsulated in TCP (more later)

HTTP Server

HTTP Client

HTTPHTTP

Page 25: Chapter 3 Application Layer Functionality and Protocols

25

HTTP (HyperText Transfer Protocol)

Web page (also called a html document) Web page consists of objects

HTML file JPEG image JAVA applet Audio file

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Rick Graziani, Cabrillo College</title><style type="text/css">

<!--

body {

margin-left: 0px;

margin-top: 0px;

margin-right: 0px;

margin-bottom: 0px;

The base HTML file references other objects in the page.

Page 26: Chapter 3 Application Layer Functionality and Protocols

26

Web Browser - Client

Browser – The user agent for the Web. Displays requested Web page.

Browser and client may be used interchangeably in this discussion.

HTTP has nothing to do with how a Web page is interpreted (displayed) by the client (browser).

HTTP Client

Page 27: Chapter 3 Application Layer Functionality and Protocols

27

Web Server

Web Server – Stores web objects, each addressable by a URL. Implement the server side of HTTP. Examples:

Apache Microsoft Internet Information Server

HTTP Server

Page 28: Chapter 3 Application Layer Functionality and Protocols

28

HTTP Request Message

Request Message Request line Header lines

ASCII Text

GET /~rgraziani/ HTTP/1.1

Accept-Language: en-us

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; InfoPath.1)

Host: www.cabrillo.edu

Connection: Keep-Alive

HTTP Client

HTTP Server

Some data omitted for brevity

Page 29: Chapter 3 Application Layer Functionality and Protocols

29

HTTP Request Message

Request Line

GET - Browser/client is requesting an object

/~rgraziani/ - Browser is requesting this object in this

directory (default is index.html)

HTTP/1.1 - Browser implements the HTTP/1.1 (1.1 is

backwards compatible with 1.0)

GET /~rgraziani/ HTTP/1.1

Accept-Language: en-us

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; InfoPath.1)

Host: www.cabrillo.edu

Connection: Keep-Alive

Page 30: Chapter 3 Application Layer Functionality and Protocols

30

HTTP Request Message

Request Line

GET: - Used by browser/client to request an object.

POST: - Used when user has filled out a form and sending

information to the server. (Forms do not have to

use POST.)

- Example: words in a search engine

HEAD: - Similar to a GET, but the server will responds with a

HTTP message but leaves out the requested object.

PUT: - Used with Web publishing tools, upload objects.

DELETE: - Used with Web publishing tools, delete objects.

GET /~rgraziani/ HTTP/1.1

Accept-Language: en-us

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; InfoPath.1)

Host: www.cabrillo.edu

Connection: Keep-Alive

Page 31: Chapter 3 Application Layer Functionality and Protocols

31

HTTP Request Message

Header Lines

Accept-Language:- User prefers this language of the object

User-Agent: - The browser type making the request

Host: - Host on which the object resides

Connection: - Client/browser is telling the server to keep

this TCP connection Open, known as a

persistent connection.

- We will talk about this later in TCP

(transport layer)

GET /~rgraziani/ HTTP/1.1

Accept-Language: en-us

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; InfoPath.1)

Host: www.cabrillo.edu

Connection: Keep-Alive

Page 32: Chapter 3 Application Layer Functionality and Protocols

32

HTTP Response MessageHTTP/1.1 200 OKDate: Fri, 22 Feb 2008 16:34:18 GMTServer: Apache/2.0.52 (Red Hat)Last-Modified: Thu, 15 Nov 2007 19:33:12 GMTContent-Length: 15137Connection: closeContent-Type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

Some data omitted for brevity

HTTP Client

HTTP Server

Page 33: Chapter 3 Application Layer Functionality and Protocols

33

HTTP Response MessageHTTP/1.1 200 OKDate: Fri, 22 Feb 2008 16:34:18 GMTServer: Apache/2.0.52 (Red Hat)Last-Modified: Thu, 15 Nov 2007 19:33:12 GMTContent-Length: 15137Connection: closeContent-Type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

Response message: Status line Header lines Entity body

Page 34: Chapter 3 Application Layer Functionality and Protocols

34

HTTP Response MessageHTTP/1.1 200 OKDate: Fri, 22 Feb 2008 16:34:18 GMTServer: Apache/2.0.52 (Red Hat)Last-Modified: Thu, 15 Nov 2007 19:33:12 GMTContent-Length: 15137Connection: closeContent-Type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

Status Line

HTTP/1.1 – Server is using HTTP/1.1

200 OK - Status code, request succeeded and information is

returned in response

Page 35: Chapter 3 Application Layer Functionality and Protocols

35

HTTP Response MessageHTTP/1.1 404

Status Codes

200 OK

- Status code, request succeeded and information is returned in response.

301 Moved Permanently

- Requested object has been permanently moved.

400 Bad Request

- Generic error message, request not understood by server.

404 Not Found:

-The requested document does not exist on server.

505 HTTP Version Not Supported

- The requested HTTP protocol version not supported by server.

Page 36: Chapter 3 Application Layer Functionality and Protocols

36

HTTP Response MessageHTTP/1.1 200 OKDate: Fri, 22 Feb 2008 16:34:18 GMTServer: Apache/2.0.52 (Red Hat)Last-Modified: Thu, 15 Nov 2007 19:33:12 GMTContent-Length: 15137Connection: closeContent-Type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

Header Lines

Date: – Server is using HTTP/1.1

Server: - Status code, request succeeded and

information is returned in response

Last-Modified: – Date/time when object created or modified

Content-Length: – Number of bytes in object being sent

Connection: – Server going to close TCP connection after

sending the requested object.

Content-Type: – Object in entity body is HTML text

Page 37: Chapter 3 Application Layer Functionality and Protocols

37

HTTP Response MessageHTTP/1.1 200 OKDate: Fri, 22 Feb 2008 16:34:18 GMTServer: Apache/2.0.52 (Red Hat)Last-Modified: Thu, 15 Nov 2007 19:33:12 GMTContent-Length: 15137Connection: closeContent-Type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

Entity Body

<!DOCTYPE html PUBLIC etc.:

– HTML text and other objects to be used by the browser/client

Page 38: Chapter 3 Application Layer Functionality and Protocols

38

HTTP Request and Response MessagesGET /~rgraziani/ HTTP/1.1

Accept-Language: en-us

User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506; InfoPath.1)

Host: www.cabrillo.edu

Connection: Keep-Alive

HTTP Client

HTTP Server

HTTP/1.1 200 OKDate: Fri, 22 Feb 2008 16:34:18 GMTServer: Apache/2.0.52 (Red Hat)Last-Modified: Thu, 15 Nov 2007 19:33:12 GMTContent-Length: 15137Connection: closeContent-Type: text/html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

HTTP

HTTP

Page 39: Chapter 3 Application Layer Functionality and Protocols

39

User-Server Interaction: Cookies

Web servers are considered stateless – they do not maintain state information, keep track of the user. Higher performance – allowing the server to handle thousands of

simultaneous TCP connections (later). Web servers use cookies to track users. Cookies defined in RFC 2109

Page 40: Chapter 3 Application Layer Functionality and Protocols

40

User-Server Interaction: Cookies

Web server installs cookies on client when: Accessed the web site for the first time (Web server does not know client

by name.)

and/or User provides information to the web server. (Web server now knows

client by name.) HTTP on Web server responds with a Set-cookie: header with an ID.

This ID is stored on the client’s computer. Each time client/browser accesses web site. The GET includes Cookie: or

User_ID or similar with the ID.

HTTP Client

HTTP Server

HTTP Requests (GET) now include ID

HTTP: Response Set-cookie: ID

HTTP Requests: GET (first time)

Web server can now track clients activities on the web site.

Page 41: Chapter 3 Application Layer Functionality and Protocols

41

HTTP Request and Response MessagesGET /jpeg/cap81/cam0.36705623.rgb888.enc HTTP/1.1

<information omitted>

Cookie: SLSPOTNAME5=Cowells; SLSPOTNAME4=Waimea%20Bay; SLSPOTNAME3=Pipeline; SLSPOTNAME2=38th%20Ave%2E; SLSPOTNAME1=Cowells; SLSPOTID5=4189; SLSPOTID4=4755; SLSPOTID3=4750; SLSPOTID2=4191; SLSPOTID1=4189; OAX=R8bfwEbcU08ABCBu; USER_ID=5551212 <not my actual user-id>; <rest of informaton omitted for brevity>

HTTP Client

HTTP Server

HTTP/1.1 200 OKDate: Fri, 22 Feb 2008 19:00:15 GMTServer: Apache/1.3.34 (Unix)Last-Modified: Fri, 22 Feb 2008 18:51:47 GMTETag: "760a31-18ce-47bf19c3"Accept-Ranges: bytesContent-Length: 6350Keep-Alive: timeout=15, max=257Connection: Keep-AliveContent-Type: text/plain <information omitted>

HTTP: Cookie 5551212 included

HTTP data customized for Rick Graziani

Page 42: Chapter 3 Application Layer Functionality and Protocols

42

Web Caching - Extra

Web cache or proxy server – Web cache satisfies HTTP requests on the behalf of the Origin Web server. Own disk storage Keeps copies of recently requested objects

Typically installed at ISP or larger institutions. Advantages:

Reduces the response time for client requests, especially if there are any bottlenecks in the network.

Reduces traffic on institution’s access link to the ISP (Internet).

Client

Client

Origin Server

Orgin Server

HTTP RequestHTTP

Request

HTTP RequestHTTP

Request

HTTP Response

HTTP Response

HTTP Response

HTTP Response

Web Cache or Proxy Server

Page 43: Chapter 3 Application Layer Functionality and Protocols

43

Web Caching - Extra

1. Client/browser sends HTTP Request to Web cache (Proxy server).2. Web cache checks to see if it has a local copy of the object.

2a. Local copy: Web cache sends object to client’s browser. 2b. No Local copy: Web cache sends HTTP request to origin server.

3. Origin server sends object to Web cache.4. Web cache stores a local copy of the object.5. Web cache forwards copy of the object to the client browser.Note: TCP connections are also created between Client and Web Cache; Web

cache and Origin server (later).

Web Cache or Proxy Server

Client

Client

Origin Server

Origin Server

HTTP RequestHTTP

Request

HTTP RequestHTTP

Request

HTTP Response

HTTP Response

HTTP Response

HTTP Response

Page 44: Chapter 3 Application Layer Functionality and Protocols

44

Web Caching (Extra)

Problem – stale cache Object may have been modified on Origin server since copy was cached

by the Web cache. Solution – Conditional GET

Request method: GET Includes header: If-Modified-Since:

Web cache sends Conditional GET to Origin server to see if there is a newer version of the object. No newer version: Send current local object Newer version: Replaces current object and forwards newer version.

Page 45: Chapter 3 Application Layer Functionality and Protocols

45

Web Cache – Steps (Extra)

1. Client/browser sends HTTP Request to Web cache (Proxy server).

2. Web cache checks to see if it has a local copy of the object. No local copy

3. Web cache sends HTTP request to origin server.

4. Origin Web server sends HTTP response with object requested

5. Web cache stores local copy of the object with last-modified date.

6. Web cache forwards object to client/browser.

1. Web cache receives another request for this HTTP object.

2. Web cache sends a Conditional GET to the Origin Web server, with If-modified-since: header.

3. Origin Web Server returns: No change: HTTP Response message 304 Not Modified, no object.

Web cache sends local object. Change: HTTP Response 200 OK, with object.

Web cache replace object and forwards update object.

Page 46: Chapter 3 Application Layer Functionality and Protocols

46

HTTPS

HTTPS (Hypertext Transfer Protocol over Secure Socket Layer) is a URL scheme used to indicate a secure HTTP connection.

HTTPS is not a separate protocol combination of a normal HTTP interaction over an encrypted:

Secure Sockets Layer (SSL) or Transport Layer Security (TLS) connection

Page 47: Chapter 3 Application Layer Functionality and Protocols

47

FTP (File Transfer Protocol)

FTP was developed to allow for file transfers between a client and a server.

Used to push and pull files from a server running the FTP daemon (FTPd).

RFC 959

FTP Client

FTP Server

Page 48: Chapter 3 Application Layer Functionality and Protocols

48

Client initiates a TCP control connection with FTP server using port 21. This connection remains open until the user quits the FTP application. TCP port 21 connection includes:

Username and password is sent over TCP port 21. Remote directory changes

This state information significantly reduces total number of sessions on server.

For each file transferred, TCP opens and closes a TCP data connection on port 20.

More later on TCP ports and connections.

TCP data connection port 20

TCP control connection port 21

Username and password

Change directory on Server

Copy file from client to server – Connection Closed

TCP data connection port 20

Copy file from server to client – Connection Closed

TCP control connection port 21

Quit FTP Application – Connection Closed

FTP (File Transfer Protocol) - FYI

Page 49: Chapter 3 Application Layer Functionality and Protocols

49

SMTP – Simple Mail Transfer Protocol

Email – One of the killer applications of the Internet.

Page 50: Chapter 3 Application Layer Functionality and Protocols

50

Internet mail involves: User agents

Allows users to read, reply, compose, forward, save, etc., mail messages GUI user agents: Outlook, Eudora, Messenger Text user agents: mail, pine, elm

Mail servers Stores user mail boxes, communicates with local user agents and other

mail servers. SMTP

Principle application layer protocol for Internet mail Sent over TCP

Mail access protocols: POP3, IMAP, HTTP

SMTPSMTP

POP3 IMAP

User agent User agentMail server Mail server

SMTP – Simple Mail Transfer Protocol

Page 51: Chapter 3 Application Layer Functionality and Protocols

51

SMTP RFC 2821 Transfers messages from sender’s mail server to recipient’s mail

server Push protocol, not a pull protocol

Push (from client to server or server to server) Pull (from server to client)

Retrieving email Historically, users would log into local mail server to read mail. Since early 1990’s, clients use mail access protocols:

POP3 IMAP HTTP

SMTPSMTP

POP3 IMAP

User agent User agentMail server Mail server

SMTP – Simple Mail Transfer Protocol

Page 52: Chapter 3 Application Layer Functionality and Protocols

52

SMTP – Simple Mail Transfer Protocol

POP3 (Post Office Protocol) RFC 1939 Limited functionality Uses TCP port 110 Download-and-delete mode

Retrieves messages on server and store the locally Delete messages on server

Download-and-keep mode Does not delete messages on server when retrieved.

Problem Difficult to access email from multiple computers – work and home. Some email may have already been downloaded on another

computer (work) – download-and-delete To read email from another computer, must leave on server –

download-and-keep Does not provide means for user to create remote folders on mail

server

Page 53: Chapter 3 Application Layer Functionality and Protocols

53

IMAP (Internet Message Access Protocol) RFC 2060 Mail not downloaded, but kept on server Received email is associated with user’s INBOX Users can create and manage remote folders Users can retrieve portions of the email:

Message header: Subject line and Sender

Web-based email Introduced with Hotmail in mid-1990’s Communicates with remote mailbox using HTTP HTTP is used to push (client to server) and pull the email (server to

client)

SMTP

IMAP HTTP

User agent User agentMail server Mail server

SMTP – Simple Mail Transfer Protocol

SMTP

Page 54: Chapter 3 Application Layer Functionality and Protocols

54

SMTP

Mail software, processes used: MTA and MDA MUA (Mail User Agent) – Email client software. MTA (Mail Transfer Agent) – Software using SMTP that governs transfer

of email between mail servers. Includes UNIX sendmail, Microsoft Exchange Server, Postfix, and Exim

MDA (Mail Delivery Agent) – Software that governs transfer of email from mail servers to clients. On Unix systems, procmail and maildrop are the most popular MDAs.

MTA receives email from the

client's MUA passes email to the MDA

for final delivery uses SMTP to route email

between servers

Page 55: Chapter 3 Application Layer Functionality and Protocols

55

Telnet

Telnet provides a standard method of emulating text-based terminal devices over the data network.

Server

Telnet Telnet

Page 56: Chapter 3 Application Layer Functionality and Protocols

56

Telnet

Allows a user to remotely access another device (host, router, switch). Connection called a Virtual Terminal (VTY) session.

Telnet clients: Putty Teraterm Hyperterm

Server

TelnetTelnet

Page 57: Chapter 3 Application Layer Functionality and Protocols

57

Telnet

Supports user authentication, Does not encrypt data. Secure Shell (SSH) protocol offers an alternate and secure method for

server access. Stronger authentication Encrypts data

Page 58: Chapter 3 Application Layer Functionality and Protocols

58

DHCP – Dynamic Host Configuration Protocol

IP addresses and other information can be obtained: Statically Dynamically (DHCP)

Page 59: Chapter 3 Application Layer Functionality and Protocols

59

DHCP

DHCP Information can include: IP address Subnet mask Default gateway Domain name DNS Server

DHCP servers can be: Server on LAN Router Server at ISP

Page 60: Chapter 3 Application Layer Functionality and Protocols

60

DHCP

We will discuss DHCP more when we discuss IPv4.

Page 61: Chapter 3 Application Layer Functionality and Protocols

61

DNS – Domain Name System

DNS allows users (software) to use domain names instead of IP addresses

Page 62: Chapter 3 Application Layer Functionality and Protocols

62

Name Resolution

FYI

Resolver DNS client programs used to look up DNS name information. Name Resolution The two types of queries that a DNS resolver (either a DNS client or another

DNS server) can make to a DNS server are the following:Recursive queries Queries performed by Host to Local DNS ServerIterative queries Queries performed Local DNS server to other servers

Need the IP address

Page 63: Chapter 3 Application Layer Functionality and Protocols

63

DNS Name Resolution

User types http://www.example.com

Step 1. The DNS resolver on the DNS client sends a recursive query to its

configured Local DNS server. The DNS server for that client is responsible for resolving the name

Cannot refer the DNS client to another DNS server.

1

Page 64: Chapter 3 Application Layer Functionality and Protocols

64

Step 2. Local DNS Server forwards the query to a Root DNS server.

Step 3. Root DNS server

Makes note of .com suffix Returns a list of IP addresses for TLD (Top Level Domain Servers)

responsible for .com.

DNS Name Resolution

1

2 23

Page 65: Chapter 3 Application Layer Functionality and Protocols

65

DNS Name Resolution

Root DNS Servers There are 13 Root DNS servers (labeled A through M) http://www.root-servers.org/map/

TLD Servers Responsible for domains such as .com, edu, org, .net, .uk, jp, fr Network Solutions maintains TLD servers for .com Educause maintains TLD servers for .edu There are redundant servers throughout the world. http://www.isoc.org/briefings/019/ http://www.cisco.com/web/about/ac123/ac147/archived_issues/ipj_10-1/101_dns-infrastruct

ure.html

Page 66: Chapter 3 Application Layer Functionality and Protocols

66

Step 4. The local DNS server sends query for www.example.com to one of the

TLD servers.

Step 5. TLD Server

Makes note of example.com Returns IP address for authoritative server example.com (such as

dns.example.com server)

DNS Name Resolution4 4

5

Page 67: Chapter 3 Application Layer Functionality and Protocols

67

Step 6. Local DNS server sends query for www.example.com directly to DNS

server for example.com

Step 7. example.com DNS server responds with its IP address for

www.example.com

6

6

DNS Name Resolution

7

Page 68: Chapter 3 Application Layer Functionality and Protocols

68

Step 8. Local DNS server sends the IP address of www.example.com to the DNS

client.

DNS Caching When a DNS server receives a DNS reply (mapping hostname to an IP

address) it can cache the information in its local memory. DNS servers discard cached information after a period of time (usually 2

days) A local DNS server can cache TLD server addresses, bypassing the root

DNS servers in the query chain.

8

7

DNS Name Resolution

Page 69: Chapter 3 Application Layer Functionality and Protocols

69

DNS Name Resolution

In the worst cases, you'll get a dialog box that says the domain name doesn't exist - even though you know it does.

This happens because the authoritative server is slow replying to the first, and your computer gets tired of waiting so it times-out (drops the connection) or the domain name does not exist.

But if you try again, there's a good chance it will work, because the authoritative server has had enough time to reply, and your name server has stored the information in its cache.

Page 70: Chapter 3 Application Layer Functionality and Protocols

70

nslookup

nslookup Displays default DNS server for your host Can be used to query a domain name and get the IP address

Page 71: Chapter 3 Application Layer Functionality and Protocols

71

DNS Name Resolution

ipconfig /displaydns After a certain amount of time, specified in the Time to Live (TTL)

associated with the DNS resource record, the resolver discards the record from the cache.

ipconfig /flushdns – Manually deletes entries The default TTL for positive responses is 86,400 seconds (1 day). The default TTL for negative responses is 300 seconds.

Page 72: Chapter 3 Application Layer Functionality and Protocols

72

(Missing Info) DNS: 204.127.199.8

Page 73: Chapter 3 Application Layer Functionality and Protocols

73

Page 74: Chapter 3 Application Layer Functionality and Protocols

74

Page 75: Chapter 3 Application Layer Functionality and Protocols

75

Page 76: Chapter 3 Application Layer Functionality and Protocols

76

SMB and P2P - FYI

End devices (peers) can function as either a server or client.

Page 77: Chapter 3 Application Layer Functionality and Protocols

77

SMB – Server Message Block Protocol

The Server Message Block (SMB) is a client/server file sharing protocol. IBM developed Server Message Block (SMB) in the late 1980s to describe the structure of shared network resources, such as directories, files, printers, and serial ports.

Page 78: Chapter 3 Application Layer Functionality and Protocols

78

SMB

Request-response protocol . Unlike FTP, clients establish a long term connection to servers. Client can access the resources on the server as if the resource is local to

the client host. SMB is sent over TCP

Prior to Windows 2000 windows used a proprietary protocol (NETBIOS) to send SMB.

Linux/UNIX have similar protocol: SAMBA

Page 79: Chapter 3 Application Layer Functionality and Protocols

79

SMB

SMB messages can: Start, authenticate, and terminate sessions Control file and printer access Allow an application to send or receive messages to or from another

device

Page 80: Chapter 3 Application Layer Functionality and Protocols

80

Peer-to-Peer (P2P) Networking and Applications

In addition to the client/server model for networking, there is also a peer-to-peer model.

Two or more computers are connected via a network and can share resources (such as printers and files) without having a dedicated server.

End devices (peers) can function as either a server or client.

Page 81: Chapter 3 Application Layer Functionality and Protocols

81

P2P File Sharing

P2P (Peer-to-Peer) file sharing accounts for more traffic on the Internet than any other application (2004).

Peers (hosts) act as both clients and servers. No centralized file server. HTTP GET and responses are commonly used.

Page 82: Chapter 3 Application Layer Functionality and Protocols

82

By Peter SvenssonThe Associated PressOct. 19, 2007“Peer-to-peer applications account for between 50 percent and 90

percent of overall Internet traffic, according to a survey this year by ipoque GmbH, a German vendor of traffic-management equipment.”

Page 83: Chapter 3 Application Layer Functionality and Protocols

83

Challenge with P2P – locating content across thousands or millions of peers.

One solution – centralized directory Approach done by Napster

Problems (non-legal problems) Single point of failure Performance bottlenecks

1 – Inform and Update

Centralized Directory Server

P2P – Centralized Directory

1 – Inform and Update

1 – Inform and Update

1 – Inform and Update

Peer

Peer

Peer

Peer

2 – Query for content

3 – File Transfer

Napster

Page 84: Chapter 3 Application Layer Functionality and Protocols

84

1. Peer A starts P2P application

2. Informs centralized directory server of its: IP address Names of objects making available for sharing (MP3, videos, etc.)

3. Directory server collects information from each peer that becomes active. Dynamic database Maps IP addresses with object names

4. Peer A queries directory server for IP addresses of other peers for specific content Directory Server returns IP addresses for those peers (Peer B)

5. Peer A establishes TCP connection and downloads file (i.e. HTTP GET) from other peer, Peer B.

6. Directory server removes Peer from database when Peer closes application or disconnects from Internet (periodic messages – pings – from server).

1 – Inform and Update

Centralized Directory Server

P2P – Centralized Directory

1 – Inform and Update

1 – Inform and Update

1 – Inform and Update

Peer

Peer B

Peer

Peer A

2 – Query for content

3 – File Transfer

Page 85: Chapter 3 Application Layer Functionality and Protocols

85

Gnutella – public domain file sharing application Fully distributed approach

No centralized server Gnutella peer maintains peering relationship (TCP connection – later) which

a number of other peers (usually fewer than 10).

P2P – Query Flooding

Peer A

Peer CPeer B

Peer D Peer E

Peer F

Query

Query

Query

QueryQuery

Query hit

Query hit

Query hitFile transfer

Gnutella

Page 86: Chapter 3 Application Layer Functionality and Protocols

86

Peer A searches for a file

1. Peer A sends query to all neighboring peers.

2. If neighboring peer does not have file, forwards query to all its neighboring peers

3. If any peer has the file it returns a query hit message.

4. Peer A selects a peer, Peer C, to retrieve file (HTTP GET)

5. A direct TCP connection is made with selected peer, Peer C.

6. HTTP response is used to send file.

Query Flooding Non-scalable and causes a significant amount of traffic on Internet. Gnutella modified it to limited-scope flooding which limits how many peers

away the query is sent to, usually 7 to 10. (similar to TTL – later).

Peer A

Peer CPeer B

Peer D

P2P – Query Flooding

Peer E

Peer F

Query

Query

Query

QueryQuery

Query hit

Query hit

Query hitFile transfer

Page 87: Chapter 3 Application Layer Functionality and Protocols

87

How a peer joins and departs Gnutella network

1. Finding peers: Bootstrap program: Client maintains a list of peer IP addresses who are

usually up Contact Gnutella site that maintains a list

2. Client attempts to make contact with peers (TCP connection – later)

3. Client sends Gnutella ping message to peer. Forwards Gnutella ping to other peers, who continue to forward ping

until limited-scope is reached.

4. Each peer returns a Gnutella pong message including: Its IP address Number of files it is sharing Total size of the files

Peer A

Peer CPeer B

Peer D

P2P – Query Flooding

Peer E

Peer F

Query

Query

Query

QueryQuery

Query hit

Query hit

Query hitFile transfer

Page 88: Chapter 3 Application Layer Functionality and Protocols

88

Kazaa combines ideas from Napster and Gnutella 2004 – Contributed to more traffic on Internet than any other application 2007 – Bittorrent became the leading application Proprietary technology

P2P - Combination

Kazaa

Page 89: Chapter 3 Application Layer Functionality and Protocols

89

Kazaa does not use a centralized server Group leader peers (parent)

Higher bandwidth and Internet connectivity Greater Gnutella responsibilites

Peers (child) – non-group leaders Child peer establishes TCP connection with a group leader Group leader:

maintains database directory of child peers including their IP addresses maintain TCP connections with other group leaders

Child peers query group leaders who forward the query to other group leaders Child peer selects peer for TCP connection and file transfer

P2P - Combination

Group Leader

Group Leader

Group Leader

Query

Query

Query

Query Reply

File Transfer

Page 90: Chapter 3 Application Layer Functionality and Protocols

Chapter 3Application Layer Functionality and Protocols

CIS 81 Networking Fundamentals

Rick Graziani

Cabrillo College

[email protected]