Programación de Sockets



Documentos relacionados
Comunicación entre Procesos y Sockets

Encriptación en Redes

MICQ. Trabajo Práctico Final Seminario de Ingeniería en Informática I Facultad de Ingeniería, UBA. Junio Cátedra: Pablo Cosso

GUÍA BÁSICA USUARIO MOODLE 2.6

ARQUITECTURAS CLIENTE/SERVIDOR

TELEPROCESO Y SISTEMAS DISTRIBUIDOS

ENVÍO DE POR MEDIO DE SMTP

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

INTERNET 4º ESO INFORMATICA / DEP. TECNOLOGIA

Introducción a las Redes de Computadoras. Obligatorio

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

Capitulo 5. Implementación del sistema MDM

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

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

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

MENSAREX: SISTEMA DE MENSAJERÍA DEL MINREX Gretel García Gómez Ministerio de Relaciones Exteriores Cuba.

SOLUCIÓN ACTIVIDAD. Diagrama de topología Red punto a punto Redes conmutadas. Objetivos de aprendizaje. Información básica

COMUNICACIÓN ENTRE PROCESOS SOCKETS

Aplicaciones Cliente/Servidor en Gambas Prof: Mileti, P.

INSTITUTO TECNOLÓGICO DE SALINA CRUZ. Fundamentos De Redes. Semestre Agosto-Diciembre Reporte De Lectura

4 ARQUITECTURA DE COMUNICACIONES

Enlace web remoto a travez de SSh Juan Badilla Riquelme Anibal Espinoza Moraga Cesar Reyes Pino

HOW TO SOBRE FIREWALL

Aplicación para la gestión de prácticas en empresas. Memoria

Guía de Apoyo Project Web Access. (Jefe de Proyectos)

Laboratorio 2 Introducción al DNS (Domain Name System)

INSTITUTO TECNOLOGICO DE LAS AMERICAS (ITLA) Nombre: Brayhan E. Acosta Hiciano. Matricula: Materia: Sistema Operativo III

Diseño e implementación de un sistema de seguridad perimetral ZENTYAL. Henry Alexander Peñaranda Mora cod Byron Falla cod

Muchas veces es necesario también hacer la operación inversa, de donde surge el nombre de Resolución Inversa.

Redes Locales: El protocolo TCP/IP

UNIVERSIDAD DE SALAMANCA

Redes Paso a Paso. Descripción. Redes en Educación 2

Aspectos Básicos de Networking

Arquitectura de Redes y Sistemas de Telecomunicación

MANUAL DEL USUARIO PRINCIPAL

GedicoPDA: software de preventa

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

Arquitecturas cliente/servidor

ACTIVIDAD No. 2 REPASO DE REDES INFORMATICAS

Gracias a ese IP único que tiene cada ordenador conectado a la red de internet se pueden identificar y comunicar los ordenadores.

Introducción de Sockets en C.

Sistema de Captura Electrónica

Webpay. ELO-322 Redes de Computadores I. Yeraldy Cabrera Troncoso Aldo Passi Rojas. Primer semestre 2015

Actividad 7: Configuración de CX-Server OPC de Omron.

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

CAPITULO 5 CASO DE ESTUDIO: ONTOLOGÍA PARA EL ANÁLISIS DE GRUPOS DE INVESTIGACIÓN (OAGI)

Tema 4.1: - TRANSPORTE-

Capitulo I. Introducción

Capas del Modelo ISO/OSI

INTRODUCCIÓN. El protocolo TCP, funciona en el nivel de transporte del modelo de referencia OSI, proporcionando un transporte fiable de datos.

Introducción a la Firma Electrónica en MIDAS

DHCP. Dynamic Host Configuration Protocol. Protocolo de Configuración Dinámica de Host. Administración de Redes de Computadores

SINAUTO. (Captura Requirimientos) GRUPO 03

DOMINIOS DE NIVEL SUPERIOR A NIVEL MUNDIAL.

Clientes del dominio

PROGRAMACIÓN ORIENTADA A OBJETOS

Sockets en Java. La Creatividad proviene de un conflicto de ideas. Uso de Sockets

