Administración de redes en GNU/Linux



Documentos relacionados
Estructuras y funciones de programación de sockets.

Introducción a la programación con sockets en C

Migrando aplicaciones a IPv6

Mecanismos IPC: sockets

SOCKET S. Alberto Castro Rojas

Introducción de Sockets en C.

Diseño de aplicaciones distribuidas ÍNDICE

COMUNICACIÓN ENTRE PROCESOS SOCKETS

TELEPROCESO Y SISTEMAS DISTRIBUIDOS

Adaptación de aplicaciones a IPv6

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

Programación con sockets

UNIVERSIDAD DE CANTABRIA DEPARTAMENTO DE INGENIERÍA DE COMUNICACIONES GRUPO DE INGENIERÍA TELEMÁTICA

Sockets (TCP) Tema 2.- Nivel de aplicación en Internet

UNIDAD DIDACTICA 11 CONFIGURACIÓN DE LA RED EN GNU/LINUX

Redes I Soluciones de la Práctica 1: /etc/network/interfaces, tcpdump y wireshark

Introducción a las redes TCP/IP en Linux

Administración de servicios Internet Intranet

Ingeniería Técnica de Telecomunicación, esp. Telemática Universidad de Jaén

UNIVERSIDAD DE ALCALÁ - DEPARTAMENTO DE AUTOMÁTICA Área de Ingeniería Telemática LABORATORIO DE COMUNICACIÓN DE DATOS (CURSO 2011/2012)

Administración de la red

Sockets (UDP) Tema 2.- Nivel de aplicación en Internet

Clase de Sockets en lenguaje C. Prof. Ricardo González

Mecanismo(s) de intercambio de información entre 2 ó más computadores conectados entre sí o a través de otros.

Qué es un socket? Dominios de comunicación. Tipos de sockets en el dominio AF_INET. Sockets Stream. Sockets Datagram. Sockets Raw

DESARROLLO DE APLICACIONES DISTRIBUIDAS. SOCKETS en UNIX

PRACTICA CAPITULO 2 MODULO 1 PROTOCOLOS Y LA FUNCIONALIDAD DE LA CAPA DE APLICACIÓN

ADMINISTRACION DE REDES PARA INICIADOS

Práctica 1 Programación de Aplicaciones Distribuidas: Sockets UDP. Laboratorio de Comunicación de Datos ITT Telemática Septiembre 2011

Problemas de Redes de Computadores. Conjunto de problemas 1

ARQUITECTURAS CLIENTE/SERVIDOR

Tema 4.1: - TRANSPORTE-

Bloque IV: El nivel de red. Tema 10: Enrutamiento IP básico

Programación con Sockets

CONFIGURACIÓN DEL ADAPTADOR DE RED EN LINUX

Configuración del encaminamiento en Linux

BOLETIN 8 INDICE. ordenación de bytes. conversión de nombre y direcciones.

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 8: El nivel de transporte en Internet

REDES DE COMPUTADORES REDES Y SISTEMAS DISTRIBUIDOS

La vida en un mundo centrado en la red

CFGM. Servicios en red. Unidad 5 Servicio FTP. 2º SMR Servicios en Red

Arquitecturas cliente/servidor

(decimal) (hexadecimal) 80.0A.02.1E (binario)

DIPLOMADO EN SEGURIDAD INFORMATICA

Instalación, creación y configuración del servicio FTP

Redes en Linux. por Loris Santamaria < loris@lgs.com.ve> Links Global Services C.A.

5.2.- Configuración de un Servidor DHCP en Windows 2003 Server

4.2- Instalación y Configuración de un Servidor DNS Dnsmasq en Ubuntu sin DHCP

Problemas de Redes de Computadores. Ingeniería Técnica en Informática de Gestión Conjunto de problemas 1

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

2. Qué dispositivo se debe utilizar para enrutar un paquete a una red remota? A switch de acceso B servidor de DHCP C hub D router

Manual de Usuario CPE OX330. Manual de Usuario CPE OX330

Modem IBM Compatible. IBM Compatible. Ethernet IBM AS/400. Laser printer. Workstation. Mac II. El Interfaz. Socket. versión perliminar

