Protocolos de Comunicación Construcción de datagrama versión 1.0 Preparado por: jhuircan Agosto-2012
Definición del protocolo Definición del protocolo Plataforma de comunicación Implementación usando lenguaje C Evaluación del Protocolo
Preview Se establecen las reglas que permiten entablar la comunicación entre dos equipos Para simplificar el protocolo puede utilizarse el código ASCII para la generación de la data a transmitir
Preview El frame o trama de datos constituye la información enviar-recibir El frame de datos consiste en una cantidad de bytes ordenados en forma secuencial Estos bytes serán agrupados de tal forma que el frame de datos estará dividido en diferentes campos
Formato Básico Byte-0 Byte-1 Byte-2... Byte-n-1 n-bytes
Formato Básico Byte-0 Byte-1 Byte-2... Byte-n-1 Campo 1
Formato Básico Byte-0 Byte-1 Byte-2... Byte-n-1 Campo 1 Campo 2
Formato Básico Byte-0 Byte-1 Byte-2... Byte-n-1 Campo 1 Campo 2 Campo- n
Preview El significado de estos campos conformados por bytes, debe quedar establecido entre los equipos que se han de comunicar La cantidad de bytes que tiene cada campo esta definida por la función establecida por el campo y la codificación que se ocupe para cada tarea
Preview Un frame puede ser llamado trama o datagrama, esto depende del protocolo de comunicaciones y estándar utilizado Los campos de los datagramas quedan Los campos de los datagramas quedan establecidos una vez definido el dialogo entre los equipos
Protocolo Básico Versión 1 Establecimiento de la conexión El emisor envía una solicitud de comunicación El receptor autoriza dependiendo si es valido o no es valido el emisor Esto lo hará mediante un mensaje Si la comunicación procede, el emisor envía el mensaje El receptor enviará un acknowledge
Análisis Para llevar a cabo lo anterior se de necesita: Identificar los dispositivos Definir el tipo de mensaje Definir la misión del mensaje Que tenga un mecanismo básico de seguridad Que contenga el mensaje a enviar Que tenga un identificador de fin de mensaje
Definición de los campos (posibles) Dirección de dispositivo Dirección de destino Tipo de dispositivo Tipo de mensaje Información a enviar Tarea a realizar con la información Códigos de protección Fin de mensaje
Metodología Inicialmente se genera el datagrama usando código ASCII, de tal forma de visualizar la información mediante el Hyperterminal (u otra aplicación) Datagrama básico Origen Destino Comando data Fin Msg Código 0001 0002 WRT HOLA COMO ESTAS? CR LF
Metodología El mensaje contiene 27 bytes 25 imprimibles y 2 de control 25 bytes ASCII 00010002WRTHOLACOMOESTAS? FALTAN DOS BYTES EL CR Y LF
Usando Lenguaje C Para construir un frame de datos usando Lenguaje C se requiere manejo de cadenas de caracteres, se puede usar una variable tipochar char msg[30]; La variable puede almacenar 29 bytes, el último contiene el carácter 0x00 Se indexa desde el elemento 0 hasta el 29
Usando Lenguaje C Pueden ser usadas las funciones de string.h o en forma directa char msg[30]={ HOLA COMO ESTAS? }; El mensaje quedará almacenado en la variablemsg H O L A C O M O E S T A S? 0X00 X FIN DE CADENA
Usando Lenguaje C En términos de código hexadecimal 0x48 0x4f 0x4c 0x41 0x20 0x43 0x4f 0x4d 0x4f 0x20 0x45 0x53 0x54 0x41 0x53 0x3f 0X00 FIN DE CADENA
Usando Lenguaje C // Considerando el mensaje del ejemplo char msg[30]={ 00010002WRTHOLACOMOESTAS?\X0D\0XA }; // Otra forma char msg[30]={ 00010002WRTHOLACOMOESTAS? }; msg[25]=0x0d; msg[26]=0x0a;
Enviando un mensaje char msg[30]={ 00010002WRTHOLACOMOESTAS?\X0D\0XA }; void main() { init_com(); while(1) { if(kbhit()) { c=gech(); // Lee tecla if (c==0x0d) enviar_msg(); if (c==0x1b) exit(0); } } }
Generación del Frame void init_com() { } void enviar(char car) { } void enviar_mgs() { char i; i=0; while(i<28){ enviar(msg[i]) i++; } ; }
Generación del Frame Si el largo del datagrama es variable, puede usarse una función para evaluar el largo del string (esta función se encuentra en el archivo string.h) void enviar_mgs() { char i; i=0; largo=strlen(&msg[0]); while(i<largo){ enviar(msg[i]) i++; } }
Metodología 2 Considerando la posibilidad de cambiar de plataforma, quizás un frame más orientado al bit, puede ser más cercano a la realidad. Es posible generar un frame más estándar para comunicación punto cayendo en lo que son los protocolos PPP (Point-to- Point Protocol)
Metodología 2 Será Materia de la proxima sección