Archive for fevereiro \26\UTC 2010

O que é Traffic shaping, afinal?

26 de fevereiro de 2010

Rodrigo Filipe Silva Carramate


Traffic shaping [1], ao contrário do que muitos pensam, não é apenas uma forma de os provedores comerciais limitarem taxas de transferência dos chamados heavy users, que transferem muita informação pela Internet. É bem verdade que há inúmeros relatos de usuários que dizem ter sido afetados pelo traffic shaping, sobretudo daqueles adeptos do peer-to-peer (como eMule e BitTorrent) [2], mas esta prática questionável por parte dos provedores está longe de ser a única utilidade do shaping, que, quando bem utilizado, pode tornar as redes muito mais produtivas.

Do inglês shaping (em português, formatar ou modelar), o nome já elucida bastante a finalidade do procedimento, que nada mais é do que modelar a banda da rede, ou ainda atribuir um perfil de controle de banda à rede.

O leitor pode, então, se perguntar porque deveria querer introduzir limites em sua rede, quando, na verdade, quer maximizar sua capacidade. Para responder a esta pergunta devemos nos lembrar que os diferentes tipos de tráfego na rede também têm diferentes prioridades: ninguém ficaria incomodado de enviar um e-mail e este chegar um ou dois segundos mais tarde ao seu destinatário. Por outro lado, se esta pessoa estiver em uma videoconferência com o seu chefe em Miami e tiver que esperar os mesmos dois segundos entre cada palavra que ele diz, a situação tende a ficar bastante desagradável. Os dois casos citados explicam um dos benefícios do uso do traffic shaping: a priorização de tráfego, que tem por objetivo atrasar a transmissão de pacotes menos urgentes a fim de entregar mais rapidamente outros mais prioritários, esta característica do traffic shaping constitui um dos mecanismos de QoS [3], ou a tentativa de garantir diferentes níveis de serviço da rede para diferentes aplicações dela.

Uma outra vantagem do uso do traffic shaping é a quantização de banda por tipo de tráfego. Para explicar a necessidade desta utilização vamos supor que esteja em seu escritório, a poucas horas da entrega daquele relatório essencial para a conclusão do projeto, quando misteriosamente a rede, tão necessária para o término do relatório, demora minutos para carregar uma simples página da Internet. Por outro lado, no computador ao lado seu colega faz download de músicas através de torrents a alta taxa de transferência. Há grandes chances de as conexões criadas pelo seu colega estarem utilizando toda a banda disponível para a Internet na rede do escritório. Obviamente nesta situação exagerada, poderíamos simplesmente bloquear a utilização de torrents na empresa, mas suponhamos que, por alguma razão, seu uso seja necessário.

Desta forma seria necessário limitar a taxa de transferência concedida a esse tipo de tráfego, o que se trata de uma outra utilidade do traffic shaping. Com as taxas para o download e upload de torrents limitadas, a navegação na Web certamente ficaria mais rápida.

Outra face do traffic shaping é o agendamento de perfis, no qual o gerente da rede, por meio de ferramentas adequadas ao seu sistema operacional, implementa o disparo automático de configurações pré-programadas, desta forma podendo adequar as quantidades de banda às necessidades específicas dos vários horários.

No caso de cidades digitais [4] temos uma grande variedade de usos, devido à complexidade das redes. Podemos, por exemplo, imaginar uma cidade em que tenha sido projetada uma rede para atender tanto a repartições da prefeitura quanto à população em geral. Uma regra de traffic shaping apropriada a essa estrutura seria reservar uma quantidade razoável de banda às repartições durante os seus respectivos horários de funcionamento. Esta medida preveniria o uso de todos os recursos pela população, evitando limitações na conectividade da prefeitura. Do mesmo modo, após o horário de funcionamento poderia se estabelecer uma regra onde essa banda fosse novamente disponibilizada à população, promovendo melhora na conexão a ela oferecida.

Podemos, então, entender o traffic shaping como um conjunto de regras planejado a fim de otimizar a rede e moldá-la a necessidades específicas. Infelizmente há quem o utilize para lesar consumidores. Por exemplo, proibindo tráfegos como Peer-to-Peer, ou a telefonia pela Internet, chamada VoIP [5].

Referências


[1] Traffic shaping
Visitado em 26/02/2010

[2] Quality of Service
Visitado em 26/02/2010

[3] Peer_to_peer
Visitado em 26/02/2010


[4] O que é Cidade Digital?
Visitado em 26/02/2010


[5] VoIP

Visitado em 26/02/2010

Saiba Mais

Controle de tráfego

QoS

Licença Creative Commons
Esta obra foi licenciada com uma Licença Creative Commons – Atribuição – Partilha nos Mesmos Termos 3.0 Não Adaptada.

Anúncios

Plano Nacional de Banda Larga: primeiras ideias

19 de fevereiro de 2010

Hilton Garcia Fernandes

No Brasil, o serviço de acesso à Internet com banda larga não é dos melhores do mundo. Comparado com países similares em desenvolvimento econômico, a banda larga brasileira é mais cara, mais sujeita a falhas e até mesmo tem menor capacidade média do que aquela destes países [1]. Comparações com países europeus ou asiáticos são ainda mais desfavoráveis [2].

A inferioridade brasileira se torna assombrosa à medida que aumenta a distância do eixo Rio-São Paulo [3].

Hoje é fato bem conhecido que a Internet é fator de desenvolvimento econômico e pessoal [4]. Ao ponto de que alguns pesquisadores associam muito fortemente a exclusão digital (dificuldade de usar computadores e Internet) com a exclusão social, a dificuldade de ter acesso ao mercado de trabalho e consumo [5].

Por isso, o Plano Nacional de Banda Larga, ou PNBL [6], é tão importante. Ele é uma iniciativa ampla para reduzir tanto nossa inferioridade (comparada à de outros países), como para reduzir disparidades regionais. Além de sua importância por si, o PNBL interfere em vários pontos do atual modelo de banda larga, o que gera um número infindável de polêmicas [7], sobre o modelo de negócios a ser adotado.

Diante das polêmicas e da importância para o futuro do país, o PNBL merece toda a atenção. Por esta razão, iniciamos com este uma série de entradas, ou posts, no blog Tecnologias sem Fio, para cobrir aspectos relevantes do PNBL.

Como a proposta do PNBL está sendo esperada para o início de março [6], vale aguardar sua formalização e iniciar a sequência pelo lado técnico, o que vai permitir a uniformização dos termos, uma vez que vários dos termos adotados na atual discussão têm significado pouco padronizado, havendo quem os interprete de forma diferente daquela que tem sido usada nas discussões sobre o PNBL.

Em primeiro lugar, vale a pena definir os termos backbone, backhaul e last-mile, pois são chave no desenho das propostas em discussão. Uma forma intuitiva é fazer analogia entre a distribuição de Internet e a distribuição de água tratada. Há grandes adutoras que levam a água de represas, como a Billings a pontos distantes delas. Essas adutoras são tão grandes que sua instalação tende a ser anunciada na imprensa [8].

Para distribuir água até a casa das pessoas, é feita a derivação de adutoras menores. Quem quer que tenha observado escavações nas ruas, terá visto que há adutoras de tamanhos inferiores, que levam a água a prédios. Por sua vez, nos prédios, os canos sofrem outro estreitamento, então chegam à casa das pessoas.

Em termos de terminologia de distribuição de Internet, as grandes adutoras poderiam ser chamadas de core network (ou rede principal), ou backbone [9]. As tubulações que passam pela rua são chamadas de edge network [10], ou “rede periférica”. O movimento de informações que é feito nela é chamado de backhaul [10]. E, por último, os canos mais finos que levam a água até a casa das pessoas são chamados de last mile [11].

Estes são termos muito mais práticos do que teóricos e sua definição não é unânime. Por exemplo, Há quem os defina igualando backhaul à movimentação de dados no backbone [12].

Tanto o backbone quanto as edge networks costumavam ser de uma única companhia. Estes são pontos que o PNBL está tentando mudar, em prol de uma maior concorrência na distribuição de Internet, o que, espera-se, deve diminuir os custos e aumentar a qualidade da Internet brasileira.

No próximo post, ou entrada, do blog Tecnologias sem Fio, será feito um maior detalhamento dos modelos de negócios que a discussão do PNBL está fazendo surgir. E, pari passu [13], será mais detalhado o modelo conceitual, ou a arquitetura, da rede mundial de computadores, a Internet.

Referências


[1] Banda Larga: Brasil perde vez na América Latina

Visitado em 19/02/2009


[2] Banda larga no Brasil é 35ª em ranking com 45 países

Visitado em 19/02/2009


[3] O custo da banda larga

Visitado em 19/02/2009


[4] Federal Communications Commission FCC 09-93 Before the Federal Communications Commission Washington, D.C. 20554 In the Matter of Preserving the Open Internet Broadband Industry Practices

Visitado em 19/02/2009


[5] SILVEIRA, Sérgio Amadeu da. Inclusão digital, software livre e globalização contra-hegemônica.

Visitado em 19/02/2009


[6] Telebrás, Eletronet e PNBL (162) – “Reunião do PNBL”: Análise de Clóvis Marques

Visitado em 19/02/2009


[7] Telebrás, Eletronet e PNBL (170) – Ainda a “Reunião do PNBL” + O “Anãozinho” + Resumo sobre o FUST + A Lei do FUST (íntegra)

Visitado em 19/02/2009


[8] ADUTORAS

Visitado em 19/02/2009


[9] Internet backbone

Visitado em 19/02/2009


[10] Backhaul (telecommunications)

Visitado em 19/02/2009


[11] Last mile

Visitado em 19/02/2009


[12] Appendix 7: Glossary | Report on Commerce Commission’s Local Loop and Fixed PDN Unbundling Investigation

Visitado em 19/02/2009


[13] Pari passu

Visitado em 19/02/2009

Licença Creative Commons
Esta obra foi licenciada com uma Licença Creative Commons – Atribuição – Partilha nos Mesmos Termos 3.0 Não Adaptada.

Trânsito e redes mesh

12 de fevereiro de 2010

Fábio Damião Barbosa Ricci

Em São Paulo, uma pesquisa do Instituto Datafolha [1] revelou que o paulistano perde, em média, 109 minutos por dia no trânsito. Ao todo, 23% dos paulistanos perdem mais de duas horas por dia no trânsito.

Muitos fatores podem contribuir para os congestionamentos, que ocorrem principalmente quando o número de automóveis ultrapassa a capacidade de uma via. O principal fator de  origem deste problema é o tempo ocioso que um veículo permanece nas ruas, quando encontra um semáforo sinalizando parada enquanto não há veículos trafegando na via em que se deseja atravessar. Através do controle adaptativo de tempo de sinalização semafórica, é possível otimizar o fluxo de trânsito sem a necessidade de acompanhamento do ritmo de mudanças de condições de tráfego nas vias, promovendo um menor acúmulo de carros com a evolução do tempo.

O projeto SAWIM, desenvolvido pelo autor durante trabalho de conclusão de curso [2] é uma tentativa de resolver esses problemas através de comunicação através por redes sem fio em malha [3], ou Wi-Mesh.

Semáforos têm vantagens enormes como torres para comunicação sem fio: são da prefeitura, o que minimiza custos de aluguel e têm acesso livre uns aos outros. Afinal, os motoristas têm que poder ver os semáforos que, por isso são altos e têm visão desimpedida por obstáculos ao longo das pistas.

Por esta razão, semáforos tem sido usados em cidades digitais como torres para instalação de APs [4] para a rede mesh.

Em poucas palavras, o hardware desenvolvido para o projeto para controlar um semáforo pode ser descrito como:

  • um AP que vai fazer comunicação com outros APs da rede mesh, além de conter software específico para sincronização de APs. O software original do AP (seu firmware) é trocado por um Software Livre que o controla, chamado Freifunk [5]. Sobre este sistema, uma variação do GNU/Linux é que são desenvolvidos softwares específicos para controle de APs;
  • um módulo para controlar o semáforo, ligado ao AP através de de TCP/IP, o que lhe permite passar ao semáforo comandos do AP. Também é capaz de interagir com o sensor de presença e repassar informações dele ao AP;
  • um módulo adicional de presença, que comunica ao módulo de controle o número de carros passando — normalmente implementado através de sensores no solo. É possível que nem todos módulos do SAWIM possam contar com esse recurso. Neste caso, os módulos do sistema que contam com esse recurso o repassam aos outros.

Tanto AP quanto o módulo de controle estão protegidos das intempéries por uma caixa hermética.

Um ponto importante no projeto é que a tolerância a falhas das redes mesh [3] favorece o projeto, uma vez que semáforos são aplicação de missão crítica.

Uma visita à Transpoquip [6] feira específica sobre trânsito, mostrou que os fabricantes se interessariam muito por uma solução similar àquela do SAWIM. Apesar de questionamentos sobre a maturidade do software para controle dos semáforos — o SAWIM estaria sendo comparado com sistemas com dezenas de anos de desenvolvimento –, os técnicos das empresas se mostraram interessados na tolerância à falhas da rede mesh.

Uma das razões para isso foi observada recentemente: devido às chuvas, os semáforos da região de Pinheiros deixaram de funcionar. Aparentemente, a água entrou nos fios de comunicação e controle de semáforos.

Edição: Hilton Garcia Fernandes, a partir de texto em [2]

Referências

[1] Paulistanos apóiam transporte público, segundo o Datafolha
Visitado em 12/02/2010