REDES DE COMPUTADORES REDES Y SISTEMAS DISTRIBUIDOS

Práctica 2 - PCs en redes de área local Ethernet

Programas de Administración de red

Servidor DNS sencillo en Linux con dnsmasq

Laboratorio de Redes de Computadores

TALLER LINUX Modo Matrix Disponibilidad de Host Configuración Red Administración Remota Segura Servidor. Comandos Básicos en Consola

Redes (4º Ing. Informática Univ. Cantabria)

MultiBase y Cosmos. Particularidades sobre la instalación del motor de base de datos en modo cliente servidor. BASE 100, S.A.

INSTALACIÓN DE UBUNTU SERVER 12.4 EN MÁQUINA VIRTUAL

Servidor FTP. Ing. Camilo Zapata Universidad de Antioquia

Prácticas de laboratorio de Redes de Ordenadores. Práctica 3: Protocolos TCP y DNS. Uploaded by. IngTeleco

sockets Flujo (SOCK_STREAM) Comunicación bidireccional Confiable (entrega garantizada) Información ordenada en el destino Datagrama (SOCK_DGRAM)

CFGM. Servicios en red. Unidad 2. El servicio DHCP. 2º SMR Servicios en Red

Introducción a las Redes de Computadoras

Curso de Redes Computadores 1 Tema 3 Introducción a la capa de transporte. Interfaz de programación en redes. Sockets.

CÓMO CONFIGURAR DHCP EN SUSE LINUX

Protocolo ARP. Address Resolution Protocol

Encaminamiento de paquetes con IP

Comunicación entre Procesos y Sockets

Administración de la red (Windows 2008)

Estructuras y funciones de programación de sockets.

Práctica 2 Programación de Aplicaciones Distribuidas: Sockets TCP. Laboratorio de Comunicación de Datos ITT Telemática 26 de Septiembre 2011

LABORATORIO DE REDES PRÁCTICA 1 COMANDOS BÁSICOS PARA LA CONFIGURACIÓN DEL NIVEL IP EN UNA RED DE SISTEMAS UNIX. 1. LA INTERFAZ loopback

Laboratorio de PCs. Práctica 3: Montaje de una red de Área local

Práctica 2. Montaje de Redes Locales. Parte III

Definición de servidor DHCP

Luis Eduardo Peralta Molina Sistemas Operativos Instructor: José Doñe Como crear un Servidor DHCP en ClearOS

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO Facultad de Ingeniería Redes de Datos Práctica 6 Capa2 Modelo OSI

Administración de redes IP. Localización y manejo de problemas

Facultad de Ciencias del Hombre y la Naturaleza SISTEMAS OPERATIVOS DE REDES CICLO II Materia: Sistemas Operativos de Redes Tema:

Tipos de conexiones de red en software de virtualizacio n: VirtualBox y VMware

SOCKETS en Linux. Lic. Leonardo de - Matteis. Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 2011

Apartado: BrutaliXL Versión: 3 Título: Cortafuegos - Iptables Fecha:

PRÁCTICA 1-2: INSTALACIÓN Y ADMINISTRACIÓN DE UN SERVIDOR DNS (PRIMARIO Y ZONA DE RESOLUCIÓN DIRECTA E INVERSA EN WINDOWS 2008 SERVER)

RUTEO ESTATICO. Objetivo. Material. Desarrollo. Al término de esta práctica el alumno será capaz de:

DHCP. Simplificando la gestión de direcciones IP. El protocolo DHCP permite manejar rangos de direcciones IP de forma dinámica y automatizada.

WINDOWS : SERVIDOR DHCP

5.1. Qué es Internet? controla todo el sistema, pero está conectado de tal manera que hace

Transcripción:

