You are on page 1of 117

Protocolos y funcionalidad de la capa de Aplicacin

Modificado por: Ing. Emerson Carranza Milla

2007 Cisco Systems, Inc. Todos los derechos reservados.

Cisco Public

Funcionalidad de la Capa de Aplicacin y Protocolos

Introduccin

Para los profesionales de redes es importante conocer cmo una aplicacin puede formatear, transmitir e interpretar mensajes que se envan y reciben a travs de la red. La visualizacin de los mecanismos que permiten la comunicacin a travs de la red se hace ms sencilla si utilizamos el marco en capas del modelo Interconexin de sistema abierto (OSI). En este captulo, se enfatiza el rol de la capa de Aplicacin y sus componentes: aplicaciones, servicios y protocolos.

Objetivos
En este captulo se aprender a: Describir cmo las funciones de las tres capas superiores del modelo OSI proporcionan servicios de red a las aplicaciones de usuario final. Describir cmo los protocolos de la capa de aplicacin TCP/IP proporcionan los servicios especificados por las capas superiores del modelo OSI. Definir cmo la gente utiliza la capa de aplicacin para comunicarse a travs de la red de informacin. Describir la funcin de las conocidas aplicaciones TCP/IP, como la World Wide Web y el correo electrnico, y sus servicios relacionados (HTTP, DNS, SMB, DHCP, SMTP/POP y Telnet). Describir los procesos para compartir archivos que utilizan las aplicaciones entre pares y el protocolo Gnutella. Explicar cmo los protocolos garantizan que los servicios que se ejecutan en una clase de dispositivo puedan enviar y recibir datos desde y hacia muchos dispositivos de red diferentes. Utilizar herramientas de anlisis de red para examinar y explicar cmo funcionan las aplicaciones comunes de usuarios.

Aplicaciones: Interfaces entre las Redes

Capa de Aplicacin: Modelo OSI y TCP/IP

En este modelo, la informacin se pasa de una capa a otra, comenzando en la capa de Aplicacin en el host de transmisin, siguiendo por la jerarqua hacia la capa Fsica, pasando por el canal de comunicaciones al host de destino, donde la informacin vuelve a la jerarqua y termina en la capa de Aplicacin

Email

Capa de Aplicacin: Modelos OSI y TCP/IP

HTTP

HTTP

HTTP (www)

Los protocolos e la capa de aplicacin son utilizados para intercambiar los datos entre programas que se ejecutan en los hosts origen y destino. Existen muchos protocolos de la capa de aplicacin y nuevos protocolos estn siempre en desarrollo.
7

Capa de Aplicacin: Modelos OSI y TCP/IP

La funcionalidad de los protocolos de la capa de aplicacin TCP/IP caben dentro del marco de las tres capas superiores del modelo OSI: Aplicacin, Presentacin y Sesin. Inicialmente, los protocolos de la capa de aplicacin TCP/IP fueron desarrollados antes de la aparicin de: computadoras personales, interfaces grficas de usuario y objetos multimedia. Estos protocolos implementaron muy poco de la funcionalidad que es especificada en las capas de sesin y persentacin del modelo OSI.
8

La Capa de Presentacin

La capa de presentacin tiene tres funciones principales: Codificacin y conversin de la data de la capa de aplicacin para asegurar que los datos del dispositivo origen puedan ser interpretados por el dispositivo destino. Encriptacin de la data a ser transmitida y desencriptacin al ser recibida por el dispositivo destino. Formatos de compresin y codificacin:

Graphics Interchange Format (GIF) Joint Photographic Experts Group (JPEG) Tagged Image File Format (TIFF).
9

La Capa de Sesin

Crea y mantiene dilogos entre aplicaciones origen y destino. Maneja el intercambio de informacin, para: Iniciar dilogos Mantenerlos activos Reiniciar sesiones que se interrumpen o desactivan durante un largo perodo de tiempo La mayora de las aplicaciones, similares a web browsers o clientes e-mail, incorporan funcionalidad de las capas 5, 6 y 7 del modelo OSI.
10

Nivel de Aplicacin: Modelos OSI y TCP/IP


Nota: Normalmente, un nico servidor puede funcionar como un servidor para mltiples aplicaciones

