Tema 3 - Camadas de Aplicação e Transporte
Tema 3 - Camadas de Aplicação e Transporte
Tema 3 - Camadas de Aplicação e Transporte
Descrição
Estudo das camadas de aplicação e transporte do modelo OSI, além da compreensão dos
serviços oferecidos por cada camada. Identificação da arquitetura utilizada no
desenvolvimento de aplicações, com destaque para as principais disponíveis na camada da
internet. Análise dos elementos de suporte dos serviços de transporte com e sem conexão
nessa camada.
Propósito
Módulo 1
Módulo 2
Módulo 3
Módulo 4
meeting_room
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.
A Aplicação
Camada de Aplicação
Navegador web
Cliente de e-mail
Jogos executados em rede
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.
odelo OSI
O modelo OSI (Open System Interconnection) foi criado pela International Organization for
Standardization (ISO) com o objetivo de ser um padrão para a construção de redes de
computadores. O OSI divide a rede em sete camadas: cada uma realiza funções específicas
implementadas pelo protocolo da camada. Desse modo, elas prestam serviços para a camada
superior.
Arquiteturas de Aplicações
Cliente-servidor
Cliente-servidor
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.
Servidor
rocesso-filho
Um processo é um programa em execução que inclui sua região de memória, os valores das
variáveis e seu contexto de hardware. Um processo-filho é criado quando determinado
processo se duplica em memória e entrega à sua cópia (seu filho) uma tarefa a ser executada.
hread
Linhas de execução independentes que executam concorrentemente dentro de um processo.
Quando funções são executadas como threads dentro dele, isso é feito de forma concorrente,
compartilhando objetos e variáveis.
Quando você clica no link da receita, seu browser envia uma mensagem ao
servidor indicando qual delas você quer.
Ele faz então o processamento solicitado e devolve ao browser o resultado
disso (sua receita).
Atenção!
O que determina se uma entidade é cliente ou servidor é a função desempenhada pelo
software, e não o tipo de equipamento.
É fundamental saber que servidores desempenham uma função muito importante; por isso,
há equipamentos apropriados para eles, com MTBF alto e recursos redundantes.
TBF
Do inglês Mean Time Between Failures (ou período médio entre falhas), esSa sigla indica o
tempo esperado até que ocorra uma falha no dispositivo. Quanto maior o MTBF, mais confiável
um dispositivo é considerado.
Voltemos ao exemplo da aplicação web:
Quando seu browser solicita a receita ao servidor web, aquele está atuando como cliente
e este, como servidor.
Mas esse processo nem sempre é simples; afinal, a aplicação que executa no servidor
web e realiza o processamento solicitado pode precisar de uma informação armazenada
em um banco de dados externo.
Para obtê-la, esse servidor deve enviar uma mensagem ao servidor de banco de dados
solicitando aqueles de que necessita para continuar. Nesse momento, ele atua como um
cliente do servidor de banco de dados.
Arquitetura Peer-to-peer
video_library
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.
eer-to-peer
O termo peer-to-peer surge do fato de os processos se comunicarem diretamente sem a
intervenção de servidores, promovendo uma comunicação para a par (peer-to-peer).
ospedeiro
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.
border_color
Atividade discursiva
Você conhece algum tipo de sistema de compartilhamento utilizado na Internet? Em qual
tipo de arquitetura ele está fundamentado?
Exibir soluçãoexpand_more
Questão 2
Camada de Aplicação
Protocolos da Camada de Aplicação
Resposta
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.
FCs
Sigla originada do inglês request for comments. RFCs são documentos públicos mantidos pela
Internet Enginnering Task Force (IETF): um grupo internacional aberto cujo objetivo é identificar
e propor soluções para questões relacionadas à utilização da internet, além de propor uma
padronização das tecnologias e dos protocolos envolvidos.
video_library
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.
Implementado pelo protocolo HTTP, que muita gente confunde com a própria
Internet.
Serviço WEB
video_library
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 Hypertext 91.
FCs
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!
ERN
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.
ipertextos
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.
ypertext 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.”
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.
ormato HTML
Linguagem utilizada na construção de páginas web. Um documento HTML possui uma série de
marcadores utilizados para definir o formato a ser empregado na apresentação da página web
ao usuário.
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:
CP
Abreviação de Transmission Control Protocol (TCP), trata-se do protocolo de nível de transporte
confiável que garante a entrega dos dados da mensagem livre de erros no destino.
SCII
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;
Sinais de pontuação;
Sinais matemáticos;
Sinais de controle.
video_library
Funcionamento do serviço Web
border_color
Atividade discursiva
Para solicitar a página web da Organização das Nações Unidas utilizando o protocolo HTTP,
o browser estabelece uma conexão TCP com o servidor web situado no endereço
www.un.org e lhe envia a seguinte solicitação:
Como esse processo é organizado?
Exibir soluçãoexpand_more
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:
RPANET
Precursora da Internet, ela foi a primeira rede a implementar o conjunto de protocolos TCP/IP.
Em alfabetos não latinos.
Que não contêm textos multimídia, como, por exemplo, áudio e vídeo.
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.
person
Do usuário
outgoing_mail
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
Anexa arquivos
Mozilla Thunderbird
Microsoft Outlook
Eudora
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.
Postfix
Zimbra
Exchange
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:
1
Orlando deseja enviar uma mensagem para Maria. Após a compor em seu
agente do usuário, ele solicita seu envio para ela.
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.
video_library
Funcionamento do correio eletrônico
SMTP
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
Terminal
content_copy
Entrega final
Quando uma mensagem chega ao servidor do destinatário, ela deve ser armazenada em
algum local para que possa ser acessada mais tarde (assim que o destinatário estiver on-
line). Esse local é a caixa de mensagens.
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.
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
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.
Resposta
Espaços de Nomes
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 expand_more
.com = comercial;
Cada domínio tem seu nome definido pelo caminho entre ele e a raiz, enquanto seus
componentes são separados por pontos.
.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.
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.
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.
video_library
Funcionamento do DNS
A partir da numeração presente na imagem anterior, continuaremos com o exemplo:
P i l lt id d i i di d id
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.
Resposta
Questão 1
Questão 2
B HTTP e DNS.
C HTTP e POP3.
D SMTP e DNS.
E POP3 e DNS.
Como veremos no decorrer do nosso estudo, essa camada deve oferecer um serviço de
transferência confiável, embora caiba à aplicação decidir sobre o seu uso.
Serviço de Transporte
video_library
Aspectos Fundamentais da Camada de
Transporte
Assista a este vídeo para compreender aspectos fundamentais da camada de transporte.
Em uma arquitetura de camadas, podemos afirmar que o objetivo geral de uma camada é
oferecer serviços àquela imediatamente superior. No caso da camada de transporte, sua
pretensão é oferecê-los à de aplicação.
Atenção!
Lembre-se de que, neste estudo, estamos considerando a arquitetura TCP/IP, na qual não
existem as camadas de sessão e de apresentação.
Para atingir esse objetivo, a camada de transporte utiliza os serviços oferecidos pela de
rede. No serviço de transporte orientado à conexão (serviço confiável), existem três fases:
Já no serviço de transporte sem conexão, não existe nenhum controle sobre os pacotes
enviados. Se um deles se perder ou chegar ao destino com erro, nada será feito para obter
a sua recuperação.
Se a rede oferece um serviço com que garanta uma entrega sem erros, por que uma
aplicação optaria por um serviço sem essa garantia?
verhead
Termo em inglês utilizado com frequência em computação para indicar uma sobrecarga no
sistema. No caso do serviço orientado à conexão, o overhead ocorre graças ao processamento
extra necessário para a verificação dos dados e uma eventual retransmissão.
Aplicações como transferência de arquivos e e-mail exigem que seus dados cheguem ao
destino livres de erros. Dessa forma, elas utilizam um serviço orientado à conexão.
No serviço de telefonia em rede, por exemplo, o atraso na transmissão tem um efeito pior
que um pequeno ruído causado pela eventual perda de pacote.
video_library
Endereçamento (camada de transporte)
Quando seu programa solicita algo a um servidor, o sistema envia uma mensagem para ser
entregue à aplicação que executa em um hospedeiro remoto. Mas podem existir várias
aplicações nele.
1 expand_more
2 expand_more
Neste modelo, os serviços possuem endereços estáveis que podem ser impressos
e distribuídos aos novos usuários quando eles se associam à rede.
Atenção!
Um esquema alternativo é utilizar um processo especial denominado servidor de nomes
(name server) ou, às vezes, servidor de diretórios (directory server). Para localizar o
endereço de transporte correspondente a determinado nome de serviço, uma aplicação
estabelece uma conexão com o servidor de nomes. Em seguida, envia uma mensagem
especificando o nome do serviço, enquanto o servidor de nomes retorna o endereço.
video_library
Cabeçalhos da camada de transporte
No vídeo em questão, explicaremos brevemente a importância da interface (cabeçalhos)
para a camada de transporte.
Multiplexação e demultiplexação
egmentos
Cada camada do modelo de rede denomina os dados trocados com o hospedeiro remoto de
uma forma diferente das demais camadas. Segmento é o nome da mensagem trocada entre
duas entidades de transporte tanto no modelo OSI quanto na arquitetura TCP/IP.
Para essa finalidade, cada segmento da camada de transporte tem um conjunto de campos
de endereçamento no cabeçalho. No receptor, a camada de transporte examina esses
campos para identificar a porta receptora e direcionar o segmento a ela. A tarefa de
entregar os dados contidos em um segmento para a porta correta é denominada
demultiplexação.
Para fazer uso dele, um processo deve se registrar em uma porta (endereço de transporte)
do protocolo TCP. Servidores possuem portas conhecidas, mas programas clientes se
registram nas aleatórias.
Browser web
11278.
Cliente de e-mail
25786.
Transferência de arquivos
3709.
Dessa maneira, o TCP pode identificar cada uma. Quando o browser envia uma solicitação
a um servidor web, o TCP coloca na informação enviada o número de porta 11278. O
servidor, portanto, já sabe que deve responder-lhe enviando a resposta para essa porta.
Multiplexação
close
Demultiplexação
Questão 1
Questão 2
B Correção de erros.
C Encerramento da conexão.
D Demultiplexação.
Iniciaremos nosso estudo pelo UDP. Mesmo sendo um protocolo simples, ele se revela
bastante eficiente, principalmente no quesito agilidade de entrega, quando a aplicação
requer uma entrega rápida.
Em seguida, vamos nos debruçar sobre o TCP. Protocolo de transporte completo, ele é
capaz de garantir a entrega de mensagens livres de erros, não importando a qualidade da
rede em que ele trabalhe. Por fim, apontaremos alguns exemplos de portas, um mecanismo
que permite que as aplicações sejam encontradas pela Internet.
Protocolo UDP
UDP
O protocolo de transporte mais simples que poderia existir seria aquele que, no envio, fosse
limitado a receber mensagens da camada de aplicação e as entregasse diretamente na de
rede. Na recepção, ele, por outro lado, receberia os pacotes da camada de rede e os
entregaria na de aplicação. Esse tipo de protocolo, em suma, não efetua nenhum trabalho
para garantir a entrega das mensagens. Felizmente, o UDP não se limita a isso.
Atenção!
Os campos porta origem e porta destino têm a função de 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”.
Comentário
Quando a mensagem chega ao destino, o UDP pode entregá-la para a aplicação correta por
meio do campo “porta destino”. Já a “porta origem” é importante para a aplicação que
recebe a mensagem, pois ela torna possível saber o número da porta para a qual a resposta
deve ser enviada. É por meio desses campos que o UDP realiza a multiplexação e a
demultiplexação.
trata de um campo de 16 bits, isso significa que o maior segmento UDP será de: 216 =
65.536 bytes (64 KBytes).
O campo soma de verificação tem a função de garantir que a mensagem chegue ao destino
livre de erros. Para tanto, o UDP calcula o CRC dela e o envia nesse 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.
Saiba mais
Para saber mais sobre CRC e hash, consulte, respectivamente, os capítulos 5.2.3 e 8.3.1 da
obra de Kurose e Ross (2013).
O UDP é um protocolo sem estado e não orientado à conexão. Descrito pela RFC 768, ele é
projetado tanto para pequenas transmissões de dados quanto para aqueles que não
requerem um mecanismo de transporte confiável.
Apesar de o UDP não oferecer uma confiabilidade nas transmissões, isso não significa que
aplicações que o utilizam não possam ter uma garantia de entrega.
Atenção!
Protocolo TCP
TCP
Enquanto o UDP é um protocolo de transporte simples, voltado para aplicações que não
necessitam de confiabilidade na transmissão, o TCP é um orientado à conexão, sendo
indicado para aplicações que precisam trocar uma grande quantidade de dados por meio
de uma rede com múltiplos roteadores.
O TCP oferece um fluxo de bytes fim a fim confiável, podendo ser utilizado, inclusive, em
redes de baixa confiabilidade.
Quando os datagramas IP com dados TCP chegam ao hospedeiro destino, eles são, em
seguida, enviados à entidade TCP, que restaura o fluxo de dados original.
atagrama IP
Também conhecido como “pacote”, um datagrama é uma porção de dados trocada por
protocolos da camada de rede. Ele contém dados e informações de cabeçalho suficientes para
que eles possam seguir seu caminho até o hospedeiro destino.
A camada de rede (protocolo IP) não oferece nenhuma garantia de que os datagramas
serão entregues corretamente. Portanto, cabe ao TCP administrar os temporizadores e
retransmitir os datagramas sempre que for necessário.
Para concluirmos nossa última etapa de estudos, precisamos entender três aspectos
fundamentais da TCP:
description
Modelo de serviço TCP
settings
Cabeçalho de segmento TCP
wifi
Gerenciamento de conexão TCP
O serviço TCP é obtido quando tanto o transmissor quanto o receptor criam pontos
terminais; denominados portas, eles são identificados por um número de 16 bits. É
necessário que uma conexão seja explicitamente estabelecida entre um hospedeiro
transmissor e um receptor.
Full-duplex
Dados podem ser enviados e recebidos por ela simultaneamente. Uma linha telefônica
é um exemplo de sistema full-duplex, pois permite que dois interlocutores falem de
forma simultânea. O walkie-talkie, no entanto, é diferente: como tal equipamento está
no modo de transmissão ou no de recepção, ele nunca consegue transmitir e receber
ao mesmo tempo.
close
Ponto a ponto
uffer
Área de memória temporária em que os dados são armazenados, aguardando o momento de
serem transmitidos.
folder
Acumular dados de várias escritas em um único
segmento.
perm_media
Dividir os dados de uma única escrita em vários
segmentos.
Cada segmento não pode ser superior à quantidade máxima de dados que um datagrama
do protocolo IP é capaz de carregar.
O protocolo básico utilizado pelas entidades TCP é o de janela deslizante. Quando envia
um segmento, o transmissor dispara um temporizador. Assim que ele chega ao destino, a
entidade TCP receptora retorna um segmento (com ou sem dados segundo as
circunstâncias) com um número de confirmação igual ao próximo número de sequência
que ela espera receber. Se o temporizador do transmissor expirar antes de a confirmação
ser recebida, o segmento será retransmitido.
Para saber mais sobre janela deslizante, leia o capítulo 3.4.3 da obra de Kurose e
Ross (2013).
Caso um segmento chegue ao destino e apresente erro em sua soma de verificação, o TCP
simplesmente o descarta. Como não haverá confirmação de recebimento nesse caso, a
entidade TCP do transmissor entenderá que o segmento não chegou ao destino e
providenciará sua retransmissão.
video_library
Selective repeat e o go-back-n
Assista ao vídeo sobre Selective repeat e o go-back-n. Nele, apresentamos aspectos
fundamentais sobre protocolo de envio.
Cabeçalho TCP
Cada segmento TCP começa com um cabeçalho de formato fixo – podendo ser seguido
por opções de cabeçalho – de 20 bytes. Depois das opções, é possível haver 65.515 bytes
de dados.
Número de sequência
Número de confirmação
B A Q d i f b b t N fi i lí it
B para A. Quando informa que espera receber o byte N, fica implícito que
todos os bytes até N-1 foram recebidos corretamente.
HLEN
Reservado
Exemplo: Quando o flag ACK do TCP está com o valor 1 (ligado), isso
significa que o segmento TCP carrega um número de confirmação. Se ele
estiver com 0 (desligado), é a indicação de que TCP não conta com tal
número.
URG
O t i t ( t i t )é d t t
O urgent pointer (ou ponteiro urgente) é usado para apontar que o segmento
carrega dados urgentes.
ACK
PSH
RST
O reset é utilizado para reinicializar uma conexão que tenha ficado confusa
devido a uma falha. Também serve para rejeitar um segmento inválido ou
recusar uma tentativa de conexão.
SYN
A li d t b l õ
Aplicado para estabelecer conexões.
FIN
Tamanho da janela
Soma de verificação
Utilizada para verificar se existem erros nos dados recebidos. Ela confere a
validade tanto do cabeçalho quanto dos dados.
Ponteiro urgente
Válido somente se o flag URG estiver ativado, ele indica a porção de dados do
campo de dados que contém os que são urgentes.
Opções
Dados
São os dados enviados pela camada superior. Neste campo, estão os que
serão entregues na camada superior do hospedeiro destino.
Conexão TCP
É enviado então um segmento TCP com o bit SYN ativado e o bit ACK desativado. Quando
ele chega ao destino, a entidade TCP do destino verifica se existe um processo aguardando
na porta destino. Se não existir, ela enviará uma resposta com o bit RST ativado para
rejeitar a conexão.
No entanto, se algum processo estiver na escuta dessa porta, a ele será entregue o
segmento TCP recebido. Em seguida, tal processo poderá aceitar ou rejeitar a conexão. Se
ele aceitar, um segmento de confirmação será retornado.
Assista o vídeo a seguir que explica o processo de conexão entre dois processos.
video_library
Gerenciamento de Conexão do TCP
video_library
Política de transmissão TCP
Assista ao vídeo sobre Política de transmissão TCP, em que trataremos pontos
fundamentais desse processo e explicaremos o funcionamento em caso de perda de
segmento e controle de fluxo.
Tipos de portas
Portas conhecidas
Para que uma aplicação possa acessar outra remota, é necessário conhecer o endereço do
hospedeiro no qual ela se encontra. Ele serve, portanto, para que se consiga chegar ao
hospedeiro remoto.
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.
1
Empregar um sistema no qual a aplicação é registrada toda vez que inicializa para o cliente
poder consultar sua porta.
2
Usar sempre o mesmo endereço de forma que as aplicações a iniciarem a conversação
saibam de antemão com qual endereço trocar mensagens.
Para que um pacote chegue à aplicação de destino, é necessário que o transmissor saiba,
de alguma forma, em que porta a aplicação está esperando a chegada do pacote. Para
facilitar o trabalho dele, algumas aplicações esperam seus pacotes sempre na mesma
porta: a “porta conhecida” da aplicação.
A RFC 3232 define um repositório on-line no qual podem ser consultadas as portas
conhecidas. No momento da criação deste documento, o repositório on-line estava definido
como service name and transport protocol port number registry.
PORTA APLICAÇÃO
7 echo
20 ftp-data
21 ftp
22 ssh
23 telnet
25 smtp
53 domain
PORTA APLICAÇÃO
69 tftp
80 http
110 pop-3
119 nntp
161 snmp
162 snmp-trap
443 https
Questão 1
Questão 2
Considerações finais
Vimos que, na camada de aplicação, são executadas as aplicações que os usuários
desejam executar. Além disso, pontuamos que um desenvolvedor precisa se basear em um
estilo de arquitetura para desenvolver seu software de aplicação.
headset
Podcast
Ouça o Podcast, em que faremos uma abordagem geral dos tópicos estudados.
Referências
ACM HYPERTEXT 91 CONFERENCE. Proceedings. San Antonio: Interaction Design
Foundation, 1991.
COMER, D. E. Redes de computadores e internet. 6. ed. Porto Alegre: Bookman Editora,
2016.
SOARES, L. F. G. et al. Redes de computadores – das LANs, MANs e WANS às redes ATM.
2. ed. Rio de Janeiro: Campus, 1995.
Explore +
Acesse e conheça mais detalhes sobre as RFCs: 1945, 2616, 821, 822, 5321, 5322, 3501,
768, 3232.