Administración de redes en GNU/Linux La configuración de una red en UNIX/Linux es en cierta medida más compleja que en sistemas Microsoft. Sin embargo para numerosos administradores tiene un mayor grado de flexibilidad y fiabilidad, permitiendo diseñar fácilmente herramientas a medida que faciliten su control y administración. La configuración de la mayor parte de los servicios y recursos de un sistema UNIX se guarda en ficheros planos, ficheros de texto que podemos modificar con cualquier editor de texto ( Ej.- vi ). La localización de estos archivo se sitúa normalmente en el directorio /etc. En el propio sistema y en Internet podemos encontrar abundante documentación sobre administración de redes, existiendo numeras listas de distribuciones, canales de chat o news donde podemos solicitar información. Los parámetros básicos de configuración son los mismos de cualquier equipo sobre TCP/IP Nombre del host Dirección IP Mascara de red Servidores DNS Rutas por omisión. Principales ficheros: /etc/hostname /etc/hosts /etc/resolv.conf /etc/host.conf /etc/sysconfig/network /etc/inetd.conf Guarda el nombre del equipo Guarda el nombre y la dirección IP de los equipos de la red, puede ser utilizado tanto si tenemos o no configurado un servidor DNS Guarda el nombre del dominio principal y la dirección de los servidores de nombres (DNS) Guarda el orden de los métodos de resolución de nombre y direcciones IP Contiene los archivos de configuración de cada interfaz de conexión de red. ifcfg-lo ( Configuración TCP/IP de loopback) ifcfg-eth0 (Configuración TCP/IP de primer intefaz Ethernet) ifcfg-ppp0 (Configuración TCP/IP de la conexión PPP ) routes ( Rutas estáticas de encaminamiento de paquetes) Configuración de los servicios TCP/IP Asignación de servicios y programas que los tratan /etc/init.d Comandos de arranque y parada de los distintos servicios del sistemas ( demonios de UNIX) /etc/init.d/network ( arranca y para los interfaces de red) El nombre y localización de estos ficheros y el contenido de los mismos puede variar en función de la versión de UNIX: en las distintas distribuciones GNU/Linux (Mandrake, Rethat, Debian, SuSe, Linex,..) o en la versiones de HP (HP-UX), IBM (AIX), Sun ( SunOS), UNIX SCO, FreeBSD, etc. PRINCIPALES COMANDOS DE ADMINISTRACIÓN DE RED: ifup, ifdown, ifstatus: Arranca, para o muestra el estado de un interfaz de red, utilizando la configuración predefinida en los archivos /etc/sysconfig/network. Se suelen ejecutar automáticamente durante el arranque del sistema. Ej- ifup eth0, Arranca el interfaz de red de la primera tarjeta Ethernet ifconfig: Permite activar o desactivar el interfaz de red, fijar manualmente todos los parámetros de configuración básicos de TCP/IP la dirección IP, la mascara y la dirección de broadcast. Se puede activa la interfaz de red manualmente asociándole la dirección IP junto con la máscara de red y la dirección de

broadcast: Sintaxis básica: ifconfig <Interfaz> <dir_ip> netmask <máscara> broadcast <broadcast> Ej.- ifconfig eth1 138.100.58.45 netmask 255.255.255.0 broadcast 138.100.58.255 Para mostrar la configuración actual: ifconfig a Para activa o desactivar un interfaz de red: ifconfig eth1 up ifconfig eth1 down Una mismo interfaz de red eth0 puede tener varias IP o alias si definimos los archivos correspondientes. Por ejemplos si definimos los ficheros: ifcfg-eth0 ifcfg-eth0:0 La misma tarjeta Ethernet eth0 tendrá dos IP cada uno configurado en su archivo. route: Permite gestionar las rutas estática de encaminamiento de los paquetes IP. Ejemplos: route add -net 192.56.76.0 netmask 255.255.255.0 dev eth0 -- Los paquetes de a la red 192.56.76.0 se envía directamente por la tarjeta eth0 route add default gw 192.56.76.1 -- El gateway/router por omisión es el 192.56.76.1 route add -net 192.168.12.0 netmask 255.255.255.0 gw 192.168.1.3 eth1 -- Para enviar paquetes por a la red 192.168.12 los envío por la tarjeta eth1 a través del gateway 192.168.1.3 route del -net 192.168.1.0 netmask 255.255.252.0 -- Borra la ruta hacia la red 192.168.1.0 route -n -- Muestra las rutas activas

HERRAMIENTAS DE MONITORIZACIÓN Y CONTROL netstat: Permite ver el estado de la red: Interfaces de red, conexiones activas, tablas de rutas Ejemplos: netstat -i -- Estado de los interfaces de red netstat -nt -- Tabla de rutas netstat -t inet -a Conexiones activas vía TCP/IP arp: Maneja la tabla de asignación direcciones MAC : direcciones IP ping: Comando estándar de envío de mensajes ICMP de solicitud de eco. traceroute: Permite comprobar la ruta de los paquetes a través de la red. HERRAMIENTAS DE ANÁLISIS DEL TRÁFICO EN LA RED Modo texto: tcpdump, iptraf Modo gráfico: Ethereal ( Sniffer con licencia GNU) PROGRAMAS CLIENTES DE RED: UNIX/LINUX suelen incluir la mayoría de los clientes y servidores de aplicaciones en sobre TCP/IP : telnet, ftp, ssh, scp, mail, news, irq, dhcp, http, etc. UTILIDADES DE ADMINISTRACIÓN: La mayor parte de las versiones de UNIX/LINUX incluyen utilidades de administración que facilitan el manejo de la red sin tener que acceder directamente a los archivos de configuración. netconf / linuxconf ( Mandrake / Redhat) yast ( SuSe) sam (HP-UX) scoadmin (SCO UNIX) ( SunOS) webmin (Administración mediante una página web )

COMUNICACIÓN EN LA RED 1.- Sockets : Modelo IPC de 4.3BSD permite la comunicación entre procesos dentro de una misma máquina o en máquinas distintas conectadas mediante distintos tipos de redes, soportando múltiples protocolos. Ventajas de los sockets - Transparentes: Un proceso que lee o escribe de la entrada y salida estándar puede hacerlo directamente de un sockets sin cambiar una sola línea de código. - Eficiente: No genera una gran carga al sistema operativo. - Alto nivel: Ofrece una librería a nivel de transporte - Compatible: Permite utilizar múltiples protocolos El uso sockets es un modelo estándar de trabajo sobre redes TCP/IP tanto en intranet como Internet existiendo librerías de sockets en casi todos los sistemas operativos: Unix, Linux, MacOS, Windows XX. Es la base sobre la que se han desarrollado la mayor parte de las aplicaciones cliente - servidor de Internet: páginas web, correo, chat, ftp, telnet, etc. Ofrece un modelo compatible con la E/S estándar sobre ficheros. Un programa que lee y escribe de la entrada y salida estándar puede hacerlo igualmente sobre un socket. Procedimiento básico: Abrir y configurar los sockets, crear un proceso hijo, redireccionar, y arrancar mediante exec: la entrada y salida estándar de cualquier proceso puede estar redireccionada a un sockets. Ej.- telnet redirecciona la entrada y salida del al shell ( bash) MODELO ISO / OSI y su correspondencia con las REDES TCP/IP Aplicación Presentación Aplicación: http,ftp,smtp Sesión Transporte Red Enlace Físico TCP / UDP IP Acceso a Red Los sockets constituyen una Librería de acceso al Nivel 4: a los protocolos de Transporte TCP y UDP Una conexión mediante sockets TCP/IP se establece definiendo: La comunicación mediante Socket se realiza indicando: dirección IP, puerto, dirección IP, puerto, protocolo (tcp/udp) 194.35.135.5 Puerto 1256 Puerto 80 200.4.120.10 Ej.- Conexión a un servidor de páginas web: protocolo http sobre tcp