Protocolos Comunes TCP/IP Domain Name Service Protocol (DNS): es utilizado para resolver nombres Internet a direcciones IP. Hypertext Transfer Protocol (HTTP): es utilizado para tranferencia de archivos que componen las pginas web de la World Wide Web. Simple Mail Transfer Protocol (SMTP): es utilizado para la transferencia de mensajes y archivos adjuntos. Telnet: protocolo de emulacin de terminal, es utilizado para proveer acceso remoto a servidores y dispositivos de red. File Transfer Protocol (FTP): es utilizado para transferencia interactiva de archivos entre sistemas. 11

Peticin de Comenntarios (RFCs: Request for Comments)

Los protocolos de la suite TCP/IP estn generalmente definidas por Requests for Comments (RFCs). Mantenidos por IETF (Internet Engineering Task Force) Existen unos cuantos para entretenerse en: ftp://ftp.rfc-editor.org/innotes/rfc1882.txt.

12

Software de la capa de Aplicacin


En la capa de aplicacin, existen 2 formas de programas de software o procesos que proveen acceso a la red: Aplicaciones Servicios

Aplicaciones de usuario

Servicios

Operaciones del sistema

Aplicaciones reconocidas por la red Son programas de software que utiliza la gente para comunicarse a travs de la red. Estas aplicaciones de usuario final implementan los protocolos de la capa de aplicacin y pueden comunicarse directamente con las capas inferiores del stack de protocolos. Ejemplos: Los clientes de correo electrnico y los exploradores Web. 13

Software de la capa de Aplicacin

Aplicaciones de usuario

Servicios

Operaciones del sistema

Servicios de la capa de aplicacin Otros programas pueden necesitar la ayuda de los servicios de la capa de Aplicacin para utilizar los recursos de la red, tales como: transferencia de archivos o cola de impresin en red. Estos servicios son los programas que se comunican con la red y preparan los datos para la transferencia.
14

Software de la capa de Aplicacin

La capa de Aplicacin utiliza protocolos que son implementados dentro de las aplicaciones y servicios. Aplicaciones: proveen al usuario una forma de crear mensajes. Servicios: establecen una interfaz a la red. Protocolos: proveen las reglas y formatos que gobiernan el modo en que los datos son tratados. Cuando se discute la aplicacin "Telnet" se puede hacer referencia a la aplicacin, al servicio o al protocolo.
15

Aplicaciones del Usuario, Servicios y Protocolos de la Capa de Aplicacin

Los protocolos de la capa de aplicacin especifican: Los mensajes que se intercambian entre los host origen y destino Sintaxis de los comandos de control Tipo y formato de los datos que se transmiten Mtodos adecuados para notificacin y recuperacin de errores.

16

Funciones del Protocolo de la Capa de Aplicacin

Los protocolos de la capa de aplicacin son utilizados por los dispositivos fuente y destino durante una sesin de comunicacin. Tanto la fuente como el destino deben disponer del mismo conjunto de protocolos. Protocolos: Establecen reglas consistentes para el intercambio de datos. Especifican la estructura y tipo de mensajes que se intercambian. Tipos de mensajes: Solicitud, respuesta, acuse de recibo, mensaje de error, etc. Definen los dilogos, garantizando transmisiones con respuestas esperadas y 17 con el correcto servicio de invocacin.

Funciones del Protocolo de la Capa de Aplicacin

Aplicaciones y servicios pueden usar mltiples protocolos. Encapsula el protocolo o es encapsulado por este protocolo Invoca otros protocolos Utilizando un web browser (HTTP): Se puede invocar: DNS, ARP, ICMP Se puede usar: TCP, UDP, Ethernet, PPP Uso: IP

18

Aplicaciones y Servicios

19

Modelo Cliente Servidor

Cliente: dispositivo que solicita la informacin Servidor: dispositivo que responde a la solicitud. El cliente empieza el intercambio solicitando datos al servidor. El Servidor responde enviando datos al cliente. En suma, la transferencia de datos puede tambien requerir informacin de control, tales como: Autenticacin de usuario Identificacin de la data a ser tranferida

20

Servidores

Un servidor generalmente es una computadora que contiene informacin para ser compartida con muchos sistemas cliente: Web server Email server File or database server Applications server Algunos servidores pueden requerir de autenticacin de la informacin de cuenta del usuario para verificar si el usuario tiene permiso para acceder a los datos solicitados o para utilizar una operacin en particular. Si se solicita subir datos al servidor FTP, se puede obtener permiso para escribir una carpeta personal pero no para leer otros archivos del sitio. 21

