PDF de programación - Servicios de Internet

Imágen de pdf Servicios de Internet

Servicios de Internetgráfica de visualizaciones

Publicado el 5 de Junio del 2017
497 visualizaciones desde el 5 de Junio del 2017
1,1 MB
23 paginas
Creado hace 16a (22/04/2008)
ARQUITECTURA DE REDES, SISTEMAS Y SERVICIOS
Área de Ingeniería Telemática

Servicios de Internet

Area de Ingeniería Telemática

http://www.tlm.unavarra.es

Arquitectura de Redes, Sistemas y Servicios

3º Ingeniería de Telecomunicación

,

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á

I

I



S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I

I



Temario

Introducción

1.
2. Arquitecturas, protocolos y estándares
3. Conmutación de paquetes
4. Conmutación de circuitos
5. Tecnologías
6. Control de acceso al medio en redes de área local
7. Servicios de Internet

1

,

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á

I

I



S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I

I



Temario

1.
2.
3.
4.
5.
6.
7.

Introducción
Arquitecturas, protocolos y estándares
Conmutación de paquetes
Conmutación de circuitos
Tecnologías
Control de acceso al medio en redes de área local
Servicios de Internet







La Web
E-Mail.
FTP. Telnet
Otros
Desarrollo de clientes y servidores

2

,



I

I

S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S



I

I

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á

Material

Del Capitulo 2 de
Kurose & Ross,
“Computer Networking a top-down approach

featuring the Internet”

Addison Wesley

3

,

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á

I

I



S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I

I



Las aplicaciones

• Son software
• Diferentes máquinas y

Sistemas Operativos

• Quienes se comunican

son procesos

AS 2

AS 1

AS 3

Aplicación

Transporte

UDP

Red
Enlace
Físico

TCP
IP

ICMP

ARP

Intercambian mensajes

• Emplean Protocolos de

nivel de aplicación

4

,

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á

I

I



S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I

I



Sockets

• Los procesos envían y reciben

mensajes a través de un
socket

• Delega en el nivel de

transporte para que haga
llegar los mensajes al otro
socket

• Acceso a través de un API
• Puede escoger el protocolo de

transporte

• Puede configurar algunos

parámetros del mismo

• No controla cómo se comporta

host

proceso
socket
TCP

host

proceso
socket

TCP

controlado
por el
desarrollador

Internet

Controlado por el SO

5

,



I

I



S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I



I

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á

Programación con Sockets

API de Sockets


Introducida en el UNIX BSD4.2
en 1983

• Centrada en el paradigma

cliente/servidor

• Ofrece dos tipos de servicios de

transporte:
– STREAM: flujo de datos fiable

orientado a conexión
– DGRAM: datagramas

Socket
• Creado por la aplicación
• Controlado por el S.O.
• A través suya la aplicación

envía y recibe mensajes

Socket

App 1

Transporte

Red
Enlace
Físico

Controlado por el
programador de la
aplicación

Controlado por el
Sistema Operativo

6

,

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á

I



I



S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I

I



Sockets y UDP

• UDP ofrece transferencia no

fiable de grupos de bytes
(“datagramas”) entre el
cliente y el servidor

UDP: no hay “conexión”

entre cliente y servidor

• No hay handshaking
• El emisor debe indicar

explícitamente la dirección IP y
el puerto del destino para cada
paquete

• El servidor debe extraer la
dirección IP y el puerto del
emisor del paquete

7

,

I

I



S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I



I



e
d
a
e
r

Á

c
i
t

a Ejemplo en pseudo-código
Servidor
Crear el socket UDP
(Dgram)

Cliente

á
m
e
e
T
a
í
r
e
n
e
g
n



I



i

l



Crear el socket UDP
(Dgram)

• Solicitar al S.O. que se

envíen ciertos datos a un
destino (IP+puerto)
concreto (…)

• Asignarle el puerto en el

que esperar
Esperar un datagrama



Datos

• Datagrama recibido (o

no)

8

Ejemplo en C (I)
Servidor

Cliente

struct sockaddr_in dirsock, emisor;
int sockservidor, ret,

frlen=sizeof(emisor);

char

*buf[2000];

,



I

I

S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S



I

I

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á

sockservidor=socket(PF_INET,SOCK_DGRA

M,0);

if (sockservidor==-1) ERROR();
dirsock.sin_family=AF_INET;

Cliente

Transporte

Red
Enlace
Físico

Servidor

Transporte

Red
Enlace
Físico

C
r
e
a
r

e
l

s
o
c
k
e
t

U
D
P

(

)

9

,

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á



I

I

S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I



I



Cliente

Ejemplo en C (II)
Servidor
dirsock.sin_addr.s_addr=INADDR_ANY;
dirsock.sin_port=htons(99);
ret= bind(sockservidor, (struct

sockaddr*)&dirsock, sizeof(dirsock));

if (ret==-1) ERROR();

ret=recvfrom(sockservidor, buf, 2000, 0,

(struct sockaddr*)&emisor, &frlen);

A
s
i
g
n
a
r

P
u
e
r
t
o

(

)

a

r
e
c
i
b
i
r

E
s
p
e
r
a
r

Cliente

Transporte

Red
Enlace
Físico

Servidor

Transporte

Red
Enlace
Físico

Recibe
datagramas
al puerto 99

10

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á

,

I



I

I



I

S
E
D
S
E
O
R
C
E
V
D
R
A
E
R
S
U
Y
T
C
S
)
E
A

