Taller de Programación en Redes

Slides:



Advertisements
Presentaciones similares
SOCKETS INTRODUCCIÓN DEFINICIÓN TIPOS DE SOCKETS USO DE SOCKETS.
Advertisements

Unidad 2 Arquitectura de los sistemas de comunicaciones
MODELO TCP/IP Conectividad de extremo a extremo especificando como los datos deberian ser formateados,direccionados,transmitidos,enrutados y recibidos.
PROTOCOLOS Un protocolo es un conjunto de reglas que hacen que la comunicación en una red sea más eficiente.
Universidad Nacional de Jujuy – Cátedra de Comunicaciones – Arquitectura de Redes Modelo OSI (Open Systems Interconnect) Interface de Capa 6/7 Interface.
Protocolo TCP IP.
Arquitectura - 3er Parcial. Asignaturas para Arquitectura – 3er Parcial.  Diseño del modelo de red (clase networking).  Implementacion del modelo de.
Introducción a la Programación. Lenguaje de Máquina.
SOCKETS.
TCP/IP Introducción TCP/IP Introducción. TCP/IP vs OSI Aplicación Presentación Sesión Transporte Red Enlace Física Aplicación Acceso a la red Física TCP/IP.
RESUMEN CAPITULO 6.
LA FAMILIA DE PROTOCOLOS TCP/IP
2: Capa Aplicación 1 Capa Aplicación: FTP ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo al texto.
ELO3091 Interfaz de Socket Agustín J. González ELO309.
Modelo TCP / IP Conjunto de protocolos. La sigla TCP/IP significa "Protocolo de control de transmisión/Protocolo de Internet" y se pronuncia "T-C-P-I-P".
Instituto San José Del Pedregal Tema : Protocolos y Usos de Capas Integrantes : Arlington Josué Licona David Noel Aguilar Darwin Adalid Núñez.
CONCEPTOS DE REDES Y PUERTOS MAS CONOCIDOS
Sistemas Operativos Comunicación de procesos a través de sockets.
LABORATORIO DE ESTRUCTURA DE COMPUTADORES II Desarrollo de aplicación Cliente-Servidor.
2: Capa Aplicación 1 Capa Aplicación: File Transfer Protocol ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material.
Introducción Nivel 4. Modelo OSI Propiedades Nivel 4 Entrega de mensajes garantizada. Entrega de mensajes en el mismo orden en el que fueron enviados.
Manual violento de Navicat
Protocolos del modelo TCP/IP
PROTOCOLOS DE COMUNICACIÓN
Ing. Elizabeth Guerrero V.
2: Capa Aplicación 1 Capítulo 2: Capa Aplicación - I ELO322: Redes de Computadores Agustín J. González Este material está basado en:  Material de apoyo.
Capítulo 3: Capa Transporte - I
UD 1: “Introducción a los servicios de red e Internet”
Protocolos de comunicación TCP/IP
Ing. Elizabeth Guerrero V.
Capa Aplicación: Programación de sockets
Nivel de Transporte en Internet
REDES DE COMPUTADORES MODELO OSI Es fundamental para entender todas las nuevas aplicaciones de transmisión de datos a alta velocidad. Se ha utilizado como.
Gabriel Montañés León. TCP es un protocolo orientado a conexión es decir, que permite que dos máquinas que están comunicadas controlen el estado de la.
Modelo OSI Para redes………
Arquitectura OSI  ¿Qué es OSI?  Una sigla: Open Systems Interconnection  Conceptualmente: arquitectura general requerida para establecer comunicación.
Redes Esencial 1 – Resolucion de Nombres 2 – Herramientas de Red 3 – Modelo TCP/IP 4 – Protocolos.
Protocolos de Transporte y Aplicación
Protocolos de Transporte y Aplicación Javier Rodríguez Granados.
Aplicaciones Web Verano Programación de aplicaciones Web FCC-BUAP Verano 2016BMB - RAM2.
Teoría sobre redes DNS DHCP UDP OSI HTTP MA C Switch Hub Router Ethernet IPIP LDA P Netbios BOOTP Puertos IMA P POP3 SMTP Telnet SSH Cortafuegos.
1 Analizador de Tráfico: WireShark DTIC – Mayo 2008 UNIVERSIDAD CENTRAL DE VENEZUELA RECTORADO DIRECCIÓN DE TECNOLOGÍA DE INFORMACIÓN Y COMUNICACIONES.
INTEGRANTES: JORGE CRUZ DE OCAMPO EDSON SANCHEZ SUAREZ
Modelo TCP/IP Ing. José Martín Calixto Cely Original: Galo Valencia P.
Capítulo 2: Capa Aplicación - I
UF0854: Instalación y configuración de los nodos de una red local.
Capa Aplicación: Programación de sockets
Teleprocesos Ing. Leonardo Párraga.
Capa Aplicación: Programación de sockets
LOS DIFERENTES LENGUAJES DE PROGRAMACION PARA LA WEB
Paul Leger SOCKETs Paul Leger
CONCEPTOS BÁSICOS DE INTERNET
Paul Leger SOCKETs Paul Leger
Programación con sockets I
Capa Aplicación: File Transfer Protocol
Ayudantía de EC: Sockets
Capa Aplicación: File Transfer Protocol
Capa Aplicación: Programación de sockets
Capa Aplicación: File Transfer Protocol
Capa Aplicación: File Transfer Protocol
INTRODUCCIÓN A JAVA.
Taller de Programación en Redes
Servidores web. ¿Cómo funciona la web? Internet Cliente Web ( Netscape, Internet Explorer, Firefox, etc.) Servidor Web Servidor de nombres (DNS) 2.
Capa Aplicación: Programación de sockets
Modelo TCP/IP.. n El Modelo TCP/IP fue desarrollado por el Departmento de Defensa de los Estados Unidos al final de los 60s’, para asegurar comunicaciones.
Modelo TCP/IP Ing. José Martín Calixto Cely Original: Galo Valencia P.
Capa Aplicación: File Transfer Protocol
Capa Aplicación: File Transfer Protocol
Intr. a la creación y gestión de páginas web
Capa Aplicación: 2.7 Programación de sockets
Transcripción de la presentación:

