Guia Completo de Redes: TCP/IP, Roteamento e Segurança
Classificado em Computação
Escrito em em português com um tamanho de 19,29 KB
Modelo de Referência TCP/IP
- 5 - Camada de Aplicação
- 4 - Camada de Transporte
- 3 - Camada de Rede
- 2 - Camada de Enlace de Dados
- 1 - Camada Física
Camada de Rede - Funções Principais
- Prestar serviços à Camada de Transporte.
- Estabelecer rotas da origem ao destino.
- Selecionar rotas menos congestionadas.
- Compatibilizar problemas de comunicação em rotas que atravessem redes diferentes.
Prestação de Serviços à Camada de Transporte
Devem ser independentes da tecnologia da sub-rede. Para a Camada de Transporte, não interessa o número, tipo e topologia das sub-redes utilizadas. Os endereços da rede devem ser uniformes.
Circuitos Virtuais – Características
- Os roteadores devem lembrar para onde enviar os pacotes de cada circuito virtual aberto que passa por ele.
- Cada roteador deve manter uma tabela para cada CV ativo.
Conteúdo de um Pacote de Bits em Circuitos Virtuais
- Número do CV
- Número de Sequência
- Soma de Verificação
- Sentido da transmissão: ela é full-duplex.
Datagramas – Características
Devem conter o endereço de origem e de destino completos.
Roteamento
Se a sub-rede utiliza datagramas internamente, a cada pacote que chega deve ser decidida qual a rota a seguir. Se a sub-rede utiliza CVs, somente a cada nova conexão a decisão da rota será tomada, independentemente do algoritmo.
Propriedades de um Algoritmo de Roteamento
- Correção: Funcionar sem erros.
- Simplicidade: Fácil entendimento e manutenção.
- Estabilidade: Manter constante sua forma de operação.
- Robustez: Isolar uma rede de grande porte de falhas de hardware e software, do número de hosts, roteadores, de linhas e de mudanças na topologia, não exigindo a reinicialização da rede a cada ocorrência de falha.
- Equidade: Ser imparcial.
- Otimização: Obter a melhor situação possível.
Classes de Algoritmos de Roteamento
- Adaptativos: Baseiam suas decisões de roteamento em medidas, estimativas, tráfego da rede e topologia.
- Não Adaptativos: Baseiam decisões de roteamento no algoritmo, independentemente do tráfego na rede, com base na topologia atual.
Roteamento pelo Caminho Mais Curto
Depende do:
- Menor número de hops.
- Menor distância geográfica.
- Menor tempo para percorrer o caminho.
Roteamento por Inundação (Flooding)
Cada pacote de entrada é enviado para todas as linhas de saída, exceto para aquela em que chegou.
Roteamento por Estado de Enlace
Cada roteador da sub-rede deve descobrir seus vizinhos e aprender seus endereços de rede. Medir o retardo, ou o custo, até cada um de seus vizinhos.
Roteamento Hierárquico
À medida que as redes aumentam de tamanho, as tabelas de roteamento dos roteadores crescem proporcionalmente. O roteamento hierárquico resolve esta situação.
Roteamento por Difusão (Broadcasting)
Em algumas aplicações, os hosts precisam enviar mensagens a muitos outros hosts. Por exemplo, para um relatório sobre o tempo, para a atualização do mercado de ações ou para programas de rádio é preciso enviar as informações por difusão a todas as máquinas que queiram recebê-las.
Roteamento para Hosts Móveis
Trouxeram um problema para as redes: antes de rotear para um host é preciso localizá-lo.
Firewall
É o único caminho de entrada e de saída da rede para as redes externas.
Roteadores
Verificam se os pacotes obedecem a critérios pré-estabelecidos. Por exemplo:
- Porta 23 para operações via Telnet.
- Porta 78 para acesso à rede X.
- Não aceitar tráfego UDP.
Gateway
Atua na Camada de Aplicação. Exemplo:
- Correio eletrônico.
- Pacotes incompletos.
Controle de Congestionamento
Visa garantir que a sub-rede seja capaz de transportar o tráfego demandado. Na situação de congestionamento, os roteadores não conseguem dar vazão aos pacotes recebidos e perdem parte deles. No limite, nenhum pacote é entregue.
Causas Possíveis de Congestionamento
- Roteadores lentos ou sobrecarregados.
- A vazão das linhas de entrada é maior que a das linhas de saída, etc.
Soluções em Loops Abertos
Uma vez que o sistema esteja em operação, não são feitas correções nos processos ativos.
Ferramentas Utilizadas em Loops Abertos
- Decidir quando aceitar mais tráfego.
- Decidir quando e quais pacotes serão descartados.
- Programar decisões nos pontos da rede.
As ações são efetivadas sem levar em conta o estado atual da rede.
Soluções em Loops Fechados
- Monitorar o sistema para detectar quando e onde ocorreu congestionamento.
- Enviar essas informações para lugares onde alguma providência possa ser tomada.
- Ajustar a operação do sistema para corrigir o problema.
Prevenção de Congestionamento em Loops Fechados
Caso esta conexão estivesse programada para passar por um dos roteadores congestionados, pode-se redesenhar a sub-rede para evitar esta situação.
O Protocolo IP
Consiste de duas partes: o cabeçalho contém as informações de controle do IP, e o campo de texto contém um segmento do arquivo transmitido.
Cabeçalho IP
- IHL: Tamanho do cabeçalho, em quantidade de palavras de 32 bits.
- Tipo de Serviço: O host informa à sub-rede os padrões de confiabilidade e velocidade desejados.
- DF (Don’t Fragment): Não fragmente o datagrama, pois a máquina de destino não poderá recompô-lo.
- MF (More Fragments): Todos os fragmentos de um datagrama possuem este flag, exceto o último.
- FO (Fragment Offset): Número do fragmento de um determinado datagrama.
- Protocolo: Informa à Camada de Rede o processo de Transporte que deverá ser aplicado ao datagrama: TCP ou UDP.
Opções do Cabeçalho IP
- Nível de segurança do datagrama.
- Sequência de endereços IP entre a origem e o destino.
- Lista mínima de roteadores pelos quais o pacote deve percorrer.
- Os roteadores ao longo do trajeto devem anexar seu endereço IP ao campo “Opções” para análise do administrador da rede.
- Timestamp – Os roteadores ao longo do trajeto devem anexar a data e a hora na qual o pacote transitou por eles.
O Protocolo IPv6
Objetivos:
- Aceitar bilhões de hosts, mesmo com alocação de espaço de endereços ineficiente.
- Reduzir o tamanho das tabelas de roteamento.
- Simplificar o protocolo, de modo a permitir que os roteadores processem os pacotes com mais rapidez.
- Oferecer mais segurança do que o IPv4.
Principais Objetivos do IPv6
- Dar mais importância ao tipo de serviço, particularmente no caso de dados em tempo real.
- Permitir multidifusão.
- Permitir que um host mude de lugar sem precisar mudar o endereço.
- Permitir que o protocolo evolua no futuro.
- Permitir a coexistência entre protocolos novos e antigos durante anos.
Campos do Cabeçalho IPv6
- Versão: Especifica o número da versão do protocolo. Para o IPv6, ela é 0110. Este é o único campo que tem o mesmo significado e posição no cabeçalho tanto para o IPv4 quanto para o IPv6.
- Prioridade: Especifica a prioridade do pacote de dados.
- Rótulo de Controle: Designa pacotes que precisam de tratamento especial. Um de seus usos é para prover qualidade de serviço: largura de banda necessária, tempos de retardo máximos, etc.
- Comprimento dos Dados do Usuário: Especifica o comprimento dos dados do usuário que seguem o cabeçalho.
- Próximo Cabeçalho: Especifica o tipo de cabeçalho que segue o cabeçalho do IPv6. Outros cabeçalhos podem ser inseridos entre os cabeçalhos IPv6 e o TCP (ou UDP): cabeçalho para autenticação, para criptografia, etc.
- Limite de Hops: Especifica o número máximo de vezes que o pacote de dados pode passar de um roteador para outro sem atingir seu destino.
A Camada de Transporte
Sua função é promover uma transferência de dados confiável e econômica entre a máquina de origem e a máquina de destino, independentemente das redes físicas em uso no momento.
Funções Principais da Camada de Transporte
- Oferecer serviços à Camada de Aplicação.
- Oferecer qualidade de serviços.
1. Serviços de Transporte
A Camada de Rede faz parte da sub-rede de comunicações e pode ser executada pela empresa concessionária. Se a concessionária não oferecer um serviço confiável, os dados recebidos devem ser tratados na Camada de Transporte. A Camada de Transporte isola as camadas superiores dos defeitos na sub-rede.
2. Qualidade de Serviço
A função aqui é verificar se os parâmetros do serviço estão dentro dos limites pré-estabelecidos, efetivando ou não a comunicação.
Soquetes de Berkeley
Conjunto de primitivas de Transporte usadas no UNIX para o TCP, utilizadas para a Internet.
Primitivas de Soquete
SOCKET
Criar um novo ponto final de comunicação e aloca espaço de tabela para ele na entidade de transporte.BIND
Anexar um endereço local a um soquete.LISTEN
Anunciar a disposição para aceitar conexões; mostra o tamanho da fila.ACCEPT
Bloquear o responsável pela chamada até uma tentativa de conexão ser recebida.CONNECT
Tentar estabelecer uma conexão ativamente.SEND
Enviar alguns dados através da conexão.RECEIVE
Receber alguns dados da conexão.CLOSE
Encerrar a conexão.Protocolos de Comunicação
Existem diferentes abordagens para a comunicação entre roteadores:
- Comunicação Simples (Datagramas): O roteador não precisa especificar com qual outro roteador deseja se comunicar, pois cada linha de saída já especifica um determinado roteador. O estabelecimento de uma conexão com a outra ponta do meio de comunicação é simples. Não há capacidade para armazenamento de dados.
- Comunicação Complexa (Circuitos Virtuais): É necessário especificar o endereço do roteador de destino. O estabelecimento de uma conexão não é simples. Há capacidade para armazenamento de dados.
Gerenciamento de Conexões
Podem surgir problemas quando a rede perde, armazena e duplica pacotes. O tempo de vida de um pacote na sub-rede pode ser restringido através de uma das seguintes técnicas:
- Restringindo-se o projeto da sub-rede, evitando que um pacote entre em loop, associado a algum método para limitar o retardo devido a congestionamentos.
- Adotando um contador de hops em cada pacote: Incrementar o contador de hops cada vez que o pacote passar por um roteador intermediário da rede. A Camada de Enlace de Dados descarta qualquer pacote com o contador superior a um certo valor pré-determinado.
- Adotando um timestamp em cada pacote: Isto exige que os relógios dos roteadores estejam sincronizados. Todos os pacotes gerados anteriormente a um determinado horário são descartados pelos roteadores.
Gerenciamento de Desconexões
Uma desconexão pode ocorrer causada por mais de um motivo:
- Um usuário solicita a desconexão e o outro a aceita.
- Os dois usuários solicitam a desconexão simultaneamente.
- A Camada de Transporte desiste de manter a conexão e a desfaz.
- Quando um usuário solicita uma desconexão e, antes de receber a indicação de que ela foi aceita, a Camada de Transporte a desfaz.
Todas as formas de desconexão mencionadas estão sujeitas a perda de dados, e o protocolo de encerramento de conexões deve tratar isto.
Encerramento Assimétrico
Representa o funcionamento do sistema telefônico, ou seja, quando um dos interlocutores desliga, a conexão é interrompida. O encerramento assimétrico é abrupto e pode resultar na perda de dados.
Encerramento Simétrico
Neste caso, a conexão é tratada como duas conexões unidirecionais isoladas, e exige que cada uma seja encerrada separadamente. Caso isso ocorra, um host pode continuar a receber dados mesmo depois de ter solicitado uma desconexão. Este tipo de encerramento é indicado quando cada processo tem uma quantidade fixa de dados a enviar e sabe, com clareza, quando terminou de enviá-los.
O Cabeçalho de Segmento do TCP
URG (Urgent Pointer) = 1
É utilizado para indicar um deslocamento de bytes a partir do número de sequência atual em que os dados urgentes devem ser encontrados.ACK (Acknowledgement) = 0
Indica que o segmento não contém uma confirmação.PSH (Push) = 1
O receptor é solicitado a entregar os dados à aplicação mediante sua chegada, em vez de armazená-los até que um buffer completo tenha sido recebido.RST (Restart) = 1
Indica a necessidade de reinicializar uma conexão que tenha ficado confusa devido a uma falha no host ou por qualquer outra razão. Este campo também é utilizado para rejeitar um segmento inválido ou para recusar uma tentativa de conexão. Em geral, se este bit estiver ativado, indica que há algum problema na conexão.SYN (Synchronism) = 1
É utilizado para estabelecer conexões. A solicitação de conexão tem SYN = 1 e ACK = 0 para indicar que o campo de confirmação de piggyback não está sendo utilizado. A resposta contém uma confirmação e, portanto, tem SYN = 1 e ACK = 1.FIN (Final) = 1
Indica o encerramento de uma conexão.Tamanho da Janela
Indica quantos bytes podem ser enviados a partir do byte confirmado. Um campo zerado é válido e informa que todos os bytes até o próximo byte aguardado foram recebidos, mas que o receptor precisa de um “descanso” no momento. A permissão para retomar a transmissão dos dados pode ser enviada mais tarde com o mesmo próximo byte aguardado e com o campo Tamanho da Janela diferente de zero.
Ponteiro Urgente
Indica o deslocamento de bytes em que os dados urgentes devem ser encontrados.
Campo Opcional
Uma forma de oferecer recursos extras, ou seja, recursos que não foram previstos pelo cabeçalho comum.
A Camada de Aplicação
Ela necessita de protocolos de suporte para permitir que as aplicações funcionem.
DNS – Domain Name System
É o protocolo que cuida da nomenclatura na Internet. É uma técnica de atribuição de nomes hierárquicos baseada em domínios. Ela é principalmente utilizada para mapear nomes de hosts e destinos de mensagens de correio eletrônico em endereços IP. Um domínio de 1º nível cobre muitos hosts.
Níveis de Domínio
1º Nível
- Genéricos: COM, EDU, GOV, ORG, etc.
- De países: uma sigla para cada país, de acordo com a norma ISO 3166.
2º Nível
- Subdomínios: nome da empresa, escola, departamento da empresa, etc.
Problemas de Segurança
Sigilo
Manter as informações longe de usuários não autorizados.Autenticação
Determinar com quem se está “falando” antes de revelar informações sigilosas ou efetuar uma transação comercial.Não Repudiação
Diz respeito às assinaturas digitais.Controle de Integridade
Certificar-se de que uma mensagem recebida é legítima, e não algo modificado ou inventado.Criptografia
É o algoritmo através do qual o transmissor torna os dados ininteligíveis para qualquer host da rede, exceto o receptor de destino.
Cifras
Uma cifra é uma transformação de caractere por caractere, ou de bit por bit, sem levar em conta a estrutura linguística da mensagem.
Códigos
Um código substitui uma palavra por outra palavra ou símbolo. Esta forma de criptografia não é mais utilizada atualmente.
Cifras de Substituição
Cada letra, ou grupo, é substituído por outra letra, ou grupo de letras, de modo a criar um disfarce.
Cifras de Transposição
Preservam a ordem dos símbolos no texto simples, mas disfarçam esses símbolos. As cifras de transposição reordenam as letras, mas não as disfarçam. Uma forma muito comum de transposição é a transposição de colunas.
Autenticação (Processo)
- O cliente envia sua identificação criptografada.
- O banco gera um número aleatório de acordo com a chave compartilhada.
- O cliente decodifica o número através da chave compartilhada e devolve-o ao banco criptografado. Para o banco, está OK, ele já autenticou o cliente, mas o cliente ainda não autenticou o banco.
- O cliente gera um número aleatório, de acordo com a chave compartilhada.
- O banco decodifica e devolve-o ao cliente criptografado.
- Iniciam-se as operações.
SNMP - Simple Network Management Protocol
É uma forma sistemática de monitorar e gerenciar uma rede de computadores. O modelo SNMP é composto de 4 elementos:
- Nós gerenciados
- Estações de gerenciamento
- Informações de gerenciamento
- Um protocolo de gerenciamento
Nós Gerenciados
Podem ser hosts, roteadores, impressoras, gateways ou qualquer outro dispositivo capaz de informar seu estado. O nó deve ser capaz de executar um processo de gerenciamento denominado “agente SNMP”. O agente SNMP mantém um banco de dados local com variáveis de estados e de histórico que afetam a operação do nó.
Estações de Gerenciamento
São computadores que executam processos que se comunicam com os agentes da rede, emitindo comandos e recebendo respostas. São as estações que gerenciam a operação da rede.
Informações de Gerenciamento
Como os equipamentos componentes de uma rede podem ser muito diversificados (marcas e modelos), a natureza das informações mantidas por todos eles deve ser rigidamente especificada:
- Quais as informações a serem mantidas.
- Qual seu formato.
- Qual deve ser o seu intervalo de tempo de atualização.
- Etc.
Protocolo de Gerenciamento
São variáveis que descrevem o estado de um dispositivo. São chamados de “objetos”, porém contêm apenas estados e não métodos. O conjunto de todos os objetos existentes em uma rede forma uma estrutura de dados chamada MIB (Management Information Base).