![Page 1: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/1.jpg)
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
![Page 2: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/2.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
1
Temario 1. Introducción 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
![Page 3: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/3.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
2
Temario 1. Introducción 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
• La Web • E-Mail. • FTP. Telnet • Otros • Desarrollo de clientes y servidores
![Page 4: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/4.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
3
Material Del Capitulo 2 de Kurose & Ross, “Computer Networking a top-down approach
featuring the Internet” Addison Wesley
![Page 5: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/5.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
4
Las aplicaciones • Son software • Diferentes máquinas y
Sistemas Operativos • Quienes se comunican
son procesos
Aplicación
Transporte
Red Enlace
Físico
ARP
IP ICMP TCP UDP • Intercambian mensajes
• Emplean Protocolos de nivel de aplicación
AS 1
AS 2
AS 3
![Page 6: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/6.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
5
proceso
TCP
socket
host
proceso
TCP
socket
host
Internet
Controlado por el SO
controlado por el desarrollador
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
![Page 7: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/7.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
6
Socket • Creado por la aplicación • Controlado por el S.O. • A través suya la aplicación
envía y recibe mensajes
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
App 1
Transporte Red
Enlace Físico
Socket Controlado por el programador de la
aplicación
Controlado por el Sistema Operativo
![Page 8: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/8.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
7
Sockets y UDP 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
• UDP ofrece transferencia no fiable de grupos de bytes (“datagramas”) entre el cliente y el servidor
![Page 9: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/9.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
8
Ejemplo en pseudo-código Cliente
• Crear el socket UDP (Dgram)
• Solicitar al S.O. que se envíen ciertos datos a un destino (IP+puerto) concreto (…)
Servidor • Crear el socket UDP
(Dgram) • Asignarle el puerto en el
que esperar • Esperar un datagrama
• Datagrama recibido (o no) Datos
![Page 10: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/10.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
9
Ejemplo en C (I) Servidor
struct sockaddr_in dirsock, emisor; int sockservidor, ret,
frlen=sizeof(emisor); char *buf[2000];
sockservidor=socket(PF_INET,SOCK_DGRAM,0);
if (sockservidor==-1) ERROR(); dirsock.sin_family=AF_INET;
Servidor
Transporte Red
Enlace Físico
Cliente
Transporte Red
Enlace Físico
Cliente
Crear el socket UD
P (…)
![Page 11: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/11.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
10
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);
Servidor
Transporte Red
Enlace Físico
Cliente
Transporte Red
Enlace Físico
Cliente
Asignar Puerto (…)
Recibe datagramas
al puerto 99
Esperar a recibir
![Page 12: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/12.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
11
Ejemplo en C (III) Cliente
int sockcliente, ret; struct sockaddr_in dirsock; struct hostent *resolvhost;
sockcliente=socket(PF_INET,SOCK_DGRAM,0);
if (sockcliente==-1) ERROR();
Servidor • Esperando a recibir
Servidor
Transporte Red
Enlace Físico
Crea
r el
soc
ket
UD
P (…
)
Cliente
Transporte Red
Enlace Físico
Recibe datagramas
al puerto 99
![Page 13: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/13.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
12
Ejemplo en C (y IV) Cliente
dirsock.sin_family=AF_INET; resolvhost=gethostbyname(“servidor.tlm.unavar
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));
Servidor • Esperando a recibir
if (ret==-1) ERROR();
Servidor
Transporte Red
Enlace Físico
DN
S
Cliente
Transporte Red
Enlace Físico
Recibe datagramas
al puerto 99
Envi
arD
atag
ram
a (…
)
![Page 14: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/14.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
13
Cliente y Servidor TCP El servidor • Ejecutándose primero • Debe haber creado un socket
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
• Se establece la conexión TCP con el servidor
Servidor al ser contactado
• Crea un nuevo socket TCP para la comunicación con el cliente
• Permite que el servidor se comunique con varios clientes simultáneamente
![Page 15: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/15.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
14
Three-way handshake
Dat
os
Finalización
Ejemplo en pseudo-código Cliente
• 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 (…)
Servidor • Crear el socket TCP
(Stream) • Asignarle el puerto en el
que esperar • Solicitar al S.O. que
escuche y acepte esas conexiones
• Esperar una conexión
• Nueva conexión. Socket nuevo. El original sigue aceptando conexiones
• Escribir/Leer del socket • Cierre de la conexión
![Page 16: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/16.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
15
Cliente en C (I) Cliente
int sockcliente, ret; struct sockaddr_in dirsock; struct hostent *resolvhost;
sockcliente=socket(PF_INET,SOCK_STREAM,0); if (sockcliente==-1) ERROR();
Servidor • Crear el socket TCP
(Stream) • Asignarle el puerto en el
que esperar • Solicitar al S.O. que
escuche y acepte esas conexiones
• Esperar una conexión
Servidor
Transporte Red
Enlace Físico
Crea
r el
soc
ket
TCP
(…)
Acepta conexiones al puerto 80
Cliente
Transporte Red
Enlace Físico
![Page 17: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/17.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
16
Petición al servidor de DNS
Cliente en C (II) Cliente
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);
Servidor • Esperar una conexión
Servidor
Transporte Red
Enlace Físico
Acepta conexiones al puerto 80
Cliente
Transporte Red
Enlace Físico
DN
S (…
)
![Page 18: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/18.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
17
Cliente en C (III) Cliente
ret=connect(sockcliente, (struct sockaddr*)&dirsock, sizeof(dirsock));
if (ret==-1) ERROR();
Servidor • Esperar una conexión
• Nueva conexión
Servidor
Transporte Red
Enlace Físico
Acepta conexiones al puerto 80
Cliente
Transporte Red
Enlace Físico
Cone
ctar
(…)
Conecta con la aplicación en 192.168.17.14, puerto 80
![Page 19: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/19.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
18
Cliente en C (y IV) Cliente
write(sockcliente,...); read(sockcliente,...); . . . . close(sockcliente);
Servidor • Escribir/Leer del socket
• Cierre de la conexión
Servidor
Transporte Red
Enlace Físico
Acepta conexiones al puerto 80
Cliente
Transporte Red
Enlace Físico
Envi
ar/r
ecib
ir
Cier
re (…
)
![Page 20: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/20.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
19
Servidor en C (I) Servidor
int sockservidor, sockconectado; int ret, dirlen=sizeof(dirsock); struct sockaddr_in dirsock;
sockservidor=socket(PF_INET,SOCK_STREAM,0); if (sockservidor==-1) ERROR();
Servidor
Transporte Red
Enlace Físico
Cliente
Transporte Red
Enlace Físico
Cliente
• Crear el socket TCP (Stream)
Crear el socket TCP (…)
![Page 21: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/21.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
20
Servidor en C (II) Servidor
dirsock.sin_family=AF_INET; dirsock.sin_addr.s_addr=INADDR_ANY; dirsock.sin_port=htons(80);
ret= bind(sockservidor, (struct sockaddr*)&dirsock, sizeof(dirsock));
if (ret==-1) ERROR();
Servidor
Transporte Red
Enlace Físico
Cliente
Transporte Red
Enlace Físico
Cliente
• Crear el socket TCP (Stream)
“bind” (…)
Puerto 80
![Page 22: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/22.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
21
Servidor en C (III) Servidor
ret=listen(sockservidor,5); if (ret==-1) ERROR();
sockconectado=accept(sockservidor, (struct sockaddr*)&dirsock, &dirlen);
Servidor
Transporte Red
Enlace Físico
Cliente
Transporte Red
Enlace Físico
Cliente
• Solicitar al S.O. que lo conecte con un destino (IP+puerto) concreto (…)
“listen” (…) Entregar conexión
Puerto 80
Completa conexiones al
![Page 23: Servicios de Internet - Área de Ingeniería Telemática...Control de acceso al medio en redes de área local 7. Servicios de Internet • La Web • E-Mail. • FTP. Telnet • Otros](https://reader034.vdocumento.com/reader034/viewer/2022051813/60330f517fb3b9209446ceb6/html5/thumbnails/23.jpg)
AR
QU
ITEC
TUR
A D
E R
EDES
, SI
STEM
AS
Y SE
RVI
CIO
S Á
rea
de In
geni
ería
Tel
emát
ica
22
Servidor write(sockconectado,...); read(sockconectado,...); . . . . close(sockconectado);
Servidor en C (y IV) Cliente
• Escribir/Leer del socket
• Cierre de la conexión
Servidor
Transporte Red
Enlace Físico
Cliente
Transporte Red
Enlace Físico
Puerto 80
Completa conexiones al
Enviar/Recibir
Cerrar Conexión (…)