Comunicación entre procesos: sockets tcp. Jorge Iván Meza Martínez jimezam@gmail.com



Documentos relacionados
Sockets. Introducción. Las redes de computadoras permiten al usuario. Curso Propedéutico Maestría en Ciencias de la Computación BUAP

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

Tema 4.1: - TRANSPORTE-

WEB Y HTTP. HTTP: Hypertext Transfer Protocol [RFC 1945] [RFC 2616] Web Page URL (Uniform/Universal Resource Identifier)

1.- FUNDAMENTOS FUNCIONAMIENTO GENÉRICO JAVA SOCKETS Creación de Streams de Entrada...7

ARQUITECTURAS CLIENTE/SERVIDOR

Lab 01: Programación de Sockets en TCP

Arquitecturas cliente/servidor

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

Índice general. Tipos de servicio de transporte. Por qué un nivel de transporte? TEMA 6 Funciones de los niveles superiores. Miguel A.

Introducción a redes Ing. Aníbal Coto Cortés

Capa de TRANSPORTE. Ing. José Martín Calixto Cely Original: Galo Valencia P.

SendMail. delaf.sytes.net. Instalación y envio de s L A TEX. 28 may Universidad Nacional Andrés Bello

Examen de Redes - Primer Parcial - ETSIA 26 de Enero de 2006

Tutorial BMS Server Studio UDP

Correo Electrónico, Representación y Transferencia. ELO322: Redes de Computadores Agustín J. González

Enlace para bajar la herramienta: ftp://ftp.cs.stir.ac.uk/pub/staff/kjt/software/jasper-1.3.tar.gz

Qué equilibra la importancia del tráfico y sus características con el fin de administrar los datos? Estrategia QoS

Nivel de Transporte en Internet

ISP s. Tier-1: Tier-2:

Comunicacion en Java. Alejandro Escobar

Telnet Comunicaciones 1. Luis Alfredo da Silva Gregori Gonzalez Rhamin Elrhouate July 2014

Práctica de laboratorio 3.4.3: Protocolos y servicios de correo electrónico

Práctica de laboratorio 4.5.2: Protocolos de la capa de Transporte TCP/IP, TCP y UDP Diagrama de topología

Práctica 1. Uso básico de servicios cliente-servidor

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

Univ. de Concepción del Uruguay Facultad de Ciencias Agrarias Ingeniería Agrónoma

Federico Peinado

Comunicación entre procesos: sockets udp. Jorge Iván Meza Martínez

UNIVERSIDAD POLITÉCNICA DE PACHUCA SOCKETS EN JAVA

Introducción a las redes de Computadoras Capítulo 2 Clase 2


Nivel de transporte: UDP

CAPA DE APLICACIÓN. 80 s : Aplicaciones basadas en texto o o acceso remoto o transferencia de ficheros o grupos de noticias o chat

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

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

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

TCP: Carácterísticas Establecimiento y finalización de conexiones

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

Clase 23 FTP. Telnet. Ejemplos Tema 6.- Nivel de aplicación en Internet

Red LSUB. 4 de marzo de 2015 GSYC

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

TEMA 7 PROTOCOLOS DE TRANSPORTE. TCP Y UDP.

Introducción a las Redes de Computadoras. Obligatorio

COMUNICACIÓN ENTRE PROCESOS SOCKETS

TEMA: PROTOCOLOS TCP/IP

Conceptos básicos de redes TCP/IP

Cátedra de Sistemas Distribuidos Escuela de Ingeniería Electrónica Departamento de Sistemas e Informática

Por lo tanto, podemos discriminar dos tipos de agentes que están involucrados en la transferencia de correo, MUA y MTA:

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

PROGRAMACIÓN PÁGINAS WEB CON PHP

MANUAL DE USUARIO. Webservice simple para la exportación rápida de información proveniente de una base de datos. Versión 0,1,1


Introducción a Postfix

La capa de Aplicación

Introducción a las Redes de Computadoras

Comunicación entre Procesos y Sockets

Redes de Computadores I

La vida en un mundo centrado en la red

Proyecto de Grado 2008 Anexo VII IP4JVM Glosario

1. Definición de puerto 2. Sockets 3. Conceptos cliente/servidor 4. Definición de Stream 5. Concurrencia, multiprogramación y multitarea 6.

Documento de trabajo Fundació Antoni Tapies

CAPITULO 2 COMUNICACION ATRAVES DE LA RED

Laboratorio de Redes de Computadores

Internet y sus Servicios

LA ARQUITECTURA TCP/IP

Introducción Mensajes UDP. Asignación de puertos a procesos. Bibliografía [COM06] Internetworking with TCP/IP, Cap. 11.

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP

ESCUELA DE INGENIERÍA DE SISTEMAS Y COMPUTACION. JOHN GÓMEZ CARVAJAL johncar@univalle.edu.co

3º Practica Servidor de Correo en Centos Postfix. Sistema Principal 1) Obtener e instalar el servidor de correo Postfix.

Una ACL es una lista secuencial de sentencias de permiso o denegación que se aplican a direcciones IP o protocolos de capa superior.

I. Verdadero o Falso (16 puntos)

Redes de Datos 1er parcial año 2010

ARQUITECTURA DE REDES Laboratorio

Protocolo PPP PPP Protocolo de Internet de línea serie (SLIP)

ENVÍO DE POR MEDIO DE SMTP

Laboratorio práctico Cómo hacer un diagrama de los flujos de tráfico de Intranet

1. Instala servicios de configuración dinámica, describiendo sus características y aplicaciones.

Ejercicios Tema 5. a) Órdenes del protocolo FTP necesarias para su ejecución. b) Número y tipo de conexiones necesarias.

Protocolos de red. IP: Internet Protocol

DIPLOMADO EN SEGURIDAD INFORMATICA

Laboratorio práctico 5.5.3: Desarrollo de las ACL para implementar conjuntos de reglas de firewall

Redes de Computadoras Junio de Teoría y problemas

Servidor FTP. Ing. Camilo Zapata Universidad de Antioquia

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

Modelos de los sistemas distribuidos. Jorge Iván Meza Martínez

Protocolo IP. Campos del paquete IP:

TELEPROCESO Y SISTEMAS DISTRIBUIDOS

Diego Auyón Redes 27 de Mayo de Port Scanning

CELERINET ENERO-JUNIO 2013 ESPECIAL

Servidor FTP en Ubuntu Juan Antonio Fañas

Instituto Tecnológico de Costa Rica Escuela de Ingeniería Electrónica. Analizador de protocolos

Agente local Aranda GNU/Linux. [Manual Instalación] Todos los derechos reservados Aranda Software [1]

Telnet. Telnet Operación

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

La herramienta nmap. Nmap. Roberto Gómez Cárdenas La herramienta nmap. Dr.

UNIDAD MODELO OSI/ISO

Programación páginas web. Servidor (PHP)

Hay dos tipos de conexiones posibles cuando se trata de redes. Punto a punto conexiones proporciona un enlace dedicado entre dos dispositivos.

OBJETIVOS DE APRENDIZAJE

Transcripción:

Comunicación entre procesos: sockets tcp Jorge Iván Meza Martínez jimezam@gmail.com Especialización en Gestión de Redes de Datos Universidad Nacional de Colombia Sede Manizales 1/30

Sockets con Transmission Control Protocol (TCP) 2/30

Contenidos Conceptos generales de los sockets TCP. Ventajas y desventajas de los sockets TCP. Usos mas frecuentes para los sockets TCP. Flujo de eventos durante una comunicación utilizando sockets TCP. Ejemplos de servicios de red en Internet orientados a conexión. Implementación de una conexión con sockets TCP en Java. 3/30

Evaluación pre-contenido 1. Cuáles es las principales características de los sockets TCP? 2. Cuáles son las ventajas y desventajas de utilizar sockets TCP? 3. Qué características implementan los sockets TCP para garantizar su confiabilidad? 4. Para qué tipo de aplicaciones o servicios es idóneo el uso de sockets TCP y para cuales no? 4/30