Servidores

El servidor ejecuta un servicio o proceso, a veces denominado daemon de servidor.. Al igual que la mayora de los servicios, los daemons generalmente se ejecutan en segundo plano y no se encuentran bajo control directo del usuario. Los daemons se describen como servidores que "escuchan" una solicitud del cliente, porque estn programados para responder cada vez que recibe una solicitud para el servicio proporcionado por el daemon Cuando un daemon "escucha" una solicitud de un cliente, intercambia los mensajes adecuados con el cliente, segn lo requerido por su protocolo, y procede a enviar los datos solicitados al cliente en el formato correspondiente.
22

Protocolos y Servicios de la Capa de Aplicacin

Una nica aplicacin puede emplear diferentes servicios de la capa de Aplicacin Un servicio puede tener muchas solicitudes Para cada solicitud, pueden ejecutarse mltiples procesos. Los servicios y procesos de capa de Aplicacin dependen del soporte de las funciones de la 23 capa inferior para administrar en forma exitosa las mltiples conversaciones.

Redes y Aplicaciones entre Pares: Peer to Peer

Modelo Punto a Punto Las redes punto a punto tienen dos formas distintivas: Diseo de redes punto a punto Aplicaciones punto a punto (P2P). Redes entre pares Dos o ms computadoras estn conectadas a travs de una red y pueden compartir recursos sin tener un servidor dedicado. Cada dispositivo final conectado (conocido como punto) puede funcionar como un servidor o como un cliente. 24

Redes y Aplicaciones entre Pares: Peer to Peer

Aplicaciones punto a punto Una aplicacin punto a punto (P2P), permite a un dispositivo actuar como cliente o como servidor dentro de la misma comunicacin. En este modelo, cada cliente es un servidor y cada servidor es un cliente. Ambos pueden iniciar una comunicacin y se consideran iguales en el proceso. Las aplicaciones punto a punto pueden utilizarse en las redes punto a punto, en redes cliente/servidor y en Internet.

25

Servicios y Protocolos de la Capa de Aplicacin

26

Protocolo y Servicios DNS


Nmeros de Puerto Los nmeros de puerto identifican las aplicaciones y los servicios de la capa de Aplicacin que son los datos de origen y destino. Algunos de estos servicios con puertos predefinidos son: Sistema de nombres de dominio (DNS): puerto TCP/UDP 53. Protocolo de transferencia de hipertexto (HTTP: Hypertext Transfer Protocol): puerto TCP 80. Protocolo simple de transferencia de correo (SMTP: Simple Mail Transfer Protocol): puerto TCP 25. Protocolo de oficina de correos (POP): puerto UDP 110. Telnet: puerto TCP 23. Protocolo de configuracin dinmica de host (DHCP): puerto UDP 67. Protocolo de transferencia de archivos (FTP: File Transfer Protocol): puertos TCP 20 y 21.

27

Protocolo y Servicios DNS

Protocolo DNS Define un servicio automatizado que coincide con nombres de recursos que tienen la direccin de red numrica solicitada. Incluye las consultas sobre formato, las respuestas y los formatos de datos. Las comunicaciones del protocolo DNS utilizan un formato simple llamado mensaje. Este formato de mensaje se utiliza para todos los tipos de solicitudes de clientes y respuestas del servidor, mensajes de error y para la transferencia de informacin de registro de recursos 28 entre servidores.

Protocolo y Servicios DNS

Al configurar un dispositivo de red, generalmente proporcionamos una o ms direcciones del servidor DNS que el cliente DNS puede utilizar para la resolucin de nombres. Los sistemas operativos informticos tambin tienen una utilidad denominada nslookup que permite al usuario consultar manualmente los servidores de nombre para resolver un determinado nombre de host. 29

Protocolo y Servicios DNS

Un servidor DNS proporciona la resolucin de nombres utilizando el daemon de nombre que generalmente se llama named Cuando un cliente realiza una consulta, el proceso "named" del servidor primero observa en sus propios registros para ver si puede resolver el nombre. Si no puede resolver el nombre 30 utilizando los registros almacenados, contacta a otros servidores para hacerlo.

