Protocolo ponto a ponto Introdução • Um dos protocolos mais difundidos para acesso ponto a ponto é o Protocolo Ponto a Ponto (PPP). – RFC 1661, RFC 1662. • Milhares de usuários conectam-se aos provedores Internet usando o PPP. • A maioria possui um modem DSL ou um modem a cabo conectando-se via linha telefônica ou conexão de TV a cabo (link físico). • O controle e o gerenciamento da transferência é feito mediante a utilização de um protocolo ponto a ponto. • O PPP é uma melhoria de um protocolo mais antigo e mais simples, chamado SLIP. Enlace ponto a ponto • Tipos de enlace: – Enlaces broadcast. – Enlaces ponto a ponto. • Conecta diretamente dois hospedeiros. • Enlaces ponto a ponto: – – – – Acesso discado. DSL. Cable modem. Conexão X25. Exigências originais da IETF • • • • • • Enquadramento do pacote. Transparência. Múltiplos protocolos de camada de rede. Múltiplos tipos de enlaces. Detecção de erros. Vida da conexão. O que o PPP não precisa implementar • • • • Correção de erros. Controle de fluxo. Sequenciamento. Enlaces multiponto. Definição dos serviços • O formato do pacote. • Como os dispositivos podem negociar o estabelecimento e a troca de dados no enlace. • Como os dados da Camada de Rede são encapsulados em pacotes na Camada de Enlace. • De que forma dois dispositivos podem autenticar-se mutuamente. Formato do pacote Flag Endereço controle protocolo Dados FCS • Flag. – Identificam as fronteiras do pacote PPP. • Endereço. – Broadcast HDLC (11111111). • Controle. Flag Formato do pacote (2) • Protocolo. – Define o que está sendo transportado no campo de dados: Os dados em si ou outro tipo de informação. – Os códigos começados com zero representam o IPv4, IPv6, IPX e AppleTalk. – Os códigos começados por um representam os protocolos de configuração do PPP como, por exemplo, o LCP e o NCP. • Dados. – Carregam os dados. • FCS. – Um CRC de 2 ou 4 bytes. Transição de Estados Desliga a conexão Link inativo Detecta portadora Falha Desconexão Estabelecimento Sucesso Falha Autenticação Fim Encapsulamento / transmissão Sucesso Estado Estabelecimento • Neste estado ocorre a negociação entre as duas partes das opções de conexão. • Se a negociação for bem sucedida, o sistema passa ao estado de autenticação ou segue diretamente ao estado Encapsulamento/Transmissão. Estado Autenticação • É opcional. As extremidades podem decidir, durante o estado de estabelecimento, em não solicitar nenhuma autenticação. Estado Networking • Encapsulamento/Transmissão. • Quando a conexão chega nesse estado, os pacotes de dados e informação de controle dos usuários são encapsulados e transmitidos. Estado Desconexão • Vários pacotes são trocados entre os lados da conexão, encerrando a conexão, seguindo do desligamento do enlace. Byte Stuffing • O PPP usa um padrão de bits para indicar o começo e o fim do frame. • O que acontece se a mesma sequência de bits aparecer no meio do frame? • Solução: Byte stuffing. – Controle de escape (01111101). – Um par de bytes de controle de escape significa que o byte de controle de escape também apareceu nos bytes originais. Pilha de protocolos • Embora o PPP seja um protocolo da Camada de Enlace, ele é composto de uma pilha de outros protocolos para: – Estabelecer o link, – Autenticar as duas partes, – Encapsular os dados da Camada de Rede. • A qualquer momento um pacote PPP pode estar transportando dados relativos a um desses protocolos em seu campo de dados. Link Control Protocol (LCP) • Responsável pelo estabelecimento, manutenção, configuração e terminação dos links. • Provê também mecanismos de negociação sobre a natureza do enlace antes do link ser estabelecido. NOTA: Quando o PPP estiver encapsulando um pacote LCP, significa que ele está no estado estabelecimento ou no estado desconexão. Campos do LCP • Código. – O tipo de pacote LCP. • ID. – Valor usado como resposta a uma solicitação. • Tamanho. – Comprimento total do LCP. • Informação. – Informação extra necessária a alguns pacotes LCP. Códigos LCP • • • • • • Configure-request. Configure-ack. Configure-nak. Terminate-request. Protocol-reject. Echo-request. Protocolos de autenticação • Validação da identidade do usuário. • O PPP disponibiliza dois protocolos de autenticação: – Password Authentication Protocol (PAP). – Challenge Handshake Authentication Protocol (CHAP). PAP • Procedimento simples envolvendo apenas dois processos: – Usuário que deseja acessar um sistema envia um tipo de identificador. Por exemplo, login e senha. – O sistema verifica a validade da informação, aceitando ou rejeitando a conexão. • Três pacotes diferentes podem ser utilizados: – Request, ack e nak. CHAP • Protocolo de autenticação que usa algoritmo em três vias. • Nesse método a senha é mantida em segredo e não é enviada através da linha. – Sistema envia ao usuário um pacote de requisição, contendo o valor da requisição. – O usuário aplica uma função entre a requisição e a própria senha e envia a resposta ao sistema. – O sistema faz a mesma operação verificando se o resultado coincide com o da resposta recebida. Network Control Protocol (NCP) • Após a conexão avançar para o estado transmissão, o PPP chama o NCP que irá encapsular os dados dos protocolos da camada de rede no frame PPP. • O NCP é um conjunto de protocolos que permitem o encapsulamento dos dados dos protocolos da Camada de Rede no pacote PPP. – O PPP pode encapsular diferentes tipos de pacotes de camadas superiores. Internetwork Protocol Control Protocol (IPCP) • O PPP requer dois protocolos de negociação para acessar não apenas a Camada de Enlace, mas também a Camada de Rede. • O conjunto de pacotes que estabelece e finaliza a conexão de pacotes IP no nível de rede é denominada Internetwork Protocol Control Protocol (IPCP). Opções • Existem muitas opções negociáveis entre duas estações. • As opções são inseridas no campo de informação dos pacotes de configuração. • Vejamos, no próximo slide, algumas das opções mais comuns. Opções típicas • Tamanho máximo do pacote (default 1500). • Protocolo de autenticação (default Nenhum). • Compressão do campo de dados (default Desabilitada). • Compressão dos campos de endereço e controle (default Desabilitada)