Está en la página 1de 37

Fundamentos de Software de

Comunicaciones

Tema 1
Introduccin

Apuntes descargados de wuolah.com


Contenidos
Motivacin
Caractersticas y problemas del software para equipos de
comunicaciones
Requisitos del software de comunicaciones robusto

Estrategias para abordar la complejidad


Organizacin en capas
Normas de organismos internacionales
Tcnicas y herramientas de desarrollo

Enfoques de desarrollo
Desarrollo orientado al cdigo
Desarrollo basado en modelos

Dominios de aplicacin

Bibliografa y enlaces de consulta

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Caractersticas del software de
comunicaciones
Los sistemas de comunicaciones son totalmente dependientes
del software
o Centrales de conmutacin
o Nodos de conmutacin en redes de datos (routers de Internet)
o Estaciones base de redes mviles y equipos de certificacin
o Telfonos mviles, puntos de acceso WIFI, etc.

3 3

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Caractersticas del software de
comunicaciones
El comportamiento
El comportamiento de de los
los protocolos
protocolos siempre
siempre ha
ha sido
sido
complejo yy difcil
complejo difcil de
de implementar
implementar para
para conseguir
conseguir los
los
requisitos deseados
requisitos deseados

Algunas caractersticas
Algunas caractersticas que
que lo
lo hacen
hacen complicado
complicado
Empotrado en
Empotrado en hardware
hardware especfico
especfico (complica
(complica el
el test)
test)
Comportamiento reactivo
Comportamiento reactivo (no
(no termina)
termina)
Con informacin
Con informacin dede estado
estado (sesiones)
(sesiones)
Sistema de
Sistema de tiempo
tiempo real
real (cumplimiento
(cumplimiento de de tiempos)
tiempos)
Sistema distribuido
Sistema distribuido (mltiples
(mltiples nodos
nodos heterogneos)
heterogneos)

4 4
Requisitos del software de
comunicaciones
5 requisitos del software y/o metodologa de desarrollo

o Disponibilidad

o Fiabilidad

o Escalabilidad

o Capacidad

o Productividad

5 5

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Requisitos del software de
comunicaciones (II)
Disponibilidad
o Medida del tiempo en servicio (-> tiempo no disponible)
99% -> 87 horas y 36 minutos ao
99,9% -> 8 horas y 46 minutos ao
99,99% -> 52 minutos y 32 segundos ao
99,999% -> 5 minutos y 15 segundos ao (6 seg.
semana)
99,9999% -> 32 segundos ao ( < 1 segundo semana)

o Diferentes exigencias segn el tipo de servicio


Servidores de informacin o reserva
Central telefnica
ADSL domstico
Router de punto neutro

6 6

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Requisitos del software de
comunicaciones (III)
Fiabilidad
o Funcionamiento correcto, libre de errores de ejecucin

o Su efecto depende del servicio


Fallo en una llamada telefnica
Error en transferencia de mensajes a nivel IP
Fallo en transaccin financiera

o Tema central de muchas herramientas y mtodos de desarrollo

7 7

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Requisitos del software de
comunicaciones (IV)
Escalabilidad
o Facilidad para incrementar el nmero de usuarios
o Ejemplo:
Gestionar un sistema de 100000 usuarios es menos costoso que
gestionar 10 sistemas de 10000 usuarios
o Es necesario que se pueda incrementar el sistema cambiando
configuraciones o incrementando el nmero de elementos
Capacidad
o El incremento en las prestaciones puede suponer nuevas
necesidades de procesamiento u otros recursos
o Problemas cuando las actualizaciones requieren ms recursos
hardware
Productividad
o La metodologa empleada debe permitir el trabajo de generacin del
software en un corto plazo, paralelizando su desarrollo
o Conceptos de marcos de trabajo, divisin en capas, componentes,
etc.
o Definicin clara de interfaces

8 8
Estrategias para abordar la complejidad

Organizacin en capas

Normas de protocolos e interfaces

Tcnicas, herramientas y metodologas de desarrollo

9 9

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Organizacin en capas

Organizacin en capas:
La organizacin en capas permite separar funciones de
manipulacin de datos y de control

10 10

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Organizacin en capas

Organizacin en capas (TCP/IP desde el origen, norma OSI)

11

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Normas de protocolos

Normas de protocolos
Documentos en lenguaje natural, no formales
Diferentes organismos y tipo de normas
Internet RFCs
Redes pblicas fijas CCITT, ITU-T
Rede mviles 3GPP, ETSI

Ejemplos de normas
RFC SMTP- Protocolo para correo electrnico
Protocolos de sealizacin en redes de telefona mvil