Protocolo y Servicios DNS

El sistema de nombres de dominio utiliza un sistema jerrquico para crear una base de datos para proporcionar una resolucin de nombres

31

Servicio WWW y HTTP

Cuando se escribe una direccin Web (URL: localizador uniforme de recursos) en un explorador de Internet, el explorador establece una conexin con el servicio Web del servidor 32 que utiliza el protocolo HTTP

Servicio WWW y HTTP

HTTP especifica un protocolo de solicitud/respuesta. Cuando un cliente, generalmente un explorador Web, enva un mensaje de solicitud a un servidor, el protocolo HTTP define los tipos de mensajes que el cliente utiliza para solicitar la pgina Web y enva los tipos de mensajes que el servidor utiliza para responder.
Los tres tipos de mensajes ms comunes son GET, POST y PUT.

GET es una solicitud de datos del cliente POST y PUT se utilizan para enviar mensajes que cargan los datos al servidor Web.

33

Servicios E_mail y Protocolos SMTP/POP

Cuando una persona escribe mensajes de correo electrnico, generalmente utiliza una aplicacin denominada Agente de usuario de correo (MUA) Para recibir e-mails desde un servidor de e-mail, el cliente de correo electrnico puede utilizar un POP. Al enviar un e-mail desde un cliente o un servidor, se utilizan formatos de mensajes y cadenas 34 de comando definidas por el protocolo SMTP.

Servicios E_mail y Protocolos SMTP/POP

Procesos del servidor e-mail: MTA y MDA El servidor de e-mail ejecuta dos procesos individuales: Agente de transferencia de correo (MTA, Mail Transfer Agent). Agente de entrega de correo (MDA, Mail Delivery Agent). Si el correo est dirigido a un usuario cuyo buzn est en el servidor local, el correo se pasa al MDA. Si el correo es para un usuario que no est en el servidor local, el MTA enruta el e-mail al MTA 35 en el servidor correspondiente.

Servicios E_mail y Protocolos SMTP/POP

El cliente puede estar conectado a un sistema de e-mails corporativo, como Lotus Notes de IBM, Groupwise de Novell o Microsoft Exchange. Estos sistemas a veces tienen su propio formato interno de correo electrnico y sus clientes generalmente se comunican con el servidor de correo electrnico a travs de un protocolo 36 propietario.

Servicios E_mail y Protocolos SMTP/POP

Algunos de los comandos especificados en el protocolo SMTP son: HELO: identifica el proceso de cliente SMTP para el proceso de servidor SMTP. EHLO: es la versin ms nueva de HELO, que incluye extensiones de servicios, y MAIL FROM: identifica al emisor. RCPT TO: identifica al receptor, y DATA: identifica el cuerpo del mensaje.

37

FTP

Un cliente FTP es una aplicacin que se ejecuta en una computadora y se utiliza para cargar y descargar archivos desde un servidor que ejecuta el daemon FTP (FTPd). Para transferir los archivos en forma exitosa, FTP requiere de dos conexiones entre cliente y servidor: una para comandos y respuestas, otra para la transferencia real de archivos. El cliente establece la primera conexin con el servidor en TCP puerto 21: Esta conexin se utiliza para controlar el trfico, que consiste en comandos del cliente y respuestas del servidor. El cliente establece la segunda conexin con el servidor en TCP puerto 20: Esta conexin es 38 para la transferencia real de archivos y se crea cada vez que se transfiere un archivo.

DHCP

Este servicio automatiza la asignacin de direcciones IP, mscaras de subred, gateways y otros parmetros de redes IP. DHCP permite a un host obtener una direccin IP en forma dinmica cuando se conecta a la red. Se realiza el contacto con el servidor de DHCP y se solicita una direccin. El servidor DHCP elije una direccin de un rango configurado de direcciones denominado 39 "pool" y se la asigna al host por un perodo establecido.

DHCP

El servidor DHCP mantiene un pool de las direcciones IP y alquila una direccin a cualquier cliente habilitado por DHCP cuando el cliente est activado. Mensajes tpicos: DHCP Discovery ACK DHCP DHCP Request 40 NACK DHCP

Protocolo SMB y Servicios para Compartir Archivos

