{{ __('Painel do Aluno') }}


Camadas de Aplicação e Transporte








Propósito

Compreender a influência de uma arquitetura no desenvolvimento de aplicações para redes de computadores, bem como os impactos dos diferentes serviços oferecidos pela camada de transporte no funcionamento delas.

Objetivos



Reconhecer as arquiteturas de aplicações.
Identificar os principais serviços oferecidos pela camada de aplicação.
Localizar os elementos da camada de transporte.
Comparar os serviços oferecidos pela camada de transporte.

Introdução


As redes de computadores cresceram de forma vertiginosa nos últimos anos. Esse crescimento ocorreu graças aos diversos serviços que passaram a ser disponibilizados através da Internet, o que nos permitiu realizar compras on-line, pagamentos, assistir a filmes, jogar, acessar redes sociais, entre outras atividades.

Todos esses serviços que são disponibilizados pela Internet, ou em uma Intranet, são implementados na camada de aplicação da arquitetura TCP/IP. Nessa camada são executados os processos que permitirão que você possa acessar este conteúdo, enviar mensagens de correio eletrônico, acessar as redes sociais, jogar on-line etc.

Colocando de uma forma bem simples, ao acessarmos os diversos serviços, o que está ocorrendo é uma comunicação dos processos que são executados no nível da aplicação.

Para que isso seja possível, entra em operação a camada de transporte. Nesse nível é que será garantida a confiabilidade na troca de mensagens da camada de aplicação.

Por isso é importante que o profissional de tecnologia da informação consiga reconhecer as arquiteturas que podem ser utilizadas nas aplicações, assim como saber a finalidade de cada um dos serviços que são oferecidos e como a camada de transporte permitirá uma comunicação confiável entre o dispositivo de origem e de destino.



A camada de transporte é a quarta camada do modelo OSI (Open Systems Interconnection) e a camada do meio entre as camadas de aplicação e rede. Essa camada fornece a comunicação de ponta a ponta entre aplicações que estão em hosts diferentes.

--- Principais funções da camada de transporte
As principais funções da camada de transporte são:
Segmentação e remontagem: A camada de transporte divide os dados da camada de aplicação em pacotes menores, chamados segmentos. Esses segmentos são enviados pela rede e remontados na ordem correta no destino.
Controle de fluxo: O controle de fluxo garante que o emissor não sobrecarregue o receptor com um fluxo de dados maior do que ele pode processar.
Controle de erro: A camada de transporte garante a entrega confiável dos dados. Se um pacote for perdido, danificado ou chegar fora de ordem, o controle de erro pode detectar o problema e solicitar a retransmissão do pacote.
Multiplexação: Essa função permite que várias aplicações em um único host compartilhem uma única conexão de rede. A camada de transporte atribui um número de porta a cada aplicação para que os dados cheguem à aplicação correta.

--- Protocolos da camada de transporte
Dois dos protocolos mais importantes da camada de transporte são o TCP e o UDP.

TCP (Transmission Control Protocol)


O TCP é um protocolo orientado à conexão, o que significa que ele estabelece uma conexão antes de enviar os dados. A camada de transporte é a única camada que usa o TCP.

Confiabilidade: O TCP garante a entrega dos dados, tornando-o ideal para aplicações que exigem confiabilidade, como e-mail e transferência de arquivos.
Controle de fluxo: Ele usa um mecanismo de controle de fluxo para evitar o congestionamento da rede.
Controle de erro: O TCP detecta e retransmite pacotes perdidos ou danificados para garantir a integridade dos dados.
Entrega ordenada: Ele garante que os dados cheguem na ordem correta, reordenando os pacotes se necessário.

UDP (User Datagram Protocol)



O UDP é um protocolo sem conexão, o que significa que ele não estabelece uma conexão antes de enviar os dados.
Desempenho: O UDP não verifica erros ou a entrega dos dados. Essa falta de sobrecarga de processamento torna o UDP um protocolo mais rápido, sendo ideal para aplicações que exigem velocidade, como streaming de vídeo, jogos online e chamadas de voz.
Eficiência: O UDP é mais eficiente que o TCP, pois não tem o mesmo nível de controle de fluxo e erro.
Entrega não garantida: O UDP não garante que os pacotes chegarão ao destino. Se um pacote for perdido, ele não será retransmitido.

