Processador de rede - Network processor
Um processador de rede é um circuito integrado que possui um conjunto de recursos voltado especificamente para o domínio de aplicativo de rede .
Os processadores de rede são tipicamente dispositivos programáveis por software e teriam características genéricas semelhantes às unidades de processamento central de propósito geral que são comumente usadas em muitos tipos diferentes de equipamentos e produtos.
História do desenvolvimento
Nas redes de telecomunicações modernas , as informações (voz, vídeo, dados) são transferidas como dados de pacote (denominado comutação de pacote ), o que está em contraste com as redes de telecomunicações mais antigas que transportavam informações como sinais analógicos , como na rede telefônica pública comutada (PSTN) ou analógica Redes de TV / rádio . O processamento desses pacotes resultou na criação de circuitos integrados (IC) que são otimizados para lidar com essa forma de pacote de dados. Os processadores de rede têm recursos ou arquiteturas específicas que são fornecidas para aprimorar e otimizar o processamento de pacotes nessas redes.
Os processadores de rede evoluíram para CIs com funções específicas. Esta evolução resultou em CIs mais complexos e mais flexíveis sendo criados. Os circuitos mais novos são programáveis e, portanto, permitem que um único projeto de hardware IC realize várias funções diferentes, onde o software apropriado é instalado.
Os processadores de rede são usados na fabricação de muitos tipos diferentes de equipamentos de rede , como:
- Roteadores , roteadores de software e switches ( processadores entre redes )
- Firewalls
- Controladores de borda de sessão
- Dispositivos de detecção de intrusão
- Dispositivos de prevenção de intrusão
- Sistemas de monitoramento de rede
- Segurança de rede ( criptoprocessadores seguros )
Funções genéricas
Na função genérica de processador de pacote, uma série de recursos ou funções otimizadas estão normalmente presentes em um processador de rede, que incluem:
- Correspondência de padrões - a capacidade de encontrar padrões específicos de bits ou bytes dentro de pacotes em um fluxo de pacotes.
- Pesquisa de chave - a capacidade de realizar rapidamente uma pesquisa de banco de dados usando uma chave (normalmente um endereço em um pacote) para encontrar um resultado, normalmente informações de roteamento .
- Computação
- Manipulação de campo de bits de dados - a capacidade de alterar certos campos de dados contidos no pacote conforme ele está sendo processado.
- Gerenciamento de filas - conforme os pacotes são recebidos, processados e programados para envio em diante, eles são armazenados em filas.
- Processamento de controle - as micro operações de processamento de um pacote são controladas em um nível macro que envolve a comunicação e a orquestração com outros nós em um sistema.
- Alocação e recirculação rápidas de buffers de pacotes.
Paradigmas arquitetônicos
Para lidar com altas taxas de dados, vários paradigmas arquitetônicos são comumente usados:
- Pipeline de processadores - cada estágio do pipeline consiste em um processador realizando uma das funções listadas acima.
- Processamento paralelo com vários processadores, geralmente incluindo multithreading .
- Motores microcodificados especializados para realizar as tarefas com mais eficiência.
- Com o advento de arquiteturas multicore , os processadores de rede podem ser usados para processamento de camada superior ( L4-L7 ).
Além disso, o gerenciamento de tráfego, que é um elemento crítico no processamento de rede L2 - L3 e costumava ser executado por uma variedade de coprocessadores, tornou-se parte integrante da arquitetura do processador de rede e uma parte substancial de sua área de silício (" imobiliário ") é dedicado ao gestor de tráfego integrado. Os processadores de rede modernos também são equipados com redes de interconexão on-chip de alto rendimento e baixa latência otimizadas para a troca de pequenas mensagens entre núcleos (poucas palavras de dados). Essas redes podem ser usadas como um recurso alternativo para a comunicação eficiente entre os núcleos, além do uso padrão de memória compartilhada.
Formulários
Usando a função genérica do processador de rede, um programa de software implementa um aplicativo que o processador de rede executa, resultando no equipamento físico executando uma tarefa ou fornecendo um serviço. Alguns dos tipos de aplicativos normalmente implementados como software em execução em processadores de rede são:
- Discriminação e encaminhamento de pacotes ou quadros , ou seja, a operação básica de um roteador ou switch .
- Aplicação de qualidade de serviço (QoS) - identificando diferentes tipos ou classes de pacotes e fornecendo tratamento preferencial para alguns tipos ou classes de pacotes em detrimento de outros tipos ou classes de pacotes.
- Funções de controle de acesso - determinando se um pacote ou fluxo de pacotes específico deve ter permissão para atravessar o equipamento de rede.
- Criptografia de fluxos de dados - mecanismos de criptografia baseados em hardware integrados permitem que fluxos de dados individuais sejam criptografados pelo processador.
- Processamento de descarregamento de TCP
Veja também
- Processador de conteúdo
- Processador multi-core
- Processador baseado em conhecimento
- Rede ativa
- Engenharia Informática
- Internet
- Lista de empresas de processamento de rede extintas
- Fórum de processamento de rede
- Teoria de filas
- Rede em um chip