Características de los sockets TCP RFC 793. Son orientados a conexión. La información es enviada bajo la abstracción de un flujo de datos. Verifica la presencia de un destino al momento de establecer la conexión. Garantiza la entrega de los paquetes (mediante acknowledge) confiable. 5/30

Características de los sockets TCP Establece una ruta virtual (end-to-end) entre orígen y destino. Provee control de flujo para ser coherente con la velocidad de lectura y escritura del contexto. Los mensajes se ordenan y se eliminan los duplicados. Sus características mejoradas frente a UDP generar una costo extra de esfuerzo y tiempo (overhead). Envía la información en segmentos TCP: datos + cabecera TCP 6/30

Segmento TCP 7/30

Tamaño de la información A diferencia de UDP, TCP no restringe el tamaño de la información ya que esta se envía en un flujo de bytes. El cliente debe leer la información con el mismo protocolo que utilizó el servidor para enviarla (codificación). 8/30

Sockets TCP Lentos y congestionan pero fiables. Analogía: una llamada telefónica. 9/30

Modelo de fallos de TCP Métodos para garantizar la comunicación confiable Checksums de verificación detectar paquetes corruptos. Números de secuencia ordenar los paquetes y eliminar duplicados. ACK, timeouts y retransmisiones solventar los paquetes perdidos. 10/30

Usos de sockets TCP Servicios que requieran de transmisión confiable a pesar de su sobrecosto: HTTP FTP Telnet SSH SMTP 11/30

Sockets TCP 12/30

Actividad Utilizar el cliente telnet para establecer una conexión TCP con un servidor web. Mediante las primitivas del protocolo HTTP solicitar la consulta de una página web específica. $ telnet www.unal.edu.co 80 GET /index.html HTTP/1.1 Host: www.unal.edu.co User Agent: mi cliente telnet [Línea en blanco] 13/30

Actividad Realizar variaciones a la solicitud y observar la respuesta obtenida. Qué sucede si se solicita una página inexistente? Qué sucede si se omite la línea HOST del mensaje? Realizar las siguientes lecturas para complementar la actividad. Verbos del protocolo HTTP. Códigos de estado HTTP. 14/30

$ telnet whois.internic.net 43 Trying 199.7.50.74... Connected to whois.internic.net. Escape character is '^]'. jorgeivanmeza.com Whois Whois Server Version 2.0 Domain names in the.com and.net domains can now be registered with many different competing registrars. Go to http://www.internic.net for detailed information. Domain Name: JORGEIVANMEZA.COM Registrar: NEW DREAM NETWORK, LLC Whois Server: whois.dreamhost.com Referral URL: http://www.dreamhost.com Name Server: NS1.RHISSHOST.COM Name Server: NS2.RHISSHOST.COM Status: clienttransferprohibited Updated Date: 30 may 2011 Creation Date: 20 mar 2008 Expiration Date: 20 mar 2013 >>> Last update of whois database: Fri, 21 Sep 2012 08:01:36 UTC <<<... 15/30

$ telnet servidor.correo.com 25 Trying servidor.correo.com... Connected to servidor.correo.com. Escape character is '^]'. SMTP 220 servidor.correo.com Sendmail 4.1/SMI 4.1 ready at Fri, 5 Jul 93 13:13:01 MDT HELO servidor.correo.com 250 servidor.correo.com Hello localhost [127.0.0.1], pleased to meet you MAIL FROM: impostor 250 impostor... Sender ok RCPT TO: engañado@correo.com 250 engañado@correo.com... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Acabas de recibir una herencia en nigeria.... 250 Mail accepted QUIT 221 servidor.correo.com delivering mail Connection closed by foreign host. 16/30

Actividad Crear en el servidor una conexión servidor TCP utilizando la herramienta netcat. $ nc l 7777 Realizar la conexión desde el cliente utilizando la herramienta telnet. $ telnet localhost 7777 17/30