El Bloque de mensajes del servidor (SMB) es un protocolo cliente-servidor para compartir archivos A diferencia del protocolo para compartir archivos respaldado por FTP, los clientes establecen una conexin a largo plazo con los servidores. Una vez establecida la conexin, el usuario del cliente puede acceder a los recursos en el servidor como si el recurso fuera local para el host del cliente. 41

Protocolo SMB y Servicios para Compartir Archivos

Los mensajes SMB pueden: Iniciar, autenticar y terminar sesiones Controlar el acceso a archivos e impresoras Permitir a una aplicacin enviar o recibir mensajes hacia o desde otro dispositivo
42

Protocolo y Servicios Telnet

Una conexin que utiliza Telnet se llama Sesin o conexin de terminal virtual (VTY). En lugar de utilizar un dispositivo fsico para conectar al servidor, Telnet utiliza software para crear un dispositivo virtual que proporciona las mismas funciones que una sesin terminal con acceso a la Interfaz de lnea de comandos (CLI) del servidor. 43

Protocolo y Servicios Telnet

Algunos de los comandos del protocolo Telnet de muestra son: Are You There (AYT): Permite al usuario solicitar que aparezca algo en la pantalla del terminal para indiciar que la sesin VTY est activa. Erase Line (EL): Elimina todo el texto de la lnea actual. Interrupt Process (IP): Suspende, interrumpe, aborta o termina el proceso al cual se conect la terminal virtual. 44

Protocolo Gnutella y Servicios P2P

Con las aplicaciones P2P basadas en el protocolo Gnutella, las personas pueden colocar archivos en sus discos rgidos para que otros los descarguen. El software del cliente compatible con Gnutella permite a los usuarios conectarse con los servicios Gnutella en Internet, ubicarlos y acceder a los recursos compartidos por otros pares Gnutella. Muchas aplicaciones del cliente estn disponibles para acceder en la red Gnutella, entre ellas: 45 BearShare, Gnucleus, LimeWire, Morpheus, WinMX y XoloX

Protocolo Gnutella y Servicios P2P

El protocolo Gnutella define cinco tipos de paquetes diferentes: ping: para descubrir un dispositivo, pong: como respuesta a un ping, consulta: para ubicar un archivo, query hit: como respuesta a una consulta, y push: como una solicitud de descarga.

46

Application Layer Services and Protocols

Servers typically have multiple clients requesting information at the same time. For example, a Telnet server may have many clients requesting connections to it. These individual client requests must be handled simultaneously and separately for the network to succeed. The Application layer processes and services rely on support from lower layer functions to successfully manage the multiple conversations.
47

Application Layer Protocols

HTTP (WWW)
We will examine HTTP in detail.

DHCP (IP address resolution)

FTP (file transfer)

DNS (domain name resolution)

SMTP (email)

SMB (file sharing)

Telnet (remote login)

P2P (file sharing)

49

Reminder of encapsulation/decapsulation
Data Link Header IP Header TCP Header HTTP Header

Data

Data Link Trailer

Data Link Header

IP Packet

Data Link Trailer

Data Link Header

IP Packet

Data Link Trailer

Data Link Header

IP Packet

Data Link Trailer

Data Link Header

IP Header

TCP Header

HTTP Header

Data

Data Link Trailer

50

Focus on Application Header and/or Data


HTTP

HTTP

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.

51

HTTP (HyperText Transfer Protocol)


HTTP HTTP Server HTTP Client HTTP

HTTP The Webs application layer protocol. RFC 1945 and RFC 2616 Implemented in: Client program Server program Current version: HTTP/1.1 Encapsulated in TCP (more later)
52

HTTP (HyperText Transfer Protocol)


<head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Rick Graziani, Cabrillo College</title><style type="text/css"> <!-body { The base HTML file references other objects margin-left: 0px; in the page. margin-top: 0px; margin-right: 0px; margin-bottom: 0px;

Web page (also called a html document) Web page consists of objects Objects (examples): HTML file JPEG image GIF image JAVA applet Audio file
53

Web Browser - Client

HTTP Client

Browser The user agent for the Web. Displays requested Web page and provides navigational and configuration features. 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).

54

Web Server

HTTP Server

Web Server Stores web objects, each addressable by a URL. Implement the server side of HTTP. Examples: Apache Microsoft Internet Information Server
55

HTTP Request Message


