Compartilhar via


Design do redirecionador de rede

Este artigo descreve o modelo de driver para redirecionadores de rede que foi introduzido no Windows 2000.

Um desafio significativo no projeto de redirecionadores de rede é a tradução relativamente complexa que é realizada de operações iniciadas pelo usuário para operações de rede de baixo nível, tanto no que diz respeito à seleção de operação quanto ao tempo. Lidar com o sistema de E/S do Windows, o gerenciador de cache e o gerenciador de memória é uma tarefa relativamente complexa. Essa afirmação é especialmente verdadeira quando se considera a variedade de modos de buffer que podem ser apropriados para um mecanismo de comunicação remota, como uma rede de computadores, onde a velocidade e a confiabilidade podem variar consideravelmente. A implementação dessas operações de buffer em um redirecionador de rede representa um investimento significativo em função que idealmente seria compartilhada e reutilizada pelos drivers.

Windows 2000 introduziu um modelo de driver para redirecionadores de rede com base em uma abordagem de driver em camadas ou miniport. Esse modelo é conhecido como arquitetura de mini-redirecionador (rdr2). Em vez de ter que reimplementar o código complexo usado para buffer e interação com o Gerenciador de E/S e o Gerenciador de Cache em cada driver, esse grande bloco de código foi retirado e disponibilizado para todos os redirecionadores de rede em potencial. O código de buffer comum compartilhado é chamado de Subsistema de Buffer de Unidade Redirecionada (RDBSS).

Um modelo dessa arquitetura com vários redirecionadores é mostrado abaixo.

Diagrama que ilustra o design do redirecionador de rede a partir do Windows 2000.

Este projeto RDBSS oferece vários dos seguintes benefícios:

  • Ele simplifica o processo de gravação do KMD (driver de modo kernel) para um redirecionador de rede, pois foi fornecida uma grande quantidade de código comum necessário para lidar com o sistema de E/S, o Gerenciador de Cache e o Gerenciador de Memória.

  • Ele disponibiliza para outros drivers redirecionadores de rede uma quantidade considerável de melhorias de desempenho com base em algoritmos de buffer e otimizações de kernel desenvolvidas para redes da Microsoft.

  • Ele simplifica a manutenção, pois apenas uma cópia do código de buffer precisa ser desenvolvida e mantida. No modelo anterior ao Windows 2000, uma cópia era necessária para cada redirecionador.

  • Ele fornece um encapsulamento forte do componente específico do protocolo de rede de um redirecionador de rede, para que os desenvolvedores de driver possam se concentrar nesses aspectos do redirecionador de rede que são exclusivos e específicos para seu aplicativo ou produto.

  • Ele simplifica a depuração de drivers para redirecionadores de rede, fornecendo desacoplamento com base nessa abordagem em camadas.

O modelo RDBSS foi introduzido com o Windows 2000. Esse mesmo modelo também é usado no Windows Server 2003 e no Windows XP.

Design do redirecionador de rede no Windows NT

O esquema original introduzido no Windows NT 3.0 não usava componentes compartilhados e era limitado. Esse modelo é frequentemente chamado de modelo de driver rdr original (rdr era uma abreviação de redirecionador). Para simplificar o processo de escrita de um redirecionador de rede, o sistema operacional não forneceu suporte especial. Cada KMD implementou todas as funções necessárias para um redirecionador de rede. Consequentemente, cada KMD incluiria uma grande quantidade de código para interações com o Gerenciador de E/S, o Gerenciador de Cache e o Gerenciador de Memória. Cada redirecionador de rede (LAN Manager, NetWare e NFS, por exemplo) instalado no Windows teve que implementar todas essas funções por conta própria. Esse modelo de design foi usado para drivers para redirecionadores de rede por meio do Windows NT 4.0. Veja a seguir um diagrama dessa arquitetura, com vários redirecionadores.

Diagrama que ilustra o design do redirecionador de rede no Windows NT.