TCP/IP En UNIX y GNU/Linux Ficheros de configuración: /etc/hosts Tabla estática con la dirección de los servidores en la red. Formato: DirecciónIP Nombre.dominio alias 127.0.0.1 localhost 192.168.1.10 foo.mydomain.org foo 192.168.1.13 bar.mydomain.org bar 216.234.231.5 master.debian.org master 205.230.163.103 www.opensource.org /etc/services Descripción de los servicios predefinidos nombre puerto / protocolo Campo informativo alias Ej.- ftp-data 20/tcp File Transfer [Default Data] ftp 21/tcp File Transfer [Control] ssh 22/tcp Secured Shell telnet 23/tcp Telnet smtp 25/tcp Simple Mail Transfer time 37/tcp/udp Time nameserver 42/tcp/udp Host Name Server nicname 43/tcp/udp Who Is domain 53/tcp/udp Domain Name Server Numeración de los Puertos 1-1024 Privilegiados: sólo un proceso perteneciente al superusuario (root) puede enlazarse y ser servidor de uno de estos puertos ( medida de seguridad). Predefinidos en la norma RFC 1700 /etc/inetd.conf Fichero de configuración del superservidor inetd ( En Mandrake se utiliza otro sistema ) servicios, tipo de protocolos, modo de arranque, usuario, programa, parámetros ftp stream tcp nowait root /usr/bin/ftpd ftpd telnet stream tcp nowait root /usr/bin/telnetd telnetd talk dgram udp wait root /usr/bind/talkd talkd Todos los servicios suelen tener un proceso cliente y otro servidor: Ej.- ssh (cliente) y sshd (demonio o servidor ) Todos estos servidores no están siempre activos si no que son arrancados por el superservidor inetd cuando hay alguna petición para ellos Ej.- ftp, telnet Hay servicios que pueden estar configurados para estar siempre activos y no ser arrancados por inetd, son arrancando automáticamente durante el inicio del sistema, para tenerlos siempre activos a la espera de peticiones Ej.- httpd (apache) y sendmail (correo electrónico ), proftpd (ftp en Mandrake). Es decisión del administrador que servicios están siempre activos o son arrancados automáticamente por el inetd /etc/protocol Identificación de los distintos protocolos También existen ficheros similares sobre Windows 98: en c:\windows hosts, services y protocol