Taller de Programación en Redes Stack TCP/IP - Sockets Lic. en Sistemas de Información - Universidad Nacional de Luján Dr. Gabriel Tolosa – tolosoft@unlu.edu.ar Lic. Marcelo Fernández – fernandezm@unlu.edu.ar Clase 1 - Febrero 2018

Introducción - TCP/IP Sockets API Objetivos de diseño de la interfaz de sockets

Modelo OSI – Interfaz Vertical Programación de Red en el Stack TCP/IP PDU Protocol Data Unit IDU Interface Data Unit SDU Service Data Unit PCI Protocol Control Information ICI Interface Control Information

Entornos de ejecución – Kernelspace/Userspace TCP/UDP IP Ethernet Adapter Server Clients Socket API Kernel space User Ports

Entornos de ejecución – APIs de programación * Tomado de http://tuprints.ulb.tu-darmstadt.de/6243/

Python – Algunas características Gratis Y Libre Y Open Source, todo por el mismo precio: cero Maduro (+25 años) Diseño elegante y robusto Pero evoluciona Fácil de aprender Se lee como pseudo-código Sintaxis sencilla, lenguaje muy ortogonal Extremadamente portable Unix, Windows, Mac, Android, BeOS, Win/CE DOS, OS/2, Amiga, VMS, Cray... Py3 Inexact: >>> getcontext() Context(..., flags=[Rounded, Inexact], ...) Rounded: This signal is used to detect loss of significant digits. Context(..., flags=[Rounded], ...) * Tomado de slides de “Introducción a Python” por Facundo Batista

Python – Propiedades del Lenguaje Compila a bytecode interpretado La compilación es implícita y automática Tipado dinámico, pero fuerte Multi-paradigma Todo son objetos Pero puede usarse de manera procedural Módulos, clases, funciones, generadores Manejo moderno de errores Por excepciones Muy útil detalle de error Inexact: >>> getcontext() Context(..., flags=[Rounded, Inexact], ...) Rounded: This signal is used to detect loss of significant digits. Context(..., flags=[Rounded], ...) * Tomado de slides de “Introducción a Python” por Facundo Batista

Python – Propiedades del Lenguaje (2) Tipos de datos de alto nivel Enteros sin límites, strings, flotantes, complejos Listas, diccionarios, conjuntos Intérprete interactivo Clave en el bajo conteo de bugs Acelera sorprendentemente el tiempo de desarrollo Permite explorar, probar e incluso ver la doc Viene con las baterías incluidas Extensa biblioteca estándar Clave en la productividad de Python Inexact: >>> getcontext() Context(..., flags=[Rounded, Inexact], ...) Rounded: This signal is used to detect loss of significant digits. Context(..., flags=[Rounded], ...) * Tomado de slides de “Introducción a Python” por Facundo Batista