1.Arquiteturas e camada de aplicação





Camada de Aplicação



Atualmente, as redes de computadores estão presentes no cotidiano das pessoas, permitindo a interação e a realização de diversas tarefas.

Em relação às redes de comunicação, você já ouviu falar no trabalho da camada de aplicação?

Vamos analisar os conceitos estudados na prática? Veja o caso a seguir.

Exemplo

Quando realizamos uma compra com cartão de crédito ou débito em um estabelecimento comercial, é fundamental a existência de uma rede de comunicação, já que ela será o alicerce para execução da operação. Ao inseri-lo na máquina de cartão, precisamos colocar uma senha para confirmar a operação. Tal dado é inserido no sistema por meio de um software executado nessa máquina.

Nesse caso, o software é executado na camada de aplicação!

O software de aplicação, também conhecido como software aplicativo, é nossa interface com o sistema (e, por consequência, com toda a rede de comunicação que suporta essa operação). Portanto, sempre que houver um serviço na rede, virá à mente a interface com ele.

Outros exemplos de software de aplicação:

Navegador Web - Clientes de E-mail - Jogos executados na Web

Ressaltamos que a camada de aplicação é aquela de mais alto nível do modelo OSI, fazendo a interface com os usuários do sistema e realizando as tarefas que eles desejam.



Arquiteturas e camada de aplicação



Arquitetura Cliente Servidor
Utilizando a arquitetura Cliente – Servidor





Cliente-servidor

Nesta arquitetura, há pelo menos duas entidades: um cliente e um servidor. O servidor executa operações continuamente aguardando por requisições do(s) cliente(s). O mais comum, é que hajam diversos clientes e um único servidor. A figura abaixo ilustra a situação.






Quando um dos clientes precisa que o trabalho seja realizado pelo servidor, ele monta uma mensagem, especificando o que deve ser realizado. A mensagem normalmente contém dados que devem ser processados pelo servidor.
Quando a mensagem está montada, é enviada ao servidor por intermédio de algum sistema de comunicação (internet). Este recebe a mensagem, processa seu conteúdo e envia a resposta ao cliente.
O servidor comporta-se passivamente, normalmente limita-se a aguardar solicitações, e quando estas chegam, processa as mensagens com os dados necessários e enviar o resultado do processamento de volta a seus clientes.



Servidor


Quando chega uma solicitação, o servidor pode:
Atender imediatamente caso esteja ocioso.

Gerar um processo-filho para o atendimento da solicitação.
Enfileirar a solicitação para ser atendida mais tarde

Criar uma thread para esse atendimento.
Independentemente do momento em que uma solicitação é processada, o servidor, no final, envia ao cliente uma mensagem contendo o resultado do processamento.

Quem utiliza esse tipo de arquitetura é a aplicação web.

Vamos analisar esse processo no exemplo a seguir.






Arquitetura Peer-to-peer
Utilizando a arquitetura Peer-to-Peer


Peer-to-peer

Enquanto existe uma distinção bem clara entre os processos que trocam informações na arquitetura cliente-servidor, na peer-to-peer – também conhecida como arquitetura P2P –, todos os processos envolvidos desempenham funções similares.

Em geral, nesses sistemas, os processos não são uma propriedade de corporações. Quase todos os participantes (senão todos) são provenientes de usuários comuns executando seus programas em desktops e notebooks.

Tanto o processamento quanto o armazenamento das informações são distribuídos entre os hospedeiros. Isso lhes confere maior escalabilidade em comparação à arquitetura cliente-servidor.

Saiba Mais

Hospedeiro, também conhecido como host, o hospedeiro é qualquer equipamento conectado à rede capaz de trocar informações com outros equipamentos. Exemplos: computadores, roteadores, impressoras de rede, smartphones etc.

Modelo de arquitetura peer-to-peer: Na ordem, 1, 2 e 3, o fluxo de informações e como elas se organizam.








2.Serviços da camada de aplicação





Protocolos da Camada de Aplicação



