Professional Documents
Culture Documents
Teresina – PI
2006
BIBLIOTECA WINPCAP
1. SUMÁRIO
Resumo 2
Palavras-Chave 2
1. Sumário 2
2. Lista de Ilustrações 2
3. Lista de Siglas 3
4. Corpo 3
4.1. Arquitetura 4
4.2. Funcionalidades 4
4.2.1. Captura 4
4.2.2. Monitoração 4
4.2.3. Despejo em Disco 4
4.2.4. Injeção de Pacotes 5
4.2.5. Exemplos de Aplicações 5
5. Referências Bibliográficas 5
2. LISTA DE ILUSTRAÇÕES
1
Estudante de Bacharelado em Ciências da Computação – UFPI, E-mail: masterasr@yahoo.com.br
2
Figura 2: Driver NPF
3. LISTA DE SIGLAS
4. CORPO
WinPcap consiste de um driver, que estende o sistema operacional para prover acesso à
rede em baixo nível, e uma biblioteca que pode facilmente ser usada para ter acesso às camadas
mais baixas da rede.
3
4.1- Arquitetura
WinPcap inclui filtro em nível de kernel, uma biblioteca de baixo nível (packet.dll), e uma
biblioteca de alto nível e independente de sistema (wpcap.dll). A figura 1 mostra os principais
componentes da WinPcap.
Primeiro o NPF provê acesso aos pacotes em modo raw, sendo que está integrado ao
sistema operacional. Depois temos as bibliotecas packet.dll e wpcap.dll que provê uma interface
para aplicações em nível de usuário.
4.2- Funcionalidades
O NPF permite realizar diferentes operações: captura, monitoração, despejo em disco e
injeção de pacotes.
4.2.1- Captura
A mais importante função é a captura de pacotes, durante captura, o driver suga os pacotes
usando a interface de redes os entrega intactos para a aplicação em nível de usuário.
O filtro de pacotes decide se um pacote recebido deve ser aceito e copiado para a
aplicação. O filtro de pacotes é uma função que retorna um booleano, se o valor da função for true,
o driver copia o pacote para a aplicação, se for false o rejeita.
Um buffer armazena os pacotes e evita perdas, sendo armazenado com um cabeçalho que
mantém informações de chegada e tamanho do pacote. Um grupo de pacotes também pode ser
copiado com uma simples operação, evitando leituras desnecessárias.
4.2.2- Monitoração
WinPcap oferece um modulo de monitoração programável em nível de kernel, capaz de
calcular estatísticas simples no trafico de rede. A idéia atrás deste modulo é mostrada na figura 2. As
estatísticas podem ser obtidas sem a necessidade de copia de pacotes para a aplicação, que recebe e
mostra os resultados obtidos da engine de monitoramento, evitando sobrecarga na captura de
pacotes e desperdício de tempo de CPU e memória.
A engine de monitoramento é feita de um classificador seguido de um contador. Os
pacotes são classificados pelo filtro e então vão para o contador que mantém algumas variáveis
como o numero de pacotes e a quantidade de bytes aceitos pelo filtro, algumas dessas variáveis são
repassadas para a aplicação em nível de usuário em intervalos regulares cujo período é configurado
pelo usuário. Não se faz uso de nenhum buffer nem em nível de usuário nem em nível de kernel.
4
4.2.4- Injeção de Pacotes
O NPF permite a inserção de pacotes raw na rede. Para enviar dados a aplicação usa uma
chamada ao sistema (WriteFile()) no driver NPF. Os dados são enviados na rede como estão, sem
encapsulamento em nenhum protocolo, neste caso a aplicação deve construir os vários cabeçalhos
de cada pacote.
Em situações normais a taxa de envio de pacotes na rede não é muito alta devido a
necessidade de chamadas de sistema para cada pacote, por esta razão a possibilidade de enviar um
simples pacote mais que uma vez com uma simples chamada de sistema foi adicionada. Esta
funcionalidade pode ser usada para gerar um grande trafico para efeitos de teste de rede.
- assniffer
Assniffer pode monitorar uma rede e para cada transferência http que ele perceber, salva
uma copia dos dados transferidos.
- HiDownload
HiDownload é um gerenciador de downloads multi-thread que permite baixar arquivos
individuais , ou lista de arquivos, via web e FTP.
- Libnet
Libnet é uma API de alto nível que permite aplicações gerar e inserir pacotes de rede.
Provê uma interface simplificada e portável para formatos de pacotes rede de baixo nível, manuseio
e inserção.
5. REFERÊNCIAS BIBLIOGRÁFICAS