T
M
(
U
E

T
Q
P
S
R
D
A
S
U

t
e
k
c
o
s

l
e

r
a
e
r
C

Ejemplo en C (III)
Cliente

Servidor
• Esperando a recibir

int sockcliente, ret;
struct sockaddr_in dirsock;
struct hostent *resolvhost;

sockcliente=socket(PF_INET,SOCK_DGRAM,0

);

if (sockcliente==-1) ERROR();

Cliente

Transporte

Red
Enlace
Físico

Servidor

Transporte

Red
Enlace
Físico

Recibe
datagramas
al puerto 99

11

,

I

I



S
E
D
S
E
O
R
C
E
V
D
R
A
E
R
S
U
Y
S
T
C
S
N
E
A
T
M
D
U
E
T
Q
S
R
A
S

I

I



a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á

)

(

a
m
a
r
g
a
t
a
D
r
a
i
v
n
E

Ejemplo en C (y IV)
Cliente
dirsock.sin_family=AF_INET;
resolvhost=gethostbyname(“servidor.tlm.unavar



Servidor
Esperando a recibir

ra.es”);

if (resolvhost==NULL) ERROR();
dirsock.sin_addr.s_addr=*(u_long*)resolvhost-

>h_addr_list[0];

dirsock.sin_port=htons(99);

ret=sendto(sockcliente, buf, max, 0,

(struct sockaddr*)dirsock,
sizeof(dirsock));

if (ret==-1) ERROR();

Cliente

Transporte

Red
Enlace
Físico

Servidor

Transporte

Red
Enlace
Físico

Recibe
datagramas
al puerto 99

12

Cliente y Servidor TCP
Servidor al ser
contactado

El servidor
• Ejecutándose primero
• Debe haber creado un socket

,

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á



I

I

S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S



I

I

por el que espera que el cliente
contacte con él
Indica el puerto asociado


El cliente
• Crea su propio socket
• Contacta con el servidor
• Especifica la dirección IP del

servidor y el puerto de la
aplicación

• Crea un nuevo socket TCP

para la comunicación con
el cliente

• Permite que el servidor se

comunique con varios
clientes simultáneamente

• Se establece la conexión TCP

con el servidor

13

,



I

I



S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S

I



I

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á

Ejemplo en pseudo-código
Servidor
Crear el socket TCP
(Stream)

Cliente



• Asignarle el puerto en el

que esperar









Crear el socket TCP (Stream)
Solicitar al S.O. que lo conecte
con un destino (IP+puerto)
concreto (…)

Conexión establecida
Escribir/Leer del socket (…)

Cerrar el socket/conexión (…)

• Solicitar al S.O. que

escuche y acepte esas
conexiones
Esperar una conexión



Three-way
handshake

s
o
t
a
D

Finalización

• Nueva conexión. Socket
nuevo. El original sigue
aceptando conexiones
Escribir/Leer del socket
Cierre de la conexión




14

Cliente en C (I)
Cliente

,



I

I

S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S



I

I

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á

)

(

P
C
T

t
e
k
c
o
s

l
e

r
a
e
r
C

int sockcliente, ret;
struct sockaddr_in dirsock;
struct hostent *resolvhost;

sockcliente=socket(PF_INET,SOCK_STREAM,0);
if (sockcliente==-1) ERROR();

Cliente

Transporte

Red
Enlace
Físico

• Asignarle el puerto en el

que esperar

• Solicitar al S.O. que





Servidor
Crear el socket TCP
(Stream)

escuche y acepte esas
conexiones
Esperar una conexión

Acepta conexiones
al puerto 80

Servidor

Transporte

Red
Enlace
Físico

15

Cliente en C (II)
Cliente

Servidor
Esperar una conexión



,



S
E
D
E
R
E
D
A
R
U
T
C
E
T
U
Q
R
A

I

a
c
i
t

l



i



I



I

I


á
m
e
e
T
a
í
r
e
n
e
g
n

S
O
C
V
R
E
S
Y
S
A
M
E
T
S
S
Á
)

(

S
N
D

e
d
a
e
r

I

dirsock.sin_family=AF_INET;
resolvhost=gethostbyname(“servidor.tlm.u



navarra.es”);

if (resolvhost==NULL) ERROR();
dirsock.sin_addr.s_addr=*(u_long*)resolv

host->h_addr_list[0];

dirsock.sin_port=htons(80);

Petición al

servidor de DNS

Cliente

192.168.17.14

Transporte

Red
Enlace
Físico

Acepta conexiones
al puerto 80

Servidor

Transporte

Red
Enlace
Físico

16

Cliente en C (III)
Cliente

Servidor
Esperar una conexión



ret=connect(sockcliente, (struct

sockaddr*)&dirsock, sizeof(dirsock));

if (ret==-1) ERROR();

• Nueva conexión

a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á

,



I

I



I

S
E
D
S
E
O
R
C
E
V
D
R
A
E
R
S
U
Y
T
C
S
E
A
T
M
)
U
E

T
Q
S
R
(
I
A
S

r
a
t
c
e
n
o
C

Cliente

Conecta con la aplicación
en 192.168.17.14, puerto 80

Transporte

Red
Enlace
Físico

Acepta conexiones
al puerto 80

Servidor

Transporte

Red
Enlace
Físico

17

Cliente en C (y IV)
Cliente
write(sockcliente,...);
read(sockcliente,...);
.
.
.
.
close(sockcliente);





a
c
i
t

l



á
m
e
e
T
a
í
r
e
n
e
g
n

i

I



e
d
a
e
r

Á

,

I

I

I



S
E
D
S
E
O
R
C
E
V
D
R
A
E
R
S
U
Y
T
C
S
E
A
r
T
M
i
U
b
E
T
Q
i
S
R
  • Links de descarga
http://lwp-l.com/pdf4218

Comentarios de: Servicios de Internet (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad