Nivel de Aplicación - Teoría de la Comunicaciones

Anuncio
Nivel de Aplicación
Teorı́a de la Comunicaciones
12 de Junio de 2012
Aplicaciones
Las aplicaciones necesitan sus propios
protocolos.
Estas aplicaciones tienen dos aspectos:
1
2
Por un lado, son Aplicaciones tradicionales. En el sentido en
que interactúan con el sistema operativo y con el usuario.
Por otro lado, son Protocolos de red. En el sentido en que
deben intercambian mensajes (con datos de Control y Usuario).
Nivel de Aplicación - Teorı́a de la Comunicaciones
Aplicaciones
Es importante distinguir entre los programas del
nivel de aplicación y los protocolos del nivel de
aplicación.
HTTP vs Apache, Firefox, wget, . . .
FTP vs Filezilla, lftp, . . .
SMTP vs qmail, Outlook, sendmail, . . .
DNS vs BIND, . . .
BitTorrent vs Transmission, µTorrent . . .
Nivel de Aplicación - Teorı́a de la Comunicaciones
Aplicaciones: World Wide Web
Es la red de contenidos más grande del mundo y
usa internet como su medio fı́sico
El diseño original es de el año 1989, bastante
despues de surgida internet (TCP/IP: 1979)
El objetivo era brindar la posibilidad de
organizar y extraer información, diseñada en
hypertext (markup y links).
Nivel de Aplicación - Teorı́a de la Comunicaciones
Aplicaciones: World Wide Web
Esta red de contenidos, ası́ como la red IP,
también está interconectada por enlaces.
Se puede pensar como un conjunto de servidores
y clientes que intercambian información
hablando el mismo lenguaje: HTTP.
Los puntos de acceso a dicha información son
las URI:
scheme://domain:port/path?query#fragment
Nivel de Aplicación - Teorı́a de la Comunicaciones
HTTP: HyperText Transfer Protocol
Está orientado a cliente-servidor y funciona
mediante un esquema de request-response.
TCP/80
Hay dos versiones: HTTP/1.0 (rfc 1945) y
HTTP/1.1 (rfc 2616)
Plataforma por excelencia de servicios Web
Implementaciones de servidores:
Apache (Apache Foundation)
IIS (Microsoft)
nginx (Igor Sysoev)
GWS (Google)
Resin (Caucho Technology)
lighttpd (lighttpd)
Nivel de Aplicación - Teorı́a de la Comunicaciones
HTTP: Mecanismo
La comunicación en HTTP (1.0) consiste en:
1. Un Cliente establece una conexión TCP con el
Servidor.
2. El Cliente envı́a un Request.
3. El Servidor envı́a un Response.
4. Se cierra la conexión.
5. Se parsea el contenido del recurso y se vuelve a 1
Nivel de Aplicación - Teorı́a de la Comunicaciones
HTTP: Mensajes de Requests
Nivel de Aplicación - Teorı́a de la Comunicaciones
HTTP: Result Codes
Nivel de Aplicación - Teorı́a de la Comunicaciones
HTTP: Ejemplo
Request del cliente
HEAD / HTTP/1.0
Host: www.dc.uba.ar
Response del Servidor
HTTP/1.1 200 OK
Date: Tue, 12 Jun 2012 19:11:44 GMT
Server: Zope/(Zope 2.10.6-final, python 2.4.5, linux2)
ZServer/1.1 Plone/3.1.5.1
Content-Length: 625
Accept-Ranges: none
Last-Modified: Tue, 12 Jun 2012 19:11:44 GMT
Content-Type: text/html
Via: 1.0 www.dc.uba.ar
Vary: Accept-Encoding
Connection: close
Nivel de Aplicación - Teorı́a de la Comunicaciones
HTTP: Formato de Mensajes
START LINE <CRLF>
MESSAGE HEADER
<CRLF>
MESSAGE BODY <CRLF>
Basado en MIME: RFC 822
Donde MESSAGE HEADER son opciones de la
forma: key: value<CRLF>
MESSAGE BODY es contenido ASCII donde no
aparece la secuencia <CRLF>
y <CRLF> es \r \n
Nivel de Aplicación - Teorı́a de la Comunicaciones
HTTP: 1.1
La comunicación en HTTP (1.1) consiste en:
1. Un Cliente establece una conexión TCP con el
Servidor.
2. El Cliente envı́a un Request.
3. El Servidor envı́a un Response.
4. Se parsea el contenido del recurso y se vuelve a 2
5. Se cierra la conexión.
Nivel de Aplicación - Teorı́a de la Comunicaciones
HyperText Transfer Protocol: Headers
Los headers son la piezas fundamentales en una
comunición HTTP y con ellos se pueden
implementar muchos features, que en principio no
son nativos de HTTP.
Caches - Last-Modified o If-Modified-Since
Virtual Hosting - Host
Redirecciones - Location
Autenticaciones - WWW-Authenticate y Authorization
Nivel de Aplicación - Teorı́a de la Comunicaciones
FTP: File Transfer Protocol
Está orientado a cliente-servidor.
Result Codes (1xx, 2xx, 3xx, 4xx, 5xx)
TCP/21 y TCP/20
Usa dos conexiones: Una para comandos de
control y otra para transmitir datos.
Nivel de Aplicación - Teorı́a de la Comunicaciones
File Transfer Protocol: Comandos
USER - Para enviar el nombre de usuario.
PASS - Para enviar la clave.
CWD - Cambiar de directorio.
PASV - Entrar en modo pasivo.
PORT - Para anunciar el puerto en modo activo.
RETR - Para bajar un archivo.
LIST - Para listar los contenidos de un directorio.
QUIT - Para finalizar la conexión.
Nivel de Aplicación - Teorı́a de la Comunicaciones
FTP: Modo Activo
Nivel de Aplicación - Teorı́a de la Comunicaciones
FTP: Modo Pasivo
Nivel de Aplicación - Teorı́a de la Comunicaciones
Descargar