[2] Fabio Damião Barbosa Ricci, Sistema integrado WiMesh para controle, automação semafórica e comunicação com Internet (Sigla: SAWIM) Trabalho de conclusão de curso apresentado na Escola Politécnica da Universidade São Paulo, em 9 de Outubro de 2009. São Paulo, SP, Brasil

[3] Redes mesh e grafos
Visitado em 12/02/2010

[4] Municipal Wireless Broadband and the Digital Community Report — City of Boulder, Colorado October 12, 2006
Visitado em 12/02/2010

[5] Freifunk
Visitado em 12/02/2010

[6] TranspoQuip Latin America 2009
Visitado em 12/02/2010

Licença Creative Commons
Esta obra foi licenciada com uma Licença Creative Commons – Atribuição – Uso Não-Comercial – Obras Derivadas Proibidas 3.0 Não Adaptada

Apresentação do gvpr

5 de fevereiro de 2010

Ricardo Andrade Dalla Bernardina

DOT [1] é uma linguagem que permite definir grafos [2]. Ela foi usada inicialmente no programa de mesmo nome dot, hoje parte do pacote graphviz [3], que tem muitas ferramentas para visualização e manipulação de grafos.

Um exemplo de arquivo para construção de grafos é explicado aqui. A primeira coisa que deve ser feita é dar uma nome para o grafo, e depois de escolhido (supondo que seja g para o exemplo ) colocar:

    graph g {}

Tudo que virá depois no arquivo estará dentro das chaves após graph g.

Após isso é necessário criar os nós e para isso escrevemos:
X [label="node"]; — sendo X o identificador do nó e node o nome do nó.

Podem ser incluídos tantos nós quanto forem necessários.

Após isso, para se colocar as arestas deve-se escrever os identificadores dos nós que estão ligados pela aresta (não está sendo considerado grafo dirigido) e entre eles colocar “--“; isto é: dois hífens seguidos. Por ex.: X -- Y; é a aresta que conecta os nós X e Y.

Após isso é só salvar o arquivo, rodar um programa de visualização como o dot [4] e o grafo estará pronto — por exemplo, na forma de uma imagem JPEG.

Abaixo encontra-se uma figura do código [5]:
41.jpg

No pacote graphviz encontra-se a ferramenta gvpr [6], muito poderosa, mas pouco conhecida, que permite manipular e — de forma geral — reescrever grafos.

Agora será mostrada uma pequena apresentação do programa descstat.g [7], que usa a ferramenta gvpr para calcular o maior grau e menor grau de um grafo qualquer, além de calcular a média, variância, desvio padrão e coeficiente de variação dos graus dos nós dos grafos.

Antes de tudo vale lembrar que o gvpr só interpreta grafos na linguagem DOT, sendo inútil para outras linguagens de definição de grafos. No ambiente gvpr, é definida uma linguagem de programação, que possui os seguintes elementos

  • BEGIN, que é realizado apenas uma vez no começo da programa;
  • END que é realizado apenas no final do programa e uma única vez também;
  • existe também o BEG_G, que é realizado para todos os grafos no começo de cada um;
  • e o END_G, que do mesmo modo é realizado para todos os grafos, só que no final deles;
  • por último tem o N que entra em todos os nós do grafo.

BEG_G e END_G devem estar entre BEGIN e END. Por sua vez, N deve estar entre BEG_G e END_G. A sintaxe de comandos e declarações é bastante similar, quando não igual, àquela do C [8].

Assim no programa descstat.g foram declaradas as variáveis no BEGIN, os valores delas foram inicializados no BEG_G, pois eles devem ser reinicializados no início de cada grafo. Dentro do N são totalizados os graus de todos os nós de cada grafo. O grau de um nó é obtido pela expressão $.degree, onde $ significa o nó atual e degree é o grau do nó. Por sua vez, $G significa o grafo atual. Esses graus são necessários para os cálculos que são o objetivo do programa. Todos eles são finalizados no END_G, que também apresenta os valores na tela. O trecho em N é apresentado a seguir:

N {
    if ($.degree > maxd) {
        maxd = $.degree;
    }

    if ($.degree < mind) {
        mind = $.degree;
    }

    mean += $.degree;
    var  += $.degree * $.degree;
}

Referências

[1] The DOT Language
Acessado em 29/01/2010

[2] Teoria dos grafos
Acessado em 29/01/2010

[3] Graphviz – Graph Visualization Software
Acessado em 29/01/2010

[4] Drawing graphs with dot
Acessado em 02/02/2010

[5] 4.dot
Acessado em 29/01/2010

[6] gvpr(1) – Linux man page
Acessado em 29/01/2010

[7] descstat.g
Acessado em 02/02/201

[8] C (linguagem de programação)
Acessado em 02/02/2010