GET /~rgraziani/ HTTP/1.1 Some data omitted for brevity 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 Server HTTP Client Request Message Request line Header lines ASCII Text Request line: Method field GET, POST and HEAD The great majority of Requests are GETs

56

HTTP Request Message


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

Request Line GET /~rgraziani/ HTTP/1.1

- Browser/client is requesting an object - Browser is requesting this object in this


directory (default is index.html) - Browser implements the HTTP/1.1 (1.1 is

backwards compatible with 1.0)


Note: HTTP GET is also used by some P2P applications like Gnutella and Bittorrent.
57

HTTP Request Message


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

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 - Similar to a GET, but the server will responds with a HTTP message but leaves out the requested object. - Used with Web publishing tools, upload objects. - Used with Web publishing tools, delete objects.

HEAD: PUT: DELETE:

58

HTTP Request Message


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

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)
59

HTTP Response Message


HTTP/1.1 200 OK Date: Fri, 22 Feb 2008 16:34:18 GMT Server: Apache/2.0.52 (Red Hat) Last-Modified: Thu, 15 Nov 2007 19:33:12 GMT Content-Length: 15137 Connection: close Content-Type: text/html Some data omitted for brevity

<!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 Server HTTP Client

60

HTTP Response Message


HTTP/1.1 200 OK Date: Fri, 22 Feb 2008 16:34:18 GMT Server: Apache/2.0.52 (Red Hat) Last-Modified: Thu, 15 Nov 2007 19:33:12 GMT Content-Length: 15137 Connection: close Content-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

61

HTTP Response Message


HTTP/1.1 200 OK Date: Fri, 22 Feb 2008 16:34:18 GMT Server: Apache/2.0.52 (Red Hat) Last-Modified: Thu, 15 Nov 2007 19:33:12 GMT Content-Length: 15137 Connection: close Content-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 200 OK

Server is using HTTP/1.1 - Status code, request succeeded and information is returned in response

62

HTTP Response Message


HTTP/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.

63

HTTP Response Message


HTTP/1.1 200 OK Date: Fri, 22 Feb 2008 16:34:18 GMT Server: Apache/2.0.52 (Red Hat) Last-Modified: Thu, 15 Nov 2007 19:33:12 GMT Content-Length: 15137 Connection: close Content-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:

Server is using HTTP/1.1 - 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

Content-Type:

sending the requested object. Object in entity body is HTML text

64

HTTP Response Message


HTTP/1.1 200 OK Date: Fri, 22 Feb 2008 16:34:18 GMT Server: Apache/2.0.52 (Red Hat) Last-Modified: Thu, 15 Nov 2007 19:33:12 GMT Content-Length: 15137 Connection: close Content-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

65

HTTP Request and Response Messages


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

HTTP Server

HTTP HTTP Client

HTTP/1.1 200 OK Date: Fri, 22 Feb 2008 16:34:18 GMT Server: Apache/2.0.52 (Red Hat) Last-Modified: Thu, 15 Nov 2007 19:33:12 GMT Content-Length: 15137 Connection: close Content-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">

66

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

67

User-Server Interaction: Cookies


HTTP Requests: GET (first time) HTTP Server HTTP: Response Set-cookie: ID HTTP Requests (GET) now include ID HTTP Client

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

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 clients computer. Each time client/browser accesses web site. The GET includes Cookie: or User_ID or similar with the ID.

68

HTTP Request and Response Messages


GET /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: Cookie 5551212 included

HTTP Server

HTTP data customized for Rick Graziani


HTTP Client

HTTP/1.1 200 OK Date: Fri, 22 Feb 2008 19:00:15 GMT Server: Apache/1.3.34 (Unix) Last-Modified: Fri, 22 Feb 2008 18:51:47 GMT ETag: "760a31-18ce-47bf19c3" Accept-Ranges: bytes Content-Length: 6350 Keep-Alive: timeout=15, max=257 Connection: Keep-Alive Content-Type: text/plain <information omitted>

69

Web Caching
Origin Server
HTTP Request

Web Cache or Proxy Server

HTTP Request HTTP Response

Client

HTTP Response HTTP Request HTTP Request HTTP Response HTTP Response

Orgin Server

Client

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 institutions access link to the ISP (Internet).

70

Web Caching
Origin Server
HTTP Request

