Capítulo 4 - Camada de Transporte OSI
Capítulo 4 - Camada de Transporte OSI
Capítulo 4 - Camada de Transporte OSI
Objetivos
Aps o trmino deste captulo, voc ser capaz de:
A camada de Transporte proporciona a segmentao de dados e o controle necessrio para reagrupar esses segmentos em fluxos de
comunicao. Suas responsabilidades primrias para realizar isto so:
5
Segmentao de Dados
Como cada aplicao cria um fluxo de dados para ser enviado a uma aplicao remota, estes dados devem ser preparados para serem
enviados atravs do meio em segmentos gerenciveis. Os protocolos de camada de Transporte descrevem servios que segmentam estes
dados a partir da camada de Aplicao. Isto inclui o encapsulamento necessrio em cada lado do segmento. Cada segmento de dados de
aplicao requer a adio de cabealhos da camada de Transporte para indicar a qual comunicao ele est associado.
Reagrupamento de Segmentos
No host de destino, cada segmento de dados pode ser direcionado para a aplicao apropriada. Em adio a isso, estes segmentos de
dados individuais tambm precisam ser reconstrudos em um fluxo completo de dados que seja til para a camada de Aplicao. Os
protocolos da camada de Transporte descrevem como a informao do cabealho da camada de Transporte usada para reagrupar os
segmentos de dados em fluxos a serem passados para a camada de Aplicao.
Identificao das Aplicaes
Para passar os fluxos de dados para as aplicaes apropriadas, a camada de Transporte deve identificar a aplicao de destino. Para
realizar isso, a camada de Transporte designa aplicao um identificador. Os protocolos TCP/IP chamam esse identificador de nmero
de porta. A cada processo de software que precise acessar a rede designado um nmero de porta nico naquele host. Este nmero de
porta usado no cabealho da camada de transporte para indicar a qual aplicao aquele segmento de dado est associado.
A camada de Transporte o link entre a camada de Aplicao e a camada inferior, que so responsveis pela transmisso na
rede. Esta camada aceita dados de diferentes conversaes e os passa para as camadas inferiores como segmentos gerenciveis que
podem ser finalmente multiplexados no meio.
As aplicaes no precisam saber dos detalhes operacionais da rede em uso. As aplicaes geram dados que so enviados de
uma aplicao a outra, sem considerar o tipo de host de destino, o tipo de meio sobre o qual o dado deve trafegar, o caminho tomado
pelo dado, o congestionamento1 em um link, ou o tamanho da rede.
Adicionalmente, as camadas inferiores no esto a par de que existem mltiplas aplicaes enviando dados na rede. Sua responsabilidade entregar os dados ao dispositivo apropriado. A camada de transporte ento organiza esses segmentos antes de entreglos aplicao apropriada.
As Necessidades de Dados Variam
Devido ao fato de diferentes aplicaes terem diferentes necessidades, existem mltiplos protocolos da camada de Transporte. Para
algumas aplicaes, os segmentos devem chegar em uma sequncia especfica para serem processados com sucesso. Em alguns casos,
todos os dados precisam ser recebidos por qualquer um deles para poder ser usado. Em outros casos, uma aplicao pode tolerar alguma
perda de dados durante a transmisso atravs da rede.
Nas redes convergidas atuais, as aplicaes com diferentes necessidades de transporte podem se comunicar na mesma rede.
Os diferentes protocolos da camada de Transporte tm diferentes regras que permitem aos dispositivos lidar com essas necessidades
diversas de dados.
Alguns protocolos fornecem apenas as funes bsicas para entregar eficientemente os segmentos de dados entre as aplicaes apropriadas. Estes tipos de protocolos so teis para aplicaes cujos dados so sensveis a atrasos.
Outros protocolos da camada de Transporte descrevem processos que fornecem caractersticas adicionais, tais como assegurar
a entrega confivel entre as aplicaes. Embora estas funes adicionais proporcionem uma comunicao mais robusta na camada de
Transporte entre as aplicaes, elas geram uma sobrecarga adicional e fornecem maiores demandas sobre a rede.
Estado de uma rede em que no h largura de banda suficiente para suportar a quantidade de trfego na rede.
Conforme foi explicado no captulo anterior, o envio de alguns tipos de dados - um vdeo por exemplo - atravs da rede com
um fluxo de comunicao completa pode impedir que outras comunicaes ocorram ao mesmo tempo. Isso tambm dificulta a recuperao de erro e retransmisso de dados danificados.
7
A diviso de dados em partes pequenas, e o envio dessas partes a partir da origem, habilita muitas comunicaes diferentes
que podem estar intercaladas (multiplexadas) na mesma rede.
A segmentao de dados, de acordo com os protocolos de camada de Transporte, fornece os meios para enviar e receber dados
quando se executam mltiplas aplicaes concorrentemente em um computador. Sem segmentao, apenas uma aplicao, o vdeo em
streaming, por exemplo, seria capaz de receber dados. Voc no poderia receber e-mails, conversar em um programa de mensagens
instantneas, ou exibir pginas web enquanto estivesse exibindo o vdeo.
Na camada de Transporte, cada conjunto particular de segmentos que flui entre uma aplicao de origem e uma aplicao de
destino conhecido com uma conversao.
Para identificar cada segmento de dados, a camada de Transporte adiciona ao segmento um cabealho contendo dados binrios. Este cabealho contm campos de bits. So os valores nesses campos que habilitam que diferentes protocolos de camada de Transporte realizem diferentes funes.
Relembre que a funo principal da camada de Transporte gerenciar os dados da aplicao para as conversaes entre os hosts. No
entanto, diferentes aplicaes tm diferentes necessidades para seus dados e, por isso, diferentes protocolos de Transporte tm sido
desenvolvidos para satisfazer estas necessidades.
O protocolo da camada de Transporte pode implementar um mtodo para assegurar a entrega confivel dos dados. Em termos
de rede, confiabilidade significa assegurar que cada segmento de dado enviado pela origem chegue ao seu destino. Na camada de Transporte, as trs operaes bsicas de confiabilidade so:
Isto requer que os processos da camada de Transporte da origem rastreiem todos os segmentos de dados de cada conversao
e retransmitam quaisquer dados que realmente no foram confirmados pelo destino. A camada de Transporte do host receptor tambm
deve rastrear o dado medida que ele recebido e confirmar o recebimento do dado.
Estes processos de confiabilidade colocam uma sobrecarga adicional sobre os recursos de rede devido confirmao, rastreamento e retransmisso. Para suportar estas operaes de confiabilidade, mais dados de controle2 so trocados entre os hosts de envio e
recepo. Esta informao de controle est contida no cabealho da Camada 4.
Isto cria um dilema entre o valor de confiabilidade e a carga que ela coloca sobre a rede. Os desenvolvedores de aplicaes
devem escolher que tipo de protocolo de transporte apropriado com base nas necessidades de suas aplicaes. Na camada de Transporte, existem protocolos que especificam mtodos que sejam para entrega confivel, entrega garantida ou entrega de melhor esforo.
No contexto de rede, a entrega de melhor esforo referida como no confivel, porque no h confirmao de que o dado foi recebido
no seu destino.
Determinao da Necessidade de Confiabilidade
As aplicaes, tais como as bases de dados, pginas web e e-mail, necessitam de que todos os dados enviados cheguem ao destino em
seu estado original, em ordem, para que os dados sejam teis. Quaisquer perdas de dados podem causar uma comunicao corrompida
Dados que guiam um processo. Uma flag num quadro de enlace de dados um exemplo de controle.
10
que incompleta ou ilegvel. Portanto, estas aplicaes so projetadas para usar um protocolo da camada de Transporte que implemente
confiabilidade. A sobrecarga adicional de rede considerada como uma necessidade para essas aplicaes.
Outras aplicaes so mais tolerantes com a perda de pequenas quantidades de dados. Por exemplo, se um ou dois segmentos
de um fluxo de vdeo falharem ao chegar, isso cria apenas uma interrupo momentnea no fluxo. Isto pode parecer como uma distoro
na imagem, mas pode at mesmo no ser notado pelo usurio.
A imposio de sobrecarga para assegurar a confiabilidade para essa aplicao pode reduzir a utilidade da mesma. A imagem
do vdeo em streaming seria muito degradada se o dispositivo de destino tivesse de se responsabilizar pelos dados perdidos e pelo
retardo no fluxo quando da espera por sua chegada. melhor projetar uma boa imagem possvel no tempo com os segmentos que
chegam e abrir mo da confiabilidade. Se a confiabilidade necessria por alguma razo, estas aplicaes podem apresentar solicitaes
de verificao de erro e retransmisso.
Os dois protocolos da camada de Transporte mais comuns da pilha de protocolos TCP/IP so o Protocolo TCP e o Protocolo UDP. Ambos
os protocolos gerenciam a comunicao de mltiplas aplicaes. As diferenas entre os dois so as funes especficas que cada protocolo implementa.
Protocolo UDP (User Datagram Protocol)
O UDP um protocolo simples e sem conexo, descrito na RFC 768. Ele tem a vantagem de fornecer uma entrega de dados de baixa
sobrecarga. Os segmentos de comunicao em UDP so chamados datagramas. Estes datagramas3 so enviados como o "melhor esforo"
por este protocolo da camada de Transporte.
As aplicaes que usam UDP incluem:
(DNS)
Vdeo em Streaming
Voz Sobre IP (VOIP)
Protocolo TCP
O TCP um protocolo orientado conexo, descrito na RFC 793. O TCP causa sobrecarga adicional para adicionar funes. As funes
adicionais especificadas pelo TCP so as ditas entrega ordenada, entrega confivel e controle de fluxo4. Cada segmento TCP tem 20 bytes
de overhead no cabealho que encapsula o dado da camada de Aplicao, enquanto que o segmento UDP tem apenas 8 bytes. Veja a
figura para uma comparao.
11
As aplicaes que usam TCP so:
Navegadores web
E-mail
FTP
Identificao de Conversaes
Considere o exemplo anterior de um computador que simultaneamente recebe e envia e-mail, mensagens instantneas, pginas web e
chamada VOIP.
Os servios baseados em TCP e UDP rastreiam as vrias aplicaes que esto se comunicando. Para diferenciar os segmentos e
datagramas para cada aplicao, o TCP e o UDP tm campos de cabealho que podem identificar unicamente essas aplicaes. Estes
identificadores nicos so os nmeros de porta.
No cabealho de cada segmento ou datagrama, h uma porta de origem e destino. O nmero da porta de origem o nmero
para essa comunicao associado aplicao originada no host local. O nmero da porta de origem o nmero para essa comunicao
associada aplicao originada no host local.
Os nmeros de porta so designados de vrias maneiras, dependendo se a mensagem uma solicitao ou uma resposta.
Embora os processos do servidor tenham nmeros de porta estticos designados a eles, os clientes escolhem dinamicamente um nmero
de porta para cada conversao.
Quando uma aplicao cliente envia uma solicitao aplicao servidor, a porta de destino contida no cabealho o nmero
da porta que designado ao servio daemon executado no host remoto. O software cliente deve conhecer qual nmero de porta est
associado ao processo servidor no host remoto. Este nmero de porta de destino configurado, seja atravs do padro ou manualmente.
Por exemplo, quando uma aplicao de navegador web faz uma solicitao a um servidor web, o navegador usa o TCP e o nmero de
porta 80, a menos que um outro seja especificado. Isso acontece porque a porta 80 TCP a porta padro designada a aplicaes web.
Muitas aplicaes comuns tm designaes de porta padro.
A porta de origem em um cabealho de segmento ou datagrama de uma solicitao de cliente gerada aleatoriamente. Contanto que ela no entre em conflito com outras portas em uso no sistema, o cliente pode escolher qualquer nmero de porta. Este
nmero de porta age com um endereo de retorno para a aplicao que faz a solicitao.
A camada de Transporte rastreia esta porta e a aplicao que iniciou a solicitao, de modo que quando uma resposta retornada, ela pode ser encaminhada para a aplicao correta. O nmero de porta da aplicao solicitante usado com o nmero de porta
de destino na resposta que volta do servidor.
A combinao do nmero de porta da camada de Transporte e do endereo IP da camada de Rede designada ao host identifica
exclusivamente um processo particular sendo executado em um dispositivo de host especfico. Esta combinao chamada de soquete.
12
Ocasionalmente, voc pode encontrar os termos nmero de porta e soquete sendo usados alternadamente. No contexto deste curso, o
termo soquete se refere apenas combinao nica de endereo IP e nmero de porta. Um par de soquete, que consiste de endereos
IP de origem e destino, tambm nico e identifica a conversao entre os dois hosts.
Por exemplo, uma solicitao de pgina HTTP sendo enviada a um servidor web (porta 80) sendo executado em um host com
um endereo de IPv4 Camada 3 192.168.1.20 seria destinado ao soquete 192.168.1.20:80.
Se o navegador web que faz a solicitao web est sendo executado no host 192.168.100.48 e o nmero Dinmico de porta
designado ao navegador web 49152, o soquete para a pgina web seria 192.168.100.48:49152.
A Internet Assigned Numbers Authority (IANA)5 designa nmeros de porta. A IANA um rgo de padres responsvel pela designao
de vrios padres de endereamento.
Existem diferentes tipos de nmeros de portas:
Portas Conhecidas (Nmeros 0 a 1023) - Esses nmeros esto reservados para servios e aplicaes. Eles so comumente usados para
aplicaes como o HTTP (servidor web) POP3/SMTP (servidor de e-mail) e Telnet. Atravs da definio destas portas conhecidas6 para
aplicaes de servidor, aplicaes de clientes podem ser programados para solicitar uma conexo com essa porta especfica e seu servio
associado.
Portas Registradas (Nmeros 1024 a 49151) - Estes nmeros de portas so designados para processos ou aplicaes de usurio. Estes
processos so principalmente aplicaes individuais que um usurio escolheu para instalar em vez de aplicaes comuns que receberiam
uma Porta Conhecida. Quando no usadas para um recurso de servidor, estas portas tambm podem ser dinamicamente selecionadas
por um cliente como sua porta de origem.
Portas Dinmicas ou Privadas (Nmeros 49152 a 65535) - Elas so geralmente designadas dinamicamente a aplicaes de cliente quando
se inicia uma conexo. No muito comum um cliente se conectar a um servio usando uma Porta Dinmica ou Privada (embora alguns
programas de compartilhamento de arquivos peer-to-peer (P2P) o faam).
Utilizao do TCP e do UDP
Algumas aplicaes podem usar tanto TCP como UDP. Por exemplo, o baixo overhead (sobrecarga) do UDP habilita ao DNS servir a muitas
solicitaes de clientes muito rapidamente. s vezes, no entanto, o envio da informao solicitada pode exigir a confiabilidade do TCP.
Neste caso, o nmero 53 de porta conhecida usado por ambos os protocolos com este servio.
Links
Uma lista atual de nmeros de porta pode ser encontrada em http://www.iana.org/assignments/port-numbers.
5
6
Organizao responsvel por alocar os endereos de Protocolo de Internet para os provedores de Internet (ISPs).
Portas com intervalo de 0 1023.
13
Portas TCP
Portas UDP
s vezes necessrio conhecer quais conexes TCP ativas esto abertas e sendo executadas em um host de rede.
O Netstat um utilitrio de rede importante que pode ser usado para verificar essas conexes. O Netstat lista o protocolo em
uso, o endereo local e o nmero de porta, o endereo externo, o nmero de porta e o estado da conexo.
Conexes TCP inexplicveis podem ser uma grande ameaa de segurana. Isto acontece porque elas podem indicar
que algo ou algum est conectado ao host local. Adicionalmente, as conexes TCP desnecessrias podem consumir recursos valiosos do sistema, reduzindo a velocidade de desempenho do host. O Netstat deve ser usado para examinar as conexes abertas em um host quando o desempenho parecer comprometido.
Muitas opes teis esto disponveis para o comando netstat.
14
O captulo anterior explicou como as PDUs so construdas para passar os dados de uma aplicao para os vrios protocolos para criar
uma PDU que seja ento transmitida no meio. No host de destino, este processo revertido at que os dados possam ser passados at
a aplicao.
Algumas aplicaes transmitem grandes quantidades de dados - em alguns casos, muitos gigabytes. Seria impraticvel enviar
todos estes dados em um segmento muito grande. Nenhum outro trfego de rede poderia ser transmitido enquanto estes dados estivessem sendo enviados. Um segmento muito grande de dados pode levar minutos ou mesmo horas para ser enviado. Alm disso, se
houvesse algum erro, o arquivo inteiro seria perdido ou reenviado. Dispositivos de rede no teriam buffers de memria grandes o suficiente para armazenar estes dados enquanto eles fossem transmitidos ou recebidos. O limite varia dependendo da tecnologia de rede e
do meio fsico especfico que est sendo usado.
Dividir os dados da aplicao em segmentos assegura que os dados sejam transmitidos dentro dos limites do meio e que os
dados de diferentes aplicaes possam ser multiplexadas no meio.
O TCP e o UDP Lidam com a Segmentao de Maneira Diferente.
No TCP, cada cabealho de segmento contm um nmero sequencial. Este nmero sequencial confere as funes da camada
de Transporte no host de destino para reagrupar segmentos na ordem em que eles foram transmitidos. Isso assegura que as aplicaes
de destino tenham os dados na forma exata pretendida pelo remetente.
Embora os servios que usam UDP tambm rastreiem as conversaes entre as aplicaes, eles no esto preocupados com a
ordem que a informao foi transmitida, ou na manuteno de uma conexo. No existe nmero sequencial no cabealho UDP. O UDP
um esquema mais simples e gera menos overhead do que o TCP, resultando em uma transferncia mais rpida de dados.
A informao pode chegar em ordem diferente da qual ela foi transmitida porque diferentes pacotes podem tomar diferentes
caminhos atravs da rede. Uma aplicao que usa o UDP precisa tolerar o fato de que os dados podem no chegar na ordem em que
foram enviados.
15
A distino principal entre o TCP e o UDP est na confiabilidade. A confiabilidade da comunicao TCP realizada com o uso de sesses
orientadas conexo. Antes que um host usando o TCP envie dados para outro host, a camada de Transporte inicia um processo para
criar uma conexo com o destino. Esta conexo habilita o rastreamento de uma sesso, ou um fluxo de comunicao entre os hosts. Este
processo assegura que cada host est ciente e preparado para a comunicao. Uma conversao TCP completa exige o estabelecimento
de uma sesso entre os hosts em ambas as direes.
Aps uma sesso ter sido estabelecida, o destino envia confirmaes para a origem para os segmentos que ele recebe. Estas
confirmaes formam a base da confiabilidade dentro de uma sesso TCP. medida que a origem recebe uma confirmao, ela sabe que
os dados foram entregues com sucesso e pode parar o rastreamento daqueles dados. Se a origem no recebe uma confirmao dentro
de um perodo pr-determinado de tempo, ela retransmite aqueles dados para o destino.
Parte do overhead adicional do uso do TCP o trfego de rede gerado por confirmaes e retransmisses. O estabelecimento
de sesses cria um overhead na forma de segmentos adicionais sendo trocados. H tambm um overhead adicional nos hosts individuais
criado pela necessidade de rastrear quais segmentos esto esperando pela confirmao e pelo processo de retransmisso.
Esta confiabilidade alcanada tendo campos no segmento TCP, cada um com uma funo especfica, conforme mostrado na figura.
Estes campos sero discutidos mais tarde nesta seo.
Nmero de Porta de Origem Sesso TCP no dispositivo que abriu a conexo normalmente um valor aleatrio acima de
1023.
Nmero de Porta de Destino Identifica o protocolo de camada superior ou a aplicao em local remoto
Nmero de Sequncia Especifica o nmero do ltimo octeto (byte) em um segmento.
Nmero de Reconhecimento Especifica o nmero do octeto seguinte esperado pelo receptor.
H. Length Comprimento do cabealho especifica o tamanho do cabealho do segmento em byte.
Reservados Usado no gerenciamento e sesso e no tratamento de segmentos.
Tamanho da Janela o valor da janela dinmica (quando octetos podem ser enviados antes da espera do reconhecimento).
Checksum TCP Usado para verificao de erros no cabealho de dados.
Urgente Pointer Usado somente com um sinalizador URG (urgente) flag.
Opes (se houver) Informaes Opcionais.
Dados Dados da aplicao.
Conforme discutido anteriormente neste captulo, os processos de aplicaes so executados nos servidores. Estes processos esperam
at que um cliente inicie a comunicao com uma solicitao de informao ou outros servios.
16
Cada processo de aplicao sendo executado no servidor configurado para usar um nmero de porta, seja no modo padro
ou manualmente atravs de um administrador do sistema. Um servidor individual no pode ter dois servios designados ao mesmo
nmero de porta dentro dos mesmos servios da camada de Transporte. Um host executando uma aplicao de servidor web e uma
aplicao de transferncia de arquivo no pode ter ambos configurados para usar a mesma porta (por exemplo, a porta TCP 8080).
Quando uma aplicao de servidor ativo designada a uma porta especfica, essa porta considerada como estando "aberta" no servidor.
Isto significa que a camada de Transporte aceita e processa segmentos endereados quela porta. Qualquer solicitao de cliente que
chega endereada ao soquete correto aceita e os dados so transmitidos aplicao do servidor. Podem haver muitas portas simultneas abertas em um servidor, uma para cada aplicao de servidor ativo. comum para um servidor fornece mais de um servio, como
um servidor web e um servidor FTP, ao mesmo tempo.
Uma maneira de melhorar a segurana em um servidor restringir o acesso de servidor a apenas essas portas associadas com
os servios e as aplicaes que devem ser acessveis para solicitantes autorizados.
A figura mostra a alocao tpica de portas de origem e destino em operaes cliente/servidor TCP.
Portas de Destino de Solicitaes
17
Portas de Origem de Respostas
Quando dois hosts se comunicam usando o TCP, uma conexo for estabelecida antes que os dados possam ser trocados. Depois da
comunicao ter sido completada, as sesses so fechadas e a conexo encerrada. Os mecanismos de conexo e sesso habilitam a
funo de confiabilidade do TCP.
Veja a figura para saber as etapas para estabelecer e terminar uma conexo TCP.
O host rastreia cada segmento de dados dentro de uma sesso e troca informao sobre qual dado recebido por cada host
usando a informao no cabealho TCP.
Cada conexo representa dois fluxos de comunicao, ou sesses. Para estabelecer uma conexo, os hosts realizam um handshake triplo7. Bits de controle no cabealho TCP indicam o progresso e o status da conexo. O handshake triplo:
Nas conexes TCP, o host que serve como um cliente inicia a sesso para o servidor. Os trs passos no estabelecimento da
conexo TCP so:
1.
2.
3.
O cliente iniciador envia um segmento contendo um valor sequencial inicial, que serve como uma solicitao ao servidor para
comear uma sesso de comunicaes.
O servidor responde com um segmento contendo um valor de confirmao igual ao valor sequencial recebido mais 1, mais seu
prprio valor sequencial de sincronizao. O valor maior do que o nmero sequencial porque o ACK sempre o prximo Byte
ou Octeto esperado. Este valor de confirmao habilita o cliente a submeter resposta de volta ao segmento original que ele
enviou ao servidor.
O cliente iniciador responde com um valor de confirmao igual ao valor sequencial que ele recebeu mais um. Isso completa o
processo de estabelecimento da conexo.
Para entender o processo do handshake triplo, importante examinar os vrios valores que os dois hosts trocam. Dentro do cabealho de segmento TCP, existem seis campos de 1 bit que contm a informao de controle usada para gerenciar os processos TCP. Esses
campos so:
Processo que estabelece uma sesso TCP entre dois pontos finais. O processo o seguinte. 1. Um cliente quer se comunicar com um servidor. O cliente
envia um segmento com uma flag SYN marcada. 2. Em resposta, o servidor responde com um SYN-ACK. 3. O cliente envia um ACK (em geral chamado de
SYN-ACK-ACK) de volta ao outro ponto e a sesso e estabelecida.
18
Estes campos so referidos como flags (flags), porque o valor de um desses campos apenas 1 bit e, portanto, tem apenas dois
valores: 1 ou 0. Quando um valor de bit for definido como 1, ele indica que a informao de controle est contida no segmento.
Com o uso de um processo de quatro etapas, as flags so trocadas para encerrar uma conexo TCP.
SYN ACK
FIN ACK
Usados pelo TCP para assegurar que os segmentos no sejam perdidos. Cada segmento tem um nmero de sequncia anexado a ele. Isso tambm
permite que a estao receptora se certifique de que os dados so entregues na outra extremidade na ordem correta.
19
Usando as entradas Wireshark, voc pode examinar a operao do handshake triplo TCP:
Etapa 1
Um cliente TCP inicia o handshake triplo enviando um segmento com a flag de controle SYN (nmero sequencial de sincronia) definido,
indicando um valor inicial no campo do nmero de sequncia no cabealho. Este valor inicial para o nmero de sequncia, conhecido
como o Nmero de Sequncia Inicial (ISN), escolhido aleatoriamente e usado para iniciar o rastreamento do fluxo de dados do cliente
para o servidor para esta sesso. O ISN no cabealho de cada segmento aumentado em um para cada byte de dados enviados do cliente
para o servidor medida que a conversao de dados continua.
Conforme mostrado na figura, a sada de um analisador de protocolo mostra a flag de controle SYN e o nmero de sequncia
relativo.
A flag de controle SYN definida e o nmero de sequncia relativo 0. Embora o analisador de protocolo no grfico indique os
valores relativos para os nmeros de sequncias e de confirmao, os valores verdadeiros so nmeros binrios de 32 bits. Ns podemos
determinar os nmeros reais enviados nos cabealhos do segmento examinando a tela de Pacote de Bytes. Aqui voc pode ver os quatro
bytes representados em hexadecimal9.
Sistema de enumerao em base 16 cujo caracteres comeam com 0-9 e A-F (para representar 10-15).
20
Etapa 2
O servidor TCP precisa confirmar o recebimento do segmento SYN do cliente para estabelecer a sesso do cliente para o servidor. Para
fazer isso, o servidor envia um segmento de volta para o cliente com a flag ACK indicando que o nmero de Confirmao significativo.
Com esta flag indicada no segmento, o cliente confirma isto como uma confirmao de que o servidor recebeu o SYN do cliente TCP.
O valor do campo de nmero de confirmao10 igual ao nmero de sequncia inicial mais 1. Isto estabelece uma sesso do
cliente para o servidor. A flag ACK permanecer definida para o equilbrio da sesso. Relembre que a conversao entre o cliente e o
servidor na verdade duas sesses unidirecionais, uma do cliente para o servidor, e outra do servidor para o cliente. Nesta segunda
etapa do handshake triplo, o servidor precisa iniciar a resposta do servidor para o cliente. Para iniciar esta sesso, o servidor usa a flag
SYN da mesma maneira que o cliente o fez. Ele define a flag de controle SYN no cabealho para estabelecer a sesso do servidor para o
cliente. A flag SYN indica que o valor inicial do campo de nmero de sequncia est no cabealho. Este valor ser usado para rastrear o
fluxo de dados nesta sesso do servidor de volta para o cliente.
Conforme mostrado na figura, a sada do analisador de protocolo mostra que as flags de controle ACK e SYN esto definidas e
os nmeros de sequncia relativo e de confirmao so mostrados.
Etapa 3
Finalmente, o cliente TCP responde com um segmento contendo um ACK que a resposta para o TCP SYN enviado pelo servidor. No h
dado de usurio neste segmento. O valor do campo de nmero de confirmao contm um 1 a mais do que o nmero de sequncia
10
As confirmaes so sinais enviados pelas estaes de destino s estaes de origem para confirmar a recepo dos dados.
21
inicial recebido do servidor. J que ambas as sesses esto estabelecidas entre cliente e servidor, todos os segmentos adicionais trocados
nesta comunicao tero uma flag ACK definida.
Conforme mostrado na figura, a sada do analisador de protocolo mostra a flag de controle ACK definida e os nmeros de
confirmao so mostrados.
A segurana pode ser adicionada rede de dados por:
Para fechar uma conexo, a flag de fim de comunicao FIN (Finish)11 no cabealho do segmento precisa ser definida. Para terminar cada
sesso TCP unidirecional, um handshake duplo usado, consistindo de um segmento FIN e um segmento ACK. Portanto, para terminar
uma conversao nica suportada pelo TCP, quatro trocas so necessrias para finalizar ambas as sesses. Nota: Nesta explicao, os
termos cliente e servidor so usados nesta descrio com uma referncia visando a simplicidade, mas o processo de encerramento pode
ser iniciado por qualquer um dos dois hosts que completarem a sesso:
1.
2.
3.
4.
Quando o cliente no tem mais dados para enviar no fluxo, ele envia um segmento com uma flag FIN definida.
O servidor envia uma ACK para confirmar o recebimento do FIN para encerrar a sesso do cliente para o servidor.
O servidor envia um FIN para o cliente, para encerrar a sesso do servidor para o cliente.
O cliente responde com um ACK para confirmar o FIN do servidor.
Quando o cliente final de uma sesso no tem mais dados para transferir, ele define a flag FIN no cabealho de um segmento.
A seguir, o servidor ir enviar um segmento normal contendo dados com a flag ACK definida usando o nmero de confirmao, confirmando que todos os bytes de dados foram recebidos. Quando todos os segmentos tiverem sido confirmados, a sesso for fechada.
A sesso na outra direo fechada usando o mesmo processo. O receptor indica que no h mais dados para enviar definindo
uma flag FIN no cabealho de um segmento enviado origem. Uma confirmao de retorno confirma que todos os bytes de dados foram
recebidos e que a sesso est, por sua vez, fechada.
Conforme mostrado na figura, as flags de controle FIN e ACK so definidas no cabealho do segmento, fechando com isso a
sesso HTTP.
11
Mensagem usada pelo TCP que usada por um dispositivo que deseja terminar sua sesso com outro dispositivo. Isso feito inserindo uma flag FIN no
campo flag encontrado no segmento TCP.
22
possvel encerrar a conexo atravs de um handshake triplo. Quando o cliente no tem mais dados para enviar, ele envia um
FIN ao servidor. Se o servidor tambm no tem mais dados para enviar, ele pode responder com ambas as flags FIN e ACK definidas,
combinando duas etapas em uma. O cliente responde com um ACK.
23
24
A quantidade de dados que a origem pode transmitir antes que uma confirmao seja recebida chamada de tamanho da
janela12. O Tamanho de Janela um campo no cabealho TCP que habilita o gerenciamento de dados perdidos e controle de fluxo.
12
O TCP usa o tamanho da janela para determinar o tamanho do nmero de segmentos enviados pelo dispositivo de envio antes do dispositivo receptor
enviar uma confirmao.
25
26
Durante o atraso no recebimento de uma confirmao, o remetente no enviar quaisquer segmentos adicionais para essa
sesso. Em perodos em que a rede est congestionada ou os recursos do host de recebimento esto extenuados, o atraso pode aumentar. medida que este atraso aumenta, a taxa de transmisso efetiva dos dados para esta sesso diminui. A diminuio da velocidade
na taxa de dados ajuda a reduzir a conteno de recursos.
27
O UDP um protocolo simples que fornece as funes bsicas da camada de Transporte. Ele possui overhead muito mais baixo do que o
TCP, j que no orientado conexo e no fornece mecanismos de retransmisso, sequenciamento e controle de fluxo sofisticados.
Isto no significa que as aplicaes que usam UDP sejam sempre no confiveis. Isto simplesmente significa que estas funes
no so fornecidas pelo protocolo da camada de Transporte e devem ser implementadas em outros locais se houver necessidade.
Embora a quantidade total de trfego UDP encontrada em uma rede tpica geralmente no seja baixo, os principais protocolos
da camada de Aplicao que usam UDP incluem:
Algumas aplicaes, como jogos on-line ou VOIP, podem tolerar alguma perda de dados. Se estas aplicaes usarem TCP, elas
podem passar por grandes atrasos enquanto o TCP detecta a perda e retransmite dados. Estes atrasos seriam mais prejudiciais para a
aplicao do que pequenas perdas de dados. Algumas aplicaes, como o DNS, simplesmente iro tentar novamente a solicitao se no
receberem resposta e, portanto, eles no precisaro do TCP para garantir a entrega da mensagem. O baixo overhead do UDP o torna
muito desejvel para tais aplicaes.
28
Por causa do UDP ser sem conexo, as sesses no so estabelecidas antes que a comunicao ocorra enquanto elas esto com TCP. Diz-se que o UDP
baseado em transao. Em outras palavras, quando uma aplicao tem dados para enviar, ele simplesmente envia os dados.
Muitas aplicaes que usam o UDP enviam pequenas quantidades de dados que podem se ajustar a um segmento. No entanto, algumas aplicaes enviaro quantidades maiores de dados que precisam ser divididos em mltiplos segmentos. A PDU UDP referida como um datagrama, embora
os termos segmento e datagrama sejam usados algumas vezes de modo alternado para descrever uma PDU da camada de Transporte.
Quando mltiplos datagramas so enviados a um destino, eles podem tomar diferentes caminhos e chegar na ordem errada. O UDP no rastreia
os nmeros de sequncia da forma que o TCP faz. O UDP no tem um modo para reordenar os datagramas na sua ordem de transmisso. Veja a figura.
Portanto, o UDP simplesmente reagrupa os dados na ordem que eles foram recebidos e os encaminha para a aplicao. Se a sequncia dos
dados importante para a aplicao, ele ter que identificar a sequncia apropriada dos dados e determinar como os dados devem ser processados.
Do mesmo modo que com as aplicaes baseadas em TCP, aos aplicaes de servidores baseados em UDP so designados nmeros de
porta Conhecida ou Registrada. Quando estas aplicaes ou processos esto sendo executados, eles aceitaro os dados correspondentes
ao nmero de porta designado. Quando o UDP recebe um datagrama destinado a uma destas portas, ele encaminha os dados aplicao
apropriada com base em seu nmero de porta.
29
Do mesmo modo que o TCP, a comunicao cliente/servidor iniciada por uma aplicao cliente que est solicitando dados de um
processo servidor. O processo cliente UDP seleciona aleatoriamente um nmero de porta a partir de uma faixa dinmica de nmeros de
porta e o usa como a porta de origem para a conversao. A porta de destino ser geralmente o nmero de porta Conhecida ou Registrada
designado ao processo do servidor.
Nmeros de porta de origem randomizados tambm ajudam na segurana. Se h um padro previsvel para seleo da porta
de destino, um intruso pode simular um acesso a um cliente mais facilmente tentando conectar-se ao nmero de porta mais provvel de
ser aberto.
Por no haver sesso a ser criada com o UDP, to logo os dados estejam prontos para serem enviados e a portas identificadas,
o UDP pode formar o datagrama e pass-lo para a camada de Rede para ser endereado e enviado pela rede.
Lembre-se, uma vez que o cliente escolheu as portas de origem e destino, o mesmo par de portas usado no cabealho de
todos os datagramas da transao. Para dados que retornam para o cliente a partir do servidor, os nmeros de porta de origem e destino
no cabealho do datagrama so invertidos.
Solicitar Portas de Destino
30
Responder Portas de Destino
RESUMO
31
perdidos. No entanto, isto no significa necessariamente que a comunicao em si no seja confivel; pode haver mecanismos nos protocolos e servios da camada de Aplicao que processam datagramas perdidos ou com atraso se a aplicao tem estas necessidades.
A escolha do protocolo da camada de Transporte feito pelo programador da aplicao para melhor satisfazer as necessidades
do usurio. O programador tem em mente que, apesar disso, todas as outras camadas tm um papel nas comunicaes de rede de dados
e influenciaro o seu desempenho.
QUESTIONRIO
1.
2.
3.
4.
Multiplexao da Conversa Pode haver muitos aplicativos ou servios sendo executados em cada host na rede. A
cada um destes aplicativos ou servios designado um endereo como uma porta para que a Camada de Transporte
possa determinar com qual aplicativo ou servio os dados so identificados.
Segmentao e Agrupamento A maioria das redes tem uma limitao na quantidade de dados que podem ser
includos em uma nica PDU. A Camada de Transporte divide dados do aplicativo em blocos de dados que tm um
tamanho apropriado. No destino, a Camada de Transporte rene os dados antes de envi-los aplicao ou servio
de destino.
Verificao de Erro A verificao de erro pode ser desempenhada nos dados do segmento para determinar se os
dados foram modificados durante a transmisso.
5.
6.
Navegao
Transferncia de arquivos
32
7.
Vdeo de Stream
8.
Portas Conhecidas (Nmeros 0 a 1023) Estes nmeros so reservados para servios e aplicativos. Eles so comumente usados para aplicaes como HTTP (servidor web) POP3/SMTP (servidor de e-mail) e Telnet. Definindo estas
portas conhecidas para aplicaes do servidor, aplicaes do cliente podem ser programadas para solicitar uma conexo para aquela porta especfica e seu servio associado.
Portas Registradas (Nmeros 1024 a 49151) Estes nmeros de portas so designados para processos ou aplicaes
do usurio. Estas so basicamente aplicaes individuais que um usurio escolheu para instalar ao invs de aplicaes
comuns, aplicaes universais que receberiam uma Porta Conhecida.
Portas Dinmicas ou Privadas (Nmeros 49152 a 65535) Tambm conhecidas como Portas Efmeras, elas so
normalmente designadas dinamicamente s aplicaes do cliente ao iniciar uma conexo. No muito comum para
um cliente conectar a um servio usando uma Porta Dinmica ou Privada (apesar de alguns programas peer-to-peer
de compartilhamento de arquivos usarem).
9.
Verifica que o dispositivo de destino tem um servio ativo e est aceitando solicitaes no nmero da porta de destino
que o cliente inicial pretende usar para sesso
Informar ao dispositivo de destino que o cliente de origem pretende estabelecer uma sesso de comunicao naquele
nmero de porta
13. Para que os nmeros da sequncia do TCP so usados?
Para que a mensagem original seja entendida pelo destinatrio, os dados do segmentos devem ser reunidos na ordem original.
14. Explique a confirmao de espera.
O TCP usa o nmero de confirmao em segmentos enviados de volta origem para indicar o prximo byte nesta sesso que
o destinatrio espera receber.
15. Aps uma quantidade de tempo pr-determinada, o que o TCP faz quando no recebeu informaes?
Quando o TCP no host de origem no recebeu uma confirmao aps uma quantidade pr-determinada de tempo, ele voltar
ao ltimo nmero de confirmao que recebe e retransmitir novamente os dados daquele ponto em diante.
16. A quantidade de dados pode ser transmitida antes que uma confirmao TCP deve ser recebida referida como.
O tamanho da janela.
17. Liste os principais protocolos da Camada de Aplicao que usam UDP.
Protocolo DHCP
Protocolo RIP
Protocolo TFTP
Jogos online
33
10
11
14
15
15
17
19
21
22
23
24
25
27
28
28
29
RESUMO
30
QUESTIONRIO
31