UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

62
UNIVERSIDADE ESTADUAL DO CEAR ´ A RUDY MATELA BRAQUEHAIS CONDENSED TSS: reduzindo o tempo de busca em classificac ¸˜ ao de pacotes FORTALEZA - CEAR ´ A 2011

Transcript of UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

Page 1: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

UNIVERSIDADE ESTADUAL DO CEARA

RUDY MATELA BRAQUEHAIS

CONDENSED TSS: reduzindo o tempo de busca emclassificacao de pacotes

FORTALEZA - CEARA

2011

Page 2: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

RUDY MATELA BRAQUEHAIS

CONDENSED TSS: reduzindo o tempo de busca em classificacao de pacotes

Dissertacao apresentada ao Curso de MestradoAcademico em Ciencias da Computacao doCentro de Ciencia e Tecnologia da Universi-dade Estadual do Ceara, como requisito parcialpara obtencao do grau de Mestre em Cienciasda Computacao.

Orientador: Prof. Dr. Marcial Porto Fernan-dez

FORTALEZA - CEARA

2011

Page 3: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

B817c Braquehais, Rudy Matela.Condensed TSS: reduzindo o tempo de busca em

classificacao de pacotes / Rudy Matela Braquehais. – For-taleza, 2011.

61p.;il.Orientador: Prof. Dr. Marcial Porto FernandezMonografia (Mestrado Academico em Ciencias da

Computacao) - Universidade Estadual do Ceara, Centro deCiencia e Tecnologia.

1. Classificacao de Pacotes 2. Redes 3. Comutacao I.Universidade Estadual do Ceara, Centro de Ciencia e Tec-nologia.

CDD:001.6

Page 4: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

RUDY MATELA BRAQUEHAIS

CONDENSED TSS: reduzindo o tempo de busca emclassificacao de pacotes

Dissertacao apresentada ao Curso de MestradoAcademico em Ciencias da Computacao doCentro de Ciencia e Tecnologia da Universi-dade Estadual do Ceara, como requisito parcialpara obtencao do grau de Mestre em Cienciasda Computacao.

Aprovada em: / /

BANCA EXAMINADORA

Prof. Dr. Marcial Porto FernandezUniversidade Estadual do Ceara - UECE

Orientador

Prof. Dr. Joaquim Celestino JuniorUniversidade Estadual do Ceara - UECE

Prof. Dr. Andre Luiz Moura dos SantosUniversidade Estadual do Ceara - UECE

Prof. Dr. Djamel Fawzi Hadj SadokUniversidade Federal de Pernambuco - UFPE

Page 5: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

A minha famılia.

Page 6: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

AGRADECIMENTOS

Ao. Prof. Dr. Marcial Porto Fernandez por ter sempre estado muito presente durante aelaboracao do trabalho apesar da distancia geografica durante parte do curso.

A minha famılia pelo apoio que sempre me deu.

Aos professores do Mestrado Academico em Ciencia da Computacao pelo conhecimento queadquiri.

Aos meus colegas de curso e amigos. Nossas discussoes complementaram o que aprendi nassalas de aula.

Aos membros da banca examinadora, Prof. Dr. Djamel Sadok, Prof. Dr. Joaquim CelestinoJunior e Prof. Dr. Andre dos Santos por terem aceitado avaliar meu trabalho tomando parte deseu tempo durante sua leitura e avaliacao.

Page 7: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

“Cuidado com bugs no codigoacima; eu apenas provei sua corre-tude, nao o testei.”Donald Knuth

Page 8: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

SUMARIO

1 INTRODUCAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

1.1 RESTRICOES DO PROBLEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

1.2 EVITANDO PARCIALMENTE O PROBLEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.3 MOTIVACAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.4 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

1.5 ESTRUTURA DO TRABALHO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2 REVISAO BIBLIOGRAFICA: TAXONOMIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.1 BUSCA EXAUSTIVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.2 ARVORES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

2.3 ESPACO DE TUPLAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

2.4 DIVISAO E CONQUISTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

2.5 OUTRAS TECNICAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

3 PROPOSTA: BUSCA EM ESPACO DE TUPLAS CONDENSADO . . . . . . . . . . . . . . 36

3.1 ELIMINACAO DE TUPLAS E EXPANSAO DE PREFIXOS . . . . . . . . . . . . . . . . . . . 36

3.2 CLASSIFICACAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.3 INSERCAO DE REGRAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3.4 ESTRUTURA DE DADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

4 METODOLOGIA DE AVALIACAO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

4.1 GERACAO DOS DADOS DE TESTE: CLASSBENCH . . . . . . . . . . . . . . . . . . . . . . . . 42

4.2 IMPLEMENTACAO, AMBIENTE E FERRAMENTAS UTILIZADAS . . . . . . . . . . . 44

4.3 TESTES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

4.4 PARAMETROS AVALIADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

Page 9: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

5.1 LISTAS DE CONTROLE DE ACESSO (FIREWALL) . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.2 FIREWALL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

5.3 IPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

5.4 COMENTARIOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

6 CONCLUSAO E TRABALHOS FUTUROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

REFERENCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Page 10: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

LISTA DE FIGURAS

Figura 2.1 Taxonomia de Tecnicas para Classificacao de Pacotes, adaptado de (TAYLOR,2005) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Figura 2.2 Relacoes entre os varios metodos publicados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Figura 2.3 Set Pruning Trie do classificador da Tabela 2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Figura 2.4 Arvore de Prefixo Hierarquica do classificador da Tabela 2.1 . . . . . . . . . . . . . . 23

Figura 2.5 Grid Of Tries do classificador da Tabela 2.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Figura 2.6 Visao geometrica da classificacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

Figura 2.7 Hashes de tupla para o classificador da Tabela 2.2 . . . . . . . . . . . . . . . . . . . . . . . . 28

Figura 3.1 Classificador original . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Figura 3.2 Classificador da Figura 3.1 apos eliminacao da tupla [0,0,0] . . . . . . . . . . . . . . 37

Figura 3.3 Classificador da Figura 3.2 apos eliminacao de mais uma tupla: [0,1,0] . . . . 38

Figura 3.4 Fluxograma, classificacao no CTSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Figura 3.5 Fluxograma simplificado, insercoes de regras no CTSS . . . . . . . . . . . . . . . . . . . 39

Figura 3.6 Estrutura de dados na memoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Figura 4.1 Diagrama de blocos: Classbench (TAYLOR; TURNER, 2005a) . . . . . . . . . . . 42

Figura 4.2 Fluxograma dos testes executados para cada arquivo-semente . . . . . . . . . . . . . 45

Page 11: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

Figura 5.1 Seed acl1: gasto com memoria e acessos × numero de regras . . . . . . . . . . . . . 47

Figura 5.2 Seed acl2: gasto com memoria e acessos × numero de regras . . . . . . . . . . . . . 48

Figura 5.3 Seed acl3: gasto com memoria e acessos × numero de regras . . . . . . . . . . . . . 49

Figura 5.4 Seed acl4: gasto com memoria e acessos × numero de regras . . . . . . . . . . . . . 49

Figura 5.5 Seed acl5: gasto com memoria e acessos × numero de regras . . . . . . . . . . . . . 50

Figura 5.6 Seed fw1: gasto com memoria e acessos × numero de regras . . . . . . . . . . . . . 51

Figura 5.7 Seed fw2: gasto com memoria e acessos × numero de regras . . . . . . . . . . . . . 52

Figura 5.8 Seed fw3: gasto com memoria e acessos × numero de regras . . . . . . . . . . . . . 53

Figura 5.9 Seed fw4: gasto com memoria e acessos × numero de regras . . . . . . . . . . . . . 54

Figura 5.10 Seed fw5: gasto com memoria e acessos × numero de regras . . . . . . . . . . . . . 54

Figura 5.11 Seed ipc1: gasto com memoria e acessos × numero de regras . . . . . . . . . . . . . 55

Figura 5.12 Seed ipc2: gasto com memoria e acessos × numero de regras . . . . . . . . . . . . . 56

Page 12: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

LISTA DE TABELAS

Tabela 1.1 Classificador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Tabela 1.2 Exemplo de classificacao de alguns pacotes usando o classificador da Tabela1.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Tabela 2.1 Classificador de 2 dimensoes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Tabela 2.2 Classificador com Tuplas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Tabela 2.3 Classificador . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Tabela 2.4 Bit-Vectors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

Tabela 2.5 Todos os crossproducts gerados a partir do classificador da Tabela 2.3 . . . . . 31

Tabela 4.1 Caracterısticas dos classificadores parametro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

Page 13: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

RESUMO

A Classificacao de Pacotes e util em varias areas e dentre elas, se destacam: QoS, Seguranca,Filtragem de Pacotes, Virtual Private Networks, monitoramento e comunicacoes multimıdia.Apesar de anos de estudo, a Classificacao de Pacotes ainda e um desafio na comutacao depacotes. Ela consiste em separar (classificar) pacotes em fluxos/regras descritos em um banco dedados, escolhendo aquela de maior prioridade. Em outras palavras: dadas varias associacoes deassinaturas de cabecalhos de pacotes com acoes e pacotes de rede, determinar qual acao aplicara cada um dos pacotes. Este problema possui alta complexidade, tendo-se pouco tempo paraprocessar cada pacote, ja que as redes de computadores estao cada vez mais rapidas, nao sendoacompanhadas pelo poder de processamento do silıcio, que esta chegando em seu limite. Ofato de cada metodo proposto na literatura para resolver esse problema acabar funcionando bemapenas em um certo nicho faz com que a comunidade cientıfica tenha crescente interesse embuscar novos metodos para Classificacao de Pacotes. Este trabalho apresenta um novo metodopara Classificacao, o Condensed Tuple Space Search (CTSS), ou Busca em Espaco de TuplasCondensado, que permite um melhor desempenho em tempo de classificacao aumentando ogasto com memoria de forma controlada. Quando comparado com o Tuple Space Search (TSS),este metodo apresentou melhoria de uma a duas ordens de grandeza para acessos a memoria.Palavras-Chave: Classificacao de Pacotes, Redes, Comutacao

Page 14: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

ABSTRACT

Packet Classification is useful in various areas, amongst them, stand out: QoS, Security, PacketFiltering, Virtual Private Networks, monitoring and multimedia communications. Despite yearsof study, Packet Classification is still a challenge in packet switching. It consists of separating(classifying) packets into filters/rules described in a database, choosing the one with highest pri-ority. In other words, given various associations between packet signatures from packet headerswith actions, determine which action to take on each packet arriving at the router/switch. Thisproblem has a high computational complexity, having little time to compute each packet, sincecomputer networks are becoming even faster, not being accompanied by the processing powerof silicon, which is reaching its limit. The fact that each proposed method in literature to solvethis problem ends up functioning well in just a certain niche, fosters the scientific communityinto having increasing interest in research for new Packet Classification methods. This workproposes a novel method for Classification, the Condensed Tuple Space Search (CTSS), whichallows a better performance on classification time increasing memory consumption in a control-led manner. When compared to Tuple Space Search (TSS), this method presented improvementin one to two orders of magnitude in memory accesses. Keywords: Packet Classification,Networking, Switching

Page 15: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

14

1 INTRODUCAO

Durante o perıodo inicial da Internet, os pacotes eram processados na ordem em quechegavam no roteador (first-come-first-served). Nao havia filtragem. A diferenciacao de trata-mento dos pacotes era feita unicamente de acordo com seus enderecos de destino.

Na decada de 90, surgiram os primeiros provedores de Internet (ISPs) e junto deles,a exploracao comercial da Internet. Eles introduziram uma polıtica de qualidade de servico(QoS). Cobrar precos diferenciados por servicos diferenciados. Um usuario que paga maistem uma maior prioridade de servico, seus pacotes sao tratados antes dos demais. Junto dessaexploracao comercial, surgiu o e-commerce, negociacoes feitas pela Internet e com isso, umamaior preocupacao com seguranca: agora uma rede e impedida de receber pacotes de um certodispositivo (firewalling); pacotes VoIP sao enviados atraves de uma interface diferente (policyrouting). Estes tratamentos especiais podem ser implementados atraves de associacoes de as-sinaturas de cabecalhos de pacotes, mascaras em campos de cabecalhos, com acoes. Essasassociacoes sao chamadas de fluxos ou regras. O processo de separacao dos pacotes em fluxose denominado classificacao.

Na ultima decada, o problema de classificacao de pacotes tem recebido grande atencaoda comunidade cientıfica. Possivelmente, isso se deve ao fato de que a classificacao de pacotesseja importante para varias areas, dentre elas, se destacam: QoS, Seguranca, Filtragem de Paco-tes, Virtual Private Networks (VPNs), monitoramento e comunicacoes multimıdia (TAYLOR,2005; DHARMAPURIKAR et al., 2006).

Essas aplicacoes operam separando os pacotes que passam pelos roteadores em fluxos.Esses fluxos podem ser determinados, por exemplo, por: porta, tipo de protocolo, enderecoIP de origem, endereco IP de destino, endereco MAC de origem, endereco MAC de destinoe identificador de VLAN. Nesse contexto, classificacao de pacotes e a tarefa de determinara qual fluxo um pacote pertence a partir de informacoes contidas em seu cabecalho e de umclassificador, que e basicamente uma tabela de filtros ou regras. Um exemplo de classificador emostrado na Tabela 1.1.

Um classificador e um conjunto de regras ou filtros, isto e, acoes a serem aplicadas aospacotes que seguirem determinados pre-requisitos. Exemplos de classificacoes sao vistas natabela 1.2. No caso de um pacote coincidir com mais de uma regra, a que tiver maior prioridadee a que prevalece. Na Tabela 1.1, por convencao: pri(Rn)> pri(Rn+1).

A partir da figura, e possıvel perceber que alguns pacotes podem se encaixar em maisde um filtro. Nesse caso, o filtro com maior prioridade e escolhido.

Page 16: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

15

Tabela 1.1: ClassificadorRegra Endereco de Origem Endereco de Destino Porta Protocolo AcaoR1 * 192.168.1.85/32 22 TCP NegarR2 157.88.33.7/32 * 80 TCP NegarR3 160.200.30/24 212.32/16 30-40 UDP PermitirR4 123.255.32/20 123.254/16 80 * PermitirR5 160.200.30/24 212.32/16 20-80 UDP NegarR6 * 192.168/16 8080 * NegarR7 123.255.32/20 123.254/16 * * NegarR8 * * * * Permitir

Tabela 1.2: Exemplo de classificacao de alguns pacotes usando o classificador da Tabela 1.1Pacote Endereco de origem Endereco de destino Porta Protocolo

(transporte)Regra aplicada

1 160.200.30.11 212.32.132.50 35 udp C, permitir2 192.168.1.3 192.168.1.85 22 tcp A, negar3 157.88.33.7 192.168.1.85 80 tcp B, negar

Devido a complexidade da busca, que ocorre em multiplos campos, inclusive permi-tindo curingas, ou wildcards, ela e frequentemente um gargalo na infra-estrutura Internet. Alemdisso, a velocidade das redes tem aumentado mais que a dos processadores baseados em silıcio.Devido a esses fatos, a classificacao de pacotes tem recebido muita atencao da comunidadecientıfica (TAYLOR, 2005).

1.1 Restricoes do problema

Os limites computacionais para a classificacao de pacotes ja foram determinados emalguns trabalhos (TAYLOR, 2005) e sao mostrados mais a frente nesta secao.

Complexidade computacional nao e o unico aspecto desafiador desse problema. Trafegonas redes de transporte, ou backbones, ja beira 100 bilhoes de bits por segundo (100 Gb/s), cominclusive, em 2009 o Brasil batendo o recorde hemisferico de transferencia de dados: 10 Gb/s(NEWMAN; WEINER, 2009). A velocidade de transmissao e o tamanho medio dos pacotes,determinam o numero de pacotes por segundo que um roteador deve suportar. Apesar de emmedia, pacotes de rede terem em torno de 200 a 700 bytes (BRAQUEHAIS, 2009; THOMP-SON; MILLER; WILDER, 2002), como a maior parte do trafego da Internet, atualmente, utilizao protocolo TCP, que tem seu pacote ACK com 40 bytes, e possıvel que, em um caso extremo,um roteador receba uma longa sequencia de ACKs, fazendo com que se ele nao for capaz desuportar a carga, haja descarte de pacotes (TAYLOR, 2005).

Para que um roteador possa suportar 100 Gb/s, supondo tamanho de pacotes como 40bytes, ele tera que processar 300 milhoes de pacotes por segundo. Tres nanosegundos (3 ns)para processar cada pacote.

Page 17: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

16

Varios autores (GUPTA, 2000; VARGHESE, 2005) consideram o IP-Lookup como umcaso particular de classificacao na qual se considera apenas um campo (endereco de destino). Aclassificacao e uma tarefa difıcil, pois ela ocorre baseando-se em varios campos (dimensoes).A cada dimensao adicionada, aumenta sua complexidade. Outro problema e que algumas di-mensoes sao avaliadas atraves de intervalos, portanto mais de uma regra pode ser aplicada a ummesmo pacote. Os classificadores vem crescendo junto com o aumento de servicos e numerode usuarios da Internet (SINGH et al., 2003).

Devido as dificuldades apresentadas anteriormente, ate hoje nao se encontrou um es-quema algoritmicamente eficiente para a classificacao de pacotes, normalmente tendo que se es-colher entre tempo e espaco. Otimizando o tempo ao maximo, temos tempo O(logN) e espacoO(Nd) ou, economizando memoria, tempo O((logN)d−1) e espaco O(N) (GUPTA; MCKE-OWN, 2001). As complexidades sao exponenciais nos dois casos: seja no tempo ou no espaco.Apesar de memoria ser um recurso relativamente barato atualmente, ter gasto com memoria ex-ponencial e um problema, ja que isso significaria gastos impraticaveis com memoria que chega-riam facilmente a terabytes de dados com valores relativamente pequenos para N (VARGHESE,2005).

Outra dificuldade influente sao as limitacoes fısicas para aumento de processamentoem processadores baseados em silıcio (KEYES, 2002): os enlaces tem aumentado de velocidadesem que haja grande aumento no desempenho de processadores.

Porem, os classificadores do mundo real apresentam certas caracterısticas. Elas consis-tem em: geralmente nao ha especificacoes de intervalos, e as que existem podem ser facilmenteconvertidas em varios prefixos com um baixo custo de memoria (SRINIVASAN et al., 1998);dificilmente ha intersecao entre intervalos; prefixos geralmente sao grandes, isto e, se aproxi-mam do tamanho maximo do campo, o que diminui as intersecoes, dentre outras caracterısticas.Elas permitem que esquemas baseados em heurısticas sejam bastante eficientes (VARGHESE,2005).

E importante mencionar as TCAMs, uma tecnologia de hardware bastante eficientepara resolver os problemas de classificacao. O termo TCAM, significa Ternary Content Adres-sable Memory ou memoria acessıvel pelo conteudo ternario. Elas se diferenciam das memoriasconvencionais, acessadas por endereco, no sentido de que pode-se chavear valores atraves deuma parte dos dados da memoria. No caso da classificacao de pacotes, o conteudo a ser acessadoseria composto de assinatura do cabecalho como chave e acao a ser aplicada como valor. Essasmemorias permitem a busca simultanea em todos os seus campos, reduzindo a classificacao depacotes para um acesso a memoria (VARGHESE, 2005).

Apesar de seu otimo desempenho, algumas desvantagens podem tornar seu uso de ma-neira isolada impraticavel: seu alto custo, em torno de 30 vezes o das memorias convencionais,seu alto gasto de energia, podendo chegar a 50 vezes mais que o de uma memoria convencio-nal (DHARMAPURIKAR et al., 2006), problemas de aquecimento, limitacoes de capacidade(MEINERS; LIU; TORNG, 2008) e densidade dos dados (VARGHESE, 2005). Dessa forma, asTCAMs sao utilizadas em maneira conjunta com outras tecnicas, que organizam a informacaona memoria de modo que apenas parte das entradas seja armazenada em TCAM, reduzindo seu

Page 18: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

17

custo. Mais detalhes na Secao 2.1.2.

1.2 Evitando parcialmente o problema

Em (VARGHESE, 2005) e indicado que e possıvel evitar parcialmente o problemafazendo comutacao via rotulos. Ao entrar no nucleo de uma rede, o pacote e classificado, sendocolocado um rotulo (label) nele. Dessa forma, os roteadores subsequentes da rede nao precisamutilizar todo o cabecalho, apenas o rotulo.

Um exemplo sao as redes MPLS. No lugar de classificar baseando-se em varios cam-pos, classifica-se utilizando apenas o rotulo do pacote. Porem, isso nao evita por completo aclassificacao, ja que o ISR, Ingress Switch Router, o Roteador de Ingresso da Rede MPLS, deverealizar uma classificacao ao colocar um rotulo em um pacote. Outro exemplo sao as redes queutilizam tags VLAN para encaminhamento.

Ou seja, ao se usar comutacao por rotulos, no lugar de se classificar um pacote em todosos roteadores de uma rede, essa classificacao passa a ocorrer apenas no roteador de entrada darede, o que pode economizar recursos.

1.3 Motivacao

A alta complexidade do problema (exponencial em tempo ou espaco), o pouco tempoque se tem para processar cada pacote, as dificuldades estruturais inerentes ao problema (umpacote pode coincidir com mais de uma regra) e a estagnacao do desempenho de processadoresbaseados em silıcio fazem com que o problema da classificacao de pacotes seja bastante desafi-ador. Alem disso, como foi mencionado nas secoes anteriores, o problema nao pode ser evitadopor completo, sendo considerado um gargalo na comutacao de pacotes.

Ate hoje, nao existe nenhum metodo de classificacao que resolva todos os problemas.Cada metodo apresenta bom desempenho dependendo de varios fatores que incluem: o tipo declassificador, a arquitetura do sistema, a velocidade dos enlaces, o custo monetario do sistemae os requisitos de desempenho do sistema construıdo.

Todos esses fatores fazem com que a comunidade cientıfica se dedique a estudar novastecnicas para aplicacao nesta area.

1.4 Objetivos

O objetivo deste trabalho e, a partir de uma analise da literatura, elaborar e descreverum novo metodo para classificacao de pacotes de forma a apresentar uma alternativa para assolucoes existentes.

Isso e feito aproveitando caracterısticas de classificadores reais para melhorar um

Page 19: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

18

metodo ja publicado visando a aproveitar de forma controlada recursos baratos do sistema.Um dos recursos mal explorados em alguns trabalhos e a memoria, que, atualmente, tem umcusto relativamente barato. Este trabalho explora este recurso extensivamente.

Dessa forma, o metodo proposto visa diminuir o tempo de busca: reduzindo numerode acessos feitos a memoria. Em contrapartida, aumentando o gasto com memoria de formacontrolada.

1.5 Estrutura do Trabalho

Este trabalho e dividido em 6 capıtulos. O Capıtulo 2 apresenta uma revisao bibli-ografica da area de classificacao de pacotes apresentada na forma de uma taxonomia. Oscapıtulos 3 e 4 apresentam, respectivamente, a proposta deste trabalho, um novo metodo paraclassificacao e a metodologia sob a qual, a proposta foi avaliada. Finalmente, nos capıtulos 5 e6 sao mostrados o resultado e conclusoes obtidas com o trabalho.

Page 20: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

19

2 REVISAO BIBLIOGRAFICA: TAXONOMIA

Este capıtulo tem como objetivo apresentar uma revisao bibliografica de trabalhos pu-blicados na area de classificacao de pacotes, sendo apresentado em forma de taxonomia. Osmetodos foram divididos em quatro classes, de maneira semelhante ao que e feito em (TAY-LOR, 2005). As quatro classes e os metodos pertencentes a elas sao vistas na Figura 2.1.

A primeira classe e e a de Busca Exaustiva, que abrange os metodos que verificamcada uma das regras de um classificador para encontrar a regra coincidente de maior prioridade.Outra e a de Arvore, em que suas tecnicas utilizam a ideia de montar arvore de decisao a partirdas regras de um classificador. Outra classe de tecnicas de classificacao e a de Espaco deTuplas, que utilizam tuplas para agrupar entradas possivelmente melhorando o desempenho dabusca. E, finalmente, a classe de Divisao e Conquista, que abrange os metodos que dividemo problema da classificacao em problemas menores de modo a facilitar a busca pela regra demaior prioridade. As quatro classes e os metodos pertencentes a elas sao vistas na Figura 2.1.Nas secoes a seguir sao apresentados mais detalhes sobre elas.

Figura 2.1: Taxonomia de Tecnicas para Classificacao de Pacotes, adaptado de (TAYLOR,2005)

A Figura 2.2 mostra as relacoes entre os varios metodos publicados. E uma contribuicaodeste trabalho com o objetivo de ajudar no entendimento das diversas categorias de algoritmos ede permitir uma visao geral das publicacoes feitas na area. Uma seta apontando de um metodoA para o metodo B indica que o metodo B usa ideias ou e feito a partir de uma melhoria dometodo A.

Este capıtulo e dividido em quatro secoes, sendo a Secao 2.1 onde sao apresentados

Page 21: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

20

Ano:

1998

1999

2000

2001

2002

2003

2004

2005

2006

2007

2008

2009

2010

BuscaLinear

TCAM

Ext.TCAM

Set PruningTree

Grid-of-Tries

2D MultibitTries

HierarchicalTree

Ext.Grid-of-Tries

Hi-Cuts

ModularPC

HyperCuts

ExpCuts

HyperSplitExt.

HyperCuts

EffiCuts

FISTrees

ParallelBV

AggregatedBV

ParallelPC

CBNP

Crossproducting

RFC

Multi-subsetCrossproducting

DCFL

TIC

HSM

TSS& TP

Rect.Search

BF inTS

TPUBF

CF Rect.Search

BSOL

MBHT

Figura 2.2: Relacoes entre os varios metodos publicados

metodos simples, que utilizam Busca Exaustiva. A seguir, na Secao 2.2, arvores. Na Secao2.3 sao apresentados metodos que utilizam espaco de tuplas. Adiante, na Secao 2.4, divisao econquista. Finalmente, na 2.5, outras tecnicas que nao puderam ser categorizadas em nenhumadas quatro.

2.1 Busca Exaustiva

As tecnicas de busca exaustiva verificam cada uma das regras de um classificador paraencontrar a regra coincidente de maior prioridade. Sendo elas a Busca Linear e o uso dasTCAMs.

Page 22: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

21

2.1.1 Busca linear

A tecnica mais simples para a classificacao de pacotes e a busca linear: uma listaligada ou arranjo de regras ordenadas de acordo com sua prioridade. Este esquema e claramenteineficiente, tendo a complexidade da consulta em O(N), onde N e o numero de regras. Pode serutilizado em roteadores/switches com poucas regras e que nao exigem tanta eficiencia. Quandousado em classificadores maiores de, por exemplo, 5000 regras, o tempo de busca o tornariaimpraticavel.

2.1.2 TCAM

CAM (Content Adressable Memory ou Memoria Enderecavel pelo Conteudo) e umtipo de memoria em que se pode fazer consultas em um tempo praticamente constante. Epassado para CAM um vetor de bits, entao e feita uma busca em todas as posicoes da memoriasimultaneamente. Classicamente as CAMs so permitem buscas de uma sequencia definida debits (Ex: 1011101). Um tipo especial de CAM, TCAM (Ternary CAM ou CAM Ternaria), jamencionada na introducao, e mais apropriado para classificacao de pacotes, pois ele permiteprocurar por uma sequencia de bits que contenha valores indefinidos, “don’t care bits” (Ex:1*11*01), o que e importante na classificacao, ja que podemos ter campos indefinidos.

E a solucao mais usada, que possui duas grandes desvantagens: alto gasto com energiae um alto custo financeiro. O preco por bit chega a ser 16 vezes maior do que uma SRAMconvencional e o gasto com energia, 50 vezes (DHARMAPURIKAR et al., 2006). Alem disso,apresenta problemas de aquecimento, limitacoes de capacidade (MEINERS; LIU; TORNG,2008) e densidade dos dados (VARGHESE, 2005).

O uso de CAMs e uma tecnica simples e eficiente para classificacao de pacotes. Suadesvantagem e o custo alto, que torna sua capacidade de armazenamento limitada, sendo apli-cado isoladamente apenas em classificadores com poucas regras. Deste modo, as TCAMssao utilizadas dentro de varios outros metodos, que tentam organizar as informacoes paraclassificacao de modo a reduzir os dados armazenados nestas.

2.2 Arvores

Os metodos que utilizam arvores funcionam da ideia de montar uma arvore de decisaoa partir das regras de um classificador, onde a cada estagio da busca sao utilizadas partes decampos para percorre-la.

Generalizacoes dos algoritmos de arvore para Best Match Lookup (VARGHESE, 2005;RUIZ-SANCHEZ; BIERSACK; DABBOUS, 2001) sao bastante utilizadas. Elas utilizam al-guns bits em cada estagio de busca. As mais usadas sao as Set Pruning Tries (QIU; VARGHESE;SURI, 2001). Outros algoritmos de arvore de decisao (WOO, 2000; GUPTA; MCKEOWN,1999; SINGH et al., 2003) utilizam cortes mais genericos no espaco de busca em comparacao

Page 23: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

22

com os anteriores, com cortes do tipo porta de entrada menor que 412. Esta secao resume osprincipais deles. Nela, os exemplos de arvores e de classificacao usarao o classificador da tabela2.1.

Tabela 2.1: Classificador de 2 dimensoes

Regra Endereco Enderecode destino de origem

R1 * 0*R2 * 00*R3 * 01*R4 0* 0*R5 0* 01*R6 01* 11*R7 11* 01*

2.2.1 Set Pruning Tries

As Set-Pruning Tries (QIU; VARGHESE; SURI, 2001; VARGHESE, 2005), ou Arvoresde Prefixo com Podagem de Conjunto, sao baseadas na ideia de uma arvore de arvores. Estaestrutura de dados e construıda a partir de uma arvore binaria (binary trie) de, por exemplo,enderecos de destino a partir das regras do classificador. Cada no desta arvore aponta para umaarvore de, por exemplo, enderecos de origem. As arvores de enderecos de origem, por suavez, vao conter apenas as regras (e todas elas) que coincidem com os enderecos de destino deseu respectivo no (Figura 2.3). Essa abordagem e estendıvel a outros campos, inclusive naonecessariamente usando arvores a cada nıvel da busca.

A busca nesta arvore e feita percorrendo a arvore de enderecos de destino como umBest Match Lookup de apenas um campo. A sub-arvore com o maior prefixo igual ao enderecode destino do pacote e escolhida para o proximo passo da busca e isso e repetido ate que naohaja mais campos. O tempo de busca nesta arvore leva O(dW ), onde d e o numero de dimensoesda busca e W e a largura dos campos. A quantidade de memoria gasta e O(NddW ), dado queuma regra pode ser armazenada varias vezes. n e o numero de regras no filtro.

2.2.2 Arvore de Prefixo Hierarquica

As Arvore de Prefixo Hierarquica, ou Hierarchical Trie, e uma estrutura de dadossemelhante a anterior, onde se troca tempo de busca por espaco de armazenamento. Nas Set-Pruning Tries uma regra pode aparecer mais de uma vez nos nos das arvores de destino; janesta estrutura nao. Sendo assim, como se pode garantir que a regra correta seja encontrada?Um backtracking (CORMEN et al., 2001) e feito para a arvore original (end. destino) para quea busca continue normalmente. Se forem encontradas outras arvores de endereco de origem, oprocesso se repete. Por causa do backtracking feito neste algoritmo, o tempo de busca e exor-bitante, O(W d). Em compensacao o gasto de memoria e bem pequeno, O(NW ) (VARGHESE,

Page 24: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

23

0 1

0 1

R1

0 1

0 1

R4

0 1

R4

0 1 0 1

R2

0

R3

1

R2

0

R5

1

R2

0

R5

1 0

R6

1

R2

0

R7

1

Figura 2.3: Set Pruning Trie do classificador da Tabela 2.1

2005).

2.2.3 Grade de Arvores de Prefixos

Apesar do nome, a estrutura Grade de Arvores de Prefixos, ou Grid of Tries, nao e bemuma arvore e sim um grafo. Mais precisamente um grafo direcionado acıclico (CORMEN etal., 2001). Esta tecnica consegue juntar a ideia de economia de tempo das Set-Pruning Tries, naorealizando backtracking, e de economia de espaco das Arvores Hierarquicas, nao duplicando asregras.

Para conseguir alcancar esses objetivos, o algoritmo de insercao de regras no classifi-cador faz alguns calculos durante a atualizacao da tabela para evitar informacoes redundantesnas arvores. No lugar onde haveria repeticoes de vertices, ou backtracking, sao adicionadosponteiros para outras arvores de enderecos de origem, de modo que se ha uma regra valida,ela sera encontrada pelo caminho (Figura 2.5). A complexidade da busca e armazenamento eO(dW ). No lugar de usar Arvores de Prefixo Binarias (Binary Tries), podem ser usadas Arvoresde Prefixo Multibit (Multibit Tries) (RUIZ-SANCHEZ; BIERSACK; DABBOUS, 2001) paramelhorar ainda mais a complexidade da busca: O(dW/k). A otimizacao por Arvores de Pre-fixo Multibit tambem funciona com as Set-Pruning Tries e Arvores Hierarquicas (VARGHESE,2005).

Page 25: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

24

0 1

0 1

R1

0 1

0 1

R4

0 1 0 1 0 1

R2

0

R3

10

R5

1 0

R6

1 0

R7

1

Figura 2.4: Arvore de Prefixo Hierarquica do classificador da Tabela 2.1

2.2.4 Grade de Arvore de Prefixos Estendida

Compressao de caminhos e uma tecnica usada em tries, ou arvores de prefixo, parareduzir o tempo de busca, encurtando caminhos na arvore em que ha uma sequencia de variosnos com apenas um filho (RUIZ-SANCHEZ; BIERSACK; DABBOUS, 2001).

Em (BABOESCU; SINGH; VARGHESE, 2003), e proposto um metodo de classificacaoque utiliza esta ideia aplicada nos metodos anteriores: Grade de Arvores de Prefixo Estendidacom Compressao de Caminhos (Extended Grid-of-Tries with Path Compression). Sao realiza-dos testes com filtros/classificadores reais e sinteticos. Os resultados mostraram que, dentre osmetodos que gastaram pouca memoria, este foi o mais eficiente em termos de tempo e espaco,perdendo apenas para o RFC em tempo.

2.2.5 HiCuts

Um algoritmo bastante eficiente que foi gerado a partir da visao geometrica da classificacao(Figura 2.6), o HiCuts (GUPTA; MCKEOWN, 1999) (Hierarchical Intelligent Cuttings ou Cor-tes Inteligentes e Hierarquicos), funciona transformando cuidadosamente o classificador emuma arvore de decisao a partir de cortes no espaco gerado pela interpretacao geometrica doclassificador. Os cortes sao paralelos aos eixos do espaco, e sao calculados de modo a mini-mizar a altura da arvore. As folhas desta arvore por sua vez, contem apenas poucas regras,tornando viavel uma busca linear.

Em seus testes, os autores mostraram que, para o caso de classificacao com dois cam-pos e com um conjunto de 20 mil filtros, a altura da arvore gerada pode chegar a 4 no pior

Page 26: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

25

Figura 2.5: Grid Of Tries do classificador da Tabela 2.1

Fluxo End Orig. End Dest.F1 * *F2 0* 1*F3 1* 0*F4 10* 01*

Figura 2.6: Visao geometrica da classificacao

caso, tendo em media 2,3 de altura. Para classificadores de quatro campos com ate 2000 entra-das, mostraram que no pior caso a altura da arvore era 12, o que e equivalente a 20 acessos amemoria numa busca. Em todos os resultados, os gastos com memoria foram insignificantes,sendo menores que 2 Megabytes.

2.2.6 HyperCuts

O algoritmo HyperCuts (SINGH et al., 2003) e uma melhoria do algoritmo HiCutsque faz cortes multi-dimensionais no lugar dos cortes unidimensionais do ultimo algoritmo.Introduzindo essa flexibilidade, este algoritmo e capaz de criar regioes mais uniformes (como mesmo numero de prefixos) quando faz os cortes, diminuindo a altura da arvore de decisaogerada.

Page 27: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

26

Os autores deste algoritmo mostraram que com classificadores reais, a travessia daarvore precisou de 8 a 32 acessos a memoria, isso para classificadores com ate 5000 filtros emaiores que 4 dimensoes. Assim como o HiCuts, o gasto com memoria foi insignificante.

Em (KENNEDY et al., 2008), e apresentada uma nova versao do algoritmo HyperCutsjuntamente com uma arquitetura para implementacao, com um foco na economia de energia.Alguns estagios computacionalmente mais custosos do algoritmo de busca e insercao forameliminados. O metodo foi implementado no processador de rede Intel IXP2800 e variava o clockdo processador de acordo com a demanda, reduzindo o consumo de energia. As simulacoesmostraram que quando o sistema estava tendo que atender o seu limite de demanda de trafego,este nao mostrou reducao de consumo de energia, porem, quando o sistema estava com, porexemplo, 50% de sua capacidade maxima conseguiu reduzir o consumo em ate 50%.

2.2.7 TCAM Estendida

Em (SPITZNAGEL; TAYLOR; TURNER, 2003), e proposta uma solucao para otimi-zar o uso das TCAMs. Ela se baseia no fato de que intervalos de porta ou de enderecos podemacabar virando muitas entradas nas TCAMs. Isso e contornado, particionando a TCAM emvarios blocos e utilizando um circuito auxiliar para indexa-los. Na chegada de um pacote, ini-cialmente e buscado no ındice em quais blocos se deve fazer o proximo estagio de busca. Issoe feito em pipeline, de modo a permitir que enquanto as buscas sao feitas nos blocos, um outropacote ja possa ser indexado pelo circuito auxiliar. Os autores chamaram esta tecnica de TCAMEstendida ou, originalmente em ingles, Extended TCAM.

Para avaliar seu desempenho, os autores do algoritmo usaram uma versao primitivado Classbench, que ainda nao tinha este nome, gerando filtros sinteticos a partir de filtros reaise posteriormente aplicando a solucao. Os testes mostraram que este metodo pode reduzir ogasto com energia das TCAMs em ate 10 vezes e o espaco de armazenamento em ate 3 vezesmantendo a mesma vazao. Uma das desvantagens desse metodo e a dificuldade de se fazeratualizacoes no classificador.

2.2.8 ExpCuts

Em (QI et al., 2007), e apresentado um metodo para classificacao de pacotes com ideiassimilares as do HiCuts. O metodo e implementado em software, na arquitetura do processadorde rede IXP2850. O algoritmo tenta modificar ideias do HiCuts para fazer com que o algo-ritmo tenha um bom desempenho no pior caso. Essas modificacoes incluem, em cada nıvelda arvore de decisao, dividir o espaco em um numero mınimo de partes e nao realizar buscalinear nas folhas: o algoritmo de insercao de regras sempre divide o espaco ate que esta nao sejanecessaria.

Para avaliar seu desempenho, este foi comparado com o HiCuts e o HSM em bancosde dados reais. Superou o HSM em todos os classificadores testados, e o HiCuts na maioriadeles.

Page 28: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

27

2.2.9 HyperSplit

Em (QI et al., 2009), uma melhoria no algoritmo de HiCuts e apresentada. Sao reali-zadas modificacoes na maneira com que sao feitos cortes do espaco, que e sempre dividido de 2em 2. Estas modificacoes fazem com que o algoritmo tenha um bom desempenho no pior caso.Isto e enfatizado no metodo ja que os autores consideram que nos sistemas de classificacoesatuais tem que se ter um bom desempenho no pior caso.

Ainda no trabalho (QI et al., 2009), o algoritmo foi comparado com o HiCuts e o HSMna plataforma Cavium OCTEON3860 apresentando melhor desempenho em todos os cenariostestados. Para os testes, utilizou o Classbench na geracao dos filtros e traces.

2.2.10 EffiCuts

Em (VAMANAN; VOSKUILEN; VIJAYKUMAR, 2010), e proposto o metodo Effi-Cuts, uma melhoria do HyperCuts. Ele diminui o gasto com memoria em algumas ordens degradeza aumentando o tempo de busca em torno de duas vezes. Utiliza o conceito de arvoresseparaveis: sao criadas varias arvores de busca. Outro conceito introduzido e o de mesclagemdessas arvores separaveis: este e um processo seletivo, onde os pares de arvores sao mescladosapenas quando nao se vai gerar muitas regras redundantes.

Nos testes realizados no trabalho, foi comparado com HiCuts, HyperCuts e TCAM,sendo testado com classificadores sinteticos com 1000, 10000 e 100000 regras. Os classifica-dores sinteticos foram gerados usando o Classbench. Na maioria dos casos o metodo foi umpouco pior em termos de acesso a memoria. Em relacao a gasto com memoria a reducao foi de,em media, uma ordem de grandeza, chagando a 5 em alguns casos.

2.3 Espaco de Tuplas

Uma tupla e uma lista ordenada de elementos. No caso dos algoritmos que utilizamespaco de tuplas, as tuplas sao definidas como a quantidade de bits especificados em cada campode uma regra. Por exemplo, a tupla da entrada (101*,*,1111*) e [3,0,4], ja a de uma entradacom chave (*,*,00*,1110001110*) seria [0,0,2,10]. A quantidade de numeros nas tuplas sempresera igual a quantidade de campos utilizados para chavear a classificacao.

Os metodos baseados em espaco de tuplas utilizam tuplas para agrupar entradas possi-velmente melhorando o desempenho dos algoritmos.

2.3.1 Busca em Espaco de Tuplas e Podagem de Tuplas

Os metodos de Busca em Espaco de Tuplas e Podagem de Tuplas (SRINIVASAN;SURI; VARGHESE, 1999) (originalmente Tuple Space Search e Tuple Pruning), respectiva-mente, busca em espaco de tuplas e podagem de tuplas, funcionam agrupando as regras de um

Page 29: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

28

Tabela 2.2: Classificador com Tuplas

Regra Campo A Campo B Campo C TuplaR0 * * * [0,0,0]R1 01* 0* * [2,1,0]R2 * 1* * [0,1,0]R3 10* 0* * [2,1,0]R4 11* * 10* [2,0,2]R5 00* * 11* [2,0,2]

Figura 2.7: Hashes de tupla para o classificador da Tabela 2.2

classificador em varias tuplas, como mostrado na Tabela 2.2, onde pri(Ri)< pri(Ri+1).

O classificador da Tabela 2.2 possui 4 tuplas: [0,0,0], [0,1,0], [2,0,2] e [2,1,0]. Seriammontadas 4 tabelas hash, cada uma para agrupar as regras associadas com cada tupla. Entao,contrastando com a busca linear, no lugar de acessarmos 6 vezes a memoria, acessarıamosapenas 4 vezes (uma vez em cada hash). No exemplo a otimizacao nao parece tao clara, masestudos (SRINIVASAN; SURI; VARGHESE, 1999) mostram que este metodo reduz de 5 a 7vezes o numero de acessos quando comparado com a busca linear. Isso se deve ao fato de queem classificadores reais, normalmente o numero de tuplas e pequeno.

A Podagem de Tuplas e uma otimizacao para a Busca em Espaco de Tuplas no qualsao feitos algumas pre-computacoes para evitar buscas em todos os hashes. Ele reduz de 13 a17 vezes o numero de acessos a memoria quando comparado com a busca linear/exaustiva.

Esses metodos sao bastante eficientes em termos de memoria: O(N), onde N e onumero de regras no classificador.

2.3.2 Busca Retangular

Ainda em (SRINIVASAN; SURI; VARGHESE, 1999), e proposta a Busca Retangular(ou Rectangle Search) para encontrar os filtros de maior prioridade em um espaco de tuplas detamanho w×w usando no maximo 2w−1 hashes no pior caso, se baseando em pre-computacao

Page 30: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

29

usando marcadores. Este algoritmo pode ser usado em estagios de busca em espaco de tuplase serve para duas dimensoes. O algoritmo possui complexidade de tempo O(w) e memoriaO(nw).

2.3.3 Busca Retangular Livre de Conflitos

Em (WARKHEDE; SURI; VARGHESE, 2001) e proposta uma otimizacao no algo-ritmo de Busca Retangular que funciona como uma busca binaria quando as tuplas w×w naoapresentam conflitos (sao disjuntas). Apesar de so funcionar quando as regras sao disjuntas, epossıvel criar um classificador de regras disjuntas a partir de um classificador com regras con-flitantes, adicionando uma regra para cada conflito. Possui complexidade de tempo O(log2 w)e memoria O(n log2 w). Os autores chamaram esta otimizacao de Busca Retangular Livre deConflitos ou originalmente em ingles Conflict-Free Rectangle Search.

Ainda no trabalho (WARKHEDE; SURI; VARGHESE, 2001), uma comparacao foifeita usando filtros aleatorios com os algoritmos de Busca em Espaco de Tuplas, Espaco de Tu-plas Podado, Grade de Arvores de Prefixo e Crossproducting, apresentando melhores resultadosem 2 dos 3 cenarios testados, perdendo apenas para o Crossproducting em um dos cenarios.

2.3.4 Filtro de Bloom com Contador em Espaco de Tuplas

O metodo Filtro de Bloom com Contador em Espaco de Tuplas (Counting Bloom Filterin Tuple Space (AHMADI; WONG, 2007), uma melhoria na Busca em Espaco de Tuplas, utilizaFiltros de Bloom para evitar colisoes nas tabelas hash. Apesar de usar Filtros de Bloom aprobabilidade de falsos positivos nao resulta em falsos positivos na classificacao dos pacotes, jaque os filtros sao usados apenas em estagios intermediarios da busca.

Os resultados apresentados pelos autores do metodo mostraram que o metodo podereduzir o numero de colisoes nos hashes (consequentemente reduzindo o numero de acessosa memoria na busca) em ate 30%. O algoritmo foi testado com 3 calibracoes diferentes, e,curiosamente, em alguns poucos casos, ele chegou a aumentar em ate 27% o numero de colisoes.Apesar disso, na maioria dos casos, as colisoes foram reduzidas.

2.3.5 Podagem de Tuplas usando Filtros de Bloom

Em (LIM; KIM, 2010) e apresentada a Podagem de Tuplas usando Filtros de Bloom(Tuple Pruning Using Bloom Filters, uma simples modificacao no metodo de Podagem de Tu-plas que diminui o numero de acessos a memoria off-chip armazenando um filtro de bloom paracada hash na memoria on-chip. No trabalho e comentado que a ideia pode ser aplicada emvarios metodos de classificacao alem do TSP.

Em testes (LIM; KIM, 2010), foi comparado com TSP, Arvores de Prefixo Hierarquicas,Qrea-based Quad-trie e Priority-based Quad-trie (LIM; MUN, 2007). Conseguiu reduzir, em

Page 31: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

30

media, pela metade o numero de acessos a memoria em relacao ao TSP, que obteve melhordesempenho que os outros metodos na maioria dos casos.

2.3.6 Classificacao Baseada em Processadores de Rede

Em (FANG et al., 2010) e proposto o metodo de Classificacao Baseada em Proces-sadores de Rede (Classification Based on Network Processors (CBNP)), que utiliza ideias daBusca Linear em Vetores de Bit e Busca em Espaco de Tuplas numa implementacao especia-lizada para Network Processors. Para avaliacao deste trabalho, o metodo foi implementado noIXP2400. Nos testes, foi utilizada uma geracao de classificadores aleatoria propria. Ainda notrabalho, este metodo nao foi comparado com nenhum outro, sendo a avaliacao dos parametrosde carater absoluto e nao relativo.

2.4 Divisao e conquista

Algoritmos de divisao e conquista, ou decomposicao, sao aqueles que decompoem abusca em instancias de classificacao de apenas um campo para posteriormente combinar osresultados obtendo a classificacao em todos os campos (TAYLOR, 2005; SKIENA, 1997). Emoutras palavras, classifica-se cada campo independentemente, posteriormente mesclando-se osresultados. Esses algoritmos sao bastante eficientes, destacando-se o algoritmo de ClassificacaoRecursiva de Fluxos (Recursive Flow Classification, RFC). Essa categoria tambem inclui osalgoritmos: Busca Linear em Vetor de Bits e Crossproducting (GUPTA, 2000).

2.4.1 Busca Linear em Vetor de Bits

Supondo uma busca em apenas um dos campos do classificador da Tabela 1.1. Estabusca elimina todas as regras que nao coincidem com o cabecalho do pacote. Fazendo-seisso com todos os campos, sobram bem menos regras no classificador, possivelmente tornandoviavel o uso de uma busca linear nas regras remanescentes.

Tabela 2.3: Classificador

Regra Campo X Campo Y Campo ZR1 B C ER2 A C ER3 B * ER4 * * *

Em classificadores um pouco maiores, pode ser usada uma outra tecnica, a Busca Li-near em Vetor de Bits, ou originalmente em ingles Bit Vector Linear Search (LAKSHMAN;

Page 32: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

31

Tabela 2.4: Bit-Vectors

Campo X Campo Y Campo ZA 0101 C 1111 E 1111B 1011 * 0011 * 0010* 0010

STILIADIS, 1998). A Tabela 2.4 mostra a representacao utilizada pelo Bit Vector Linear Se-arch do classificador da Tabela 2.3. O numero de bits em cada celula (bitmap) e equivalenteao numero de regras do classificador. O n-esimo bit e associado a n-esima regra e indica seaquela regra coincide com o valor associado ao bitmap. Este metodo tambem e conhecidocomo Parallel Bit Vectors.

Para encontrar a regra associada a um cabecalho basta procurar pelo best match decada campo individualmente. Entao, realizando-se um AND nos bitmaps associados a cadabest match e facil ver que isto vai retornar um bitmap que mostra todas as regras validas paraum pacote a partir da posicao dos bits. A regra associada ao pacote seria a de maior priori-dade dentre este grupo. Este esquema foi implementado sem muitas dificuldades em FPGA(LAKSHMAN; STILIADIS, 1998).

Sem o uso de paralelismo, este metodo tem complexidade de tempo O(N) no pior caso,apresentando um desempenho bem melhor na pratica devido as caracterısticas dos classificado-res reais.

2.4.2 ABV

O ABV, Vetor de Bit Agregado (Aggregated Bit-Vector) (BABOESCU; VARGHESE,2005) e uma melhoria da tecnica de Busca Linear em Vetor de Bits. A melhoria e feita usandoobservacoes estatısticas de classificadores reais ao metodo para realizar agregacao de regras(separa-las em grupos) otimizando a busca. Sem o uso de paralelismo, este metodo tem com-plexidade logarıtmica O(logN).

O metodo e comparado com o BV utilizando classificadores reais em questao de aces-sos a memoria. O ABV apresentou eficiencia maior em mais de uma ordem magnitude emtodos os 3 cenarios testados.

2.4.3 Crossproducting

Foi observado (SRINIVASAN et al., 1998) que existem bem menos possibilidades devalores nos campos do que especificacoes de regras em si. Ou seja, em um classificador com50 regras, podem existir em torno de 5 possibilidades de enderecos de origem, 8 possibilidadesde enderecos de destino e 3 intervalos de portas. O termo Crossproducting pode ser traduzidovagamente como multiplicacoes cruzadas ou combinacoes cruzadas.

Page 33: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

32

Tabela 2.5: Todos os crossproducts gerados a partir do classificador da Tabela 2.3

Crossproduct Regra valida demaior prioridade

A,C,E R2A,C,∗ R4A,∗,E R4A,∗,∗ R4B,C,E R1B,C,∗ R4

Crossproduct Regra valida demaior prioridade

B,∗,E R3B,∗,∗ R4∗,C,E R4∗,C,∗ R4∗,∗,E R4∗,∗,∗ R4

Tomando isto como base, o algoritmo de Crossproducting (SRINIVASAN et al., 1998)funciona pre-computando todas as possibilidades de “misturas” (crossproducts) entre os cam-pos independentes do classificador. A Tabela 2.5 mostra exemplos de varios crossproducts doclassificador da Tabela 2.3. Para encontrar a regra que se aplica ao pacote a partir dos Best Mat-ches independentes de cada campo, basta achar o crossproduct gerado pela combinacao deles.A busca neste esquema tem complexidade O(dW ). O gasto de memoria e O(Nd) no pior caso.Nas formulas, W e a largura dos campos de busca, N a quantidade de regras no filtro e d onumero de dimensoes (campos) para a classificacao.

A alta complexidade computacional em memoria deste metodo o torna impraticavelfazendo com que com poucas entradas gastar memoria de maneira exorbitante (VARGHESE,2005).

2.4.4 RFC - Classificacao Recursiva de Fluxos

A partir de varias otimizacoes feitas no Crossproducting foi criado o algoritmo RFC(Classificacao Recursiva de Fluxos ou Recursive Flow Classification) (GUPTA, 2000), tambemconhecido pelo nome de Equivalenced Crossproducting (VARGHESE, 2005). Difere do ante-rior pela forma de combinar os crossproducts, que sao combinados aos pares. Ha um acrescimono tempo de busca em relacao ao seu antecessor, O(d), enquanto o gasto de memoria perma-nece o mesmo no pior caso O(Nd). Apesar disso, testes realizados mostraram que normalmenteo gasto e bem menor que isto devido a certas caracterısticas dos classificadores reais.

2.4.5 P2C - Classificacao de Pacotes Paralelizada

O metodo de Classificacao de Pacotes Paralelizada (P2C ou Parallel Packet Classifi-cation foi introduzido em (LUNTEREN; ENGBERSEN, 2003). Uma de suas novidades foia forma de codificar e agregar resultados intermediarios. Muito similar as tecnicas de BuscaLinear em Vetor de Bits e RFC, o P2C faz buscas em paralelo para identificar intervalos ele-mentares dentro de cada campo do classificador. A partir disso, o metodo cria strings ternariaspara cada regra e estas sao guardadas em TCAMs.

Page 34: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

33

2.4.6 DCFL - Crossproducting Distribuıdo de Rotulos de Campos

Em (TAYLOR; TURNER, 2005b), e introduzido o metodo Crossproducting Distribuıdode Rotulos de Campos (DCFL, Distributed Crossproducting of Field Labels). E uma versao doCrossproducting que utiliza tecnicas otimizadas ao fazer a busca da melhor regra para cadacampo, por exemplo:

Multibit Trie: endereco de origem e destino

Hash: tipo de protocolo

Arvore de decisao: porta

Feitas as buscas em cada campo, uma estrutura de dados otimizada e utilizada paraarmazenar os resultados. Ela e otimizada no sentido de permitir juncoes rapidas (calculo deintersecoes).

2.4.7 Crossproducting de Multi-subconjuntos

No Crossproducting original (Secao 2.4.3), todas as combinacoes possıveis de prefixose intervalos em cada campo sao geradas, isso pode gerar uma quantidade exorbitante de entradasna memoria.

Em (DHARMAPURIKAR et al., 2006) sao utilizados filtros de Bloom (BLOOM,1970) para otimizar o Crossproducting convencional. No lugar de fazer crossproducts de todosos campos, o crossproduct e feito em grupos de campos (2 ou 3 usualmente). Dois overhe-ads extras sao introduzidos: o processo de busca por maior prefixo para cada campo deve serrepetido para cada subconjunto e um acesso separado a tabelas hash para encontrar a regra fi-nal. Os autores chamaram esta tecnica de Multi-subset Crossproducting ou Crossproducting deMulti-subconjuntos.

A eficiencia desse algoritmo depende da forma com que sao arranjados os grupos, notrabalho sao apresentados dois metodos: NLTSS (Nested Level Tuple Space Search) e NLTMC(Nested Level Tuple Merging and Crossproduct).

2.4.8 TIC

Em (CHENG et al., 2008), e proposto o metodo Two-stage Interpreting based Clas-sification (TIC), Classificacao Baseada em Interpretacao de Dois Estagios. O trabalho indicaque ainda e um desafio criar uma solucao em software para fazer classificacao a 10Gbps. Essemetodo pode ser eficientemente implementado numa arquitetura de multiplos nucleos para atin-gir boas velocidades. O algoritmo foi implementado nos processadores IXP2800 e Core 2 Duo efoi testado com o ClassBench (TAYLOR; TURNER, 2005a). Nos testes realizados, o algoritmose mostrou mais eficiente que o RFC.

Page 35: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

34

Uma melhoria do RFC, o algoritmo trabalha otimizando os trade-offs entre gasto dememoria e tempo.

2.4.9 HSM - Mapeamento Hierarquico de Espaco

Em (XU; JIANG; LI, 2005) e proposto o HSM, Hierarchical Space Mapping ou ma-peamento hierarquico de espaco. Ele funciona de maneira bastante semelhante ao RFC modifi-cando a necessidade de intervalos de portas, ou de outros campos que nao precisam ser conver-tidos em prefixos. Dessa forma, evita-se a geracao de entradas durante a conversao, diminuindoo gasto com memoria.

Ainda em (XU; JIANG; LI, 2005), o metodo foi comparado com o RFC e mostroueconomia de 20% de memoria em classificadores com ate 2000 regras. Nao houve testes paraclassificadores maiores que isso. Houve uma perda de desempenho em tempo de busca que foiduas vezes maior que o do RFC.

2.5 Outras tecnicas

Esta secao fala de outras tecnicas simples que possuem algumas limitacoes em seuuso nao podendo ser categorizadas em nenhum dos grupos anteriores e que ainda hoje saoutilizadas dada sua simplicidade de implementacao (VARGHESE, 2005). Sao apresentadas porreferencia: o algoritmo PathFinder e o uso de Caching.

2.5.1 PathFinder

Uma tecnica bastante eficiente que pode ser utilizada e o uso do algoritmo PathFin-der (BAILEY; GOPAL; PAGELS, 1994). Este algoritmo usa a ideia de arvores e nao efetuabacktraking. Para isso ele estabelece uma limitacao: nao podem haver chaves (bits) indefinidasem dimensoes intermediarias da tabela. No caso do classificador da Tabela 1.1, apresentada nocapıtulo de introducao, apenas as regra R8 seria classificavel.

2.5.2 Caching

Uma tecnica muito conhecida e usada em varias areas da computacao e o caching,que consiste em guardar os cabecalhos dos ultimos pacotes recebidos em uma tabela (cache).Estudos feitos por (NEWMAN et al., 1997) mostram que a taxa de ocorrencia dos cabecalhosdos pacotes recebidos no cache varia entre 50% e 90%. O uso desta tecnica pode vir a melhorara eficiencia dos outros varios esquemas de classificacao aqui apresentados.

Page 36: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

35

2.5.2.1 APCC

O Caching de Classificacao Aproximada (CHANG; LI; FENG, 2004), ou ApproximatePacket Classification Caching (APCC), e uma tecnica de caching com utilizacao de Filtros deBloom que permite classificacao errada com probabilidade controlada (misclassification). Avantagem desta tecnica e que, por se utilizar de Filtros de Bloom, e possıvel armazenar bemmais cabecalhos no cache, aumentando a probabilidade de se evitar a classificacao com umcache hit. Sendo uma tecnica de caching, pode ser utilizada juntamente com a maioria dosmetodos de classificacao apresentados nesta secao.

A tecnica preve que a classificacao seja para determinar a porta de saıda de um comuta-dor, prevendo um Filtro de Bloom para cada porta. Ao se classificar um pacote, seu cabecalho einserido no Filtro de Bloom equivalente. Antes da classificacao de cada pacote, seu cabecalho epassado para o cache que deve retornar a qual porta de saıda ele esta associado. Se este retornarmais de uma porta, ou nenhuma, e considerado que se obteve um cache miss e uma classificacaodeve ser feita. A remocao de elementos do cache e feita esvaziando-o completamente ou man-tendo uma cache auxiliar, reduzindo pela metade o tamanho do cache.

O metodo foi avaliado utilizando classificadores e traces reais retirados de duas re-des. Foram avaliados os numeros de Cache misses de cada metodo mostrando que nao houvereducao em seu numero, diminuindo o espaco necessario para armazenamento. Os autores doartigo mencionam que essa tecnica pode vir a ter uma grande relevancia caso o IPv6 seja imple-mentado (o que acarretaria um alto gasto com memoria caso se usassem caches tradicionais).

Page 37: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

36

3 PROPOSTA: BUSCA EM ESPACO DE TUPLASCONDENSADO

Este capıtulo tem por objetivo apresentar a contribuicao deste trabalho, um novo metodopara classificacao de pacotes: o Condensed Tuple Space Search (CTSS) ou Busca em Espacode Tuplas Condensado. Ele apresenta uma melhoria na maneira com que sao armazenadasas entradas no metodo Tuple Space Search (TSS), aumentando o gasto com memoria de ma-neira controlada, mas gerando uma consideravel diminuicao do tempo de busca. Esta melhoriavem de observacoes na estrutura do TSS que permitem eliminar tuplas a esse custo. Outraobservacao importante e a de que o TSS convencional e um metodo bastante eficiente em ter-mos de memoria, o que pode ser um desperdıcio, ja que memoria e um recurso relativamentebarato. O TSS convencional e descrito em detalhes na Secao 2.3.1 do capıtulo de revisao bi-bliografica. Sendo assim, o presente capıtulo ira abordar apenas os conceitos em que este ediferente do TSS.

O Tuple Space Search vem ultimamente ganhando interesse da comunidade cientıficae foi escolhido para ser estendido por possuir caracterısticas que permitem paralelismo de formabastante flexıvel (AHMADI; WONG, 2007), caracterıstica que e bastante explorada atualmenteem implementacoes de classificacao de pacotes feitas em hardware. Esta exploracao se dapelo mais facil acesso dessas tecnologias nos dias atuais. Apesar de uma implementacao emhardware nao ser o objetivo deste trabalho, os testes realizados indicam se vale a pena imple-menta-la. Como a melhoria trabalha em reduzir o numero de tabelas hash a serem buscadas,esta reducao pode tornar a busca em paralelo em todas estas tabelas praticavel. Nos casos emque nao e, esta poderia ser dividida em varios estagios, por exemplo, buscando paralelamenteem grupos de 10 ou 20 tabelas, reduzindo a ordem de grandeza do tempo de busca.

Este capıtulo esta dividido em 4 secoes. Na Secao 3.1 e descrita a ideia principal dedo algoritmo proposto. Nas secoes 3.2 e 3.3 sao descritos, respectivamente, os algoritmos declassificacao (busca) e insercao de elementos. Finalmente, na Secao 3.4 sao descritos detalhesda estrutura de dados proposta. Este capıtulo so fala sobre os pontos em que o CTSS diverge doTSS, que ja e descrito em detalhes na Secao 2.3.1.

3.1 Eliminacao de tuplas e expansao de prefixos

E sabido que no TSS convencional a busca e feita em todas as tuplas e e proporcional aoseu numero. Existe a possibilidade de se eliminar algumas tuplas fazendo expansao de prefixos,

Page 38: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

37

que consiste em transformar um prefixo mais abrangente em varios prefixos menos abrangentes(RUIZ-SANCHEZ; BIERSACK; DABBOUS, 2001).

Supondo um campo que tenha 3 possibilidades: 0*, 10* e 11*, que formam duas tuplas([1] e [2]). Expandindo a primeira possibilidade de 0* para 00* e 01*, geramos 4 possibilidades,00*, 01*, 10* e 11*, porem, diminuımos de 2 para 1 tupla. Utilizando essa ideia para estendero TSS e possıvel diminuir o numero de chamadas a tabelas hash que serao feitas no total. Aseguir e mostrado um exemplo pratico de como a eliminacao de tuplas funciona no CTSS.

Regra Campo A Campo B Campo C TuplaR0 * * * [0,0,0]R1 01* 0* * [2,1,0]R2 * 1* * [0,1,0]R3 10* 0* * [2,1,0]R4 11* * 10* [2,0,2]R5 00* * 11* [2,0,2]

(a) Entradas (b) Tabelas hash

Figura 3.1: Classificador original

As figuras 3.1, 3.2 e 3.3 mostram o processo de eliminacao para duas tuplas. E im-portante notar que para este exemplo Pri(Ri) < Pri(Ri+1). Primeiramente e eliminada a tupla[0,0,0] de apenas uma entrada, que e entao expandida para tupla [0,1,0] nao aumentando ogasto com memoria. A entrada (∗,∗,∗) da tupla [0,0,0] equivale a (∗,0∗,∗) e (∗,1∗,∗) na tupla[0,1,0]. Como (∗,1∗,∗) ja esta especificado na tabela hash da tupla [0,1,0] por uma regra demaior prioridade, apenas a outra entrada (∗,0∗,∗) e adicionada.

Regra Campo A Campo B Campo C TuplaR0 * 0* * [0,1,0]R1 01* 0* * [2,1,0]R2 * 1* * [0,1,0]R3 10* 0* * [2,1,0]R4 11* * 10* [2,0,2]R5 00* * 11* [2,0,2]

(a) Entradas (b) Tabelas hash

Figura 3.2: Classificador da Figura 3.1 apos eliminacao da tupla [0,0,0]

Para o segundo exemplo de eliminacao, transformando o classificador da Figura 3.2no da Figura 3.3, foi escolhida a tupla [0,1,0], que e eliminada inserindo suas entradas no hashda tupla [2,1,0]. Nesse caso, como existem dois bits de diferenca no primeiro campo, 22 = 4entradas sao criadas na expansao por cada entrada no hash da tupla original. A expansao de(∗,1∗,∗) nao gera nenhum conflito, ja que nenhuma das quatro expansoes existe no hash datupla [2,1,0]. Ja duas das expansoes de (∗,0∗,∗), sendo elas (01∗,0∗,∗) e (10∗,0∗,∗), geramconflitos nos quais a regra de maior prioridade e escolhida (R1 e R4 respectivamente).

Page 39: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

38

Regra Campo A Campo B Campo C TuplaR0 01* 0* * [2,1,0]R0 11* 0* * [2,1,0]R1 01* 0* * [2,1,0]R2 00* 1* * [2,1,0]R2 01* 1* * [2,1,0]R2 10* 1* * [2,1,0]R2 11* 1* * [2,1,0]R3 10* 0* * [2,1,0]R4 11* * 10* [2,0,2]R5 00* * 11* [2,0,2]

Figura 3.3: Classificador da Figura 3.2 apos eliminacao de mais uma tupla: [0,1,0]

3.2 Classificacao

Figura 3.4: Fluxograma, classificacao no CTSS

O algoritmo de busca do CTSS e o mesmo do TSS, sendo mostrado no fluxogramada Figura 3.4. Sao feitas as buscas em todos os hashs de tuplas, isto podendo ser executadoem paralelo para obter melhor desempenho. Implementacoes em hardware usando FPGAs ouASICs podem facilitar isso. Posteriormente e feita a escolha do resultado de maior prioridade.

3.3 Insercao de regras

O algoritmo de insercoes de regras do CTSS tem um processamento adicional emrelacao ao do TSS. Ele e visto no fluxograma da Figura 3.5. Inicialmente todas as regras saoinseridas na estrutura no primeiro laco, da mesma maneira que no TSS. Posteriormente, nosegundo laco, tuplas sao eliminadas ate que um limite de memoria configurado seja atingido.Esta configuracao deve ser proxima do limite total de memoria do dispositivo onde o algoritmoe implementado para um melhor aproveitamento de recursos.

Page 40: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

39

Figura 3.5: Fluxograma simplificado, insercoes de regras no CTSS

O segundo laco do fluxograma esta simplificado e e detalhado no Algoritmo 1. Oprocedimento principal de otimizacao e refeito 4 vezes, cada vez com um limite diferente deexpansao de prefixos (2k): na primeira com 28 entradas, depois 212, depois 216 e, finalmente,220. Essas limitacoes sao adicionadas para evitar que logo de inıcio se faca uma expansao deprefixos que gere muitas entradas fazendo com que a memoria seja preenchida sem que muitastuplas sejam eliminadas: e sempre melhor comecar eliminando as tuplas que geram menosprefixos.

O laco interno itera por todos os pares de Hashes de Tupla I e J, tendo como tuplas,respectivamente, It e Jt . Ele sempre tem o objetivo de expandir as entradas do Hash I no Hash J.E calculada a tupla uniao de It e Jt : sendo Itn o n-esimo campo da tupla It e Jtn o n-esimo campoda tupla Jt , a tupla uniao Ut e uma tupla na qual ∀n Utn = maior(Itn,Jtn). Em outras palavrascada campo de Ut tem o maior valor entre It e Jt . Exemplo: com It = [1,2,3,4] e Jt = [4,3,2,1],Ut = [4,3,3,4]. Esse processo vai garantir que todos os elementos das duas tuplas originaispossam ser expandidos na tupla uniao.

Supondo que a expansao seja possıvel, o numero de novas entradas expandindo umhash de tupla I em um J, sendo n o numero de campos em uma tupla e N o numero de entradasja existentes em I e e dado por:

N×n

∏i=0

2|Jti−Iti|

Em outras palavras o numero de entradas a serem inseridas na nova tupla e dado por2 elevado ao numero de bits adicionados em cada entrada multiplicado pela quantidade deentradas existentes na tupla que esta sendo removida. Isso e dado pelo fato de que para cada bitadicionado, o numero de entradas geradas dobra.

Feito isso, e verificado se o numero de entradas criadas eliminando I ou J e menor que

Page 41: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

40

Algoritmo 1: Procedimento de otimizacaoEntrada: Shashes: conjunto de hashes de tuplaDados: K: o coeficiente de expansao maxima (2K), atualizado em cada iteracaoDados: Xt : Tupla do hash XDados: Xn: Numero de entradas no hash XDados: Xnnew: Numero de novas entradas geradas pela eliminacao do hash XResultado: Conjunto de hashes de tupla otimizadopara K = {8,12,16,20} faca

para cada par I,J ∈ Shashes facaCalcula tupla uniao de It ,Jt : Ut , sendo U o hash da tupla UtInnew = numero de novas entradas expandindo elementos de I em UJnnew = numero de novas entradas expandindo elementos de J em Use Innew < 2k, Jnnew < 2k e T + Innew + Jnnew− In− Jn ≤ L entao

se U /∈ Shashes entaoAdiciona U em Shashes

fimExpande as entradas de I e J adicionando em URemove I e J de ShashesAtualiza total de entradas

fimfim

fim

2K e se, ao eliminar esses Hashes de Tupla, o limite de memoria L nao e ultrapassado. Casoesses requisitos sejam cumpridos, I e J sao eliminados expandindo suas entradas em U .

3.4 Estrutura de dados

Para evitar que informacoes como a acao associada com uma regra e sua assinaturasejam armazenadas em cada hash de tupla em que esta for expandida, pode-se armazenar apenasum identificador para a regra real, que estaria armazenada em um arranjo (array) indexadopelo identificador. No momento da busca, primeiramente seria encontrado o identificador, quea seguir, seria usado como ındice no arranjo, buscando efetivamente a regra associada. Umdiagrama mostrando esta estrutura e visto na Figura 3.6.

Sabendo que normalmente classificadores raramente sao maiores que 5000 regras eque classificadores com mais de 10000 regras sao ainda mais raros (TAYLOR, 2005), podemosimaginar que esse identificador possa ser um inteiro de 2 bytes (permitindo um valor maximo de65336 regras no classificador). Tomando isso como base e supondo funcoes de hash perfeitas, ogasto com memoria em bytes de cada Hash de Tupla e dado por duas vezes o numero de entradasarmazenado naquele Hash. Essa foi a medida adotada nos calculos de gasto com memoria dasecao de resultados.

Page 42: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

41

Figura 3.6: Estrutura de dados na memoria

Page 43: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

42

4 METODOLOGIA DE AVALIACAO

Este capıtulo tem por objetivo descrever a metodologia de avaliacao do metodo pro-posto: as ferramentas e linguagens de programacao utilizadas, a maneira com que foram geradosos dados de teste e como foram calculados os graficos de resultado.

Neste trabalho, o metodo proposto foi implementado em C, sendo testado contra asbases de dado geradas pela ferramenta Classbench (TAYLOR; TURNER, 2005a), sendo com-parados, sob as mesmas condicoes, com o metodo TSS e com a Busca Linear (exaustiva).Para os testes, foram escolhidas 4 versoes do metodo, variando seu limite de memoria: 64MB,256MB, 1GB, 4GB. Isto e detalhado a seguir.

4.1 Geracao dos dados de teste: Classbench

Para realizacao de testes de desempenho, e necessario obter varios classificadores ougerar classificadores sinteticos. Devido a dificuldade de encontrar filtros reais, ja que instituicoes,empresas e corporacoes sao relutantes em divulgar seus dados de firewall/classificacao, o que enatural, sera usado o Classbench para gerar os classificadores (TAYLOR; TURNER, 2005a).

Figura 4.1: Diagrama de blocos: Classbench (TAYLOR; TURNER, 2005a)

Esta ferramenta funciona inicialmente analisando classificadores reais e gerando arqui-vos com os parametros de cada um deles. A partir desses varios parametros, e possıvel utilizaro gerador de classificador para obter classificadores sinteticos e um gerador de traces para obtertraces de cabecalhos sinteticos. O funcionamento do Classbench (TAYLOR; TURNER, 2005a)

Page 44: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

43

e mostrado na Figura 4.1. Ela foi escolhida para uso neste trabalho porque tem se tornadoum padrao informal para testes com classificacao, ja que varios trabalhos a utilizam (PAO; LI;ZHOU, 2006; FICARA et al., 2008; PAO; LIU, 2007; WANG, 2009; TAYLOR, 2005), alem deela vir com 12 arquivos parametro descrevendo as caracterısticas de 12 classificadores reais.

Classificador Tamanho SAs unicos DAs unicos SAs/DAs unicos µscope σscopeacl1 733 6 20 31 25.0146 13.4585acl2 623 13 13 50 51.6869 17.6880acl3 2400 22 12 89 32.0168 15.6699acl4 3061 22 15 98 30.9481 15.1367acl5 4557 11 3 31 24.2274 8.0554fw1 283 12 6 22 51.1686 15.6819fw2 68 4 3 8 56.5842 23.0965fw3 184 9 3 13 54.3004 14.8012fw4 264 5 6 12 48.1127 27.9439fw5 160 10 4 17 55.7881 16.9506ipc1 1702 15 13 93 39.7172 19.4508ipc2 192 4 2 5 47.0521 27.7966

Tabela 4.1: Caracterısticas dos classificadores parametro

A listagem de arquivos parametros e vista na Tabela 4.1 que mostra algumas das ca-racterısticas dos classificadores semente a partir dos quais foram gerados. As primeiras duascolunas descrevem o nome do arquivo e seu tamanho, expresso em numero de entradas. As 3colunas seguintes, descrevem o numero de comprimentos de enderecos de origem, enderecosde destino e pares de origem e destino unicos. Essas colunas sao bastante importantes poisinfluem diretamente no numero de tuplas do classificador, uma caracterıstica importante dometodo proposto, inclusive confirmando as observacoes feitas na literatura: que o numero detuplas e algumas vezes menor que o tamanho dos classificadores. As ultimas duas colunas sereferem a especificidade das regras e mostram a media e variancia do numero de bits especifi-cados em cada regra. A media gira em torno dos 45 bits e a variancia e bem alta, mostrandoque existem regras com muitos e poucos bits especificados. Outras caracterısticas foram divul-gadas e podem ser encontradas em (TAYLOR; TURNER, 2005a, 2007). As consideradas maisimportantes para o trabalho sao as listadas na tabela.

Os classificadores sinteticos gerados pelo Classbench procuram manter as caracterısticasdo classificador original, porem possuem entradas aleatorias. Algumas das caracterısticas po-dem ser modificadas de acordo com a necessidade, que podem ser feitas no tamanho do clas-sificador gerado, quantidades de tuplas unicas e especificidade das regras. Para este trabalho,os parametros modificados foram o tamanho dos classificadores (que variou entre 1 e 10000regras) e o numero de tuplas. O segundo foi modificado de acordo com recomendacoes dosautores do Classbench, que recomendam setar o valor da variavel de suavizacao do compri-mento dos campos especificados como sendo 8. O argumento para colocar essa suavizacao eque a medida que os classificadores vao crescendo em tamanho, devem surgir novos compri-mentos para cada campo e essa suavizacao (alisamento) insere novos comprimentos proximosde comprimentos pre-existentes.

Page 45: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

44

Os arquivo parametro de classificadores listados na Tabela 4.1 sao de 1 entre 3 tipos:Access Control List (ACL), Firewall ou IP Chain (IPC). Pelos nomes dos arquivos e possıvelfacilmente distingui-los entre as 3 classes.

O formato ACL e um formato padrao para seguranca, VPN e filtros de NET parafirewalls e roteadores, sejam eles de empresa, de borda ou de backbone. Os do tipo Firewall saoos que utilizam formatos proprietarios. Os do tipo IP Chain, sao baseados em classificadores queutilizam um formato de arvore de decisao para seguranca, VPN e NATs em sistemas baseadosem software. E importante notar que apesar da diferenca em suas representacoes e em uso,todos sao classificadores, associando regras (assinaturas de cabecalhos de pacote) com acoes(bloquear, desbloquear, adicionar cabecalho).

4.2 Implementacao, ambiente e ferramentas utilizadas

O metodo proposto, bem como o TSS e a Busca Linear, foi implementado em soft-ware, em nıvel usuario, utilizando-se linguagem C. A implementacao dos metodos de tupla foisimplificada, de modo que, nao foram utilizadas tabelas hash para armazenar cada tupla: apenasa quantidade de entradas em cada tupla e armazenada. Esta maneira foi escolhida por, alem desimplificar a implementacao, permitir calcular os parametros avaliados, gasto com memoria enumero de acessos a memoria, sem perda de precisao. Isso se da, ja que o numero de acessosa memoria nos metodos TSS e CTSS sao fixos, dependendo apenas do numero de tabelas hashde tuplas, supondo hashes perfeitos, em que a busca seja feita em apenas um acesso a memoria.

O ambiente onde foram realizadas as Classificacoes foi o sistema operacional ArchLinux com kernel de versao 2.6.36. Para compilar os programas implementados foi utilizadoo compilador GCC versao 4.5.1. Para realizar o controle dos testes e executar cada cenario foiutilizada a linguagem Bash versao 4.1.9. As implementacoes e escolhas dos parametros foramfeitas de forma que se obtenha resultados similares em sistemas com ambiente e ferramentascompletamente diferentes. Os resultados nunca seriam iguais em outro sistema, ou ate nomesmo, ja que os dados de entrada sao parcialmente aleatorios. A implementacao em C econforme com a norma corrente (ISO, 1999).

4.3 Testes

Para cada arquivo parametro, 12 no total, e tamanhos de classificador 1, 250, 500,1000, 2000, 4000, 6000, 8000 e 10000 serao gerados 50 classificadores, e, juntamente destes,50 traces contendo 10 mil pacotes. Para cada par de metodo e classificador gerado, sera feitauma execucao sobre a qual se avaliara alguns parametros, que sao descritos a seguir. Ao finalda coleta de parametros, sera feita uma media de resultados em cada grupo de 50 classificado-res/traces para obter os valores colocados nos graficos da secao de resultados, que mostraraotambem, os intervalos de confianca de 95%. A media e necessaria pois os classificadores gera-dos sao aleatorios. Os passos deste procedimento podem ser vistos na Figura 4.2.

Page 46: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

45

Figura 4.2: Fluxograma dos testes executados para cada arquivo-semente

4.4 Parametros Avaliados

Serao utilizados dois parametros de avaliacao: gasto com memoria e numero de aces-sos a memoria para processar um pacote. Estes foram escolhidos, pois alem de serem usados emvarios outros trabalhos (SRINIVASAN; SURI; VARGHESE, 1999; AHMADI; WONG, 2007;XU; JIANG; LI, 2005), sao exatamente as duas caracterısticas que devem ser modificadas comas melhorias no algoritmo.

Page 47: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

46

5 RESULTADOS

Este capıtulo mostra os resultados para todos os classificadores testados. Eles estaoagrupados em 3 secoes, separadas por tipo de classificador. A Secao 5.1 mostra os resultadospara o tipo ACL. A Secao 5.2 os resultados do tipo Firewall. A 5.3 os do tipo IPC.

Os intervalos de confianca de 95% sao vistos nos graficos atraves de barras de erro. Epossıvel ver que estes ficaram bem pequenos, inclusive em alguns graficos quase imperceptıveis,por estarem muito proximos de sua linha correspondente no grafico.

Nas secoes a seguir, para cada instancia testada, e apresentada uma figura com quatrograficos. Dois para descrever o desempenho em relacao ao gasto com memoria, e dois paradescrever o numero de acessos a memoria, que equivale a quantidade de tabelas hash de tuplaspara o TSS e o CTSS. Dos dois graficos apresentados para cada parametro de avaliacao, um estaem escala linear e outro esta em escala logarıtmica no eixo y, fazendo com que estar uma marcade escala acima signifique ser 10 vezes maior e vice-versa. Isso foi escolhido, pois ao tentarrepresentar as 4 versoes do CTSS juntamente com a Busca Linear e com o TSS num grafico soem escala linear, obteve-se um desenho no qual se via claramente apenas os graficos da BuscaLinear e TSS (de mesma ordem de grandeza) com os outros 4 graficos colados ao eixo x. Arepresentacao logarıtmica resolveu esse problema permitindo comparar os metodos de maneiramais clara. Por considerar a representacao dos graficos em escala linear ainda importante, ografico nesta escala mostra o detalhe da regiao onde se encontram as 4 versoes do CTSS.

Nas secoes a seguir uma analise detalhada de cada caso, com explicacoes sobre resul-tados especıficos de cada um.

5.1 Listas de controle de acesso (firewall)

Na Figura 5.1, referente aos resultados obtidos com as entradas geradas pelo classifi-cador semente acl1, e visto que o CTSS conseguiu reduzir em quase duas ordens de grandezaa quantidade de tabelas hash necessarias a se buscar em comparacao com o TSS, passando deem torno de 800 para 14 acessos a memoria a partir de 6000 regras. E possıvel notar que, nestainstancia, a partir de um certo ponto, nao compensa aumentar o gasto com memoria: poucacoisa sera mudada. Aumentando o gasto em 16x na transicao do CTSS 256MB para o CTSS4GB, conseguiu-se diminuicao de apenas 1 acesso a memoria.

Ainda na Figura 5.1 e possıvel ver que o metodo TSS obteve um desempenho 10 vezes

Page 48: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

47

0

5

10

15

20

25

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para acl1 (escala linear):

1

10

100

1000

10000

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para acl1 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

0

0.5

1

1.5

2

2.5

3

3.5

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para acl1 (escala linear):

1e−05

0.0001

0.001

0.01

0.1

1

10

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para acl1 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

Figura 5.1: Seed acl1: gasto com memoria e acessos × numero de regras

melhor que o metodo de Busca Linear, confirmando resultados obtidos em outros trabalhosencontrados na literatura (TAYLOR, 2005; SRINIVASAN; SURI; VARGHESE, 1999).

Diferentemente dos outros resultados apresentados neste trabalho, para acl2 (Figura5.2), o metodo CTSS 64MB apresentou um desempenho de mesma ordem de grandeza que oTSS, apesar de ainda ser melhor. Quadruplicando o uso de memoria, com o CTSS 256MB, foiconseguida uma melhora em pouco mais de duas vezes. Ja a partir da versao do CTSS de 1GB,foi possıvel obter melhora de 1 ordem de grandeza. O resultado nao foi tao bom se comparadoaos outros obtidos nesse trabalho: em torno de 250 acessos a memoria a partir de 5000 entradas.Isso aconteceu pois, por exemplo, quando comparado com acl1, tem baixa quantidades de tuplasnos enderecos IP (SAs e DAs unicos), isso pode ser verificado na tabela 4.1.

Para o acl3 (Figura 5.3), houve um ganho de pouco mais de uma ordem de grandezaem relacao ao TSS. Obtendo-se 40 acessos a memoria com 5000 entradas. Neste caso, todasas 4 versoes apresentaram aumento de desempenho significativo em se tratando de acessos amemoria.

O grafico de acessos a memoria apresentou um crescimento mais suave, provavelmentedevido ao fato de que nas versoes com menos entradas, ha menos possibilidades de tuplas parase expandir fazendo que o algoritmo nao consiga expandir tuplas ate o limite de memoria.Nestes casos, o algoritmo conseguiu reduzir para menos de 20 hashes de tupla.

Os resultados para os classificadores do arquivo-parametro acl4, mostrados na Figura5.4, foram bastante semelhantes ao do acl3. Isso se deve ao fato de que os dois possuem

Page 49: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

48

0

500

1000

1500

2000

2500

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para acl2 (escala linear):

1

10

100

1000

10000

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para acl2 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para acl2 (escala linear):

1e−05

0.0001

0.001

0.01

0.1

1

10

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para acl2 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

Figura 5.2: Seed acl2: gasto com memoria e acessos × numero de regras

caracterısticas bastante semelhantes, como por exemplo quase a mesma quantidade de entradase de enderecos de origem e destino unicos. Estas caracterısticas podem ser vistas na Tabela 4.1.

Para os resultados da Figura 5.5, referentes aos classificadores acl5, o metodo CTSSobteve um ganho de duas ordens de grandeza a menos quando comparados ao TSS. E possıvelver tambem que se conseguiu uma quantidade de acessos a memoria muito baixa: menos de 6acessos a memoria para classificadores com menos de 5000 regras. Curiosamente, este e o testeque possui o classificador semente com maior numero de regras: 4557.

A baixa quantidade tuplas no classificador semente acl5 (Tabela 4.1) acabou por influirno gasto com memoria, que nao atingiu os valores limite estabelecidos como parametro nosalgoritmos para os casos com 4GB e 1GB. Isso provavelmente se deve ao fato de que, cadavez que se tem menos hashes de tupla, fica mais difıcil expandir tuplas sem aumentar muito ogasto com memoria, ja que o algoritmo proposto procura eliminar primeiro as tuplas que naovao gerar um gasto tao grande. Outro fator, e que ao final da execucao do algoritmo, os hashesde tupla comecam a armazenar muitas entradas, fazendo com que o fator multiplicativo paraeliminacao dessas tuplas seja maior.

Page 50: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

49

0

20

40

60

80

100

120

140

160

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para acl3 (escala linear):

1

10

100

1000

10000

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para acl3 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para acl3 (escala linear):

1e−05

0.0001

0.001

0.01

0.1

1

10

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para acl3 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

Figura 5.3: Seed acl3: gasto com memoria e acessos × numero de regras

0

20

40

60

80

100

120

140

160

180

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para acl4 (escala linear):

1

10

100

1000

10000

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para acl4 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para acl4 (escala linear):

1e−05

0.0001

0.001

0.01

0.1

1

10

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para acl4 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

Figura 5.4: Seed acl4: gasto com memoria e acessos × numero de regras

Page 51: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

50

1

2

3

4

5

6

7

8

9

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para acl5 (escala linear):

0.1

1

10

100

1000

10000

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para acl5 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

0

0.2

0.4

0.6

0.8

1

1.2

1.4

1.6

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para acl5 (escala linear):

1e−05

0.0001

0.001

0.01

0.1

1

10

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para acl5 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

Figura 5.5: Seed acl5: gasto com memoria e acessos × numero de regras

Page 52: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

51

5.2 Firewall

Nos 5 arquivos parametro do tipo Firewall, o TSS melhorou pouco em comparacaocom a busca linear, em alguns casos chegando a ficar um pouco pior. Isso pode ocorrer, pois,na maneira com que a busca linear foi implementada, tem-se n/2 acessos a memoria, onde n eo numero total de entradas. As entradas estao ordenadas por prioridade em um arranjo (array)e quando uma busca e feita, basta retornar a primeira entrada que coincide com o pacote, emmedia, isso vai dar n/2 acessos a memoria. O numero de tuplas nunca ultrapassa n, porem, seeste numero foi maior que n/2 e possıvel que o TSS tenha um desempenho um pouco pior quea busca linear. E importante notar que isso nao invalida o metodo TSS que obteve os ganhosesperados na maioria dos testes.

Em todos os casos, quando o CTSS, o metodo proposto, e comparado com o TSS,obtem-se uma melhora de em torno de duas ordens de grandeza. Em quase todos os casos,aumentar os limites de gastos de memoria compensaram, tendo ganhos entre aproximadamente10% e 40%.

0

20

40

60

80

100

120

140

160

180

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para fw1 (escala linear):

0.1

1

10

100

1000

10000

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para fw1 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

0

0.5

1

1.5

2

2.5

3

3.5

4

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para fw1 (escala linear):

1e−05

0.0001

0.001

0.01

0.1

1

10

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para fw1 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

Figura 5.6: Seed fw1: gasto com memoria e acessos × numero de regras

Em relacao aos resultados para as diferentes variacoes do CTSS, os resultados da Fi-gura 5.6, referentes aos testes para fw1, foram semelhantes aos resultados para acl3 e acl4, nosentido de que todos os aumentos de limite de memoria para o algoritmo resultaram em ganhosconsideraveis em numeros de acessos a memoria. No aumento de 1GB para 4GB, obteve umganho de aproximadamente 30%.

Page 53: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

52

0

5

10

15

20

25

30

35

40

45

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para fw2 (escala linear):

1

10

100

1000

10000

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para fw2 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

0

0.5

1

1.5

2

2.5

3

3.5

4

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para fw2 (escala linear):

1e−05

0.0001

0.001

0.01

0.1

1

10

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para fw2 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

Figura 5.7: Seed fw2: gasto com memoria e acessos × numero de regras

Para fw2, Figura 5.7, os resultados foram apenas um pouco diferentes dos para fw1.Uma das diferencas foi que para o aumento de 1GB para 4GB se teve apenas um ganho de15%, neste caso, equivalente a aproximadamente 3 acessos a memoria. Outra diferenca e namagnitude dos resultados, que para o caso do fw2, foram em uma escala menor para os acessosa memoria: melhor desempenho.

A Figura 5.8, para o fw3, mostra melhoria de desempenho em duas ordens de grandezae mostra que, nesse caso, nao foi compensador o aumento de memoria de 1GB para 4GB.Para os gastos com memoria, apesar da relativa abundancia de tabelas hash de tupla existentespara serem expandidas ao final da execucao do algoritmo, estes nao chegaram a se aproximartanto dos limites, com o algoritmo versao 4GB ocupando nao mais que 3GB de memoria. Einteressante notar que para o caso de 4GB houve uma diminuicao no gasto com memoria noaumento de entradas de 6000 para 8000 e 10000. Pelos intervalos de confianca, ve-se que estadiminuicao nao foi tao consideravel, ja que estes estao bastante extensos para a versao 4GB. Umpossıvel motivo para que esta diminuicao tenha ocorrido e que com mais entradas, existiriammais tuplas para se eliminar nos estagios iniciais do algoritmo. Eliminacoes nos estagios iniciaisnao geram tantas entradas quanto eliminacoes nos estagios finais do algoritmo.

Os resultados para fw4, mostrados pela Figura 5.9, foram divergentes dos outros resul-tados para tabelas do tipo firewall em se tratando de acessos a memoria. As tres versoes maiscustosas do CTSS em termos de memoria obtiveram um desempenho uma ordem de grandezamenor que o TSS e a Busca Linear. Ja o metodo CTSS de 64MB nao apresentou um desempe-nho tao bom, melhorando pouco em relacao aos resultados do TSS: 3 a 4 vezes. Isso ocorreu

Page 54: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

53

0

10

20

30

40

50

60

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para fw3 (escala linear):

1

10

100

1000

10000

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para fw3 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

0

0.5

1

1.5

2

2.5

3

3.5

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para fw3 (escala linear):

1e−05

0.0001

0.001

0.01

0.1

1

10

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para fw3 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

Figura 5.8: Seed fw3: gasto com memoria e acessos × numero de regras

pois, nesta base de dados, os enderecos possuem alta variancia em seus tamanhos (Tabela 4.1),aumentando o custo de eliminacao de tuplas.

Os resultados da Figura 5.10, para fw5, foram semelhantes aos resultados de fw1 efw2, o que e natural, ja que as caracterısticas destas bases de dados, encontradas na Tabela 4.1,sao semelhantes.

Page 55: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

54

0 200 400 600 800

1000 1200 1400 1600 1800 2000

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para fw4 (escala linear):

1

10

100

1000

10000

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para fw4 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para fw4 (escala linear):

1e−05

0.0001

0.001

0.01

0.1

1

10

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para fw4 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

Figura 5.9: Seed fw4: gasto com memoria e acessos × numero de regras

0

20

40

60

80

100

120

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para fw5 (escala linear):

1

10

100

1000

10000

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para fw5 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

0

0.5

1

1.5

2

2.5

3

3.5

4

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para fw5 (escala linear):

1e−05

0.0001

0.001

0.01

0.1

1

10

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para fw5 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

Figura 5.10: Seed fw5: gasto com memoria e acessos × numero de regras

Page 56: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

55

5.3 IPC

0

20

40

60

80

100

120

140

160

180

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para ipc1 (escala linear):

1

10

100

1000

10000

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para ipc1 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

0

0.5

1

1.5

2

2.5

3

3.5

4

4.5

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para ipc1 (escala linear):

1e−05

0.0001

0.001

0.01

0.1

1

10

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para ipc1 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

Figura 5.11: Seed ipc1: gasto com memoria e acessos × numero de regras

Nos resultados para os classificadores gerados pela semente ipc1, vistos na Figura 5.11,e possıvel ver que o CTSS e uma ordem de grandeza mais rapido que o TSS. Outro resultado eque os 4 diferentes limites de memoria apresentaram melhora de em torno de 20% em relacaoao limite imediatamente menor.

Os resultados para a semente ipc2, mostrados na Figura 5.12, sao bem diferentes detodos os outros resultados obtidos neste trabalho. O desempenho foi bom para o TSS, queobteve em torno de 100 acessos a memoria. Para o CTSS o desempenho foi melhor ainda,5 acessos a memoria ja na versao de 64MB. Aumentar o limite de memoria alem disso para256MB, 1GB e 4GB permitiu economizar mais um acesso a memoria, mas nada alem disso.No grafico, as 3 versoes mais custosas em termos de memoria tiveram desempenho igual emtodas as quantidades de numero de regras testadas.

Isso possivelmente se deve ao fato de que o ipc2 e o classificador com menos tamanhosSAs e DAs unicos, apenas 5 pares diferentes de tamanho (ver Tabela 4.1). Isso faz com que ogerador de entradas gere poucas diferencas de tamanho, gerando poucas tuplas, dessa forma,tornando o desempenho dos metodos de tupla tao bom.

O baixo numero de tuplas ja no classificador original tambem explica o baixo gastocom memoria: com poucas tuplas, fica difıcil expandir entre qualquer uma delas sem estouraro limite (ja que ha menos chances de haver uma tupla “proxima” de outra). Essa incapacidade

Page 57: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

56

1

1.5

2

2.5

3

3.5

4

4.5

5

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para ipc2 (escala linear):

1

10

100

1000

10000

0 2000 4000 6000 8000 10000

Ace

sso

s à

me

ria

Número de regras

Acessos para ipc2 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

0

0.02

0.04

0.06

0.08

0.1

0.12

0.14

0.16

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para ipc2 (escala linear):

1e−05

0.0001

0.001

0.01

0.1

1

0 2000 4000 6000 8000 10000

Ga

sto

co

m m

em

ória

(G

B)

Número de regras

Memória para ipc2 (escala logarítmica):

Linear

TSS

CTSS 64MB

CTSS 256MB

CTSS 1GB

CTSS 4GB

Figura 5.12: Seed ipc2: gasto com memoria e acessos × numero de regras

de se expandir nos estagios finais, tambem se da pelo fato de que o classificador semente ipc2 eo que possui maior variancia nos comprimentos de seus prefixos de enderecos de rede (Tabela4.1).

Um outro ponto que chama atencao ainda na Figura 5.12 e o grafico para gasto commemoria do CTSS 64MB: ele apresenta uma pequena reducao no gasto com memoria a partir declassificadores com mais de 2000 regras. Proporcionalmente, a reducao e grande, representandomais da metade, porem, em termos absolutos e relativamente pequena: 40MB. Isso pode terocorrido pelo fato de que, a medida que se aumenta o numero de regras tenha-se mais pontospara se expandir.

5.4 Comentarios

De um modo geral, o CTSS, o metodo proposto, obteve um desempenho de 1 a 2ordens de grandeza melhor que o TSS. O gasto com memoria, foi no mınimo, 1 ordem degrandeza maior, podendo chegar a 5 ordens de grandeza quando comparado com a versao de4GB. Os testes mostraram que o metodo conseguiu efetivamente ocupar os limites de memoriaestabelecidos. No caso do metodo de 64MB por exemplo, em quase todas as instancias, o gastocom memoria flutuou um pouco abaixo desse valor.

Para os resultados das listas de controle de acesso, e possıvel dizer que o metodo pro-

Page 58: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

57

posto melhorou em duas ordens de grandeza o metodo TSS. Para memoria, os limites esperadosforam atingidos.

Para os do tipo firewall, o metodo proposto reduziu de uma a duas ordens de grandezao tempo de busca. Neste tipo de classificador, as mudancas entre os varios limites de memoriapara o CTSS foram mais compensadoras. Os limites de memoria esperados foram atingidos.Os resultados foram diferentes dos de listas de controle de acesso primariamente devido a quan-tidade de tuplas neste caso, que e bem menor (ver Tabela 4.1).

Para os do tipo IPC, os resultados dos dois foram bastange divergentes. Com o doIPC1 se assemelhando mais aos resultados do tipo firewall. Para IPC2, os resultados forammuito bons tanto para acesso a memoria como para gasto. Os limites de memoria nao foramatingidos devido a baixa quantidade de tuplas.

Page 59: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

58

6 CONCLUSAO E TRABALHOS FUTUROS

Apos analise da literatura, foi proposto um novo metodo para classificacao, o CTSS,que apresenta-se como alternativa para as solucoes existentes de classificacao, apresentando umbom desempenho.

Uma das caracterısticas de classificadores reais exploradas pelo algoritmo e o fato deexistirem poucas tuplas em relacao a quantidade total de entradas em um classificador. Outroponto explorado pelo algoritmo e o relativo baixo custo de memoria, de forma que o metodoexplorou esse recurso extensamente e de maneira controlada.

Aumentando o gasto com memoria em algumas ordens de grandeza, o metodo CTSS,conseguiu reduzir em uma a duas ordens de grandeza a quantidade de acessos a memorianecessaria para processar um pacote. Os resultados mostraram o desempenho do algoritmocom gastos de memoria configurados de 64MB a 4GB, obtendo uma quantidade de acessosa memoria de 5 a 200 acessos nos mais variados tipos de classificador. Esta baixa quanti-dade de acessos a memoria, que e equivalente a baixa quantidade de hashes necessarios paraa classificacao de um pacote, pode permitir que o algoritmo aproveite paralelizacao em umaimplementacao em hardware.

Um possıvel trabalho futuro seria elaborar uma arquitetura baseada em hardware, sejaFPGA ou ASIC, de modo a permitir paralelismo nas buscas as varias tabelas hash.

Uma outra abordagem poderia ser o teste deste novo metodo em um ambiente real.Isto poderia ser feito adaptando o metodo para o firewall do Kernel do Linux, que normalmentee interfaceado pelo iptables. Com esta implementacao, o desempenho deste metodo poderia sertestado com classificadores reais em redes de pequeno (micro-empresas) a medio porte (grandesempresas e universidades).

Para melhor validar o metodo, este poderia ser comparado com outros metodos declassificacao baseados em Tuplas.

Uma ultima ideia para trabalho futuro seria otimizar o gasto com memoria do metodoproposto, utilizando Filtros de Bloom (BLOOM, 1970), de modo a permitir que mantendoo mesmo gasto com memoria se pudesse armazenar mais dados nas tabelas hashes de tuplapermitindo que mais tuplas fossem eliminadas.

Page 60: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

59

REFERENCIAS

AHMADI, M.; WONG, S. Modified collision packet classification using counting Bloom fil-ter in tuple space. In: ACTA PRESS. Proceedings of the 25th IASTED International Multi-Conference: parallel and distributed computing and networks. [S.l.], 2007. p. 320.

BABOESCU, F.; SINGH, S.; VARGHESE, G. Packet classification for core routers: Is there analternative to CAMs? In: IEEE INFOCOM. [S.l.: s.n.], 2003. v. 1, p. 53–63.

BABOESCU, Florin; VARGHESE, George. Scalable packet classification. IEEE/ACM Tran-sactions on Networking, IEEE, v. 13, n. 1, p. 2–14, 2005.

BAILEY, M.; GOPAL, B.; PAGELS, M. PATHFINDER: A Pattern-Based Packet Classifier. In:Usenix OSDI. [S.l.: s.n.], 1994.

BLOOM, B.H. Space/time trade-offs in hash coding with allowable errors. Communications ofthe ACM, ACM, v. 13, n. 7, p. 426, 1970.

BRAQUEHAIS, Rudy Matela. Avaliacao de Desempenho de Estruturas de Dados para Buscaem Tabela de Encaminhamento. 61 p. Dissertacao (Bacharelado) — Universidade Estadual doCeara, Fortaleza, 2009.

CHANG, F.; LI, K.; FENG, W. Approximate packet classification caching. In: IEEE Infocom.[S.l.: s.n.], 2004.

CHENG, H. et al. Scalable packet classification using interpreting: a cross-platform multi-coresolution. In: ACM. 13th ACM SIGPLAN Symposium on Principles and practice of parallelprogramming. [S.l.], 2008. p. 33–42.

CORMEN, T.H. et al. Introduction To Algorithms. [S.l.]: MIT Press, 2001.

DHARMAPURIKAR, S. et al. Fast packet classification using bloom filters. In: ACM.ACM/IEEE symposium on Architecture for networking and communications systems. [S.l.],2006. p. 70.

FANG, Y. et al. A multidimensional packet classification algorithm based on network pro-cessors. In: WORLD SCIENTIFIC AND ENGINEERING ACADEMY AND SOCIETY(WSEAS). Proceedings of the 12th WSEAS international conference on Automatic control, mo-delling & simulation. [S.l.], 2010. p. 231–234.

FICARA, D. et al. REFINE: The reconfigurable packet filtering on network processor. Inter-national Journal of Communication Systems, John Wiley & Sons, v. 21, n. 11, p. 1121–1136,2008.

GUPTA, P. Algorithms For Routing Lookups And Packet Classification. Tese (Doutorado) —Stanford University, dec 2000.

GUPTA, Pankaj; MCKEOWN, Nick. Packet Classification on Multiple Fields. In: SIGCOMM.[s.n.], 1999. p. 147–160. Disponıvel em: <citeseer.ist.psu.edu/article/gupta99packet.html>.Acesso em: 10 set. 2010.

Page 61: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

60

GUPTA, P.; MCKEOWN, N. Algorithms for packet classification. IEEE Network, 2001. 24 -32 p. Disponıvel em: <citeseer.ist.psu.edu/gupta01algorithms.html>. Acesso em: 10 set. 2010.

ISO, A. IEC 9899: 1999, Programming Languages–C. International Organization for Standar-dization, 1999.

KENNEDY, A. et al. Low power architecture for high speed packet classification. In: ACM. 4thACM/IEEE Symposium on Architectures for Networking and Communications Systems. [S.l.],2008. p. 131–140.

KEYES, R.W. Fundamental limits of silicon technology. Proceedings of the IEEE, IEEE, v. 89,n. 3, p. 227–239, 2002. ISSN 0018-9219.

LAKSHMAN, T. V.; STILIADIS, Dimitrios. High-Speed Policy-Based Packet ForwardingUsing Efficient Multi-Dimensional Range Matching. In: SIGCOMM. [S.l.: s.n.], 1998. p. 203–214.

LIM, H.; KIM, S.Y. Tuple Pruning Using Bloom Filters for Packet Classification. Micro, IEEE,IEEE, v. 30, n. 3, p. 48–59, 2010. ISSN 0272-1732.

LIM, H.; MUN, J.H. High-speed packet classification using binary search on length. In: ACM.Proceedings of the 3rd ACM/IEEE Symposium on Architecture for networking and communica-tions systems. [S.l.], 2007. p. 137–144.

LUNTEREN, J. van; ENGBERSEN, T. Fast and scalable packet classification. IEEE Journalon Selected Areas in Communications, v. 21, n. 4, p. 560–571, 2003.

MEINERS, C.R.; LIU, A.X.; TORNG, E. Algorithmic approaches to redesigning tcam-basedsystems. In: ACM. Proceedings of the 2008 ACM SIGMETRICS international conference onMeasurement and modeling of computer systems. [S.l.], 2008. p. 467–468.

NEWMAN, Harvey; WEINER, Jon. Moving Towards Terabit/sec Scientific Dataset Transfers.2009. Disponıvel em: <http://supercomputing.caltech.edu/BWCPressRelease.pdf>. Acessoem: 10 set. 2010.

NEWMAN, P. et al. IP Switching and Gigabit Routers. IEEE Communications Magazine, jan1997.

PAO, D.; LI, Y.K.; ZHOU, P. Efficient packet classification using TCAMs. Computer Networks,Elsevier, v. 50, n. 18, p. 3523–3535, 2006.

PAO, D.; LIU, C. Parallel tree search: An algorithmic approach for multi-field packet classifi-cation. Computer Communications, Elsevier, v. 30, n. 2, p. 302–314, 2007.

QI, Y. et al. Towards optimized packet classification algorithms for multi-core network proces-sors. In: Proc. of the 2007 International Conference on Parallel Processing (ICPP). [S.l.: s.n.],2007.

QI, Y. et al. Packet Classification Algorithms: From Theory to Practice. In: Proc. of INFOCOM.[S.l.: s.n.], 2009. v. 9.

QIU, L.; VARGHESE, G.; SURI, S. Fast firewall implementations for software and hardware-based routers. In: IEEE ICNP 2001. [S.l.: s.n.], 2001.

Page 62: UNIVERSIDADE ESTADUAL DO CEARA´ RUDY MATELA …

61

RUIZ-SANCHEZ, M.A.; BIERSACK, E.W.; DABBOUS, W. Survey and taxonomy of IP ad-dress lookup algorithms. IEEE Network, v. 15, n. 2, p. 8–23, mar-apr 2001.

SINGH, S. et al. Packet classification using multidimensional cutting. 2003. Disponıvel em:<citeseer.ist.psu.edu/article/singh03packet.html>. Acesso em: 10 set. 2010.

SKIENA, S.S. The Algorithm Design Manual. [S.l.]: Springer-Verlag, 1997.

SPITZNAGEL, E.; TAYLOR, D.; TURNER, J. Packet classification using extended TCAMs.In: IEEE International Conference on Network Protocols (ICNP). [S.l.: s.n.], 2003. p. 120–131.

SRINIVASAN, V.; SURI, S.; VARGHESE, G. Packet classification using tuple space search.In: ACM. Conference on Applications, technologies, architectures, and protocols for computercommunication. [S.l.], 1999. p. 146.

SRINIVASAN, V. et al. Fast Scalable Level Four Switching. In: SIGCOMM. [S.l.: s.n.], 1998.p. 191–202.

TAYLOR, D.E. Survey and taxonomy of packet classification techniques. ACM Computing Sur-veys (CSUR), ACM, v. 37, n. 3, p. 275, 2005.

TAYLOR, DE; TURNER, JS. Classbench: A packet classification benchmark. In: 24th AnnualJoint Conference of the IEEE Computer and Communications Societies. [S.l.: s.n.], 2005. v. 3.

TAYLOR, D.E.; TURNER, J.S. Scalable Packet Classification using Distributed Crossproduc-ting of Field Labels. In: IEEE INFOCOM. [S.l.: s.n.], 2005. v. 1, p. 269.

TAYLOR, D.E.; TURNER, J.S. Classbench: A packet classification benchmark. IEEE/ACMTransactions on Networking (TON), IEEE Press, v. 15, n. 3, p. 511, 2007.

THOMPSON, K.; MILLER, G.J.; WILDER, R. Wide-area Internet traffic patterns and charac-teristics. Network, IEEE, IEEE, v. 11, n. 6, p. 10–23, 2002. ISSN 0890-8044.

VAMANAN, B.; VOSKUILEN, G.; VIJAYKUMAR, TN. EffiCuts: optimizing packet clas-sification for memory and throughput. In: ACM. Proceedings of the ACM SIGCOMM 2010conference on SIGCOMM. [S.l.], 2010. p. 207–218.

VARGHESE, George. Network Algorithmics: An Interdisciplinary Approach to design FastNetworked Devices. [S.l.]: Morgan Kaufmann, 2005.

WANG, P.C. Scalable packet classification with controlled cross-producting. ComputerNetworks, Elsevier, v. 53, n. 6, p. 821–834, 2009.

WARKHEDE, P.; SURI, S.; VARGHESE, G. Fast packet classification for two-dimensionalconflict-free filters. In: IEEE INFOCOM. [S.l.: s.n.], 2001. v. 3, p. 1434–1443.

WOO, T. A modular Approach To Packet Classification: Algorithms and results. In: INFO-COM. [S.l.: s.n.], 2000.

XU, B.; JIANG, D.; LI, J. HSM: A fast packet classification algorithm. IEEE Computer Society,2005. ISSN 1550-445X.