Práctica 1: sockets en Python

Protocolo de Internet: IP

Instalación de Casandra Para instalar cassandra se recomienda tener la última versión de JAVA instalada.

WINDOWS : SERVIDOR DHCP

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

4 Pruebas y análisis del software

Compartir Biblio en una red local con Windows XP

QUÉ ACTIVIDADES PODEMOS HABILITAR EN EL CAMPUS VIRTUAL?

Luis Villalta Márquez

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

Introducción a las Redes de Computadoras

Manual Operativo Sistema de Postulación Online

Host. En este texto, entenderemos por host toda máquina - léase computadora. Cuenta. Una cuenta, en general, es un espacio de memoria y de disco que

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

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

Unidad Didáctica 12. La publicación

Uso del Shield Ethernet con Arduino

Roles y Características

CAPÍTULO 3 VISUAL BASIC

GUÍA DE USUARIO DEL CORREO

Introducción. Destaques del Software

Comunicación de PC mediante puerto serie

ABAP Proxy Objects Configuración del Entorno

COMO CREAR UN DIAGRAMA DE FLUJO

SMS para empresas de software

Recuperador datos externos

El Modelo de Referencia OSI

CIF-KM. GUÍA DE LOS PRIMEROS PASOS

2. Accedemos al dominio, introducimos el nombre de usuario y la contraseña para acceder. Y damos click en Aceptar.

Activación de un Escritorio Remoto

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

POLITÉCNICO NACIONAL ESCUELA SUPERIOR DE INGENIERIA MECANICA Y ELECTRICA

Capítulo V. Implementación

Administración de sistemas UNIX/Linux Práctica Colección de scripts para la configuración de una infraestructura de máquinas UNIX

Skype. Inguralde [Enero 2011]

GUÍAS FÁCILES DE LAS TIC

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Pantalla inicial. Primera vez. Manual sobre el uso de la aplicación: Admisión en Línea

Transcripción:

Programación de Sockets Intergantes: Bryan Jeldes, Eduardo Arancibia, Fabricio Rosales, Mathias Oyarzun Universidad Técnica Federico Santa María, 28-07-2014

Resumen En la década de los 80 s, cuando se utilizaba la red ARPANET y ARPA Internet, el sistema operativo modificado 1 BSD UNIX, necesitaba facilitar el diseño de aplicaciones que utilizaran dichas redes; por tal motivo, se creó la Interfaz de Programación de Sockets. 2 Sockets, es un método de comunicación programable por el cual un proceso puede conectarse y enviar flujos de datos a otros procesos que están dentro de un mismo sistema, o en una maquina completamente distinta. En nuestro proyecto nos centramos netamente en programar sockets que conecte procesos en máquinas distintas. Mostramos la programación de sockets en algunos lenguajes, relacionamos funciones incluidas en la programación, conocimos que necesitaba un socket para que funcionara, etc. Y en la práctica, tratamos de entablar la comunicación entre un programa cliente y un programa servidor, que estaba alojado en una Raspberry PI, a través del lenguaje de programación Python, e investigamos con el programa Wireshark como los programas enviaban la información con sus respectivos paquetes. Finalmente, pudimos hacer efectiva la comunicación a la Raspberry P; enviábamos mensajes del cliente, ejecutado en un notebook, al servidor y comprobamos con Wireshark los paquetes enviados. 1 Programación de Sockets por Xavier Perramon Tornil y Enric Peig Olivé, UOC. 2 http://es.wikipedia.org/wiki/socket_de_internet, 1

