Dispositivo para codificação de pacotes
Implementar um dispositivo que faça a baixo-nível a codificação de um
pacote de forma a que o pacote atinja a rede criptado.
- Implemente um gestor de dispositivo local que recebe pacotes,
envia-os codificados e depois os descodifica. Use um algoritmo de
encriptação que não altere o tamanho dos pacotes.
- Altere o seu gestor de dispositivos para interagir com um
dispositivo real. O gestor deverá apenas implementa as funções
básicas e depois usar a interface do dispositivo físico para que ele
faça o trabalho.
- Discuta e se possível implemente um algoritmo de codificação
mais poderoso que altere o número de caracteres a transmitir. Neste
caso, seria melhor implementar o algoritmo noutro nível da pilha de
rede?
- O seu dispositivo de rede deverá ser um módulo. Não se esqueça
que qualquer pacote IP que envie para a rede deverá ser um pacote IP
válido.
O trabalho deverá incluir um relatório com a descrição completa do
trabalho e análise de resultados. A descrição do trabalho deverá
explicar os principais algoritmos usados, e como validou o seu módulo.
Explique cuidadosamente as suas decisões no relatório.
O formato preferido para o relatório é HTML.
Pode escolher outros kernels, tais como o do FreeBSD.
Os seguintes livros são as principais referências para o kernel de
Linux:
- "LINUX Device Drivers", de Rubini. O capítulo 14 explica como
implementar um módulo simples de rede. Uma explicação das diferenças
entre o kernel 2.0 e 2.2 é fornecida por Alan
Cox.
- "The Linux Kernel Book", de Card, Dumas, e Mével.
O site KernelNotes também inclui
bastante informação interessante, incluindo arquivos das listas do
kernel. Uma descrição do kernel encontra-se no Linux Kernel
Module Programming Guide de
Ori Pommerantz. Richard Gooch também tem
informação
interessante sobre o kernel de Linux.
vitor@cos.ufrj.br