Conforme estudamos, é na camada de aplicação que são executados os processos dos usuários. Nos processos em que eles interagem, realiza-se o que seus usuários esperam. Porém, para que uma aplicação possa trocar dados com outra, é necessário definir um protocolo de aplicação. Mas o que é um protocolo da camada de aplicação?

Comentário

Um protocolo de camada de aplicação define como processos de uma aplicação, que funcionam em sistemas finais diferentes, passam mensagens entre si. Em particular, um protocolo de camada de aplicação define (KUROSE; ROSS, 2013):

• Os tipos de mensagens trocadas, por exemplo, de requisição e de resposta;
• A sintaxe dos vários tipos de mensagens, tais como os campos da mensagem e como os campos são delineados;
• A semântica dos campos, isto é, o significado da informação nos campos;
• Regras para determinar quando e como um processo envia e responde mensagens.


Enquanto o algoritmo da camada de aplicação determina seu funcionamento no ambiente local, o protocolo dela estipula tudo que é necessário para que aplicações em diferentes hospedeiros possam trocar mensagens de maneira estruturada.

Os protocolos públicos da internet são especificados por RFCs. Desse modo, qualquer pessoa é capaz de acessar as especificações de tais protocolos e implementar os próprios softwares.

Para que possamos compreender melhor o funcionamento das camadas de aplicação, analisaremos aquela aplicada na Internet, afinal, trata-se de uma rede de abrangência mundial presente no dia a dia de milhões de pessoas.

Camadas de Aplicação na Internet



Serviços da Camada de Aplicação



Já sabemos como funciona a arquitetura do serviço eletrônico. Assista agora a este vídeo para compreender o trabalho dos protocolos de envio SMTP, POP3 e IMAP.



Serviço Web (Protocolo HTTP)


Implementado pelo protocolo HTTP, que muita gente confunde com a própria Internet.

Serviço de Correio (Protocolos SMTP, IMAP e POP)


Serviço do correio eletrônico.

Serviço de Nomes (DNS)


Sistema de resolução de nomes DNS.

Serviço WEB

HTTP (serviço web)



Protocolo HTTP


Definido pelas RFCs 1945 e 2616, o HTTP (Hypertext Transfer Protocol) é o protocolo padrão para transferência de páginas web na internet.

Em 1991, a web foi idealizada no CERN como uma forma de fazer com que grupos de cientistas de diferentes nacionalidades pudessem colaborar por meio da troca de informações baseadas em hipertextos. Em dezembro daquele ano, foi realizada uma demonstração pública na conferência Hypertext91.

Saiba Mais

RFCs
Ao longo do conteúdo, serão apresentados alguns RFCs (Request for Comments); para acessar o conteúdo referente a cada um, procure na sessão Explore + no final dos seus estudos!

CERN
Sigla originada do francês Conseil Européen pour la Recherche Nucléaire (em português, Organização Europeia para a Pesquisa Nuclear). Trata-se de um laboratório de física de partículas localizado em Meuyrin, que fica na fronteira franco-suíça.

Hipertextos
Documentos construídos com o objetivo de possuir alguns objetos, como palavras, imagens etc. Quando acionados – geralmente, com um clique do mouse –, eles buscam outros documentos que podem (ou não) ser hipertextos.

Hypertext 91
“A conferência sobre hipertexto e hipermídia reúne acadêmicos, pesquisadores e profissionais de diversas disciplinas para considerar a forma, o papel e o impacto do hipertexto e da hipermídia em um fórum de discussão de ideias, design e uso de hipertexto e hipermídia em vários domínios. A conferência também considera o poder transformador da hipermídia e sua capacidade de alterar a maneira como lemos, escrevemos, argumentamos, trabalhamos, trocamos informações e nos divertimos.”
(ACM HYPERTEXT 91 CONFERENCE, 1991, tradução nossa) Esse protocolo é constituído de duas etapas:
Etapa 1
Uma página web típica é um documento em formato HTML que pode conter imagens e outros tipos de objetos, como vídeos, texto, som etc.

Para exibir determinada página web, o usuário digita no browser o endereço no qual ela se encontra (ou clica em um hiperlink para essa página), indicando o local em que deve ser buscada. Para que uma página seja transferida do servidor até o browser, um padrão deve ser seguido pelos softwares (cliente e servidor). Ele especifica como o cliente solicita a página, e o servidor a transfere para o cliente.
Etapa 2
Esse padrão é o protocolo HTTP. A mensagem HTTP, por sua vez, é carregada pelo outro protocolo: TCP.
Uma interação entre cliente e servidor se inicia quando o cliente envia uma requisição a um servidor. A solicitação mais comum consiste em:

