Você está na página 1de 15

Aula 3 – FDC Camadas de Aplicação e Transporte

Estudar as camadas de Aplicação e Transporte do modelo OSI.

Objetivos

Módulo 1: Reconhecer as Arquiteturas de Aplicações

Módulo 2: Identificar aos principais serviços oferecidos pela camada de Aplicação

Módulo 3: Localizar os elementos da camada de Transporte.

Módulo 4: Comparar os serviços oferecidos pela camada de transporte

Módulo 1

Camada de Aplicação

Qualquer tipo de software ou equipamento que nos de acesso a comunicação de rede, é


camada de aplicação.

Redes de computadores estão no cotidiano das pessoas. Elas permitem interações e


realizações de várias tarefas.

Software aplicativo é nossa interface com o sistema.

Modelo OSI: protocolo de interconexões de sistemas abertos. 7 camadas e interfaces nela,


trocando informações.

Com o modelo OSI cada um pode fornecer seu serviço específico dentro de x camada, gerando
vários fornecedores, competividade e liberdade ao cliente em escolher o produto. Adequando
sua rede com o que quer.

Arquitetura TCP/IP: inicialmente uma rede que se comunicava com bases militares no país.
Sobrevivendo qualquer evento, como guerra nuclear, sabendo se reconfigurar, encontrar
novos caminhos e funcionar de forma eficiente.

Protocolo nível de rede IP, função: encontrar os caminhos na rede e chegar ao seu destino.

Protocolo de transporte (TCP): dar confiabilidade. Tornando o caminho que o IP dará seguro.

Rede: fornecer serviço ao usuário. Estruturado em camadas, e cada camada fornece serviços à
camada superior.

Camada de Aplicação: fornece mecanismo para o Dev desenvolver aplicações. Funcionar como
Interface. Ponto de Entrada para os usuários. São executados os processos dos usuários.

Software aplicação: interface do sistema. Todo serviço na rede tem a interface.


Ex: Navegadores Web, cliente de e-mail, jogos na rede.

Mais alto nível do modelo OSI, faz interface do sistema com o usuário.
Arquiteturas de Aplicações

Uma aplicação a ser executada em rede tem que possuir comandos/funções para comunicação
em rede pela linguagem de programação.

Comandos/funções estão na biblioteca nativa da linguagem ou criada por terceiros.


Antes de definir a linguagem de programação, tem que se definir a sua arquitetura. Duas de
umas das mais destacadas são: Cliente-servidor e Peer-to-peer (P2P).

Como funciona, basicamente?

Cliente-servidor – arquitetura de aplicação distribuída. Onde os servidores fornecem os


serviços/recursos e o cliente que requerem ou solicitam esses serviços.

Cliente: solicita um serviço, mensagem enviada ao servidor. Enquanto o cliente aguarda a


resposta, ele está livre para realizar outras tarefas.

Servidor: oferece serviço, executando tarefas solicitadas, enviando uma resposta ao cliente.
Atender o requerimento caso esteja ocioso; Gerar um processo-filho(processo se duplica e
entrega sua cópia) para ser atendida mais tarde; Enfileirar a solicitação para ser atendida mais
tarde; Cria thread para o atendimento.

Vantagens: Recursos centralizados e Maior facilidade de manutenção.

Desvantagens: Sobrecarga e Único nó.

Exemplo de Arquitetura cliente-servidor

Comunicação entre o browser e um site que possui um servidor para processamentos de


banco de dados ou outros relacionados. O browser vai ser a interface da aplicação. Você vai
digitar no google o que quer procurar (solicitar serviço), a partir disso, o servidor vai processar
o pedido requerido (tarefa) e depois enviar a resposta para o cliente, que seria as respostas
das pesquisas.

As aplicações web utilizam esse tipo de arquitetura.

A função desempenhada define quem é o cliente e o servidor, e não o tipo de equipamento.

É recomendável servidores terem alto MTBF (mais confiável o dispositivo, evitando falhas). O
tipo de software instalado define se é cliente ou servidor. Um processo pode atuar como
cliente e servidor ao mesmo tempo.
As vezes o servidor vai precisar pegar uma informação em um BD externo. Ele enviará uma
mensagem ao servidor de BD. Atuando como cliente do servidor de bd.

Peer-to-peer – parecido com o Cliente-servidor, porém os processos não pertencem a alguma


organização. Quase todos(ou todos) vem de usuário comuns com seus programas em
computadores e laptops.

Processamento e armazenamento de informações são distribuídos pelos hosts(hospedeiros).


