Sunteți pe pagina 1din 99

UNIVERSIDADE SO FRANCISCO Engenharia de Computao BRUNO GALASSO MOLINARI

IMPLEMENTAO DE AMBIENTE DE TESTES AUTOMATIZADOS PARA AVALIAO DE PARMETROS DE QoS EM REDES DE COMUNICAO DE DADOS BASEADO EM SOFTWARE LIVRE

Itatiba 2010

BRUNO GALASSO MOLINARI RA 002200600186

IMPLEMENTAO DE AMBIENTE DE TESTES AUTOMATIZADOS PARA AVALIAO DE PARMETROS DE QoS EM REDES DE COMUNICAO DE DADOS BASEADO EM SOFTWARE LIVRE

Monografia apresentada ao Curso de Engenharia de Computao da Universidade So Francisco, como requisito parcial para obteno do ttulo de Bacharel em Engenharia de Computao. Orientador: Prof. Gonalves Bardi Marcelo Augusto

Itatiba 2010

AGRADECIMENTOS

Agradeo primeiramente aos meus pais, Ismael e Solange, que me deram o apoio necessrio durante toda esta minha trajetria, ajudando a alcanar meus objetivos. minha namorada Mariana, pela pacincia, incentivo e carinho. Ao meu orientador Prof. Marcelo Agusto Gonalves Bardi cujo auxlio e cobranas foram fundamentais para a realizao desse trabalho. Ao meu chefe e amigo Tadeu, pelo apoio e compreenso durante esse perodo. Ao meu colega de trabalho e amigo Wallace, por ter me incentivado a ingressar na rea de engenharia. FTD Comunicao de Dados Ltda. pelo apoio durante a faculdade e emprstimo dos equipamentos utilizados para realizao dos testes deste trabalho. Enfim, a todos que me apoiaram neste momento da minha vida. Obrigado.

RESUMO
Nos ltimos anos, houve um crescimento em aplicaes de rede que utilizam recursos multimdia, como vdeo em tempo real, VoIP, videoconferncia, telemedicina e muitas outras. Essas aplicaes normalmente exigem que a rede por onde trafegam possuam parmetros de qualidade de servio (QoS) bem definidos, o que requer que muitas instalaes e configuraes de rede atualmente sejam realizadas visando obter esta garantia de qualidade para alguns servios. Dessa forma, este trabalho objetiva desenvolver um ambiente para testar, de forma automatizada, se a configurao de uma determinada rede est de acordo com os parmetros exigidos pelas aplicaes conforme as informaes fornecidas pelo usurio. Todo o desenvolvimento do sistema foi realizado utilizando-se como base o sistema operacional Linux e softwares como ping, iperf, apache, PHP e MySQL. Atravs de uma interface WEB o usurio informa os parmetros de qualidade da rede que deseja avaliar. Aps a confirmao do usurio o sistema configura automaticamente todos os softwares envolvidos e realiza o teste em segundo plano, durante o tempo determinado pelo usurio. Ao final do teste o sistema avalia as informaes obtidas e informa os resultados ao usurio atravs de tabelas, grficos e observaes sobre as condies encontradas. A partir dessas informaes possvel saber se a rede est configurada corretamente ou se so necessrias alteraes em sua configurao. Palavras-chave: parmetros de QoS. redes de computadores. testes.

ABSTRACT
In recent years, has been a growth in network applications that use multimedia resources like real time video, VoIP (Voice over IP), video conference, telemedicine and many more. These applications typically require of the network through where passing have parameters of quality of service (QoS) well defined, what requires that many installations and network configurations currently being performed to obtain this guarantee of quality for some services. Thus, this work have the objective to develop an environment for testing, an automated way, if the configuration of a network is in according to the parameters required by the applications, based in information provided by user. All development of the system was performed using as a base the Linux operating system and software such as ping, iperf, Apache, PHP and MySQL. Through a Web interface, the user informs the quality parameters of the network that want to evaluate. After user's confirming, the system automatically configures all the software involved and conducts a test in the background during the time set by user. At the end of the test, the system evaluates the information obtained and reports the results to the user through tables, graphs and comments on the conditions found. From this information it is possible to know if the network is configured correctly or if changes are required in your configuration. Keywords: QoS parameters. computer networks. tests.

LISTA DE FIGURAS

FIGURA 1 - Camadas TCP/IP ................................................................................................. 15 FIGURA 2 - Diagrama geral dos casos de uso ......................................................................... 35 FIGURA 3 - Diagrama de seqncia de um teste completo ..................................................... 37 FIGURA 4 - Diagrama de classes............................................................................................. 38 FIGURA 5 - Estrutura de dados ............................................................................................... 39 FIGURA 6 - Diagrama do laboratrio de teste ......................................................................... 40 FIGURA 7 - Laboratrio de testes viso geral ......................................................................... 43 FIGURA 8 - Laboratrio de testes roteadores .......................................................................... 43 FIGURA 9 - Grfico de atraso no teste 3 do cenrio 2............................................................. 45 FIGURA 10 - Grfico de atraso no teste 2 do cenrio 2........................................................... 45 FIGURA 11 - Grfico de atraso no teste 1 do cenrio 3 ........................................................... 47 FIGURA 12 - Grfico de atraso no teste 2 do cenrio 3........................................................... 47

LISTA DE TABELAS

TABELA 1 - Classes de servio ITU-T .................................................................................... 21 TABELA 2 - Classes de servio e limites mximos ................................................................. 22 TABELA 3 - Configuraes dos fluxos de dados no cenrio 1 ................................................ 41 TABELA 4 - Configuraes dos fluxos de dados no cenrio 2 ................................................ 41 TABELA 5 - Configuraes dos fluxos de dados no cenrio 3 ................................................ 42 TABELA 6 - Resultados esperados nos testes no cenrio 1 ..................................................... 44 TABELA 7 - Resultados dos testes no cenrio 1 ...................................................................... 44 TABELA 8 - Resultados esperados nos testes no cenrio 2 ..................................................... 45 TABELA 9 - Resultados dos testes no cenrio 2 ...................................................................... 46 TABELA 10 - Resultados esperados nos testes no cenrio 3 ................................................... 47 TABELA 11 - Resultados dos testes no cenrio 3 .................................................................... 48

LISTA DE ABREVIATURAS E SIGLAS


AF Assured Forwarding BTC Bulk Transport Capacity Diffserv - Differentiated Service DS Differentiated Service DSCP - Diffserv code point EF Expedited Forwarding FIFO First In, First Out IETF Internet Engineering Task Force Intserv Integrated Services IP Internet Protocol IPDV IP Delay Variation IPER IP Packet Errored Ratio IPLR IP Packet Loss Ratio IPTD IP Transfer Delay IPPM IP Performance Metrics ISO International Organization for Standardization ITU International Telecommunication Union ITU-T ITU Telecommunication Standardization Sector OWD One-Way Delay PHB Per-Hop Behaviors PHP Hypertext Preprocessor QoS Quality of Service RFC Request for Comments RSVP Resource Reservation Protocol RTD Round Trip Delay RTT Round Trip Time SLA Service Level Agreements TCP Transmission Control Protocol TOS Type of Service UDP User Datagram Protocol UML Unified Modeling Language

UTC Coordinated Universal Time VOIP Voice over IP WFQ Weighted Far Queue

SUMRIO

1 INTRODUO ................................................................................................................... 12 1.1 OBJETIVOS ....................................................................................................................... 13 1.2 ORGANIZAO DO TRABALHO ................................................................................. 13 2 ASPECTOS TERICOS .................................................................................................... 15 2.1 ARQUITETURA INTERNET E TCP/IP ............................................................................ 15 2.2 QUALIDADE DE SERVIO ............................................................................................ 16 2.2.1 Parmetros de QoS .......................................................................................................... 17 2.2.1.1 Confiabilidade .............................................................................................................. 17 2.2.1.2 Delay............................................................................................................................. 18 2.2.1.3 Jitter .............................................................................................................................. 19 2.2.1.4 Throughput ................................................................................................................... 20 2.2.1.5 Classes de Servio ........................................................................................................ 21 2.2.2 Tcnicas para Alcanar Qualidade de Servio ................................................................ 22 2.2.2.1 Superdimensionamento ................................................................................................ 22 2.2.2.2 Armazenamento em Buffers.......................................................................................... 23 2.2.2.3 Modelagem de Trfego ................................................................................................. 23 2.2.2.4 Mecanismos de Escalonamento .................................................................................... 24 2.2.2.4.1 FIFO .......................................................................................................................... 24 2.2.2.4.2 Prioridade .................................................................................................................. 25 2.2.2.4.3 Varredura Cclica ....................................................................................................... 25 2.2.2.4.4 WFQ .......................................................................................................................... 25 2.2.2.5 Mecanismos de Regulao ........................................................................................... 26 2.2.2.5.1 Algoritmo de Balde Furado ....................................................................................... 26 2.2.2.5.2 Algoritmo de Balde de Smbolos ............................................................................... 27

2.2.3 Servios Integrados e Servios Diferenciados ................................................................ 27 2.2.3.1 Servios Integrados ...................................................................................................... 27 2.2.3.2 Servios Diferenciados ................................................................................................. 28 2.2.3.3 Intserv X Diffserv ......................................................................................................... 29 2.2.4 Utilizao de QoS em redes ............................................................................................. 30 3 METODOLOGIA ................................................................................................................ 32 3.1 FERRAMENTAS ............................................................................................................... 32 3.2 DESENVOLVIMENTO ..................................................................................................... 33 3.3 REQUISITOS ..................................................................................................................... 34 3.4 CASOS DE USO ................................................................................................................ 35 3.4.1 Iniciar Teste Lado Mestre ................................................................................................ 35 3.4.2 Iniciar Teste Lado Escravo .............................................................................................. 36 3.4.3 Iniciar Testes Anteriores .................................................................................................. 36 3.5 DIAGRAMAS DE SEQNCIA ...................................................................................... 36 3.6 DIAGRAMA DE CLASSES .............................................................................................. 38 3.7 MODELAGEM DE DADOS ............................................................................................. 38 3.8 METODOLOGIA DE TESTES ......................................................................................... 39 3.9 LABORATRIO DE TESTES .......................................................................................... 40 3.10 CENRIOS DE TESTES ................................................................................................. 40 3.10.1 Cenrio 1 ....................................................................................................................... 40 3.10.2 Cenrio 2 ....................................................................................................................... 41 3.10.3 Cenrio 3 ....................................................................................................................... 41 3.11 REALIZAO DOS TESTES......................................................................................... 42 4 RESULTADOS E DISCUSSES ....................................................................................... 44 4.1 RESULTADOS NO CENRIO 1 ...................................................................................... 44 4.2 RESULTADOS NO CENRIO 2 ...................................................................................... 45 4.3 RESULTADOS NO CENRIO 3 ...................................................................................... 46

4.4 CONSIDERAES SOBRE OS RESULTADOS ............................................................. 48 5 CONCLUSO...................................................................................................................... 50 5.1 EXTENSES ..................................................................................................................... 50 REFERNCIAS ..................................................................................................................... 52 REFERNCIAS CONSULTADAS ....................................................................................... 54 APNDICES ........................................................................................................................... 55 APNDICE A SHELL SCRIPT PARA TRATAMENTO DOS DADOS GERADOS PELO IPERF: APAGARESUMO.SH .................................................................................. 56 APNDICE B SHELL SCRIPT PARA TRATAMENTO DOS DADOS GERADOS PELO PING: PINGS.SH........................................................................................................ 57 APNDICE C AGENTE ESCRAVO: SERVIDOR.PHP ................................................ 58 APNDICE D SCRIPT PHP PARA ARMAZENAR DADOS DO TESTE E FLUXO NA BASE DE DADOS E INICIALIZAR O AGENTE MESTRE: SALVAR_TESTE.PHP .................................................................................................................................................. 61 APNDICE E AGENTE MESTRE: CLIENTE.PHP ...................................................... 63 APNDICE F SCRIPT PHP PARA GERAR GRAFICOS: GERA_GRAFICO.PHP .. 67 APNDICE G PAGINA PHP COM OS RESULTADOS E GRFICOS DO TESTE: RESULTADOS_TESTE.PHP ................................................................................................ 72 APNDICE H RESULTADOS COMPLETOS DO LABORATRIO DE TESTES ... 75 APNDICE I EXEMPLOS DE TELAS DE EXECUO DO SISTEMA ................... 91 APNDICE J CONFIGURAES DOS ROTEADORES ............................................ 95

12

1 INTRODUO

Nos ltimos anos, houve um crescimento em aplicaes de rede que utilizam recursos multimdia, como vdeo em tempo real, VoIP , videoconferncia, telemedicina e muitas outras. Essas aplicaes normalmente tm como caracterstica uma taxa de transmisso de dados constante e as comunicaes ocorrem utilizando-se da infra-estrutura da Internet. Entretanto, em particular as aplicaes de multimdia, so muito sensveis ao atraso fim-a-fim e a variao do atraso, mas podem tolerar perdas de dados ocasionais [1]. O modelo da Internet trabalha com o sistema de melhor esforo, compartilhando a largura de banda entre todos os servios. Com a implantao de qualidade de servio (QoS) em uma rede, por outro lado, possvel que aplicaes de multimdia e de tempo real tenham um bom desempenho e funcionem de forma adequada. Com o aumento da utilizao dessas tecnologias que requerem cada vez mais qualidade de servio, muitas empresas esto instalando em suas redes equipamentos com capacidade de prover essa qualidade de servio, sendo necessrias ferramentas para testar e verificar se os equipamentos instalados e as configuraes realizadas esto funcionando da maneira correta. Para a realizao de testes de QoS so necessrios equipamentos especficos e normalmente com custo elevado, como os equipamentos OneTouch Series II Network Assistant [2] da empresa Fluke Networks [3] ou o SmartClass Ethernet [4] da empresa JDSU [5], que so a linha bsica de equipamentos de testes desses fabricantes e realizam testes com somente um fluxo de dados, sendo assim no permitem testar os parmetros de QoS de forma completa, apenas de um fluxo, no o comportamento com diferentes fluxos, e j apresentam custos elevados. J equipamentos capazes de realizar testes com vrios fluxos de forma simultnea como o EtherScope Series II Network Assistant [6] da fabricante Fluke Networks ou a srie T-BERD/MTS [7] da JDSU, possuem um custo muito maior, muitas vezes inviveis para algumas empresas. Uma alternativa para realizao desses tipos de teste a utilizao de vrios computadores para gerar fluxos diferentes e coletar dados manualmente para criar e formatar relatrios com os resultados dos testes. Normalmente, os testes so realizados utilizando a ferramenta iperf para gerar os fluxos de dados em computadores diferentes. Como uma ferramenta que no possui interface grfica e somente funciona em modo texto, necessrio aps a sua execuo copiar a sada de dados no prompt e format-los para uma melhor

13 apresentao. Em alguns casos so utilizados vrios fluxos em um mesmo computador, sendo necessrio inserir as marcas de QoS para distinguir os fluxos; o iperf capaz de realizar essa tarefa. Porm, uma desvantagem nesse tipo de testes que alm de exigir vrios computadores, necessrio realizar diversas configuraes, executar vrios comandos em modo texto e criar o relatrio manualmente atravs da captura dos dados nos diversos computadores utilizados. Nesse contexto, uma ferramenta baseada em software livre que realize o teste e gere relatrios de forma automatizada, aliada a no necessidade de vrios computadores, traria uma maior agilidade e reduo nos custos desses procedimentos.