Enviar um texto em formato ASCII.
Iniciar com a palavra GET.
Inserir página solicitada, protocolo utilizado na transferência e servidor a ser contatado.

Saiba Mais
ASCII Do inglês American Standard Code for Information Interchange (código padrão americano para o intercâmbio de informação), essa sigla trata de um código binário que codifica um conjunto de 128 símbolos, incluindo: Sinais gráficos;Letras do alfabeto latino;Sinais de pontuação;Sinais matemáticos;Sinais de controle.

Funcionamento do serviço Web





Serviço de correio eletrônico
Correio Eletrônico (e-mail)



Trouxemos um exemplo para esclarecer essa questão:
Os primeiros sistemas de correio eletrônico foram concebidos como um simples sistema voltado para a troca de arquivos. O destinatário da mensagem era especificado na primeira linha do texto.
Bastava então que o sistema procurasse ali para quem a mensagem deveria ser entregue. Porém, com o passar do tempo, surgiram novas necessidades que dificilmente eram atendidas por ele.



Em 1982, ainda na era da ARPANET, foram publicadas as RFCs 821 e 822, definindo, respectivamente, o protocolo de transmissão a ser utilizado e o formato da mensagem. Entretanto, apesar de ambas resolverem o problema inicial a que se propunham, elas especificavam que todo o texto deveria ser composto pelo código ASCII.

Tal restrição precisava ser resolvida para ser possível o envio de mensagens:
Em alfabetos não latinos.
Em idiomas sem alfabetos.
Que não contêm textos multimídia, como, por exemplo, áudio e vídeo.
Com caracteres acentuados.
Para resolver esses novos problemas, foi criada uma solução denominada Multipurpose Internet Mail Extensions (MIME).
O MIME contina utilizando o formato da RFC 822, mas passou a incluir uma estrutura para o corpo da mensagem e definir regras para as mensagens especiais.

Essa estratégia fez com que tais mensagens pudessem ser enviadas graças à utilização de protocolos e programas de correio eletrônico existentes, havendo somente a necessidade de alterar os programas de envio e recebimento. Atualmente, o protocolo de transmissão simple mail transfer protocol (SMTP) é definido pela RFC 5321, enquanto o formato da mensagem o é pela RFC 5322.

Como é construída a arquitetura do correio eletrônico?

A arquitetura do sistema de correio eletrônico é construída com base em dois agentes:
1 Do usuário

2 De transferência de mensagens


O agente do usuário é o programa que faz a interface do usuário com o sistema de correio eletrônico.É por meio dele que o usuário:
Faz o envio e o download de mensagens e anexos.
Lê as mensagens.
Realiza a pesquisa, o arquivamento e o descarte de mensagens.
Escreve suas mensagens.
Anexa arquivos.




Já os agentes de transferência de mensagens são os responsáveis por fazer com que elas cheguem até o destino. Eles são mais conhecidos como servidores de correio eletrônico.




Para entendermos melhor o assunto, analisaremos a seguir a comunicação entre Orlando e Maria. Esse caso explicita uma arquitetura do sistema de correio eletrônico:




A partir da numeração presente na imagem anterior, continuaremos com o exemplo:
Orlando deseja enviar uma mensagem para Maria. Após a compor em seu agente do usuário, ele solicita seu envio para ela. A mensagem é enviada do agente do usuário de Orlando até seu agente de transferência de mensagens, que a recebe, analisa e, em seguida, encaminha-a ao agente de Maria. No destino, tal agente armazena as mensagens que chegam em um local conhecido como caixa de mensagens (mailbox), onde cada usuário do sistema possui uma caixa própria. Quando Maria deseja ler suas mensagens, o agente do usuário dela se liga a seu agente de transferência de mensagens e verifica quais estão armazenadas em sua caixa de mensagens.

Funcionamento do correio eletrônico





Para concluirmos esse estudo, analisaremos importantes características dos protocolos apresentados:

