Está en la página 1de 10

1

SOCKETS
UN INTERFAZ CON TCP/IP

EXP. JUAN L. ESCUDERO ORELLANA


2019
2

Las aplicaciones en internet

Utilizan los servicios de TCP/IP.


Servicio con conexión: TCP.
Servicio sin conexión: UDP.
Diseño basado en el
modelo cliente-
servidor.
comunicarse). Host B
Por cada aplicación tendremos el proceso del cliente y el del
servidor (ambos
Host A utilizan el interfaz de los sockets para
Servidor
Www
Cliente
Www
Sockets
Sockets S.O.
S.O.
Internet Hardware
Hardware
3

Las aplicaciones en internet

El cliente suele ser usado por el usuario, el cual


dirige las peticiones de servicio hacia el servidor
seleccionado.
Ej.: Clientes WWW: NetScape, IExplorer, Mozilla, etc...

El servidor debe permanecer siempre en marcha


esperando las peticiones de servicio de los clientes
en un puerto bien-conocido.
Ej.: Servidores WWW: IIS (NT y W2000), NCSA, Apache, etc.
4

Conceptos básicos
Orígenes:
Introducir TCP/IP en un sistema BSD UNIX (~1980).
Necesidad de un interfaz entre las aplicaciones y una
arquitectura de red.
Www
Sockets: Un interfaz genérico. News
User
Interfaz estándar. Ftp
Portabilidad de aplicaciones. app.

Diferentes pilas de Socket


Interface
protocolos.

Define una librería de primitivas TCP/IP NETBIOS


IPX/SPX
que acceden a los servicios de las
pilas de protocolos de un host.
Driver

Network hardware
5
Conceptos básicos

Aunque el interfaz de los sockets fue escrito


inicialmente para máquinas UNIX, hoy en día se ha
llevado a otros S.O’s (Mac, MsWin, OS2, etc.).

En todos ellos se describe un interfaz “básico” idéntico


al original de UNIX*,
Las mismas primitivas con los mismos parámetros.
Tipos y estructuras de datos idénticos.
favoreciendo la portabilidad de aplicaciones.

En lo que sigue, trabajaremos sobre un sistema UNIX


con la pila de protocolos TCP/IP.
(*) Con algunas excepciones
6

¿Qué es un socket ?
Es un punto de acceso (SAP) que una aplicación puede crear para acceder a
los servicios de comunicación que ofrecen la pilas de protocolos.
El término socket es también usado como el nombre de una interfaz
de programación de aplicaciones (API) para la familia de protocolos de
InternetTCP/IP, provista usualmente por el sistema operativo.
FTP
Ap. usuario WWW

Interfaz de sockets

TCP/IP NETBIOS
IPX/SPX

Driver

Hardware de red
EXPLICACIÓN DETALLADA

• Para que dos programas puedan comunicarse entre sí es


necesario que se cumplan ciertos requisitos:
• Que un programa sea capaz de localizar al otro.
• Que ambos programas sean capaces de intercambiarse cualquier
secuencia de octetos, es decir, datos relevantes a su finalidad.
• Para ello son necesarios los dos recursos que originan el concepto
de socket:
• Un par de direcciones del protocolo de red (dirección IP, si se utiliza
el protocolo TCP/IP), que identifican la computadora de origen y la
remota.
• Un par de números de puerto, que identifican a un programa dentro
de cada computadora.
Los sockets permiten implementar una arquitectura cliente -
servidor. La comunicación debe ser iniciada por uno de los
programas que se denomina programa "cliente". El segundo
programa espera a que otro inicie la comunicación, por este
motivo se denomina programa "servidor".
Un socket es un proceso o hilo existente en la máquina cliente
y en la máquina servidora, que sirve en última instancia para
que el programa servidor y el cliente lean y escriban la
información. Esta información será la transmitida por las
diferentes capas de red.
PROPIEDADES INHERENTES A LOS SOCKETS

Las propiedades de un socket dependen de las características del protocolo en


el que se implementan. El protocolo más utilizado es Transmission Control
Protocol; una alternativa común a éste es User Datagram Protocol.
Cuando se implementan con el protocolo TCP, los sockets tienen las siguientes
propiedades:
•Son orientados a la conexión.
•Se garantiza la transmisión de todos los octetos sin errores ni omisiones.
•Se garantiza que todo octeto llegará a su destino en el mismo orden en que se
ha transmitido.
Estas propiedades son muy importantes para garantizar la corrección de los
programas que tratan la información.
El protocolo UDP es un protocolo no orientado a la conexión, sin garantía de
entrega. En ningún caso se garantiza que llegue o que lleguen todos los
mensajes en el mismo orden que se mandaron. Esto lo hace adecuado para el
envío de mensajes frecuentes pero no demasiado importantes, como por
ejemplo, un streaming de audio.
VARIANTES

• Existe una variante de


los sockets denominada Unix domain sockets, o
bien, interprocess communication sockets (IPC
sockets). Estos se encuentran especificados en
la norma POSIX y tienen como propósito la
intercomunicación entre programas dentro de la
misma computadora, facilitando así la
optimización de recursos para este caso en
concreto.