1.1 Objetivos

Este trabalho tem por objetivo implementar um ambiente de testes automatizados para avaliar parmetros de QoS em redes de comunicao de dados, utilizando ferramentas baseadas em software livre. Os parmetros avaliados sero atraso, variao de atraso, perda de pacotes e garantia de banda.

1.2 Organizao do Trabalho

Primeiramente ser apresentada, na seo de Aspectos Tericos, a fundamentao terica sobre qualidade de servio em redes e telecomunicaes, incluindo seus parmetros principais, tcnicas para prov-la em redes, uma anlise sobre as principais arquiteturas e como a qualidade de servio est sendo implantada e utilizada atualmente. Em seguida, a seo de Metodologia apresenta as ferramentas e a metodologia utilizada no desenvolvimento dos softwares que compem o sistema, alm da documentao do sistema segundo a abordagem UML. Na seo de Testes e Resultados sero detalhados os cenrios de testes e a realizao dos mesmos. Tambm sero mostrados os resultados obtidos e uma anlise sobre eles. Por fim, as Concluses apresentam os objetivos alcanados, o que pde ser aprendido

14 durante o desenvolvimento e quais as principais contribuies desse projeto.

15

2 ASPECTOS TERICOS

Esse captulo apresenta a fundamentao terica para o desenvolvimento do sistema e anlise dos seus resultados.

2.1 Arquitetura Internet e TCP/IP

O modelo de referncia TCP/IP utilizado como base para a Internet. um modelo de quatro camadas sendo elas: Fsica/Enlace, Rede, Transporte e Aplicao. A Figura 1 apresenta um diagrama que representa as quatro camadas TCP/IP.

FIGURA 1 - Camadas TCP/IP

Os protocolos da Internet so uma sute de protocolos, onde os mais conhecidos so o TCP e o IP, que devido a sua popularidade deram o nome ao modelo de referncia da Internet. Essa sute de protocolos inclui, alm do TCP/IP, muitos outros protocolos divididos nas trs camadas superiores do modelo de referncia TCP/IP [8].

16 A camada de rede da Internet fornece um nico modelo de servio conhecido como servio de melhor esforo. Com o servio de melhor esforo, no h garantia de que a temporizao entre pacotes seja preservada, no h garantias de que os pacotes sejam recebidos na ordem que foram enviados e no h garantia da eventual entrega dos pacotes transmitidos [1]. Ainda, o servio de melhor esforo compartilha a largura de banda entre todos os servios, os pacotes so encaminhados da melhor forma possvel e quando h congestionamento, os pacotes so descartados sem distino.

2.2 Qualidade de Servio

Segundo Oodan et al. [9], qualidade pode ser definida e expressada em termos de parmetros que indicam benefcios para o usurio. Esses parmetros podem ser expressos de forma quantitativa ou qualitativa. Um conjunto de critrios de qualidade que contm os benefcios de um produto ou servio para o usurio. A ISO define qualidade na norma ISO 8402 como A totalidade das caractersticas de uma entidade que lhe conferem a capacidade de satisfazer necessidades explcitas e implcitas [10]. A ITU define Qualidade de Servio (QoS) na recomendao E.800, como sendo o efeito coletivo provocado pelas caractersticas de desempenho de um servio, determinando o grau de satisfao do usurio do servio [11]. A IETF considera como QoS a capacidade de segmentar o trfego ou de diferenciar tipos de trfego para que a rede trate esses fluxos de forma diferente dos outros. Assim, QoS engloba tanto a qualificao do servio quanto o desempenho global da rede para cada categoria. Do ponto de vista da rede, QoS a habilidade de um elemento de rede (por exemplo, uma aplicao, host ou roteador) de ter diferentes nveis de garantia para que o requisitos de trfego e servio possam ser satisfeitos, gerenciando a banda de acordo com a demanda dos servios e das configuraes da rede [12]. A implantao de qualidade de servio (QoS) em uma rede, baseada na arquitetura da Internet, o que permite que aplicaes de multimdia e de tempo real tenham um bom desempenho e funcionem de forma adequada. Com o uso de QoS, os pacotes so marcados para distinguir os tipos de servios e os roteadores so configurados para criar filas distintas

17 para cada aplicao, de acordo com as prioridades das mesmas. Assim, uma faixa da largura de banda reservada e, no caso de congestionamento, determinados tipos de fluxos de dados ou aplicaes tm prioridade na entrega. A qualidade de servio medida fim-a-fim. Mesmo que a rede seja formada por vrios elementos, o desempenho individual de cada elemento no levado em considerao na anlise da qualidade de um servio. A QoS especfica para cada servio e expressa por um conjunto nico de parmetros [12].

2.2.1 Parmetros de QoS

Em uma rede IP, uma seqncia de pacotes, desde uma origem at um destino, chamada de fluxo. As necessidades de cada fluxo podem ser caracterizadas por quatro parmetros principais: confiabilidade (perda de pacotes), atraso fim-a-fim (delay), variao do atraso (jitter) e largura de banda (throughput). Juntos esses parmetros definem a QoS que o fluxo exige [13]. Atualmente existem dois grupos de trabalhos principais trabalhando na definio de padres de mtricas para medio de Qualidade de Servio em redes IP, a IPPM e a ITU-T [14]. A IPPM parte da IETF, e sua tarefa desenvolver critrios slidos para definir todos os conceitos relacionados mtricas de desempenho. Seu foco no desenvolvimento de padres de mtricas que possam ser aplicados em medies de qualidade, desempenho e confiabilidade de comunicaes na Internet. J a ITU-T usa uma abordagem mais terica e genrica [14].

2.2.1.1 Confiabilidade

Segundo Tanenbaum [13], a confiabilidade em redes IP est relacionada capacidade da mesma em entregar os pacotes transmitidos sem erros e sua medida a quantidade de pacotes perdidos ou com erro. A quantidade de pacotes perdidos pode ser obtida atravs da comparao do nmero de pacotes transmitidos pela origem com o nmero de pacotes

18 recebidos no destino, sendo o ideal que no existam perdas de pacotes, mas isso nem sempre possvel. Nenhum bit de um pacote pode ser entregue de forma incorreta. Em geral, esse objetivo alcanado calculando-se o total de verificao de cada pacote na origem e conferindo-se o total de verificao no destino [13]. Segundo Kurose e Ross [1], em uma rede vrios fatores podem contribuir para que um pacote no seja entregue ou faa com que ele seja descartado: um erro no roteamento pode levar o pacote a um destino errado ou no encontrar o destino correto; a queda de um enlace durante a transmisso do pacote ou o excesso de trfego em um roteador pode lotar os seus buffers de sada, causando o descarte do pacote. Diferentes tipos de aplicaes podem ser mais ou menos tolerantes a falhas. Aplicaes de multimdia como, por exemplo, VOIP, dependendo da forma como a voz codificada e de como a perda tratada no receptor, capaz de funcionar com taxas de at 20% de perda de pacotes [1]. J aplicaes como correio eletrnico ou transferncia de arquivos no podem ter fragmentos das informaes perdidas [13]. De acordo com Kurose e Ross [1], vemos que a perda de pacotes pode ser contornada utilizando-se o protocolo TCP, pois o mesmo realiza a retransmisso dos pacotes perdidos, mas essa retransmisso aumenta o atraso fim-a-fim, o que no pode ser aceitvel em alguns tipos de aplicaes, por exemplo, videoconferncia. A perda de pacotes sempre analisada em uma direo, pois o trfego em redes IP pode ser assimtrico, isto , o caminho de resposta nem sempre o mesmo do de envio, e porque algumas aplicaes de tempo real e UDP so unidirecionais [14]. Enquanto a IPPM considera pacotes perdidos e pacotes com erro como uma nica mtrica, a ITU-T define a mtrica IP Packet Loss Ratio para os pacotes perdidos e a IP Packet Errored Ratio para pacotes com erro [14].

2.2.1.2 Delay

Delay, ou atraso fim-a-fim, o acmulo de atrasos de processamento, atrasos de transmisso, atraso de filas, atraso de propagao nos enlaces e atrasos de processamento em sistemas finais [1]. Segundo Braun et al. [14], podemos considerar dois tipos de atraso: One-Way Delay, representa o atraso em uma nica direo, isto , do host de

19 origem ao host de destino, o tempo que se passa desde que o primeiro bit deixa a origem at que o ltimo bit chegue ao destino. Um problema crtico nessa abordagem que ambos os hosts, destino e origem, precisam estar com os relgios sincronizados com preciso, utilizando, por exemplo, uma fonte de tempo UTC e nem sempre isso possvel [14]; Round-Trip Delay, que a soma do atraso nas duas direes, do envio do pacote da origem ao destino e a reposta na direo contraria. Utiliza as marcas de tempo na origem e obtido atravs da diferena entre o tempo de envio e o tempo de resposta [14]. Como no necessita de sincronismo de tempo entre os hosts, mais fcil de ser medido. Muitas aplicaes realizam esse tipo de medio, por exemplo, a ferramenta ping. Essa mtrica tambm conhecida como Round Trip Time. O atraso uma mtrica muito importante, pois descreve o grau de interatividade e a demora de uma comunicao [14]. Por exemplo, para aplicaes de udio altamente

interativas, como o telefone por Internet, atrasos fim-a-fim menores do que 150 ms no so percebidos pelo ouvido humano; atrasos entre 150 ms e 400 ms podem ser aceitveis, mas no so o ideal, e atraso que excedem 400 ms podem atrapalhar seriamente a interatividade [1]. J aplicaes no interativas, como transferncia de arquivos e correio eletrnico, no so sensveis ao atraso. Se todos os pacotes estiverem uniformemente atrasados alguns segundos, no haver nenhum dano [13]. A IPPM utiliza as duas mtricas, OWD e RTD, j a ITU-T define apenas a mtrica IP Transfer Delay com as mesmas caractersticas da mtrica One-Way Delay [14].

2.2.1.3 Jitter

A variao de atraso nos tempos de chegada de pacotes chamada de jitter [4]. Variao de atraso de pacote significa que os pacotes experimentam atrasos diferentes dentro da mesma corrente de pacotes [1]. Segundo Kurose e Ross [1], a principal causa da ocorrncia de jitter so os atrasos aleatrios de fila nos roteadores, isto , pacotes do mesmo fluxo podem passar mais ou menos tempo na fila de sada dos roteadores no caminho. O jitter afeta principalmente aplicaes de multimdia como udio e vdeo. Se o

20 receptor ignorar a presena de variao de atraso e reproduzir as pores de dados assim que elas chegam, ento a qualidade de udio ou vdeo poder facilmente se tornar ininteligvel no receptor [1]. De acordo com Kurose e Ross [1], algumas tcnicas podem ser utilizadas para tentar eliminar a variao de atraso, como a utilizao de nmeros de seqncia, marcas de tempo e atraso de reproduo (utilizao de buffers). Em algumas aplicaes, como vdeo por demanda, o jitter pode ser eliminado pelo armazenamento em buffer no receptor, seguido pela busca de dados para exibio no buffer, e no na rede em tempo real. No entanto, para outras aplicaes, em especial aquelas que exigem interao em tempo real entre pessoas, como telefonia via Internet e videoconferncia, o retardo inerente do armazenamento em buffer no aceitvel [13]. Segundo Braun et al. [14], tanto a ITU-T quanto a IPPM utilizam o mesmo termo para variao de atraso, IP Delay Variation. Ele definido como a diferena do atraso de um par de pacotes de um mesmo fluxo, no so especificados quais pacotes devem ser usados, mas normalmente so utilizados pacotes consecutivos. O IPDV um nmero real, positivo ou negativo, e s pode ser definido com dois pacotes. Essa mtrica define os limites mnimos dos buffers de recepo e importante para interatividade (buffers pequenos) e qualidade da comunicao (pacotes muito atrasados so perdidos). A ITU-T define para classes de trfego de tempo real o limite mximo de 50 ms de variao de atraso. Conforme Braun et al. [14], nas definies da IPPM e da ITU-T, o IPDV diferente do jitter. O jitter obtido atravs da diferena entre o atraso em uma direo de um pacote especifico e a mdia do atraso em uma direo dos pacotes em um intervalo de tempo.

2.2.1.4 Throughput

Segundo Dattatreya [15], a definio geral para throughput de qualquer sistema a taxa de produo de sadas bem sucedidas. Em comunicao de dados, a taxa total de bits, calculada usando todos os bits dos pacotes recebidos corretamente. Throughput tambm pode ser representado como largura de banda e, de acordo com Tanenbaum [13], diferentes tipos de aplicaes tm necessidades de largura de banda diferentes, correio eletrnico e login remoto, por exemplo, no exigem muita largura de banda, j todas as aplicaes de vdeo necessitam de um grande volume desse recurso.

21 A IPPM define a mtrica Bulk Transport Capacity, e a define como a capacidade mxima de transporte de um link utilizando uma nica conexo com um protocolo com preveno de congestionamento (isto , TCP), onde todos os cabealhos, retransmisses ou perdas so subtradas da performance geral. E fornece uma idia do mximo de performance do ponto de vista do usurio quando ocorrem transferncias de alto volume de trfego[14]. A unidade de medida de throughput em bits por segundo (bps), podendo tambm ser expressa em Kbps, Mbps, Gbps, etc. [14]. O throughput obtido dividindo o nmero de bits transmitidos com sucesso pelo tempo em segundos transcorridos entre o inicio e o fim da transmisso.

2.2.1.5 Classes de Servio

Varias grupos de criao de padres tentam dividir os servios em categorias (Classes de Servio de QoS). A ITU-T sugere a definio de seis classes resumidas na Tabela 1.
TABELA 1 - Classes de servio ITU-T

Classe de Servio 0 1 2 3 4 5

Caractersticas Tempo real, sensvel ao jitter, altamente interativa Tempo real, sensvel ao jitter, interativa Transao de dados, altamente interativa Transao de dados, interativa Baixa perda (transferncia de dados, streaming de vdeo) Aplicaes padro de redes IP

Segundo Marchese [12], a ITU-T define na recomendao Y.1541 classes de servio genricas baseadas nos parmetros de QoS apresentados anteriormente. Nessa recomendao, a ITU-T associa cada parmetro (IPTD, IPDV, IPLR e IPER) a um limite mximo para o mesmo em cada classe de servio, que refletem os requisitos para os diferentes tipos de aplicao. Os valores para cada classe de servio podem ser vistos na Tabela 2.

22
TABELA 2 - Classes de servio e limites mximos

Classe de Servio IPTD (ms) IPDV (ms) 0 1 2 3 4 5 100 400 100 400 1000 N* 50 50 N* N* N* N*

IPLR

IPER

1x10-3 1x10-4 1x10-3 1x10-4 1x10-3 1x10-4 1x10-3 1x10-4 1x10-3 1x10-4 N* N*

*N No especificado

2.2.2 Tcnicas para Alcanar Qualidade de Servio

Na seo 2.2.1 foram identificados os requisitos de qualidade de servio. Nesta seo sero apresentadas as tcnicas que podem ser utilizadas para garantir os requisitos e prover qualidade de servio.

2.2.2.1 Superdimensionamento

Uma soluo prtica para garantir a qualidade de servio fornecer tanta capacidade de roteadores, tanto de espao de buffers e tanta largura de banda que os pacotes simplesmente so transmitidos com enorme facilidade [13]. Segundo Marchese [12], existe um erro em pensar que o superdimensionamento vai solucionar todos os problemas de QoS, e que aumentar a largura de banda uma soluo mais simples que fazer o gerenciamento da qualidade de servio. Portanto, o