Web Cache or Proxy Server

HTTP Request HTTP Response

Client

HTTP Response HTTP Request HTTP Request HTTP Response HTTP Response

Origin Server

Client

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 clients 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).
71

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.

72

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 Ifmodified-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.
73

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

74

FTP (File Transfer Protocol)


FTP Client FTP Server

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). Uses get and put commands. RFC 959

75

FTP (File Transfer Protocol)


TCP control connection port 21
Username and password Change directory on Server

TCP data connection port 20


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

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. 76 More later on TCP ports and connections.

SMTP Simple Mail Transfer Protocol

Email One of the killer applications of the Internet.

77

SMTP Simple Mail Transfer Protocol


User agent SMTP Mail server SMTP POP3 IMAP Mail server User agent

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 78 Mail access protocols: POP3, IMAP, HTTP

SMTP Simple Mail Transfer Protocol


User agent SMTP Mail server SMTP POP3 IMAP Mail server User agent

SMTP RFC 2821 Transfers messages from senders mail server to recipients 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 1990s, clients use mail access protocols: POP3 IMAP HTTP

79

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

80

SMTP Simple Mail Transfer Protocol


User agent SMTP Mail server SMTP IMAP HTTP Mail server User agent

IMAP (Internet Message Access Protocol) RFC 2060 Mail not downloaded, but kept on server Received email is associated with users 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-1990s Communicates with remote mailbox using HTTP HTTP is used to push (client to server) and pull the email (server to client)

81

SMTP
MTA receives email from the client's MUA passes email to the MDA for final delivery uses SMTP to route email between servers

Mail software, processes used: MTA and MDA MUA (Mail User Agent) Email client software. MTA (Mail Transfer Agent) Software 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.

82

Telnet
Telnet Telnet

Server

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

Telnet
Telnet Telnet Server

Allows a user to remotely access another device (host, router, switch). A connection using Telnet is called a Virtual Terminal (VTY) session, or connection. Telnet uses software to create a virtual device that provides the same features of a terminal session with access to the server command line interface (CLI). Telnet clients: Putty Teraterm Hyperterm

84

Telnet

Telnet supports user authentication, but does not encrypt data. All data exchanged during a Telnet sessions is transported as plain text. Secure Shell (SSH) protocol offers an alternate and secure method for server access. Stronger authentication Encrypts data

85

DHCP Dynamic Host Configuration Protocol

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


86

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

87

DHCP
We will discuss DHCP more when we discuss IPv4.

88

DNS Domain Name System

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

89

Name Resolution

Need the IP address

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 Server Iterative queries Queries performed Local DNS server to other servers
90

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. Requests IP address for "www.example.com". The DNS server for that client is responsible for resolving the name Cannot refer the DNS client to another DNS server.

91

DNS Name Resolution

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.

92

DNS Name Resolution

Root DNS Servers There are 13 Root DNS servers (labeled A through M) 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.
93

DNS Name Resolution

4 5

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)
94

DNS Name Resolution


6 6 7

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

95

DNS Name Resolution


8

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.

96

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.

97

nslookup

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

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.
99

(Missing Info) DNS: 204.127.199.8

100

101

102

103

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.

104

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
105

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

106

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.

107

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.

108

By Peter Svensson The Associated Press Oct. 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.

109

P2P Centralized Directory


Centralized Directory Server Peer 1 Inform and Update

Peer Peer 3 File Transfer Peer

Napster

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

110

P2P Centralized Directory


Centralized Directory Server Peer 1 Inform and Update

Peer B Peer 3 File Transfer Peer A

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).

111

P2P Query Flooding


Query

Query Query hit

Peer B

Peer C

Query Peer A Peer D Peer E

Peer F

Gnutella 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).

112

P2P Query Flooding


Query

Query Query hit

Peer B

Peer C

Query Peer A Peer D Peer E

Peer A searches for a file Peer F 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).

113

P2P Query Flooding


Query

Query Query hit

Peer B

Peer C

Query Peer A Peer D Peer E

How a peer joins and departs GnutellaPeer network F 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

114

P2P - Combination

Kazaa

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

115

P2P - Combination
Group Leader Group Leader Group Leader

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 116 Child peer selects peer for TCP connection and file transfer

Chapter 3 Application Layer Functionality and Protocols

You might also like