Baixe o app para aproveitar ainda mais
Prévia do material em texto
52 Unidade II Unidade II 3 PADRÕES E PROTOCOLOS DE REDE 3.1 Padrões internacionais 3.1.1 Organizações padronizadoras Os padrões podem ser classificados em padrões de facto e padrões de jure. Os padrões de facto são aqueles que não foram reconhecidos por uma organização ou comitê ao serem lançados por uma pessoa ou comunidade. Os padrões de jure são protocolos reconhecidos legalmente ou por organizações. Um produto sem padronização recebe o nome de de facto e, ao ser padronizado por uma organização, altera seu status para de jure. Os padrões de jure têm as suas especificações submetidas a um corpo avaliador no formato RFC (Request for Change) até sua versão final aprovada. Os principais órgãos padronizadores são: • Ieee (Institute of Electrical and Electronics Engineers). • Ansi (American National Standards Institute). • ISO (International Organization for Standardization). • ITU (International Telecommunication Union). • IEC (International Electrotechnical Commission). • EIA (Electronic Industries Alliance). O Ieee é a maior organização do mundo, sem fins lucrativos, constituída por engenheiros elétricos e eletrônicos, que promove a criação, desenvolvimento, integração, compartilhamento e conhecimento aplicado à ciência e às tecnologias da eletricidade e da informação. Para cada padrão Ieee, existe um grupo de trabalho que desenvolve e aprimora os padrões e inovações. Outra organização é a Ansi, criada em 1918. É um órgão de padronização americano, sem fins lucrativos, com mil membros associados, entre empresas, organizações, agências do governo e instituições internacionais. Atua na especificação de padrões eletrônicos em parceria com a IEC e representa os Estados Unidos da América na ISO. A padronização da rede FDDI feita pela Ansi pode ser considerada uma das maiores contribuições para a indústria de redes. 53 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO A ISO é uma das principais organizações internacionais de padronização, atuando em diversas áreas de desenvolvimento tecnológico. É constituída por entidades de diferentes países. Na área de Comunicação e Redes de Computadores, sua maior contribuição foi a padronização do modelo de referência OSI no ano de 1984. 3.2 Modelo OSI O modelo de referência para interconexão de sistemas abertos (modelo OSI) ajudou a mudar a cara da computação de rede. Antes do modelo OSI, a maioria das redes comerciais usadas pelas empresas era construída usando tecnologias não padronizadas desenvolvidas por fornecedores individuais. Durante o fim da década de 1970, a ISO criou a Subcomissão de Interconexão de Sistemas Abertos para desenvolver um conjunto de normas para comunicações entre computadores, e essa subcomissão concluiu o modelo OSI de sete camadas em 1984. O uso de uma norma em camadas torna mais fácil o desenvolvimento de software e hardware que conectam redes diferentes, porque eles podem ser desenvolvidos uma camada de cada vez (CICCARELLI et al., 2009, p. 26). 3.2.1 Introdução Este modelo de redes foi desenvolvido entre o final da década de 1970 e o ano de 1984, a fim de interconectar sistemas abertos e segmentar a problemática das redes de computadores em camadas. O quadro a seguir apresenta as camadas do modelo OSI: Quadro 2 – Modelo OSI Modelo OSI Camada de aplicação Camada de apresentação Camada de sessão Camada de transporte Camada de rede Camada de enlace Camada física Adaptado de: Torres (2016, p. 256). Os principais benefícios trazidos pelo modelo OSI são: • Auxiliar na elaboração do protocolo. 54 Unidade II • Estimular a competição. • Impedir que mudanças em uma camada afetem outras. • Prover uma linguagem comum. As camadas do modelo OSI são: • Camada 7 (aplicação): comunicação do usuário por meio de aplicativos. • Camada 6 (apresentação): formatação dos dados. • Camada 5 (sessão): estabelecimento, gerenciamento e encerramento de sessões. • Camada 4 (transporte): transporte das informações. • Camada 3 (rede): endereçamento lógico e roteamento. • Camada 2 (enlace): endereçamento físico e comutação. • Camada 1 (física): padrões físicos. Essas camadas definem o modo pelo qual as informações “descem” até os dispositivos de hardware e “sobem” até os aplicativos. Cada camada é independente da outra em suas funções e responsabilidades. As camadas permitem que o OSI seja um modelo modular, facilitando o projeto e o desenvolvimento das redes. A informação que transita em cada camada do modelo OSI recebe um nome, ou melhor, uma PDU (Protocol Data Unit). As PDUs de cada camada são: • Camada 7: dados. • Camada 6: dados. • Camada 5: dados. • Camada 4: segmento. • Camada 3: pacote. • Camada 2: quadro. • Camada 1: bit. Na verdade, a informação que é gerada na camada de aplicação e recebe o nome de dados é encapsulada nas outras camadas. Esse encapsulamento é o processo de adicionar informações aos dados enquanto eles passam através das camadas do modelo OSI. As informações adicionadas aos dados são chamadas de cabeçalho. 55 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO 3.2.2 Camadas superiores do modelo OSI As camadas de aplicação, apresentação e sessão são consideradas as camadas superiores do modelo OSI, pelo fato de serem as mais próximas do usuário e por terem o dado como PDU. A camada de aplicação fornece a interface entre as aplicações que utilizamos para a comunicação e a rede subjacente pela qual nossas mensagens são transmitidas. É a camada de acesso do usuário final à rede, consistindo em um conjunto de aplicativos e serviços que provê a interação usuário-máquina. A camada de apresentação é aquela que responde às solicitações da camada de aplicação e encaminha solicitações de serviço para a camada de sessão. É a responsável pela sintaxe e pela semântica dos dados transmitidos, bem como pela conversão e formatação dos dados. Também chamada de camada de tradução, a camada de apresentação é a segunda mais alta da pilha de protocolos. Ela converte o dado recebido pela camada de aplicação em um formato comum a ser usado na transmissão dele, ou seja, um formato entendido pelo protocolo utilizado. Ela pode ainda ter outros usos, como a conversão do padrão de caracteres (código de página), quando, por exemplo, o dispositivo transmissor usa um padrão distinto do ASCII (American Standard Code for Information Interchange). Exemplos de diferenças entre formatos de dados incluem ordem de bytes (poderiam ser lidos da esquerda para a direita ou vice-versa) e conjunto de caracteres (caracteres ASCII ou caracteres EBCDIC – Extended Binary Coded Decimal Interchange Code –, da IBM), bem como sua representação numérica. Para aumentar a segurança, é possível utilizar algum esquema de criptografia nesse nível, sendo que os dados só serão decodificados na camada 6 do dispositivo receptor. Assim, no dispositivo de origem, a mensagem é enviada criptografada, quer dizer, os dados da informação original são modificados em um formato para envio. A formatação de dados serve para que o nó receptor entenda o que o nó emissor envia. A camada de sessão é responsável pelo estabelecimento, gerenciamento e finalização de sessões entre a entidade transmissora e a receptora. Os principais serviços oferecidos pela camada de sessão são: • Intercâmbio de dados: atividade responsável pelo estabelecimento da conexão, troca de dados e fechamento da conexão com a outra ponta. • Gerenciamento de diálogos: através dos chamados tokens, é possível negociar a troca de dados, a sincronização dos dados e a liberação da conexão durante a sessão. Os tokens são os responsáveis por “ter a vez de falar”. Assim, a máquina que estiver com o token é que poderá transmitir naquele momento. 56 Unidade II • Sincronização: quando há interrupção na rede, uma forma de retornar ao ponto em que parou é por meio dos chamados pontos de sincronização nos diálogos. Os pontos de sincronização são marcações em dois níveis, o que permite retornar com maior precisão. • Gerenciamento de atividades:divide as mensagens no nível da aplicação em unidades lógicas menores e independentes, chamadas atividades. • Relatório de exceções: permite retomar as ações executadas no nível de sessão mediante relatórios que detalham os problemas acontecidos com mensagens que retornaram. Cada camada oferece seus serviços para a camada diretamente acima. O chamado Ponto de Acesso aos Serviços da Sessão (PASS) permite a utilização dos serviços da camada de sessão pela camada de apresentação. Os dados no nível da sessão devem ser organizados para o estabelecimento da comunicação e para a transmissão adequada. Com esse intuito, usa-se o chamado intercâmbio de dados, que envolve três fases: estabelecimento, utilização e liberação. A liberação pode ser feita de duas formas na camada de sessão: • De forma abrupta: análoga à desconexão na camada de transporte. Uma vez emitida, a conexão não recebe mais nenhum dado. É utilizada para abortar conexões. • Disciplinada: utiliza um handshake completo – pedido, indicação, resposta e confirmação. Essa forma de liberação pode aceitar mensagens até que uma confirmação seja enviada. Na camada de aplicação, especificamente, opera uma série de protocolos, entre eles: • Telnet: aplicação de acesso remoto desenvolvida em 1969. O seu nome é derivado das palavras telephone network. Em 1977, foi liberada para uso público, tornando-se padrão mundial para acesso remoto. • FTP/TFTP (File Transfer Protocol/ Trivial File Transfer Protocol): protocolos de transferência de arquivos, criados em 1980. O FTP é mais confiável e mais lento. O TFTP é um pouco menos confiável e mais rápido. • SMTP (Simple Mail Transfer Protocol): protocolo padrão para envio de e-mails através da Internet. Criado nos anos de 1980, tem uma operação relativamente simples. • POP3 (Post Office Protocol): protocolo utilizado no acesso remoto a uma caixa de correio eletrônico. • HTTP (Hypertext Transfer Protocol): protocolo criado nos anos de 1990, com a finalidade de comunicar dados pela Internet. 57 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO • DNS (Domain Name System): criado em 1984, o serviço DNS baseia-se na arquitetura cliente- servidor e tem a função primordial de traduzir nomes para endereços lógicos de rede. • DHCP (Dynamic Host Configuration Protocol): criado em 1993, o serviço permite a configuração dinâmica de elementos conectados a uma rede. 3.2.3 Camada de transporte do modelo OSI A camada de transporte habilita a comunicação de múltiplas aplicações na rede, ao mesmo tempo, em um único dispositivo. Ela também assegura que, se necessário, todos os dados sejam recebidos confiavelmente e em ordem pela aplicação correta, mediante mecanismos de tratamento de erros. Nessa camada, os dados são encapsulados nos segmentos, sendo estes a sua PDU. Os propósitos da camada de transporte são: • Rastrear a comunicação individual entre as aplicações na origem e no destino. • Segmentar dados e gerenciar cada segmento. • Reagrupar os segmentos em fluxos de dados de aplicação. • Identificar as diferentes aplicações. Entre esses propósitos, o principal é efetuar a segmentação/reagrupamento e a multiplexação. Os principais tipos de transporte são: orientado a conexão e não orientado a conexão. No transporte orientado a conexão, afirma-se que a transmissão é confiável porque a segmentação/ reagrupamento ocorre de modo organizado. Além disso, estão presentes os mecanismos de janelamento, correção de erro, confirmação e controle de fluxo. Por esse motivo, ele é mais lento. O protocolo orientado a conexão dessa camada é o TCP. No transporte não orientado a conexão, não existe a confiabilidade do anterior: ele efetua a segmentação/reagrupamento, mas não de modo organizado. Não há mecanismos de janelamento, correção de erro, confirmação e controle de fluxo. Por isso é mais rápido. O protocolo não orientado a conexão dessa camada é o UDP (User Datagram Protocol). 3.2.4 Camada de rede do modelo OSI É a camada 3 do modelo OSI, conhecida também por camada da Internet no modelo TCP/IP. É responsável pelo endereçamento lógico dos dispositivos de rede e pelo roteamento dos pacotes. O primeiro propósito dessa camada é o endereçamento lógico, também conhecido como endereço IP, que é um número formado por 32 bits que identificam a rede e o host. 58 Unidade II É também nessa camada que ocorre o roteamento, que é o processo de determinação do melhor caminho. Ele pode ser classificado em: estático (configurado manualmente pelo administrador de redes) e dinâmico (configurado por meio de um protocolo de roteamento). 3.3 Modelo TCP/IP Para entender bem o TCP/IP, um bom começo é saber um pouco sobre os motivos de sua criação. As histórias do TCP/IP e da Internet são tão intimamente ligadas que não podem ser separadas. Ambos foram criados como parte do campo de batalha eletrônico da Guerra Fria entre os Estados Unidos e a União Soviética. Desde suas origens como um meio de facilitar a comunicação entre uns poucos campi universitários, a Internet se tornou um fenômeno mundial, ajudando a guiar o crescimento da indústria de PCs no processo e mudando o meio como as pessoas comunicam, colaboram e fazem negócios. TCP/IP é uma família de protocolos, com o TCP e o IP como base fundamental (CICCARELLI et al., 2009, p. 133). 3.3.1 Introdução Como visto antes, o modelo TCP/IP, também conhecido como modelo DoD, foi elaborado para atender a necessidade de criação da rede de computadores da Arpa. A ideia da Arpa era conceber um conjunto de protocolos com as seguintes características: • Operação independente do fabricante de hardware e software. • Boa recuperação de falhas (uma grande preocupação das forças militares norte-americanas). • Operar com altas taxas de erro, oferecendo serviços confiáveis. • Ser eficiente, tendo uma baixa sobrecarga de dados. • Ter escalabilidade, sem afetar o desempenho e a disponibilidade da rede. O quadro a seguir apresenta o modelo TCP/IP: Quadro 3 – Modelo TCP/IP Modelo TCP/IP Camada de aplicação Camada de transporte Camada de Internet Camada de acesso Adaptado de: Torres (2016, p. 256). 59 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO É um modelo aberto e relativamente simples, concebido como projeto em 1970, que traduz toda a problemática das redes em quatro camadas: camada de aplicação, camada de transporte, camada de Internet e camada de acesso à rede. A camada de aplicação do modelo TCP/IP também é conhecida como camada de processo. Ela lida com aplicativos e dispositivos de origem e destino, sendo a camada mais próxima do usuário. A camada de transporte também é conhecida como camada de host a host. Ela controla o fluxo de informações entre dispositivos, gerenciando o tipo de transmissão (orientada ou não orientada a conexão). A camada de Internet também é conhecida como camada de rede. É nessa camada que é executado o processo de roteamento de pacotes. O mais popular protocolo das redes de computadores também integra essa camada – IP. A camada de acesso à rede é responsável por gerenciar a transmissão da informação no meio físico. Ela reúne as funções das camadas de enlace e física do modelo OSI. 3.3.2 Comparação dos modelos OSI e TCP/IP Sob o aspecto teórico, o modelo OSI é o mais citado e o mais didático para o aprendizado das redes de computadores. Não obstante, o modelo TCP/IP se aproxima mais da realidade e do funcionamento das redes. É possível estabelecer uma comparação entre as camadas dos dois modelos, conforme a figura a seguir: Modelo OSI Modelo TCP/IP Camada de aplicação Camada de aplicaçãoCamada de apresentação Camada de sessão Camada de transporte Camada de transporte Camada de rede Camada de Internet Camada de enlace Camada de acesso Camada física Figura 14 – Comparação dos modelos OSI e TCP/IP Pode-se perceber que o modelo TCP/IP agrupa as funcionalidades das camadas de aplicação, apresentação e sessão do OSI em apenas uma camada, denominada camada de aplicação do TCP/IP. O mesmo acontececom as camadas de enlace e física do OSI, reunidas em apenas uma camada no modelo TCP/IP – a camada de acesso. As camadas de transporte dos dois modelos são praticamente equivalentes, e a camada de rede do modelo OSI corresponde à camada de Internet do modelo TCP/IP. 60 Unidade II Saiba mais Para conhecer um pouco mais sobre modelo em camadas OSI e TCP/IP, leia o livro: TORRES, G. Redes de computadores. 2. ed. Rio de Janeiro: Novaterra, 2016. 3.4 Protocolos de comunicação de dados 3.4.1 Protocolo de Internet (IP) É o protocolo de camada de Internet do modelo TCP/IP, responsável pelo encapsulamento dos segmentos na camada de transporte. O IP possui baixo overhead (cabeçalho), é sem conexão e utiliza o serviço de melhor esforço, além de operar independentemente do meio físico. A versão 4 é a mais utilizada nos dias de hoje. No entanto, a versão 6 já está amplamente propagada pela Internet. O IP é considerado um protocolo sem conexão porque não requer troca inicial de informações de controle para estabelecer uma conexão entre as extremidades, antes do envio dos pacotes. É considerado de melhor esforço porque não possui a capacidade de gerenciar e recuperar pacotes não entregues ou corrompidos, além de não ser confiável, deixando para as camadas superiores a gerência da confiabilidade. O pacote IP, PDU da camada de rede, é composto do segmento TCP acrescido do cabeçalho IP. Os principais campos do cabeçalho IP são: • Comprimento do cabeçalho. • Prioridade. • Tempo de vida. • Endereço IP de origem. • Endereço IP de destino. • Identificador do protocolo de transporte. • Flags de fragmento. • Identificador do pacote. 61 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Na versão 4, possui um endereço de 32 bits, agrupados em grupos de oito denominados octetos. Um endereço IP tem quatro octetos compostos de duas porções: host e rede. A versão 6 nasceu em meados de 1990, sendo o padrão publicado em 1998. Surgiu devido ao esgotamento da quantidade de endereços IP disponíveis na versão 4. A versão 6 aumentou o número de endereços IP válidos de 4 bilhões para mais de 134 trilhões. A quantidade de bits aumentou de 32 para 128. O endereço IP na versão 6 é representado por números hexadecimais. 3.4.2 Protocolo de transporte Os principais protocolos que operam na camada de transporte são: UDP e TCP. O UDP é um protocolo de transporte não orientado a conexão (ou sem conexão) e que tem uma grande preocupação com a velocidade na transmissão da informação. Por esse motivo, ele é não confiável. Ele também é um protocolo de transporte mínimo e de melhor esforço, ou seja, segmentos UDP podem ser perdidos ou entregues à aplicação fora de ordem. Não existe nenhum tipo de configuração inicial entre remetente e receptor, e os segmentos são tratados de forma independente (sem conexão). O UDP não utiliza operações como janelamento, controle e correção de erros, retransmissão de dados perdidos, entre outros processos que visam à alta qualidade no transporte de dados. Todas as preocupações com a qualidade devem ser tratadas pela aplicação que utiliza o protocolo UDP. Além disso, o UDP não tem controle de fluxo e de congestionamento, isto é, pode transmitir o mais rápido possível. O UDP é considerado simples, pois não mantém o “estado” da conexão no remetente/receptor, e possui cabeçalho de segmento bastante pequeno e simples se comparado ao TCP. O UDP é muito utilizado para aplicações de meios contínuos (voz, vídeo), que são tolerantes a perdas e sensíveis à taxa de transmissão, assim como para todas as aplicações isócronas (aplicações que precisam reproduzir-se na mesma taxa com que foram geradas). Também é usado nas aplicações de DNS e SNMP (Simple Network Management Protocol). Nas aplicações que utilizam UDP, é comum a necessidade de transferência confiável mínima. Nesses casos, é preciso incluir a confiabilidade na camada de aplicação, sendo que a recuperação de erro também se torna específica da aplicação. Já o TCP, diferentemente do UDP, é um protocolo que preza pela qualidade no transporte. O TCP é um protocolo orientado a conexão que executa processos como janelamento, controle e correção de erros, retransmissão de dados perdidos e segmentação de forma organizada. Um dos processos mais interessantes do TCP é o handshake – traduzido ao pé da letra seria aperto de mão –, que inicia a conexão entre o transmissor e o receptor. 62 Unidade II Lembrete Os protocolos TCP e UDP pertencem à camada 4 do modelo OSI. Dizemos que o TCP possui transferência confiável de dados, pois ele usa números de sequência e reconhecimento positivo com retransmissão para a entrega de dados. Assim, o TCP é um protocolo utilizado por diversas aplicações que não aceitam perdas de informação e que devem garantir a entrega e a integridade desta. No TCP, os números de sequência são usados para determinar a ordem dos dados que chegam e para detectar pacotes que estão faltando. O reconhecimento positivo com retransmissão exige que o receptor envie um pacote de reconhecimento (pacote ACK) ao remetente sempre que recebe um dado. O protocolo TCP faz controle de fluxo, ou seja, o TCP receptor envia um valor (tamanho da janela) ao transmissor nos pacotes de reconhecimento, que especifica o número de bytes que o transmissor pode transmitir sem esperar pelo reconhecimento deles. A janela desliza à medida que chegam os reconhecimentos e, quando esse valor for igual a zero, o transmissor para de enviar os dados. Esse processo, chamado de janela deslizante, é utilizado para aumentar a taxa de transmissão dos pacotes. Seja utilizando o TCP ou o UDP, os dados oriundos das aplicações são identificados por um número de porta. 4 PROTOCOLOS DE APLICAÇÃO E TRANSPORTE 4.1 A camada de aplicação 4.1.1 A camada 7: aplicação A camada de aplicação fornece aos usuários uma interface que permite acesso a diversos serviços de aplicação. Ela contém uma série de protocolos comumente necessários para os usuários, ou seja, fornece um conjunto de funções usadas pelos aplicativos que operam sobre o modelo OSI. Dentre esses serviços e protocolos, destacamos o HTTP, Telnet, DNS, FTP, SMTP, POP, IMAP, SMNP etc. 4.1.2 HTTP: Hypertext Transfer Protocol O HTTP define como o cliente web (browser) requisita uma página web a um servidor e como esse servidor transfere a página para o cliente. O HTTP utiliza o protocolo TCP como protocolo de transporte, a mensagem sai de suas mãos e passa para as mãos do TCP. Com essa ajuda, o TCP provê ao HTTP um serviço confiável de transferência de dados, que implica que todas as mensagens de requisição HTTP emitidas por um processo cliente chegarão intactas ao servidor. 63 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Da mesma forma, todas as mensagens emitidas pelo servidor chegarão intactas ao cliente. O HTTP não precisa se preocupar com os dados perdidos e nem com os detalhes de como o TCP recupera essa perda de dados. Essas informações que são enviadas entre clientes e servidores não são armazenadas, por isso, se um cliente solicitar o mesmo objeto duas vezes, o servidor não informará que esse objeto já foi enviado, ele o enviará novamente. Como o HTTP não mantém nenhuma informação sobre o cliente, ele é identificado como um protocolo sem estado. São versões do HTTP: • HTTP 1.0: uma conexão é estabelecida, uma solicitação é entregue e uma resposta é recebida. Depois disso a conexão é encerrada. • HTTP 1.1: foram adotadas conexões persistentes, nas quais é possível estabelecer conexões TCP que permitem o envio de várias solicitações e o recebimento de várias respostas. Saiba mais Visite o link do site Microsoft MSDN e lá você poderá consultar a história do desenvolvimento deste protocolo, que é essencial para o funcionamento de toda a internet: MICROSOFT. Informações sobre as versões do Internet Explorer. 2017. Disponível em: <https://support.microsoft.com/pt-br/help/969393/ information-about-internet-explorer-versions>. Acesso em: 25maio 2017. 4.1.2.1 Cookies Sabemos que os servidores HTTP são classificados como serviço, só que seria interessante que os sites web identificassem seus usuários. Para que isso aconteça, é necessária a utilização dos cookies, que permitem que os sites monitorem seus usuários. Grande parte dos portais (<www.google.com>; <www.msn.com>) e sites de comércio eletrônico (<www.ebay.com>) faz uso intensivo dos cookies. O cookie é formado pelos seguintes componentes: • Uma linha de cabeçalho de cookie na mensagem de resposta HTTP. • Uma linha de cabeçalho de cookie na mensagem de requisição HTTP. • Um arquivo de cookie mantido no computador do usuário e gerenciado pelo browser. • Um banco de dados de apoio no site web. 64 Unidade II 4.1.2.2 O funcionamento do cookie Vamos supor que você deseja comprar algum produto na loja on-line Submarino. Quando você acessa o site pela primeira vez são criados um número de identificação exclusivo que será armazenado no seu computador e uma entrada no banco de dados do servidor da loja. Esse número o identificará. Toda vez que você acessar o site, seu browser irá consultar a identificação no arquivo de cookies e inseri-la no cabeçalho HTTP de requisição. Com isso, o site web pode monitorar se é você mesmo que o está acessando novamente. Os sites de comércio eletrônico utilizam bastante os cookies por causa dos seus carrinhos de compra. Eles podem recomendar produtos com base em suas buscas na última visita ou armazenar os produtos que você adicionou no carrinho e não comprou. Observação Importante observar que o cookie promove algumas situações de anormalidade em sistemas computacionais, em plataformas Linux e Microsoft, inúmeras ocorrências de segurança dos dados são relacionadas ao uso dos cookies. Os cookies podem ser utilizados para criar uma camada de sessão de usuário sobre o HTTP, que é sem estado. Por exemplo, quando você acessa uma aplicação de webmail, o browser envia suas informações de cookie ao servidor, e este, por sua vez, o identifica por meio da sessão do usuário com a aplicação. Os cookies não são totalmente aceitos e, na maioria das vezes, são considerados como violação de privacidade. Por permitir o armazenamento de informações do usuário, essas informações podem ser repassadas a terceiros. Além disso, ele pode coletar informações sobre o comportamento do usuário e gerar spams com as informações mais solicitadas. Saiba mais A respeito da segurança, leia a reportagem: ROHR, A. Por que um “cookie forjado” pode dar acesso à sua conta? G1, São Paulo, 3 mar. 2017. Disponível em: <http://g1.globo.com/tecnologia/blog/ seguranca-digital/post/por-que-um-cookie-forjado-pode-dar-acesso- sua-conta.html>. Acesso em: 25 maio 2017. 65 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO 4.1.3 Telnet O Telnet é comumente utilizado para estabelecer uma conexão on-line com uma máquina remota, é suportado por inúmeras aplicações de rede e também é entendido como uma aplicação auxiliar. Trata-se de um software de emulação de terminal que permite o acesso de forma remota a outro computador. Este permite que você execute um comando de logon em uma máquina da internet e efetue comandos usando a sintaxe adequada. O cliente Telnet é chamado de máquina local, e um servidor Telnet é chamado de máquina remota. Ao fazer uma conexão de um cliente Telnet, você precisa escolher uma opção de conexão. Uma caixa de diálogo solicita um Nome de host e um Tipo de terminal. O nome do host ou máquina remota é o endereço IP (ou solução de nome correspondente) do computador remoto ao qual você deseja se conectar. E o tipo de terminal descreve o modo de emulação terminal que você deseja executar pela máquina local. A operação Telnet não usa nenhuma capacidade de processamento da máquina local. Em vez disso, ela transmite as teclas pressionadas à máquina remota e envia a saída de tela resultante de volta ao monitor local. Todo processamento e todo armazenamento ocorrem na máquina remota. O Telnet é iniciado como um processo de correio eletrônico. Quando você inserir um nome de DNS para um local do Telnet, o nome deverá ser convertido em seu endereço IP associado antes de estabelecer uma conexão (resulta na resolução de nome-para-número ou URL correspondente). A aplicação Telnet trabalha principalmente nas três camadas superiores do modelo OSI, a camada de aplicação (comandos), a camada de apresentação (formatos, normalmente ASCII) e a camada de sessão (transmissões). Seus dados passam para a camada de transporte, onde são segmentados e lhe são acrescidos o endereço da porta e a verificação de erros. Os dados passam, então, para a camada de rede, onde o cabeçalho IP (contendo o endereço IP de origem e de destino) é adicionado. Depois, o pacote trafega para a camada de enlace, que encapsula o pacote em um quadro de dados, adiciona o endereço MAC de origem e de destino e um trailer de quadro. Se o computador de origem não tiver o endereço MAC do computador de destino, ele executará uma solicitação ARP. Após a identificação do endereço MAC, o quadro trafegará pelo meio físico (na forma binária) para o próximo dispositivo. Quando os dados chegarem à máquina remota, as camadas de enlace, de rede e de transporte passarão pelo reagrupamento dos comandos de dados originais. A máquina remota, então, executa os comandos e transmite os resultados de volta para a tela da máquina local, usando o mesmo processo de encapsulamento que entregou os comandos originais. Todo esse processo se repete, enviando comandos e recebendo resultados, até que o usuário local tenha concluído o trabalho que precisava ser executado. Após a conclusão do trabalho, o usuário local terminará a sessão. 66 Unidade II Lembrete O objetivo de cada camada de uma rede é oferecer determinados serviços a camadas de níveis superiores, abstraindo-se dos detalhes de implementação de algum recurso. 4.1.4 O DNS (Domain Name System) Existem várias maneiras de identificar as pessoas, através do nome, números de CPF, RG etc. Cada uma dessas maneiras se enquadra em um contexto apropriado. A universidade, por exemplo, adota identificar seu aluno pela matrícula em vez do seu número de documento (RG), já pessoas preferem identificar seus amigos pelo nome, que é bem mais fácil de ser lembrado do que o RG. Imagine alguém sendo chamado pelo número do RG, ninguém se entenderia. Da mesma maneira que podemos ser identificados de várias formas diferentes, os hosts conectados pela internet também podem. Nomes como www.google.com, www.globo.com, www.unip.br etc. são fáceis de serem lembrados e, por isso, são bem usados pelos usuários. Porém esse tipo de identificação fornece poucas informações sobre a localização desses hosts. Como os caracteres utilizados nos nomes são variáveis, torna-se complexo o processamento pelos roteadores, e, por essas razões, os hosts também são identificados por endereços IP. Para que ocorra uma forma fluida de solução de endereço IP e identificação através dos nomes com caracteres, é necessário um serviço de diretório que execute a tradução dos nomes para os endereços IP. Essa é a função do DNS (Domain Name System – Sistema de Nome de Domínios). O DNS pode ser visto como um grande banco de dados distribuído e integrado através de uma hierarquização de servidores de nomes, chamados de servidores DNS. Tem a assistência de um protocolo da camada de aplicação que permite que hosts consultem o banco de dados de informações. As entidades, serviços e protocolos da camada de aplicação que utilizam o DNS são: HTTP, SMTP, FTP etc. Elas fazem uso do DNS para traduzir nomes de hosts, fornecidos por usuários, para o endereço IP. Por exemplo, quando você digita no navegador de seu computador a URL www.yahoo.com acontecem os seguintes passos: • Passo 1: sua máquina executa o lado cliente da aplicação DNS. • Passo 2: o navegador passa o nome do host www.yahoo.com para o lado cliente da aplicação. • Passo 3: o cliente DNS envia uma consultapara o servidor DNS contendo o endereço www.yahoo.com. • Passo 4: o servidor DNS envia uma resposta para o cliente contendo o IP do host desejado. 67 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO • Passo 5: depois de receber o endereço, o navegador abre uma conexão TCP com um processo HTTP localizado naquele endereço IP resolvido. Como vemos, acontece uma troca de mensagens entre o servidor e o cliente DNS, mas existe algum atraso para as aplicações de internet que utilizam os serviços de DNS. Para mitigar esse problema, os endereços IP que são procurados com frequência são armazenados no cache de servidores de DNS mais próximos, fato que ajuda a diminuir o tráfego e o atraso. Da mesma forma, como os protocolos HTTP, FTP e SMTP, o DNS também é um protocolo da camada de aplicação, só que seu papel é diferente dos demais, porque ele não é uma aplicação com a qual os usuários atuam diretamente. Em vez disso, ele fornece uma ação interna da internet, que é a tradução de nome-para-número IP. Lembrete A camada de aplicação fornece aos usuários uma interface que permite acesso a diversos serviços de aplicação. Ela contém uma série de protocolos comumente necessários para os usuários, ou seja, fornece um conjunto de funções usadas pelos aplicativos que operam sobre o modelo OSI. Existem outros serviços pelos quais o DNS é o responsável: • Apelidos dos hosts: por vezes, os hosts possuem algum nome complexo ou complicado, ou, ainda, mais de um nome. Um nome como zonaX.setor-Y.empresa.com.br pode ainda possuir dois ou mais apelidos, como www.empresa.com.br e empresa.com.br. Os apelidos são bem mais fáceis de serem lembrados, com isso, o DNS pode ser chamado para obter o nome real do host a partir de seu apelido. • Apelido do servidor de correio: da mesma forma que no apelido dos hosts, o importante é que o nome de um e-mail seja simples de ser memorizado. Aqueles que possuem uma conta no Yahoo, por exemplo, podem ter o seguinte e-mail: joao@yahoo.com.br. Porém o servidor de hospedagem do Yahoo pode ter um nome complicado, como zona99.setor-y.yahoo.com.br. O DNS é acionado pela aplicação de correio eletrônico para receber o nome real a partir do apelido que é fornecido e do endereço IP do servidor. • Distribuição de cargas: o serviço DNS é requisitado para distribuir cargas em sites que são muito utilizados, como o Google. Esse balanceamento é feito com o uso de vários servidores que usam IPs diferentes. Todo o conjunto de IPs desses servidores é associado ao nome real do site e armazenado na base de dados do DNS. Quando a máquina cliente do DNS solicita o endereço do site, o servidor de DNS oferece um conjunto de endereços IP a este associado, só que ele efetua um balanceamento na ordem dos endereços a cada solicitação. Esse balanceamento força a distribuição de tráfego pelos vários servidores replicados ao serviço. 68 Unidade II Saiba mais Toda vez que você estiver com dúvidas em relação à configuração de seu serviço DNS, a Núcleo de Informação e Coordenação do Ponto BR (NIC.br), órgão responsável pela regulamentação do serviço no Brasil, disponibiliza uma ferramenta para consulta de configuração: <https://registro.br/cgi-bin/nicbr/dnscheck>. 4.1.5 Banco de dados centralizado Um jeito objetivo e simples de visualizarmos os dados do DNS e seus serviços seria a existência de um único servidor de nomes contendo todos os registros mapeados. Bastaria todos os usuários dirigirem todas as suas consultas para esse único ponto que este responderia diretamente a todas as consultas. Essa singularidade é muito interessante, porém não é adequada para a internet de hoje porque apresenta: • Ponto único sujeito à falha: se o servidor DNS falhar, toda a internet vai parar. • Alto volume de tráfego: calculem um único servidor DNS respondendo a todas as consultas de milhares de hosts. • Banco de dados distante: não é viável um único servidor estar próximo de todos os clientes, pois isso resultaria em atraso iminente. • Grande volume de dados: calcule um único servidor, seu banco de dados armazenaria uma quantidade de informações gigantesca. Isso ocasionaria certa inconsistência pela atualização frequente das informações pelo ingresso dos novos hosts que surgiriam. Observe que um único servidor de DNS centralizado não é viável, por isso o DNS é um projeto distribuído. 4.1.6 Banco de dados distribuído Sabendo de todos os problemas originados em um banco de dados centralizado, o serviço DNS usa um grande número de servidores organizados hierarquicamente e distribuídos em todo o mundo, fazendo com que todos os mapeamentos da internet estejam espalhados. Existem três classes de servidores de nomes: • Servidor de nomes raiz: na internet temos cerca de vinte servidores de nomes espalhados pelo mundo, mas a maior parte dos servidores DNS encontram-se na América do Norte. Cada um desses servidores é formado por um conjunto de servidores replicados, o que garante segurança, disponibilidade e confiabilidade das informações. 69 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO • Servidor de nome de domínio de alto nível (TDL): esses servidores são encarregados dos domínios de alto nível, como .com, .org, .net e por todos os domínios de alto nível dos países, como .br, .ar, .jp. • Servidor de nome com autoridade: pertencem a todas as organizações que possuem um servidor que possa ser acessado publicamente pela internet. Devem fornecer registros de DNS que façam o mapeamento desses servidores para um endereço IP. Algumas organizações preferem ter seu próprio servidor DNS para abrigar esses serviços, ou então utilizam alguns provedores de serviços. 4.1.6.1 Cache DNS O serviço DNS faz uso do cache para aumentar o seu desempenho e diminuir o atraso e o número de mensagens de DNS pela internet. Seu funcionamento é bem simples. Quando um servidor de DNS recebe a resposta das cadeias de consulta, ele segue armazenando esses dados em sua memória local. Se uma nova consulta for efetuada e este endereço pedido já estiver em memória, ele poderá fornecer o endereço IP solicitado mesmo que não tenha a autoridade para esse nome. Esse armazenamento de endereços é volátil, persiste após um período de tempo, que, na maioria dos servidores DNS, é de dois dias. Após esse período os dados que estão em cache são descartados. 4.1.7 FTP e TFTP O protocolo FTP (File Transfer Protocol) é um protocolo que tem como finalidade principal transferir arquivos de um computador para o outro, copiando e movendo arquivos dos servidores para os clientes e vice-versa. Por ser um protocolo confiável e orientado à conexão, o FTP carrega a garantia de serviço de que as informações serão entregues ao destino. O protocolo TFTP (Trivial File Transfer Protocol) é uma variante do protocolo FTP que possui mesma finalidade, ou seja, transferir arquivos. A principal diferença entre esses protocolos é que o TFTP não é confiável e também não é orientado à conexão, ou seja, não existe garantia na entrega da informação. Por essa razão, o TFTP é mais rápido do que o FTP, basicamente por não usar recursos que garantam a entrega dos dados. Por outro lado, o FTP é muito mais seguro e confiável. 4.1.8 SMTP, POP e IMAP Esses protocolos são usados especificamente para o serviço e transferência de e-mails. O SMTP (Simple Mail Transfer Protocol) é o protocolo usado para transferir e-mails entre servidores e também pelo aplicativo cliente para enviar e-mails. Os protocolos POP (Post Office Protocol) e IMAP (Internet Message Access Protocol) são usados pelo aplicativo cliente para baixar um e-mail do servidor local. 70 Unidade II Servidor de e-mail – MDA Agente de correio do usuário – MUA Agente de correio do usuário – MUA Cliente – remetente Agente de transferência do correio – MTA Agente de entrega do Correio – MTA Envia e-mail SMTP Envia e-mail SMTP POP entrega e-mail Cliente – destinatário Figura 15 – Protocolos de envio e recebimento de e-mail Saiba mais O mecanismo de correioeletrônico se tornou massivo a partir do advento da internet dentro das corporações. Ele rapidamente tomou o espaço de outros meios de comunicação, como o fax, o telex e o próprio telefone. Com essa tecnologia agregada a elementos de segurança, como encriptação e certificados digitais, o correio eletrônico passou a ser um elemento de referência para a comunicação de um grande número de pessoas ao redor do mundo. Diversos sistemas de comunicação orientados ao serviço de correio eletrônico foram criados ao longo dos anos, em diversas plataformas de sistemas operacionais, como o Sendmail em sistemas Linux e o Microsoft Exchange para as plataformas do Windows. Visite a página do Microsoft Exchange em: <https://products.office.com/pt-br/exchange/email>. 71 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO 4.1.9 SNMP O SNMP (Simple Network Management Protocol) é um protocolo que tem a função de trocar informações de gerenciamento entre os dispositivos de uma determinada rede. O SNMP ajuda os administradores de rede a gerenciá-la de forma otimizada, em que mensagens de alerta são enviadas para o computador que gerencia a rede, e ainda são armazenadas em base de dados de coleta de informações para registro histórico de atividade dos ativos e serviços por ele (protocolo) gerenciados. Entidade de gerenciamento SNMP Agente Agente Agente Agente Figura 16 – SNMP, conectividade entre ativos de rede e a entidade gerenciadora Na figura, temos: • Entidade de gerenciamento: também chamada de NMS (Network Management Systems), é a responsável pela aplicação principal, ou seja, é quem gerencia a rede. Geralmente instalada em um servidor dedicado. • Dispositivos gerenciados: são os dispositivos que estão sendo gerenciados pelo protocolo SNMP. Exemplos de dispositivos gerenciados são os roteadores, switches, servidores, impressoras, estações de trabalho etc. • Agentes: são módulos de software de gerenciamento de rede que residem em dispositivos gerenciados. Um agente tem conhecimento local de informações de gerenciamento e as converte para uma forma compatível com o SNMP. Observação As ferramentas SNMP são nossas aliadas no gerenciamento de infraestruturas de redes de computadores, porém, o tráfego de informações SNMP deve ser medido, pois as transmissões desse serviço podem comprometer seriamente a conectividade e a performance da rede. O uso de conexões paralelas nos ajuda a segregar esse tráfego e torná-lo mais eficiente e seguro. 72 Unidade II 4.2 Camada de apresentação A camada de apresentação não tem uma preocupação declarada com os princípios dos níveis de dados em bits, mas sim com sua sintaxe, ou seja, sua representação. Nela são definidas a sintaxe abstrata, a forma como os tipos e os valores dos dados serão definidos, independentemente do sistema computacional usado em sua sintaxe de transferência, ou seja, a maneira como se realiza essa qualificação. Um bom exemplo através da sintaxe de abstração é definir a forma como um caractere deve ser transmitido, aceitar o protocolo de transferência específico e então negociar o formato de codificação do dado, que poderá ser ASCII ou EBCDIC, o resultado do dado então será entregue à camada sessão. A principal função da camada de apresentação é representar os dados para que sejam legíveis para a camada de apresentação do dispositivo de destino. Nesse nível, a camada de apresentação precisa conhecer a sintaxe de seu sistema local e também a do seu sistema de transferência. Os serviços oferecidos nesse nível são a representação dos dados, a formatação dos dados, a seleção das sintaxes e o estabelecimento e manutenção das conexões da apresentação. Existe uma correspondência atuante entre os endereços da apresentação e da sessão, e nesse caso não há existência da multiplexação no nível do protocolo. Aliada às funções de representação de dados, a camada de apresentação também é responsável pela realização da compactação e da criptografia. Compactação Criptografia Formatação dos dados Compactação de dados Mensagem original Computador Mensagem criptografada MCUpoiewo ASCII EBCDIC Figura 17 – Funções da camada de apresentação JPEG e GIF são bons exemplos de padrões de formatação que são definidos na camada de apresentação. O padrão MPEG compõe o grupo definido pela ISO para padronização e compressão de transmissão de áudio e de vídeo. Já o padrão JPEG é usado para compressão de dados geralmente utilizados na composição de imagens fotográficas. O padrão GIF é utilizado na formatação de imagens de baixa resolução, como o uso dos ícones. 73 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO 4.3 Camada de sessão A camada de sessão oferece mecanismos que permitem a estruturação dos circuitos que são oferecidos pelo nível de transporte. Os principais serviços fornecidos nesse nível são o gerenciamento do token, o controle do diálogo e o gerenciamento das atividades. Embora um circuito que permita transmissões nos dois sentidos seja necessário para o intercâmbio das informações, em algumas aplicações essa troca de informações é do tipo half-duplex em vez de ser full-duplex. Com a intenção de fornecer o serviço de intercâmbio de informações half-duplex em um circuito full-duplex, o serviço da sessão usa conceitos de token em uma comunicação half-duplex. O proprietário do token dos dados pode transmitir os seus dados. O serviço da sessão, então, fornece os mecanismos de gerenciamento, a posse e a passagem deste token entre as entidades da aplicação que estão utilizando este serviço. No momento que ocorre um volume muito grande dos dados, por exemplo, um arquivo muito extenso é transmitido em redes não muito confiáveis. Essa rede pode basicamente deixar de funcionar, então, resta ao nível de transporte indicar qual tipo de falha e deixar a aplicação decidir o que pode ser feito. Eventualmente, a rede pode voltar a funcionar, podendo a conexão ser restabelecida. No caso desse restabelecimento, o ideal seria que a transferência dos dados pudesse ser retomada do ponto exatamente ou imediatamente anterior ao da interrupção. Com o objetivo de fornecer esse tipo de serviço, o nível da sessão usa o conceito de ponto de sincronização. O ponto de sincronização é uma marca lógica que é posicionada na extensão do diálogo entre os dois usuários do serviço dessa sessão. A qualquer tempo, toda vez que se recebe um ponto de sincronização, o usuário do serviço da sessão deve então responder ao aviso do recebimento ao usuário com quem está se dialogando. Se, por qualquer motivo, uma conexão foi interrompida e depois restabelecida, os usuários podem retomar o diálogo a partir do último ponto de sincronização confirmado. O conceito da atividade torna possível aos usuários dos serviços da sessão a distinção das partes do intercâmbio nos dados, normalmente denominada atividade. Cada atividade pode então consistir em uma ou mais unidades/partes desse diálogo. Em uma conexão da sessão só é permitida a execução de uma atividade por vez, porém, em algumas circunstâncias, podem existir várias atividades consecutivas durante a concepção da conexão. Uma atividade pode ser interrompida e depois recomeçada nessa mesma sessão ou em conexões de sessão subsequentes. Para um bom exemplo do uso do conceito de uma atividade, vamos considerar o envio de uma mensagem através de um sistema de correio eletrônico como uma atividade específica, vamos supor que esta mensagem é grande e de baixa prioridade. Durante o método de transmissão, a entidade do nível da sessão que está enviando essa mensagem recebe uma solicitação para enviar uma outra mensagem de prioridade maior, essa entidade então pode suspender a atividade corrente e transferir a mensagem com a prioridade alta e começar, nesse caso, uma nova ou uma outra atividade que, posteriormente, poderá retomar a atividade inicial, que é a transmissão da mensagem com prioridade baixa, sempre usando o conceito de atividade. 74 Unidade II O nível da sessão sempre permiteque os dois usuários suspendam um diálogo, por exemplo, o fim do expediente, naturalmente desfazendo a conexão da sessão e retomando a posterior, no início do próximo expediente, usando uma nova conexão da sessão. 4.4 Camada de transporte Para conhecer os detalhes da camada de transporte, é preciso entender que na camada de rede, ou seja, na camada antecessora, não há garantia de que os dados e pacotes cheguem ao seu destino. Estes podem ser perdidos ou, ainda, chegar fora da sequência original da transmissão. Para fornecer uma estratégia de comunicação fim a fim que seja confiável de verdade, é necessário um nível de protocolo, que é este oferecido pela camada transporte. Esse nível tem a intenção de isolar os níveis superiores da transmissão da rede. No nível da camada de transporte, a comunicação é do tipo fim a fim. A entidade do nível de transporte da máquina que origina a comunicação se comunica com a entidade do nível de transporte da máquina a que se destina a comunicação. Isso não necessariamente acontece em níveis físicos do enlace ou da rede onde esta comunicação se dá entre máquinas adjacentes ou máquinas vizinhas na sua rede. As funções mais importantes nesse nível do modelo OSI são a multiplexação, em que várias conexões de transporte compartilham a mesma conexão de rede, e o spliting, que são as conexões de transporte ligadas a várias conexões de rede. O spliting é usado para superdimensionar a vazão de uma conexão do transporte usando várias conexões de rede simultaneamente. Já a multiplexação é usada quando uma conexão de transporte não tem geração de tráfico suficiente para ocupar toda a capacidade da conexão da rede por ela usada. Outra função não menos importante no nível de transporte é o controle de fluxo. Assim, nenhuma implementação de um espaço de armazenamento, seja infinito ou mesmo algum mecanismo que deva ser utilizado no módulo, faz evitar que o transporte envie mensagens a uma taxa muito maior do que a capacidade de receber. Além de todas as funções mencionadas, ainda podemos lembrar de funções nesse nível de controle, como a sequência de informe de dados fim-a-fim, a detecção e a recuperação de erros do tipo fim-a-fim e também a segmentação e blocagem das mensagens, entre outras. Recapitulando as atribuições da camada transporte, temos as funcionalidades: • Serviço orientado à conexão. • Entrega ordenada. • Entrega confiável. • Controle de fluxo. • Identificação das diferentes aplicações. 75 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO 4.4.1 Serviço orientado à conexão A camada transporte faz uso do serviço orientado à conexão para garantir confiabilidade. O fato de ser um protocolo orientado à conexão indica que uma sessão precisa ser estabelecida entre destino e origem antes de transmitir dados. Após essa sessão ser estabelecida, os dados poderão ser transmitidos, e após o término da transmissão dos dados, a sessão será encerrada na camada de transporte da comunicação por meio de um handshake triplo. O handshake triplo é, na verdade, a sincronização iniciada pelo cliente ao servidor. Fase 1 A entidade que está iniciando a comunicação transmite o segmento contendo o número de sequência para inicialização, indicando o início da comunicação ==> SYN inicial. Fase 2 A entidade receptora responde com um ==> SYN/ACK, confirmando o estabelecimento da comunicação. Fase 3 A entidade que iniciou a comunicação responde esta confirmação completando a fase de estabelecimento e a sincronização da comunicação. Equipamento transmissão 1 - Envia SYN (seq=100 CTL=SYN) SYN recebido SYN recebido 3 - Estabelecido (SEQ=101 ACK=301 CTL=ACK 2 - Envia SYN=ACT (seq=300 ACK=101 CTL=SYN, ACT) Equipamento recepção Figura 18 – Sincronização do handshake triplo 76 Unidade II No momento em que a comunicação é estabelecida, esta fase já se encontra concluída e os dados podem ser transmitidos. Somente depois do handshake triplo os dados serão enviados pela entidade de origem e, após eles serem transmitidos, a sessão precisa ser encerrada. Equipamento transmissão 1 - Envia FIN ACK recebido FIN recebido FIN recebido 4 – Envia ACK 2 - Envia ACK 3 - Envia FIN ACK recebido Equipamento recepção Figura 19 – Finalização de uma conexão Saiba mais Para saber mais sobre a camada transporte, leia os capítulos 12 e 13 do livro: COMER, D. E. Internetworking with TCP/IP. 4. ed. New Jersey: Prentice Hall, 2000. v. 1. 4.4.2 Entrega ordenada Em uma comunicação, quando diversos datagramas são enviados entre a entidade de origem e a entidade de destino, a chegada dos datagramas ao seu destino pode ser encarada de forma desordenada, justamente pelas diversas possibilidades de rota que estão disponíveis em uma comunicação em rede. Para que eles possam ser organizados e ordenados ao seu destino, cada datagrama recebe um número de sequência. Quando esses datagramas chegam fora da sua ordem original, eles são colocados em um buffer para que depois de organizados e ordenados possam ser entregue às camadas superiores. 77 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Datagramas diferentes podem usar caminhos diferentes Origem Destino Figura 20 – Possibilidades de caminho em uma rede de pacotes massiva Nesta maneira de organizar os datagramas na camada de transporte, existe a possibilidade da retransmissão dos datagramas faltantes. 4.4.3 Entrega confiável Para garantir confiabilidade em uma comunicação, a camada de transporte utiliza o conceito de confirmação positiva ou confirmação esperada. Nesse caso, são usados números sequenciais juntamente com os números de confirmações (ACK). Ao receber esses datagramas que foram enviados pela entidade de origem, a entidade de destino confirma o recebimento desses datagramas, pedindo o próximo na fila, ou seja, o próximo datagrama é solicitado e, desta forma, a entidade de origem entende que a entidade de destino recebeu todos os datagramas anteriores. Inicia a transmissão com o byte nº 1. Estou enviando 10 bytes Recebi 10 bytes iniciando com o byte nº 1. Espero o byte nº 11 em seguida Equipamento transmissão 10 bytes Mais bytes iniciando com o byte 11 Equipamento recepção Origem Destino Seq. Rec. 1028 23 1 1 ... Origem Destino Seq. Rec. 1028 23 1 1 ... Origem Destino Seq. Rec. 23 1028 1 11 ... Figura 21 – Confirmação positiva 78 Unidade II 4.4.4 Controle de fluxo Gerenciamento e controle de fluxo das informações é uma atribuição da camada de transporte e indica a quantidade de informação que poderá ser transferida antes de aguardar uma confirmação do recebimento ao seu destino. A camada de transporte então faz uso do janelamento para essa função. O janelamento é considerado uma janela móvel, também é conhecida como janela deslizante, ou seja, o valor do tamanho da janela não é fixo, os valores vão sendo alterados durante a transmissão. Assim, o fluxo das informações vai sendo gerenciado quando ocorre então o controle de fluxo. O tamanho da janela determina o número de bytes enviado antes de um reconhecimento. O número de reconhecimento é o número do próximo byte esperado. Equipamento transmissão Tamanho da janela = 3000 Número da sequência = 1 Número da sequência = 1501 Receber reconhecimento Número da sequência = 3001 Número da sequência = 4501 Receber reconhecimento Receber 1 – 1500 Receber 1501 – 3000 Número de reconhecimento 3001 Receber 3001 – 4500 Receber 4501 – 6000 Número de reconhecimento 6001 1500 bytes 1500 bytes 1500 bytes 1500 bytes Equipamento recepção Reconhecimento de segmento TCP e tamanho da janela Figura 22 – Controle de fluxo 4.4.5 Como a camada transporte identifica as diferentes aplicações A forma como a camada transporte identifica diversas comunicações simultâneas, quando essas ocorrem entre as entidades de origem e de destino, parece complexa, mas na verdade é muito simples, como seria um dispositivo que opera diferentes aplicações de rede simultaneamente, por exemplo, a navegação na internet e o enviode um e-mail. Como esse dispositivo vai identificar qual aplicação precisa receber o dado que chegou através da rede? A resposta está na atribuição de portas. Números de portas são usados para identificação dessas comunicações pelas diversas aplicações do usuário. Quando o dispositivo inicia uma comunicação, ele atribui um número de porta de origem e outro número de porta para o destino, essa porta de origem identifica a comunicação na sua origem enquanto a porta do destino vai identificar a aplicação que vai receber a informação ao seu destino. No retorno da sua comunicação, esses números são trocados sistematicamente. 79 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Faixa de números de portas Grupo de portas 0– 1023 Portas conhecidas (contato) 1024 – 49151 Portas registradas 49152 – 65535 Portas privadas e/ou dinâmicas Portas TCP Registradas 1863 MSN Messenger 8008 Alternar HTTP 8080 Alternar HTTP Portas TCP conhecidas: 21 FTP 23 Telnet 25 SMTP 80 HTTP 110 POP3 193 Internet relay chat (IRQ) 443 HTTP seguro (HTTPS) Figura 23 – Número de portas A primeira faixa, de 0 a 1023, identifica as portas conhecidas, ou seja, números de portas para aplicações previamente estabelecidas. Veja as principais aplicações e seus números de portas: Tabela 1 – Endereços de porta TCP das principais aplicações Número da porta Protocolo 20 e 21 FTP 22 SSH 23 Telnet 25 SMTP 53 DNS 69 TFTP 80 HTTP 110 POP3 143 IMAP 443 HTTPS Adaptado de: Red Hat Enterprise (2005). A segunda faixa de números de portas, de 1024 a 49151, identifica as portas registradas. Estas identificam processos ou aplicações do usuário, ou seja, aplicações individuais do usuário final. As portas registradas também podem ser usadas dinamicamente, como uma porta de origem do dispositivo que inicia a comunicação. Um exemplo comum de uma porta registrada é a porta 1863, do MSN. 80 Unidade II A terceira faixa de números de portas, de 49152 até 65535, identifica as portas privadas ou dinâmicas. Esses números de portas são geralmente usados dinamicamente por aplicações do dispositivo que inicia a transmissão, apesar de que geralmente esses dispositivos podem usar portas registradas. 4.4.6 Protocolo orientado à conexão Como sabemos, a camada transporte fornece um serviço orientado à conexão, e o protocolo da camada de transporte que fornece esse serviço é o TCP (Transmission Control Protocol). Assim, o TCP aplica todas as funções de entrega de forma ordenada, confiável e com controle de fluxo. Para usar os recursos de entrega ordenada, confiável e com controle de fluxo, o TCP precisa usar uma estrutura de datagrama que comporta todas essas funções. Bit 0 Bit 15 Bit 16 Bit 31 Porta de origem (16) Portal de destino (16) Número de sequência (32) Número de reconhecimento (32) Comprimento do cabeçalho (4) Reservado (6) bits de código (6) Janela (16) Checksum (16) Urgente (16) Opções (0 ou 32, se houver) Dados da camada de aplicativos (tamanho varia) Figura 24 – Estrutura do datagrama TCP Os campos que constam na figura são: • Porta de origem: campo de 16 bits que contém o número da porta origem. • Porta de destino: campo de 16 bits que contém o número da porta de destino. • Número de sequência: campo de 32 bits utilizado para ordenar os datagramas. • Número de reconhecimento: campo de 32 bits com o número de confirmação que indica o próximo segmento TCP esperado. • Comprimento do cabeçalho: campo de 4 bits que indica o tamanho do cabeçalho do datagrama. • Janela: campo de 16 bits com o número de segmentos que poderão ser transmitidos antes de aguardar uma confirmação. • Checksum1: campo de 16 bits para o cálculo de verificação de erros. • Dados: campo com os dados das camadas superiores. 81 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO 4.4.7 Protocolo não orientado à conexão A camada transporte nem sempre precisa oferecer um serviço confiável, no qual é preciso estabelecer uma comunicação entre origem e destino antes de enviar os dados, mas sim oferecer uma entrega ordenada com controle de fluxo. Em alguns casos, em que a confiabilidade da comunicação não é necessária, um protocolo não orientado à conexão pode ser usado. O protocolo de camada de transporte que pode fornecer o serviço não orientado à conexão é o UDP (User Datagram Protocol). A seguir, temos detalhes desse datagrama. Bit 0 Bit 15 Bit 16 Bit 31 Porta de origem (16) Portal de destino (16) Comprimento (16) Checksum (16) Dados da camada de aplicativos (tamanho varia) Figura 25 – Estrutura do datagrama UDP Os campos que constam na figura são: • Porta de origem: campo de 16 bits que contém o número da porta origem. • Porta de destino: campo de 16 bits que contém o número da porta de destino. • Comprimento: campo de 16 bits que indica o tamanho do datagrama, incluindo os dados. • Checksum: campo de 16 bits para o cálculo de verificação de erros. • Dados: campo com os dados das camadas superiores. As diferenças entre o protocolo TCP e UDP Podemos observar que os protocolos TCP e UDP possuem semelhanças e diferenças. Em primeiro lugar, vale lembrar que a função deles é basicamente a mesma, ou seja, o transporte de dados das camadas superiores entre os dispositivos finais e a diferenciação das diversas conversações em formato simultâneo por meio de números de portas. Os dois protocolos possuem campos de números de portas e de checksum, e também campos de dados com funções equivalentes. Porém as semelhanças param por aí. Podemos observar que o protocolo TCP possui mais campos do que o UDP, exatamente pelo fato do TCP oferecer serviços orientados à conexão com confiabilidade. Além do TCP possuir um cabeçalho muito maior que o UDP, são 20 bytes para o TCP e 8 bytes para o UDP, o overhead que o protocolo TCP impõe é bem maior, ou seja, o protocolo UDP é bem mais leve. Assim sendo, o protocolo UDP poderá ser usado em princípios de comunicação nos quais não seja necessário existir a confiabilidade, embora isso não seja recomendado. 82 Unidade II Resumo Nesta unidade apresentamos os principais padrões/protocolos de rede. Os padrões podem ser classificados em padrões de facto e padrões de jure. Os padrões de facto são aqueles que não foram reconhecidos por uma organização ou comitê ao serem lançados por uma pessoa ou comunidade. Os padrões de jure são protocolos reconhecidos legalmente ou por organizações. Os principais órgãos padronizadores são: Ieee, Ansi, ISO, ITU, IEC e EIA. Logo em seguida, aprendemos como funciona a camada de aplicação, que é a sétima camada do modelo OSI, em uma visão top-down. Essa camada é permeada de soluções e tecnologia que chegam diretamente aos consoles dos usuários, independentemente da plataforma operacional que eles utilizem. Vimos também a classificação dos aplicativos que fazem parte do nosso do dia a dia, como o navegador da internet, os sistemas de FTP, os sistemas de correio eletrônico e até os elementos de infraestrutura, como mecanismos de gerenciamento SNMP, que são tão importantes para a administração da infraestrutura de pequenas e grandes estruturas de comunicação e de gerenciamento de recursos de tecnologia. Ainda nesta unidade aprendemos sobre as seguintes camadas: apresentação, sessão e rede. Vimos as principais funções da camada apresentação, que é responsável, basicamente, pelo ingresso da mensagem original para a camada de aplicação, responsável ainda pela compactação dos dados, pela criptografia dos dados e pelo estabelecimento dos padrões de formatação dos arquivos, que são definidos pelas aplicações, como os padrões de imagem GIF, JPG e os padrões de vídeo em MPEG e MP4. Também vimos a interação da camada de sessão, que é responsável pelo intercâmbio das informações e pelo estabelecimento das regras de troca de dados entre as entidades pertencentes a uma comunicação,estabelecendo parâmetros de comunicação, como half-duplex e full-duplex, e igualmente responsável pela distribuição do token de transmissão/recepção que dá o indicativo para cada uma das entidades no momento de transmitir e receber dados. Avançando pelo módulo aprendemos as funções das atribuições da camada de transporte, na qual o serviço orienta a conexão, a entrega ordenada, a entrega confiável, o controle de fluxo e a identificação das diferentes aplicações nesse nível de serviço. Aprendemos ainda os 83 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO conceitos da janela deslizante e o estabelecimento de portas para que as aplicações possam interceptar os dados vindo das camadas inferiores. Concluímos esta unidade apresentando as diferenças ente os protocolos TCP e UDP. Exercícios Questão 1. (Cesgranrio 2013) A arquitetura IEEE 802 propôs a divisão em duas subcamadas (MAC e LLC) da camada: A) Física do Modelo OSI. B) De Enlace do Modelo OSI. C) De Rede do Modelo OSI. D) De Transporte do Modelo OSI. E) De Aplicação do Modelo OSI. Resposta correta: alternativa B. Análise das alternativas A) Alternativa incorreta. Justificativa: a Camada Física do Modelo OSI em modulação elétrica, raios de luz (em tecnologias de fibra óptica). B) Alternativa correta. Justificativa: a Camada de Enlace do Modelo OSI, MAC faz o enquadramento (framing) e o LLC faz a multiplexação para as diversas tecnologias superiores que desejam utilizar seus serviços. A mais comum destas tecnologias é a IP, mas pode ser IPX, Decnet, Appletalk. C) Alternativa incorreta. Justificativa: a Camada de redes do Modelo OSI faz endereçamento e roteamento. D) Alternativa incorreta. Justificativa: a Camada de Transporte do Modelo OSI faz controle fim a fim de conexão. Políticas de descarte e retransmissão de informação. 84 Unidade II E) Alternativa incorreta. Justificativa: a Camada de Aplicação é a forma como os protocolos de alto nível definem sua sintaxe. Por exemplo: HTTP. Questão 2. (Cesgranrio 2008) É uma função da camada de sessão do modelo OSI o(a): A) Controle de diálogo. B) Controle de congestionamento. C) Detecção e recuperação de erros. D) Remontagem de pacotes. E) Fragmentação de datagramas. Resposta correta: alternativa A. Análise das alternativas A) Alternativa correta. Justificativa: o controle de diálogo é uma das funções da camada de sessão, assim como estabelecimento da própria sessão de comunicação. B) Alternativa incorreta. Justificativa: o controle de congestionamento é a camada de rede que oferece controle de fluxo e congestionamento para roteamento dos pacotes. C) Alternativa incorreta. Justificativa: a detecção e recuperação de erros é feita através da camada de enlace utilizando a transmissão “bruta” da camada física e também através da confiabilidade na entrega de dados provida pela camada de transporte. D) Alternativa incorreta. Justificativa: a remontagem de pacotes é função da camada de rede, bem como dividir os segmentos da camada de transporte em pacotes no lado do emissor e remontar os pacotes no lado do receptor. E) Alternativa incorreta. Justificativa: a fragmentação de datagramas é função da camada de enlace que fragmenta no emissor e remonta no receptor.
Compartilhar