SOCKETS (Conectores, enchufes ) Un sockets establece una conexión virtual entre dos procesos, es labor del programador definir el tipo de información que se intercambian: son los protocolos de nivel superior http, ftp, pop, smtp Mediante sockect se puede establecer comunicaciones con distintas familias de protocolos: PF_UNIX / PF_LOCAL ( socket dentro de la misma maquina, similar a la FIFO pero Bidireccional o Dúplex) PF_INET ( socket sobre TCP/IP) incluye los protocolos TCP y UDP PF_INET6 ( socket sobre Internet versión 6) PF_IPX ( socket sobre redes IPX ( Novell/ netware) PF_X25 ( socket sobre X25 ) Nivel 3 de la ISO PF_SNA ( socket sobre SNA ) Red de IBM FAMILLIA PF_INET Protocolo de red: IP : Paquetes de datos que van de origen a destino, no se controla el orden, la pérdida o duplicación de lo mismos, este protocolo de red realiza el encaminamiento y controla si hay errores en la datos contenidos en cada paquete. Protocolos de transporte: TCP : Controla la secuencia y el orden ( modo conexión ) pero no los límites del mensaje UDP: Simular a IP, pero no controla el orden ni la pérdida ( sin conexión) si controla los límites del mensaje Una conexión mediante sockets TCP/IP se establece definiendo: < dirección IP, puerto, dirección IP, puerto, protocolo (tcp/udp) > Una misma máquina (una dirección IP) puede tener múltiples conexiones con otra máquina ( otra dirección IP) si se utilizan distintos puertos FORMATO DE DIRECCIONES DE SOCKETS /* Formato general */ struct sockaddr { short sa_family; char sa_data[14]; /* Dirección en sockets PF_UNIX */ struct sockaddr_un { short sa_family; char sun_path[108]; /* Ruta al archivo socket */ /* Dirección en sockets PF_INET */ struct sockaddr_in { short sin_family; /* Familia */ short sin_port; /* Puerto */ long sin_addr; /* Dirección IP, En algunos : struct in_addr sin_addr; */ char sin_zero[8]; struct in_addr { long s_addr; /* 4 bytes 192.168.12.100 */

TIPOS DE SOCKETS BÁSICOS : - SOCK_STREAM ( Circuitos virtuales, con conexión ) Bidireccional, Entrega fiable y ordenada, se detecta la pérdida de paquetes y los paquetes duplicados, no mantiene los limites de los mensajes, comunicación orientada a conexión envío y recepción al mismo destino, comunicación 1 a 1 - SOCK_DGRAM ( Modo datagrama, Conmutación de paquetes, sin conexión ) Bidireccional, No fiable, no se garantiza el orden y puede existir duplicidad y paquetes perdidos, se mantiene los límites de los mensaje, comunicación sin conexión Se puede enviar y recibir cada mensaje de destinos y orígenes diferentes, 1 socket - > N destinos o Ndestinos -> sockets - SOCK_RAW ( Crudo sin tratar) permite accede al protocolo interno IP FUNCIONES PARA EL MANEJO DE SOCKETS Básicas : socket - Crea el canal o socket ( Sin configurar ni conectar con nada ) (C/S) bind - Define o asigna un puerto a socket y lo hace público (S) listen - Define una lista de espera para pendientes de conexión al sockets (S) accept - Acepta conexiones devuelve un sockets nuevo con la conexión establecidad (S) conect - Intenta establecer una conexión con a un puerto determinado read, recv, recvmsg - Recibir / leer mensajes del sockets, write, send, sendmsg - Enviar / Escribir mensaje al sockes close - Cierra la conexión y libera el descriptor de fichero shutdown - Cierra un socket para envio recepción o ambos FUNCIONES SOBRE DIRECCIONES Y SERVICIOS : 1.Obtener información sobre un servidor struct * hostent gethostbyname ( const char *nombre ) // Apartir del nombre struct * hostent gethostbyaddr (const void *addr, int len, int type); // A partir de la dirección struct hostent { char *h_name; /* nombre oficial del anfitrión */ char **h_aliases; /* lista de alias */ int h_addrtype; /* tipo dirección anfitrión */ int h_length; /* longitud de la dirección */ char **h_addr_list; /* lista de direcciones */ Esta funciones acceden al fichero /etc/hosts y realizan peticiones al servidor de nombres DNS. int gethostname( char *nombre, int longitud ) Obtiene el nombre del host del equipo local 2.Obtener el puerto que trata un servicio especifico Consulta del fichero /etc/services struct servent *getservbyname(const char *name, const char *proto); struct servent *getservbyport(int port, const char *proto);

Estructura devuelta por la funciones anteriores: struct servent { char *s_name; /* nombre oficial del servicio */ char **s_aliases; /* lista de alias */ int s_port; /* número de puerto */ char * s_proto; /* protocolo a usar */ 3.Transformar el formato de direcciones Existen tres posibles formatos de una dirección IP: -En forma de cadena 192.168.15.14 -Como long en formato interno del equipo (En PC procesadores Intel Primero se almacena el byte de menor peso ) -Como long en formato del red ( Primero se almacena el byte de mayor peso ) unsigned long int inet_addr (const char *cp); 192.168.1.10 -> dirip en formato Red char * inet_ntoa (struct in_addr in); dirip en formato Red -> 192.168.1.10 Funciones para cambiar: entero corto y largo entre formato interno y el de la red. unsigned long int htonl(unsigned long int hostlong); long de host a net unsigned short int htons(unsigned short int hostshort); short de host a net unsigned long int ntohl(unsigned long int netlong); long de net a host unsigned short int ntohs(unsigned short int netshort); short de net a host FUNCIONES BASICAS socket - Crea el canal o socket ( Sin configurar ni conectar con nada ) (C/S) #include <sys/types.h> #include <sys/socket.h> int socket(int dominio, int tipo, int protocolo); Socket crea un extremo de una comunicación y devuelve un descriptor. bind - Define o asigna un puerto a un socket y lo hace público (S/C) int bind(int fd, struct sockaddr * dirección, socklen_t tamaño); bind da al conector fd la dirección local midirección. Que tiene una longitud de tamaño bytes. Tradicionalmente, esto se conoce como "asignar un nombre a un conector." listen - Define una lista de espera para pendientes de conexión al sockets (S) int listen(int s, int backlog); Para aceptar conexiones, primero se crea un conector con socket(2), luego se especifica con listen el deseo de aceptar conexiones entrantes y un límite de la cola para dichas conexiones accept - Acepta conexiones devuelve un socket nuevo con la conexión establecida (S)

int accept(int s, struct sockaddr *addr, socklen_t *addrlen); La función accept se usa con conectores orientados a conexión (SOCK_STREAM). Extrae la primera petición de conexión de la cola de conexiones pendientes, le asocia un nuevo conector con las misma propiedades que s y reserva un nuevo descriptor de fichero para el conector. El parámetro de sálida addr contiene la dirección del equipo remoto que ha realizado la conexión. connect - Intenta establecer una conexión con a un puerto determinado int connect ( int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen); (C) El descriptor de fichero sockfd debe referenciar a un conector. Si el conector es del tipo SOCK_DGRAM entonces la dirección serv_addr es la dirección a la que por defecto se envían los datagramas y la única dirección de la que se reciben datagramas. Si el conector es del tipo SOCK_STREAM, esta llamada intenta hacer una conexión a otro conector. El otro conector está especificado por serv_addr, la cual es una dirección (de longitud addrlen) en el espacio de comunicaciones del conector. read, recv, recvmsg - Recibir / leer mensajes del sockets, int recv (int s, void *buf, size_t lon, int flags); int recvfrom (int s, void *buf, size_t lon, int flags, struct sockaddr *desde, socklen_t *londesde); int recvmsg (int s, struct msghdr *msg, int flags); Las llamadas recvfrom y recvmsg se emplean para recibir mensajes desde un conector (``socket''), y pueden utilizarse para recibir datos de un conector sea orientado a conexión o no. write, send, sendmsg - Enviar / Escribir mensaje al sockes in send (int s, const void *msg, size_t len, int flags); int sendto (int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen); int sendmsg (int s, const struct msghdr *msg, int flags); Send, sendto y sendmsg son utilizados para transmitir un mensaje a otro conector. Send solo puede ser usado cuando un conector está en un estado connected mientras sendto y sendmsg pueden ser utilizados en cualquier momento, enviando los datos a distintas direcciones. shutdown - Cierra un socket para envío recepción o ambos int shutdown(int s, int como); La llamada a shutdown causa que se cierre completamente o en parte una conexión bidireccional en el zócalo asociado con s. Si como es 0, no se permitirán más recepciones. Si como es 1, no se permitirán más envíos. Si como es 2, no se permitirán más envíos ni recepciones. close - Cierra la conexión y libera el descriptor de fichero int close(int fd); close cierra un descriptor de fichero ( o socket asociado) de forma que ya no se refiera a fichero o conexión alguno y pueda ser reutilizado.

ESQUEMA CLIENTE SERVIDOR CON SOCK_STREAM (TCP) CLIENTE SERVIDOR Actividad Llamada al sistema Actividad Llamada al sistema Crear el socket socket() Crear el socket socket() Fijar la dirección del sockets, bind() indicar IP y puerto a reservar Definir la cola de espera de listen() peticiones de conexión Solicitar conexión connect() Aceptar conexión accept() Enviar datos write() send() Leer datos read() recv() Recibir datos read() recv() Enviar datos write() send() Desconectar close() Desconectar close() ESQUEMA CLIENTE SERVIDOR CON SOCK_DGRAM (UDP) CLIENTE SERVIDOR Actividad Llamada al sistema Actividad Llamada al sistema Crear el socket socket() Crear el socket socket() Fijar la dirección del sockets, indicar bind() Fijar la dirección del sockets, bind() IP y puerto a reservar indicar IP y puerto a reservar Enviar mensaje sendto() Recibir mensaje recvform() Recibir mensaje recvform() Enviar mensaje sendto() Desconectar ( cerrar socket) close() Desconectar ( cerrar socket) close() En socket UDP, el cliente puede utilizar la función connect si va a enviar y recibir mensaje a la misma dirección. En este caso puede utilizar funciones write, read o send, recv sin especificar el origen o el destino del mensaje. EJEMPLOS: 1. Obtener información a partir de un nombre : consultarnombre 2. Obtener información de un servidor a partir de una dirección IP : consultardir 3. Ver formatos de los datos enteros en PC y en RED : formatos 4. Escanear una serie de puertos TCP para intentar conectarnos: scantcp 5. Cliente y servidor interactivo TCP: clientetcp y servidortcp 6. Servidor concurrente. servidormtcp 7.Cliente y servidor de un minichat : michats y michatc 8. Cliente y servidor interactivo sobre UDP: clienteudp y servidorudp