Python – Baterías incluidas La Biblioteca Estándar ayuda con... Servicios del sistema, fecha y hora, subprocesos, sockets, internacionalización y localización, base de datos, threads, formatos zip, bzip2, gzip, tar, expresiones regulares, XML (DOM y SAX), Unicode, SGML, HTML, XHTML, XML-RPC (cliente y servidor), email, manejo asincrónico de sockets, clientes HTTP, FTP, SMTP, NNTP, POP3, IMAP4, servidores HTTP, SMTP, herramientas MIME, interfaz con el garbage collector, serializador y deserializador de objetos, debugger, profiler, random, curses, logging, compilador, decompilador, CSV, análisis lexicográfico, interfaz gráfica incorporada, matemática real y compleja, criptografía (MD5 y SHA), introspección, unit testing, doc testing, etc., etc... Inexact: >>> getcontext() Context(..., flags=[Rounded, Inexact], ...) Rounded: This signal is used to detect loss of significant digits. Context(..., flags=[Rounded], ...) * Tomado de slides de “Introducción a Python” por Facundo Batista

Python – Baterías incluidas (2) Bases de datos MySQL, PostgresSQL, MS SQL, MongoDB, Reddis Interfaces gráficas Qt, GTK, win32, wxWidgets, Cairo, Kivy Frameworks Web Django, Flask, Pyramid, Zope, Plone, webpy Y un montón más de temas... Pillow: para trabajar con imágenes PyGame: juegos, presentaciones, gráficos SymPy: matemática simbólica Numpy: calculos de alta performance ... Inexact: >>> getcontext() Context(..., flags=[Rounded, Inexact], ...) Rounded: This signal is used to detect loss of significant digits. Context(..., flags=[Rounded], ...) * Tomado de slides de “Introducción a Python” por Facundo Batista

Socket API para UDP – Esquema de Trabajo

Taller 1 - Interacción Cliente/Servidor en UDP Actividades del Taller 1 Descargar echo UDP server/client http://www.marcelofernandez.info/sockets/udp_echo_server.py http://www.marcelofernandez.info/sockets/udp_echo_client.py Analizar código Ejecutar Ver comandos del SO (netstat, ps) Ver cómo se extrae info de los headers del protocolo UDP

UDP Echo Server #!/usr/bin/env python import socket HOST = 'localhost' # IP o Hostname donde escucha PORT = 3500 # Puerto de escucha bytes = 1024 # Cantidad máxima de bytes a aceptar # Se crea un socket de tipo Internet (AF_INET) sobre UDP (SOCK_DGRAM) s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.bind((HOST, PORT)) # Indicamos al socket la direccion IP y Port de escucha while True: # Se obtienen los datos desde el sock cliente data,address = s.recvfrom(bytes) print 'Conexion desde: %s:%i' % (address[0], address[1]) if data: s.sendto(data, address) # Enviamos el echo al cliente

UDP Echo Client #!/usr/bin/env python import socket HOST = 'localhost' bytes = 1024 s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.sendto('Taller I: Echo sobre UDP', (HOST, PORT)) data = s.recvfrom(bytes) s.close() print '-->', data[0]

Estructuras y constantes Dominio: Indica el dominio de comunicación que se desea utilizar: PF_INET / AF_INET Protocolos de Internet versión 4. PF_INET6 / AF_INET6 Protocolos de Internet versión 6. PF_IPX Protocolos IPX (Novell). PF_APPLETALK Protocolos Appletalk. PF_UNIX o PF_LOCAL Comunicación local entre procesos ...

Estructuras y constantes Tipo: Tipo de comunicación deseada. SOCK_STREAM Conexión bidireccional confiable con el flujo de datos ordenados ==> Protocolo TCP SOCK_DGRAM Mensajes no confiables, sin conexión, con una longitud máxima fija ==> Protocolo UDP SOCK_SEQPACKET Conexión bidireccional confiable con el flujo de datos ordenados y datagramas de longitud máxima fija ==> SPX SOCK_RAW Utilizar directamente Protocolo IP, sin protocolo de transporte

Taller 1 - Interacción Cliente/Servidor en UDP Prácticas: Modificar para hacer cliente/servidor al mismo tiempo con un parámetro Sacar localhost y probar con las IPs del vecino Realizar captura y analizar tráfico Enunciados para que trabajen: Implementar el protocolo DayTime, cliente y servidor, con UDP:http://ietf.org/rfc/rfc867.txt Aplicación para calcular el RTT en la red: http://ietf.org/rfc/rfc2681.txt Chat punto a punto sobre UDP con compresión y control de errores mediante zlib. https://docs.python.org/2.7/library/zlib.html