SMTP

O protocolo responsável pela transferência da mensagem até seu destino é o SMTP. Definido pela RFC 5321, ele utiliza o protocolo de transporte TCP, obtendo, assim, a garantia de que ela será entregue no destino sem erros.
O servidor SMTP aguarda por conexões de seus clientes. Quando uma conexão é estabelecida, o servidor inicia a conversação enviando uma linha de texto na qual se identifica e informa se está pronto (ou não) para receber mensagens. Se ele não estiver, o cliente deverá encerrar a conexão e tentar novamente mais tarde.
Caso o servidor esteja acessível, o cliente precisa informar aos usuários a origem e o destino da mensagem. Se o servidor considerar que se trata de uma transferência válida, sinalizará para que ele a envie. Após o envio, o servidor confirma sua recepção e a conexão é encerrada.

Exemplo
Retomando o caso da comunicação anterior, podemos ver, na sequência apresentada adiante, a conversação entre cliente e servidor para estabelecer a transferência da mensagem de orlando@origem.net para maria@destino.net:

Como o SMTP é responsável somente pela entrega da mensagem no servidor destino, isso requer a utilização de outro protocolo de modo que o cliente possa buscar suas mensagens no mailbox.

POP3

A RFC 1939 estipula que o POP3 (Post Office Protocol version 3) tem a finalidade de fazer o download das mensagens que se encontram no mailbox do usuário para o sistema local. Caso estejam neste sistema, ele pode utilizá-las em qualquer momento, mesmo sem ter conexão com a internet.
O POP3 é implementado na maioria dos agentes de usuário. Basta configurar os parâmetros de conta e senha do usuário para que o agente faça o download das mensagens. Ele permite o download seletivo delas, assim como apagar as selecionadas no servidor.

IMAP

Assim como o POP3, o IMAP (Internet Message Access Protocol) permite que um usuário tenha acesso às mensagens armazenadas em sua caixa. Porém, enquanto o POP3 é baseado na transferência delas para o sistema local a fim de serem lidas, o IMAP consegue permitir sua leitura diretamente no servidor, dispensando, portanto, a transferência para o sistema local.
Isso será particularmente útil para usuários que não utilizarem sempre o mesmo computador, pois permite que suas mensagens sejam acessadas a partir de qualquer sistema. Definido pela RFC 3501, o IMAP também fornece mecanismos para criar, excluir e manipular várias caixas de correio no servidor.
Atenção Um webmail não é um protocolo, mas uma forma oferecida por alguns sites da web a fim de que os usuários possam ler suas mensagens de correio eletrônico.
Para usar o sistema, o usuário abre uma página web, na qual entra com uma identificação e uma senha. A partir desse momento, ele tem acesso imediato às suas mensagens (de forma parecida com a de um cliente IMAP).

Serviço de Nomes





DNS

A comunicação entre hospedeiros na internet ocorre por meio de endereços binários de rede. Afinal, para se comunicar com um destino, o hospedeiro precisa conhecer seu endereço.
Entretanto, é bem mais fácil trabalhar com nomes de hospedeiros do que com seus endereços de rede. Além de ser muito difícil conhecer todos os endereços dos hospedeiros com os quais precisamos trabalhar, precisaríamos ser notificados toda vez que algum deles mudasse de endereço.

Para resolver esse problema, foi desenvolvido o Domain Name System (DNS). Sua finalidade é a criação de um sistema de nomes de forma hierárquica e baseada em domínios. Para acessar um hospedeiro, portanto, basta conhecer seu nome de domínio e fazer uma consulta ao servidor DNS, que é responsável por descobrir seu endereço.
Quais são os serviços oferecidos por ele?

Comentário
Além do mapeamento de nomes de hospedeiros em endereços IP, o DNS ainda provê:

• Identificação de servidores de correios eletrônicos;
• Apelidos para hospedeiros;
• Distribuição de carga;
• Descoberta de nomes de hospedeiros (mapeamento reverso).

Destacaremos nos tópicos a seguir dois importantes aspectos do DNS.

Espaços de Nomes
O espaço de nomes do DNS é dividido em domínios estruturados em níveis. Confira a organização do primeiro nível:



