roteamento funcionando

- Como funciona o roteamento?
Os hosts se comunicam enviando pacotes (class Packet), que possuem um
IP de origem e destino na camada da Internet. Para enviar um pacote, um
host precisa enviar o pacote para o enlace (class DuplexLink), que
passará o pacote adiante até a outra ponta. Um roteador fica em loop
lendo e roteando os pacotes que ficam nos buffers de cada porta que
chega do enlace. A tabela de roteamento (atributo routes) define para
qual enlace o roteador deve repassar o pacote. O processo segue adiante
até que: a) ou o pacote é derrubado no caminho por n motivos; b) ou o
pacote é salvo no buffer do Host de destino.

- O que falta fazer?
  > criar as camadas de aplicação (vai dar trabalho)
  > camada de transporte +- implementada, mas não utilizada ainda
  > pensar numa forma de executar o programa do NetSim
  > criar os timers para Router e Hosts (já são threads agora)
  > fazer os sniffers funcionarem (eles estão integrados ao DuplexLink)

Não podemos nos esquecer que quem mexe em Aplicação e Transporte são só
os Hosts (além dos Sniffers, para ler os dados, mas é exceção). Por
isso, a complexidade está nas bordas. A parte mais baixo nível das
conexões parece estar OK.