Introducción La presente investigación se refiere al uso de los sockets, y en específico a los sockets que poseen su espacio de nombre en formato Internet, es decir, procesos que se comunican alojados en máquinas distintas. El objetivo principal era averiguar cómo se programaba uno de estos conectores, hacerlo funcionar en la práctica y estudiar los componentes que se necesitaban para que este se ejecutara. Con este fin, se planteó la idea de hacer un programa cliente y un programa servidor que intercambiaran mensajes entre sí, como una especie de chat arcaico; el cliente seria alojado en un notebook, con un código específico, y el servidor en una Raspberry PI. En pro del objetivo principal, se usó el lenguaje de programación Python para llevar a cabo estos programas (para fines prácticos, Python era la mejor opción, ya que era simple y rápido para mostrar el funcionamiento del codigo), se buscaron los componentes necesarios para que un socket funcionara, se programó un código en Python que enviara mensajes a otro programa ejecutado en otra máquina, en este caso una Raspberry PI. En general, se tratara de evaluar la complejidad de programar sockets, estudiar sus componentes y funciones, y además, comprobar los paquetes que este envía al servidor y viceversa.

Programación de Sockets En primera instancia, para programar un socket, escogimos una especie de clienteservidor(modelo P2P) que se comunicaran a través de mensajes. Ahora se mostraran las funciones utilizadas para hacer funcionar los códigos. El código del programa Cliente: -HOST y PORT: Se inicializan estas variables con valores fijos, ya que para fines prácticos, lo conectaremos al servidor con un IP y puerto prefijado (dentro de un red doméstica). -socket(af_inet, SOCK_STREAM): función que crea el socket. AF_INET hace alusión a la comunicación en máquinas distintas. SOCK_STREAM indica que se transportaran los datos vía TCP. -s.connect(host, PORT): conecta al servidor prefijado. -s.send(message): envía el mensaje escrito por el cliente. -s.recv(): recibe un mensaje proveniente del servidor. -s.close(): Cierra la conexión.

El código del programa Servidor: -socket(af_inet, SOCK_STREAM): Lo mismo que en el cliente, AF_INET para conectarse a otra maquina, y SOCK_STREAM para usar transporte via TCP. -s.bind(host, PORT): Se le asigna una dirección y un puerto al servidor. Al igual que antes estos ya están prefijados, sin embargo, HOST no es necesario en este caso, solo el puerto. s.listen(1): Indica cuantas conexiones aceptara. En este caso aceptaría una sola conexión. s.accept(): Acepta la conexión entrante. Esta variable es una tupla y es igualada a las variables conn y addr. Conn.recv(1024),Conn.sendall(reply), con.close():.recv recibe lo que le envio el cliente,.sendall(reply) envía a todos lo que esta en reply y con.close() cierra la conexión. Finalmente, se puede comprobar con WIRESHARK que al enviar mensajes al servidor, estos se comunican gracias a los sockets que utilizan los puertos respectivos:57713 para el cliente y 6975 para el servidor.

Conclusiones En este proyecto se averiguo el cómo se programaba un socket en bruto, usando algún lenguaje de programación, que en este caso fue 3 Python. Se investigaron las funciones que utilizaban los códigos para entender el cómo funcionaba un socket, como se comunicaba con un proceso alojado en otra máquina. Se programó el cliente en un notebook y el servidor en una Raspberry PI, y se comprobó que se pueden comunicar a través de sockets, verificándolo con Wireshark. 4 Además en el proceso de investigación se observo cómo se programaba en otros lenguajes que no eran python como C y Java, estos dos ultimos fueron abordados de manera general sin embargo se llegó al concenso de que el sistema es igual para todos, lo que cambia es el cómo se programa pero en esencia todos usan las mismas funciones al fin y al cabo. En conclusión, los sockets cumplieron ampliamente la tarea que se les dio cuando fueron creados para ARPA Internet, y creemos que serán mejorados en el futuro facilitando aún más el diseño de programas que necesiten comunicarse con sistemas. 3 http://victorpando.blogspot.com/2008/12/programacin-de-sockets-con-python.html 4 http://es.tldp.org/tutoriales/prog-sockets/prog-sockets.html y Programación de Sockets por Xavier Perramon Tornil y Enric Peig Olivé, UOC.

Referencias http://es.tldp.org/tutoriales/prog-sockets/prog-sockets.html http://es.wikipedia.org/wiki/socket_de_internet http://victorpando.blogspot.com/2008/12/programacin-de-sockets-conpython.html Programación de Sockets por Xavier Perramon Tornil y Enric Peig Olivé, UOC.