Host: qualquer equipamento conectado à rede capaz de trocar informações com outros
equipamentos. Ex: computadores, roteadores, smartphones, impressoras de rede etc.

Exemplo: Você conhece algum tipo de sistema de compartilhamento utilizado na internet? Em


qual tipo de arquitetura ele está fundamentado?

Uma aplicação amplamente utilizada na internet é o sistema de compartilhamento de arquivos


BitTorrent.

Baseado na arquitetura peer-to-peer, este sistema permite que seus usuários compartilhem
arquivos sem haver a necessidade de eles estarem armazenados em um servidor.

Na arquitetura peer-to-peer, todas as entidades desempenham a mesma função, possuindo


igual capacidade de armazenamento das informações do sistema. Dessa forma, uma
informação procurada pode estar com qualquer um dos participantes da rede, estando
distribuída por todo o sistema.

Módulo 2

Identificar os principais serviços oferecidos pela camada de aplicação.

Protocolos da Camada de Aplicação

Camada aplicação que são executados os processos dos usuários.

Para que uma aplicação possa trocar dados com a outra, é necessário definir um protocolo de
aplicação.

Protocolo de camada de aplicação define como processos de uma aplicação passa mensagens
entre si(sistemas diferentes).

Protocolo de Camada de Aplicação define:

 Tipos de mensagens trocadas. Ex: de requisição e de resposta;


 Sintaxe dos tipos de mensagens, como os campos de mensagem.;
 Semântica dos campos;
 Regras que determinam quando e como um processo envia e responde as mensagens.

Algoritmo da camada de aplicação dita o que fazer no ambiente local, o seu protocolo diz o
que é necessário para a aplicação trocar mensagens.