Actividad Utilizar nmap para realizar los siguientes escaneos de puertos. $ nmap su SERVIDOR $ nmap st SERVIDOR $ sudo nmap ss SERVIDOR $ sudo nmap O SERVIDOR $ nmap A SERVIDOR 18/30

Actividad Utilizar un sniffer de red como Wireshark que permita auditar el contenido del tráfico en la red. Identificar la traza de los eventos generados entre el cliente y el servidor junto con sus correspondientes mensajes de reconocimiento. Cuál es el problema de seguridad a nivel de transporte de este tipo de aplicaciones? 19/30

Implementación Java de sockets TCP ServerSocket establece conexiones del lado del servidor, se asocia a un puerto y recibe conexiones de los clientes. Socket establece una conexión desde el cliente hacia el servidor identificado por su dirección IP y el puerto específico del servicio. DataInputStream flujo de lectura sobre el socket. DataOutputStream flujo de escritura sobre el socket. 20/30

Servidor TCP Java (general) ServerSocket listensocket = new ServerSocket(8989); Socket clientsocket = listensocket.accept(); in = new DataInputStream(clientSocket.getInputStream()); out = new DataOutputStream(clientSocket.getOutputStream()); XXX info = in.readxxx(); out.writexxx(data); clientsocket.close(); 21/30

Lectura/escritura de tipos simples DataInputStream read(byte[]) readboolean() readbyte() readchar() readdouble() readfloat() readint() readlong() readshort() readutf() DataOutputStream write(byte[], int, int) writeboolean(boolean) writebyte(int) writebytes(string) writechar(char) writedouble(double) writefloat(float) writeint(int) writelong(long) writeshort(short) writeutf(string) 22/30

Cliente TCP Java (general) Socket socket = new Socket( 127.0.0.1, 8989); in = new DataInputStream(socket.getInputStream()); out = new DataOutputStream(socket.getOutputStream()); out.writexxx(data); XXX info = in.readxxx(); socket.close(); 23/30

Como ejecutar el ejemplo: HashServer Compilar las clases (manualmente o utilizar Netbeans) $ javac MD5HashLogic.java $ javac TCPHashServer.java $ javac TCPHashClient.java Ejecutar el servidor $ java TCPHashServer Verificar que los nombres y la extensión de los archivos coincidan. Incluyendo las mayúsculas y minúsculas. Ejecutar el cliente (en otra consola) $ java TCPHashClient 127.0.0.1 24/30

25/30

Evaluación pre-contenido 1. Cuáles es las principales características de los sockets TCP? 2. Cuáles son las ventajas y desventajas de utilizar sockets TCP? 3. Qué características implementan los sockets TCP para garantizar su confiabilidad? 4. Para qué tipo de aplicaciones o servicios es idóneo el uso de sockets TCP y para cuales no? 26/30

Actividad Se desea implementar un sistema orientado a objetos de administración remoto para la planta de Springfield que cuenta con tres reactores nucleares. 27/30

Actividad Cada reactor puede ser encendido y apagado de manera independiente. Así mismo podrá asignársele una carga de trabajo desde 0% hasta 100%, si se excede este límite el reactor fallará dañándose. Los reactores dañados podrán ser reparados remotamente. El operario podrá en todo momento consultar el estado de cada uno de los reactores obteniendo la información de si está encendido o apagado, cual es su carga actual y si se encuentra funcional o no. 28/30

Actividad Debido a la naturaleza del sistema, el cliente deberá recibir siempre una confirmación de que se realizó exitosamente o no la operación solicitada. Por ejemplo: No podrá encenderse (ni apagarse) un reactor previamente encendido (apagado). No podrá cargarse un reactor con un porcentaje negativo. No se podrá realizar ninguna operación sobre un reactor dañado. Sólo los reactores dañados podrán ser reparados. 29/30

Actividad Realice análisis y diseño antes de implementar. Identifique las entidades del problema. Básese en el ejemplo del módulo. Establezca los estados de los reactores y las acciones que se pueden realizar sobre esos estados. Diseñe un protocolo para los mensajes transmitidos entre cliente servidor y servidor cliente. Finalmente realice la implementación de lo diseñado. 30/30