Holada asdasf

Páginas: 15 (3659 palabras) Publicado: 28 de noviembre de 2013
Comunicaciu00f3n de Datos y Redes
Catedra #7: Programación de socket en C

Profesor Patricio Galdames
Departamento de Sistemas de Información,
Universidad del Bío-Bío, Concepción
pgaldames@ubiobio.cl
Horario de Consulta:

10-09-2013

Catedra #7

Programación de Socket
Objetivo: aprender a construir aplicaciones
cliente/servidor que se comuniquen usando de
sockets
socket: puertaentre el proceso que corre una
aplicación y el protocolo de transporte de extremo a
extremo
aplicacion

proceso

socket

red

red

Internet

controlado por
El desarrollador
de la app

enlace

controlado
por el SO

fisicol

fisico

10-09-2013

proceso
transporte

transporte

enlace

aplicacion

Catedra #7

1

Servidor y Cliente
Servidor y clienteintercambian mensajes sobre la red
a través de una API común de manejo de sockets
Clientes
Servidor

TCP/UDP

Espacio
del usuario

puertos

TCP/UDP

API Socket

Espacio
kernel

IP

IP

Adaptador de red

Adaptador de red

10-09-2013

hardware

Catedra #7

Concepto: Números de Puerto
– Números de puerto son usados para
identificar “entidades” en un host
– Numero depuertos pueden ser
• “Bien conocidos (puerto 0-1023)
• Dinámico or privado (puerto 1024-65535)

– Servidores/daemons usualmente usan los
puertos bien conocidos
• Clientes pueden identificar un servicio de un
servidor
• HTTP = 80, FTP = 21, Telnet = 23, ...
• /etc/service define puertos bien conocidos

• Clientes usan usualmente puertos
dinámicos

NTP Servidor
daemon Web
Puerto 123Puerto 80

TCP/UDP
IP
Adaptador de Red

• Asignados por el kernel en tiempo de ejecución
10-09-2013

Catedra #7

2

Nombres y Direcciones
• A cada punto de acceso a la Internet se le
da una única dirección
– Basado en la ubicación dentro de la red – idea similar se
usa para asignar números telefónicos
– Las personas prefieren tratar con nombres y no con
direcciones
– DNS proveemapeo de nombres a direcciones

10-09-2013

Catedra #7

Especificando una dirección de
un terminal
• API de Sockets es genérico
• Debe haber una forma genérica de
especificar la dirección de un terminal
• TCP/IP requiere una dirección IP y un
numero de puerto para terminal (cliente y
servidor)
• Otras familias de protocolos podrían usar
otro tipo de esquema.
10-09-2013

Catedra #73

Conocimiento previo: tipos de datos
POSIX1
int8_t

signed 8bit int

uint8_t

unsigned 8 bit int

int16_t

signed 16 bit int

uint16_t

unsigned 16 bit int

int32_t

signed 32 bit int

uint32_t

unsigned 32 bit int

u_char, u_short, u_int, u_long

Obsoleto

1Familia de

estándares especificados por la IEEE para definir APIs para la compatibilidad
desoftware entre los diferentes sistemas operativos Unix

Mas tipo de datos POSIX
sa_family_t

dirección familia

socklen_t

largo de la estructura

in_addr_t

dirección IPv4

in_port_t

Numero de puerto IP

10-09-2013

Catedra #7

4

Direcciones de socket genéricas
• struct sockaddr {

Usado por el kernel

uint8_t

sa_len;

sa_family_t

sa_family;

charsa_data[14];

};
• sa_family especifica el tipo de dirección.
• sa_data especifica el valor de la dirección

10-09-2013

Catedra #7

Otros tipos de familias de
protocolos
#define AF_UNIX

1

/* local a host (pipes, portals) */

#define AF_INET

2

/* internetwork: UDP, TCP, etc. */

#define AF_IMPLINK 3

/* protocolos direcciones arpanet imp */

#define AF_PUP

4

/* pup :e.g. BSP */

#define AF_CHAOS

5

/* protocolos mit CHAOS */

#define AF_NS

6

/* protocolos XEROX NS */

#define AF_IPX

AF_NS /* protocolos IPX : IPX, SPX, etc. */

#define AF_ISO

7

#define AF_OSI

AF_ISO /* OSI es ISO */

10-09-2013

/* protocolos ISO */

Catedra #7

5

struct sockaddr_in (IPv4)
Largo

struct sockaddr_in {
estructura (16)
uint8_t...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Asdasf
  • Asdasfad
  • asdasfad
  • Asdasfa
  • Asdasf
  • asdasf
  • asdasf
  • asdasf

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS