• Sonuç bulunamadı

sob o sistema operacional DOS. Além das funções de comutação de pacotes, o projeto também propõe-se a coletar informação de estatísticas e implementar a filtragem de pacotes.

Em seu artigo, os autores discursaram sobre as principais questões envolvidas no projeto:

definição de drivers a serem utilizados de forma a executar a interface entre o software e o hardware;

gerenciamento dos buffers de dados, algoritmo de aprendizagem e consulta a base dados;

filtragem de pacotes baseado no conteúdo dos mesmos (firewall) e coleta e análise de estatísticas (monitoração da rede)

Drivers de rede

Originalmente, o DOS não provê suporte à interfaces de rede. Assim, de forma a utilizar a plataforma DOS, o pacote de software ‘packet drivers’ é utilizado [8] [6]. As principais razões para a utilização deste pacote são que ele permite a captura de todo o quadro ethernet mantendo a informação dos cabeçalhos intacta. O acesso a todo o quadro faz com que a tarefa de filtragem de pacotes seja mais fácil e eficiente. Além disso, estes drivers são de domínio público e as informações são disponibilizadas gratuitamente.

Tabela de endereços MAC

Deve-se escolher entre duas formas de acesso à base de dados (tabela de endereços MAC) são elas: indexação ou hashing.Qualquer tipo de indexação é sempre mais lenta pela sua natureza indireta. A função de hash escolhida deve ser eficiente no que se refere ao número de entradas na tabela e também fácil de ser computada, de forma a não degradar demasiadamente o desempenho da bridge.

Três mecanismos de hashing dos endereços foram testados:

1. hashing nos 8 bits menos significativos do endereço ethernet resultando em um total de 256 posições possíveis na tabela de endereços;

2. hashing nos 16 bits menos significativos do endereço ethernet resultando em um total de 65536 (64K) posições possíveis na tabela de endereços;

3. hashing na soma de todos os bytes do endereço ethernet resultando em um total de 1536 posições possíveis na tabela de endereços;

Das opções acima, segundo os autores, as duas últimas tiveram desempenho satisfatório na rede testada, a qual possuía em torno de 150 estações.

O autor afirma que nos para a avaliação de desempenho dos mecanismos de hashing propostos acima em casos práticos, o critério adotado foi o número de pacotes que foram encaminhados de uma porta a outra mas que na verdade não deveriam ser encaminhados. Dado o número de estações presentes na rede de teste e o número de posições da tabela hash em cada situação testada (sempre maior que o número de estações), podemos observar que o não foi implementado nenhum mecanismo de tratamento de colisões nesta esquema de hashing. Assim, quando uma colisão acontece, ou seja, a posição consultada na tabela já esta sendo ocupada por um outro endereço MAC, o pacote que está sendo tratado é enviado à outra porta de qualquer forma. Mais adiante iremos entrar em detalhe nos mecanismos de tabelas hash e o problema do tratamento de colisão nestas estruturas. É importante ressaltar que, dependendo da performance dos processos utilizados no equipamento, é possível que o custo de tratar uma colisão seja tão grande que o envio do pacote às demais portas por inundação ainda seja a melhor opção no caso de colisões. Em switches ethernet, a informação de a qual porta uma determinada estação está conectada não torna inviável a operação do equipamento, porém, o uso de tabelas hash não se resume a esse tipo de aplicação e em outros casos o descarte de uma entrada na tabela pode ser desastroso.

Comutação de pacotes

Como existem somente duas portas na bridge, de forma a facilitar o acesso a base de dados e evitar o compartilhamento da mesma, duas tabelas de endereços foram criadas, uma para cada porta. Desta forma, quando um pacote é recebido em uma determinada porta, apenas a tabela de endereços referente a esta porta necessita ser consultada. Isto facilita a implementação em ambientes multitask ou acionados por interrupção, onde existe o risco de dois processos estarem acessando a mesma base de dados. O mecanismo funciona da seguinte maneira: quando um pacote é recebido, a tabela de endereços da porta em questão é consultada, se o endereço de destino do pacote pertence a esta tabela (indicando que a estação está conectada a esta porta) então o pacote é descartado, caso contrário, o pacote é enviado para a outra porta. Além disso, a cada novo pacote que é recebido, o endereço de origem do mesmo é armazenado na tabela de

A bridge proposta também coloca na tabela de endereços um controle visando o mecanismo de envelhecimento do endereço. Periodicamente a tabela é consultada de forma a excluir os endereços que não tenham atividade por um determinado intervalo de tempo. O tempo de envelhecimento pode ser configurado por software e em geral fica fixado em 10 minutos.

Filtragem de pacotes

A bridge proposta pode filtrar pacotes IP em função do endereço de destino, ou seja, tem a capacidade de analisar até o nível 3 do modelo OSI. A bridge supõe que o formato dos pacotes segue o padrão DIX (Digital, Intel, Xerox) também conhecido como Ethernet II. A forma de entrada dos endereços a serem filtrados não é muito prática e é feita através da leitura de um arquivo armazenado na máquina.

Coletor de estatísticas

A coleta de estatísticas do nível físico é feita diretamente através da leitura dos registros da placa de rede, enquanto que as estatísticas geradas pela filtragem de pacotes é feita pelo próprio software desenvolvido.

Todas as estatísticas são encapsuladas em um pacote UDP e enviadas periodicamente. O endereço IP e a portas de destino dos pacotes de estatísticas são configuráveis sendo que o conteúdo dos pacotes é proprietário. O programa cliente que recebe as estatísticas apenas mostra na tela as mesmas à medida em que es pacotes provenientes da bridge são recebidos.

Benzer Belgeler