superdimensionamento no pode ser visto realmente com uma soluo, pois ainda ser necessrio o gerenciamento da qualidade de servio para poder garantir os requisitos de

23 qualidade de servio, por exemplo, em um caso em que ocorram muito mais acessos a um sistema do que o previsto e a largura de banda seja insuficiente. E segundo Tanenbaum [13], no superdimensionamento existe outro problema relacionado ao custo, pois necessrio adquirir uma quantidade enorme de equipamentos e largura de banda.

2.2.2.2 Armazenamento em Buffers

Em Tanenbaum [13], vemos que os fluxos podem ser armazenados em buffers no lado receptor antes de serem entregues para as aplicaes, isto , os pacotes chegam ao destino e ficam armazenados no buffer e, aps algum tempo, so entregues s aplicaes de forma constante. Segundo Tanenbaum [13], o armazenamento dos fluxos em buffers no afeta a sua confiabilidade e no causa impacto na utilizao da largura de banda, mas aumenta o atraso dos pacotes tendo em vista que os pacotes s so entregues as aplicaes aps algum tempo. A vantagem desta tcnica a suavizao do jitter, pois os pacotes s sofrero atrasos na entrega para as aplicaes caso ocorra um atraso muito alto na rede e o buffer fique vazio. Em algumas aplicaes como udio e vdeo por demanda, a variao no atraso o principal problema, portanto, essa tcnica auxilia muito na qualidade deste tipo de servio.

2.2.2.3 Modelagem de Trfego

A modelagem de trfego est relacionada regulagem da taxa e do volume de transmisso de dados [13]. A tcnica de modelagem de trfego suaviza o trfego no lado transmissor fazendo com que os pacotes sejam enviados a uma taxa constante. Segundo Tanenbaum [13] quando uma conexo configurada, deve ser determinado um padro de trfego, ou seja, uma forma para essa conexo. A modelagem de trfego policia os fluxos de dados limitando a largura de banda para uma taxa acordada, isto , faz com que os fluxos fiquem dentro da forma prevista [12].

24 Com a modelagem de trfego possvel reduzir o congestionamento na rede, pois os dados sero transmitidos de forma constante a uma taxa mxima. Este fator de grande importncia no caso da transmisso de dados em tempo real, como conexes de udio e vdeo, que tm requisitos estritos de qualidade de servio [13].

2.2.2.4 Mecanismos de Escalonamento

O modo como os pacotes enfileirados so selecionados para transmisso pelo enlace conhecido como disciplina de escalonamento [1]. Segundo Marchese [12], o escalonamento de pacotes especifica a poltica de servios de uma fila em um n, isto , o escalonamento decide a ordem que ser utilizada para escolher os pacotes que sero transmitidos sobre um canal. Ele tambm uma parte importante quando se fala de qualidade de servio, podendo causar grande impacto em diferentes parmetros de QoS, como atraso, jitter e perda de pacotes. A seguir sero apresentadas as mais importantes disciplinas de escalonamento.

2.2.2.4.1 FIFO

A disciplina de escalonamento FIFO seleciona pacotes para transmisso pelo enlace na mesma ordem em que eles chegaram fila de sada do enlace [1]. Isto , o primeiro pacote a chegar a um n ser o primeiro a ser transmitido. Segundo Kurose e Ross [1], como os buffers em um n so finitos, se um pacote chega fila de sada e ela est cheia, o n utilizar uma poltica de descarte e determinar se o pacote ser descartado ou se outro pacote ser retirado da fila para dar espao aoque est chegando. E Peterson e Davie [16] dizem que essa ao tomada sem levar em conta a qual fluxo o pacote pertence ou o quanto ele importante.

25

2.2.2.4.2 Prioridade

Segundo Peterson e Davie [16], a disciplina de escalonamento por prioridade uma variao bsica da disciplina FIFO, onde a idia marcar cada pacote com uma prioridade; essa marca pode ser carregada, por exemplo, no campo TOS do cabealho IP. E os roteadores implementam mltiplas filas, normalmente do tipo FIFO, para cada prioridade. De acordo com Kurose e Ross [1], na disciplina de escalonamento por prioridade um n ao transmitir um pacote, sempre ser escolher um da classe de prioridade mais alta que a fila no esteja vazia, isto , que tenha pacotes esperando para serem transmitidos. Para Peterson e Davie [16], um problema com o escalonamento por prioridade que enquanto a fila com a maior prioridade tiver ao menos um pacote para transmisso, as outras filas no sero atendidas, podendo causar inanio nas outras filas.

2.2.2.4.3 Varredura Cclica

Na disciplina de escalonamento por varredura cclica os pacotes so classificados do mesmo modo que no escalonamento por prioridade. Contudo, em vez de haver uma prioridade estrita de servio entre as classes, um escalonador de varredura cclica alterna servios entre as classes [1]. Isto , o escalonador transmite um pacote da classe um e em seguida um pacote da classe dois, e volta a transmitir um pacote da classe um, seguido de outro classe dois e assim por diante. Caso uma fila de uma classe esteja vazia transmitido um pacote de outra fila.

2.2.2.4.4 WFQ

A disciplina de escalonamento Weighted Far Queue, segundo Peterson e Davie [16], uma implementao de uma variao do escalonamento por varredura cclica, que permite que sejam atribudos pesos para cada classe. E tem considervel utilizao nas arquiteturas com

26 QoS atuais [1]. Segundo Kurose e Ross [1], um escalonador WFQ atende as classes de modo cclico, assim como na varredura cclica, mas cada classe receber uma frao de tempo igual ao seu peso divido pelo somatrio dos pesos de todas as classes que tenham pacotes para transmitir.

2.2.2.5 Mecanismos de Regulao

Regulao o ajuste da taxa com a qual permitido que um fluxo injete pacotes na rede e uma das pedras fundamentais de qualquer arquitetura com QoS [1]. Segundo Kurose e Ross [1], as caractersticas da taxa de pacotes reguladas em um fluxo so: Taxa mdia: nmero de pacotes enviados em um intervalo de tempo; Taxa de pico: nmero mximo de pacotes que podem ser enviados durante um perodo curto de tempo; Tamanho da rajada: nmero mximo de pacotes que podem ser enviados em um intervalo de tempo extremamente curto. Podemos ver em Marchese [12] que existem dois mtodos bsicos para regulao, os quais sero apresentados a seguir.

2.2.2.5.1 Algoritmo de Balde Furado

De acordo com Tanenbaum [13], o algoritmo de balde furado consiste de uma fila finita. Quando um pacote chega a um n, se houver espao na fila, ser includo nela; caso contrrio, ele ser descartado. O balde transmite para a rede os bytes dos pacotes a uma taxa constante. Ainda, segundo Tanenbaum [13], esse tratamento faz com que os pacotes saiam do n a uma taxa constante, independente da forma como chegam at ele, isto , ele transforma um fluxo de pacotes irregulares em um fluxo de pacotes regular.

27

2.2.2.5.2 Algoritmo de Balde de Smbolos

O algoritmo do balde furado impe um padro rgido taxa mdia, independente da irregularidade do trfego. Em muitas aplicaes melhor permitir que a sada aumente um pouco sua velocidade quando chegarem rajadas maiores; assim, necessrio um algoritmo mais flexvel, de preferncia um que nunca perca dados [13]. Um algoritmo como esse, o do balde de smbolos. O algoritmo do balde de smbolos similar ao do balde furado, mas sua implementao diferente. De acordo com Marchese [12], smbolos so gerados a uma taxa constante e colocados no balde. Quando um pacote entra na fila para ser transmitido, ele precisa pegar um smbolo para cada byte que possui, consumindo o smbolo do balde. Um byte s pode ser transmitido se existirem smbolos no balde, caso contrrio deve esperar at que um novo smbolo seja inserido no balde. Segundo Tanenbaum [13], o algoritmo do balde de smbolos possibilita um tipo de modelagem de trfego diferente do algoritmo do balde furado, pois permite que fluxos inativos ou com baixa atividade economizem smbolos para futuras rajadas de trfego. O balde de smbolos tem um tamanho finito e descarta smbolos quando o balde est cheio, mas nunca descarta pacotes [13].

2.2.3 Servios Integrados e Servios Diferenciados

Nesta seo sero apresentadas as principais arquiteturas de QoS: Servios Integrados (Intserv) e Servios Diferenciados (Diffserv). Elas representam padres correntes da IETF para prover qualidade de servio e incorporam os princpios e os mecanismos apresentados nas sees anteriores.

2.2.3.1 Servios Integrados

28

Entre 1995 e 1997, a IETF dedicou um grande esforo criao de uma arquitetura para multimdia de fluxo. Este trabalho resultou em mais de duas dezenas de RFCs, comeando com as RFCs 2205 a 2210. O nome genrico deste trabalho algoritmos baseados no fluxo ou servios integrados [13]. Segundo Kurose e Ross [1], a arquitetura de servios integrados (Intserv) possui duas caractersticas fundamentais: Recursos reservados: Um roteador deve saber qual a quantidade de recursos que j est reservada para sesses em andamento. Estabelecimento de chamada: Uma sesso que exige garantias de QoS deve primeiramente estar habilitada a reservar recursos suficientes em cada roteador da rede em seu trajeto entre a origem e destino. De acordo com Tanenbaum [13], o principal protocolo da IETF para a arquitetura de servios integrados o RSVP. Ele o protocolo empregado para fazer as reservas de recursos entre a origem e o destino do fluxo. Segundo Peterson e Davie [16], a arquitetura Intserv define duas grandes classes de servios: servios garantidos e servios de carga controlada. Em Kurose e Ross [1], vemos que a especificao de servio garantido definida na RFC 2212, e estabelece limites rgidos para atrasos de fila que um pacote sofrer em um roteador. J o servio de carga controlada receber, de acordo com a RFC 2211, uma qualidade de servio que se aproxima muito da QoS que o mesmo fluxo receberia de um elemento de rede que no tivesse carga.

2.2.3.2 Servios Diferenciados

A IETF padronizou arquitetura de servios diferenciados, descritas nas RFCs 2474 e 2475, como uma abordagem mais simples para oferecer qualidade de servio, uma estratgia que pode ser implementada em grande parte localmente em cada roteador, sem configurao antecipada e sem ter de envolver todo o caminho. Essa abordagem conhecida como qualidade de servio baseada na classe (em vez de ser baseada no fluxo) [13]. A arquitetura de servios diferenciados (Diffserv) flexvel, no sentido de que no define servios especficos nem classes de servios especficas. Em vez disso, ela fornece os

29 componentes funcionais, isto , as peas de uma arquitetura de rede com as quais esses servios podem ser montados [1]. A arquitetura Diffserv consiste em dois conjuntos de elementos funcionais: Funes de borda: classificao de pacotes e condicionamento do trfego. Na borda de entrada da rede os pacotes so marcados identificando a qual classe ele pertence. A marcao feita alterando o campo DS do cabealho do pacote. Caso o trfego esteja fora do padro acordado ele pode receber uma marcao diferente, de uma classe menos prioritria, ou ser descartado [1]. Funo central: envio. Quando um pacote marcado com DS chega a um roteador habilitado com Diffserv ele repassado at seu prximo salto de acordo com o comportamento por salto associado classe do pacote. O comportamento por salto influencia a maneira pela qual os buffers e a largura de banda de um roteador so compartilhados entre as classes de trfego concorrentes [1]. De acordo com Peterson e Davie [16], a IETF decidiu utilizar seis bits do campo TOS do cabealho IP para realizar a marcao dos pacotes, esses seis bits so chamados de DSCP. Eles mapeiam as classes de servio que definem o comportamento por salto (PHB) a ser aplicado ao pacote. Segundo Kurose e Ross [1], at agora foram definidos dois PHBs: um de repasse acelerado (EF) e um de repasse assegurado (AF) respectivamente pelas RFCs 3246 e 2597. O repasse acelerado dividido em duas classes, a do trfego regular e a do trfego de repasse acelerado [13]. E, segundo Braun et al. [14], deve-se assegurar que o trfego da classe de repasse acelerado receba uma taxa mnima de transmisso, independente da intensidade de outros tipos de trfego. De acordo com Tanenbaum [13], o repasse assegurado um pouco mais elaborado, definindo quatro classes de prioridade, alm de trs possibilidades de descarte de pacotes que estejam sofrendo congestionamento: baixo, mdio e alto. Assim, definindo doze classes de servio.

2.2.3.3 Intserv X Diffserv

O Intserv capaz de prover uma qualidade de servio parecida com as de tecnologias

30 de circuitos, atravs da reservas de recursos prvia. Segundo Tanenbaum [13], os algoritmos baseados no fluxo tm potencial para oferecer boa qualidade de servio a um ou mais fluxos, porque eles reservam quaisquer recursos necessrios ao longo da rota. Porm, eles tambm tm a desvantagem de exigirem uma configurao antecipada para estabelecer cada fluxo, algo que no se ajusta bem quando existem milhares ou milhes de fluxos. Alm disso, eles mantm o estado interno por fluxo nos roteadores e envolvem trocas complexas de roteador para roteador, a fim de configurar os fluxos. De acordo com Kurose e Ross [1], o Diffserv possui uma escalabilidade muito maior, pois no precisa manter os estados dos fluxos, isso porque seu comportamento determinado por salto e no fim-a-fim, isso uma diferena muito grande quando se trata de milhes de fluxos (um nmero comum na Internet atual). Ainda possui uma flexibilidade muito maior que a arquitetura Intserv na definio de classes, permitindo que sejam adicionadas ou retiradas classes sem afetar a que j esto em utilizao.

2.2.4 Utilizao de QoS em redes

Atualmente a maioria das conexes de acesso a Internet, principalmente os acessos residenciais, no possuem nenhum tipo de qualidade de servio oferecida. A nica garantia oferecida uma pequena porcentagem da largura de banda contratada. No caso de acessos corporativos o cenrio no muito diferente, mas a largura de banda garantida normalmente maior. Alguns provedores de servios de Internet vendem atualmente servios de acesso com garantias de qualidade de servio, mas de acordo com Xiao [17], essa garantia s vlida enquanto o trfego est dentro da rede do provedor de servio, quando passam por redes de outros provedores a QoS no pode ser garantida. Segundo Xiao [17], isso ocorre por que os provedores no possuem acordos para manter a qualidade de servio do trfego de outros provedores em sua rede, sendo o trfego proveniente de outros provedores tratados como servios de melhor esforo. A qualidade de servio oferecida pelos provedores de servios a usurio na forma de acordos de nvel de servio (SLA), onde so definidas as classes de servios oferecidas e os parmetros mximos de largura de banda, atraso, jitter e nmero de pacotes perdidos em uma

31 determinada classe ou conexo. No SLA tambm definido a forma como o usurio entregar os dados ao provedor, isso , marcao dos pacotes, taxa mdia, taxa de pico e tamanho mximo de rajadas. Caso o trfego entregue esteja fora do formato acordado o provedor de servios no ir garantir os nveis definidos no SLA [17]. Empresas e rgos pblicos tambm podem utilizar QoS dentro de suas redes privadas, priorizando aplicaes crticas ou que necessitem de algum nvel de qualidade de servio para um bom funcionamento, utilizando as tcnicas de QoS internamente.

32

3 METODOLOGIA

Neste capitulo apresentada a metodologia para o desenvolvimento do sistema e documentao do desenvolvimento, incluindo alguns conceitos da UML. Alm de definidos os cenrios e metodologia de testes.

