U
NIVERSIDADE
E
STADUAL DE
C
AMPINAS
F
ACULDADE DE
E
NGENHARIA
E
LÉTRICA E DE
C
OMPUTAÇÃO
D
EPARTAMENTO DE
C
OMUNICAÇÕES
Caixa Postal 6101, CEP 13081-970 – Campinas – SP. Telefone: (0xx19) 3788 3703. Fax: (0xx19) 3788 1395.
Desenvolvimento de Modelos de Simulação para a
Análise de Qualidade de Serviço em Redes ATM
TESE SUBMETIDA À FACULDADE DE ENGENHARIA ELÉTRICA E DE COMPUTAÇÃO DA UNIVERSIDADE
ESTADUAL DE CAMPINAS, DEPARTAMENTO DE COMUNICAÇÕES, COMO PARTE DOS PRÉ-REQUISITOS NECESSÁRIOS PARA A OBTENÇÃO DO TÍTULO DE
DOUTOR EM ENGENHARIA ELÉTRICA.
P
ORANTÔNIO MARCOS ALBERTI
Engenheiro Eletricista pela UFSM em 1996. Mestre em Engenharia Elétrica pela UNICAMP em 1998.
O
RIENTADORPROF. DR. LEONARDO DE SOUZA MENDES – DECOM/FEEC/UNICAMP
B
ANCAE
XAMINADORAPROF. DR. ANILTON SALLES GARCIA – PPGEE/UFES
PROF. DR. DALTON SOARES ARANTES – DECOM/FEEC/UNICAMP
PROF. DR. JÔNATAS MANZOLLI – NICS/UNICAMP
PROF. DR. MAURÍCIO FERREIRA MAGALHÃES – DCA/FEEC/UNICAMP
PROF. DR. NELSON LUIS SALDANHA DA FONSECA – IC/UNICAMP
ii
FICHA CATALOGRÁFICA ELABORADA PELA
BIBLIOTECA DA ÁREA DE ENGENHARIA - BAE - UNICAMP
AL17d
Alberti, Antônio Marcos
Desenvolvimento de modelos de simulação para a análise
de qualidade se serviço em redes ATM / Antônio Marcos
Alberti. --Campinas, SP: [s.n.], 2003.
Orientador: Leonardo de Souza Mendes.
Tese (doutorado) - Universidade Estadual de Campinas,
Faculdade de Engenharia Elétrica e de Computação.
1. Simulação (Computadores digitais). 2.
Telecomunicações. 3. Sistemas de comunicação em banda
larga. 4. Modo de transferência assíncrono. I. Mendes,
Leonardo de Souza. II. Universidade Estadual de
Campinas. Faculdade de Engenharia Elétrica e de
Computação. III. Título.
iii
Em momentos de dificuldade, somente a imaginação é mais importante do que o conhecimento.
Albert Einstein
iv
Agradecimentos
Aos meus pais, Luiz e Leda, pelo apoio, otimismo, carinho e dedicação.
À minha esposa, Luzinete, pela compreensão e incentivo.
Aos meus irmãos Fernando e Ricardo, pela amizade, compreensão e inspiração.
Ao meu orientador, Leonardo de Souza Mendes, pela confiança e amizade.
A todos os amigos do LaRCom, DECOM, DT, DMO, DCA, Optiwave, UEL, CT e Incamp,
pelos bons momentos de convivência e amizade.
A todos que de alguma forma contribuíram com a realização deste trabalho e que me ajudaram a
crescer como ser humano.
À Fundação de Amparo à Pesquisa do Estado de São Paulo, FAPESP, pelo suporte financeiro
que permitiu a realização deste trabalho.
v
Resumo
Este trabalho propõe o desenvolvimento de um conjunto de modelos de simulação capaz de
avaliar com precisão, eficiência e robustez a qualidade de serviço fim-a-fim oferecida para conexões
ATM diante de diferentes cenários de tráfego, de congestionamento e de recursos na rede. Para tanto, o
conjunto de modelos desenvolvido deve englobar não apenas as funções de gerenciamento de tráfego
ATM e sua complexa interdependência, mas também todas as demais funcionalidades das redes ATM,
tais como: o processamento, a comutação e o transporte de células ATM; a negociação do contrato de
tráfego; o roteamento e o gerenciamento de conexões virtuais chaveadas. Os resultados obtidos
demonstraram que o conjunto de modelos desenvolvido permite avaliar adequadamente a qualidade de
serviço fim-a-fim oferecida para conexões ATM diante de diversas situações de tráfego, de
congestionamento e de recursos na rede.
Abstract
This work proposes the development of simulation models capable to evaluate with precision,
efficiency and robustness the quality of service offered to ATM connections subject to different traffic,
congestion and resource scenarios. Therefore, the models developed enclose not only the ATM traffic
management functions and their complex interdependence, but also all the other ATM network
functionalities, such as the ATM cell processing, switching and transport; the traffic contract
negotiation; the routing and management of switched virtual connections. The obtained results had
shown that the developed models allow evaluating adequately the end-to-end quality of service for
ATM connections subject to several traffic, congestion and resource situations.
vi
Índice
CAPÍTULO 1 INTRODUÇÃO ...1
1.1 - MOTIVAÇÃO ...1
1.1.1 - ATM: Qualidade de Serviço Fim-a-Fim...1
1.1.2 - Funções de Gerenciamento de Tráfego ATM...3
1.1.3 - Complexidade e Interdependência entre Funções...5
1.2 - OBJETIVOS DO TRABALHO...7
1.3 - ORGANIZAÇÃO DA TESE...7
1.4 - PRINCIPAIS CONTRIBUIÇÕES...8
1.5 - REFERÊNCIAS BIBLIOGRÁFICAS...8
CAPÍTULO 2 SIMULAÇÃO DE REDES ATM ...11
2.1 - INTRODUÇÃO ...11
2.2 - SIMULAÇÃO DE SISTEMAS DE COMUNICAÇÕES ...11
2.2.1 - Classificação das Ferramentas ...12
2.2.2 - Principais Características...13
2.2.2.1 - Modelamento ... 13
2.2.2.2 - Gerência de Simulação... 13
2.2.2.3 - Técnicas de Simulação ... 13
2.2.2.3.1 - Simulação Orientada pelo Tempo (Time-Driven Simulation) ... 14
2.2.2.3.2 - Simulação Orientada por Dados (Data-Driven Simulation) ... 14
2.2.2.3.3 - Simulação Orientada por Eventos (Event-Driven Simulation) ... 14
2.2.2.4 - Biblioteca de Modelos... 16
2.3 - SIMULAÇÃO DE REDES ATM ...16
2.3.1 - Desafios de Desenvolvimento ...17
2.3.2 - Características Desejáveis ...18
2.3.3 - Técnicas de Simulação ...19
2.3.4 - Estratégias de Modelamento...20
2.3.4.1 - Modelamento no Nível de Células ... 21
2.3.4.2 - Modelamento no Nível de Chamadas... 23
2.3.4.3 - Modelamento Fluído ... 23
2.3.4.4 - Modelamento Utilizando Técnicas de Amostragem por Importância ... 24
2.3.5 - Simulação Paralela ou Distribuída...26
2.3.6 - Ferramentas de Simulação de Redes ATM...27
2.3.6.1 - Comparação entre as Ferramentas... 29
vii
CAPÍTULO 3 AMBIENTE DE SIMULAÇÃO...35
3.1 - INTRODUÇÃO ...35
3.2 - ESTRUTURA...36
3.2.1 - Programa Executável ...37
3.2.2 - Biblioteca de Modelos ...38
3.3 - REFERÊNCIAS BIBLIOGRÁFICAS...40
CAPÍTULO 4 CONJUNTO DE MODELOS NO NÍVEL DE CÉLULAS (CMNC)...43
4.1 - INTRODUÇÃO ...43 4.2 - ESTRUTURA...44 4.3 - MENSAGENS ...46 4.3.1 - Pacote ...47 4.3.2 - Célula ATM...49 4.3.3 - Contrato de Tráfego...50 4.3.4 - Ficha ...51
4.3.5 - Mensagem de Gerenciamento de Tráfego ...52
4.3.6 - Mensagem de Roteamento...53
4.4 - ESTRUTURAS DE DADOS AUXILIARES...54
4.4.1 - Variável Estatística Simples ...54
4.4.2 - Variável Estatística Média...54
4.4.3 - Arquivo...55
4.5 - OBJETOS AUXILIARES ...55
4.5.1 - Gerente de Entrada e Saída...55
4.5.1.1 - Gerenciamento de Arquivos... 56
4.5.1.2 - Gerenciamento de Amostragens Estatísticas ... 57
4.5.2 - Gerente de Alocação Dinâmica ...59
4.6 - CAMADAS ...59
4.6.1 - Camadas Requerentes e Removedoras de Conexões ...60
4.6.1.1 - Amostragens Estatísticas... 62
4.6.2 - Camadas Finalizadoras de Conexões...62
4.6.2.1 - Amostragens Estatísticas... 62
4.6.3 - Camadas Fontes de Tráfego...62
4.6.3.1 - Amostragens Estatísticas... 63
4.6.3.2 - Camada Fonte de Tráfego Determinístico... 63
4.6.3.3 - Camada Fonte de Tráfego Poissoniano ... 64
4.6.3.4 - Camada Fonte de Tráfego Externo... 64
4.6.4 - Camadas Receptoras de Tráfego ...65
viii
4.6.5 - Camadas de Adaptação ATM ...65
4.6.5.1 - Camada de Adaptação ATM Tipo 5... 65
4.6.5.1.1 - Amostragens Estatísticas ... 65
4.6.6 - Camadas ATM...66
4.6.6.1 - Camada ATM do BTE ... 66
4.6.6.1.1 - Amostragens Estatísticas ... 66
4.6.6.2 - Camada ATM do Comutador ... 66
4.6.6.2.1 - Amostragens Estatísticas ... 69
4.6.7 - Camadas Físicas ...69
4.6.7.1 - Camada Física de Entrada ... 70
4.6.7.1.1 - Amostragens Estatísticas ... 71
4.6.7.2 - Camada Física de Saída... 71
4.6.7.2.1 - Amostragens Estatísticas ... 73
4.7 - GERENCIADORES DE TRÁFEGO...73
4.7.1 - Estruturas de Filas (Queueing Structures) ...74
4.7.1.1 - Estrutura de Filas Default... 74
4.7.1.1.1 - Amostragens Estatísticas ... 75
4.7.1.2 - Estrutura de Filas com Fila por Conexão ... 75
4.7.1.2.1 - Amostragens Estatísticas ... 76
4.7.2 - Escalonadores (Schedulers) ...76
4.7.2.1 - Escalonador Default ... 78
4.7.2.1.1 - Amostragens Estatísticas ... 78
4.7.2.2 - Escalonador de Pacotes com Compartilhamento de Processador Generalizado... 78
4.7.2.2.1 - Amostragens Estatísticas ... 79
4.7.2.3 - Escalonador Regulador de Tráfego Virtual Scheduling ... 80
4.7.2.3.1 - Amostragens Estatísticas ... 84
4.7.2.4 - Escalonador WF2Q ... 85
ALGORITMO DE ARMAZENAMENTO DE CÉLULAS ATM ... 87
ALGORITMO DE SERVIÇO DE CÉLULAS ATM ... 89
4.7.2.4.1 - Amostragens Estatísticas ... 91
4.7.2.5 - Escalonador LFVC... 92
4.7.2.5.1 - Amostragens Estatísticas... 97
4.7.3 - Algoritmos de Controle de Admissão de Conexões ...98
4.7.3.1 - Algoritmo de Controle de Admissão de Conexões Default... 98
4.7.3.1.1 - Amostragens Estatísticas ... 99
4.7.3.2 - Algoritmo de Controle de Admissão de Conexões Elwalid Mitra... 99
4.7.3.2.1 - Amostragens Estatísticas ... 103
4.7.4 - Algoritmos de Gerenciamento de Estrutura de Filas ...104
ix
4.7.4.1.1 – Amostragens Estatísticas ... 105
4.7.4.2 - Algoritmo de Gerenciamento de Estrutura de Filas com Particionamento Dinâmico ... 105
4.7.4.2.1 - Amostragens Estatísticas ... 107
4.7.5 - Algoritmos de Descarte Seletivo de Células...107
4.7.5.1 - Algoritmo de Descarte Seletivo de Células Default ... 108
4.7.5.1.1 - Amostragens Estatísticas ... 108
4.7.5.2 - Algoritmo de Descarte Seletivo de Células Baseado no CLP ... 108
4.7.5.2.1 - Amostragens Estatísticas ... 109
4.7.5.3 - Algoritmo de Descarte Seletivo de Células Baseado no CLR ... 109
4.7.5.3.1 - Amostragens Estatísticas ... 109
4.7.6 - Algoritmos de Policiamento de Tráfego ...109
4.7.6.1 - Policiador Leaky Bucket ... 110
4.7.6.1.1 - Amostragens Estatísticas ... 115 4.8 - BLOCOS...115 4.8.1 - Aplicativos...116 4.8.1.1 - Aplicativo Determinístico ... 116 4.8.1.2 - Aplicativo Poissoniano... 116 4.8.1.3 - Aplicativo Externo ... 117 4.8.1.4 - Aplicativo Receptor ... 117 4.8.2 - Equipamentos ...117
4.8.2.1 - Terminal Faixa Larga ... 118
4.8.2.2 - Comutador... 118
4.8.3 - Gerente ...119
4.8.3.1 - Gerente... 119
4.9 - FUNCIONAMENTO...120
4.10 - ALOCAÇÃO DINÂMICA DE MODELOS INTERNOS...124
4.11 - NOMENCLATURA DOS MODELOS...126
4.12 - REFERÊNCIAS BIBLIOGRÁFICAS...127
CAPÍTULO 5 ESPECIFICAÇÃO DE SIMULAÇÕES ...129
5.1 - INTRODUÇÃO ...129
5.2 - IDENTIFICAÇÃO DE CENÁRIOS ...129
5.2.1 - MPEG sobre ATM...129
5.2.2 - Internet sobre ATM ...131
5.2.3 - Multimídia em Tempo Real sobre ATM ...132
5.3 - OBTENÇÃO DE SEQÜÊNCIAS DE TRÁFEGO ...133
5.4 - ADAPTAÇÃO DE SEQÜÊNCIAS DE TRÁFEGO ...133
5.4.1 - Adaptação de Seqüências de Tamanho de Frame MPEG para Seqüências de Fluxo de Transporte MPEG134 5.5 - CONFIGURAÇÃO DE CONTRATOS DE TRÁFEGO ...140
x
5.5.1 - Escolha da Categoria de Serviço ...143
5.5.2 - Definição dos Parâmetros de QoS ...143
5.5.3 - Definição dos Descritores de Tráfego ...143
5.5.3.1 - Estimação de Descritores para Tráfego VBR: Técnica do Buffer Virtual... 144
5.5.3.1.1 - Implementação do VB... 146
5.5.3.1.2 - Estimativa de um Par (PCR, CDVT) ... 147
5.5.3.1.3 - Estimativa de um Conjunto de Pares (SCR, MBS)... 149
5.5.3.1.4 - Resultados ... 151
5.5.4 - Escolha da Definição de Conformidade ...156
5.6 - REFERÊNCIAS BIBLIOGRÁFICAS...156
CAPÍTULO 6 SIMULAÇÕES...159
6.1 - INTRODUÇÃO ...159
6.2 - SIMULAÇÃO 1: VALIDAÇÃO DO ESCALONADOR WF2Q...159
6.2.1 - Configuração da Rede no Simulador ...159
6.2.2 - Definição das Simulações...160
6.2.3 - Configuração dos Modelos ...161
6.2.4 - Resultados...163
6.2.5 - Validação do Modelo WF2Q_Scheduler ...163
6.2.6 - Amostragem por Eventos ...165
6.2.7 - Amostragem por Tempo ...177
6.3 - SIMULAÇÃO 2: ANÁLISE DA QOS EM SVCS ATM ...182
6.3.1 - Configuração da Rede no Simulador ...183
6.3.2 - Definição das Simulações...184
6.3.3 - Configuração dos Modelos ...184
6.3.4 - Resultados...185
6.4 - SIMULAÇÃO 3: CENÁRIO NVOD MPEG-4 SOBRE ATM... 188
6.4.1 - Configuração do Cenário no Simulador ...188
6.4.2 - Definição das Simulações...191
6.4.3 - Configuração dos Modelos ...193
6.4.3.1 - Aplicativos ... 193
6.4.3.2 - Terminais Faixa Larga ... 194
6.4.3.3 - Chaveador ... 195
6.4.4 - Resultados...195
6.4.4.1 - Ocupação Média por Conexão ... 197
CAPACIDADE DE 1000 CÉLULAS (B=0)... 198
Modelo de CAC, BM e SD Default (V=0) ...198
xi
CAPACIDADE DE 500 CÉLULAS (B=1)... 202
Modelo de CAC, BM e SD Default (V=0) ...202
Modelo de CAC Elwalid, de BM com Particionamento Dinâmico e de SD baseado no CLR (V=1) ...204
CAPACIDADE DE 100 CÉLULAS (B=2)... 206
Modelo de CAC, BM e SD Default (V=0) ...206
Modelo de CAC Elwalid, de BM com Particionamento Dinâmico e de SD baseado no CLR (V=1) ...208
CAPACIDADE DE 50 CÉLULAS (B=3)... 210
Modelo de CAC, BM e SD Default (V=0) ...210
Modelo de CAC Elwalid, de BM com Particionamento Dinâmico e de SD baseado no CLR (V=1) ...212
6.4.4.2 - Atraso Médio por Conexão ... 214
CAPACIDADE DE 1000 CÉLULAS (B=0)... 215
Modelo de CAC, BM e SD Default (V=0) ...215
Modelo de CAC Elwalid, de BM com Particionamento Dinâmico e de SD baseado no CLR (V=1) ...217
CAPACIDADE DE 500 CÉLULAS (B=1)... 219
Modelo de CAC, BM e SD Default (V=0) ...219
Modelo de CAC Elwalid, de BM com Particionamento Dinâmico e de SD baseado no CLR (V=1) ...221
CAPACIDADE DE 100 CÉLULAS (B=2)... 223
Modelo de CAC, BM e SD Default (V=0) ...223
Modelo de CAC Elwalid, de BM com Particionamento Dinâmico e de SD baseado no CLR (V=1) ...225
CAPACIDADE DE 50 CÉLULAS (B=3)... 227
Modelo de CAC, BM e SD Default (V=0) ...227
Modelo de CAC Elwalid, de BM com Particionamento Dinâmico e de SD baseado no CLR (V=1) ...229
6.4.4.3 - CLR Médio por Conexão ... 231
CAPACIDADE DE 1000 CÉLULAS (B=0)... 233
Modelo de CAC, BM e SD Default (V=0) ...233
Modelo de CAC Elwalid, de BM com Particionamento Dinâmico e de SD baseado no CLR (V=1) ...235
CAPACIDADE DE 500 CÉLULAS (B=1)... 237
Modelo de CAC, BM e SD Default (V=0) ...237
Modelo de CAC Elwalid, de BM com Particionamento Dinâmico e de SD baseado no CLR (V=1) ...239
CAPACIDADE DE 100 CÉLULAS (B=2)... 241
Modelo de CAC, BM e SD Default (V=0) ...241
Modelo de CAC Elwalid, de BM com Particionamento Dinâmico e de SD baseado no CLR (V=1) ...243
CAPACIDADE DE 50 CÉLULAS (B=3)... 245
Modelo de CAC, BM e SD Default (V=0) ...245
Modelo de CAC Elwalid, de BM com Particionamento Dinâmico e de SD baseado no CLR (V=1) ...247
6.5 - REFERÊNCIAS BIBLIOGRÁFICAS...249
xii
7.1 - SUMÁRIO DAS ATIVIDADES E CONCLUSÕES ...251
7.2 - PRINCIPAIS CONTRIBUIÇÕES...258
7.3 - SUGESTÕES DE TRABALHOS FUTUROS...260
7.4 - PUBLICAÇÕES ...260
7.5 - REFERÊNCIAS BIBLIOGRÁFICAS...262
APÊNDICE A DESCRIÇÃO DETALHADA DO AMBIENTE DE SIMULAÇÃO ...263
A.1 - PROGRAMA EXECUTÁVEL...263
A.1.1 - Kernel ...263
A.1.2 - Conexões ...275
A.1.3 - Parâmetros ...277
A.1.4 - Tabela de Dados ...278
A.1.5 - Eventos ...278
A.1.6 - Mensagens ...279
A.2 - BIBLIOTECA DE MODELOS ...280
A.2.1 - Blocos ...280
A.2.2 - Camadas...287
A.2.3 - Gerenciadores de Tráfego ...290
xiii
Índice de Figuras
FIGURA 2.1 – ESQUEMA DE ARMAZENAMENTO E EXECUÇÃO DE EVENTOS. ...15
FIGURA 3.1 – ESTRUTURA DO HYDRAGYRUM. ...37
FIGURA 3.2 – PROGRAMA EXECUTÁVEL COM INTERFACE EM MODO CARACTERE. ...37
FIGURA 3.3 – PROGRAMA EXECUTÁVEL COM INTERFACE GRÁFICA. ...38
FIGURA 3.4 – ESTRUTURA HIERÁRQUICA DE MODELOS NO HYDRAGYRUM...39
FIGURA 4.1 – ESTRUTURA DO CONJUNTO DE MODELOS NO NÍVEL DE CÉLULAS. ...45
FIGURA 4.2 – HIERARQUIA DE OBJETOS UTILIZADA PARA MODELAR A FASE DE TRANSMISSÃO DE DADOS NA REDE ATM...47
FIGURA 4.3 – ESTRUTURA DO PACOTE...48
FIGURA 4.4 – ESTRUTURA DA CÉLULA ATM. ...49
FIGURA 4.5 – ESTRUTURA DO CONTRATO DE TRÁFEGO. ...51
FIGURA 4.6 – ESTRUTURA DAS FICHAS. ...51
FIGURA 4.7 – ESTRUTURA DAS MENSAGENS DE GERENCIAMENTO DE TRÁFEGO. ...52
FIGURA 4.8 – ESTRUTURA DAS MENSAGENS DE ROTEAMENTO. ...53
FIGURA 4.9 – ESTRUTURA DAS VARIÁVEIS ESTATÍSTICA SIMPLES. ...54
FIGURA 4.10 – ESTRUTURA DAS VARIÁVEIS ESTATÍSTICA MÉDIAS. ...55
FIGURA 4.11 – ESTRUTURA DOS ARQUIVOS. ...55
FIGURA 4.12 – EXEMPLO DE ARQUIVO DE SAÍDA. ...57
FIGURA 4.13 – EXEMPLO DE UM PARÂMETRO MATRICIAL PARA A SELEÇÃO DAS VARIÁVEIS ESTATÍSTICAS QUE FARÃO PARTE DE UMA AMOSTRAGEM. ...58
FIGURA 4.14 – PERÍODOS ATIVOS E INATIVOS DAS CONEXÕES CRIADAS PELAS CAMADAS REQUERENTES E REMOVEDORAS DE CONEXÕES...61
FIGURA 4.15 – PADRÃO DE TRÁFEGO GERADO PELA CAMADA FONTE DE TRÁFEGO DETERMINÍSTICO PARA DUAS SITUAÇÕES: A) CONEXÕES COM DURAÇÕES DETERMINÍSTICAS. B) CONEXÕES COM DURAÇÕES EXPONENCIAIS NEGATIVAS...64
xiv
FIGURA 4.16 – PADRÃO DE TRÁFEGO GERADO PELA CAMADA FONTE DE TRÁFEGO POISSONIANO PARA DUAS SITUAÇÕES: A) CONEXÕES COM DURAÇÕES DETERMINÍSTICAS. B) CONEXÕES COM DURAÇÕES
EXPONENCIAIS NEGATIVAS...64
FIGURA 4.17 – ESTRUTURA DA SWITCH FABRIC MODELADA NO CONJUNTO DE MODELOS NO NÍVEL DE CÉLULAS...67
FIGURA 4.18 – ITERAÇÃO ENTRE A CAMADA SW_ATM E OS DEMAIS GERENCIADORES DE TRÁFEGO DO BLOCO COMUTADOR. ...68
FIGURA 4.19 – ITERAÇÃO ENTRE A CAMADA PHY_IN E OS DEMAIS GERENCIADORES DE TRÁFEGO DO BLOCO COMUTADOR. ...71
FIGURA 4.20 – ITERAÇÃO ENTRE A CAMADA PHY_OUT E OS DEMAIS GERENCIADORES DE TRÁFEGO DOS BLOCOS COMUTADOR E BTE. ...72
FIGURA 4.21 – ESTRUTURA DO GERENCIADOR DE TRÁFEGO DEFAULT_QUEUEING_STRUCTURE. ...75
FIGURA 4.22 – ESTRUTURA DO GERENCIADOR DE TRÁFEGO PER_VC_QUEUEING_STRUCTURE. ...76
FIGURA 4.23– ESTRUTURA DO ESCALONADOR VS_TS_SCHEDULER. ...80
FIGURA 4.24 – ALGORITMOS IMPLEMENTADOS PARA OS ESPAÇADORES: A) A (CBR.1, ABR.1 E UBR.1) E B) B (VBR.1)...82
FIGURA 4.25 – ALGORITMOS IMPLEMENTADOS PARA OS ESPAÇADORES: A) C (VBR.2) E B) D (VBR.3)...84
FIGURA 4.26 – ESTRUTURA DO MODELO DO ESCALONADOR WF2Q. ...87
FIGURA 4.27 – ALGORITMO DE ARMAZENAMENTO DE CÉLULAS ATM. ...89
FIGURA 4.28 – ALGORITMO DE SERVIÇO DE CÉLULAS ATM...91
FIGURA 4.29 – ESTRUTURA DO LFVC_SCHEDULER...92
FIGURA 4.30 – ALGORITMO IMPLEMENTADO PARA O ARMAZENAMENTO DE CÉLULAS NO LFVC_SCHEDULER...95
FIGURA 4.31 – ALGORITMO IMPLEMENTADO PARA A TRANSMISSÃO DE CÉLULAS NO LFVC_SCHEDULER...96
FIGURA 4.32 – ALGORITMO DE SERVIÇO DA CÉLULA DA CABECEIRA DA FILA H...97
FIGURA 4.33 – FLUXOGRAMA DO CRITÉRIO DE ACEITAÇÃO DE CONEXÕES DO ELWALID_MITRA_CAC. ...101
FIGURA 4.34 – DINÂMICA DO LIMIAR DE ACEITAÇÃO DE CÉLULAS PARA: A) CLASSE COM MULTIPLEXAÇÃO SEM PERDAS E B) CLASSE COM MULTIPLEXAÇÃO ESTATÍSTICA. ...106
FIGURA 4.35 – ESTRUTURA DO LEAKY_BUCKET_TP. ...111
FIGURA 4.36 – ALGORITMOS IMPLEMENTADOS PARA OS POLICIADORES: A) A (CBR.1, ABR.1 E UBR.1) E B) B (VBR.1)...112
xv
FIGURA 4.37 – ALGORITMO IMPLEMENTADO PARA O POLICIADOR C (VBR.2). ...114
FIGURA 4.38 – ALGORITMO IMPLEMENTADO PARA O POLICIADOR D (VBR.3)...115
FIGURA 4.39 – ESTRUTURA DO APLICATIVO DETERMINÍSTICO...116
FIGURA 4.40 – ESTRUTURA DO APLICATIVO POISSONIANO. ...116
FIGURA 4.41 – ESTRUTURA DO APLICATIVO EXTERNO. ...117
FIGURA 4.42 – ESTRUTURA DO APLICATIVO RECEPTOR. ...117
FIGURA 4.43 – ESTRUTURA DO BTE...118
FIGURA 4.44 – ESTRUTURA DO COMUTADOR...119
FIGURA 4.45 – EXEMPLO DE UMA REDE ATM SIMPLES. ...123
FIGURA 4.46 – ESTRUTURA INTERNA DOS BLOCOS DA REDE ATM SIMPLES. ...124
FIGURA 4.47 – ALOCAÇÃO DINÂMICA DE CAMADAS E DE GERENCIADORES DE TRÁFEGO NO CMNC. ...125
FIGURA 4.48 – NOMENCLATURA DOS MODELOS INTERNOS DO BLOCO COMUTADOR. ...126
FIGURA 5.1 – CENÁRIO NVOD MPEG SOBRE ATM NATIVO...130
FIGURA 5.2 – CENÁRIOS INTERNET SOBRE ATM...131
FIGURA 5.3 –CENÁRIO MULTIMÍDIA EM TEMPO REAL SOBRE ATM...132
FIGURA 5.4 – SEGMENTAÇÃO DE FRAMES MPEG EM CÉLULAS ATM: A) SOLUÇÃO COMUMENTE UTILIZADA E B) SOLUÇÃO ADOTADA PELO PROGRAMA DE ADAPTAÇÃO. ...136
FIGURA 5.5 – ALGORITMO PARA A ADAPTAÇÃO DAS SEQÜÊNCIAS DE FRAMES MPEG EM PACOTES TS MPEG. ...138
FIGURA 5.6 – SEQÜÊNCIA DE TAMANHO DE FRAME MPEG. ...140
FIGURA 5.7 – SEQÜÊNCIA DE FLUXO DE TRANSPORTE MPEG DE SAÍDA...140
FIGURA 5.8 – EQUIVALÊNCIA ENTRE: A) BUFFER VIRTUAL E B) POLICIADOR. ...145
FIGURA 5.9 – ESTIMATIVA DE UM PAR (PCR, CDVT) – PARTE I. ...150
FIGURA 5.10 – ESTIMATIVA DE UM PAR (PCR, CDVT) – PARTE II. ...151
FIGURA 5.11 – SEQÜÊNCIA DE FRAMES MPEG DE ENTRADA. ...152
FIGURA 5.12 – SEQÜÊNCIA DE AAL-SDUS RESULTANTE DA ADAPTAÇÃO DOS FRAMES MPEG...152
FIGURA 5.13 – OCUPAÇÃO DO BUFFER VIRTUAL DURANTE AS VARIAS ITERAÇÕES DO ALGORITMO DE ESTIMAÇÃO DO PCR E DO CDVT. ...153
xvi
FIGURA 5.14 – OCUPAÇÃO DO BUFFER VIRTUAL DURANTE AS ÚLTIMAS 3 ITERAÇÕES DO ALGORITMO DE ESTIMAÇÃO
DO PCR E DO CDVT...154
FIGURA 5.15 – CONVERGÊNCIA DO ALGORITMO DE ESTIMAÇÃO DO PCR E DO CDVT...154
FIGURA 5.16 – SCR VERSUS MBS E BT...156
FIGURA 6.1 – TOPOLOGIA DA REDE UTILIZADA PARA VALIDAR O MODELO WF2Q_SCHEDULER...160
FIGURA 6.2 – OCUPAÇÃO DA ESTRUTURA DE FILAS DO BTE_0 PARA O MODELO DE ESCALONADOR WF2Q. ...164
FIGURA 6.3 – OCUPAÇÃO DAS FILAS DE CADA CONEXÃO NA ESTRUTURA DE FILAS DO BTE_0 SUJEITA A CAPACIDADE DE 100 CÉLULAS PARA AMBOS OS MODELOS DE ESCALONADORES...166
FIGURA 6.4 – OCUPAÇÃO DAS FILAS DE CADA CONEXÃO NA ESTRUTURA DE FILAS DO BTE_0 SUJEITA A CAPACIDADE DE 50 CÉLULAS PARA AMBOS OS MODELOS DE ESCALONADORES...167
FIGURA 6.5 –ATRASO INSTANTÂNEO DAS CÉLULAS NA ESTRUTURA DE FILAS DO BTE_0 COM CAPACIDADE DE 100 CÉLULAS PARA AMBOS OS MODELOS DE ESCALONADORES...169
FIGURA 6.6 – ATRASO INSTANTÂNEO DAS CÉLULAS NA ESTRUTURA DE FILAS DO BTE_0 COM CAPACIDADE DE 50 CÉLULAS PARA AMBOS OS MODELOS DE ESCALONADORES...170
FIGURA 6.7 – ATRASO MÉDIO DAS CÉLULAS NA ESTRUTURA DE FILAS DO BTE_0 COM CAPACIDADE DE 100 CÉLULAS PARA AMBOS OS MODELOS DE ESCALONADORES...171
FIGURA 6.8 – ATRASO MÉDIO DAS CÉLULAS NA ESTRUTURA DE FILAS DO BTE_0 COM CAPACIDADE DE 50 CÉLULAS PARA AMBOS OS MODELOS DE ESCALONADORES...172
FIGURA 6.9 – NÚMERO DE CÉLULAS PERDIDAS NA ESTRUTURA DE FILAS DO BTE_0 COM CAPACIDADE DE 100 CÉLULAS PARA AMBOS OS MODELOS DE ESCALONADORES...174
FIGURA 6.10 – NÚMERO DE CÉLULAS PERDIDAS NA ESTRUTURA DE FILAS DO BTE_0 COM CAPACIDADE DE 50 CÉLULAS PARA AMBOS OS MODELOS DE ESCALONADORES...175
FIGURA 6.11 – CLR NA ESTRUTURA DE FILAS DO BTE_0 COM CAPACIDADE DE 100 CÉLULAS PARA AMBOS OS MODELOS DE ESCALONADORES. ...176
FIGURA 6.12 – CLR NA ESTRUTURA DE FILAS DO BTE_0 COM CAPACIDADE DE 50 CÉLULAS PARA AMBOS OS MODELOS DE ESCALONADORES. ...177
FIGURA 6.13 – OCUPAÇÃO MÉDIA NA ESTRUTURA DE FILAS DO BTE_0 PARA OS DOIS MODELOS DE ESCALONADORES.178 FIGURA 6.14 – ATRASO MÉDIO NA ESTRUTURA DE FILAS DO BTE_0 PARA OS DOIS MODELOS DE ESCALONADORES. ....179
FIGURA 6.15 – CLR MÉDIO NA ESTRUTURA DE FILAS DO BTE_0 PARA OS DOIS MODELOS DE ESCALONADORES. ...181
xvii
FIGURA 6.17 – TOPOLOGIA DA UTILIZADA PARA AVALIAR A QOS DE SVCS ATM...183
FIGURA 6.18 – OCUPAÇÃO MÉDIA DA ESTRUTURA DE FILAS DO BTE_0. ...186
FIGURA 6.19 – ATRASO MÉDIO DAS CÉLULAS NA ESTRUTURA DE FILAS DO BTE_0...187
FIGURA 6.20 – TAXA MÉDIA DE PERDA DE CÉLULAS NA ESTRUTURA DE FILAS DO BTE_0. ...187
FIGURA 6.21 – ATRASO MÉDIO FIM-A-FIM DAS CÉLULAS NA REDE. ...187
FIGURA 6.22 – CENÁRIO VÍDEO SOBRE DEMANDA MPEG-4 SOBRE ATM NATIVO. ...188
FIGURA 6.23 – CENÁRIO NVOD MPEG-4 SOBRE ATM UTILIZANDO O CONJUNTO DE MODELOS NO NÍVEL DE CÉLULAS...189
FIGURA 6.24 – VISÃO DETALHADA DO CENÁRIO NVOD MPEG-4 SOBRE ATM UTILIZANDO O CMNC...189
FIGURA 6.25 – EXEMPLO DE FIGURA DE RESULTADOS PARA A CONFIGURAÇÃO DE SIMULAÇÃO (U)(3)(1)(Z). ...196
FIGURA 6.26 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES (U)(0)(0)(Z)...198
FIGURA 6.27 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES (U)(0)(0)(Z)...199
FIGURA 6.28 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES (U)(0)(1)(Z)...200
FIGURA 6.29 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES (U)(0)(1)(Z)...201
FIGURA 6.30 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES (U)(1)(0)(Z)...202
FIGURA 6.31 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES (U)(1)(0)(Z)...203
FIGURA 6.32 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES (U)(1)(1)(Z)...204
FIGURA 6.33 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES (U)(1)(1)(Z)...205
FIGURA 6.34 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES (U)(2)(0)(Z)...206
FIGURA 6.35 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES (U)(2)(0)(Z)...207
xviii
FIGURA 6.36 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(2)(1)(Z)...208 FIGURA 6.37 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(2)(1)(Z)...209 FIGURA 6.38 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(3)(0)(Z)...210 FIGURA 6.39 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(3)(0)(Z)...211 FIGURA 6.40 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(3)(1)(Z)...212 FIGURA 6.41 – OCUPAÇÃO DA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(3)(1)(Z)...213 FIGURA 6.42 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(0)(0)(Z)...215 FIGURA 6.43 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(0)(0)(Z)...216 FIGURA 6.44 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(0)(1)(Z)...217 FIGURA 6.45 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(0)(1)(Z)...218 FIGURA 6.46 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(1)(0)(Z)...219 FIGURA 6.47 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(1)(0)(Z)...220 FIGURA 6.48 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(1)(1)(Z)...221 FIGURA 6.49 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(1)(1)(Z)...222 FIGURA 6.50 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(2)(0)(Z)...223 FIGURA 6.51 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
xix
FIGURA 6.52 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES
(U)(2)(1)(Z)...225
FIGURA 6.53 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES (U)(2)(1)(Z)...226
FIGURA 6.54 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES (U)(3)(0)(Z)...227
FIGURA 6.55 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES (U)(3)(0)(Z)...228
FIGURA 6.56 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES (U)(3)(1)(Z)...229
FIGURA 6.57 – ATRASO NA ESTRUTURA DE FILAS PHY_OUT_QS_0 DO BTE_0 PARA AS CONFIGURAÇÕES (U)(3)(1)(Z)...230
FIGURA 6.58 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(0)(0)(Z). ...233
FIGURA 6.59 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(0)(0)(Z). ...234
FIGURA 6.60 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(0)(1)(Z). ...235
FIGURA 6.61 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(0)(1)(Z). ...236
FIGURA 6.62 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(1)(0)(Z). ...237
FIGURA 6.63 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(1)(0)(Z). ...238
FIGURA 6.64 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(1)(1)(Z). ...239
FIGURA 6.65 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(1)(1)(Z). ...240
FIGURA 6.66 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(2)(0)(Z). ...241
FIGURA 6.67 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(2)(0)(Z). ...242
FIGURA 6.68 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(2)(1)(Z). ...243
FIGURA 6.69 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(2)(1)(Z). ...244
FIGURA 6.70 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(3)(0)(Z). ...245
FIGURA 6.71 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(3)(0)(Z). ...246
FIGURA 6.72 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(3)(1)(Z). ...247
FIGURA 6.73 – CLR NA CAMADA FÍSICA DE SAÍDA DO BTE_0 PARA AS CONFIGURAÇÕES (U)(3)(1)(Z). ...248
xx
FIGURA A.2 – FLUXOGRAMAS DE FUNCIONAMENTO DO KERNEL...266
FIGURA A.3 – RELAÇÃO ENTRE AS FUNÇÕES DE INTERFACEAMENTO DO KERNEL E AS FUNÇÕES DE COMPORTAMENTO DOS MODELOS. ...268
FIGURA A.4 – FLUXOGRAMA DA FUNÇÃO DE EXECUÇÃO DA SIMULAÇÃO (RUN). ...270
FIGURA A.5 – FASES NECESSÁRIAS PARA A SIMULAÇÃO DE UMA REDE NO HYDRAGYRUM. ...273
FIGURA A.6 – ESTRUTURA DE CLASSES DO KERNEL DO HYDRAGYRUM [3]. ...274
FIGURA A.7 – ESTRUTURA HIERÁRQUICA DE CONEXÕES DO HYDRAGYRUM. ...276
FIGURA A.8 – REMOÇÃO DE CONEXÕES NO HYDRAGYRUM...276
FIGURA A.9 – EXEMPLO DE TOPOLOGIA PARA REDES ATM. ...277
FIGURA A.10 – ESTRUTURA DOS PARÂMETROS DO HYDRAGYRUM. ...278
FIGURA A.11 – ESTRUTURA DOS EVENTOS DO HYDRAGYRUM. ...279
FIGURA A.12 – ESTRUTURA DE UM BLOCO DO HYDRAGYRUM. ...280
FIGURA A.13 – CONSTRUÇÃO DE NOVOS BLOCOS NO HYDRAGYRUM...285
FIGURA A.14 – PASSOS NECESSÁRIOS PARA DESENVOLVER UM NOVO BLOCO PARA O HYDRAGYRUM. ...286
FIGURA A.15 – ESTRUTURA DE UMA CAMADA DO HYDRAGYRUM. ...287
FIGURA A.16 – CONSTRUÇÃO DE NOVAS CAMADAS NO HYDRAGYRUM. ...290
xxi
Índice de Tabelas
TABELA 2.1 – CARACTERÍSTICAS DE ALGUMAS FERRAMENTAS DE SIMULAÇÃO DE REDES ATM. ...30
TABELA 4.1 – MAPEAMENTO DOS DESCRITORES DE TRÁFEGO ORIGINAIS PARA OS DESCRITORES A SEREM UTILIZADOS NO CRITÉRIO DE ACEITAÇÃO DO CAC. ...99
TABELA 4.2 – MAPEAMENTO DOS DESCRITORES DE TRÁFEGO ORIGINAIS PARA OS DESCRITORES A SEREM UTILIZADOS NO CÁLCULO DA LARGURA DE FAIXA EFETIVA E DO ESPAÇO EM GERENCIADOR DE TRÁFEGO EFETIVO. .101 TABELA 5.1 – PARÂMETROS DE QOS E DESCRITORES DE TRÁFEGO PARA AS CATEGORIAS DE SERVIÇO ATM. FONTE [7]. ...142
TABELA 5.2 – DEFINIÇÕES DE CONFORMIDADE PARA AS CATEGORIAS DE SERVIÇO ATM. FONTE [7]. ...142
TABELA 5.3 – CONJUNTOS DE PARES (SCR, MBS) OU (SCR, BT). ...155
TABELA 6.1 – DESCRITORES DE TRÁFEGO ATM UTILIZADOS. ...161
TABELA 6.2 – PESOS E CLR PARA CADA CONEXÃO. ...163
TABELA 6.3 – EVOLUÇÃO DAS VARIÁVEIS DO WF2Q_SCHEDULER DURANTE A EXECUÇÃO DO ALGORITMO DE ARMAZENAMENTO DE CÉLULAS ATM...165
TABELA 6.4 – DESCRITORES DE TRÁFEGO ATM UTILIZADOS. ...184
TABELA 6.5 – PESOS E CLR PARA CADA CONEXÃO. ...185
TABELA 6.6 – DESCRITORES DE TRÁFEGO ATM UTILIZADOS. ...193
TABELA 6.7 – PRINCIPAIS CARACTERÍSTICAS DAS CONEXÕES ESTABELECIDAS A PARTIR DE CADA APLICATIVO DA REDE. ...197
1
Capítulo 1
Introdução
1.1 - Motivação
1.1.1 - ATM: Qualidade de Serviço Fim-a-Fim
Estimuladas pelo vertiginoso crescimento da Internet e pela demanda crescente por serviços que
integram dados, voz, vídeo e imagens, as operadoras de telecomunicações têm realizado, nas últimas
décadas, grandes investimentos na ampliação de suas estruturas de transmissão. Estas novas
infra-estruturas, ao contrário das antigas redes telefônicas, não dependem mais de uma única tecnologia.
Redes ópticas, telefônicas, via satélite e sem fio têm se integrado cada vez mais, oferecendo aos
usuários uma gama maior de serviços disponíveis, a qualquer tempo e em qualquer lugar. Além disso,
uma grande variedade de protocolos, funções e algoritmos são usados desde a camada física até a
camada de aplicação da rede. Neste cenário, o uso de ferramentas computacionais tem se demonstrado
imprescindível não apenas para reduzir custos, mas também para acelerar o projeto, a análise e a
implantação dessas redes.
Uma das tecnologias mais utilizadas nessa ampliação de infra-estrutura é a tecnologia ATM
(Asynchronous Transfer Mode) [1][2][3][4]. O ATM é fundamentado na transmissão, multiplexação e
chaveamento de pequenos pacotes de tamanho fixo, chamados de células, que permitem a integração e
o transporte de voz, vídeo, imagens e dados sobre uma mesma rede de alta velocidade. O ATM oferece
vantagens em potencial tanto em termos de vazão agregada de comutação quanto no suporte à
qualidade de serviço (QoS – Quality of Service). E mais, o ATM pode ser usado em todas as porções de
uma rede, desde a rede local até a rede de longa distância, reduzindo assim os custos de operação,
administração e manutenção. Com todas estas vantagens em mãos, o ATM foi escolhido em 1988 pelo
ITU-T (International Telecommunication Union – Telecommunication Standardization Sector) como o
Modo de Transferência da Rede Digital de Serviços Integrados Faixa Larga (B-ISDN – Broadband
2
Na década de 1990, o ATM passou por diversos desenvolvimentos, guiados pelo ITU-T [5] e
ATM Fórum [6], que culminaram na implantação de redes mundo afora. Atualmente, o ATM está
sendo utilizado principalmente para: prover acesso e interligar redes corporativas que necessitam de
muita largura de faixa e que sejam distribuídas geograficamente; construir backbones de longa
cobertura e metropolitanos, visando a agregação de tráfego de redes de acesso; interconectar redes de
diferentes tecnologias; e oferecer soluções de distribuição de vídeo.
Devido as suas características, o ATM têm sido considerado uma das tecnologias mais
favoráveis para oferecer QoS fim-a-fim para um grande número de aplicações, tais como telefonia,
videoconferência, vídeo sobre demanda, educação à distância e web browsing. Entretanto, o suporte à
qualidade de serviço em redes ATM requer um conjunto bastante sofisticado de funções de
gerenciamento de tráfego (TM – Traffic Management). Dentre as principais razões que levaram a essa
sofisticação podemos destacar a multiplexação estatística de células ATM e a ausência de um
mecanismo de controle de fluxo no nível de células. Para suportar a multiplexação estatística, ou seja, o
compartilhamento temporal dos enlaces por várias conexões, as redes ATM aceitam muito mais tráfego
do que a capacidade de transmissão existente. A idéia é aumentar a eficiência da rede partindo da
suposição que o período de surto de tráfego de uma determinada conexão não coincide com o período
de surto das demais conexões. Por outro lado, o fato das redes ATM não possuírem um controle de
fluxo no nível de células, permite que conexões mal comportadas transmitam um número maior de
células do que o negociado. Para evitar que esse tráfego indesejado comprometa a QoS de conexões
bem comportadas, as funções de gerenciamento de tráfego devem marcar ou descartar células desse
tráfego a fim de evitar o congestionamento. Portanto, os objetivos principais das funções de
gerenciamento de tráfego são a prevenção e a reação ao congestionamento na rede.
Quando ocorre um congestionamento em uma rede ATM, as funções de gerenciamento de
tráfego reagem de forma a manter os objetivos de QoS negociados e ao mesmo tempo maximizar o uso
dos recursos disponíveis. Portanto, somente através de um gerenciamento de tráfego adequado é
possível manter um nível satisfatório de QoS na rede sem reduzir a sua eficiência. As funções de
gerenciamento de tráfego foram definidas pelo ATM Forum [6] na especificação Traffic Management
Specification 4.0 [7], e pelo ITU-T [5] na recomendação I.371 Traffic Contract and Congestion
Control in B-ISDN Standard [8]. Embora hajam algumas diferenças entre estes documentos, ambos
3
1.1.2 - Funções de Gerenciamento de Tráfego ATM
Formalmente, a especificação TM 4.0 do ATM Forum define as seguintes funções de
gerenciamento de tráfego ATM:
Controle de Admissão de Conexões (CAC – Connection Admission Control).
Controle de Utilização de Parâmetros (UPC – Usage Parameter Control).
Descarte Seletivo de Células (Selective Cell Discarding).
Formatação de Tráfego (Traffic Shaping).
Controle Explícito de Congestionamento na Direção de Transmissão (Explicit Forward
Congestion Control).
Gerenciamento de Recursos usando Caminhos Virtuais (Resource Management using
Virtual Paths).
Descarte de Frames (Frame Discard).
Controle de Fluxo Genérico (Generic Flow Control).
Controle de Fluxo ABR (ABR Flow Control).
Na prática, porém, essas funções são implementadas como algoritmos bem definidos, que em
alguns casos agrupam mais de uma função de gerenciamento de tráfego. Um exemplo é o algoritmo de
descarte seletivo de células que agrupa as funções de descarte seletivo de células e de descarte de
frames. Embora a maioria das funções de gerenciamento de tráfego estejam sendo utilizadas em
equipamentos comerciais, algumas delas praticamente não saíram do estágio de pesquisa acadêmica.
São exemplos as funções de gerenciamento de recursos usando caminhos virtuais e de controle de fluxo
genérico. Por outro lado, muitos algoritmos de gerenciamento de tráfego foram desenvolvidos por
empresas para aplicação prática sem ter sido formalmente definidos pelo ITU-T ou pelo ATM Forum.
São exemplos os algoritmos de escalonamento de células e de gerenciamento de estruturas de filas.
Neste trabalho, consideramos os seguintes algoritmos de gerenciamento de tráfego ATM (veja o
Capítulo 4):
Algoritmos de Escalonamento (Scheduling Algorithms) – São implementados em cada ponto
de armazenamento de células da rede (estrutura de filas – queueing structure) para
4
selecionar a ordem apropriada de serviço das células, a fim de garantir os objetivos de QoS
negociados.
Algoritmos de Controle de Admissão de Conexões (CAC Algorithms – Connection
Admission Control Algorithms) – Determinam se uma nova conexão ATM pode ou não ser
estabelecida na rede, reservando espaço físico nas estruturas de filas da rede e largura de
faixa nos algoritmos de escalonamento. Este algoritmo implementa a função de controle de
admissão de conexões especificada pelo ATM Forum.
Algoritmos de Gerenciamento de Estruturas de Filas (Buffer Manangement Algorithms) –
São implementados junto as estruturas de filas da rede a fim de julgar se uma célula
recebida pode ou não ser armazenada.
Algoritmos de Descarte Seletivo de Células (Selective Cell Discard Algorithms) – Em uma
situação de congestionamento, células ATM eventualmente terão que ser descartadas. Nesta
situação, algoritmos de descarte seletivo de células são necessários, pois células de menor
prioridade devem ser descartadas em benefício de células mais prioritárias. Este algoritmo
implementa as funções de descarte seletivo de células e de frames especificadas pelo ATM
Forum.
Algoritmos de Formatação de Tráfego (Traffic Shaping Algorithms) – Formatam o tráfego
das conexões ATM para que esse esteja de acordo com o contrato de tráfego negociado.
Este algoritmo implementa a função de formatação de tráfego especificada pelo ATM
Forum.
Algoritmos de Policiamento de Tráfego (Traffic Policing Algorithms) – Atuam marcando e
descartando células ATM a fim de que o tráfego mal comportado de uma determinada
conexão satisfaça os descritores de tráfego negociados. Este algoritmo implementa a função
de controle de utilização de parâmetros especificada pelo ATM Forum.
As funções de controle explícito de congestionamento na direção de transmissão, gerenciamento
de recursos usando caminhos virtuais, controle de fluxo genérico e de controle de fluxo ABR não
foram consideradas neste trabalho.
5
1.1.3 - Complexidade e Interdependência entre Funções
Segundo Giroux et. al [9], a complexidade das funções de gerenciamento de tráfego não é
intrínseca das redes ATM, mas sim necessária para qualquer tecnologia que aspire carregar tráfego
multimídia de forma eficiente e ao mesmo tempo atender garantias de QoS fim-a-fim. Além disso, na
nossa opinião, a complexidade do gerenciamento de tráfego ATM é agravado por outro importante
fator: a forte interdependência existente entre essas funções. Por exemplo, consideremos o caso de
uma conexão ATM cujo contrato de tráfego negociado assegura um valor máximo de taxa de perda de
células (CLR – Cell Loss Ratio) da ordem de 10
-6. O CLR obtido para essa conexão dependerá:
Da estrutura de armazenamento de células utilizada – Uma estrutura de filas com filas
individuais por conexão (per-VC queueing) permite um melhor isolamento de tráfego entre
conexões do que uma estrutura de filas com uma única fila FIFO (first-in first-out queuing)
[10]. Esse isolamento de tráfego evita que um surto de tráfego mal comportado de uma
determinada conexão possa interferir nas células de outras conexões, ocasionando assim um
possível congestionamento e a perda de células nessas conexões. Tipicamente, o tráfego de
várias conexões é isolado entre si através de divisões físicas ou lógicas da estrutura de filas.
Do algoritmo de gerenciamento de estruturas de filas utilizado – Alguns esquemas de
particionamento de estruturas de filas oferecem isolamento naturalmente, através da reserva
de recursos fixos para cada conexão, como por exemplo o particionamento completo
(complete partitioning), enquanto outros precisam ser acoplados a um algoritmo de descarte
seletivo de células para oferecer esse isolamento e ao mesmo tempo maximizar o ganho
estatístico obtido [9], como por exemplo o particionamento dinâmico (dynamic partitioning)
[10]. Uma alocação de espaço em buffer inferior do que a necessária para uma determinada
conexão pode ocasionar a perda de células durante uma situação de congestionamento.
Do algoritmo de escalonamento adotado – Vários algoritmos de escalonamento podem ser
implementados para oferecer diferentes níveis de isolamento, atraso e vazão [11]. A
utilização de um algoritmo de escalonamento inadequado pode ocasionar o aumento
excessivo da ocupação das estruturas de filas da rede, bem como do tempo de permanência
das células nessas estruturas. Neste caso, células ATM poderão ser descartadas devido a
6
falta de recursos nas estruturas de filas ou ao atraso excessivo sofrido por essas células na
rede.
Do algoritmo de controle de admissão de conexões utilizado – Um algoritmo de CAC
eficiente produz um alto ganho estatístico sem violar as garantias de QoS negociadas. Na
prática, as alocações de largura de faixa e de espaço em buffer feitas pelos algoritmos de
CAC são utilizadas para gerenciar os recursos disponíveis nas estruturas de filas e nos
algoritmos de escalonamento [12]. Portanto, é de fundamental importância que estas
alocações sejam feitas de forma precisa e em acordo com os demais algoritmos de
gerenciamento de tráfego implementados na rede.
Do algoritmo de descarte de células utilizado – O CLR obtido para a conexão dependerá em
grande parte desse algoritmo, uma vez que é ele que decide qual célula ou quais células
serão descartadas. Alguns algoritmos de descarte permitem descartar células de conexões
menos prioritárias em prol de células de conexões mais prioritárias, aumentando assim o
isolamento de tráfego entre as conexões.
Do algoritmo de policiamento de tráfego utilizado – Em determinadas circunstâncias, os
algoritmos de policiamento de tráfego podem descartar células ATM consideradas não
conformes com o contrato de tráfego acordado na fase de estabelecimento da conexão.
Portanto, esses algoritmos podem contribuir significativamente para o CLR obtido.
Do algoritmo de formatação de tráfego utilizado – Alguns algoritmos de formatação de
tráfego funcionam de forma integrada com algoritmos de escalonamento. Portanto, é
possível que células de um tráfego mal comportado sejam descartadas devido a falta de
recursos nas estruturas de filas que armazenam essas células.
Assim sendo, uma boa estimativa do nível de qualidade de serviço obtido para uma determinada
conexão deve considerar todas as componentes geradas por esses algoritmos de gerenciamento de
tráfego e a sua complexa interdependência. Somente com esse nível de detalhamento é possível estimar
com precisão a qualidade de serviço oferecida para uma determinada conexão em termos de CLR,
atraso e vazão.
7
1.2 - Objetivos do Trabalho
Este trabalho propõe o desenvolvimento de um conjunto de modelos de simulação capaz de
avaliar com precisão, eficiência e robustez a qualidade de serviço fim-a-fim oferecida para conexões
ATM diante de diferentes cenários de tráfego, de congestionamento e de recursos na rede. Para tanto, o
conjunto de modelos desenvolvido deverá englobar não apenas as funções de gerenciamento de tráfego
ATM e sua complexa interdependência, mas também todas as demais funcionalidades das redes ATM,
tais como: o processamento, a comutação e o transporte de células ATM; a negociação do contrato de
tráfego; o roteamento e o gerenciamento de conexões virtuais chaveadas.
1.3 - Organização da Tese
A tese está organizada em sete capítulos. O segundo capítulo apresenta uma discussão sobre a
simulação de sistemas de comunicação, e em especial de redes ATM. Neste capítulo são abordados os
principais aspectos envolvidos na simulação computacional de redes ATM, destacando as várias
direções que poderiam ser tomadas na realização deste trabalho. O terceiro capítulo apresenta o
ambiente de simulação Hydragyrum 1.0, que foi o software escolhido para o desenvolvimento do
conjunto de modelos de simulação. Neste capítulo é mostrada uma visão geral do ambiente de
simulação Hydragyrum, abordando a estrutura e as principais características deste ambiente. O quarto
capítulo apresenta o conjunto de modelos desenvolvido para a análise da qualidade de serviço em
redes ATM, ou seja, o conjunto de modelos no nível de células. Este é o capítulo principal da tese,
onde são mostradas as maiores contribuições do trabalho. O quinto capítulo apresenta uma discussão
sobre os possíveis cenários de redes que poderiam ser simulados no Hydragyrum utilizando o conjunto
de modelos no nível de células. Este capítulo também é importante, pois mostra como especificar
simulações baseadas nos modelos desenvolvidos. O sexto capítulo apresenta três simulações realizadas
utilizando-se o conjunto de modelos no nível de células e o ambiente de simulação Hydragyrum. Neste
capítulo são apresentados os resultados de simulação do trabalho. Estes resultados demonstraram que o
conjunto de modelos desenvolvido permite avaliar com precisão, eficiência e robustez a qualidade de
serviço fim-a-fim oferecida para conexões ATM diante de diferentes cenários de tráfego, de
congestionamento e de recursos na rede. Finalmente, no sétimo capítulo será apresentado um sumário
das atividades desenvolvidas, relatando as principais decisões tomadas, soluções adotadas e conclusões
8
obtidas durante o desenvolvimento do trabalho. Também serão apresentadas algumas sugestões para
trabalhos futuros.
1.4 - Principais Contribuições
A principal contribuição do trabalho é o desenvolvimento de uma ferramenta única para a
análise da qualidade de serviço em redes ATM. Esta ferramenta permite a análise sofisticada da QoS
em redes ATM, uma vez que ela possui um amplo e expansível conjunto de modelos (veja o Capítulo
4), capaz de avaliar a qualidade de serviço oferecida para conexões ATM considerando não apenas as
funções de gerenciamento de tráfego e sua complexa interdependência, mas também todas as demais
funcionalidades das redes ATM. No Capítulo 6 são mostrados resultados que permitem comparar a
qualidade de serviço oferecida para cada conexão de uma rede ATM diante de diferentes cenários de
tráfego, de congestionamento e de recursos na rede. Além da ferramenta para a simulação de redes
ATM, este trabalho contribuiu ainda com dois outros softwares inéditos (veja o Capítulo 5): um para a
adaptação de seqüências de tráfego MPEG e outro para a estimação de descritores de tráfego ATM.
1.5 - Referências Bibliográficas
[1]
BLACK, UYLESS, “ATM: Foundation for Broadband Networks”, Prentice-Hall, 1995.
[2]
MINOLLI, D., ALLES, A., “LAN, ATM, and LAN Emulation Technologies”, Artech House,
1996.
[3]
SACKET, G.C., METZ, C., “ATM and Multiprotocol Networking”, McGraw Hill, January
1997.
[4]
ALLES, A., “ATM Internetworking”, White Paper, Cisco Systems, Inc., May 1995.
[5]
http://www.itu.ch
[6]
http://www.atmforum.com
[7]
ATM FORUM, “Traffic Management 4.0”, 1996.
9
[9]
GIROUX, N., GANTI, S., “Quality of Service in ATM Networks: State-of-Art Traffic
Management”, Prentice Hall, 1998.
[10]
KRISHNAN, S., CHOUDHURY, A., CHIUSSI, F., “Dynamic Partitioning: A Mechanism for
Shared Memory Management”, IEEE INFOCOM’99, 1999.
[11] BENNETT, J.C.R., ZHANG, H., “WF2Q: Worst-case Fair Weighted Fair Queuing'”,
INFOCOM'96, March 1996.
[12]
ELWALID, A., WENTWORTH, R., “A New Approach for Allocating Buffers and Bandwidth
to Heterogeneous, Regulated Traffic in an ATM Node”, IEEE Journal on Selected Areas in
Communications, 13(6), 1995.
10
Página deixada em branco intencionalmente.
11
Capítulo 2
Simulação de Redes ATM
2.1 - Introdução
Atualmente, a simulação computacional tem sido apontada como a alternativa mais flexível
para a análise de desempenho de sistemas de comunicações [1][2][3], e em especial de redes ATM. Um
exemplo desta flexibilidade é a facilidade com que mecanismos de gerenciamento de tráfego podem ser
projetados e comparados. Outro exemplo é a dinâmica com que diferentes estratégias de modelamento
podem ser utilizadas para modelar a arquitetura e os componentes de uma rede ATM. Estes, e outros
exemplos mostram que somente a simulação computacional permite a análise de desempenho de redes
ATM a um baixo custo e com um nível de flexibilidade adequado, que não é encontrado em outras
soluções tais como métodos analíticos e redes de teste. Assim sendo, neste capítulo discutiremos os
principais aspectos da simulação computacional de redes ATM. Iniciaremos abordando a simulação de
sistemas de comunicações em geral, fazendo uma classificação das ferramentas existentes e discutindo
algumas de suas principais características. O objetivo é apresentar as características gerais dos
softwares de simulação de sistemas de comunicações. Estas características serão úteis para melhor
compreendermos os aspectos fundamentais das ferramentas de simulação de redes ATM. Em seguida,
abordaremos a simulação de redes ATM propriamente dita. Discutiremos os principais desafios que, na
nossa opinião, devem ser vencidos na simulação de redes ATM. Discutiremos também, as
características desejáveis dos softwares de simulação de redes ATM, as técnicas de simulação
utilizadas, as principais estratégias de modelamento e a simulação paralela ou distribuída de redes
ATM. Apresentaremos também algumas ferramentas de simulação destas redes, fazendo uma
comparação entre elas.
2.2 - Simulação de Sistemas de Comunicações
Inicialmente, a simulação computacional foi usada para avaliar o desempenho de componentes
individuais de um sistema de comunicações, tal como um modem, um satélite ou um receptor. Com o
12
passar dos anos, sistemas completos começaram a ser simulados. Entretanto, somente sistemas muito
caros e de alto risco eram simulados, em parte devido ao alto custo dos computadores. Hoje em dia, a
simulação computacional é utilizada em uma gama muito grande de aplicações, que vão desde o
mapeamento genético humano até a análise de investimentos financeiros em bolsas de valores. A
popularização da simulação computacional se deve principalmente à redução do custo e ao aumento da
capacidade dos computadores, bem como do desenvolvimento de sistemas operacionais mais eficientes
e simples de serem usados. Esta popularização também atingiu as ferramentas para a simulação de
sistemas de comunicações. Atualmente, tais ferramentas tem sido utilizadas não só no meio acadêmico
e empresarial, mas também em microcomputadores pessoais.
2.2.1 - Classificação das Ferramentas
Segundo Law [2] existem três tipos principais de softwares de simulação de sistemas de
comunicações:
Linguagens Gerais de Simulação – Podem em princípio ser utilizadas para simular qualquer
sistema. Porém, algumas destas linguagens incluem conjuntos de modelos (veja seção
2.2.2.1 - ) especialmente desenvolvidos para a simulação de redes de comunicações. Talvez
a maior vantagem deste tipo de software é que ele possibilita simular qualquer tipo de rede
de comunicações, independente da sua complexidade e das suas singularidades. Entretanto,
nem sempre é possível atingir o grau de detalhamento desejado quando se utiliza este tipo
de ferramenta. Exemplos deste tipo de software que possibilitam a simulação de redes ATM
são: MODSIM III [4], SIMSCRIPT II.5 [4] e Parsec [5][6].
Linguagens de Simulação Orientadas às Redes de Comunicações – Como o próprio nome já
diz, são direcionadas especificamente para a simulação de redes de comunicação. Dentre as
vantagens deste tipo de software podemos destacar a facilidade e a flexibilidade de
desenvolvimento de modelos. Exemplos deste tipo de software que possibilitam a simulação
de redes ATM são: OPNET Modeler [7] e TeD/GTW [8].
Simuladores Orientados às Redes de Comunicações – São softwares que permitem simular
apenas uma classe específica de redes de comunicações. Dentre as vantagens deste tipo de
software estão a facilidade de uso e a redução do tempo e da complexidade de
13
deste tipo permitem o desenvolvimento de novos modelos. Exemplos destes simuladores
são: NIST [10][11], QUARTS-II [12], ATM-TN [13][14], CLASS [15][16], Ancles [17],
SimATM (Pennsylvania State University) [18], SimATM (Unicamp) [19][20] e
Hydragyrum (Unicamp) [21][22].
2.2.2 - Principais Características
2.2.2.1 - Modelamento
Modelamento é o processo de construir modelos de sistemas e de dispositivos reais para um
determinado ambiente de simulação, de forma que estes modelos representem o mais fiel possível o
funcionamento desses elementos diante de um certo conjunto de situações. Tipicamente, as ferramentas
atuais de simulação [3] usam um diagrama de blocos hierárquico para representar graficamente os
modelos de um determinado sistema. Neste diagrama, cada bloco funcional representa um subsistema,
que é conectado a outros blocos a fim de representar o sistema completo. Estes blocos são construídos a
partir de bibliotecas de modelos disponibilizadas junto com o software de simulação, e possuem
parâmetros de simulação e de design. Parâmetros de simulação são usados para configurar o estado de
um bloco durante a simulação como, por exemplo, a amostragem ou não de uma determinada variável
estatística, enquanto parâmetros de design são usados para configurar o valor de variáveis específicas
de um bloco, desta forma permitindo a modificação do seu comportamento. Os blocos funcionais são
representados graficamente através de ícones, que uma vez conectados, descrevem o sistema a ser
simulado.
2.2.2.2 - Gerência de Simulação
As ferramentas atuais de simulação possuem um gerente de simulação, tipicamente chamado de
kernel ou núcleo do simulador, que é responsável por acionar os blocos que descrevem um sistema a
ser simulado. Este núcleo permite que um bloco utilize os recursos computacionais disponíveis por um
intervalo de tempo dependente da técnica de simulação utilizada. Quando este bloco termina suas
tarefas, ele avisa o kernel do simulador, que por sua vez aciona outros blocos do modelo de simulação,
até que a simulação termine.
2.2.2.3 - Técnicas de Simulação
Atualmente, várias técnicas são utilizadas no desenvolvimento de softwares de simulação de
sistemas de comunicações [3]. Estas técnicas basicamente diferem na forma como os blocos do sistema
14
simulado são acionados (executados), e podem ser classificadas em três categorias: simulação orientada
pelo tempo (Time-Driven Simulation), simulação orientada por dados (Data-Driven Simulation) e
simulação orientada por eventos (Event-Driven Simulation).
2.2.2.3.1 - Simulação Orientada pelo Tempo (Time-Driven Simulation)
Nesta técnica, cada bloco do modelo de simulação é chamado uma vez a cada intervalo de
avanço do tempo de simulação (simulation clock). Ou seja, a cada incremento no tempo de simulação,
todos os blocos do sistema são executados, atualizam seus estados internos para corresponder ao tempo
atual, independente da existência ou não de alguma tarefa a ser executada. Isto torna esta técnica
bastante ineficiente do ponto de vista computacional [3]. O tempo global de simulação é atualizado
através de um incremento constante.
2.2.2.3.2 - Simulação Orientada por Dados (Data-Driven Simulation)
Nesta técnica de simulação, um bloco só é executado se todos os dados necessários para a
execução das suas tarefas já estiverem disponíveis. Desta forma, se em cada bloco do sistema simulado
for conhecida de antemão a disponibilidade de tais dados, é possível a construção de uma seqüência de
chamada de blocos antes do inicio da simulação. Caso contrário, a disponibilidade de tais dados deve
ser verificada durante a simulação e os blocos deverão ser executados dinamicamente. A principal
vantagem desta técnica é que ela minimiza o número de execuções realizadas a cada bloco. Entretanto,
em certas situações, como por exemplo em sistemas com fluxo bidirecional de dados, pode acontecer
de não ser possível definir uma seqüência de execução de blocos. Isto inviabiliza a aplicação desta
técnica para a simulação de redes de comunicações, porque neste tipo de simulação quase sempre
existem realimentações. Entretanto, esta técnica tem sido bastante usada na simulação de sistemas
ponto-a-ponto e no nível de sinais, tal como em sistemas ópticos.
2.2.2.3.3 - Simulação Orientada por Eventos (Event-Driven Simulation)
Nesta técnica de simulação os blocos agendam execuções, que são armazenadas em uma fila
com prioridades na forma de eventos (Figura 2.1). Cada evento possui um tempo de execução. Um
gerenciador de eventos (presente no gerente de simulação) retira o evento de maior prioridade (menor
tempo de execução) que se encontra na fila e executa o bloco para o qual o evento se destina. Vários
eventos podem ser agendados para o mesmo tempo de execução. Neste caso, o kernel deve executar os
eventos na ordem em que eles foram agendados, ou seja, segundo a disciplina FIFO (First-in first-out).
Toda vez que um evento é retirado da fila, o tempo global de simulação é avançado para o
tempo de execução deste evento. Tipicamente, apenas alguns blocos são chamados a cada avanço no
15
tempo de simulação. Quando um bloco é acionado, procedimentos específicos são executados. Por
exemplo, um bloco que modela um equipamento terminal pode executar um procedimento que
representa a transmissão de uma célula ATM através de um enlace até o próximo equipamento da rede
ATM. Ao término do processamento dessas funções, o fluxo da simulação é retornado para o kernel,
que retira e interpreta outro evento da fila. A simulação prossegue até que não hajam mais eventos para
serem executados, ou até que o tempo final de simulação seja alcançado.
Na Figura 2.1, os blocos A,B e C agendam eventos na fila com prioridades. O kernel retira o
evento com maior prioridade da fila, interpreta este evento e realiza a chamada do bloco a que o evento
se destina. Supondo que todos os eventos que são mostrados na figura sejam executados, o bloco A
será chamado no instante 1 segundo duas vezes, o bloco B nos instantes 0, 1 e 2 segundos, e o bloco C
nos instantes 1 e 2 segundos. Quando um bloco é executado, ele pode agendar novos eventos na fila
para instantes de tempo superiores ou iguais ao tempo atual.
Bloco A
Bloco B
Bloco C
Evento (1) Evento (1) Evento (1) Evento (0) Gerenciador de Eventos Fila de Eventos Evento (2) Evento (1) Evento (2) Executa o Bloco B (0,1,2) Executa o Bloco A (1,1) Executa o Bloco C (1,2) 1 2 4 3
1 Agendamento de eventos pelos blocos.
2 Armazenamento dos eventos na fila com prioridades.
3 Retirada do evento de maior prioridade.
4 Interpretação e execução do evento retirado da fila.
Nota: Os valores entre parênteses indicam tempo de execução em segundos.
16
A troca de informações entre blocos pode ser facilmente implementada utilizando-se a
simulação orientada por eventos. Por exemplo, um bloco pode agendar um evento para outro bloco
contendo as informações a serem trocadas. Assim, quando o kernel interpretar este evento, ele poderá
executar o bloco de destino e entregar as informações que lhe pertencem. Neste caso, o kernel funciona
como um intermediador para a troca de mensagens entre blocos.
Segundo Shanmugan [3], para a simulação de redes de comunicações e sistemas lógicos, a
técnica event-driven é mais eficiente do ponto de vista computacional do que a técnica data-driven,
devido a sua natureza assíncrona.
2.2.2.4 - Biblioteca de Modelos