Nivel de Aplicación

Anuncio
Introducción
Correo Electrónico
HTTP
Introducción a Aplicaciones
Capa de Aplicación
Guido Chari
DC - FCEyN - UBA
11 de Junio de 2013
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Menú del dı́a
1
Introducción
Problemática
Objetivos
Diseño
2
Correo Electrónico
Introducción
MIME
Enviar
Recibir
3
HTTP
Introducción
Implementación
Eficiencia
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Problemática
Objetivos
Diseño
¿Qué resuelve la capa de aplicación?
Analogı́a con nivel de red
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Problemática
Objetivos
Diseño
¿Cómo interpretamos el dato que llega?
Definimos un lenguaje común
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Problemática
Objetivos
Diseño
Presentación
¿Qué forma tienen los datos?
Se necesita convenir sobre los tipos de datos (largo de
enteros, endianess, etc.).
Ídem pero para los datos más representativos de las
transmisiónes actuales (MPEJ, JPEG, etc).
Los datos multimedia imponen la necesidad de encontrar
buenas (eficientes) formas de representarlos (congestión,
perdida, factibilidad, ahorro de recursos).
Marshalling
Representa la codificación de los datos de manera estándar, o
adaptandose a alguna convención, para la correcta interpretación
por diferentes entidades.
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Problemática
Objetivos
Diseño
Objetivos
Especı́ficos de la capa de aplicación
Aplicaciones son software (Sistemas Operativos, procesos)
Aspectos conceptuales y abstracciones comunes.
Tipo de servicio de las capas inferiores.
Arquitecturas de comunicación.
Paradigma cliente - servidor.
Paradigma P2P.
Hı́bridos.
RPC.
Syntaxis y semántica de los mensajes.
Abstracción común más utilizada
Sockets
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Problemática
Objetivos
Diseño
Diseño
NETWORK ASSOCIATES GUIDE TO COMMUNICATIONS PROTOCOLS
DHCP
BOOTP
NTP
TFTP
Dynamic Host Bootstrap Network Trivial File
Configuration Protocol
Time
Transfer
Protocol
Protocol Protocol
APPLICATION
LAYER
X Windows
System
(X10 / X11)
• Provides interface to
end-user processes
• Provides standardized
services to applications
CMOT
(CMIP over
TCP/IP)
(see also ISO)
ARPA Services
PRESENTATION
LAYER
SNMP
DNS
Domain
Name
System
ND
Network
Disk
Simple Network
Mgmt. Protocol
v1, v2, v2c
To
ISO-TP
ISO-DE
ISO
Development
Environment
TRANSPORT
LAYER
• Manages network
layer connections
• Provides reliable packet
delivery mechanism
TCP
Transmission
Control
Protocol
RPC
Remote
Procedure
Call
To
VFRP
Burst
Mode
Application Filing Mail Printing Virtual
Support
Terminal
VINES Application Services
ACSE
ACSE
ACSE
ACSE
GAP
Gateway
Access
Protocol
From
SPP
From
ISO
From
NBP
AFP
AppleTalk
Filing
Protocol
Postscript
ASP
AppleTalk
Session
Protocol
PAP
Printer
Access
Protocol
To
Oracle
TNS
SMB
To
NetBIOS
Data
Flow
Control
Connection-oriented
Session Protocol
ISO
NetBIOS
To
VFRP
To
NetBIOS
Keiwet
Session
Protocol
Bulk Data
Transfer Protocol
SCS
To
NetBIOS
To
NetBIOS
From
UDP
To
IP
To
DDP
To
IPX
ZIP
Zone
Information
Protocol
NetBEUI
To
ARP
TPO, TP1, TP2, TP3, TP4
Transmission
Control
LAVC
UDP
User
Datagram
Protocol
NLSP
RIP
Routing NetWare
Information Link
Protocol Services
Protocol
X.25
Packet Level
Protocol
SSP
Switch to
Switch
Protocol
From
TCP/IP
TCP
From SDLC
Synchronous
Data Link
Control
From
ISO
TP4
ATP
NBP
AEP
Name
AppleTalk AppleTalk
Transaction Binding
Echo
Protocol Protocol
Protocol
VIPC
VINES Interprocess
Communications
Protocol
RIP
Routing
Information
Protocol
RTMP
AURP
Routing
AppleTalk
Table
Update-based
Maintenance
Routing
Protocol
Protocol
VRTP/VSRTP
VINES (Sequenced)
Routing Update
Protocol
Error
Echo
Protocol Protocol
NETWORK PROTOCOL
QLLC
Qualified
Logical
Link
Control
ADSP
AppleTalk
Data Stream
Protocol
SPP
PEP
Sequence Packet
Packet Exchange
Protocol Protocol
ES-IS
End System to
Intermediate
System
DRP
DECnet
Routing
Protocol
CONP
CLNP
Connection- Connectionless
oriented
Network
Network
Protocol
Protocol
Path
Control
DLSw
Data Link
Switching
IPX
WAN
2
From
VIPC
From
CDP
IS-IS
Intermediate Dual
System to IS-IS
Intermediate
System
HPR
APPN
High
Advanced
Performance Peer-to-Peer
Routing Networking
To
NetBIOS
&
SMB
IPX –
Internetwork
Packet
Exchange
ICMP
Internet Control
Message
Protocol
IP
Internet
Protocol
LAT
Local
Area
Transport
Protocol
NSP
Network
Services Protocol
DNA
From
VIPC
IDP
Internetwork
Datagram
Protocol
VIP
VINES Internet
Protocol
DDP
Datagram Delivery
Protocol
From
VIPC
AARP
AppleTalk
Address
Resolution
Protocol
X-25
Packet
Level
Protocol
Apple - LAP
Link Access
Protocol
VFRP
VINES Fragmentation
Protocol
Internetwork
(via X.25)
(Not through X.25)
Sub Network Access Protocol
(SNAP)
• Frames packets
• Controls physical
layer data flow
Ethernet
Data Link
Control
Ethernet V.2
PHYSICAL
LAYER
• Interfaces between network
medium and network devices
• Defines electrical and mechanical
characteristics
IEEE 802.3 CSMA/CD
Media Access Control
1 BASE5
StarLAN
10 BROAD 36
10 BASE-T
Twisted Pair
10 BASE5
Thick
10BASE2
Thin
10 BASE-F
(A or P)
Fiber
Type 2
Connection Service
Type 3
ACK Connectionless Service
IEEE 802.5
Token Passing Ring
Media Access Control
FDDI Token Passing Ring
Media Access Control
ANSI
Token Ring
Ethernet
Ethernet
50 ohm coax
Thin Wire
50 ohm coax
Broadband
75 ohm coax
IEEE 802.12
VG-AnyLAN
100 BASET
100 BASEX
Fiber
Optic
Shielded
Twisted Pair
4/16 Mbps
UTP 4/16
Unshielded
Twisted Pair
ATM
To
SMDS
802.2 Logical Link Control
Type 1
Connectionless Service
AAL
ATM - Adaption Layer
SDDI
Shielded
Copper
CDDI
Copper
Twisted Pair
SNI
Subscriber Network
Interface
DSO PLCP - 64 Kbps
G.703 PLCP
DS1 PLCP - T1 - 1.544 Mbps
ISDN-D
16 Kbps BRI
64 Kbps PRI
DSI, DS3
SONET
ISDN H
384 Kbps
BRI - Basic Rate Interface
PRI - Primary Rate Interface
DS3 PLCP - T3 - 45 Mbps
SONET
PPP
Point to Point
LAP -A
ISDN-B
64 Kbps
To
SMDS
FDDI
FDDI
Fiber Optic
HDLC LAPB
(ISO) 7776)
High-level Data Link Control
Link Access Procedure
ISDN
Integrated Services
Digital Network
ATM - Layer
Asynchronous
Transfer Mode
IEEE 802.6
Metropolitan Area Network
DQDB Media Access Control
SMDS
Frame Relay
ISDN
DSI, DS3
SONET
AAL1 AAL2 AAL3/4 AAL5
VLANs
CBR VBR
Data Virtual LANs
H11
1.536 Mbps
H12
1.92 Mbps
To
Frame
Relay
V.35
RS-449
EIA RS-232D
or
RS-423
RS-422-A
V.24
Unbalanced Balanced
SMDS
Switched
Multi-megabit
Data service
From
IPX
From
SNI
ANSI
T-1.617
NXD Frame Format
From
Broadband
ISDN
From
IP
WANs
SIP
SMDS
Interface Protocol
From
PPTP
Modem Standards
V.21 AT&T V.22 AT&T AT&T 209 V.22 bis
V.26
V.26 bis
9600 bps 2400 bps 2400 bps 2400 bps
103
212
300 bps
1200 bps
V.42
V.42 bis
V.27 bis
V.32 bis
V.29
V.32
4800 bps 9600 bps 9600 bps 14.4 kbps Error Correction Data Compression
via MNP5 or LAPM using L-Z derivative
Introducción a Aplicaciones
From
UDP
SDLC
Synchronous
Data Link
Control
From
ATM
IBM
Channel
Guido Chari
VSPP
VINES Sequenced
Packet Protocol
VARP/VSARP
VINES (Sequenced)
Address Resolution
Protocol
Ethernet V.2
LANs
NAMED
PIPES
for OS/2
VINES
NETRPC
XNS Courier
SCP
DNS
Distributed Session
Control
Name
Protocol
Server
802.2
DATA LINK
LAYER
3270
Data
Stream
XNS Courier
Message Object Block
Stream Stream Stream
FOUND
Foundation
Services
From
VIPC
From
IPX
From
NSP
CTERM
Network
Command
Terminal
X.25 PAD
Packet
Assembler/
Disassembler Connection-oriented
Protocol
Presentation Protocol
X.3,
X.28,
ASN.1
X.29
LU6.2
Logical
Unit
StreetTalk, Mail(IM-III), Network Mgmt.,
Server Service, PC Backend, VINES Security,
Echotest, File Service, Talk, Async, STDA, Deflector,
Diagnostic, NetBIOS over VINES, Print Service,
Semaphore, SNA Service, SX Service
TRANSPORT PROTOCOL
CSLIP
SLIP
Serial Line Compressed
Slip
IP
From
VIPC
From
TCP/
IP
ACSE
NICE
Network Information
and Command
Exchange Protocol
IPDS
SCS
3270
Intelligent
SNA
Data
Printer
Stream Character
Data
Stream
Stream
SPX, SPX2
Sequenced
Packet
Exchange
To
VFRP
RSVP
Resource
Reservation
Protocol
• Addresses and
routes packets
ACSE
ACSE
Banyan VINES
AppleTalk
XNS Application Services
MOP
Maintenance
Operations
Protocol
DAP
Data
Access
Protocol
RTSE
From
TCP
Presentation Services
SAP
Service
Advertising
Protocol
To
VINES
NETRPC
ROSE
ACSE - Association Control Service Element
ROSE - Remote Operation Service Element
RTSE - Reliable Transfer Service Element
From
VSPP
From
IPX
NetBIOS
To
IPX
To
VFRP
ARP
RARP
Address Reverse
Resolution
ARP
Protocol
ROSE
SMB
Server
Message
Block
RPL
Remote
Program
Load
NetWare
Lite
To
VFRP
IGMP
Internet
Group
Mgmt.
Protocol
CMIP
DS
MHS
FTAM
MMS
ODA
Common Directory
Mail
File
Office
VT
Mgmt.
Services Transfer Handling Manufacturing
Messaging
Document Virtual
Information X.500
Access Service
Service
Architecture Terminal
Protocol
X.400
and
Mgmt.
Named
Pipes
Print
NCP
NetWare
Core
Protocol
OSPF
IGRP/EIGRP
GGP
RIP
BGP
EGP
Open Shortest
Interior
Gateway
Routing
Exterior Border
Path First
Gateway
to
Routing
Routing CISCO Gateway Gateway Gateway Information
DVMRP
Distance Vector
Multicast
Routing
Protocol
NDS
NetWare
Directory
Services
XDR
External
Data
Representation
To
NetBIOS
To
DLSw
SSP
NETWORK
LAYER
Browse
File
RUNIX Remote UNIX Services
LPP
Lightweight
Presentation
Protocol
DAP
Lightweight
Directory
Access
Protocol
SESSION
LAYER
To
PPTP
DDM
DCA
SNA/DS SNA/MS
DIA
SNA/FS
Distributed Document
SNA
SNA
Document
File
Data
Content Services Interchange Distributed Mgmt.
Mgmt. Architecture
Architecture Services Services
From
IPX
From
DECnet
NSP
XNS Xerox Network System
DECnet Phase IV
SNA Transaction Services
SUN Network Services
PMAP
NIS YP
NFS
Port
Network
Network
File System Information Mapper
System
NLM
Statd
Network
Status
Mount
Lock Mgr.
Daemon
Ipr
login
rsh
rexec
rcp
Remote Remote Remote Remote Remote
Print Copy Execution Login Shell
SMTP
HTTP
FTP
TELNET Simple
HyperText File
Mail
Transfer Transfer Virtual
Protocol Protocol Terminal Transfer
Protocol
• Specifies architectureindependent data
transfer format
• Encodes and decodes data;
encrypts and decrypts data;
compresses data
ISO
IBM Protocols
Novell NetWare
TCP/IP
Hewlett-Packard Network Services
RFA
Network Remote Remote Remote
Virtual
File
Database File Process
Transfer Access Access Comm. Terminal
VICP
VINES Internet
Control
Protocol
Introducción
Correo Electrónico
HTTP
Problemática
Objetivos
Diseño
Requerimientos
Una aplicación de red implica diseñar o usar un protocolo
existente.
Para esto es fundamental conocer los diversos protocolos de
las diferentes capas para poder elegir el que mejor se atenga a
nuestro requerimientos.
Confiabilidad, seguridad, etc.
Aplicaciones tradicionales
Arquitectura de tipo Request / Reply de mensajes entre cliente y
servidor.
Aplicación versus protocolo
Ejemplo: HTTP (Protocolo) ! = Firefox (Aplicación).
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
MIME
Enviar
Recibir
SMTP, POP3, IMAP, Webmail, MIME
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
MIME
Enviar
Recibir
Simplicidad del correo
Estrategia
Los protocolo de correo electrónico son considerablemente
simples debido en gran parte a que delegan la interpretación
de los datos en otros protocolos o convenciones.
En los mensajes se transfiere solo texto en formato ASCII.
La interpretación queda del lado del RFC822 y las extensiones
MIME.
Formato de mensaje estándar
Header (Comandos Separados por CRLF).
From:.
To:, Cc:, etc.
Body (ASCII plano).
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
MIME
Enviar
Recibir
Extensiones al formato de mensaje
Multimedia
Con el advenimiento de mejores enlaces y la profusión de internet
se extiende el formate de mensaje para poder tranferir contenido
multimedia sin modificar los protocolos básicos.
Extensiones
Nuevos campos del header (MIME-Version:, Content-Type:).
Definiciones de tipos y subtipos (Imágenes, Videos,
Documentos).
Encodings para codificar los distintos tipos de datos en ASCII
(base64).
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
MIME
Enviar
Recibir
Ejemplo
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
MIME
Enviar
Recibir
SMTP
Propiedades esenciales
La implementación más conocida es sendmail.
Las casillas de correo son analogı́as de los buzones.
Nos podrı́amos conectar directo con el host donde reside la
casilla del destinatario y enviarle el correo con el protocolo
SMTP.
En general nos conectamos con nuestro proveedor y luego el
correo pasa por varios gateways antes de llegar al destino.
¿Por qué no enviarlo directo al destino?.
Para más información, RFC 2821.
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
MIME
Enviar
Recibir
Ejemplo
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
MIME
Enviar
Recibir
POP3
Client oriented
Se descargan los correos y administran localmente.
No hace falta estar conectado para acceder a los correos.
El espacio de alamacenamiento lo define el usuario.
Contenido local, ¿Más inseguro?.
Responsabilidad de backup del lado del usuario.
Sencillo, fácil de usar y configurar.
Para más información, RFC 1939.
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
MIME
Enviar
Recibir
Ejemplo
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
MIME
Enviar
Recibir
POP3
Mensajes
LIST.
STAT.
DELE n.
QUIT.
RETR n.
Sencillo, fácil de usar y configurar.
Para más información, RFC 1939.
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
MIME
Enviar
Recibir
Ejemplo
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
MIME
Enviar
Recibir
IMAP
Server oriented
Es el protocolo de acceso más complejo y potente.
Sirve cuando se accede a la misma casilla desde distintos
hosts.
Permite administrar carpetas del lado del servidor.
Permite guardar estado.
Busqueda del lado del servidor.
Webmails y celulares lo utilizan.
¿Más lento?
Para más información, RFC 3501.
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
Implementación
Eficiencia
Conceptos fundamentales
Generales
Usa TCP (puerto 80).
Un archivo ı́ndice con referencia a los diversos objetos.
Browser y servidor se intercambian mensajes HTTP
(HEADER:BODY).
Cada objeto se referencia por un identificador único (URL).
HTTP no mantiene estado.
Versiones
HTTP 1.0 es NO persistente.
HTTP 1.1 sı́ lo es. Muchos objetos pueden ser transmitidos
por una única conexión.
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
Implementación
Eficiencia
Ejemplo
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
Implementación
Eficiencia
Modelo HTTP
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
Implementación
Eficiencia
HTTP persistente
¿Por qué?
2 ∗ RTT ∗ Objeto.
Muchas conexiones, sobrecarga OS.
Congestion Window.
Pipelining
Espera completar los pedidos antes de envı́ar nuevos requests.
Con PL, envı́a request apenas encuentra referencias (default
en 1.1).
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
Implementación
Eficiencia
Petición HTTP
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
Implementación
Eficiencia
Tipos de peticiones
HTTP 1.1
GET.
HEAD.
POST.
PUT.
DELETE.
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
Implementación
Eficiencia
Respuesta HTTP
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
Implementación
Eficiencia
Algunos campos del encabezado
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
Implementación
Eficiencia
Técnicas de cacheo
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
Implementación
Eficiencia
Cacheo HTTP
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
Implementación
Eficiencia
Otras técnicas
Mirroring estático
Consiste en replicar el contenido para distribuir la carga. Se puede
distribuir de varias formas siendo la geográfica la más utilizada.
Flash Crowds
Picos de tráfico efı́meros y luego tráfico estable. Por ejemplo,
diarios ante situaciones crı́ticas (ataques terroristas, muerte de
celebridades, etc). Solución: Mirroring dinámico.
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
Implementación
Eficiencia
Para profundizar
Otros temas
Web dinámica (CGI).
Dinamismo del lado del server (PHP) o del cliente
(Javascript).
Cookies para mantener estado.
Wireless Web (WAP).
Web Sockets.
Guido Chari
Introducción a Aplicaciones
Introducción
Correo Electrónico
HTTP
Introducción
Implementación
Eficiencia
¿Repasando...?
¿Dudas?,
¿Preguntas?
Guido Chari
Introducción a Aplicaciones
Descargar