3.1 Ferramentas

O desenvolvimento foi realizado utilizando o sistema operacional Linux, distribuio GNU/Debian, verso 5.0.4 codinome Lenny, disponvel em http://www.debian.org. Foi utilizado o software Apache verso 2.0 como servidor HTTP (http://www.apache.org) com o mdulo de suporte a linguagem PHP na verso 5.0 (http://www.php.net). Como servidor de banco de dados, foi utilizado o software MySQL verso 5 (http://www.mysql.com). O software utilizado pelo sistema para gerar os fluxos de dados o iperf verso 2.0.4 (http://sourceforge.net/projects/iperf/). Ele tambm ser responsvel por gerar os dados brutos com os resultados dos testes. A ferramenta de teste de redes ping em conjunto com ferramentas de shell scripts foi usada para registrar os dados de atraso dos fluxos. A sute NetBeans (http://netbeans.org/) foi utilizada para o desenvolvimento das pginas e scripts em PHP da interface web do sistema. Para gerar os grficos com os resultados dos testes foi utilizada a classe PHP pChart, disponvel em

http://pchart.sourceforge.net/. Todos os dados de configurao e resultados dos testes ficam armazenados em base de dados no servidor MySQL. E o software phpmyadmin (http://www.phpmyadmin.net) foi usado para a criao e manutenes na base de dados.

33

3.2 Desenvolvimento

Foram desenvolvidos scripts em shell script (Apndices A e B), utilizando o editor de texto gedit, para capturar as sadas geradas em arquivos de texto, retirar as informaes desnecessrias e inserir os dados relevantes na base de dados, para que possam ser utilizados futuramente para gerar os grficos e pgina de resultados a serem exibidos pela interface web. O shell utilizado para executar os scripts o bash. Foi desenvolvida uma interface web na linguagem PHP para a configurao dos testes e apresentao dos resultados. Alguns cdigos desenvolvidos podem ser vistos nos Apndices C a G. Durante o desenvolvimento foram utilizados equipamentos de rede, como roteadores e switchs, com capacidade de realizar QoS para verificar o funcionamento do sistema de testes automatizados. O desenvolvimento seguiu as seguintes fases: Instalao do sistema operacional e ferramentas necessrias para o