Protocolos públicos da internet são especificados por RFCs (Documentos públicas guardados
pela IETF, internet enginnering task force, grupo que identifica e propõe soluções a internet,
propõem padronização de tecnologias e protocolos. Qualquer pessoa pode acessar as
especificações dos protocolos e modificar, adicionar os próprios softwares.

Camadas de Aplicação na Internet

Três (3) importantes aplicações na internet.

HTTP, Correio Eletrônico (e-mail) e DNS: sistema de resolução de nomes DNS

HTTP (Hypertext Transfer Protocol): protocolo HTTP, serviço web. Protocolo padrão para
transferência de arquivos que compõem páginas web. Por meio dele que os dados transferem
entre você e os servidores.
Em 91, CERN idealizou uma maneira de diversos cientistas colaborarem por meio de
informações em hiterpextos. Conferência de Hypertext 91, demonstração pública.

Como funciona?
Etapa 1: Página web, documento em HTML. Pode conter imagens, vídeos(com ou sem som),
áudios etc. Se entra em uma pág web através de um hiperlink ou digitando. Para isso ocorrer,
tem o protocolo Cliente-servidor, onde um solicita o serviço, outro oferece o serviço e analisa
a solicitação.

HTTP é carregado pelo protocolo TCP, para garantir a chegada dos dados livre de problemas.

Solicitações:
Textos em formato ASCII(sinais gráficos, letras, pontuação, símbolos).
Inicia-se com a palavra GET(o host);
Insere página solicitada, protocolo e servidor a ser contatado.

Ao receber a solicitação, o servidor busca a página web solicitada, a transfere para o cliente e,
após confirmada a entrega, encerra a conexão.
TCP tem vários protocolos, por isso o cliente informa a versão quando for usar

Como o HTTP utiliza o TCP, não é necessário se preocupar com questões de confiabilidade na
entrega dos dados. Ele é um protocolo em constante evolução, havendo atualmente várias
versões em uso. Por isso, o cliente deve informar a versão do protocolo a ser usado quando
solicita uma página web.
Correio Eletrônico (E-mail)

Inicialmente como um simples sistema de troca de arquivos.


Deficiências:

Alfabetos não latinos;


Idiomas sem alfabetos;
Não contém multimídia como áudio e vídeo;
Caracteres acentuados.

MIME (Multipurpose internet Mail Extensions) solucionou esses problemas. Usa o formato RFC
822, nova estrutura para o corpo da msg, definiu outras regras para mensagens especiais.

Protocolo de Transmissão Simple Mail Transfer Protocol (SMTP) definido pela RFC 5321,
enquanto o formato da mensagem é pela RFC 5322.

Arquitetura do Correio Eletrônico - é constituída com base de dois agentes:

1 – Agente do Usuário: programa que faz a interface do usuário com o sistema de correio
eletrônico.

Usuário pode: fazer envio/baixar mensagem, baixar anexos;


Ler as msg; Pesquisa, arquiva e descarta msg; Escreve msg; Anexa arquivos.
Exs de programas: Mozilla Thunderbird, Microsoft Outlook, Eudora.

2 – Agente de Transferência de Mensagens: responsável por fazer com que a mensagem


chegue ao destinatário. Conhecidos também como “servidores de correio eletrônico”. Exs:
postfix, Zimbra, Exchange.

Exemplo prático:

Usuário1 escreve sua mensagem em seu Agente do Usuário e envia a mensagem. Do Agente
do Usuário, vai para o Agente de Transferência de Mensagem, que recebe e analisa a
mensagem, para mandar ao Agente de Usuário de Usuário2. Quando a mensagem chega ao
Agente de Usuário, ela fica armazenada em sua caixa de mensagem.

Protocolos importantes citados:

SMTP, POP3 e IMAP


SMTP: responsável pela transferência da mensagem até o seu destino, para envio de e-mails
automáticos, ex: “Olá! Recebemos o seu pedido...”. Email de boas-vindas, confirmações, de
pedidos/pagamentos etc. Definido pela RFC 5321, TCP para protocolo de transporte.

HTTPS: SEGURO, COM CRIPTOGRAFIA

POP3 (Post Office protocol Version 3): baixa as mensagens que estão no emailbox do
destinatário. Pode usar a mensagem caso ela estiver no mesmo sistema e offline. Permite
download seletivo.
IMAP(Internet Message Access Protocol): da acesso às mensagens guardadas em sua caixa
postal. IMAP permite a leitura das mensagens diretamente do servidor, sem precisar fazer
download.

WEBMAIL NÃO É PROTOCOLO, mas permite ler sua mensagem do emailbox diretamente do
site.

DNS: mapeia em nomes os hospedeiros em “formato” de endereços de IP. Ex: transforma


239.232.554.00 em hytale.com
Identifica servidores de correios eletrônicos;
Apelida para hospedeiros;
Distribuição de carga;
Descoberta de nomes de hospedeiros (mapeamento reverso).

Espaços de Nomes – Dividido em domínios estruturados em níveis.


Nível 1
Domínios genéricos, informa o tipo de domínio do site. Ex:
.com = comercial;
.edu = instituição educacional;
.int = organização internacional;
.org = organização sem fins lucrativos.

Domínios de países, ex:


.br = Brasil;
.pt = Portugal;
.jp = Japão;
.ar = Argentina;
.en = EUA.

Domínio controla a cria de subdomínios. Permissão do domínio principal para criar outro.
Pode ter vários subdomínios. Letra maiúsculas e minúsculas são os mesmos. Pode ter até 63
caracteres o componente, mas o caminho completo não pode passar de 255.

DNS implementado sobre o protocolo UDP (User Datagram Protocol), nível transporte, mas
não garante que os dados cheguem ao destino. DNS garante então, uma comunicação
confiável.
Resolução de Nomes – Espaços de nomes divididos em zonas e possuem um “servidor de
nomes”.

 Servidor de nomes principal: ele faz o repasse das zonas 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.

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.

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.

Resolução do nome www.sus.gov.br:


Solucionador vai solicitar a consulta de www.sus.gov.br no servidor local, caso não retorne
nenhuma resposta, é porque ele não achou o nome completo(caminho/url), conhecido como
Consulta Recursiva. Caso não ache no primeiro servidor, então ele vai solicitar em outros
servidores até a pesquisa ficar completa (Consulta Iterativa).

Excesso de consultas causa sobrecarga. Se evita isso recusando consultas recursivas de


clientes não autorizados. OS admins dos servidores configurarão isso.

Servidores de aplicações podem estar espalhados por todo o mundo, cada um deles com o
próprio endereço. Dessa forma, o protocolo da camada de aplicação não pode determinar em
qual endereço de rede o servidor está localizado.

O HTTP é o protocolo utilizado para transferência de páginas web. Ele não é usado como
protocolo de correio eletrônico.

Camada de Transporte

Promove um serviço confiável; ela faz comunicação entre as aplicações; Comunicação do tipo
lógica; não importa a distância, as aplicações podem ser comunicar, isso inclui roteadores,
switches, ISP’s, redes. Seus protocolos são implementados nos sistemas finais.

Segmento: a unidade de transporte da camada de transporte.


Eles carregam dados da camada de aplicação.

Essa camada pega dados (segmentos) da camada superior e, esses segmentos vão para a
camada de rede e inseridas em datagramas (bloco de informações).
Serão enviadas e irão se comunicar nos roteadores, enlaces e navegarão pela rede, estes que
leem os datagramas.

Quando os dados chegam, é o datagrama que será extraído ao usuário, pela rede do
destinatário, extração essa que traz consigo os segmentos, da camada de transporte, que vão
ser destinados aos processos corretos, por meio das informações do cabeçalho.

Serviço de Transporte

Camadas inferiores oferecem serviços as superiores, desse modo, a camada de Transporte


oferece seus serviços à camada de Aplicação

OBS: ESTAMOS USANDO COMO BASE, A ARQUITETURA TCP/IP, QUE NÃO CONTÉM AS
CAMADAS SESSÃO E APRESENTAÇÃO.

Um dos serviços oferecidos é um serviço n Orientado à Conexão e outro sem Conexão.

Para isso, ela utiliza serviços oferecido pela camada de Rede. Serviço de Transporte Orientado
à Conexão contém três fases:

Estabelecimento de Conexão > Transferência de Dados > Encerramento de Conexão


Serviço de Transporte com conexão: se o pacote chegar, ou não, com erro, faltando algo, ele
será retransmitido para que todos os dados cheguem corretamente.
Serviço de Transporte sem conexão: se tiver erro, vai ir com erro.

A rede oferece um serviço um protocolo que pode vir com erros pelo melhor desempenho, de
forma rápida e simples. O com conexão pode acontecer um “overhead” (sobrecarga no
sistema), pois se tiver erros, vai ficar retransmitindo, acumulando etc.

Transferências de arquivos e e-mails necessitam de um serviço orientado à conexão.

Telefonia em rede é melhor usar Serviço de Transporte sem conexão. É pior ter atraso na
transmissão.

Endereçamento: solicita algo a um servidor, sistema envia mensagem a aplicação, ela executa
em um host remoto.
Endereçamento no nível de transporte: determina o tipo de aplicação a mensagem vai ser
destinada.

Protocolos TCP e UDP da camada Transporte Arquitetura TCP/IP

Endereço de transporte: porta.

Modo alternativo: Servidor de Nomes ou Servidor de Diretórios. Uma aplicação estabelece


conexão com o servidor de nomes. Envie mensagem pedindo o nome do serviço. Servidor de
nomes retorna o endereço.

Multiplexação e demultiplexação

Oferece serviço de processo a processo nas aplicações executadas nos host(hospedeiros).

Multiplexação

Permite comunicações diferentes com diversos usuários, intercaladas (multiplexadas) na


mesma rede ao mesmo tempo.

Fornece meios para entregar e receber dados ao executar diversas aplicações.


Faz com que várias informações, de canais diferentes, sejam transportadas em um meio único,
sem que sejam misturadas, para depois demultiplexá-las na saída.

Um processo pode ter um ou mais endereços de transporte (portas), dados passam pela rede
para o processo.

Como o hospedeiro destino direciona à porta correta um segmento que chega?

Os segmentos possuem dados de endereçamento no cabeçalho. A camada receptora puxa


esses dados para identificar a porta receptora e direcionar o segmento a ela. Quem fica
responsável de entregar o dados dentro dos segmentos para a porta correta, se chama
DEMULTIPLEXAÇÃO, hospedeiro destinatário.

Multiplexação, no hospedeiro origem:

Reúne dados de originais de diferentes portas;

Encapsular dados com as informações de cabeçalho (usadas, posteriormente, na


demultiplexação) para criar segmentos;

Passar os segmentos para a camada de rede.

Como o TCP sabe quem é quem?

Os processos precisam se registrar em uma porta do protocolo TCP. Servidores já possuem


portas conhecidas por ele, menos programas adjacentes, de clientes, estes se registram em
portas aleatórias.

TCP pode identificá-las. Quando o browser envia uma solicitação a um servidor web, o TCP
coloca na informação enviada o número de porta 11278.
Módulo 4

Comparar os serviços oferecidos pela camada de transporte.

PROTOCOLOS DE TRANSPORTE DA INTERNET: TCP e UDP

UDP: simples e ótimo quando a aplicação requer uma entrega rápida. Trás boa agilidade de
entrega.

TCP (Protocolo de transporte completo): Garante que as mensagens sejam entregues livres de
erros, em ordem, dando confiabilidade, não importando qualidade da rede.

UDP - se limita a receber mensagens da camada de aplicação e as entregar diretamente na de


rede.

Cabeçalho de um segmento UDP:

Porta origem e destino: identificar os processos nas máquinas origem e destino. Quando uma
aplicação A deseja enviar dados para uma B, o UDP coloca o número da porta da aplicação
origem (A) no campo “porta origem” e o de porta da aplicação (B) em “porta destino”. É por
meio disso que o UDP realiza a multiplexação e demultiplexação.

Tamanho: tamanho do segmento, que é de 16bits. Maior segmento 2^16 = 65bytes


(64KBytes).

Soma de verificação: garante que a mensagem chegue livre de erros.

“Para tanto, o UDP calcula o CRC dela e o envia neste campo. No destino, o CRC é novamente
calculado e comparado. Se ambos forem iguais, a mensagem é considerada livre de erros e
entregue na aplicação destino.”.

UDP: protocolo sem estado(protoc e não orientado à conexão.

Aplicações que utilizam UDP podem ter garantia de entrega. Programador cuida disso.

Protocolos de aplicações que utilizam o UDP:

 DNS
 SNMP
 TFTP
 RPC

TCP: orientado a conexão, para aplicações para trocar grandes quantidades de dados por meio
de uma rede com múltiplos roteadores.

Oferece fluxo de bytes, pode ser usado em redes de baixa qualidades, pode dividir até
64Kbytes em datagrama IP diferentes. Quando eles chegam com dados TCP ao hospedeiro
final, TCP restaura o seu fluxo ao original.

O TCP administrar os temporizadores e retransmitir os datagramas sempre que for necessário,


já que sem ele, não há garantias de entregas corretas.

Definido pelas RFC’s: 793, 2018, 1122, 2581 e 1323.

TCP tem 3 aspectos fundamentos:

Modelo de Serviço TCP, Cabeçalho de Segmento TCP e Gerenciamento de Conexão TCP

Modelo de Serviço TCP:

Hospedeiro de origem e destino criam portas, identificados por um número de 16bits.

Conexão TCP

Full-duplex: pode ser recebido ou enviado simultaneamente.

Linha telefônica por exemplo, 2 conexões simultâneas.

Walkie talk não, manda depois recebe.

Ponto a Ponto: ligação direta entre 2 hospedeiros apenas. Ex: celular conextar-se em um pc.
Apenas eles podem se falar por meio do cabo de dados para trocar informações.

Uma conexão TCP é um fluxo de dados, e não de mensagens. Caso aplicação manda dados
para a entidade TCP, ela pode enviar logo ou guardar em um buffer (aloca dados na memória
temporária).

TCP transmissoras e receptoras trocam dados na forma de segmentos. Contém cabeçalhos


com 20bytes. TCP decide o tamanho dos segmentos.
Janela Deslizante: transmissor envia segmentos mesmo sem ter a confirmação dos segmentos
chegados anteriormente. Essa janela tem um limite o transmissor parar de transmitir, mas
conforme o receptor vai confirmando os segmentos, a janela vai se deslocando, liberando
espaço, desloca-se no sentido do fluxo de dados. Protocolos que utilizam janelas de
transmissão, são conhecidos por Janela de Deslizante.

Quando envia um segmento, aciona um temporizador, caso não haja confirmação do TCP
receptora, para retornar um segmento, o segmento transmissor será retransmitido.

Selective Repeat: repetição repetitiva. Ex: se tiver 3 falhas e elas são reconhecidas, select vai
retransmitir.

Go back n: sempre que houver um erro, e o transmissor perceber esse erro, ele volta todos os
dados e transfere tudo novamente. Transferência maior de dados.

Cabeçalho TCP: formato fixo de 20bytes com opções. Depois das opções, pode ter 65.515
bytes de dados.
Conexões TCP usam o método “three way handshake”. De um lado espera e do outro, solicita
uma conexão especificando o endereço de rede (IP) e a portal com a qual quer se conectar.
TCP bitSYN, bit ACK, bit RST

Os segmentos SYN e SYN+ACK não podem transportar dados, porém consomem um número
de segmento.

Apesar de conseguir fazer esse transporte, ACK só consumirá tal número quando ele surgir.

Encerrar conexão é só enviar um segmento com bit FIN ativado. Os dados continuarão fluindo
em outra direção. Quando as duas direções da conexão são desativadas, ela, por fim, é
encerrada.

Portas Conhecidas: Aplicação acessar outra, remota, tem que conhecer o endereço do
hospedeiro. Como o protocolo de transporte do destino consegue saber para qual de suas
aplicações deve entregar a mensagem? A resposta é o conceito de porta, que é responsável
por identificar a aplicação no destino.

Identificar porta

2 saídas:

1-

Você também pode gostar