Veja a seguir a diferença entre os domínios genéricos e de países, bem como alguns breves exemplos desses domínios.

Domínios genéricos


Informam o tipo de organização ao qual o domínio está vinculado. Alguns exemplos são:

.com = comercial;
.edu = instituições educacionais;
.int = algumas organizações internacionais;
.org = organizações sem fins lucrativos.
Cada domínio tem seu nome definido pelo caminho entre ele e a raiz, enquanto seus componentes são separados por pontos.

Domínios de Países



Possuem uma entrada para cada país. Alguns exemplos são:

.br = Brasil;
.pt = Portugal;
.jp = Japão;
.ar = Argentina.
Cada domínio tem seu nome definido pelo caminho entre ele e a raiz, enquanto seus componentes são separados por pontos.
Cada domínio controla como são criados seus subdomínios. Para a criação de um novo domínio, é necessária apenas a permissão daquele no qual será incluído.
Não há qualquer restrição sobre a quantidade de subdomínios que podem ser criados dentro de um domínio. Os nomes de domínio não fazem distinção entre letras maiúsculas e minúsculas.
EDU e edu, por exemplo, são o mesmo.

Os nomes de componentes podem ter até 63 caracteres, enquanto os de caminhos completos não podem ultrapassar os 255.
O DNS é implementado sobre o protocolo UDP (User Datagram Protocol). Trata-se de um protocolo do nível de transporte que não garante a entrega dos dados no destino. Dessa forma, cabe ao software DNS garantir uma comunicação confiável.

Resolução de Nomes

O espaço de nomes do DNS é dividido em zonas. Independentes, elas possuem um servidor de nomes principal e pelo menos um de nomes secundário:
Servidor de nomes principal
Configurado com as informações das zonas sob sua responsabilidade, ele faz o repasse delas para os servidores de nomes secundários.
Servidor de nomes secundário
Responde pelas zonas caso haja uma falha do servidor de nomes principal.
As zonas do DNS definem o que um servidor deve resolver. Se ele for o responsável pela zona pesquisada (servidor autoritativo), deverá fazer a resolução solicitada.

Três principais componentes do DNS



Registros de recursos armazenados em um banco de dados distribuído;
Servidores de nomes DNS responsáveis pela manutenção de zonas específicas;
Solucionadores DNS em execução nos clientes.

Solucionador X servidor DNS



Quando um solucionador solicita a resolução de um nome para o servidor DNS, pode acontecer o seguinte:

O servidor DNS é o responsável pela zona: O servidor resolve o nome solicitado e o devolve ao solucionador;
O servidor DNS não é o responsável pela zona, mas possui a resolução em cache: O servidor envia a resolução ao solucionador;
O servidor DNS não é o responsável pela zona nem possui a resolução em cache: O servidor precisa realizar uma busca para resolver o nome.
Vamos entender como é feita a busca para a resolução do nome www.sus.gov.br:

Funcionamento do DNS








A partir da numeração presente na imagem anterior, continuaremos com o exemplo:
Quando a aplicação do cliente solicita a resolução do nome www.sus.gov.br, o solucionador envia a requisição para o servidor de nomes local, que é o responsável por tratá-la até obter a resposta completa. Desse modo, ele não retorna respostas parciais para o solucionador. A esse tipo de consulta damos o nome de consulta recursiva.
Para obter a resposta completa, o servidor de nomes precisa realizar uma série de iterações com outros servidores. Caso nenhuma informação parcial esteja em seu cache, o servidor local primeiramente precisa descobrir quem é o servidor responsável por resolver o domínio br. Para isso, ele consulta um servidor de nomes raiz, que indica onde o servidor DNS de “br” pode ser encontrado. O servidor local continua realizando consultas para resolver cada domínio parcial até que haja uma resolução completa. Esse tipo de consulta é conhecido como consulta iterativa.
O excesso de consultas em um servidor DNS pode levar à sobrecarga.
Como evitar esse tipo de problema?

Comentário

Os servidores devem evitar responder consultas recursivas de clientes não autorizados. Para isso, os administradores de servidores DNS precisam configurar no servidor aqueles autorizados a realizar consultas recursivas. Dessa forma, se houver a consulta de um que não esteja, ela automaticamente será negada.