12 12
Estrategias para abordar la complejidad

Tcnicas y herramientas y de soporte para el desarrollo


o Diseo del protocolo a partir de la definicin de su objetivo o funcin
o Descripcin o modelado previo a la programacin (informal o con lenguaje
normalizado)
o Programacin o generacin automtica de cdigo
o Testing, depuracin, validacin
o Anlisis de prestaciones/rendimiento

o La seleccin de tcnicas y herramientas da lugar a un enfoque de


desarrollo diferenciado (metodologa), que suele ajustarse a un
dominio de aplicacin concreto (servicios para la web, protocolos en
el ncleo del S.O., ..)

13 13

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Tcnicas y herramientas de desarrollo

Diseo del protocolo a partir de la definicin de su objetivo o


funcin
o La solucin debe ser simple, evitando sobre especificacin o falta de funcionalidad
o Hay que asegurar que cumple su funcin correctamente (evitar bloqueos y otros
errores)

14 14

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Tcnicas y herramientas de desarrollo

Descripcin o modelado previo a la programacin (informal o con


lenguaje normalizado)
o Las normas de los organismos de estandarizacin pueden
considerarse no formales
o Los lenguajes normalizados cambian mucho respecto a su
aceptacin y herramientas que los soportan (mquinas de
estado, UML, SDL, ..)

Esquema de TCP con mquina de


estados

15 15

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Protocolo descrito en SDL

16
Protocolo descrito en SDL

17

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Protocolo descrito en SDL

18
18

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Protocolo descrito en SDL

19
19

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Protocolo descrito en SDL
block OSI_Stack 1(1)

NetworkLayer2

C4 ToNetworkLayer2
C1
ToNetworkLayer1
C3

FromNetworkLayer1 FromNetworkLayer2

DataLayer1 DataLayer2

FromPhysicalLayer1 FromPhysicalLayer2

C1 C2
ToPhysicalLayer2
ToPhysicalLayer1
C5
C2 PhysicalLayer
LoseNextFrame

20
20
Protocolo descrito en SDL
process DataLayer1
DCL
Idle next, expected Integer,
s, r Frame,
buffer Packet;
FromPhysicalLayer1 timer T1;
T1
(r)

r!seq=expected
false
true

ToNetworkLayer1
(r!info)

expec ted:=1-expected;

r!ack=next

true
next:=0,
Wait
expec ted:=0

FromNetworkLayer1
Init T1
(buffer)

FromNetworkLayer1
Wait next:=1-next
(buffer)

s!info:=buffer, false
s!seq:=next,
s!ac k:=1-expected

ToPhysicalLayer1
(s)

SET
(NOW+1, T1)

Idle

21
21

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Protocolo descrito
process DataLayer2
DCL
next, expected Integer,
s, r Frame,

en SDL
buffer Packet;
next:=1, timer T1;
expected:=0

Idle

FromPhysicalLayer2
T1
(r)

r!seq=expected
false
true

ToNetworkLayer2
(r!info)

expected:=1-expected;

r!ack=next
false
true

Wait

FromNetworkLayer2
T1
(buffer)

Wait next:=1-next

s!info:=buffer,
s!seq:=next,
s!ack:=1-expected

ToPhysicalLayer2
(s)

SET
(NOW+100000, T1)

Idle

22
22

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Protocolo descrito en Statechart-UML

23

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Tcnicas y herramientas de desarrollo

Programacin o generacin automtica de cdigo