desenvolvimento e funcionamento do sistema; Testes das ferramentas iperf e ping; Desenvolvimento dos shell scripts que para tratamento dos resultados brutos do teste; Testes de funcionamento dos shell scripts; Desenvolvimento da interface web para configurao dos testes e relatrios automatizados; Testes da interface web; Laboratrio de testes com equipamentos de rede e diferentes configuraes de QoS e ajustes no software. Os diagramas da UML apresentados nesse trabalho foram desenvolvidos utilizando a ferramenta de desenho de diagramas DIA (http://live.gnome.org/Dia). O desenvolvimento do texto do trabalho ocorreu em paralelo ao desenvolvimento da aplicao. Algumas telas de exemplo de funcionamento do sistema encontram-se no Apndice I.

34

3.3 Requisitos

O sistema proposto visa permitir que sejam realizados testes de qualidade de servio em redes de comunicao de dados de forma automatizada e que sejam criados relatrios tambm de forma automatizada a partir dos resultados obtidos durante os testes. Os testes devero ser configurados para que seja possvel medir os parmetros definidos como essenciais para a qualidade de servio. O sistema ter duas formas de funcionamento, modo escravo e modo mestre. No modo escravo o usurio deve informar em qual endereo IP o sistema deve aguardar a conexo do sistema em modo mestre, aps a conexo sero trocadas informaes sobre os parmetros do teste e o escravo iniciar o envio de dados com o software iperf. No modo mestre o usurio informar os dados bsicos do testes como nome, nmero de fluxos, tempo de durao, tipo de marcao de pacotes e endereos IPs utilizados no teste. Em seguida, para cada fluxo, dever informar a qual classe de QoS ele pertence, a largura de banda e tamanhos dos pacotes. Aps a confirmao dos dados pelo usurio, o sistema no modo mestre ir se conectar ao sistema funcionando no modo escravo, enviar os parmetros dos testes e iniciar os softwares ping e iperf para receber os fluxos e gerar os arquivos com resultados. Aps a finalizao do testes ser responsvel por formatar e salvar os resultados e em seguida exibilos ao usurio. Todos os campos exibidos nas pginas de configurao so de preenchimento obrigatrio, com exceo do tempo de teste. Caso o usurio no fornea o tempo de durao do testes ser utilizado o tempo padro de sessenta segundos. O campo tamanho dos pacotes na configurao dos fluxos deve possuir um valor maior que 64 bytes. As marcas de QoS utilizadas nos fluxos devem ser digitadas em formato decimal. O sistema dever permitir que o usurio visualize os resultados de testes anteriores.

35

3.4 Casos de Uso

O sistema possui trs casos de uso, que podem ser observados na Figura 2.

FIGURA 2 - Diagrama geral dos casos de uso

3.4.1 Iniciar Teste Lado Mestre

Nome do Caso de Uso: Iniciar Teste Lado Mestre Ator Envolvido: Usurio PR-CONDIO 1 Ter acesso ao sistema.

Sistema de Teste de QoS

DESCRIO DO CASO 1 Clicar em iniciar novo Teste Mestre; 2 Inserir dados bsicos do teste; 3 Inserir dados dos fluxos; 4 Confirmar configuraes; 5 Se ocorrerem erros, fim. 6 Caso contrrio visualizar resultados. PS-CONDIO 1 Teste realizado. 2 Resultados exibidos.

36

3.4.2 Iniciar Teste Lado Escravo

Nome do Caso de Uso: Iniciar Teste Lado Escravo Ator Envolvido: Usurio PR-CONDIO 1 Ter acesso ao sistema

Sistema de Teste de QoS

DESCRIO DO CASO 1 Clicar em iniciar novo Teste Escravo; 2 Inserir dados do teste; 3 Se ocorrerem erros, fim. 4 Caso contrrio teste realizado com sucesso. PS-CONDIO 1 Teste realizado.

3.4.3 Iniciar Testes Anteriores

Nome do Caso de Uso: Visualizar Testes Anteriores Sistema de Teste de QoS Ator Envolvido: Usurio PR-CONDIO 1 Ter acesso ao sistema. 2 Existirem testes j realizados DESCRIO DO CASO 1 Clicar em iniciar Visualizar Resultados Anteriores; 2 Selecionar o teste desejado; 3 Visualizar resultados. PS-CONDIO 1 Resultados exibidos.

3.5 Diagramas de Seqncia

A Figura 3 mostra o diagrama de seqncia da execuo de um teste completo.

37

FIGURA 3 - Diagrama de seqncia de um teste completo

38

3.6 Diagrama de Classes

A Figura 4 apresenta do diagrama de classes do sistema desenvolvido.

FIGURA 4 - Diagrama de classes

3.7 Modelagem de Dados

A estrutura do banco de dados utilizada no sistema formada por sete tabelas: teste: armazena os dados bsicos e estados dos testes; fluxos_teste: contm as informaes especficas de cada fluxo do teste;

39 resultados_simples: armazena os resultados obtidos a partir das ferramentas iperf e ping; classe_qos: armazena os requisito mnimos para cada classe de servio. A Figura 5 apresenta a estrutura do banco de dados.

FIGURA 5 - Estrutura de dados

3.8 Metodologia de Testes

Para a realizao dos testes de funcionamento do software foram utilizados dois notebooks com sistema operacional Linux Debian, verso 5.0.4, e com todos os softwares necessrios para o funcionamento do sistema. Foram utilizados tambm dois roteadores AR1700 da empresa FTD Comunicao de Dados. Os testes foram realizados configurando os roteadores para prover a qualidade de servio especificada por cada cenrio e o software foi configurado para testar os parmetros de QoS de acordo com o proposto pelo cenrio.

40

3.9 Laboratrio de Testes

O laboratrio foi montado da forma apresentada da Figura 6, os roteadores foram conectados atravs da porta serial (WAN), utilizando o protocolo PPP. E os notebooks foram conectados as portas Ethernet (LAN) dos seus respectivos roteadores. A conexo serial entre os roteadores foi configurada com 2 Mbps de largura de banda.

FIGURA 6 - Diagrama do laboratrio de teste

Os testes foram realizados trs vezes em cada cenrio para evitar que uma falha espordica ou comportamento estranho afetassem os resultados dos testes e tambm para verificar a estabilidade e coerncia entre os resultados do software.

3.10 Cenrios de Testes

Foram criados trs cenrios de testes com configuraes diferentes para avaliar o funcionamento e comportamento do software.

3.10.1 Cenrio 1

No cenrio 1 foram utilizados dois fluxos com as caractersticas apresentadas na Tabela 3, com o fluxo 1 recebendo uma prioridade maior que a do fluxo 2 no escalonamento.

41
TABELA 3 - Configuraes dos fluxos de dados no cenrio 1

Fluxo 1 2

Classe 1 - Tempo real, sensvel ao jitter, interativa 5 - Aplicaes padres de redes IP

Largura de Banda (bps) 300 000 1 700 000

Tamanho dos Pacotes (bytes) 64 1 500

3.10.2 Cenrio 2

No cenrio 2 foram utilizados trs fluxos com as caractersticas apresentadas na Tabela 4, com o fluxo 1 e fluxo 2 recebendo a mesma prioridade, portanto compartilhando a banda no escalonamento e o fluxo 3 com uma prioridade menor.

TABELA 4 - Configuraes dos fluxos de dados no cenrio 2

Fluxo 1 2 3

Classe 0 - Tempo real, sensvel ao jitter, altamente interativa 1 - Tempo real, sensvel ao jitter, interativa 5 - Aplicaes padres de redes IP

Largura de Banda (bps) 200 000 150 000 1 650 000

Tamanho dos Pacotes (bytes) 128 64 768

3.10.3 Cenrio 3

No cenrio 3 foram utilizadas as mesmas configuraes do cenrio 2 com trs fluxos e com as caractersticas apresentadas na Tabela 5, e com o fluxo 1 e fluxo 2 recebendo a mesma prioridade, portanto compartilhando a banda no escalonamento e o fluxo 3 com uma prioridade menor. Durante a execuo do teste o fluxo 3 foi configurado para gerar uma largura de banda de 2000000 bps, acima do permitido para a classe e perto do limite mximo do link, para verificar se o excesso de trfego desse fluxo no ir influenciar no escalonamento dos fluxos

42 de maior prioridade.

TABELA 5 - Configuraes dos fluxos de dados no cenrio 3

Fluxo 1 2 3

Classe 0 - Tempo real, sensvel ao jitter, altamente interativa 1 - Tempo real, sensvel ao jitter, interativa 5 - Aplicaes padres de redes IP

Largura de Banda (bps) 200 000 150 000 1 650 000

Tamanho dos Pacotes (bytes) 128 64 768

3.11 Realizao dos Testes

O laboratrio foi montado de acordo com o proposto, como pode ser observado nas Figuras 7 e 8. Primeiramente os roteadores foram configurados de acordo com as regras de cada cenrio (Apndice J) e em seguida foram realizados os testes, trs vezes consecutivas em cada configurao, pelo perodo de cinco minutos por teste. Durante os testes foi encontrado um problema com o tamanho dos pacotes para a realizao dos mesmos. A ferramenta iperf ao ser configurada para gerar os dados utilizando pacotes muito pequenos gera um volume de dados muito maior do que o configurado. Isso se de deve ao fato da configurao do tamanho do pacote na ferramenta ser relativo apenas a quantidade de dados do pacote, assim como a largura de banda utilizada, tambm se refere aos dados do pacote, excluindo os cabealhos UDP, IP e Ethernet. Por esse motivo, os testes foram realizados utilizando em todos os fluxos o tamanho do pacote em 1500 bytes.

43

FIGURA 7 - Laboratrio de testes viso geral

FIGURA 8 - Laboratrio de testes roteadores

44

4 RESULTADOS E DISCUSSES

Nesta seo sero mostrados e analisados os resultados obtidos durante os testes, os relatrios de resultados completos gerados pelo sistema esto no Apndice H.

4.1 Resultados no Cenrio 1

No cenrio 1 todos os testes ocorreram sem problemas e os fluxos apresentaram o comportamento e resultados esperados, de acordo com as classes de QoS definidas anteriormente, so apresentados na Tabela 6 e os resultados obtidos esto na Tabela 7.

TABELA 6 - Resultados esperados nos testes no cenrio 1

Fluxo Throughput (bps) IPTD (ms) IPDV (ms) 1 2 >= 291 601,12 >= 1 652 419,04 < 400 N < 50 N

IPLR < 0,001 N

*N No especificado

TABELA 7 - Resultados dos testes no cenrio 1

Fluxo Teste Throughput (bps) IPTD (ms) IPDV (ms) IPLR 1 1 2 3 1 2 2 3 293 960,8 293 960,8 293 960,8 1 665 608,0 1 666 156,8 1 665 333,6 6,772 5,246 6,594 17,417 8,301 8,458 4,129 2,529 3,569 3,967 2,863 3,155 0,000 0,000 0,000 0,000 0,000 0,000

Podemos observar que todos os resultados ficaram dentro dos parmetros esperados e o desempenho do software ficou de acordo com o configurado.

45

4.2 Resultados no Cenrio 2

No cenrio 2 ocorreram problemas durante o teste de numero trs, durante quinze segundos houve aumento de atrasos, sem explicao, fazendo com que o resultado fosse negativo para esse parmetro em alguns fluxos. O grfico de atraso, mostrado na Figura 9, mostra o resultado anormal, comparado com o grfico de um teste com resultado correto (Figura 10).

FIGURA 9 - Grfico de atraso no teste 3 do cenrio 2

FIGURA 10 - Grfico de atraso no teste 2 do cenrio 2

Os resultados esperados para os testes nesse cenrio, de acordo com as classes de QoS definidas anteriormente, so apresentados na Tabela 8 e os resultados obtidos na Tabela 9.

TABELA 8 - Resultados esperados nos testes no cenrio 2

Fluxo Throughput (bps) IPTD (ms) IPDV (ms) 1 2 3 >= 194 401,12 >= 145 801,12 >= 1 603 805,60 < 100 < 400 N < 50 < 50 N

IPLR < 0,001 < 0,001 N

*N No especificado

46

TABELA 9 - Resultados dos testes no cenrio 2

Fluxo Teste Throughput (bps) IPTD (ms) IPDV (ms) IPLR 1 1 2 3 1 2 2 3 1 3 2 3 195 960,8 195 960,8 195 960,8 146 960,8 146 960,8 146 960,8 1 616 804,0 1 616 216,0 1 616 804,0 5,168 5,224 5,012 4,670 4,673 4,179 11,825 17,295 14,107 2,006 2,221 2,366 1,681 2,552 2,190 6,865 9,048 7,629 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000 0,000

Podemos observar que todos os resultados ficaram dentro dos parmetros esperados, que o desempenho do software ficou de acordo com o configurado e, mesmo com o problema de atrasos no terceiro teste o resultado mdio ficou bem prximo ao obtido nos outros testes do cenrio.

4.3 Resultados no Cenrio 3

No cenrio 3, assim como no cenrio 2, ocorreram problemas durante o teste de nmero um, com relao ao aumento de atrasos, durante dez segundos, tambm fazendo com que o resultado fosse negativo para esse parmetro em alguns fluxos. O grfico de atraso, mostrado na Figura 11, mostra o resultado anormal, comparado com o grfico de um teste com resultado correto (Figura 12).

47

FIGURA 11 - Grfico de atraso no teste 1 do cenrio 3

FIGURA 12 - Grfico de atraso no teste 2 do cenrio 3

Os resultados esperados para os testes nesse cenrio, de acordo com as classes de QoS definidas anteriormente, so apresentados na Tabela 10. Neste cenrio esperado que o fluxo trs no obtenha o mnimo esperado no parmetro de largura de banda, pois a largura de banda gerada maior do que a capacidade do enlace entre os roteadores, mas esperado que o excesso de banda gerada no fluxo trs no interfira nos resultados dos outros fluxos. Os resultados obtidos esto na Tabela 11.

TABELA 10 - Resultados esperados nos testes no cenrio 3

Fluxo Throughput (bps) IPTD (ms) IPDV (ms) 1 2 3 >= 194 401,12 >= 145 801,12 >= 1 944 104,16 < 100 < 400 N < 50 < 50 N

IPLR < 0,001 < 0,001 N

*N No especificado

48
TABELA 11 - Resultados dos testes no cenrio 3

Fluxo Teste Throughput (bps) IPTD (ms) IPDV (ms) IPLR 1 1 2 3 1 2 2 3 1 3 2 3 195 960,8 195 960,8 195 960,8 146 960,8 146 960,8 146 960,8 1 575 604,8 1 575 448,0 1 570 469,6 4,842 4,952 5,151 4,832 4,635 4,927 258,113 240,895 259,917 3,338 2,710 2,366 2,840 2,776 2,469 9,646 9,996 9,759 0,000 0,000 0,000 0,000 0,000 0,000 0,195 0,195 0,198

Os resultados ficaram dentro dos parmetros esperados e o desempenho do software ficou de acordo com o configurado e, da mesma forma que no cenrio 2 ocorreram problemas com atrasos no teste nmero um, o resultado mdio, porm, ficou bem prximo ao obtido nos outros testes do cenrio.

4.4 Consideraes Sobre os Resultados

Atravs dos resultados obtidos foi possvel verificar que o sistema est funcionando bem e de forma estvel, e que tambm est medindo de forma correta os parmetros de qualidade de servio propostos. Principalmente no cenrio 3 foi possvel verificar o funcionamento do QoS aplicado pelo roteador, que mesmo com um fluxo de trfego com largura de banda maior do que o suportado pelo enlace manteve a qualidade dos fluxos que possuam uma prioridade maior. No foi possvel determinar a causa dos problemas nos testes de atraso, sendo a causa mais provvel, a interferncia de outro software em execuo nos computadores que realizavam os testes, que utilizou recursos, como processamento, atrasando o funcionamento do software que realiza o teste de atraso. Aps a ocorrncia dos erros em dois testes seguidos os roteadores foram reiniciados, e os testes seguintes no apresentaram erros. Devido ao comportamento do iperf com pacotes pequenos, no foi possvel realizar os

49 testes com o tamanho de pacotes propostos, para isso ser necessria uma alterao no funcionamento do software que dever prever os tamanhos dos cabealhos para calcular o trfego que dever ser gerado pelo iperf.

50

5 CONCLUSO

Com base nos critrios e resultados apresentados nesta monografia, onde o objetivo era o desenvolvimento de um ambiente de testes automatizados de qualidade de servio em rede de comunicao de dados baseado em softwares livres, constatou-se que o objetivo proposto foi alcanado. O usurio do sistema pode realizar os testes atravs de uma interface web e visualizar os resultados na prpria aplicao sem a necessidade de recorrer a comandos no shell e outros softwares para montar os relatrios e grficos com os resultados. A utilizao de ferramentas livres como Linux, Apache, MySQL, iperf, ping proporcionam uma ferramenta gratuita para a realizao dos testes de qualidade de servio em ocasies onde necessrio verificar o funcionamento das configuraes aplicadas na rede, sendo uma alternativa muito mais barata que os equipamentos de testes de redes encontrados no mercado. Durante a realizao do trabalho foi possvel aprimorar os conhecimentos em programao utilizando shell scripts alm de um aprendizado muito grande em linguagem de programao PHP, banco de dados MySQL e nos funcionamento e opes de configuraes das ferramentas ping e iperf.

5.1 Extenses

Este trabalho pode ser continuado da seguinte forma: Implementao de um mdulo gerador de trfego, baseado no iperf, que seja mais flexvel permitindo, por exemplo, que o trfego gerado tenha perodos de inatividade ou perodos de pico de trfego acima do permitido pela configurao do QoS; Implementao de um mdulo para medio de atraso e tratamento dos dados sem a necessidade de utilizao de ferramentas de shell scripts, permitindo que a ferramenta possa ser utilizadas em outros sistema operacionais; Utilizao de base de dados que no necessite de um servidor MySQL instalado,

51 utilizando, por exemplo, base de dados SQLite, aumentando a portabilidade da ferramenta; Utilizao de servidor web leve, integrado, multiplataforma e com suporte a PHP. Implementao, que em conjunto com as sugestes anteriores, tornaria o sistema totalmente portvel; Exportao dos resultados para planilhas eletrnicas.

52

REFERNCIAS

1 KUROSE, J. F.; ROSS, K. W. Redes de Computadores e a Internet: uma abordagem topdown. 3 edio. So Paulo: Pearson, 2006. 634 p.

2 FLUKE NETWORKS. One Touch Series II: Overview. Disponvel em: <http://www.flukenetworks.com/fnet/enus/products/OneTouch+Series+II/Overview.htm?categorycode=LANT>. Acesso em: 08 mar. 2010.

3 FLUKE NETWORKS. Test and Troubleshoot. Disponvel em: <http://www.flukenetworks.com/fnet/enus/products/family.htm?wbc_purpose=BasiNewsListingsupportAndDownloadsWhereToBuysi temap&categorycode=LANT>. Acesso em: 08 mar. 2010.

4 JDSU. SmartClass Ethernet. Disponvel em: <http://www.jdsu.com/specials/smartclassethernet-adsl/index.html>. Acesso em: 08 mar. 2010.

5 JDSU. Acess Network Test. Disponvel em: <http://www.jdsu.com/products/communications-test-measurement/products/access-networktest.html#Ethernet Test>. Acesso em: 08 mar. 2010.

6 FLUKE NETWORKS. EtherScope Series II: Overview. Disponvel em: <http://www.flukenetworks.com/fnet/enus/products/EtherScope+Series+II/?categorycode=LANT>. Acesso em: 08 mar. 2010.

7 JDSU. T-BERD 4000 Multiple Services Test Platform. Disponvel em: <http://www.jdsu.com/products/communications-test-measurement/products/a-z-productlist/t-berd-4000-multiple-services-test-platform.html>. Acesso em: 08 mar. 2010.

8 CISCO SYSTEMS. Internetworking Technology Handbook: Internet Protocols (IP). Disponvel em: <http://www.cisco.com/en/US/docs/internetworking/technology/handbook/Internet-

53 Protocols.html#wp2468>. Acesso em: 07 mar. 2010.

9 OODAN, A. et al. Telecommunications Quality of Service Management: From legacy to emerging services. Londres, Reino Unido: The Institution Of Engineering And Technology, 2009. 602 p.

10 ISO - INTERNATIONAL ORGANIZATION FOR STANDARDIZATION. ISO 8402:1994: Quality management and quality assurance -- Vocabulary. Disponvel em: <http://www.iso.org/iso/iso_catalogue/catalogue_ics/catalogue_detail_ics.htm?csnumber=201 15>. Acesso em: 12 abr. 2010. 11 ITU INTERNATIONAL TELECOMMUNICATION UNION. Terms and definitions related to quality of service and network performance including dependability. Disponvel em: <http://www.itu.int/rec/T-REC-E/recommendation.asp?lang=en&parent=TREC-E.800>. Acesso em: 03 mar. 2010.

12 MARCHESE, M. QoS Over Heterogeneous Networks. West Sussex: John Wiley & Sons, 2007. 307 p.

13 TANENBAUM, A. S. Rede de Computadores. 4 edio. Rio de Janeiro: Campus/Elsevier, 2003. 968 p.

14 BRAUN, T. et al. End-to-End Quality of Service Over Heterogeneous Networks. Berlin: Springer, 2008. 266 p.

15 DATTATREYA, G. R. Performance Analysis of Queuing and Computer Networks. 1 edio. Boca Raton: CRC Press, 2008. 449 p.

16 PETERSON, L. L.; DAVIE, B.S. Computer Networks: A Systems Approach. 3. ed. San Francisco: Elsevier Science, 2003. 809 p.

17 XIAO, X. Technical, commercial, and regulatory challenges of QoS: An Internet Service Model Perspective. Burlington: Elsevier, 2008. 274 p.

54

REFERNCIAS CONSULTADAS

BEZERRA, E. Princpios de anlise e projeto de sistemas com UML. Rio de Janeiro: Elsevier, 2002. 279p.

BLUM, R. Linux Command Line and Shell Scripting Bible. Indianapolis: Wiley Publishing, 2008. 809 p.

BURTCH, K. O. Linux Shell Scripting with Bash. 1 edio. Indianapolis: Sams Publishing, 2004. 412 p.

CONVERSE, T.; PARK, J.; MORGAN, C. PHP5 and MySQL Bible. Indianapolis: Wiley Publishing, 2004. 1042 p.

MySQL AB. MySQL 5.1 Reference. Disponvel em: <http://dev.mysql.com/doc/refman/5.1/en/>. Acesso em: 06 mar. 2010.

NARAMORE, E.; GERNER, J.; SCOUARNEC, Y. L.; STOLZ, J.;GLASS, M. K. Beginning PHP5, Apache, and MySQL Web Development. Indianapolis: Wiley Publishing, 2005. 798 p.

PETERS, R. Expert Shell Scripting. 1 edio: Apress, 2009. 293 p.

PHP GROUP. PHP: Documentation. Disponvel em: <http://www.php.net/docs.php>. Acesso em: 06 mar. 2010. RNP REDE NACIONAL DE ENSINO E PESQUISA. QoS. Disponvel em: <http://www.rnp.br/qos/index.html>. Acesso em: 27 fev. 2010.

55

APNDICES

56 APNDICE A Shell script para tratamento dos dados gerados pelo iperf: apagaresumo.sh ##################################################### #Processa Saidas IPERF e insere na base de dados # #Parametros: # # $1 ID do Teste # # $2 ID do Fluxo # # $3 arquivo a ser processado # # $4 usuario sql # # $5 senha sql # # $6 base de dados sql # ##################################################### #Limpando linhas desnecessarias linhas=`cat $3 | grep -in ",0.0-" | grep -v ",0.0-1\.0" | cut -d ',' -f 7` fluxo=$2 teste=$1 for i in $linhas; do sed "/"$i"/d" $3 > tmp$3 cat tmp$3 > $3 rm tmp$3 done cont=0 echo $cont linhas=`cat $3` for i in $linhas; do if [ "$cont" -eq 0 ]; then tinicial="1970-1-1" tinicial=$tinicial" "$(echo $i | cut -d',' -f1 | cut -c'9-10'); tinicial=$tinicial":"$(echo $i | cut -d',' -f1 | cut -c'11-12'); tinicial=$tinicial":"$(echo $i | cut -d',' -f1 | cut -c'13-14'); tinicial=$(date -d "$tinicial" +"%s") cont=1 echo $tinicial fi colarray[0]=`expr $tinicial + $(echo $i | cut -d',' -f7 | cut -d'-' -f 2 | cut -d'.' -f 1) - 10801` echo ${colarray[0]} colarray[1]=$(echo $i | cut -d',' -f2) colarray[2]=$(echo $i | cut -d',' -f3) colarray[3]=$(echo $i | cut -d',' -f8) colarray[4]=$(echo $i | cut -d',' -f9) colarray[5]=$(echo $i | cut -d',' -f10) colarray[6]=$(echo $i | cut -d',' -f11) colarray[7]=$(echo $i | cut -d',' -f12) mysql -u $4 -p$5 -e "INSERT INTO resultados_simples VALUES($2,$1,'${colarray[1]}:${colarray[2]}',${colarray[3]},${colarray[4]},${colarray[5]}, ${colarray[6]},${colarray[7]},${colarray[0]},null)" $6 done

57 APNDICE B Shell script para tratamento dos dados gerados pelo ping: pings.sh ###################################################### #*Processa Saidas do ping e insere na base de dados # #Parametros: # # $1 ID do Teste # # $2 ID do Fluxo # # $3 arquivo a ser processado # # $4 usuario sql # # $5 senha sql # # $6 base de dados sql # # # ###################################################### linhas=`cat $3 | tr -d ' ' ` fluxo=$2 teste=$1 for i in $linhas; do colarray[0]=$(echo $i | cut -d':' -f1) colarray[1]=$(echo $i | cut -d'=' -f4 | cut -d'm' -f1) mysql -u $4 -p$5 -e "UPDATE resultados_simples SET ping_rtt=${colarray[1]} WHERE testeid=$1 AND fluxoid=$2 AND tempos=((HOUR(${colarray[0]})*60*60)+(MINUTE(${colarray[0]})*60)+SECOND(${cola rray[0]}))" $6 done

58 APNDICE C Agente escravo: servidor.php <?php error_reporting (E_ALL); /* desabilita o timeout para que o script fique esperando pela conexo */ set_time_limit (0); $address = $argv[1]; $port = 1234; $numfluxos=0; $fp = fopen('status/statusconexaoe.sts', 'w'); ftruncate($fp,0); fwrite($fp,'1') ; fclose($fp); if (($sock = socket_create (AF_INET, SOCK_STREAM, 0)) < 0) { $fp = fopen('status/statusconexaoe.sts', 'w'); ftruncate($fp,0); fwrite($fp,'-1'); fclose($fp); die("Falha criando Socket: " . socket_strerror ($sock) . "\n"); } if (($ret = socket_bind ($sock, $address, $port)) < 0) { $fp = fopen('status/statusconexaoe.sts', 'w'); ftruncate($fp,0); fwrite($fp,'-1'); fclose($fp); die("Falha associando o socket a endereo e porta: " . socket_strerror ($ret) . "\n"); } if (($ret = socket_listen ($sock, 5)) < 0) { $fp = fopen('status/statusconexaoe.sts', 'w'); ftruncate($fp,0); fwrite($fp,'-1'); fclose($fp); die("Falha ao comear a escutar no socket: " . socket_strerror ($ret) . "\n"); } $fp = fopen('status/statusconexaoe.sts', 'w'); ftruncate($fp,0); fwrite($fp,'2'); fclose($fp); do { if (($msgsock = socket_accept($sock)) < 0) { $fp = fopen('status/statusconexaoe.sts', 'w'); ftruncate($fp,0); fwrite($fp,'-1');

59 fclose($fp); die("Falha ao aceitar conexo no socket: " . socket_strerror ($msgsock) . "\n"); break; } $fp = fopen('status/statusconexaoe.sts', 'w'); ftruncate($fp,0); fwrite($fp,'3'); fclose($fp); $msg = "0\n"; socket_write($msgsock, $msg, strlen($msg)); do { if (FALSE == ($buf = socket_read ($msgsock, 2048, PHP_NORMAL_READ))) { echo "Erro recebendo dados do socket" . socket_strerror ($ret) . "\n"; break 2; } if (!$buf = trim ($buf)) { continue; } $confs=split(',',$buf); if ($buf == 'R') { break; } if ($buf == 'E') { socket_close ($msgsock); break 2; } if ($confs[0] == 'I') { $numfluxos=intval($confs[1]); $ipmaster=$confs[2]; $tipomarca=$confs[3]; $tempoteste=$confs[4]; $resp = "I,F,".$numfluxos." \n"; socket_write ($msgsock, $resp, strlen ($resp)); //break; } if ($confs[0] == 'F') { if($numfluxos > 0 & intval($confs[1]) <= $numfluxos){ $fmarca[$confs[1]] = $confs[2]; $fbanda[$confs[1]] = $confs[3]; $ftampacote[$confs[1]] = $confs[4]; $resp = "F,".$confs[1].",OK \n"; socket_write ($msgsock, $resp, strlen ($resp)); //break; } else{ $resp = "F,".$confs[1].",NOK\n"; socket_write ($msgsock, $resp, strlen ($resp)); break 2; }

60 } if ($confs[0] == 'S') { $resp = "S,GO\n"; socket_write ($msgsock, $resp, strlen ($resp)); $fp = fopen('status/statusconexaoe.sts', 'w'); ftruncate($fp,0); fwrite($fp,'4'); fclose($fp); for($i=1; $i <= $numfluxos;$i++) { $cmd = "iperf -c ".$ipmaster." -b ".$fbanda[$i]." -t ".$tempoteste." -p 500".$i." -S ".$fmarca[$i]." -l ".$ftampacote[$i]." > /dev/null &"; echo $cmd."\n"; passthru($cmd); } //break; } if ($confs[0] == 'T') { $resp = "T,BYE\n"; socket_write ($msgsock, $resp, strlen ($resp)); $fp = fopen('status/statusconexaoe.sts', 'w'); ftruncate($fp,0); fwrite($fp,'5'); fclose($fp); socket_close ($msgsock); break 2; } } while (true); socket_close ($msgsock); } while (true); socket_close ($sock); ?>

61 APNDICE D Script PHP para armazenar dados do teste e fluxo na base de dados e inicializar o agente mestre: salvar_teste.php <?php session_start(); function Redirecionar_URL(){ echo "<script language=\"JavaScript\">function redireciona() {window.location=\"status_mestre.php\";}redireciona();</script>"; } include "dbconn.inc"; if (!$conn) { die('Could not connect to MySQL: ' . mysqli_connect_error()); } mysqli_query($conn, 'SET NAMES \'utf8\''); mysqli_autocommit($conn,FALSE); $tipo_marca = ($_SESSION["Teste_Tipo_Marca"] == "DSCP") ? 1 : 2; $result = mysqli_query($conn, 'INSERT INTO testes (teste_nome, teste_tipo_marca, teste_num_fluxo, teste_ip_escravo, teste_ip_mestre, teste_tempo, teste_data, teste_erro) VALUES ("'.$_SESSION["Teste_Nome"].'",'.$tipo_marca.','.$_SESSION["Teste_Num_Fluxos"].',"'.$_ SESSION["Teste_IP_Escravo"].'","'.$_SESSION["Teste_IP_Mestre"].'","'.$_SESSION["Teste _Tempo"].'","'.date("m/d/Y").'",0)'); $teste_id = mysqli_insert_id($conn); $_SESSION["TesteID"]=$teste_id; if(!$result) { mysqli_rollback($conn); echo mysqli_error($conn); die('Erro inserido dados do teste'); } mysqli_free_result($result); for($i=1; $i <= $_SESSION["Teste_Num_Fluxos"];$i++) { $tmp=split('-',$_SESSION["ClasseQos".$i]); $classe = $tmp[0]; if($tipo_marca==1){ $marca = dechex((intval($_SESSION["MarcaF".$i])*4)); } else{ $marca = dechex((intval($_SESSION["MarcaF".$i])*8*4)); } if(strlen($marca) < 2){ $marca = "0".$marca; } $banda = intval($_SESSION["Teste_Banda_F".$i]); $tampacote = intval($_SESSION["Teste_Tam_Pacote_F".$i]); echo 'INSERT INTO fluxos_teste (teste_id, fluxo_id, fluxo_classe, fluxo_marca, fluxo_banda, fluxo_tam_pacote) VALUES ('.$teste_id.', '.$i.', '.$classe.', "'.$marca.'", '.$banda.', '.$tampacote.')';

62 $result1 = mysqli_query($conn, 'INSERT INTO fluxos_teste (teste_id, fluxo_id, fluxo_classe, fluxo_marca, fluxo_banda, fluxo_tam_pacote) VALUES ('.$teste_id.', '.$i.', '.$classe.', "'.$marca.'", '.$banda.', '.$tampacote.')'); if(!$result1) { mysqli_rollback($conn); die('Erro inserido dados do fluxo'.$i); } mysqli_free_result($result1); } mysqli_commit($conn); mysqli_close($conn); echo "Dados Inseridos com Sucesso"; $ip=$_POST["ip_local"]; $cmd = "php ./cliente.php '$teste_id' >/dev/null & "; passthru($cmd); sleep(5); Redirecionar_URL(); ?>

63 APNDICE E Agente mestre: cliente.php <?php error_reporting (E_ALL); $teste_id = $argv[1]; $fp = fopen('status/statusconexaom.sts', 'w'); ftruncate($fp,0); fwrite($fp,'1'); fclose($fp); include "dbconn.inc"; if (!$conn) { die('Could not connect to MySQL: ' . mysqli_connect_error()); } mysqli_query($conn, 'SET NAMES \'utf8\''); $result=mysqli_query($conn,'SELECT * FROM testes WHERE teste_id='.$teste_id); $row = mysqli_fetch_array($result, MYSQLI_ASSOC); $teste_nome = $row['teste_nome']; $teste_tipo_marca = $row['teste_tipo_marca']; $teste_num_fluxo = $row['teste_num_fluxo']; $teste_ip_escravo = $row['teste_ip_escravo']; $teste_ip_mestre = $row['teste_ip_mestre']; $teste_tempo = $row['teste_tempo']; mysqli_free_result($result); $address = $teste_ip_escravo; $service_port = 1234;

$socket = socket_create (AF_INET, SOCK_STREAM, 0); if ($socket < 0) { $fp = fopen('status/statusconexaom.sts', 'w'); ftruncate($fp,0 ); fwrite($fp,'-1'); fclose($fp); mysqli_close($conn); die("Falha criando socket: " . socket_strerror ($socket) . "\n"); } $conect = socket_connect ($socket, $address, $service_port); if ($conect < 0) { $fp = fopen('status/statusconexaom.sts', 'w'); ftruncate($fp,0 ); fwrite($fp,'-1'); fclose($fp); die("Falha na conexo: ($result) " . socket_strerror($conect) . "\n"); }

64 $fp = fopen('status/statusconexaom.sts', 'w'); ftruncate($fp,0 ); fwrite($fp,'2'); fclose($fp); $buf = socket_read ($socket, 1024); $msg="I,".$teste_num_fluxo.",".$teste_ip_mestre.",".$teste_tipo_marca.",".$teste_tempo."\n" ; socket_write ($socket, $msg, strlen ($msg)); $buf = socket_read ($socket, 1024); $resp=split(',',$buf); if($resp[0] == "I" & $resp[1] == "F" & intval($resp[2]) == $teste_num_fluxo){ $fp = fopen('status/statusconexaom.sts', 'w'); ftruncate($fp,0 ); fwrite($fp,'3'); fclose($fp); } else{ $fp = fopen('status/statusconexaom.sts', 'w'); ftruncate($fp,0 ); fwrite($fp,'-1'); fclose($fp); socket_write ($socket,"E\n",3); socket_close ($socket); mysqli_close($conn); die("Erro na troca de dados do teste!!!"); } for($i=1; $i <= $teste_num_fluxo;$i++){ $result = mysqli_query($conn, 'SELECT fluxo_marca, fluxo_banda, fluxo_tam_pacote FROM fluxos_teste WHERE teste_id='.$teste_id.' AND fluxo_id='.$i); $row = mysqli_fetch_array($result, MYSQLI_ASSOC); $qos[$i]="0x".$row['fluxo_marca']; $msg="F,".$i.",0x".$row['fluxo_marca'].",".$row['fluxo_banda'].",".$row['fluxo_tam_pacote']. "\n"; socket_write ($socket, $msg, strlen ($msg)); $buf = socket_read ($socket, 1024); $resp=split(',',$buf); if(($resp[0] == 'F')){// & ($resp[2] == "OK")){ mysqli_free_result($result); continue; } else{ mysqli_free_result($result); socket_write ($socket,"E\n",3); socket_close ($socket); $fp = fopen('status/statusconexaom.sts', 'w'); ftruncate($fp,0 ); fwrite($fp,'-1'); fclose($fp);

65 mysqli_close($conn); die("Erro na troca de dados do fluxo!!!"); break; } }

for($i=1; $i <= $teste_num_fluxo;$i++) { $cmd1 = "ping -Q ".$qos[$i]." ".$teste_ip_escravo." | awk '/^[0-9]+ bytes from / { \"date +%Y%m%d%H%M%S\" | getline d; close(\"date +%Y%m%d%H%M%S\") ; print d, \": \", $0; }' > resultadoping".$i.".txt &"; $cmd2 = "iperf -s -i 1 -u -y C -p 500".$i." -S ".$qos[$i]." > saida".$i.".txt &"; passthru($cmd1); passthru($cmd2); }

sleep(2); socket_write ($socket,"S\n",3); $buf = socket_read ($socket, 1024); $resp=split(',',$buf);

if($resp[0] == 'S'){// & $resp[1] == "GO"){ $fp = fopen('status/statusconexaom.sts', 'w'); ftruncate($fp,0 ); fwrite($fp,'4'); fclose($fp); } else{ $fp = fopen('status/statusconexaom.sts', 'w'); ftruncate($fp,0 ); fwrite($fp,'-1'); fclose($fp); socket_write ($socket,"E\n",3); socket_close ($socket); mysqli_close($conn); $cmd= "killall iperf"; passthru($cmd); $cmd= "killall ping"; passthru($cmd); die("Erro na troca de dados!!!"); } sleep(intval($teste_tempo)+10);

socket_write ($socket,"T\n",3);

66 $buf = socket_read ($socket, 1024); $resp=split(',',$buf); if($resp[0]== 'T'){// & $resp[1] == "BYE"){ $fp = fopen('status/statusconexaom.sts', 'w'); ftruncate($fp,0 ); fwrite($fp,'5'); fclose($fp); } else{ $fp = fopen('status/statusconexaom.sts', 'w'); ftruncate($fp,0 ); fwrite($fp,'-1'); fclose($fp); socket_write ($socket,"E\n",3); socket_close ($socket); mysqli_close($conn); $cmd = "killall iperf"; passthru($cmd); $cmd = "killall ping"; passthru($cmd); die("Teste no finalizado corretamente!!!"); } mysqli_close($conn); socket_close ($socket); $cmd = "killall iperf"; passthru($cmd); $cmd = "killall ping"; passthru($cmd);

for($i=1; $i <= $teste_num_fluxo;$i++) { $cmd1 = "bash ./apagaresumo.sh ".$teste_id." ".$i." saida".$i.".txt ".$dbuser." ".$dbpass." ".$basedados." &"; $cmd2 = "bash ./pings.sh ".$teste_id." ".$i." resultadoping".$i.".txt ".$dbuser." ".$dbpass." ".$basedados." &"; passthru($cmd1); passthru($cmd2); } $fp = fopen('status/statusconexaom.sts', 'w'); ftruncate($fp,0 ); fwrite($fp,'6'); fclose($fp); //fim ?>

67 APNDICE F Script PHP para gerar graficos: gera_grafico.php <?php include("pChart/pData.class"); include("pChart/pChart.class"); $testeid = $argv[1]; $numfluxos = $argv[2]; include "dbconn.inc"; if (!$conn) { die('Could not connect to MySQL: ' . mysqli_connect_error()); } mysqli_query($conn, 'SET NAMES \'utf8\''); $cont=0; $result=mysqli_query($conn,'SELECT DISTINCT tempos FROM resultados_simples WHERE testeid='.$testeid.' ORDER BY tempos LIMIT 1'); $row = mysqli_fetch_array($result, MYSQLI_ASSOC); $tempoinicial = $row['tempos'] -1 ; mysqli_free_result($result); for($i = 1; $i <= $numfluxos; $i++){ $result = mysqli_query($conn, 'SELECT throughput, jitter, pacotes_perdidos, pacotes_enviados, ping_rtt, tempos FROM resultados_simples R WHERE R.testeid='.$testeid.' AND R.fluxoid='.$i.' ORDER BY tempos'); while (($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) != NULL) { $banda[$i][$cont] = $row['throughput']/1024; $jitter[$i][$cont] = $row['jitter']; $pperdidos[$i][$cont] = $row['pacotes_perdidos']; $rtt[$i][$cont] = ($row['ping_rtt'] == null) ? 1000.0 : $row['ping_rtt']; $tempos[$i][$cont] = $row['tempos'] - $tempoinicial; $cont++; echo $i." + ".$cont."\n"; } $cont = 0; mysqli_free_result($result); } mysqli_close($conn); // Dataset definition $DataSet = new pData; for($i = 1; $i <= $numfluxos; $i++){ $DataSet->AddPoint($banda[$i],"BandaF".$i); $DataSet->AddPoint($jitter[$i],"JitterF".$i); $DataSet->AddPoint($pperdidos[$i],"PperdidosF".$i); $DataSet->AddPoint($rtt[$i],"RttF".$i); }

68 $DataSet->Addpoint($tempos[1],"Tempos"); $DataSet->SetAbsciseLabelSerie("Tempos"); $DataSet->SetXAxisName("Tempo de Teste"); //Grafico Largura de Banda // Initialise the graph $Test = new pChart(1200,300); $Test->drawGraphAreaGradient(90,90,90,90,TARGET_BACKGROUND); // Prepare the graph area $Test->setFontProperties("fonts/tahoma.ttf",9); $Test->setGraphArea(80,40,980,260); // Initialise graph area $Test->setFontProperties("fonts/tahoma.ttf",9); for($i = 1; $i <= $numfluxos; $i++){ $DataSet->AddSerie("BandaF".$i); $DataSet->SetSerieName("Largura de Banda Fluxo ".$i,"BandaF".$i); } // Draw the SourceForge Rank graph $DataSet->SetYAxisName("Largura de Banda kbps"); $Test->drawScale($DataSet->GetData(),$DataSet>GetDataDescription(),SCALE_NORMAL,213,217,221,TRUE,0,0,FALSE,10,FALSE); $Test->drawGraphAreaGradient(225,225,225,-30); $Test->drawGrid(1,TRUE,155,155,155,10); $Test->setShadowProperties(2,2,0,0,0,30,4); $Test->drawCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription()); $Test->clearShadow(); $Test->drawFilledCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription(),.1,30); // Write the legend (box less) $Test->setFontProperties("fonts/tahoma.ttf",12); $Test->drawLegend(980,50,$DataSet>GetDataDescription(),0,0,0,0,0,0,255,255,255,FALSE); // Write the title $Test->setFontProperties("fonts/MankSans.ttf",18); $Test->setShadowProperties(1,1,0,0,0); $Test->drawTitle(0,0,"Resultado dos Testes - Largura de Banda",255,255,255,1200,30,TRUE); $Test->clearShadow(); // Render the picture $Test->Render("graficos/resultado_banda.png"); for($i = 1; $i <= $numfluxos; $i++){ $DataSet->RemoveSerie("BandaF".$i);

69 $DataSet->removeSerieName("BandaF".$i); } //Grafico RTT // Initialise the graph $Test = new pChart(1200,300); $Test->drawGraphAreaGradient(90,90,90,90,TARGET_BACKGROUND); // Prepare the graph area $Test->setFontProperties("fonts/tahoma.ttf",9); $Test->setGraphArea(80,40,980,260); // Initialise graph area $Test->setFontProperties("fonts/tahoma.ttf",9); for($i = 1; $i <= $numfluxos; $i++){ $DataSet->AddSerie("RttF".$i); $DataSet->SetSerieName("RTT Fluxo ".$i,"RttF".$i); } // Draw the SourceForge Rank graph $DataSet->SetYAxisName("RTT ms"); $Test->drawScale($DataSet->GetData(),$DataSet>GetDataDescription(),SCALE_NORMAL,213,217,221,TRUE,0,0,FALSE,10,FALSE); $Test->drawGraphAreaGradient(225,225,225,-30); $Test->drawGrid(1,TRUE,155,155,155,10); $Test->setShadowProperties(2,2,0,0,0,30,4); $Test->drawCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription()); $Test->clearShadow(); $Test->drawFilledCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription(),.1,30); // Write the legend (box less) $Test->setFontProperties("fonts/tahoma.ttf",12); $Test->drawLegend(980,50,$DataSet>GetDataDescription(),0,0,0,0,0,0,255,255,255,FALSE); // Write the title $Test->setFontProperties("fonts/MankSans.ttf",18); $Test->setShadowProperties(1,1,0,0,0); $Test->drawTitle(0,0,"Resultado dos Testes - RTT",255,255,255,1200,30,TRUE); $Test->clearShadow(); // Render the picture $Test->Render("graficos/resultado_rtt.png"); for($i = 1; $i <= $numfluxos; $i++){ $DataSet->RemoveSerie("RttF".$i); $DataSet->removeSerieName("RttF".$i); }

70 //Grafico Jitter // Initialise the graph $Test = new pChart(1200,300); $Test->drawGraphAreaGradient(90,90,90,90,TARGET_BACKGROUND); // Prepare the graph area $Test->setFontProperties("fonts/tahoma.ttf",9); $Test->setGraphArea(80,40,980,260); // Initialise graph area $Test->setFontProperties("fonts/tahoma.ttf",9); for($i = 1; $i <= $numfluxos; $i++){ $DataSet->AddSerie("JitterF".$i); $DataSet->SetSerieName("Jitter Fluxo ".$i,"JitterF".$i); } // Draw the SourceForge Rank graph $DataSet->SetYAxisName("Jitter ms"); $Test->drawScale($DataSet->GetData(),$DataSet>GetDataDescription(),SCALE_NORMAL,213,217,221,TRUE,0,0,FALSE,10,FALSE); $Test->drawGraphAreaGradient(225,225,225,-30); $Test->drawGrid(1,TRUE,155,155,155,10); $Test->setShadowProperties(2,2,0,0,0,30,4); $Test->drawCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription()); $Test->clearShadow(); $Test->drawFilledCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription(),.1,30); // Write the legend (box less) $Test->setFontProperties("fonts/tahoma.ttf",12); $Test->drawLegend(980,50,$DataSet>GetDataDescription(),0,0,0,0,0,0,255,255,255,FALSE); // Write the title $Test->setFontProperties("fonts/MankSans.ttf",18); $Test->setShadowProperties(1,1,0,0,0); $Test->drawTitle(0,0,"Resultado dos Testes - Jitter",255,255,255,1200,30,TRUE); $Test->clearShadow(); // Render the picture $Test->Render("graficos/resultado_jitter.png"); for($i = 1; $i <= $numfluxos; $i++){ $DataSet->RemoveSerie("JitterF".$i); $DataSet->removeSerieName("JitterF".$i); } //Grafico Pacotes Perdidos

71 // Initialise the graph $Test = new pChart(1200,300); $Test->drawGraphAreaGradient(90,90,90,90,TARGET_BACKGROUND); // Prepare the graph area $Test->setFontProperties("fonts/tahoma.ttf",9); $Test->setGraphArea(80,40,980,260); // Initialise graph area $Test->setFontProperties("fonts/tahoma.ttf",9); for($i = 1; $i <= $numfluxos; $i++){ $DataSet->AddSerie("PperdidosF".$i); $DataSet->SetSerieName("Pacotes Perdidos Fluxo ".$i,"PperdidosF".$i); } // Draw the SourceForge Rank graph $DataSet->SetYAxisName("Pacotes Perdidos"); $Test->drawScale($DataSet->GetData(),$DataSet>GetDataDescription(),SCALE_NORMAL,213,217,221,TRUE,0,0,FALSE,10,FALSE); $Test->drawGraphAreaGradient(225,225,225,-30); $Test->drawGrid(1,TRUE,155,155,155,10); $Test->setShadowProperties(2,2,0,0,0,30,4); $Test->drawCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription()); $Test->clearShadow(); $Test->drawFilledCubicCurve($DataSet->GetData(),$DataSet->GetDataDescription(),.1,30); // Write the legend (box less) $Test->setFontProperties("fonts/tahoma.ttf",12); $Test->drawLegend(980,50,$DataSet>GetDataDescription(),0,0,0,0,0,0,255,255,255,FALSE); // Write the title $Test->setFontProperties("fonts/MankSans.ttf",18); $Test->setShadowProperties(1,1,0,0,0); $Test->drawTitle(0,0,"Resultado dos Testes - Pacotes Perdidos",255,255,255,1200,30,TRUE); $Test->clearShadow(); // Render the picture $Test->Render("graficos/resultado_pperdidos.png"); for($i = 1; $i <= $numfluxos; $i++){ $DataSet->RemoveSerie("PperdidosF".$i); $DataSet->removeSerieName("PperdidosF".$i); } ?>

72 APNDICE G Pagina PHP com os resultados e grficos do teste: resultados_teste.php <?php session_start(); include "dbconn.inc"; if (!$conn) { die('Could not connect to MySQL: ' . mysqli_connect_error()); } mysqli_query($conn, 'SET NAMES \'utf8\''); $numfluxos = $_SESSION["Teste_Num_Fluxos"]; $cont=0; for($i = 1; $i <= $numfluxos; $i++){ $jitter_status[$i]=0; $rtt_status[$i]=0; $banda_status[$i]=0; $pperdidos_status[$i]=0; $penviados[$i]=0; $bandamedia[$i] = 0; $penviados[$i] = 0; $jittersoma[$i]= 0; $rttsoma[$i]= 0; $pperdidos[$i] = 0; $jittermedia[$i]=0; $rttmedia[$i]=0; $tmp=split('-',$_SESSION["ClasseQos".$i]); $classe = $tmp[0]; $result=mysqli_query($conn,'SELECT iptd, ipdv, iplr FROM classes_qos WHERE classeid='.$classe); $row = mysqli_fetch_array($result, MYSQLI_ASSOC); $iptd[$i] = $row['iptd'] ; $ipdv[$i] = $row['ipdv'] ; $iplr[$i] = $row['iplr'] ; mysqli_free_result($result); $result=mysqli_query($conn, 'SELECT throughput, jitter, pacotes_perdidos, pacotes_enviados, ping_rtt, tempos FROM resultados_simples R WHERE R.testeid='.$_SESSION["TesteID"].' AND R.fluxoid='.$i.' ORDER BY tempos'); while (($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) != NULL) { $rtt =($row['ping_rtt'] == null) ? 1000.0 : $row['ping_rtt']; if($ipdv[$i] != "ND"){ if($row['jitter'] > floatval($ipdv[$i])) $jitter_status[$i]=$jitter_status[$i]+1; } if($iptd[$i] != "ND"){ if(($rtt/2 )> $iptd[$i]) $rtt_status[$i]=$rtt_status[$i]+1; } $bandamedia[$i] = $bandamedia[$i] + intval($row['throughput']); $penviados[$i] = $penviados[$i] + intval($row['pacotes_enviados']);

73 $jittersoma[$i]=$jittersoma[$i]+$row['jitter']; $rttsoma[$i]= $rttsoma[$i]+$row['ping_rtt']; $pperdidos[$i] = $pperdidos[$i] + $row['pacotes_perdidos']; $cont++; } $bandamedia[$i] = $bandamedia[$i]/$cont; $bandaesperada[$i] = ($_SESSION["Teste_Banda_F".$i]-(336*$penviados[$i])/$cont); if($bandamedia[$i] < $bandaesperada[$i]){ $banda_status[$i]=1; } $pperdidos[$i] = $pperdidos[$i] / $penviados[$i]; if($iplr[$i] != "ND"){ if($pperdidos[$i] > floatval($iplr[$i])) $pperdidos_status[$i]=1; } $jittermedia[$i]=$jittersoma[$i]/$cont; $rttmedia[$i]=$rttsoma[$i]/$cont; $cont = 0; mysqli_free_result($result); } mysqli_close($conn); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Resultados</title> </head> <body> <?php echo "<b> Resultados do Teste:</b> ".$_SESSION["Teste_Nome"]."<br />\n"; echo "<b> Nmero de Fluxos:</b> ".$_SESSION["Teste_Num_Fluxos"]."<br />\n"; echo "<b> IP Lado Mestre:</b> ".$_SESSION["Teste_IP_Mestre"]."<br />\n" ; echo "<b> IP Lado Escravo:</b> ".$_SESSION["Teste_IP_Escravo"]."<br />\n"; echo "<b> Tempo de Teste</b> ".$_SESSION["Teste_Tempo"]." segundos<br /><br />\n"; for($i=1; $i <= $_SESSION["Teste_Num_Fluxos"];$i++) { echo "<b> Fluxo ".$i."</b> : <br />"; echo "<b> Classe QoS:</b> ".$_SESSION["ClasseQos".$i]."<br />\n"; echo "<b> Tipo de Marca:</b> ".(($_SESSION["Teste_Tipo_Marca"]==1)?"DSCP":(($_SESSION["Teste_Tipo_Marca"]==2 )?"IP Precedence":$_SESSION["Teste_Tipo_Marca"]))."<br />\n"; echo "<b> Marca QoS:</b> 0x".$_SESSION["MarcaF".$i]."<br />"; echo "<b> Largura de Banda:</b> ".($_SESSION["Teste_Banda_F".$i])." bps<br />\n"; echo "<b> Tamanho dos Pacotes:</b> ".$_SESSION["Teste_Tam_Pacote_F".$i]." bytes<br />\n";

74 echo "<table border=\"1\" cellspacing=\"1\" cellpadding=\"5\">"; echo "<thead>"; echo " <tr>"; echo "<th> Throughput </th>"; echo " <th>IPTD</th>"; echo " <th>IPDV</th>"; echo " <th>IPLR</th>"; echo "</tr>"; echo " </thead>"; echo " <tbody>"; echo " <tr>"; echo "<td> Mdia Obtida: ".$bandamedia[$i]."bps<br /> Minimo Esperado: ".$bandaesperada[$i]."bps <br /> Status:".(($banda_status[$i]==0)?"<font color=\"#00FF00\"> OK </font>" : "<font color=\"#FF0000\"> NOK </font>")."</td>"; echo "<td> Mdia Obtida: ".number_format($rttmedia[$i], 3, '.', '')." ms <br /> Maximo Esperado: ".$iptd[$i]." ms <br /> Status: ".(($rtt_status[$i]==0)?"<font color=\"#00FF00\"> OK </font>" : "<font color=\"#FF0000\"> NOK </font>")."</td>"; echo "<td> Mdia Obtida: ".number_format($jittermedia[$i], 3, '.', '')." ms <br />Maximo Esperado: ".$ipdv[$i]." ms <br /> Status: ".(($jitter_status[$i]==0)?"<font color=\"#00FF00\"> OK </font>" : "<font color=\"#FF0000\"> NOK </font>")."</td>"; echo "<td> Taxa Obtida: ".number_format($pperdidos[$i], 3, '.', '')." <br /> Maximo Esperado: ".$iplr[$i]." <br /> Status: ".(($pperdidos_status[$i]==0)?"<font color=\"#00FF00\"> OK </font>" : "<font color=\"#FF0000\"> NOK </font>")."</td>"; echo "</tr>"; echo "</tbody>"; echo "</table><br />"; } ?> <b> Graficos: <br /></b> <img src="graficos/resultado_banda.png" alt="resultado_banda"/> <img src="graficos/resultado_jitter.png" alt="resultado_jitter"/> <img src="graficos/resultado_rtt.png" alt="resultado_rtt"/> <img src="graficos/resultado_pperdidos.png" alt="resultado_pperdidos"/> </body> </html>

75 APNDICE H Resultados completos do laboratrio de testes Resultados do Teste: Cenrio 1 - Teste 1 Nmero de Fluxos: 2 IP Lado Mestre: 192.168.1.6 IP Lado Escravo: 192.168.1.10 Tempo de Teste 300 segundos Fluxo 1 : Classe QoS: 1-Tempo Real Interativa Tipo de Marca: DSCP Marca QoS: 0x78 Largura de Banda: 300000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 293960.8bps Minimo Esperado: 291601.12bps Status: OK IPTD Mdia Obtida: 6.272 ms Maximo Esperado: 400 ms Status: OK IPDV Mdia Obtida: 4.129 ms Maximo Esperado: 50 ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: 0.001 Status: OK

Fluxo 2 : Classe QoS: 5-Aplicaes Padro de Redes IP Tipo de Marca: DSCP Marca QoS: 0x28 Largura de Banda: 1700000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 1665608bps Minimo Esperado: 1652411.2bps Status: OK Graficos: IPTD Mdia Obtida: 17.417 ms Maximo Esperado: ND ms Status: OK IPDV Mdia Obtida: 3.967 ms Maximo Esperado: ND ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: ND Status: OK

76

Resultados do Teste: Cenrio 1 - Teste 2 Nmero de Fluxos: 2 IP Lado Mestre: 192.168.1.6 IP Lado Escravo: 192.168.1.10 Tempo de Teste 300 segundos Fluxo 1 : Classe QoS: 1-Tempo Real Interativa Tipo de Marca: DSCP Marca QoS: 0x78 Largura de Banda: 300000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 293960.8bps Minimo Esperado: 291601.12bps Status: OK IPTD Mdia Obtida: 5.246 ms Maximo Esperado: 400 ms Status: OK IPDV Mdia Obtida: 2.529 ms Maximo Esperado: 50 ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: 0.001 Status: OK

Fluxo 2 : Classe QoS: 5-Aplicaes Padro de Redes IP Tipo de Marca: DSCP

77 Marca QoS: 0x28 Largura de Banda: 1700000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 1666156.8bps Minimo Esperado: 1652395.52bps Status: OK Graficos: IPTD Mdia Obtida: 8.301 ms Maximo Esperado: ND ms Status: OK IPDV Mdia Obtida: 2.863 ms Maximo Esperado: ND ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: ND Status: OK

78 Resultados do Teste: Cenrio 1 - Teste 3 Nmero de Fluxos: 2 IP Lado Mestre: 192.168.1.6 IP Lado Escravo: 192.168.1.10 Tempo de Teste 300 segundos Fluxo 1 : Classe QoS: 1-Tempo Real Interativa Tipo de Marca: DSCP Marca QoS: 0x78 Largura de Banda: 300000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 293960.8bps Minimo Esperado: 291601.12bps Status: OK IPTD Mdia Obtida: 6.594 ms Maximo Esperado: 400 ms Status: OK IPDV Mdia Obtida: 3.569 ms Maximo Esperado: 50 ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: 0.001 Status: OK

Fluxo 2 : Classe QoS: 5-Aplicaes Padro de Redes IP Tipo de Marca: DSCP Marca QoS: 0x28 Largura de Banda: 1700000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 1665333.6bps Minimo Esperado: 1652419.04bps Status: OK Graficos: IPTD Mdia Obtida: 8.458 ms Maximo Esperado: ND ms Status: OK IPDV Mdia Obtida: 3.155 ms Maximo Esperado: ND ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: ND Status: OK

79

Resultados do Teste: Cenrio 2 - Teste 1 Nmero de Fluxos: 3 IP Lado Mestre: 192.168.1.6 IP Lado Escravo: 192.168.1.10 Tempo de Teste 300 segundos Fluxo 1 : Classe QoS: 0-Tempo Real Altamente Interativa Tipo de Marca: DSCP Marca QoS: 0x78 Largura de Banda: 200000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 195960.8bps Minimo Esperado: 194401.12bps Status: OK IPTD Mdia Obtida: 5.168 ms Maximo Esperado: 100 ms Status: OK IPDV Mdia Obtida: 2.006 ms Maximo Esperado: 50 ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: 0.001 Status: OK

Fluxo 2 : Classe QoS: 1-Tempo Real Interativa Tipo de Marca: DSCP

80 Marca QoS: 0x50 Largura de Banda: 150000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 146960.8bps Minimo Esperado: 145801.12bps Status: OK IPTD Mdia Obtida: 4.670 ms Maximo Esperado: 400 ms Status: OK IPDV Mdia Obtida: 1.681 ms Maximo Esperado: 50 ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: 0.001 Status: OK

Fluxo 3 : Classe QoS: 5-Aplicaes Padro de Redes IP Tipo de Marca: DSCP Marca QoS: 0x28 Largura de Banda: 1650000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 1616804bps Minimo Esperado: 1603805.6bps Status: OK Graficos: IPTD Mdia Obtida: 11.825 ms Maximo Esperado: ND ms Status: OK IPDV Mdia Obtida: 6.865 ms Maximo Esperado: ND ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: ND Status: OK

81

Resultados do Teste: Cenrio 2 - Teste 2 Nmero de Fluxos: 3 IP Lado Mestre: 192.168.1.6 IP Lado Escravo: 192.168.1.10 Tempo de Teste 300 segundos Fluxo 1 : Classe QoS: 0-Tempo Real Altamente Interativa Tipo de Marca: DSCP Marca QoS: 0x78 Largura de Banda: 200000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 195960.8bps Minimo Esperado: 194401.12bps Status: OK IPTD Mdia Obtida: 5.224 ms Maximo Esperado: 100 ms Status: OK IPDV Mdia Obtida: 2.221 ms Maximo Esperado: 50 ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: 0.001 Status: OK

Fluxo 2 : Classe QoS: 1-Tempo Real Interativa Tipo de Marca: DSCP Marca QoS: 0x50 Largura de Banda: 150000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 146960.8bps Minimo Esperado: 145801.12bps IPTD Mdia Obtida: 4.673 ms Maximo Esperado: 400 ms IPDV Mdia Obtida: 2.552 ms Maximo Esperado: 50 ms IPLR Taxa Obtida: 0.000 Maximo Esperado: 0.001 Status: OK

82 Throughput Status: OK IPTD Status: OK IPDV Status: OK IPLR

Fluxo 3 : Classe QoS: 5-Aplicaes Padro de Redes IP Tipo de Marca: DSCP Marca QoS: 0x28 Largura de Banda: 1650000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 1616216bps Minimo Esperado: 1603822.4bps Status: OK Graficos: IPTD Mdia Obtida: 17.295 ms Maximo Esperado: ND ms Status: OK IPDV Mdia Obtida: 9.048 ms Maximo Esperado: ND ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: ND Status: OK

83

Resultados do Teste: Cenario 2 - Teste 3 Nmero de Fluxos: 3 IP Lado Mestre: 192.168.1.6 IP Lado Escravo: 192.168.1.10 Tempo de Teste 300 segundos Fluxo 1 : Classe QoS: 0-Tempo Real Altamente Interativa Tipo de Marca: DSCP Marca QoS: 0x78 Largura de Banda: 200000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 195960.8bps Minimo Esperado: 194401.12bps Status: OK IPTD Mdia Obtida: 5.012 ms Maximo Esperado: 100 ms Status: NOK IPDV Mdia Obtida: 2.366 ms Maximo Esperado: 50 ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: 0.001 Status: OK

Fluxo 2 : Classe QoS: 1-Tempo Real Interativa Tipo de Marca: DSCP Marca QoS: 0x50 Largura de Banda: 150000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 146960.8bps Minimo Esperado: 145801.12bps Status: OK IPTD Mdia Obtida: 4.179 ms Maximo Esperado: 400 ms Status: NOK IPDV Mdia Obtida: 2.190 ms Maximo Esperado: 50 ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: 0.001 Status: OK

Fluxo 3 : Classe QoS: 5-Aplicaes Padro de Redes IP Tipo de Marca: DSCP Marca QoS: 0x28 Largura de Banda: 1650000 bps Tamanho dos Pacotes: 1500 bytes

84 Throughput Mdia Obtida: 1616804bps Minimo Esperado: 1603805.6bps Status: OK Graficos: IPTD Mdia Obtida: 14.107 ms Maximo Esperado: ND ms Status: OK IPDV Mdia Obtida: 7.629 ms Maximo Esperado: ND ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: ND Status: OK

Resultados do Teste: Cenario 3 - Teste 1 Nmero de Fluxos: 3 IP Lado Mestre: 192.168.1.6 IP Lado Escravo: 192.168.1.10 Tempo de Teste 300 segundos Fluxo 1 :

85 Classe QoS: 0-Tempo Real Altamente Interativa Tipo de Marca: DSCP Marca QoS: 0x78 Largura de Banda: 200000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 195960.8bps Minimo Esperado: 194401.12bps Status: OK IPTD Mdia Obtida: 4.842 ms Maximo Esperado: 100 ms Status: NOK IPDV Mdia Obtida: 3.338 ms Maximo Esperado: 50 ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: 0.001 Status: OK

Fluxo 2 : Classe QoS: 1-Tempo Real Interativa Tipo de Marca: DSCP Marca QoS: 0x50 Largura de Banda: 150000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 146960.8bps Minimo Esperado: 145801.12bps Status: OK IPTD Mdia Obtida: 4.832 ms Maximo Esperado: 400 ms Status: NOK IPDV Mdia Obtida: 2.591 ms Maximo Esperado: 50 ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: 0.001 Status: OK

Fluxo 3 : Classe QoS: 5-Aplicaes Padro de Redes IP Tipo de Marca: DSCP Marca QoS: 0x28 Largura de Banda: 2000000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 1575604.8bps Minimo Esperado: 1944104.16bps Status: NOK Graficos: IPTD Mdia Obtida: 258.113 ms Maximo Esperado: ND ms Status: OK IPDV Mdia Obtida: 9.646 ms Maximo Esperado: ND ms Status: OK IPLR Taxa Obtida: 0.195 Maximo Esperado: ND Status: OK

86

Resultados do Teste: Cenario 3 - Teste 2 Nmero de Fluxos: 3 IP Lado Mestre: 192.168.1.6 IP Lado Escravo: 192.168.1.10 Tempo de Teste 300 segundos Fluxo 1 : Classe QoS: 0-Tempo Real Altamente Interativa Tipo de Marca: DSCP Marca QoS: 0x78 Largura de Banda: 200000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 195960.8bps IPTD IPDV IPLR Taxa Obtida: 0.000 Maximo Esperado:

Mdia Obtida: 4.952 Mdia Obtida: ms 2.710 ms

87 Throughput Minimo Esperado: 194401.12bps Status: OK IPTD Maximo Esperado: 100 ms Status: OK IPDV Maximo Esperado: 50 ms Status: OK IPLR 0.001 Status: OK

Fluxo 2 : Classe QoS: 1-Tempo Real Interativa Tipo de Marca: DSCP Marca QoS: 0x50 Largura de Banda: 150000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 146960.8bps Minimo Esperado: 145801.12bps Status: OK IPTD Mdia Obtida: 4.635 ms Maximo Esperado: 400 ms Status: OK IPDV Mdia Obtida: 2.776 ms Maximo Esperado: 50 ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: 0.001 Status: OK

Fluxo 3 : Classe QoS: 5-Aplicaes Padro de Redes IP Tipo de Marca: DSCP Marca QoS: 0x28 Largura de Banda: 2000000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 1575448bps Minimo Esperado: 1944073.92bps Status: NOK Graficos: IPTD Mdia Obtida: 240.895 ms Maximo Esperado: ND ms Status: OK IPDV Mdia Obtida: 9.996 ms Maximo Esperado: ND ms Status: OK IPLR Taxa Obtida: 0.195 Maximo Esperado: ND Status: OK

88

Resultados do Teste: Cenario 3 - Teste 3 Nmero de Fluxos: 3 IP Lado Mestre: 192.168.1.6 IP Lado Escravo: 192.168.1.10 Tempo de Teste 300 segundos Fluxo 1 : Classe QoS: 0-Tempo Real Altamente Interativa Tipo de Marca: DSCP Marca QoS: 0x78 Largura de Banda: 200000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 195960.8bps Minimo Esperado: 194401.12bps Status: OK IPTD Mdia Obtida: 5.151 ms Maximo Esperado: 100 ms Status: OK IPDV Mdia Obtida: 2.840 ms Maximo Esperado: 50 ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: 0.001 Status: OK

Fluxo 2 : Classe QoS: 1-Tempo Real Interativa Tipo de Marca: DSCP Marca QoS: 0x50

89 Largura de Banda: 150000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 146960.8bps Minimo Esperado: 145801.12bps Status: OK IPTD Mdia Obtida: 4.927 ms Maximo Esperado: 400 ms Status: OK IPDV Mdia Obtida: 2.469 ms Maximo Esperado: 50 ms Status: OK IPLR Taxa Obtida: 0.000 Maximo Esperado: 0.001 Status: OK

Fluxo 3 : Classe QoS: 5-Aplicaes Padro de Redes IP Tipo de Marca: DSCP Marca QoS: 0x28 Largura de Banda: 2000000 bps Tamanho dos Pacotes: 1500 bytes Throughput Mdia Obtida: 1570469.6bps Minimo Esperado: 1944069.44bps Status: NOK Grficos: IPTD Mdia Obtida: 259.917 ms Maximo Esperado: ND ms Status: OK IPDV Mdia Obtida: 9.759 ms Maximo Esperado: ND ms Status: OK IPLR Taxa Obtida: 0.198 Maximo Esperado: ND Status: OK

90

91 APNDICE I Exemplos de telas de execuo do sistema

Tela inicial do sistema.

Tela de configurao de novo teste lado mestre.

92

Tela de configurao de novo teste lado escravo.

Tela com o resumo das configuraes do testes, apresentada antes de iniciar o teste.

93

Tela de estado do andamento do teste.

Tela de estado do andamento do teste.

94

Tela de estado do andamento do teste.

Tela de Resultados do Teste.

95 APNDICE J Configuraes dos roteadores

Roteador 1 Cenrio 1: roteador1#show running-config Building configuration... ! version AR1700i+ - 1.0.42 ! hostname roteador1 ! mark-rule cenario1 mark 1 ip any any dscp class AF33 mark-rule cenario1 mark 2 ip any any dscp class AF11 ! ip route 0.0.0.0 0.0.0.0 192.168.1.2 ! interface ethernet 0 ip mark cenario1 in ip address 192.168.1.5 255.255.255.252 no ipx network mtu 1500 txqueuelen 100 no shutdown ! interface loopback 0 ip address 127.0.0.1 255.0.0.0 no shutdown ! interface serial 0 physical-layer synchronous encapsulation ppp no backup clock rate 2048000 clock type internal no invert txclock ip policy 1 0 300000bps queue fifo ip policy 2 1 1700000bps queue fifo ip address 192.168.1.1 255.255.255.252 no ipx network ip peer-address 192.168.1.2 no ip vj keepalive interval 5 keepalive timeout 3 no authentication no shutdown ! roteador1#

96 Roteador 1 Cenrios 2 e 3: roteador1#show running-config Building configuration... ! version AR1700i+ - 1.0.42 ! hostname roteador1 ! mark-rule cenario2e3 mark 1 ip any any dscp class AF33 mark-rule cenario2e3 mark 2 ip any any dscp class AF22 mark-rule cenario2e3 mark 3 ip any any dscp class AF11 ! ip route 0.0.0.0 0.0.0.0 192.168.1.2 ! interface ethernet 0 ip mark cenario2e3 in ip address 192.168.1.5 255.255.255.252 no ipx network mtu 1500 txqueuelen 100 no shutdown ! interface loopback 0 ip address 127.0.0.1 255.0.0.0 no shutdown ! interface serial 0 physical-layer synchronous encapsulation ppp no backup clock rate 2048000 clock type internal no invert txclock ip policy 1 0 200000bps queue fifo ip policy 2 0 150000bps queue fifo ip policy 3 1 1650000bps queue fifo ip address 192.168.1.1 255.255.255.252 no ipx network ip peer-address 192.168.1.2 no ip vj keepalive interval 5 keepalive timeout 3 no authentication no shutdown ! roteador1#

97 Roteador 2 Cenrio 1: roteador2#show running-config Building configuration... ! version AR1700i+ - 1.0.42 ! hostname roteador2 ! mark-rule cenario1 mark 1 ip any any dscp class AF33 mark-rule cenario1 mark 2 ip any any dscp class AF11 ! ip route 0.0.0.0 0.0.0.0 192.168.1.1 ! interface ethernet 0 ip mark cenario1 in ip address 192.168.1.9 255.255.255.252 no ipx network mtu 1500 txqueuelen 100 no shutdown ! interface loopback 0 ip address 127.0.0.1 255.0.0.0 no shutdown ! interface serial 0 physical-layer synchronous encapsulation ppp no backup no clock rate clock type external no invert txclock ip policy 1 0 300000bps queue fifo ip policy 2 1 1700000bps queue fifo ip address 192.168.1.2 255.255.255.252 no ipx network ip peer-address 192.168.1.1 no ip vj keepalive interval 5 keepalive timeout 3 no authentication no shutdown ! roteador2#

98 Roteador 2 Cenrios 2 e 3: roteador2#show running-config Building configuration... ! version AR1700i+ - 1.0.42 ! hostname roteador2 ! mark-rule cenario2e3 mark 1 ip any any dscp class AF33 mark-rule cenario2e3 mark 2 ip any any dscp class AF22 mark-rule cenario2e3 mark 3 ip any any dscp class AF11 ! ip route 0.0.0.0 0.0.0.0 192.168.1.1 ! interface ethernet 0 ip mark cenario2e3 in ip address 192.168.1.9 255.255.255.252 no ipx network mtu 1500 txqueuelen 100 no shutdown ! interface loopback 0 ip address 127.0.0.1 255.0.0.0 no shutdown ! interface serial 0 physical-layer synchronous encapsulation ppp no backup no clock rate clock type external no invert txclock ip policy 1 0 200000bps queue fifo ip policy 2 0 150000bps queue fifo ip policy 3 1 1650000bps queue fifo ip address 192.168.1.2 255.255.255.252 no ipx network ip peer-address 192.168.1.1 no ip vj keepalive interval 5 keepalive timeout 3 no authentication no shutdown ! roteador2#

S-ar putea să vă placă și