Ingeniero de sistemas
MSc. Eloy Espozo Espinoza
Introducción
• Internet es un canal a través del cual se puede transmitir
información • Todas las comunicaciones ahora se realizan a través de Internet • Internet crece a un ritmo vertiginoso y constantemente se mejoran los canales de comunicación con el fin de aumentar la rapidez de envío y recepción de datos. • Se debe abstraer el proceso decomunicación entre dos equipos mediante Internet
Comunicaciones entre procesos
• La programación de red involucra la interacción de dos o más
procesos • La IPC provee un mecanismo que permite a los procesos comunicarse y sincronizarse entre sí, a través de la red subyacente • El método de IPC usado varía en base al tipo de datos comunicados y las características de la comunicación. • La comunicaciónsigue una serie de reglas (protocolos de comunicación)
Comunicaciones entre procesos
• IPC en sistemas Linux y windows:
Protocolos de comunicación
• Conjunto de reglas normalizadas para la representación,
señalización, autenticación y detección de errores necesario para enviar información a través de un canal de comunicación • Especificaciones
– Sintaxis: se especifica como son ycomo se construyen. – Semántica: que significa cada comando o respuesta del protocolo
respecto a sus parámetros/datos. – Procedimientos de uso de esos mensajes: es lo que hay que programar realmente (los errores, como tratarlos).
Suite de protocolos TCP/IP
• Conjunto de protocolos
diseñado con una arquitectura en capas. • Las capas permiten a los diseñadores del protocolo dividir enmódulos las tareas y servicios que realizará el mismo. • Especifica la manera en que un módulo interactúa con otros.
Protocolo IP
• Provee el servicio de entrega de paquetes de una
máquina a otra • Es un protocolo jerárquico no orientado a conexión • Permite identificar unívocamente a un equipo en Internet
Protocolos TCP y UDP
• TCP • Protocolo orientado a conexión • Ofrece control de flujoy confiabilidad de entrega • Brinda soporte a muchas de las aplicaciones de Internet
• UDP • Protocolo no orientado a conexión • Ofrece velocidad de transmisión • Generalmente usado por las aplicaciones que requieren tiempo real
Números de Puerto
• Interfaz para comunicarse con una aplicación o programa
a través de una red • Identifican los procesos asociados a cada canal de datosSocket
• Socket se refiere a un elemento abstracto que sirve para
establecer la comunicación entre dos procesos remotos • Son el mecanismo principal para la entrega de paquetes o datagramas • Está definido por la asociación:
• Dirección IP origen, Dirección IP destino, Puerto origen, Puerto
destino, protocolo de transporte
Sockets Berkeley
• Interfaz de entrada-
salida que permitecomunicar dos procesos que pueden estar ejecutándose en el mismo sistema o en sistemas diferentes • Es una API para protocolos de comunicación desarrollada para el lenguaje C
Winsock
• Biblioteca dinámica de funciones DLL para sistemas
Windows • Incluye soporte para envío y recepción de datos a través de sockets Berkeley
Ejemplos de Sockets
Información del socket
• Toda lainformación relacionada al socket se almacena en
la estructura siguiente, definida en :
struct sockaddr { unsigned short sa_family; /* familia de la dirección */ char sa_data[14]; /* 14 bytes de la dirección del protocolo */ };
Direcciones de Socket
• Los 14 bytes de las direcciones Internet se almacenan en
la estructura definida en :
struct in_addr { unsigned long s_addr; }; structsockaddr_in { short int sin_family; /* Familia de la Dirección */ unsigned short int sin_port; /* Puerto */ struct in_addr sin_addr; /* Dirección de Internet */ unsigned char sin_zero[8]; /* De igual tamaño que struct sockaddr */ };
Llamada Socket()
• Para realizar una conexión por red, primero se debe abrir
un socket especificando el protocolo a usar
#include #include int socket(int family,...
Regístrate para leer el documento completo.