Ambiente de Testes

download Ambiente de Testes

of 99

Transcript of Ambiente de Testes

  • 8/2/2019 Ambiente de Testes

    1/99

    UNIVERSIDADE SO FRANCISCOEngenharia de Computao

    BRUNO GALASSO MOLINARI

    IMPLEMENTAO DE AMBIENTE DE TESTESAUTOMATIZADOS PARA AVALIAO DE PARMETROS

    DE QoS EM REDES DE COMUNICAO DE DADOSBASEADO EM SOFTWARE LIVRE

    Itatiba2010

  • 8/2/2019 Ambiente de Testes

    2/99

    BRUNO GALASSO MOLINARIRA 002200600186

    IMPLEMENTAO DE AMBIENTE DE TESTESAUTOMATIZADOS PARA AVALIAO DE PARMETROS

    DE QoS EM REDES DE COMUNICAO DE DADOSBASEADO EM SOFTWARE LIVRE

    Monografia apresentada ao Curso deEngenharia de Computao daUniversidade So Francisco, como requisitoparcial para obteno do ttulo de Bacharelem Engenharia de Computao.

    Orientador: Prof. Marcelo AugustoGonalves Bardi

    Itatiba2010

  • 8/2/2019 Ambiente de Testes

    3/99

    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.

  • 8/2/2019 Ambiente de Testes

    4/99

    RESUMO

    Nos ltimos anos, houve um crescimento em aplicaes de rede que utilizam recursosmultimdia, como vdeo em tempo real, VoIP, videoconferncia, telemedicina e muitas outras.Essas aplicaes normalmente exigem que a rede por onde trafegam possuam parmetros dequalidade de servio (QoS) bem definidos, o que requer que muitas instalaes econfiguraes de rede atualmente sejam realizadas visando obter esta garantia de qualidadepara alguns servios. Dessa forma, este trabalho objetiva desenvolver um ambiente paratestar, de forma automatizada, se a configurao de uma determinada rede est de acordo comos parmetros exigidos pelas aplicaes conforme as informaes fornecidas pelo usurio.Todo o desenvolvimento do sistema foi realizado utilizando-se como base o sistemaoperacional Linux e softwares como ping, iperf, apache, PHP e MySQL. Atravs de umainterface 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 envolvidose realiza o teste em segundo plano, durante o tempo determinado pelo usurio. Ao final doteste o sistema avalia as informaes obtidas e informa os resultados ao usurio atravs detabelas, 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 suaconfigurao.

    Palavras-chave: parmetros de QoS. redes de computadores. testes.

  • 8/2/2019 Ambiente de Testes

    5/99

    ABSTRACT

    In recent years, has been a growth in network applications that use multimedia resources likereal time video, VoIP (Voice over IP), video conference, telemedicine and many more. Theseapplications typically require of the network through where passing have parameters ofquality of service (QoS) well defined, what requires that many installations and networkconfigurations 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 theapplications, based in information provided by user. All development of the system wasperformed 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 parametersof 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 setby user. At the end of the test, the system evaluates the information obtained and reports theresults to the user through tables, graphs and comments on the conditions found. From thisinformation it is possible to know if the network is configured correctly or if changes arerequired in your configuration.

    Keywords: QoS parameters. computer networks. tests.

  • 8/2/2019 Ambiente de Testes

    6/99

    LISTA DE FIGURAS

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

  • 8/2/2019 Ambiente de Testes

    7/99

    LISTA DE TABELAS

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

  • 8/2/2019 Ambiente de Testes

    8/99

    LISTA DE ABREVIATURAS E SIGLAS

    AFAssured Forwarding

    BTCBulk Transport Capacity

    Diffserv - Differentiated Service

    DS Differentiated Service

    DSCP - Diffserv code point

    EFExpedited Forwarding

    FIFO First In, First Out

    IETFInternet Engineering Task ForceIntserv Integrated Services

    IPInternet Protocol

    IPDVIP Delay Variation

    IPERIP Packet Errored Ratio

    IPLRIP Packet Loss Ratio

    IPTDIP Transfer Delay

    IPPMIP Performance Metrics

    ISOInternational Organization for Standardization

    ITUInternational Telecommunication Union

    ITU-TITU Telecommunication Standardization Sector

    OWDOne-Way Delay

    PHBPer-Hop Behaviors

    PHPHypertext Preprocessor

    QoSQuality of Service

    RFCRequest for Comments

    RSVPResource Reservation Protocol

    RTDRound Trip Delay

    RTTRound Trip Time

    SLAService Level Agreements

    TCPTransmission Control Protocol

    TOSType of Service

    UDPUser Datagram Protocol

    UMLUnified Modeling Language

  • 8/2/2019 Ambiente de Testes

    9/99

    UTCCoordinated Universal Time

    VOIPVoice over IP

    WFQWeighted Far Queue

  • 8/2/2019 Ambiente de Testes

    10/99

    SUMRIO

    1 INTRODUO ................................................................................................................... 121.1 OBJETIVOS ....................................................................................................................... 131.2 ORGANIZAO DO TRABALHO ................................................................................. 132 ASPECTOS TERICOS .................................................................................................... 152.1 ARQUITETURA INTERNETE TCP/IP............................................................................ 152.2 QUALIDADE DE SERVIO ............................................................................................ 162.2.1 Parmetros de QoS .......................................................................................................... 172.2.1.1 Confiabilidade .............................................................................................................. 172.2.1.2Delay............................................................................................................................. 182.2.1.3Jitter.............................................................................................................................. 192.2.1.4 Throughput................................................................................................................... 202.2.1.5 Classes de Servio ........................................................................................................ 212.2.2 Tcnicas para Alcanar Qualidade de Servio ................................................................ 222.2.2.1 Superdimensionamento ................................................................................................ 222.2.2.2 Armazenamento emBuffers.......................................................................................... 232.2.2.3 Modelagem de Trfego ................................................................................................. 232.2.2.4 Mecanismos de Escalonamento .................................................................................... 242.2.2.4.1 FIFO .......................................................................................................................... 242.2.2.4.2 Prioridade .................................................................................................................. 252.2.2.4.3 Varredura Cclica ....................................................................................................... 252.2.2.4.4 WFQ .......................................................................................................................... 252.2.2.5 Mecanismos de Regulao ........................................................................................... 262.2.2.5.1 Algoritmo de Balde Furado ....................................................................................... 262.2.2.5.2 Algoritmo de Balde de Smbolos ............................................................................... 27

  • 8/2/2019 Ambiente de Testes

    11/99

    2.2.3 Servios Integrados e Servios Diferenciados ................................................................ 272.2.3.1 Servios Integrados ...................................................................................................... 27

    2.2.3.2 Servios Diferenciados ................................................................................................. 28

    2.2.3.3Intserv XDiffserv ......................................................................................................... 292.2.4 Utilizao de QoS em redes ............................................................................................. 303 METODOLOGIA ................................................................................................................ 323.1 FERRAMENTAS ............................................................................................................... 323.2 DESENVOLVIMENTO ..................................................................................................... 333.3 REQUISITOS ..................................................................................................................... 343.4 CASOS DE USO ................................................................................................................ 353.4.1 Iniciar Teste Lado Mestre ................................................................................................ 353.4.2 Iniciar Teste Lado Escravo .............................................................................................. 363.4.3 Iniciar Testes Anteriores .................................................................................................. 363.5 DIAGRAMAS DE SEQNCIA ...................................................................................... 363.6 DIAGRAMA DE CLASSES .............................................................................................. 383.7 MODELAGEM DE DADOS ............................................................................................. 383.8 METODOLOGIA DE TESTES ......................................................................................... 393.9 LABORATRIO DE TESTES .......................................................................................... 403.10 CENRIOS DE TESTES ................................................................................................. 403.10.1 Cenrio 1 ....................................................................................................................... 403.10.2 Cenrio 2 ....................................................................................................................... 413.10.3 Cenrio 3 ....................................................................................................................... 413.11 REALIZAO DOS TESTES ......................................................................................... 424 RESULTADOS E DISCUSSES ....................................................................................... 444.1 RESULTADOS NO CENRIO 1 ...................................................................................... 444.2 RESULTADOS NO CENRIO 2 ...................................................................................... 454.3 RESULTADOS NO CENRIO 3 ...................................................................................... 46

  • 8/2/2019 Ambiente de Testes

    12/99

    4.4 CONSIDERAES SOBRE OS RESULTADOS ............................................................. 485 CONCLUSO ...................................................................................................................... 50

    5.1 EXTENSES ..................................................................................................................... 50

    REFERNCIAS ..................................................................................................................... 52REFERNCIAS CONSULTADAS ....................................................................................... 54APNDICES ........................................................................................................................... 55APNDICE ASHELL SCRIPTPARA TRATAMENTO DOS DADOS GERADOS

    PELOIPERF: APAGARESUMO.SH .................................................................................. 56

    APNDICE B

    SHELL SCRIPTPARA TRATAMENTO DOS DADOS GERADOSPELOPING: PINGS.SH ........................................................................................................ 57APNDICE CAGENTE ESCRAVO: SERVIDOR.PHP ................................................ 58APNDICE DSCRIPTPHP PARA ARMAZENAR DADOS DO TESTE E FLUXO

    NA BASE DE DADOS E INICIALIZAR O AGENTE MESTRE: SALVAR_TESTE.PHP

    .................................................................................................................................................. 61APNDICE EAGENTE MESTRE: CLIENTE.PHP ...................................................... 63APNDICE FSCRIPT PHP PARA GERAR GRAFICOS: GERA_GRAFICO.PHP .. 67APNDICE GPAGINAPHP COM OS RESULTADOS E GRFICOS DO TESTE:

    RESULTADOS_TESTE.PHP ................................................................................................ 72APNDICE HRESULTADOS COMPLETOS DO LABORATRIO DE TESTES ... 75APNDICE I EXEMPLOS DE TELAS DE EXECUO DO SISTEMA ................... 91APNDICE J CONFIGURAES DOS ROTEADORES ............................................ 95

  • 8/2/2019 Ambiente de Testes

    13/99

    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 SeriesIINetwork

    Assistant[2] da empresa Fluke Networks [3] ou o SmartClass Ethernet[4] da empresaJDSU

    [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] daJDSU, 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

  • 8/2/2019 Ambiente de Testes

    14/99

    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 depacotes 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

  • 8/2/2019 Ambiente de Testes

    15/99

    14

    durante o desenvolvimento e quais as principais contribuies desse projeto.

  • 8/2/2019 Ambiente de Testes

    16/99

    15

    2 ASPECTOS TERICOS

    Esse captulo apresenta a fundamentao terica para o desenvolvimento do sistema e

    anlise dos seus resultados.

    2.1 ArquiteturaInternet e TCP/IP

    O modelo de referncia TCP/IP utilizado como base para aInternet. um modelo dequatro 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 daInternetso uma sute de protocolos, onde os mais conhecidos so o

    TCP e oIP, que devido a sua popularidade deram o nome ao modelo de referncia daInternet.

    Essa sute de protocolos inclui, alm do TCP/IP, muitos outros protocolos divididos nas trscamadas superiores do modelo de referncia TCP/IP [8].

  • 8/2/2019 Ambiente de Testes

    17/99

    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.

    AISOdefine 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].

    AIETFconsidera 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

  • 8/2/2019 Ambiente de Testes

    18/99

    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 depadres de mtricas para medio de Qualidade de Servio em redes IP, a IPPMe a ITU-T

    [14].

    AIPPM parte daIETF, 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 dacomparao do nmero de pacotes transmitidos pela origem com o nmero de pacotes

  • 8/2/2019 Ambiente de Testes

    19/99

    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, aITU-Tdefine a mtricaIP Packet Loss Ratio para os pacotes perdidos e aIP Packet

    Errored Ratio para pacotes com erro [14].

    2.2.1.2Delay

    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

  • 8/2/2019 Ambiente de Testes

    20/99

    19

    origem ao hostde destino, o tempo que se passa desde que o primeiro bitdeixa 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 UTCe

    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, noso sensveis ao atraso. Se todos os pacotes estiverem uniformemente atrasados alguns

    segundos, no haver nenhum dano [13].

    AIPPMutiliza as duas mtricas, OWD eRTD, j aITU-Tdefine apenas a mtricaIP

    Transfer Delay com as mesmas caractersticas da mtrica One-Way Delay [14].

    2.2.1.3Jitter

    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 jitterso 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

  • 8/2/2019 Ambiente de Testes

    21/99

    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 jitterpode ser eliminado pelo

    armazenamento em bufferno 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 bufferno aceitvel [13].Segundo Braun et al. [14], tanto aITU-Tquanto aIPPMutilizam 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). AITU-Tdefine para classes de trfegode tempo real o limite mximo de 50 ms de variao de atraso.

    Conforme Braun et al. [14], nas definies daIPPMe daITU-T, oIPDV 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.

  • 8/2/2019 Ambiente de Testes

    22/99

    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). AITU-Tsugere a definio de seis classes resumidas na Tabela 1.

    TABELA 1 - Classes de servioITU-T

    Classe de Servio Caractersticas

    0 Tempo real, sensvel aojitter, altamente interativa

    1 Tempo real, sensvel aojitter, interativa

    2 Transao de dados, altamente interativa

    3 Transao de dados, interativa

    4 Baixa perda (transferncia de dados, streaming de vdeo)

    5 Aplicaes padro de redesIP

    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-Tassocia 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 deaplicao. Os valores para cada classe de servio podem ser vistos na Tabela 2.

  • 8/2/2019 Ambiente de Testes

    23/99

    22

    TABELA 2 - Classes de servio e limites mximos

    Classe de Servio IPTD (ms) IPDV(ms) IPLR IPER

    0 100 50 1x10-3 1x10-4

    1 400 50 1x10-3 1x10-4

    2 100 N* 1x10-3 1x10-4

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

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

    5 N* N* N* N**NNo 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

  • 8/2/2019 Ambiente de Testes

    24/99

    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 bufferfique 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].

  • 8/2/2019 Ambiente de Testes

    25/99

    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,jittere perda de pacotes.

    A seguir sero apresentadas as mais importantes disciplinas de escalonamento.

    2.2.2.4.1FIFO

    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.

  • 8/2/2019 Ambiente de Testes

    26/99

    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 cabealhoIP. 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

  • 8/2/2019 Ambiente de Testes

    27/99

    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.

  • 8/2/2019 Ambiente de Testes

    28/99

    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

  • 8/2/2019 Ambiente de Testes

    29/99

    28

    Entre 1995 e 1997, a IETFdedicou um grande esforo criao de uma arquitetura

    para multimdia de fluxo. Este trabalho resultou em mais de duas dezenas de RFCs,

    comeando com asRFCs 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 IETFpara a arquitetura de

    servios integrados oRSVP. 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 RFC2212, 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 RFC2211, 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

    AIETFpadronizou 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

  • 8/2/2019 Ambiente de Testes

    30/99

    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], aIETFdecidiu utilizar seis bits do campo TOS

    do cabealhoIP para realizar a marcao dos pacotes,esses seis bits so chamados deDSCP.

    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 repasseacelerado (EF) e um de repasse assegurado (AF) respectivamente pelasRFCs 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 queestejam sofrendo congestionamento: baixo, mdio e alto. Assim, definindo doze classes de

    servio.

    2.2.3.3Intserv XDiffserv

    OIntserv capaz de prover uma qualidade de servio parecida com as de tecnologias

  • 8/2/2019 Ambiente de Testes

    31/99

    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 Internetatual). Ainda possui uma flexibilidade muito maiorque 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 deInternetvendem atualmente servios de acesso com

    garantias de qualidade de servio, mas de acordo com Xiao [17], essa garantia s vlidaenquanto 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 osparmetros mximos de largura de banda, atraso, jittere nmero de pacotes perdidos em uma

  • 8/2/2019 Ambiente de Testes

    32/99

    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.

  • 8/2/2019 Ambiente de Testes

    33/99

    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 softwareApache 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 softwareMySQL verso 5 (http://www.mysql.com).

    O software utilizado pelo sistema para gerar os fluxos de dados o iperfverso 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 softwarephpmyadmin (http://www.phpmyadmin.net) foi

    usado para a criao e manutenes na base de dados.

  • 8/2/2019 Ambiente de Testes

    34/99

    33

    3.2 Desenvolvimento

    Foram desenvolvidos scripts em shellscript(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 iperfeping;

    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 diagramasDIA (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.

  • 8/2/2019 Ambiente de Testes

    35/99

    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 softwareiperf.

    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 endereosIPs 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

    softwaresping 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 exibi-

    los 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.

  • 8/2/2019 Ambiente de Testes

    36/99

    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 Sistema de Teste de QoS

    Ator Envolvido: Usurio

    PR-CONDIO1Ter acesso ao sistema.

    DESCRIO DO CASO1Clicar em iniciar novo Teste Mestre;2Inserir dados bsicos do teste;3Inserir dados dos fluxos;4Confirmar configuraes;5Se ocorrerem erros, fim.6Caso contrrio visualizar resultados.

    PS-CONDIO1Teste realizado.2Resultados exibidos.

  • 8/2/2019 Ambiente de Testes

    37/99

    36

    3.4.2 Iniciar Teste Lado Escravo

    Nome do Caso de Uso: Iniciar Teste Lado Escravo Sistema de Teste de QoS

    Ator Envolvido: Usurio

    PR-CONDIO1Ter acesso ao sistema

    DESCRIO DO CASO1Clicar em iniciar novo Teste Escravo;2Inserir dados do teste;3Se ocorrerem erros, fim.4Caso contrrio teste realizado com sucesso.

    PS-CONDIO1Teste realizado.

    3.4.3 Iniciar Testes Anteriores

    Nome do Caso de Uso: Visualizar Testes Anteriores Sistema de Teste de QoS

    Ator Envolvido: Usurio

    PR-CONDIO1Ter acesso ao sistema.2Existirem testes j realizados

    DESCRIO DO CASO1Clicar em iniciar Visualizar Resultados Anteriores;2Selecionar o teste desejado;3Visualizar resultados.

    PS-CONDIO1Resultados exibidos.

    3.5 Diagramas de Seqncia

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

  • 8/2/2019 Ambiente de Testes

    38/99

    37

    FIGURA 3 - Diagrama de seqncia de um teste completo

  • 8/2/2019 Ambiente de Testes

    39/99

    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;

  • 8/2/2019 Ambiente de Testes

    40/99

    39

    resultados_simples: armazena os resultados obtidos a partir das ferramentas iperfe

    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 AR-

    1700 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.

  • 8/2/2019 Ambiente de Testes

    41/99

    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 portasEthernet (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.

  • 8/2/2019 Ambiente de Testes

    42/99

    41

    TABELA 3 - Configuraes dos fluxos de dados no cenrio 1

    Fluxo Classe Largura deBanda (bps)

    Tamanho dosPacotes (bytes)

    1 1 - Tempo real, sensvel aojitter, interativa 300 000 64

    2 5 - Aplicaes padres de redesIP 1 700 000 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 Classe Largura deBanda (bps)

    Tamanho dosPacotes (bytes)

    1 0 - Tempo real, sensvel aojitter, altamenteinterativa

    200 000 128

    2 1 - Tempo real, sensvel aojitter, interativa 150 000 64

    3 5 - Aplicaes padres de redesIP 1 650 000 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, paraverificar se o excesso de trfego desse fluxo no ir influenciar no escalonamento dos fluxos

  • 8/2/2019 Ambiente de Testes

    43/99

    42

    de maior prioridade.

    TABELA 5 - Configuraes dos fluxos de dados no cenrio 3

    Fluxo Classe Largura deBanda (bps)

    Tamanho dosPacotes (bytes)

    1 0 - Tempo real, sensvel aojitter, altamenteinterativa

    200 000 128

    2 1 - Tempo real, sensvel aojitter, interativa 150 000 64

    3 5 - Aplicaes padres de redesIP 1 650 000 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 iperfao 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.

  • 8/2/2019 Ambiente de Testes

    44/99

    43

    FIGURA 7 - Laboratrio de testes viso geral

    FIGURA 8 - Laboratrio de testes roteadores

  • 8/2/2019 Ambiente de Testes

    45/99

    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) IPLR

    1 >= 291 601,12 < 400 < 50 < 0,001

    2 >= 1 652 419,04 N N N*NNo especificado

    TABELA 7 - Resultados dos testes no cenrio 1

    Fluxo Teste Throughput (bps) IPTD (ms) IPDV(ms) IPLR

    1

    1 293 960,8 6,772 4,129 0,000

    2 293 960,8 5,246 2,529 0,0003 293 960,8 6,594 3,569 0,000

    2

    1 1 665 608,0 17,417 3,967 0,000

    2 1 666 156,8 8,301 2,863 0,000

    3 1 665 333,6 8,458 3,155 0,000

    Podemos observar que todos os resultados ficaram dentro dos parmetros esperados e

    o desempenho do software ficou de acordo com o configurado.

  • 8/2/2019 Ambiente de Testes

    46/99

    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) IPLR

    1 >= 194 401,12 < 100 < 50 < 0,001

    2 >= 145 801,12 < 400 < 50 < 0,0013 >= 1 603 805,60 N N N

    *NNo especificado

  • 8/2/2019 Ambiente de Testes

    47/99

    46

    TABELA 9 - Resultados dos testes no cenrio 2

    Fluxo Teste Throughput (bps) IPTD (ms) IPDV(ms) IPLR

    1

    1 195 960,8 5,168 2,006 0,000

    2 195 960,8 5,224 2,221 0,000

    3 195 960,8 5,012 2,366 0,000

    2

    1 146 960,8 4,670 1,681 0,000

    2 146 960,8 4,673 2,552 0,000

    3 146 960,8 4,179 2,190 0,000

    3

    1 1 616 804,0 11,825 6,865 0,000

    2 1 616 216,0 17,295 9,048 0,0003 1 616 804,0 14,107 7,629 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).

  • 8/2/2019 Ambiente de Testes

    48/99

    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) IPLR1 >= 194 401,12 < 100 < 50 < 0,001

    2 >= 145 801,12 < 400 < 50 < 0,001

    3 >= 1 944 104,16 N N N*NNo especificado

  • 8/2/2019 Ambiente de Testes

    49/99

    48

    TABELA 11 - Resultados dos testes no cenrio 3

    Fluxo Teste Throughput (bps) IPTD (ms) IPDV(ms) IPLR

    11 195 960,8 4,842 3,338 0,0002 195 960,8 4,952 2,710 0,000

    3 195 960,8 5,151 2,366 0,000

    2

    1 146 960,8 4,832 2,840 0,000

    2 146 960,8 4,635 2,776 0,000

    3 146 960,8 4,927 2,469 0,000

    3

    1 1 575 604,8 258,113 9,646 0,195

    2 1 575 448,0 240,895 9,996 0,195

    3 1 570 469,6 259,917 9,759 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 comlargura 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 iperfcom pacotes pequenos, no foi possvel realizar os

  • 8/2/2019 Ambiente de Testes

    50/99

    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.

  • 8/2/2019 Ambiente de Testes

    51/99

    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 ferramentasping 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,

  • 8/2/2019 Ambiente de Testes

    52/99

    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.

  • 8/2/2019 Ambiente de Testes

    53/99

    52

    REFERNCIAS

    1 KUROSE, J. F.; ROSS, K. W. Redes de Computadores e a Internet: uma abordagem top-

    down. 3 edio. So Paulo: Pearson, 2006. 634 p.

    2 FLUKE NETWORKS. One Touch Series II: Overview. Disponvel em:

    . Acesso em: 08 mar.

    2010.

    3 FLUKE NETWORKS. Test and Troubleshoot. Disponvel em:

    . Acesso em: 08 mar. 2010.

    4 JDSU. SmartClass Ethernet. Disponvel em: . Acesso em: 08 mar. 2010.

    5 JDSU. Acess Network Test. Disponvel em:

    . Acesso em: 08 mar. 2010.

    6 FLUKE NETWORKS. EtherScope Series II: Overview. Disponvel em:

    . Acesso em: 08 mar. 2010.

    7 JDSU. T-BERD 4000 Multiple Services Test Platform. Disponvel em:

    . Acesso em: 08 mar. 2010.

    8 CISCO SYSTEMS. Internetworking Technology Handbook: Internet Protocols (IP).

    Disponvel em:

  • 8/2/2019 Ambiente de Testes

    54/99

    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:

    . Acesso em: 12 abr. 2010.

    11 ITUINTERNATIONAL TELECOMMUNICATION UNION. Terms and definitions

    related to quality of service and network performance including dependability.

    Disponvel em: . 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.

  • 8/2/2019 Ambiente de Testes

    55/99

    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:

    . 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: .

    Acesso em: 06 mar. 2010.

    RNPREDE NACIONAL DE ENSINO E PESQUISA. QoS. Disponvel em:

    . Acesso em: 27 fev. 2010.

  • 8/2/2019 Ambiente de Testes

    56/99

    55

    APNDICES

  • 8/2/2019 Ambiente de Testes

    57/99

    56

    APNDICE AShellscript 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 desnecessariaslinhas=`cat $3 | grep -in ",0.0-" | grep -v ",0.0-1\.0" | cut -d ',' -f 7`fluxo=$2teste=$1for i in $linhas; do

    sed "/"$i"/d" $3 > tmp$3cat tmp$3 > $3rm tmp$3

    donecont=0echo $contlinhas=`cat $3`for i in $linhas; do

    if [ "$cont" -eq 0 ]; thentinicial="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

    ficolarray[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)" $6done

  • 8/2/2019 Ambiente de Testes

    58/99

    57

    APNDICE BShell script para tratamento dos dados gerados peloping: 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=$2teste=$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]} WHEREtesteid=$1 AND fluxoid=$2 ANDtempos=((HOUR(${colarray[0]})*60*60)+(MINUTE(${colarray[0]})*60)+SECOND(${colarray[0]}))" $6

    done

  • 8/2/2019 Ambiente de Testes

    59/99

    58

    APNDICE CAgente escravo: servidor.php

  • 8/2/2019 Ambiente de Testes

    60/99

    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])

  • 8/2/2019 Ambiente de Testes

    61/99

    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

  • 8/2/2019 Ambiente de Testes

    62/99

    61

    APNDICE DScriptPHP para armazenar dados do teste e fluxo na base de dados einicializar o agente mestre: salvar_teste.php

  • 8/2/2019 Ambiente de Testes

    63/99

    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();

    ?>

  • 8/2/2019 Ambiente de Testes

    64/99

    63

    APNDICE EAgente mestre: cliente.php

  • 8/2/2019 Ambiente de Testes

    65/99

    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

  • 8/2/2019 Ambiente de Testes

    66/99

    65

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

    }

    }

    for($i=1; $i

  • 8/2/2019 Ambiente de Testes

    67/99

    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

  • 8/2/2019 Ambiente de Testes

    68/99

    67

    APNDICE FScript PHP para gerar graficos: gera_grafico.php

  • 8/2/2019 Ambiente de Testes

    69/99

    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 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 RemoveSerie("BandaF".$i);

  • 8/2/2019 Ambiente de Testes

    70/99

    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 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$