UNIVERSIDADE ESTADUAL PAULISTA “JÚLIO DE MESQUITA FILHO” FACULDADE DE ENGENHARIA CAMPUS DE ILHA SOLTEIRA ALCIDES ORTEGA ANÁLISE DE DESEMPENHO DE REDES DE COMUNICAÇÃO WIRELESS EM APLICAÇÕES DE SMART GRID Ilha Solteira 2015 PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA ALCIDES ORTEGA ANÁLISE DE DESEMPENHO DE REDES DE COMUNICAÇÃO WIRELESS EM APLICAÇÕES DE SMART GRID Tese apresentada à Faculdade de Engenharia - UNESP - Câmpus de Ilha Solteira, para obtenção do título de Doutor em Engenharia Elétrica. Área de Conhecimento: Automação. Orientador: Prof. Dr. Ailton Akira Shinoda Coorientador: Prof. Dr. Fabrizio Granelli Ilha Solteira 2015 Ortega ANÁLISE DE DESEMPENHO DE REDES DE COMUNICAÇÃO WIRELESS EM APLICAÇÕES DE SMART GRIDIlha Solteira2015 126 Sim Tese (doutorado)Engenharia ElétricaAutomação Não . . FICHA CATALOGRÁFICA Desenvolvido pelo Serviço Técnico de Biblioteca e Documentação Ortega, Alcides . Análise de desempenho de redes de comunicação wireless em aplicações de Smart Grid / Alcides Ortega. -- Ilha Solteira: [s.n.], 2015 126 f. : il. Tese (doutorado) - Universidade Estadual Paulista. Faculdade de Engenharia de Ilha Solteira. Área de conhecimento: Automação , 2015 Orientador: Ailton Akira Shinoda Co-orientador: Fabrizio Granelli Inclui bibliografia 1. DNP3. 2. Protocolo. 3. NS-2. 4. Smart Grid. 5. TCP/IP. O771a Dedico aos meus queridos pais, Felix Ortega e Liberata Arce, a minha esposa Aleciana Vasconcelos Ortega e ao meu filho Daniel Vasconcelos Ortega que tiveram paciência e me possibilitaram mais essa conquista. AGRADECIMENTOS A Deus e a Nossa Senhora Aparecida por toda força espiritual necessária para viver e ultrapassar os obstáculos existentes neste tipo de conquista. À Família sempre presente nos momentos mais difíceis e a paciência por aguentar toda minha ausência neste período. Ao Professor Dr. Ailton Akira Shinoda, pela compreensão e por ter se mostrado um exemplo de orientador, na elaboração deste trabalho. Agradeço por sua dedicação, seus ensinamentos e por toda sua paciência no desenvolvimento da pesquisa e experimentos. Ao Professor Dr. Fabrizio Granelli, meu orientador no estágio do doutorado sanduíche na Università degli Studi di Trento no departamento DISI-Dipartimento di Ingegneria e scienza dell'informazione, Trento-Italia, pela opotunidade e orientação durante o curso de meus estudos. Ao Professor Dr. Tokio, em nome de todos os docentes, discentes e técnico- administrativos do programa de pós-graduação em Engenharia Elétrica, pela ajuda, companheirismo e excelente prestação de serviços oferecida. Com certeza, o meu período vivenciado neste ambiente de pesquisa trouxe-me muitas alegrias. Agradecimentos à Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES) pelo suporte com a bolsa sanduíche no exterior e à Universidade Estadual de Mato Grosso do Sul (UEMS) pelo suporte, na forma de concessão de afastamento para qualificação, no desenvolvimento deste trabalho de tese. À banca examinadora que analisará o conteúdo deste trabalho contribuindo com sugestões. “Embora ninguém possa voltar atrás e fazer um novo começo, qualquer um pode começar agora e fazer um novo fim” (Chico Xavier) RESUMO Nos últimos anos têm-se percebido que o atual sistema de geração, transmissão e distribuição de energia elétrica tradicional tornou-se insuficiente e ultrapassado para suprir toda a demanda. Com isso houve um forte crescimento nas pesquisas sobre um conceito com novas tecnologias para modernizar ou construir a rede de energia elétrica em seus aspectos de infraestrutura, disponibilidade, sustentabilidade e confiabilidade. Este novo conceito trata-se do smart grid que propõe uma tecnologia baseada na automação, comunicação, monitoração e controle da rede elétrica, a qual permite implantação de estratégias de controle e otimização da rede de forma eficiente perante as atualmente utilizadas. As tecnologias aplicadas no smart grid englobam muitos sistemas. Entre esses sistemas estão topologia de comunicação, circuitos e interfaces eletrônicas, na qual dificulta a construção de um cenário real para realizar estudos e pesquisas de qual sistema de comunicação é o mais adequado para as aplicações no smart grid. Os equipamentos são muito onerosos e dependendo da extensão e quantidade de dispositivos que serão implantados, tornam impossíveis as realizações em cenário de campo. Para sanar esses problemas são utilizados os softwares de simulação que são ferramentas convenientes nesses casos e comumente empregadas na área de pesquisa, para realizar a análise e o desempenho de um sistema. Uma rede de comunicação envolvendo aplicações críticas, como é o caso da transmissão e distribuição de energia elétrica, deve ser altamente confiável, extremamente segura e resiliente a falhas. Para realizar análises de desempenho de uma rede de comunicação wireless a ser utilizado em aplicações smart grid com resultados desejáveis, é preciso realizar simulações para poder prever qualquer eventualidade de possíveis falhas. De todos os simuladores existentes o mais indicado foi o NS-2, um simulador à evento discreto de redes com código aberto que facilita a criação de cenários de redes de comunicação, levando em consideração os protocolos envolvidos sejam em tecnologias de redes cabeadas ou sem fio. Este software oferece suporte à simulação de um grande número de tecnologias de rede e faz um detalhamento de suas características e funcionalidades por meio da implementação de modelos de sistemas de redes, nos quais apresenta resultados das simulações. A contribuição dessa tese foi a implementação de um patch para o NS-2 possibilitando a realização de simulações do protocolo de comunicação DNP3 sobre redes cabeadas e wireless em aplicações smart grid sob sistemas operacionais livres com um custo zero comparado com laboratórios com equipamentos reais. Palavras-chave: DNP3. Protocolo. NS-2. Smart Grid. TCP/IP. ABSTRACT In recent years have realized that the current system of generation, transmission and distribution of electric power has become traditional and outdated to meet the entire demand. With that there was a strong growth in research on a concept with new technologies to modernize or build the electric power grid in its aspects of infrastructure, availability, sustainability and reliability. This new concept that is the smart grid that proposes a technology based on automation, communication, monitoring and control of the power grid, which allows implementation of control strategies and grid optimization efficiently before the currently used. The technology applied in smart grid includes many systems. Among these are communication topology systems, circuits and electronic interfaces, which makes it difficult to build a real scenario to carry out studies and researches of which system is best suited for applications in the smart grid. The equipment is very expensive and depending on the extent and amount of devices that will be deployed, make impossible the achievements in the field setting. To remedy these problems are used simulation software that are convenient tools in these cases and commonly employed in the area of research, to conduct the analysis and performance of a system. A communication network involving critical applications, such as electric power transmission and distribution must be highly reliable, extremely safe and resilient. To perform analyses of performance of a wireless communication network to be used in smart grid applications with desirable results, you need to perform simulations in order to anticipate any eventuality of possible failures. Of all existing simulators as indicated was the NS-2, a discrete event simulator for open source networks that facilitates the creation of communication networks scenarios, taking into account the protocols involved in wired or wireless technologies. This software supports the simulation of a large number of network technologies and detailing its features and functionality through the implementation of models of network systems, in which presents results of the simulations. The contribution of this thesis was to implement a patch for NS-2 enabling the realization of simulations of DNP3 communication protocol on wired networks and wireless in smart grid applications under free operating systems with a zero cost compared with real equipment laboratories. Keywords: DNP3. Protocol. NS-2. Smart grid. TCP/IP. LISTA DE FIGURAS Figura 1 - Como funciona a smart grid. ................................................................................... 25   Figura 2 – Arquitetura de um sistema smart grid. ................................................................... 26   Figura 3 – Diagrama de blocos – sistema SCADA. ................................................................. 28   Figura 4 – Arquitetura do sistema SCADA. ............................................................................. 30   Figura 5 – Níveis de camadas e o tipo ponto de entrada/ saída. ............................................... 32   Figura 6 – Construção de uma mensagem DNP3. .................................................................... 33   Figura 7 – Esquema de segmentação de mensagem na camada de aplicação. ......................... 33   Figura 8 - Sequência polled com confirmação de dados na camada de enlace. ....................... 35   Figura 9 - Sequência de resposta da mensagem não solicitada. ............................................... 35   Figura 10 – Componentes do fragmento da camada de aplicação. .......................................... 36   Figura 11 – Componentes do cabeçalho do fragmento da mensagem solicitada. .................... 36   Figura 12 – Componentes do cabeçalho da mensagem de resposta. ........................................ 36   Figura 13 – Componentes de um quadro na camada pseudotransporte. .................................. 37   Figura 14 – Componentes do cabeçalho de um quadro na camada pseudotransporte. ............ 37   Figura 15 – Componentes de um quadro na camada de enlace. ............................................... 38   Figura 16 – Componentes do cabeçalho de um quadro na camada de enlace. ......................... 38   Figura 17 – Resumo de pacotes nas camadas do protocolo DNP3. ......................................... 40   Figura 18 - Topologia ponto a ponto. ...................................................................................... 40   Figura 19 - Topologia multiponto. ........................................................................................... 41   Figura 20 - Topologia hierárquica. ........................................................................................... 41   Figura 21 - Topologia concentrador tipo I. .............................................................................. 41   Figura 22 - Topologia concentrador tipo II. ............................................................................. 41   Figura 23 - Diagrama de estação Mestre e Escravo. ................................................................ 42   Figura 24 – Topologia típica de uma rede onde se usa o DNP3 sobre TCP/IP. ....................... 44   Figura 25 – Encapsulamento do DNP3 sobre TCP/IP. ........................................................... 45   Figura 26 – DNP3 sobre TCP/IP. ............................................................................................. 47   Figura 27 - C++ e OTcl: a dualidade. ....................................................................................... 50   Figura 28 – Estrutura do NS-2. ................................................................................................ 51   Figura 29 - Arquitetura geral do NS-2. .................................................................................... 51   Figura 30 – Organizador de eventos. ........................................................................................ 52   Figura 31 – Componente de rede enlace. ................................................................................. 53   Figura 32 – Exemplo de fluxo de pacotes entre nós. ................................................................ 54   Figura 33 – Formato padrão do arquivo de saída do trace. ...................................................... 55   Figura 34 – Diagrama de estado da estação remota. ................................................................ 57   Figura 35 – Diagrama de estado da estação central. ................................................................ 58   Figura 36 – Diagrama de classe do sistema. ............................................................................ 60   Figura 37 – Definição de uma estação Master e estação Remota no ambiente NS-2. ............. 65   Figura 38 - Cenário de simulação da arquitetura multiponto. .................................................. 66   Figura 39 – Pacote TCP/IP simplificado. ................................................................................. 66   Figura 40 - Transmissão de uma mensagem não solicitada ..................................................... 69   Figura 41 - Transmissão de uma mensagem não solicitada e uma função de leitura. .............. 71   Figura 42 - Transmissão de uma mensagem não solicitada e uma função de leitura sem timeout. ................................................................................................................................ 72   Figura 43 - Cenário de mensagem não solicitada e função diferente de leitura. ...................... 74   Figura 44 - Cenário de reinicio por parte da estação remota. ................................................... 76   Figura 45 - Interligação do imóvel ao sistema smart grid. ...................................................... 78   Figura 46 - Topologia do cenário de simulação da rede cabeada com dados heterogêneos. ... 79   Figura 47 - Perdas de pacotes com aumento do tráfego no link. .............................................. 80   Figura 48 - Estação Outstation1 enviando pacotes para a estação Master. ............................. 82   Figura 49 – Vazão de pacotes. .................................................................................................. 83   Figura 50 – Histograma do resultado da simulação de atraso. ................................................. 83   Figura 51 – Histograma do resultado da simulação de jitter .................................................... 84   Figura 52 - Blocos de construção do sistema AMI. ................................................................. 85   Figura 53 - Unidade consumidora com medidores inteligentes. .............................................. 86   Figura 54 - Topologia da rede e conexões. .............................................................................. 87   Figura 55 - Estatística média de vazão dos pacotes transmitidos do nó wired W(0) até os nós wireless. .................................................................................................................. 89   Figura 56 - Estatísticas média de vazão de pacotes da primeira simulação do cenário 3. ....... 90   Figura 57 - Resultado do tempo de atraso da primeira simulação do cenário 3. ...................... 91   Figura 58 - Resultado do jitter da primeira simulação do cenário 3. ....................................... 91   Figura 59 - Resultado do tempo de atraso da segunda simulação do cenário 3. ...................... 92   Figura 60 - Resultado do jitter da segunda simulação do cenário 3. ........................................ 93   Figura 61 - Estatísticas média de vazão da terceira simulação do cenário 3. ........................... 94   Figura 62 - Resultado do atraso da terceira simulação do cenário 3. ....................................... 94   Figura 63 - Resultado do Jitter da terceira simulação do cenário 3. ........................................ 95   Figura 64 - Cenário de uma quadra de um bairro com smart meters. ...................................... 96   Figura 65 - A área da simulação e a posição de cada nó. ......................................................... 97   Figura 66 - Estações Outstation enviando pacotes para a estação Submaster. ........................ 98   Figura 67 - Estatísticas média de vazão da dez Outstation’s do cenário 4. ............................. 99   Figura 68 – Atraso das Outstation’s com até um salto. .......................................................... 100   Figura 69 – Atraso dos Outstation’s com até dois saltos. ...................................................... 101   Figura 70 – Atraso das Outstation’s com até três saltos. ....................................................... 101   Figura 71 - Jitter das Outstation com até um salto. ............................................................... 102   Figura 72 - Jitter das Outstation com até dois saltos. ............................................................ 103   Figura 73 - Jitter dos Outstation com até três saltos. ............................................................. 103   Figura 74 – A área da simulação e a localização de cada nó. ................................................ 105   Figura 75 – Estações remotas enviando pacotes para a estação Master. ............................... 105   Figura 76 – Estações remotas enviando dados através de saltos para estação Master. .......... 106   Figura 77 – Estatística média de vazão dos Outstations. ....................................................... 107   Figura 78– Atraso das Outstation com salto simples. ............................................................ 108   Figura 79 – Atraso das Outstation com até dois saltos. ......................................................... 108   Figura 80 – Jitter das Outstation com até um salto. ............................................................... 109   Figura 81 – Jitter das Outstation com até dois saltos. ............................................................ 110   Figura 82 – Área da simulação e a posição de cada Outstation. ............................................ 111   Figura 83 – Estações Outstations enviando pacotes para a estação Master. .......................... 112   Figura 84 – Tempo de delay dos Outstation com salto simples. ............................................ 113   Figura 85 – Tempo de delay dos Outstation com até dois saltos. .......................................... 114   Figura 86 – Tempo de delay dos Outstation com até três saltos. ........................................... 114   Figura 87 – Tempo de delay dos Outstation com até quatro saltos. ...................................... 115   Figura 88 – Jitter dos Outstations. ......................................................................................... 115   LISTA DE TABELAS Tabela 1. Mensagem não Solicitada: Resultados .................................................................... 70   Tabela 2. Mensagem não Solicitada e função de leitura .......................................................... 72   Tabela 3. Resultado do arquivo trace do ns-2 .......................................................................... 73   Tabela 4. Mensagem não solicitada e função diferente de leitura ........................................... 75   Tabela 5. Restart por parte da estação remota. ......................................................................... 76   Tabela 6. Requisitos de delay para transmissão de mensagem. .............................................. 77   Tabela 7. Parâmetros assumidos da rede do cenário 1. ........................................................... 79   Tabela 8. Parâmetros da Rede modelada do cenário 2. ........................................................... 82   Tabela 9. Parâmetros da rede modelada do cenário 3. ............................................................ 86   Tabela 10. Parâmetros da rede ad-hoc modelada do cenário 4. ............................................... 97   Tabela 11. Inicio da transmissão dos pacotes DNP3 do cenário 4. .......................................... 98   Tabela 12. Parâmetros da rede modelada do cenário 5. ......................................................... 104   Tabela 13. Parâmetros da rede modelada do cenário 6. ......................................................... 111   LISTA DE SIGLAS ACK Acknowledgment - Reconhecimento ARP Address Resolution Protocol - Protocolo de Resolução de Endereços AODV Ad-hoc On-Demand Distance Vector APDU Application Protocol Data Unit APCI Application Protocol Control Information ASDU Application Service Data Unit CBR Constant Bit Rate - Taxa de Bit Constante CONSER Collaborative Simulation for Education and Research CRC Cyclic Redundancy Check - Checa Erros de Transmissão CSMA/CA Carrier Sense Multiple Access with Collision Avoidance - Sensor de Portadora de Múltiplo Acesso com Prevenção de Colisão CTS Clear to Send - Liberado para Envio DARPA Defense Advanced Research Projects Agency DCF Distribuited Coordination Function - Função de Coordenação Distribuída DNP3 Distributed Network Protocol 3.0 – Protocolo de Rede Distribuída DSDV Destination-Sequenced Distance-Vector Routing DSSS Direct Sequence Spread Spectrum - Espalhamento Espectral de Sequência Direta EPA Enhanced Performance Architecture FTP File Transfer Protocol - Protocolo de Transferência de Arquivos HMI Human Machine Interface - Interface Homem-Máquina HTTP Hypertext Transfer Protocol - Protocolo de Transferência de Hipertexto ICCP Inter Control Center Protocol - protocolo de comunicação entre centros de controle ICSI International Computer Science Institute IEEE Institute of Electrical and Eletronics Engineers - Instituto de Engenharia Elétrica e Eletrônica IP Internet Protocol - Protocolo de Internet LBNL Lawrence Berkeley National Laboratory MAC Media Access Control - Controle de Acesso ao Meio Mbps Megabits per second - Megabits por segundo NS Network Simulator - Simulador de Redes NSF National Science Foundation OSI Open System Interconnection - Interconexão de Sistemas Abertos OTcl Object-oriented Tool Command Language - Linguagem de Comandos Orientado a Objeto PHY Physical Layer - Camada Física QoS Quality of Service - Qualidade de Serviço RTS Request to Send - Requisição de Envio SAMAN Simulation Augmented by Measurement and Analysis for Networks SCADA Supervisory Control and Data Acquisition - Controle de Supervisão e Aquisição de Dados TCP Transmission Control Protocol - Protocolo de Controle de Transmissão IEC International Electrotechnical Commission TSDU Transport Service Data Unit TTL Time To Live - Tempo de Vida UCB University of California Berkeley UDP User Datagram Protocol - Protocolo de Transmissão de Dados USC/ISI University of Southern California/Information Sciences Institute SUMÁRIO 1   INTRODUÇÃO ................................................................................................................ 16   1.1   Trabalhos Relacionados .................................................................................................... 20   1.2   Objetivos do Trabalho ....................................................................................................... 22   1.3   Organização do Trabalho .................................................................................................. 23   2   SMART GRID .................................................................................................................. 24   2.1   Conceitos Básicos do Sistema SCADA ............................................................................ 27   2.1.1   Elementos de um Sistema SCADA ................................................................................. 28   2.1.2   Interface Operador-Máquina (IOM) ............................................................................. 29   2.1.3   Unidade Central (MTU) ................................................................................................ 29   2.1.4   Unidade Terminal Remota (RTU) .................................................................................. 29   2.1.5   Transdutores .................................................................................................................. 29   3   PROTOCOLO DNP3 ....................................................................................................... 31   3.1   Construção de uma mensagem DNP3 ............................................................................... 32   3.2   Camada de Aplicação ........................................................................................................ 34   3.3   Camada Pseudotransporte ................................................................................................. 37   3.4   Camada Enlace de Dados .................................................................................................. 38   3.5   Camada Física ................................................................................................................... 39   3.6   Topologia do Protocolo ..................................................................................................... 40   3.7   Camadas do Protocolo DNP3 ............................................................................................ 42   3.8   DNP3 sob TCP/IP ............................................................................................................. 43   3.9   Encapsulamento do Protocolo DNP3 sob TCP/IP ............................................................ 44   3.10  Camada de Gerenciamento de Conexão ............................................................................ 46   4   O SIMULADOR DE REDES NS-2 ................................................................................. 48   4.1   Histórico do NS ................................................................................................................. 49   4.2   A Linguagem do NS .......................................................................................................... 50   4.3   Objeto Organizador de Eventos ........................................................................................ 52   4.4   Objeto Componente de Rede ............................................................................................. 52   4.5   O Arquivo trace da Simulação .......................................................................................... 54   5   PROTOCOLO DNP3 no NS-2 ........................................................................................ 56   5.1   Implementação do patch para NS-2 na versão 2.35 para rede wireless ............................ 56   5.2   Diagramas de Estados ....................................................................................................... 57   5.3   Diagrama de Classes ......................................................................................................... 59   6   Simulações e resultados ................................................................................................... 63   6.1   Transmissão de funções Básicas do Protocolo DNP3 Sobre TCP/IP ............................... 68   6.1.1   Transmissão de Mensagem Não Solicitada ................................................................... 68   6.1.2   Transmissão de Mensagem Não Solicitada e uma Função de Leitura .......................... 70   6.1.3   Transmissão de Mensagem não Solicitada e Função Diferente de Leitura .................. 74   6.1.4   Transmissão de Mensagem de Reinício da Estação Remota ......................................... 75   6.2   Cenários Simulados e Analisados ..................................................................................... 77   6.2.1   Simulação do cenário 1 com topologia ponto-a-ponto em uma rede cabeada com tráfego heterogêneo .................................................................................................................. 78   6.2.2   Simulação do cenário 2 com topologia multi-ponto em uma rede WLAN IEEE 802.11b ad- hoc em infraestruturas críticas ..................................................................................... 81   6.2.3   Simulação do cenário 3 com topologia multi-ponto em uma rede mista IEEE 802.3 e IEEE 802.11b em aplicações smart meter ............................................................................. 84   6.2.4   Simulação do cenário 4 com topologia multi-ponto em uma rede IEEE 802.11b ad-hoc em aplicações smart meter ................................................................................................. 95   6.2.5   Simulação do cenário 5 com topologia multi-ponto em uma rede IEEE 802.11b ad-hoc em aplicações smart grid ................................................................................................. 104   6.2.6   Simulação do cenário 6 com topologia multi-ponto em uma rede IEEE 802.11g ad-hoc em aplicações smart grid ................................................................................................. 110   6.2.7   Conclusões dos resultados obtidos das simulações dos cenários ............................... 116   7   Conclusões ....................................................................................................................... 119   Apêndice A – Artigos Publicados Relacionados ao Presente Trabalho .......................... 125   16 1 INTRODUÇÃO O sistema convencional de rede elétrica possui um fluxo de energia unidirecional partindo das usinas geradoras para os consumidores. O transporte de energia elétrica é composta de dois sistemas primários: transmissão e distribuição. A energia elétrica é produzida em grandes e/ou pequenas plantas de geração, transmitida até as subestações de distribuição localizadas em regiões próximas dos consumidores, quando comparadas as subestações de transmissão. As subestações de distribuição fornecem energia elétrica para os consumidores (HASSAN; RADMAN, 2010). Nos últimos anos, com o aumento crescente da demanda por energia elétrica, as operações dos sistemas elétricos de potência tornaram-se muito complexas com o número crescente de interligações (CORMANE, 2013). Um dos principais desafios enfrentados pelo setor produtivo elétrico é a crescente necessidade de geração de energia elétrica, para atender toda a demanda com um nível de confiabilidade, qualidade e eficiência. A crescente demanda por energia elétrica é o reflexo do aumento do núcleo populacional principalmente pelo desenvolvimento industrial, obrigando as empresas distribuidoras do setor elétrico a combater às perdas não técnicas de energia elétrica. As perdas de energia das concessionárias de distribuição do setor elétrico são a diferença entre a energia requerida para suprir as necessidades dos consumidores e a energia efetivamente faturada. Normalmente, essas perdas são classificadas em duas categorias, perdas técnicas e perdas não técnicas. Perdas técnicas são as perdas inevitáveis relacionadas ao processo de transmissão e distribuição de energia, onde parte da energia é dissipada por efeito Joule em cabos e condutores, transformadores de tensão, conservação dos medidores de energia eletromecânicos e vários outros equipamentos que compõem o sistema de energia elétrica. As perdas não técnicas são consideradas como perdas comerciais em decorrência do uso irregular da energia ocasionado por adulteração e violação dos equipamentos de medição, ligações clandestinas, erros de leitura, fraude no consumo de eletricidade e inadimplências (MEDEIROS, 2013). De acordo com Medeiros (2013) os prejuízos gerados com as perdas comerciais no Brasil chegam a quase R$ 7 bilhões por ano, correspondendo a 13% da energia consumida. 17 Com o objetivo de reduzir as perdas comerciais e as perdas técnicas, o sistema elétrico vem passando por grandes transformações com a aplicação de novas tecnologias em eletrônica de potência e da tecnologia de informação e comunicação (TIC). Entre as partes principais dos domínios que tradicionalmente compõem o conjunto da rede elétrica como o sistema de geração, transmissão, distribuição e consumidor, o sistema de distribuição é o que está sofrendo uma maior mudança com a implantação das redes inteligentes. A geração distribuída gera uma grande alteração no sistema unidirecional do fluxo de energia, redistribuição de sistemas, dispositivos de proteção, novos equipamentos de controle e monitoramento, dispositivos de rede de comunicação, regulamentos dos diferentes agentes reguladores do sistema elétrico e seleção de tecnologias de comunicação mais adequada para os tipos de aplicação em smart grid. Toda essa mudança exige novos sistemas de comunicação e o uso das diversas tecnologias disponíveis para executar com maior eficiência as funções de controle e monitoramento dos elementos que compõem a rede de distribuição de uma forma confiável e segura. A rede de telecomunicação é vital para assegurar o bom funcionamento do sistema em geral, integrando o sistema de geração, centro de controle ao nível de transmissão, automação do sistema de subestação, automação e controle do sistema de distribuição e a Advanced Metering Infrastructure (AMI). O centro de controle com o passar do tempo vem migrando de um modo centralizado para distribuído, caracterizado por utilizar um sistema de monitoramento de Supervisory Control and Data Acquisition (SCADA) sobre o Internet Protocol (IP), integração com os Energy Management System (EMS) e o Building Management System (BMS) em um modelo de gerenciamento de dados em comum (IEEE STD 1815-2010, 2010). Uma das principais funções do centro de controle é concentrar-se sobre o funcionamento do sistema através do sistema SCADA, compostos por hardware e software que coletam as informações dos sensores sobre a operação atual do sistema e armazenamento para serem analisados posteriormente por outros aplicativos. Pode-se definir o sistema SCADA como o funcionamento de um sistema codificado através de um canal de comunicação para prover sinais de controle sobre equipamentos remotos. O sistema de supervisão pode ser combinado com o sistema de aquisição de dados adicionando o uso de sinais codificados sobre canais de comunicação para adquirir as 18 informações sobre os estados dos equipamentos remotos, para visualizar e armazenar os sinais de funções (IEEE, 1987). A aplicação do sistema SCADA no setor elétrico consiste de Remote Terminal Units (RTUs) e Intelligent Electronic Devices (IEDs) encontrados em dispositivos de rede, tais como banco de capacitores, transformadores, religadores e interruptores em subestações. A estação central está localizada no centro de controle e atua como um agente para monitorar e controlar o funcionamento das operações da rede elétrica. A função principal de uma subestação de distribuição é a redução de tensão a níveis dos consumidores e fornecer isolamento de potenciais falhas do sistema. A automação do sistema de distribuição ofereceu novos recursos, tais como a emissão de alarmes, a automação dos interruptores de alimentadores, melhoria na detecção de falhas, isolamento e restauração de falhas que por sua vez reduz a duração e frequência da interrupção de energia elétrica. Através da auto recuperação da rede de energia elétrica (self-healing), isolar a interrupção de energia em setores menores afetando um mínimo de usuários e restaurando o sistema através de circuitos alternativos na rede de energia elétrica, todas essas operações são realizadas de forma autônomas e monitorada através do centro de controle (AGUERO, 2012). Os protocolos de comunicação existentes atualmente que atendem os requisitos de comunicação no sistema SCADA, são o Distributed Network Protocol version 3 (DNP3), International Electrotechnical Commission (IEC-60870-5) e um novo protocolo ainda em desenvolvimento IEC-61850. Os protocolos DNP3 e IEC-60870-5 são padrão e amplamente utilizado para a comunicação entre dispositivos e são recomendados para comunicação entre os dispositivos de automação pelas organizações como a Institute of Electrical and Electronics Engineers (IEEE) e Electric Power Research Institute (EPRI) (IEEE STD 1379- 2000, 2001)-(IEEE STD C37.1-2007 (Revision of IEEE STD C37.1-19, 2008). A norma do protocolo de comunicação DNP3 foi desenvolvida para otimizar a transmissão de dados e de comandos entre dois dispositivos RTUs ou IEDs ou entre o centro de controle do sistema SCADA com as estações remotas. É um protocolo padrão aberto mantido pelo comitê DNP3 User Group responsável pela melhoria e atualização das documentações ou recomendações. Os objetivos principais do DNP3 são: • Garantir a alta integridade dos dados: ao estar em um ambiente sujeito as interferências eletromagnéticas, o protocolo prevê retransmissões de dados em nível de aplicação e enlace. 19 • Flexibilidade: em nível de aplicação pode-se obter três classes de objetos com funcionalidades diferentes. • Funções múltiplas: oferece funções de operação como mensagens por eventos, mensagens solicitadas e mensagens não solicitadas, aumentando a eficiência da rede de comunicação. A aplicação dentro do sistema SCADA representa um dos sistemas com maior sensibilidade à latência e a confiabilidade de dados. O estudo destes parâmetros permite o desenvolvimento de novos sistemas que atendam aos requisitos, com a adição de novas funcionalidades na rede de distribuição. A implementação desses protocolos se aplica tanto no interior de uma subestação quanto ao centro de controle onde são empregados diferentes tipos de tecnologias de comunicação. Em uma subestação, geralmente há um controle distribuído em um canal de comunicação RS485, RS232, rede local (LAN) ou fibra ótica. Na comunicação entre dispositivos em nível de automatização do sistema de distribuição são empregados principalmente uma rede celular General Packet Radio Services (GPRS) ou High Speed Packet Access (HSPA), seguida pela banda livre não licenciada com frequência de 900 MHz, Wireless Local Area Network (WLAN), banda licenciada, redes de longa distância, Wide Area Network (WAN) ou uma opção potencial do uso de tecnologias de comunicação via satélite. Embora as tecnologias de comunicação via satélite não atendam os parâmetros de qualidade, a sua aplicação é necessária devido à sua cobertura universal em locais remotos, onde a implantação de um outro tipo de tecnologia é impraticável. O smart grid é a aplicação de tecnologia da informação no sistema elétrico, modernizando o sistema de distribuição de energia, através da integração e infraestrutura de rede automatizada no sistema de comunicação. Envolve a instalação de sensores nas linhas de transmissão da rede de energia elétrica, com um sistema de comunicação segura e confiável em duas vias estabelecidas. A rede inteligente monitorada torna-se uma rede mais eficiente, protegendo os seus elementos interligados desde o gerador central com uma rede de alta tensão até o sistema de distribuição ao usuário final (SINHA et al., 2011). A parte de monitoração e controle da rede inteligente é realizada através do protocolo de comunicação denominado DNP3, uma arquitetura em camadas. Seguindo o modelo Open System Interconnection (OSI), compreendido por 7 camadas, o DNP3 adere a um protocolo simplificado de três camadas, proposto pela IEC para implementações mais simples, chamado de Enhanced Performance Architecture (EPA). Criado para utilização em aplicações de grande porte, comunicação segura, com moderada velocidade e baixa/média transmissão de 20 dados. A vantagem deste protocolo é a sua flexibilidade, permitindo o seu emprego em qualquer plataforma de hardware, além da grande variedade de comando para ser utilizado dependendo da aplicação escolhida (IEEE P1815/D11, April 2012 - Approved Draft, 2012). Idealmente, uma rede de comunicação em aplicações smart grid deve ser altamente confiável, extremamente segura e tolerante à falhas. Uma ferramenta que pode auxiliar na análise de desempenho da rede a ser implantada, ainda nas fases iniciais do projeto, é um simulador de rede à evento discreto como o Network Simulator (NS-2) incorporando o DNP3 através do encapsulamento. Isso permite o estudo de vários cenários e resultados que só poderiam ser obtidos em testes de laboratório (em pequena escala) ou testes de campo. A vantagem da simulação dos estudos de casos é a economia de tempo, custo financeiro e equipamentos. Optou-se pelo NS-2 porque é amplamente empregado na área acadêmica por suas características, como código aberto e a possibilidade de adição de novas funções na sua biblioteca. 1.1 Trabalhos Relacionados Esta seção apresenta uma base necessária para entender os conceitos que se relacionam com os protocolos de comunicação do sistema de energia elétrica, a recente evolução do uso da tecnologia de informação e comunicação no sistema de energia elétrica. A energia elétrica é uns dos meios mais importantes para o desenvolvimento da sociedade humana. Uma falha no sistema de transmissão de energia elétrica, com interrupções de energia elétrica, pode causar enormes prejuízos às indústrias e fábricas (HEYDT; VITTAL; PHADKE, 2000). O sistema de energia elétrica é considerado uma infraestrutura crítica. O sistema elétrico pode ficar vulnerável em face de possíveis anormalidades do sistema causado por falhas de controle, sistema de comunicação ou proteção, falhas de operação humana. Portanto, manter o fornecimento de energia estável e confiável, com qualidade, é uma função muito importante do projeto do sistema elétrico. A tecnologia de informação e comunicação desempenha um papel crucial no sistema de eletrônica de potência (ADAMIAK; PREMERLANI, 1999). Nas aplicações do sistema SCADA, medições remotas, monitoramento, controle e proteção são fundamentais para o bom funcionamento do sistema elétrico e manter um sistema confiável e com estabilidade (HEYDT et al., 2001). 21 Inicialmente, a maioria das TIC empregadas no sistema elétrico tradicional era aplicada localmente tendo em foco as ações de controle no nível de subestação, pela falta de infraestrutura de comunicação confiável e eficiente com alta velocidade e largura de banda (ADAMIAK; REDFERN, 1998). Atualmente com o avanço da tecnologia no setor de redes de computadores e também na área do setor de eletrônica de potência, surgem várias investigações sobre a integração da TIC no sistema de energia elétrica, com a finalidade de tornar as redes elétricas tradicionais numa rede inteligente, eficiente, segura, tolerante a falhas com auto recuperação, é reduzir as perdas técnicas bem como eliminar as perdas comerciais. De acordo com (LU et al., 2011) a smart grid é a próxima geração do sistema de energia elétrica que incorpora a infraestrutura com a tecnologia de informação. Nas aplicações em smart grids, dispositivos elétricos são interligados para suportar uma grande variedade de mecanismos inteligentes, tais como a proteção de relé e reposta à demanda. Para habilitar esses mecanismos, as informações devem ser entregues em tempo hábil através do protocolo de redes. Para abordar as questões de latência nas redes de comunicação (LU et al., 2011) estabeleceu uma micro smart grid, para mensurar o desempenho de latência de um protocolo predominante do sistema SCADA, o DNP3 sob TCP/IP (Transmission Control Protocol/Internet Protocol). Os resultados de (LU et al., 2011) mostram que, apesar do DNP3 sob TCP/IP ser amplamente considerado como um protocolo de comunicação de smart grid, não pode ser utilizado em aplicações que exigem um atraso menor que 16 ms em micro rede, tais como a proteção de relés. Os mecanismos de confiabilidade do DNP3 são semelhantes ao TCP e constatou-se que o desempenho de latência com a sobreposição induz a um aumento de latência de 50% a 80%. Mas os resultados indicam que o atraso no DNP3 sob TCP/IP pode ser otimizado, pois é um protocolo de comunicação leve e essencial para tempos críticos em aplicações de smart grid. O sistema de redes inteligentes apresenta interconexões onipresentes de equipamentos elétricos para permitir os fluxos bidirecionais de eletricidade e de informação para diversas aplicações de gerenciamento de energia inteligente, tais como a proteção precisa dos relés e resposta a demanda em tempo hábil. Para cumprir essas interconexões de equipamentos, uma infraestrutura de comunicação é vital para a smart grid. De acordo com (LU; WANG; MA, 2013) há extensas pesquisas sobre diferentes layouts de infraestrutura de comunicação no smart grid por levantamentos de tecnologias de transmissão de dados viáveis, seja cabeada ou sem fio, tais como o PLC (Power Line 22 Communication) e redes celulares. No entanto, no sentido de uma solução de uma comunicação operável, compatível com o custo e eficiência, ainda há necessidade de mais exemplos práticos e uma maior compreensão em relação aos requisitos de comunicação, protocolos aplicáveis e desempenhos do sistema. Em seu trabalho, Lu, Wang e Ma (2013), realizaram um estudo de caso de um projeto de demonstração de smart grid, o gerenciamento de entrega de energia elétrica renovável futura (FREEDM). Foram investigados cenários de comunicação, esclarecendo os requisitos de comunicação explícitas em caso de uso do FREEDM, adotando o protocolo de comunicação predominante DNP3 sob TCP/IP, para estabelecer conexões entre dispositivos elétricos para a troca de informações em um ambiente de pequena escala, dentro de um cenário real, para mensurar o desempenho de entrega de mensagens da infraestrutura baseado no DNP3. 1.2 Objetivos do Trabalho Uma rede de comunicação envolvendo aplicações críticas, como é o caso da transmissão e distribuição de energia elétrica, deve ser altamente confiável, extremamente confiável e resiliente a falhas. Para realizar análises de desempenho de uma rede de comunicação a ser implantada com os resultados desejáveis, é preciso realizar vários testes e estudos em laboratórios com cenários similares onde serão instalados o qual dificulta a construção de um cenário real para realizar tais pesquisas. Além dos equipamentos serem muito onerosos e dependendo da extensão e quantidade de dispositivos que serão implantados, tornam impossíveis as realizações em cenário real para poder prever qualquer eventualidade de possíveis falhas. A melhor opção para resolver os problemas de custos e de extensão é utilizar os softwares de simulação que são ferramentas convenientes nesses casos e comumente empregadas na área de pesquisa, para realizar a análise e o desempenho de um sistema. O objetivo principal deste trabalho é implementar o protocolo de comunicação DNP3 no simulador de rede NS-2 para realizar simulações sob redes sem fio e cabeadas, também em redes mistas, baseado no aplicativo já existente o NS-2 do TCP com as características de transmitir dados das aplicações HTTP. O NS-2 é o simulador de redes mais utilizado no meio acadêmico e nas grandes empresas de telecomunicações, permite criar todo tipo de topologia de rede e analisar qualquer protocolo, para essa pesquisa são propostos os seguintes objetivos específicos: 23 ! Estudar os conceitos do sistema de smart grid; ! Realizar análises de desempenho de rede de comunicação sem fio envolvendo aplicações smart grid¸ através de resultados obtidos de simulações de cenários; ! Realizar simulações em redes mistas com tráfego de dados heterogêneos. 1.3 Organização do Trabalho Este trabalho está organizado da seguinte maneira: " Capítulo 2 – smart grid – detalha o sistema e a arquitetura, bem como as tecnologias que compõem cada uma de suas partes; " Capítulo 3 – Protocolo DNP3 – descreve o funcionamento do protocolo, as divisões dos níveis de camada de comunicação, topologias utilizadas e o encapsulamento sobre uma rede TCP/IP; " Capítulo 4 – Simulador de Redes NS-2 – apresenta um breve histórico do Network Simulator (NS-2), a linguagem de programação utilizada, os objetos organizadores de eventos, objetos de redes e detalha o arquivo resultante das simulações; " Capítulo 5 – Protocolo DNP3 no NS-2 – apresenta a implementação do protocolo DNP3 encapsulado sobre uma rede TCP/IP de forma detalhada no NS-2 através de um patch, o modelo NS-2/DNP3 que realiza as simulações do DNP3 dentro do NS-2; " Capítulo 6 – Simulações e Resultados - detalha sobre as simulações realizadas com exemplos das principais funções do protocolo de comunicação DNP3, apresenta também a simulação de cinco cenários de possíveis implementações reais e finalmente discute os resultados obtidos em cada cenário simulado; " Capítulo 7 – Conclusões – apresenta as considerações finais do trabalho, resumindo as discussões apresentadas no decorrer do mesmo, bem como os trabalhos futuros. 24 2 SMART GRID Na visão de alguns especialistas a forma como está distribuída a energia elétrica apresenta deficiências, porque depende de uma única fonte geradora, caso haja uma falha, todos ficam sem energia elétrica. Quando se analisa a forma como é realizada a medição também se conclui que não é justa com o consumidor porque os medidores são obsoletos, analógicos e as medições não são precisas, resultando em uma probabilidade de erros muito grande. Partindo desse pressuposto, já existe uma proposta em fóruns internacionais, para a criação de uma rede de energia inteligente, conhecida pelo nome de smart grid que visa melhorar o consumo de energia.   Camargo (2009, p.1) ressalta a ideia de que a lógica de smart grid está em uma palavra: inteligência. O mesmo propõe que as redes novas serão automatizadas com medidores de qualidade e de consumo de energia em tempo real, ou seja, a residência irá conversar com a empresa geradora de energia e, em um futuro próximo, até fornecer eletricidade para a mesma. A inteligência também será aplicada no combate à ineficiência energética, isto é, a perda de energia ao longo da transmissão.   Esta nova rede proposta irá diminuir as irregularidades atuais, tais como o furto de energia elétrica, a medição do consumo e identificação das possíveis falhas à distância, sem a necessidade do técnico se deslocar até o domicilio para verificação do medidor, estas são as maiores vantagens do smart grid. Lima e Jannuzzi (2011) mencionam os estudos da Electric Power Research Institute (EPRI). Os mesmos afirmam que o conceito de smart grid “é a sobreposição de um sistema unificado de comunicações e controle sobre a infraestrutura existente de energia para fornecer as informações corretas à entidade, de equipamentos da rede como medidores, transformadores, sistemas de controle da transmissão, distribuição, consumo, etc., no momento certo, para a tomada de decisões. É um sistema que otimiza as fontes de energia, minimiza as perdas, se autorecupera e permite aplicações de última geração para a eficiência energética e de resposta à demanda”. Em suas contundentes observações, (LIMA; JANNUZZI, 2011 p.47), explana que smart grid deve: • Prover a transição da rede de um sistema radial para uma verdadeira rede, garantindo a conectividade desde a geração até os clientes finais; 25 • Converter o sistema eletromecânico em um sistema totalmente digital, garantindo suporte ao controle e automatização informatizados de seus ativos; • Permitir uma comunicação bidirecional na rede, de modo que os clientes possam, se quiserem, passar sua participação passiva a ativos (por exemplo, como cogeradores). Na Figura 1 ilustra-se algumas vantagens do sistema inteligente de monitoramento em todas as etapas de transmissão de energia elétrica e a Figura 2 apresenta a arquitetura de um sistema smart grid. Figura 1 - Como funciona a smart grid. Fonte: Adaptado (CAMARGO, 2009). 26 Figura 2 – Arquitetura de um sistema smart grid. Fonte: Adaptado (GEPE, 2013). Smart grid, em linhas gerais, são redes de energia elétrica automatizadas, com infraestrutura que permite a integração de equipamentos e sistemas de comunicação de dados de forma gerenciada, aumentando a interoperabilidade no sistema elétrico. A rede inteligente para melhorar a eficiência utiliza a comunicação bidirecional, fornecendo mais confiabilidade e segurança na transmissão e distribuição de energia elétrica (LAMIN, 2009). O setor de geração e distribuição de energia elétrica vem se adaptando à necessidade de modernizar com o avanço da tecnologia, incluindo também a integração com diversas fontes de geração de energia renováveis, para melhor aproveitamento dos recursos e da demanda, diminuir as perdas no sistema e emissões de carbono na atmosfera. As principais partes que tradicionalmente compõem o conjunto do sistema elétrico são: geração, transmissão, distribuição e consumo. O sistema de distribuição é o que tem maiores mudanças com o aparecimento da rede inteligente e a geração distribuída. Geram grandes mudanças no sistema do fluxo unidirecional de energia, redistribuição de sistema e elementos de proteção, sistemas novos de monitoramento e controle dos dispositivos na rede, regulamentação dos diferentes tipos de dispositivos do setor e seleção de tecnologia de comunicação. Essas mudanças requerem novos esquemas de comunicação, a utilização de vários e diferentes tipos de tecnologias disponíveis para desempenhar eficientemente as tarefas de 27 controle e monitoramento dos elementos, os quais compõem a rede de distribuição de uma forma confiável e segura. Para assegurar um funcionamento correto do sistema é vital a utilização de uma rede de comunicação com a integração do sistema de geração, transmissão, distribuição, subestações, além da distribuição de recursos energéticos como infraestrutura avançada de medição. Os centros de controle com o passar do tempo vem evoluindo para passar de um controle centralizado para o modo descentralizado, caracterizado por um sistema SCADA baseado sob IP, integrado com o sistema de gerenciamento de energia e sistema de gestão empresarial, manipulação de modelos de dados em um modelo de informação comum e software middleware (JAIMES, 2012). Estes aspectos levaram a necessidade de atualização e modernização das redes elétricas, direcionada a operar com os problemas e requisitos apresentados atualmente, essa rede inteligente e moderna, na qual é possível controlar e monitorar a geração, distribuição e utilização de energia provida pela mesma. Considerando a modernização da rede elétrica, são associados os seguintes conceitos: confiabilidade, eficiência, segurança, preservação ambiental e competitividade. Conforme (TORRI, 2012), a rede inteligente não é uma derivação de apenas uma tecnologia, mas, sim do conjunto de diversas partes. Cada uma destas partes do componente é responsável por elevar o nível de inteligência da rede. O desafio atualmente é a construção de cidades mais inteligentes, com mais eficiência e sustentável na questão energética. A rede inteligente posiciona-se como um conceito fundamental para atingir as metas propostas. A projeção do sistema de smart grid para o futuro prevê um conjunto de conceitos e funcionalidades: como auto-reparação, motivação e envolvimento dos consumidores, resistência a ataques e desastres, maior eficiência e acomodação de todas as opções de geração e armazenamento de energia. Com essas características, preveem um sistema de distribuição de energia elétrica mais flexível e distribuída, mais inteligente, mais controlável e mais segura que o atual sistema de rede elétrica (SILVA, 2011). 2.1 Conceitos Básicos do Sistema SCADA De acordo com Clarke, Reynders e Wright (2004), SCADA é um software de aplicação de controle que faz comunicação com dispositivos de campo e controla processos industriais de forma automática a partir de um computador. 28 O sistema SCADA permite monitorar e controlar uma instalação industrial ou equipamentos, obter e processar as informações de processos industriais dispersos ou em locais remotos. A aquisição de dados é executada pelas unidades terminais remotas (RTUs) que exploram as entradas de informação dos dispositivos localizados em campos conectados a eles, também pode ser operado pelos controladores lógicos programáveis (PCLs) com a função dos RTUs. As informações são transmitidas a um local para supervisão, controle e processamento, geralmente uma sala ou um centro de controle. Um sistema SCADA permite então supervisionar e controlar simultaneamente processos e instalações distribuídos em grandes áreas, e gerenciar um conjunto de informações processadas, como por exemplo, apresentação de tendências em gráfico e histórico das informações de operação e manutenção preventiva (CLARKE; REYNDERS; WRIGHT, 2004). 2.1.1 Elementos de um Sistema SCADA  Um sistema SCADA é formado por: • Unidade Central ou Unidade Terminal Mestre (MTU); • Unidade Terminal Remota (RTU); • Sistema de Comunicações; • Instrumentação de campo. Na Figura 3 apresenta-se o diagrama de blocos dos componentes de um sistema SCADA. Figura 3 – Diagrama de blocos – sistema SCADA.   Fonte: Adaptado (CLARKE; REYNDERS; WRIGHT, 2004).   INTERFACE OPERADOR-MÁQUINA UNIDADE CENTRAL UNIDADE REMOTA TRANSDUTOR PROCESSO (Interface Gráfica) 29 2.1.2 Interface Operador-Máquina (IOM) O IOM é uma interface gráfica entre o operador e o sistema controlado e supervisionado. Esta interface é composta de hardware e software, através desta interface os operadores podem monitorar o estado de um processo, interromper manualmente as operações de controle automático em casos de emergências, modificar os valores de referências. A finalidade do ambiente gráfico é proporcionar e tornar mais amigável a interação entre o controlador e o sistema. 2.1.3 Unidade Central (MTU) A MTU executa as ações de controle (programado), com base nos valores atuais das variáveis, que são responsáveis pelo armazenamento e processamento de dados ordenados de forma que outro aplicativo ou dispositivo possa acessá-los. A programação é realizada por meio de blocos e a linguagem de programação é de alto nível (C, Basic, etc.).     2.1.4 Unidade Terminal Remota (RTU) As RTUs são as estações localizadas no campo e responsáveis por coletar e enviar algumas informações para a unidade central. Sistema de Comunicações: Responsável pela transferência de dados do ponto em que operações são executadas, para o ponto onde se supervisiona e controla o processo. 2.1.5 Transdutores São os elementos que permitem a conversão de um sinal físico em um sinal elétrico (e vice-versa). Sua calibração é muito importante para que não haja problema com os valores de dados (CLARKE; REYNDERS; WRIGHT, 2004). Os elementos da arquitetura SCADA são apresentados na Figura 4. As Estações Remotas (RTUs), localizadas a direita da figura, são interligadas na instrumentação de campo através de rede cabeada. As RTUs são utilizadas para a comunicação dos dados e controle de dispositivos remotos, recolhem e concentram os dados dos instrumentos de campo transferindo-os para a estação central. O servidor SCADA utiliza um centro de controle com interface homem-máquina que realiza a busca. A taxa de transferência dos RTUs é definida pelo usuário através de vários links de comunicação (fibra ótica, rádio, modem, micro-ondas, telefone, wireless, powerline e internet). O servidor SCADA é programado para coletar dados e reformatar a partir de sítios 30 remotos que detectam mensagens de alarme relatadas pelos RTUs. Essas mensagens são emitidas quando o estado de um ponto terminal é alterado inesperadamente (MAJDALAWIEH; PARISI PRESICCE; WIJESEKERA, 2006). Figura 4 – Arquitetura do sistema SCADA.   Fonte: (MAJDALAWIEH; PARISI PRESICCE; WIJESEKERA, 2006). 31 3 PROTOCOLO DNP3 O DNP3 criado em 1990, pela divisão de controle da GE Harris, é um protocolo baseado nas primeiras especificações do IEC/60870-6-802. Com uma implementação mais simples que a do Inter Control Center Protocol, protocolo de comunicação entre centros de controle (ICCP), as principais funcionalidades são (ZARUR, 2005): • Enviar e receber informações de tipos diferentes em uma mesma mensagem; • Fragmentar a mensagem em pequenos pacotes de forma a garantir um mecanismo de detecção e recuperação de erros robustos; • Somente envia valores que variaram; • Permite estabelecimento de prioridades entre os serviços; • Implementa mecanismo de notificação; • Suporta mecanismos de sincronização; • Permite múltiplos mestres e operações ponto a ponto; • Possibilita o envio de arquivos. O protocolo DNP3 é um bom exemplo das funcionalidades mínimas, em termos de envio e recebimento de dados, necessárias pela rede de supervisão e controle. A partir de 1993 o protocolo foi cedido ao domínio público do grupo de membros DNP da internet (DNP Users Group). Conforme Clarke, Reynders e Wright (2004), o DNP3 é um protocolo desenvolvido para operar somente em canais de comunicação serial, mas, também pode ser utilizado sobre ethernet; para tal, não é necessário fazer qualquer alteração do pacote que é utilizado em meios de comunicação serial. O DNP3 é um protocolo de comunicação de código aberto. Dispositivos com algum poder de processamento e armazenamento de dados, interligando dispositivos remotos, monitorando e coletando informações são denominados de estação central (Master). Já os dispositivos localizados em campo (residência dos usuários, linhas de transmissão, sub- estações, transformadores) encarregados de coletar dados dos sensores e enviar a estação central são denominados estação remota (Outstation). Na Figura 5 ilustra-se a arquitetura dos níveis da camada do protocolo e os tipos de pontos de entrada/saída da estação remota (BAGARIA; PRABHAKAR; SAQUIB, 2011). 32 O ponto é um tipo de dado de entrada ou saída, os dados de entrada são obtidos dos sensores e os dados de saída são sinais de controle. Pode-se observar na Figura 5 que cada tipo de ponto possui um índice identificando pontos do mesmo tipo. O valor mínimo do índice é zero. Figura 5 – Níveis de camadas e o tipo ponto de entrada/ saída. Fonte: Adaptado de (IEEE Std 1815-2010, 2010) 3.1 Construção de uma mensagem DNP3 Na Figura 6 ilustra-se como uma mensagem transmitida é construída no protocolo DNP3. Cada camada leva a informação passando desde a camada mais alta e incorporando as informações ligadas com os serviços realizados por essas camadas; a informação adicional é adicionada como cabeçalho da mensagem. Assim durante a montagem da mensagem, a mesma vai aumentando de tamanho cada vez que passa por uma camada. Também é desfragmentada neste mesmo processo em unidades de dados menores os que passaram de 292 bytes. As mensagens no nível de camada de aplicação são denominadas fragmentos, já na camada de pseudotransporte recebe o nome de segmento. Mensagens no 33 nível da camada de enlace são chamadas de quadros (frames), e na camada física as mensagens são convertidas em cadeia de bits, para serem transmitidos por meio físico (CLARKE; REYNDERS; WRIGHT, 2004). Figura 6 – Construção de uma mensagem DNP3. Fonte: Adaptado (CLARKE; REYNDERS; WRIGHT, 2004). Na Figura 7 mostra-se o esquema de segmentação de mensagem no nível da camada de aplicação. Figura 7 – Esquema de segmentação de mensagem na camada de aplicação. Fonte: Adaptada (CLARKE; REYNDERS; WRIGHT, 2004). Dados de Aplicação podem ser de qualquer tamanho, incluindo 0. 34 3.2 Camada de Aplicação Os dados do usuário são dados que chegam através de aplicação de usuário, tanto pode ser vista como camada de aplicação, como pode ser um software para configuração de uma HMI (Human Machine Interface). Os dados enviados podem ser alarmes e eventos, dados de estado digitais, dados analógicos, ou um arquivo contendo configuração transmitida pela estação mestre para a estação escrava. Existe também o envio de comandos desde uma estação mestre para a estação escrava que não levam dados. O tamanho total dos dados não é limitado pelo protocolo, a camada de aplicação inicialmente forma os dados em blocos administráveis denominados ASDUs (Application Service Data Unit). A camada de aplicação cria a APDU (Application Protocol Data Unit), aumentando o tamanho do cabeçalho de dados conhecida como APCI (Application Protocol Control Information). Os cabeçalhos APCI são de 2 a 4 bytes dependendo se a mensagem é de solicitação ou de resposta respectivamente. No caso de ser um comando existe apenas um cabeçalho e não os dados ou ASDU. Quando os dados ou blocos de ASDU a serem transmitidos são de tamanho grande para uma mensagem da camada de aplicação, são criados múltiplos fragmentos APDUs, cujo tamanho máximo é de 2.048 bytes. Os tamanhos dos APDUs dependem do tamanho da mensagem a ser transmitida. A estação central organiza e envia mensagem para a estação escrava solicitando informações. Executa um comando ou uma função especial como sincronização de tempo, transferência de arquivo, por exemplo. Na estação escrava, a mesma gera a mensagem apropriada, dependendo da solicitação e envia para a estação mestre. Em alguns casos, é possível que a estação escrava envie mensagem não solicitada para a estação mestre. Na Figura 8 ilustra-se o pedido de uma mensagem solicitada com confirmação na camada de enlace de dados e na Figura 9 ilustra-se a reposta de uma mensagem não solicitada. O tamanho do fragmento do pacote depende do tamanho do buffer do dispositivo A qual tem um intervalo de 2.048 a 4.096 bytes. Se a mensagem for maior que o fragmento, então a camada de aplicação deve fragmentá-la, e na recepção dos pacotes fragmentados é responsabilidade da camada de aplicação voltar a desfragmentar o pacote novamente. 35 Figura 8 - Sequência polled com confirmação de dados na camada de enlace. Fonte: Adaptado (IEEE Std 1815-2012, 2012). Figura 9 - Sequência de resposta da mensagem não solicitada. Fonte: Adaptado (IEEE Std 1815-2012, 2012). Na Figura 10 pode ser visto o formato dos fragmentos de mensagem solicitada e da confirmação, há uma pequena diferença entre as duas. 36 Figura 10 – Componentes do fragmento da camada de aplicação. Fonte: (IEEE Std 1815-201, 2012) Cada fragmento contém um cabeçalho com informação de controle, isto é válido tanto para transmissão de somente um fragmento como vários fragmentos numa única mensagem. O campo cabeçalho dos objetos contém informações adicionais, que não podem ser descritas no campo do cabeçalho do formato, visto que a existência do campo objeto é opcional (porque no fragmento da mensagem solicitada, os pontos solicitados estão descritos no cabeçalho do objeto, mas não existe nenhuma informação para enviar no campo objeto). Nas Figuras 11 e 12 mostra-se o conteúdo do cabeçalho da mensagem solicitada e da resposta, respectivamente. Figura 11 – Componentes do cabeçalho do fragmento da mensagem solicitada. Fonte: (IEEE Std 1815-2012, 2012). Figura 12 – Componentes do cabeçalho da mensagem de resposta. Fonte: (IEEE Std 1815-2012, 2012). Controle de Aplicação (Application Control): campo de 1 byte e contém a informação sobre a ordem dos fragmentos, se deve enviar a confirmação ou não. Código Função (Function Code): campo de 1 byte, contém a informação sobre o propósito da mensagem. Cada função (leitura, escrita, confirmação, iniciar, parar, reiniciar, etc.), com o código atribuído à estação mestre com valores de 1 a 128, enquanto na estação escrava os valores são de 129 a 255. 37 Indicadores internos (Internal Indicators): campo com 2 bytes, só existe no cabeçalho da mensagem de resposta, contém informações sobre o estado e as condições de erros da estação escrava. 3.3 Camada Pseudotransporte O fragmento APDU da camada de aplicação é encapsulado como unidade de dados do serviço de transporte TSDU (Transport Service Data Unit), dentro da camada pseudotransporte. A camada pseudotransporte divide a TSDU em unidades menores de dados TPDUs (Transport Protocol Data Unit). As TPDUs constam de 1 byte no cabeçalho, e um tamanho máximo de 249 bytes de dados, totalizando 250 bytes, para o encapsulamento no quadro LPDU da camada de enlace DNP3 que tem no máximo 250 bytes de dados. Esta camada é uma função incorporada à camada de aplicação, com funcionalidades limitadas em dividir uma mensagem da camada de aplicação em pacotes menores para serem enviados pela camada de enlace. Na recepção, a sua funcionalidade é de desfragmentar os pacotes e repassar para a camada de aplicação. Para cada quadro, insere-se 1 byte (num único campo do cabeçalho) que indica se o quadro da camada de enlace é o primeiro ou o último dos quadros. A mensagem é constituída por apenas um quadro, contendo as informações dos números de quadros; na recepção pode- se identificar um quadro perdido e solicitar a retransmissão do mesmo. Na transmissão os segmentos são enviados à camada de enlace um a um e na recepção a função de transporte notifica a camada de aplicação que há um fragmento disponível, após completar o recebimento e desfragmentar a mensagem. Na Figura 13 ilustra- se os componentes de um quadro na camada pseudotransporte. Na Figura 14 mostra-se o formato de um cabeçalho da camada pseudotransporte. Figura 13 – Componentes de um quadro na camada pseudotransporte. Fonte: (IEEE Std 1815-2012, 2012). Figura 14 – Componentes do cabeçalho de um quadro na camada pseudotransporte. Fonte: (IEEE Std 1815-2012, 2012). 38 Na Figura 14: FIN: Indica se o fragmento é o último. FIR: Indica se o fragmento é o primeiro. Sequência (Sequence): Um campo de 6 bits, com a finalidade de verificar se os fragmentos são recebidos na ordem correta e se não há falta de um fragmento; possui um intervalo de valores de 0 a 63, depois do número 63 utiliza-se 0. 3.4 Camada Enlace de Dados Esta camada recebe as TPDUs da camada pseudotransporte e adiciona 10 bytes de cabeçalho. A camada de enlace também é responsável pela detecção de erros e funções de correção; usa-se o código de correção de erros CRC (Cyclic Redundancy check) código de redundância cíclica de 16 bits. Cada TPDU é convertida em um quadro LPDU de 292 bytes de valor máximo e 250 bytes para dados. Na Figura 15 mostra-se o esquema de um quadro na camada de enlace e na Figura 16 apresenta-se o conteúdo do cabeçalho de um quadro na camada de enlace. Figura 15 – Componentes de um quadro na camada de enlace. Fonte: (IEEE Std 1815-2012, 2012). Figura 16 – Componentes do cabeçalho de um quadro na camada de enlace. Fonte: (IEEE Std 1815-2012, 2012). Na Figura 16: Sync: são 2 bytes de sincronização. O primeiro byte corresponde a 0x15 e o segundo byte corresponde a 0x64. Length: este campo indica a quantidade de bytes que seguem no cabeçalho (ou seja, Link Control, Destination e Source Addresses) do quadro, e os bytes de dados sem incluir os bytes do campo CRC. O valor mínimo para esse campo é 5, que corresponde que só existem os bytes do cabeçalho e o valor máximo que se pode obter é de 255. 39 Link Control: campo de 1 byte, é usado para coordenar o envio e recebimento de quadros. Destination Address: campo de 2 bytes, indica o endereço de destino para o qual foi enviado o quadro, cada estação escrava tem um endereço único. O primeiro byte é o menos significativo e o segundo é o mais significativo. No DNP3 padrão, existem 65.520 endereços disponíveis (variando de 0x0000 a 0xFFEF), já que 3 são reservados para o multicast, 1 endereço é universal e 13 endereços são reservados. Source Addres: campo de 2 bytes, indica o endereço de origem do quadro enviado. O primeiro byte do endereço é o byte ordem baixa e o segundo byte é a ordem alta. CRC: este campo depende da quantidade de bytes do quadro, existem 2 bytes para cada 16 bytes de dados. Os demais campos do cabeçalho são incluídos para calcular o CRC. O código de Redundância Cíclica é gerado do polinômio mostrado na equação 1 (Jaimes, 2012), e é invertido antes de ser colocado no campo para ser transmitido, tendo a atenção de que o primeiro byte é o menos significativo e o segundo o mais significativo. 𝑋!" + 𝑋!" + 𝑋!" + 𝑋!" + 𝑋! + 𝑋! + 𝑋! + 1 (1) Pode-se enviar quadros com ou sem solicitação de confirmação. Quando a solicitação é confirmada, o dispositivo envia um quadro indicando que foi recebido o tal quadro sem erros segundo o campo CRC. Usando-se um campo de endereço de origem e um de destino em cada quadro, permitindo o uso de várias estações mestres com comunicações ponto-a-ponto. 3.5 Camada Física A camada física converte cada quadro em uma cadeia de bits sobre o meio físico. A camada física definida inicialmente do DNP3 foi a serial RS-232 e RS-485, com um formato de quadro serial de 8 bits de dados, um bit de início, um bit de parada, sem paridade. A camada física foi definida posteriormente sobre a camada física Ethernet sobre TCP/IP; atualmente o protocolo TCP/IP é utilizado para o transporte de mensagens DNP3 sobre a rede ethernet através do encapsulamento de dados. Na Figura 17 ilustra-se um diagrama com o tamanho dos pacotes em diferentes camadas do protocolo. 40 Figura 17 – Resumo de pacotes nas camadas do protocolo DNP3. Fonte: (JAIMES, 2012). 3.6 Topologia do Protocolo O padrão DNP3 oferece quatro tipos de arquitetura, descritas a seguir: Ponto a Ponto (Point-to-Point): é a arquitetura mais simples, onde uma estação central se comunica com uma única estação remota, conforme a topologia ilustrada na Figura 18. Figura 18 - Topologia ponto a ponto. Fonte: Adaptado de (IEEE Std 1815-2010, 2010). Multiponto: a estação central se comunica com várias estações remotas, a comunicação é feita ponto a ponto onde a estação central solicita dados de maneira sequencial entre as estações remotas. Cada estação remota monitora a mensagem da estação central, mas só responde quando o endereço de destino da mensagem corresponde com seu endereço, conforme ilustrado na Figura 19. 41 Figura 19 - Topologia multiponto. Fonte: Adaptado de (IEEE Std 1815-2010, 2010). Hierárquica: consiste em uma estação central que se comunica com uma estação remota, que por sua vez passa a ser estação central para outra estação remota, neste caso a estação remota recebe o nome de subestação central ou submaster. Na Figura 20 apresenta-se esta topologia. Figura 20 - Topologia hierárquica. Fonte: Adaptado de (IEEE Std 1815-2010, 2010). Concentrador de dados: nesta topologia pode-se manipular diferentes protocolos onde o DNP3 pode estar na estação central ou na subestação central. O concentrador de dados recolhe informações de vários IEDs (Intelligent Electronic Device) para serem transmitidas até a estação central (IEEE Std 1815-2012, 2012); (CLARKE, REYNDERS; WRIGHT, 2004). O esquema da topologia está ilustrado na Figura 21 e Figura 22. Figura 21 - Topologia concentrador tipo I. Fonte: Adaptado de (IEEE Std 1815-2010, 2010). Figura 22 - Topologia concentrador tipo II. Fonte: Adaptado (IEEE Std 1815-2010, 2010). 42 3.7 Camadas do Protocolo DNP3 Na Figura 23 apresenta-se o sistema de camadas que é utilizado no protocolo DNP3 para garantir uma transmissão de dados confiável. Figura 23 - Diagrama de estação Mestre e Escravo. Fonte: Adaptado (IEEE Std 1815-2010, 2010). Camada do usuário (User Layer): a estação central interage com a base de dados e solicita os dados da estação remota. Na estação remota, o software extrai a informação da estação remota para enviar para a estação central e utiliza a função da camada de aplicação para enviar as mensagens. Dígitos dentro das caixas representam números de índices 43 Camada de Aplicação DNP3: a estação central organiza e envia mensagens para a estação remota para requerer informações, realizar função especial ou executar um comando. A estação remota gera a mensagem apropriada dependendo do requerimento e envia a mensagem para a estação central. Em alguns casos é possível que a estação remota envie mensagem não solicitada pela estação central. O tamanho do fragmento (pacote), depende do tamanho do buffer do dispositivo na qual se tem um intervalo entre 2.048 e 4.096 bytes. Camada de Transporte DNP3: não é uma camada mas uma função incorporada na camada de aplicação, limita-se a dividir uma mensagem da camada de aplicação em pacotes menores para ser enviados pela camada de enlace. Na recepção, a função de transporte notifica a camada de aplicação que apresenta um fragmento disponível quando este tiver completado o recebimento e remontado todas as partes de um fragmento. Camada de Enlace do DNP3: é a camada encarregada de assegurar que a transmissão de dados pela camada física seja confiável realizando detecção de erros CRC. Camada Física do DNP3: a especificação do DNP3 está sobre RS-232 ou RS-485 utilizando um meio físico como fibra ótica, rádio, satélite ou conexão Ethernet. 3.8 DNP3 sob TCP/IP Originalmente o protocolo DNP3 foi desenvolvido para estabelecer uma conexão serial ponto a ponto. Com o passar dos anos houve a necessidade da expansão da comunicação com redes de maior porte e capacidade, onde utilizou-se a implementação do DNP3 levando em consideração o protocolo TCP/IP. Na Figura 24 ilustra-se a topologia de uma rede onde pode ser utilizado o protocolo de comunicação DNP3 sob TCP/IP. Observa-se que um sistema SCADA é usado sob a rede TCP/IP em que as estações Mestres utilizam as funções de supervisão, controle e aquisição de dados de RTUs, IEDs e PCLs. Levando em conta as características mencionadas anteriormente, o comitê técnico DNP User Group definiu o método de encapsulamento do protocolo DNP3 sob TCP/IP para o seu uso na rede LAN, MAN e WAN. 44 Figura 24 – Topologia típica de uma rede onde se usa o DNP3 sobre TCP/IP. Fonte: Próprio autor. 3.9 Encapsulamento do Protocolo DNP3 sob TCP/IP DNP3 é realizado sob a rede Ethernet mediante o encapsulamento de dados. O encapsulamento de dados é feito a partir da camada de enlace de dados DNP3 sobre os segmentos da camada de transporte TCP/IP. Isto permite que sob TCP/IP se distribua os quadros da camada de enlace de dados DNP3 ao destinatário. O DNP3 utiliza as mensagens do TCP/IP para transportar mensagens por meio de redes LAN/MAN/WAN. As recomendações dos membros do grupo DNP user group são as seguintes: • As confirmações da camada de enlace de dados DNP3 devem ser desabilitadas, porque o TCP se encarrega de garantir uma conexão do início ao fim confiável; • A camada física recomendada é Ethernet; • Todos os equipamentos devem suportar TCP e UDP; • TCP deve ser usado para rede WAN porque é um protocolo orientado a conexão e confiável; • O modelo Enhanced Performance Architecture (EPA) da camada na qual se baseia o protocolo DNP3 não se altera. Subestação Rede LAN RTU IEDs Medidores Relés de Proteção Ethernet Ethernet Sala de Controle de um Sistema SCADA Rede LAN Rede LAN Remota Estações Mestres Saída para outra rede PCs Servidor Rede WAN Empresarial 45 Na Figura 25 ilustra-se as camadas de aplicação, pseudotransporte e enlace de dados do protocolo DNP3, que mantém-se e age sobre a camada de transporte, camada de Internet e camada de interface da rede da arquitetura TCP/IP. A camada pseudotransporte e de enlace de dados são os elementos e serviços, essenciais. Os serviços de direcionamento e detecção de erros realizados na camada de enlace de dados do DNP3 são requeridos para trabalhar junto com a arquitetura TCP/IP. Figura 25 – Encapsulamento do DNP3 sobre TCP/IP. Fonte: Adaptado (CLARKE; REYNDERS; WRIGHT, 2004). As confirmações da camada de enlace do DNP3 não são necessárias com o uso sob TCP/IP, e não são permitidas, pois o TCP é protocolo de transporte orientado a conexão e estabelece uma conexão através do controle de handshakes, ou confirmações ACKs. É encarregado de garantir uma comunicação do início ao fim confiável, pois realiza a confirmação com números de confirmações de recebimento ACKs. A construção de uma mensagem DNP3 vai desde a camada de aplicação até a camada de enlace de dados DNP3. O quadro da camada de enlace DNP3, cujo tamanho APDU TPDU LPDU Fragmento, tamanho máximo: 2048 bytes Segmento, tamanho máximo: 250 bytes Quadro, tamanho máximo: 292 bytes Cabeçalho TCP: 20 bytes Cabeçalho UDP: 8 bytes Tamanho máximo Segmento TCP: 556 bytes Datagrama IP, tamanho máximo 576 bytes, cabeçalho 20 bytes. Quadro ethernet, tamanho máximo: 1518 bytes, cabeçalho 18 bytes. Segmento TCP Datagrama IP Quadro Ethernet Unidade de dados Protocolo TCP/IP Protocolo DNP3 Camada de Aplicação DNP3 Camada de Pseudotransporte DNP3 Camada de Enlace DNP3 TCP UDP Ethernet IEEE 802.3 IP APLICAÇÃO TRANSPORTE INTERNET INTERFACE DA REDE ARQUITETURA TCP/IP LAN 46 máximo é de 292 bytes, é encapsulado em um segmento TCP na camada de transporte TCP/IP, nesta camada é adicionado o cabeçalho com 20 bytes. O segmento máximo do TCP é de 556 bytes (536 bytes de dados e 20 bytes de cabeçalho). Em seguida a mensagem é encapsulada em um datagrama IP na camada Internet. São adicionados mais 20 bytes de cabeçalho, formando uma mensagem de tamanho máximo de 576 bytes no nível da camada de Internet. Na camada interface de rede TCP/IP a mensagem é encapsulada novamente no quadro Ethernet, que contém de 46 a 1.500 bytes de dados no máximo, e adicionado o cabeçalho de 18 bytes totalizando o tamanho máximo do quadro Ethernet de 1.518 bytes. 3.10 Camada de Gerenciamento de Conexão O modelo EPA do DNP3 baseado no modelo OSI, baseia-se na comunicação virtual entre cada camada correspondente. A arquitetura TCP/IP baseia-se da mesma forma na comunicação virtual entre as camadas correspondentes e o encapsulamento dos dados das camadas superiores nas camadas inferiores; portanto a construção da mensagem DNP3, nas camadas TCP/IP, é transparente para as camadas do modelo EPA do DNP3 como pode ser visto na Figura 26. A implementação do padrão DNP3 sob o protocolo TCP/IP é feita de maneira que as camadas anteriores citadas não se alteram, exceto o método de sincronização de tempo; mas o envio de mensagem transparente é independente do protocolo TCP/IP. As confirmações na camada de enlace não são utilizadas, somente a confirmação na camada de aplicação é empregada similarmente ao que ocorre no meio de transmissão serial. A interface na camada de gerenciamento de conexão e a camada de transporte do protocolo TCP/IP é implementada através de um API (Application Program Interface). O protocolo TCP/IP é composto por dois protocolos na camada de transporte: TCP e UDP (User Datagram Protocol). Um dispositivo que suporte DNP3 deve também ter suporte a ambos os protocolos. Quando não há a recomendação/exigência da atribuição de endereços IP aos dispositivos que utilizam DNP3, o número da porta designado geralmente para esta aplicação é 20.000. 47 Figura 26 – DNP3 sobre TCP/IP. Fonte: Adaptada (CLARKE; REYNDERS; WRIGHT, 2004). A camada de gerenciamento de conexão promove a interface entre as camadas do protocolo DNP3 e as do protocolo TCP/IP. É encarregada de estabelecer e encerrar conexões TCP, transmitir, aceitar datagramas e enviar parte dos quadros DNP3 entre a camada de enlace do protocolo DNP3. A interface entre a camada de gerenciamento de conexão e a arquitetura TCP/IP é implementada através de um Sockets Application Programming Interface (API), dentro da camada de transporte do TCP/IP, através da interface sockets (combinação de um endereço IP e número de porta). Os níveis de implementação se dividem em três, o nível 1 é composto de funções básicas do protocolo DNP3, os demais são opcionais, estão orientados a estabelecer comunicação com IEDs. O nível 2 permite mais funções, grupos e variações, os IEDs são mais sofisticados e RTUs com centenas de pontos (tags). O nível 3 é aquele que suporta todas as funcionalidades do protocolo. 48 4 O SIMULADOR DE REDES NS-2 O NS-2 (Network Simulator V.2) é um software de simulação de redes que permite validar o desempenho de protocolo de comunicação já implementadas, simular redes que não são possíveis ou são muito onerosas em experimentos reais, validar novos protocolos de comunicação antes de serem implementados em cenários reais, simular sistemas de redes de filas simples (M/M/1) até sistemas de redes de comunicação complexas. Opera com a simulação de protocolos como o TCP e suas variantes (Tahoe, Reno, New Reno, Vegas entre outros), multicast, redes cabeadas, redes sem fio, roteamento de pacotes e satélites. Implementa filas de roteamento, tipo droptail, diffserv red, fair queueing, stochastic fair queueing, class-based queueing, possui também ferramentas matemáticas numéricas para cálculos estatísticos (GONÇALVES; CORRÊA, 2005). Após a simulação realizada, tem-se a opção de imprimir as estatísticas calculadas através de script, visualizar os eventos com animação através do Network Animator (NAM) e analisar os resultados através dos arquivos de tracing com o apoio de ferramentas script awk. As estatísticas da simulação não são geradas automaticamente, são obtidas através de procedimentos matemáticos implementados no script (GONÇALVES; CORRÊA, 2005). Conforme explana Gonçalves e Corrêa (2005), a programação do NS é desenvolvida em duas linguagens: C++ para a estrutura básica (protocolos, agentes, etc) e OTcl (Object- oriented Tool Command Language) para uso como frontend. OTcl é uma linguagem interpretada, desenvolvida pelo Massachusetts Institute of Technology (MIT). Esta linguagem é efetivada com as escritas e as simulações. O objetivo de se utilizar duas linguagens de programação baseia-se em duas diferentes necessidades: o de ser uma linguagem mais robusta para a manipulação de bytes, pacotes e para implementar algoritmos que rodem um grande conjunto de dados. Nesse contexto C++, que é uma linguagem compilada e de uso tradicional, mostrou-se a ferramenta mais eficaz. Por outro lado, durante o processo de simulação, ajustes são necessários com certa frequência. Como por exemplo muda-se o tamanho do enlace e realiza- se um teste, muda-se o atraso e realiza-se um teste, acrescenta-se um nó e realiza-se um teste. Haveria um desgaste muito grande se, a cada mudança de parâmetro, e são muitas em uma simulação, houvesse a necessidade de se compilar o programa para testá-lo. O uso da linguagem OTcl, que é interpretada, evita o desgaste por parte do usuário, pois há uma 49 simplificação no processo interativo de mudar e re-executar o modelo (GONÇALVES; CORRÊA, 2005). A maior dificuldade para se criar a otimização de protocolos de rede é a análise dos mesmos quando se trata de ambientes diferentes. Implantar uma estrutura de teste de redes gera um alto custo dependendo do número de estações tanto financeiro quanto em relação ao tempo utilizado para tal. A partir desse fato, Jain (2007) afirma que a melhor solução para reduzir estes custos e que possa atender a flexibilidade necessária para os testes é a simulação, porque com a mesma pode-se obter resultados utilizando diferentes topologias e números de estações, ocupando o tempo apenas na configuração dos parâmetros de simulação. 4.1 Histórico do NS A primeira versão do NS foi desenvolvida em 1989, como uma variante do REAL Network Simulator. Em 1995, seu desenvolvimento passou a ser suportado pelo DARPA (Defense Advanced Research Projects Agency) através do Projeto VINT (Virtual InterNetwork Testbed), envolvendo os colaboradores USC/ISI (University of Southern California/ Information Sciences Institute), Xerox PARC (Palo Alto Research Center), LBNL (Lawrence Berkeley National Laboratory) e UCB (University of California Berkeley), culminando no lançamento da versão 2. Atualmente, seu desenvolvimento é feito pelo DARPA com o projeto SAMAN (Simulation Augmented by Measurement and Analysis for Networks) e pela NSF (National Science Foundation) com o projeto CONSER (Collaborative Simulation for Education and Research), ambos em colaboração com outros pesquisadores incluindo o ICSI (International Computer Science Institute). O NS-2 também inclui contribuições substanciais de outros pesquisadores, incluindo códigos de redes sem fio do UCB Daedelus, dos projetos do CMU Monarch e da Sun Microsystems. (ISI, 2005). Em novembro de 2011, foi lançada a versão 2.35 do NS-2 que vigora até hoje. Foi desenvolvida para operar em plataformas Unix (FreeBSD, SunOS, Solaris, Linux, entre outras). Funciona também em plataforma Windows com o auxílio de outro software para virtualização, apesar da instalação não ser automatizada e não seguir os mesmos padrões de instalação feitos para Windows (ISI, 2005). O NS-2 tem sua distribuição gratuita, seu código fonte também é gratuito e pode ser livremente alterado para qualquer pesquisa desenvolvida. Existe uma lista de discussão criada 50 pelos desenvolvedores, onde diversos pesquisadores trocam ideias, experiências e propõem correções nos códigos do simulador. Estes pesquisadores que participam desta lista são em grande maioria dos Estados Unidos, Índia, Taiwan, Itália, Inglaterra e Brasil. Este trabalho não tem o objetivo de explanar os detalhes da instalação e configuração deste software, já que se encontra em diferentes manuais, serão mostradas as principais características e funcionalidades do software. 4.2 A Linguagem do NS Os códigos de programação do NS-2 são desenvolvidos em linguagem C++ e OTcl, na qual fornece a programação dual, ilustrada na Figura 27. Chung e Claypool (1995), também utiliza-se da linguagem C++ no processamento da simulação, onde é realizada em uma linguagem de script OTcl. Figura 27 - C++ e OTcl: a dualidade. Fonte: (CHUNG; CLAYPOOL, 1995). Na Figura 28 apresenta-se uma estrutura do NS em que o usuário define seus modelos de tráfego e topologia, utilizando de scripts de simulação, frontEnd, no qual o NS usa a linguagem OTcl e submete ao núcleo do NS, escrito em C++ para sua execução (VINT, 1996). Segundo Meeneghan e Delaney (2004), Ros e Ruiz (2004), Greis (1996), Issariyakul e Hossain (2009) o objetivo destas duas linguagens é realizar os detalhes de simulação de uma maneira que manipulem com bytes, pacotes, cabeçalhos, implementação de algoritmos, que executem de forma compilada em linguagem robusta como C++, onde o tempo para execução é seu fator principal. Os modelos de simulação são escritos em linguagem interpretada, porque envolvem variações de parâmetros e configurações; têm como prioridade o tempo de 51 interação e a linguagem OTcl oferece flexibilidade (ISI, 2005). O NS inclui uma extensão de OTcl chamada TclCL (Tcl com classes), que fornece uma ponte entre C++ e OTcl. Figura 28 – Estrutura do NS-2. Fonte: (VINT, 1996). Na Figura 29 (CHUNG; CLAYPOOL, 1995), apresenta-se a arquitetura geral do NS. O usuário do NS está situado no canto mais à esquerda e abaixo, planejando e rodando simulações em Tcl utilizando os objetos de simulação das bibliotecas OTcl. Os escalonadores de evento e a maioria dos componentes de rede são implementados em C++ e disponíveis em OTcl pela ligação que é implementada utilizando TclCL. Figura 29 - Arquitetura geral do NS-2. Fonte: (CHUNG; CLAYPOOL, 1995). 52 4.3 Objeto Organizador de Eventos No NS-2, um evento é um pacote único contendo uma série de instruções, no software dado pelo usuário na codificação. Internamente identifica-se com um ponteiro o objeto que manipula este evento. Na Figura 30 é mostrada a forma do organizador de eventos. Os principais objetos do organizador de eventos é a Network Component. Na transmissão de pacotes é requerido certo tempo de atraso necessário numa simulação, ao declarar um enlace com certa largura de banda muito baixa, o organizador de eventos deverá realizar delays mais prolongados nesse enlace para simular que a transmissão é lenta. Por outro lado, cada objeto de rede utiliza um organizador de eventos, que são os que manipulam o evento por tempo organizado. É importante que a trajetória dos dados entre os objetos de rede sejam diferentes da trajetória de eventos. Figura 30 – Organizador de eventos. Fonte: Próprio autor. 4.4 Objeto Componente de Rede O objeto componente de rede é responsável por fazer uma comunicação consistente entre os componentes de rede, por onde passam os pacotes. Os componentes da rede podem ser: largura de banda de enlace, enlace unidirecional ou bidirecional, atraso de pacotes, etc. 53 No caso de atraso de pacotes atua também o evento organizador. Na Figura 31 ilustra-se os componentes de uma rede que permite unir dois nós, ou seja, um enlace. Nesta figura é representado um enlace simples unidirecional; no caso de haver a necessidade de um enlace bidirecional, cria-se outro objeto com a mesma estrutura no sentido contrário. Na entrada de enlace, o pacote deve estar na fila. Figura 31 – Componente de rede enlace. Fonte: Próprio autor. Realiza-se uma série de processamentos dependendo do tipo de fila que tem esse enlace, tais como, se o tamanho do pacote superar o tamanho da fila, ou simplesmente a fila está saturada. Considerando isto, será tomada a decisão de descartar o pacote; neste caso o mesmo passará para o drop e ao agente Null. Caso contrário, realiza-se um atraso simulando o (delay). Finalmente, calcula-se e atualiza-se o TTL (Time To Live), tempo de vida do pacote para chegar ao nó destino e ser analisado. Na Figura 31 representa-se o fluxo de pacotes entre os nós. Na Figura 32, ilustra-se como representar uma comunicação entre dois nós através do protocolo TCP. O mesmo requer uma resposta de confirmação quando o receptor receber o pacote. A rede consiste de dois nós (n0 e n1). No nó n0, quando gera-se o pacote, este segue o caminho da porta 0 (port classifier) para adicionar a informação de que se trata do tipo TCP, logo, segue o caminho, volta a entrar no nó n0 agora já com a informação de que é um tipo TCP então passa pela porta 1 saindo pelo enlace n0 – n1 e chegando ao nó n1. Do mesmo modo que no nó n0, no nó n1 passa-se pela porta 0 para gerar o enlace de resposta e volta a entrar no nó n1 para sair pela porta 0 do enlace n1 - n0. Ao chegar no nó n0 54 entra pela porta 0 e gera-se a confirmação. Logo após a confirmação é gerado outro pacote e assim é repetida para cada transmissão. Figura 32 – Exemplo de fluxo de pacotes entre nós. Fonte: Próprio autor. 4.5 O Arquivo trace da Simulação Após a simulação, inicia-se uma fase considerada muito importante que é a análise dos resultados, é nela que se busca consistência e coerência nos resultados antes da sua apresentação. O NS gera o log de todos os eventos ocorridos durante a simulação em um arquivo de saída identificado como trace. O arquivo trace dependendo da simulação pode chegar a vários megabytes. Na Figura 33 ilustra-se o formato padrão do arquivo de saída do trace. No primeiro campo estão os eventos ocorridos durante a simulação, podendo ser a entrada de pacote na fila (+), a retirada de pacote da fila (-), o recebimento do pacote pela parte do nó destino (r) ou o descarte de pacote (d). O próximo campo indica o momento da simulação onde ocorreu um evento. Nos dois campos seguintes estão o nó de origem e nó de destino e o intervalo onde ocorreu o evento. O campo seguinte indica o tipo de pacote (TCP, UDP, CBR, DNP3, etc.). O próximo indica o tamanho de pacote em bytes; logo depois uma série de flags relacionados a notificação de congestionamentos. Depois das flags ocorre a identificação do fluxo, os endereços do transmissor com a identificação do endereço da fonte (nó e porta), o receptor identificado do endereço do destino (nó e porta). O campo seguinte identifica o número de sequência de pacote. E finalmente um número, que identifica o pacote de forma única na rede. (COUTINHO, 2007). 55 Figura 33 – Formato padrão do arquivo de saída do trace. Fonte: Próprio autor. + : entrada de pacote (na fila) endereço fonte :Nó. Porta (1.0) - : saída de pacote (da fila) endereço destino :Nó. Porta (0.0) r : pacote recebido (no destino) + 0.100000 1 0 dnp3 111 ------- 0 1.0 0.0 -1 0 - 0.100000 1 0 dnp3 111 -------- 0 1.0 0.0 -1 0 r 0.101089 1 0 dnp3 111 -------- 0 1.0 0.0 -1 0 + 0.101089 0 1 dnp3 40 --------- 0 0.0 1.0 -1 1 -