o Eleccin de modelos de programacin (lenguaje estructurado
tipo C++ y APIs de sistema operativo, eventos, ..
o Tcnicas especficas para estructuracin en capas,
implementacin de interfaces, manipulacin
o Marcos de trabajo especficos para programar protocolos sobre
ellos
o Herramientas de generacin automtica de cdigo desde
modelos

24 24
Programas (aplicaciones de Internet)

#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include "socks5.h"

main() {
int sockfd,n,result;
struct sockaddr_in serv_addr;
char buf[1024],serv_host_addr[30],username[255], passwd[255];

printf("Direccion IP del servidor: ");


gets(serv_host_addr);

if ((sockfd=socket(AF_INET,SOCK_STREAM,0))<0) {
perror("cliente no puede abrir stream socket\n");
return -1;
}
/*inicializacion de la variable serv_addr*/
serv_addr.sin_family=AF_INET;
serv_addr.sin_addr.s_addr=inet_addr(serv_host_addr);
serv_addr.sin_port=htons(SERV_PROX_PORT);
bzero(buf,sizeof(buf));

/*conexion activa desde el cliente */


if (connect(sockfd,(struct sockaddr*) &serv_addr,sizeof(serv_addr))!=0) {
perror("cliente no puede conectar con servidor\n");
return-1;
}

25

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Programas (aplicaciones de Internet)
/*envo de la peticin de autentificacin al servidor SOCKS5*/
buf[0]=(char)VERSION_SOCKS;
buf[1]=(char)1;
buf[2]=(char)NOMBRE_PASSWD;
enviar(sockfd, buf, 3);
/*chequeo de respuesta con el mtodo de autentificacin requerido*/
recibir(sockfd, buf, 2);
switch (buf[1]) { /*analisis de la respuesta obtenida*/
case (char)NOMBRE_PASSWD:
/*metodo de autentificacion correcto*/
/*paso a obtener user y passwd por teclado*/
printf("USER: ");
gets(username);
printf("PASSWD: ");
gets(passwd);
/*envo de peticin de autenticacin USER/PASSWD*/
buf[0]=(char)VER_SUB;
buf[1]=(char)strlen(username);
strcpy((char *)&buf[2],username);
buf[2+strlen(username)]=(char)strlen(passwd);
strcpy((char *)&buf[3+strlen(username)],passwd);
enviar(sockfd,buf,3+strlen(username)+strlen(passwd));

/*recepcin de la autenticacin con los datos enviados */


recibir(sockfd,buf,2);

/* comprobaciones adicionales */

26

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Tcnicas y herramientas de desarrollo

Testing, depuracin, validacin


o Hay que evitar problemas de uso de memoria, bloqueos, ciclos y otros
errores,
o Para lenguajes de programacin
Bsico: depuradores
tipo gdb,
herramientas tipo netstat, ping ,
anlizadores de protocolos tipo wireshark
Avanzado: herramientas automticas de chequeo del cdigo como Valgrind,
o Para lenguajes de modelado tipo SDL o UML
Bsico: simulacin visual
Avanzado: validacin automtica (exhaustiva), testing

27

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Captura con Wireshark
Simulacin (ejemplo en SDL)

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Simulacin (ejemplo en SDL)

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Validacin (ejemplo en SDL)

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Validacin (ejemplo en SDL)
Tcnicas y herramientas de desarrollo

Anlisis de prestaciones/rendimiento
o Hay que asegurar
Que se cumplen los tiempos de respuesta
Que se puede atender el nmero de peticiones o de trfico
Que se mantiene el lmite de uso de recursos (memoria, CPU, energa,..)

o Algunas posibilidades
Simuladores de red tipo ns-2, ns-3, OPNET (en diseo)
Pruebas de carga (varios clientes contra un servidor)
Herramientas de profiling sobre el cdigo
Monitorizacin de trfico y post-procesado (Wireshark)

33

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Dos enfoques diferentes
Fase Tcnica Desarrollo centrado en Desarrollo dirigido por
el cdigo modelos

Diseo Manual
Semi-automtico
Descripcin Norma textual

Modelo (SDL,UML,..)
Generacin de Manual - programa
cdigo

Automtico

Test funcional Depurador


Captura
Simulacin,Validacin
Testing automatizado
Anlisis de Pruebas carga, capturas
rendimiento

Simuladores

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


Servicios
telemticos

usualmente
accedidos
via web
Aplicaciones
distribuidas
(correo, ftp,
redes
Algunos dominios de aplicacin

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla


sociales,
serv. web,
otras no
estandard
S),
Protocolos
de soporte
para
multimedia

(IMS), para
arquitectura
s
distribuidas
(
Stacks de
equipos de
acceso y


nodos de la
red carrier
grade
Stacks
TCP/I P en


el sistema
operativo
Drivers y
protocolos


de bajo
nivel

Windows, Unix, Linux

Vxworks, Linux RT
Lenguajes, sistemas

Android, iOS,
Leng. script

SDL, UML
Java, C#

Symbian
operativos

C++
C
Bibliografa

Robert Love. Linux System Programming, OReilly, 2007

Richard Stevens et al. Unix Network Programming Volume 1: The Sockets


Networking API (3rd Edition), Addison Wesley, 2003

Gary R. Wright, Richard Stevens. TCP/IP Illustrated, Vol. 2: The


Implementation, Addison Wesley, 1995

Christian Benvenuti, Understanding Linux Network Internals,


O'Reilly, 2005

Greg Utas, Robust Communications Software,


36 Willey, 2005 36
Enlaces de consulta
ITU-T: http://www.itu.int/ITU-T/

3GPP: http://www.3gpp.org/

ETSI: http://www.etsi.org/

SDL Forum: http://sdl-forum.org/

37 37

Mster Dir. y Gestin de RR.HH - Escuela de Negocios Cmara de Sevilla

También podría gustarte