Vous êtes sur la page 1sur 30

4

Camada de Transporte OSI


4.0.1 INTRODUO AO CAPTULO
As redes de dados e a Internet suportam a rede humana atravs do fornecimento de comunicao contnua e confivel entre pessoas
localmente e ao redor do mundo. Atravs de um simples dispositivo, as pessoas podem usar mltiplos servios como e-mail, web e
mensagens instantneas para enviar mensagens ou recuperar informao. Aplicaes como clientes de e-mail, navegadores e clientes
de envio de mensagem instantnea permitem s pessoas usarem os computadores e redes para enviar mensagens e encontrar informao.
Dados de cada uma dessas aplicaes so empacotadas, transportadas e entregues ao servidor daemon apropriado ou aplicao no dispositivo de destino. Os processos descritos na camada de Transporte do modelo OSI aceitam dados da Camada de Aplicao e
os preparam para endereamento na camada de Rede. A camada de Transporte responsvel pela transferncia fim-a-fim geral de dados
de aplicao.
Neste captulo, ns examinaremos o papel da camada de Transporte no encapsulamento de dados de aplicao para uso pela
camada de Rede. A camada de Transporte tambm abrange estas funes:

Habilita a comunicao de mltiplas aplicaes na rede ao mesmo tempo em um nico dispositivo


Assegura que, se necessrio, todos os dados sejam recebidos confiavelmente e em ordem pela aplicao correta.
Emprega mecanismos de tratamento de erros

Objetivos
Aps o trmino deste captulo, voc ser capaz de:

Explicar a necessidade da camada de Transporte.


Identificar o papel da camada de Transporte, visto que, ela proporciona a transferncia fim-a-fim de dados entre aplicaes.
Descrever o papel de dois protocolos TCP/IP da camada de Transporte: TCP e UDP.
Explicar as funes principais da camada de Transporte, incluindo confiabilidade, endereamento de porta e segmentao.
Explicar como o TCP e o UDP gerenciam funes-chave.
Identificar quando apropriado usar o TCP ou o UDP e apresentar exemplos de aplicaes que usam cada um desses protocolos.

4.1.1 PROPSITO DA CAMADA DE TRANSPORTE

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:

Rastrear a comunicao individual entre as aplicaes nos hosts de origem e destino.


Segmentar dados e gerenciar cada segmento
Reagrupar os segmentos em fluxos de dados de aplicao
Identificar as diferentes aplicaes

Rastreamento de Conversaes Individuais


Qualquer host pode ter mltiplas aplicaes que se comunicam atravs da rede. Cada uma destas aplicaes ir se comunicar com uma
ou mais aplicaes em hosts remotos. responsabilidade da camada de Transporte manter fluxos mltiplos de comunicao entre estas
aplicaes.

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.

Separao de Mltiplas Comunicaes


Considere um computador conectado a uma rede que est simultaneamente recebendo e enviando e-mails e mensagens instantneas,
exibindo websites e conduzindo uma chamada VoIP. Cada uma destas aplicaes est enviando e recebendo dados atravs da rede ao
mesmo tempo. No entanto, os dados da chamada telefnica no so direcionados ao navegador web, e o texto de uma mensagem
instantnea no aparece em um e-mail.
Alm disso, os usurios necessitam que um e-mail ou pgina web sejam completamente recebidos e apresentados para que a
informao seja considerada til. Atrasos leves so considerados aceitveis para assegurar que a informao completa seja recebida e
apresentada.
Em contraste, pequenas perdas ocasionada de partes de uma conversa telefnica pode ser considerada aceitvel. Uma pessoa
pode inferir a perda de udio a partir do contexto da conversa ou pedir a outra pessoa para repetir o que foi dito. Isto considerado
prefervel a atrasos que resultariam de pedido rede para gerenciar e reenviar os segmentos perdidos. Neste exemplo, o usurio - no
a rede - gerencia o reenvio ou substituio da informao perdida.

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.

4.1.2 CONTROLE DAS CONVERSAES

As funes principais especificadas por todos os protocolos da camada de Transporte incluem:


Segmentao e Reagrupamento - A maioria das redes tem uma limitao da quantidade de dados que podem ser includos em uma
nica PDU. A camada de Transporte divide os dados da aplicao em blocos de dados que esto em um tamanho apropriado. No destino,
a camada de Transporte reagrupa os dados antes de envi-los aplicao ou servio de destino.
Multiplexao de Conversao - Podem haver muitas aplicaes ou servios sendo executados em cada host na rede. Cada uma destas
aplicaes ou servios designado a um endereo conhecido como uma porta para que a camada de Transporte possa determinar com
qual aplicao ou servio o dado identificado.
Alm de usar a informao contida nos cabealhos, para as funes bsicas de segmentao e reagrupamento de dados, alguns
protocolos da camada de Transporte fornecem:

Conversaes orientadas conexo


Entrega Confivel
Reconstruo de dados ordenados
Controle de Fluxo

Estabelecimento de uma Sesso


A camada de Transporte pode fornecer essa orientao de conexo atravs da criao de sesses entre as aplicaes. Estas
conexes preparam as aplicaes para se comunicarem entre si antes que qualquer dado seja transmitido. Dentro destas
sesses, os dados para uma comunicao entre as duas aplicaes podem ser gerenciados de perto.
Entrega Confivel
Por muitas razes, possvel que um segmento de dados se torne corrompido, ou completamente perdido, quando ele
transmitido atravs da rede. A camada de Transporte pode assegurar que todos rastreiem os segmentos e atinjam seu destino
tendo o dispositivo de origem para retransmitir qualquer dado que seja perdido.
Entrega na Mesma Ordem
Devido ao fato de que as redes podem fornecer mltiplas rotas que podem ter diferentes tempos de transmisso, os dados
podem chegar na ordem errada. Atravs da numerao e sequenciamento dos segmentos, a camada de Transporte pode
assegurar que esses segmentos sejam reagrupados na ordem apropriada.
Controle de Fluxo
Os hosts de rede tm recursos limitados, como memria e largura de banda. Quando a camada de Transporte est ciente de
que esses recursos esto sobrecarregados, alguns protocolos podem solicitar que a aplicao de envio reduza a taxa de
fluxo de dados. Isto feito na camada de Transporte regulando a quantidade de dados que a origem transmite como um
grupo. O controle de fluxo pode prevenir a perda de segmentos na rede e evitar a necessidade de retransmisso.
medida que os protocolos forem discutidos neste captulo, estes servios sero explicados mais detalhadamente.

4.1.3 SUPORTE DE COMUNICAO CONFIVEL

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:

Rastreamento de dados transmitidos


Confirmao de dados recebidos
Retransmisso de quaisquer dados no confirmados

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.

4.1.4 TCD E UDP

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.

Pacotes de dados que percorrem uma rede IP.


O controle de fluxo o gerenciamento do fluxo de dados entre os dispositivos de uma rede. usado para evitar que dados demais cheguem antes que
o dispositivo possa lidar com eles, causando sobrecarga de dados.
4

11
As aplicaes que usam TCP so:

Navegadores web
E-mail
FTP

4.1.5 ENDEREAMENTO DE PORTA

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

Portas comuns TCP/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

4.1.6 SEGMENTAO E REAGRUPAMENTO DIVIDIR E CONQUISTAR

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

4.2.1 TORNANDO AS CONVERSAES CONFIVEIS

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.

4.2.2 PROCESSOS TCP EM SERVIDORES

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

Portas de Origem de Solicitaes

Portas de Destino de Respostas

17
Portas de Origem de Respostas

4.2.3 ESTABELECIMENTO E TRMINO DE CONEXES TCP

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:

Estabelece que o dispositivo de destino est presente na rede


Verifica se o dispositivo de destino tem um servio ativo e est aceitando solicitaes no nmero de porta de destino
que o cliente pretende usar para a sesso.
Informa o dispositivo de destino que o cliente de origem pretende estabelecer uma sesso de comunicao nessa
nmero de porta

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:

URG - Indicador urgente de campo significativo


ACK - Campo significativo de confirmao
PSH - funo Push
RST - Restabelecer a conexo

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

SYN - Sincronizar nmeros de sequncia8


FIN - No h mais dados do remetente

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

4.2.4 HANDSHAKE TRIPLO TCP

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:

Negao de estabelecimento de sesses TCP


Apenas permitindo sesses que sejam estabelecidas para servios especficos
Apenas permitindo trfego como parte de sesses j estabelecidas
Esta segurana pode ser implementada para todas as sesses TCP ou apenas para as sesses selecionadas.

4.2.5 ENCERRAMENTO DA SESSO TCP

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.

4.3.1 REAGRUPAMENTO DE SEGMENTOS TCP

Refazendo o Sequenciamento de Segmentos na Ordem Transmitida


Quando os servios enviam dados usando o TCP, os segmentos podem chegar no seu destino fora de ordem. Para a mensagem original
ser entendida pelo receptor, os dados desses segmentos so reagrupados na sua ordem original. Os nmeros de sequncia so designados no cabealho de cada pacote para alcanar essa meta.
Durante a instalao de uma sesso, um nmero de sequncia inicial (ISN) definido. Este nmero de sequncia inicial representa o valor de partida para os bytes para esta sesso que ser transmitida para a aplicao receptora. medida que os dados so
transmitidos durante a sesso, o nmero de sequncia incrementado pelo nmero de bytes que foram transmitidos. Este rastreamento
de bytes de dados habilita a cada segmento ser identificado e reconhecido de forma nica. Segmentos perdidos podem ser identificados.
Os nmeros de sequncia do segmento habilitam a confiabilidade, indicando como reagrupar e reordenar segmentos recebidos, conforme mostrado na figura.
O processo TCP do receptor coloca os dados de um segmento em um buffer. Os segmentos so colocados na ordem de nmero
de sequncia apropriada e passados para a camada de Aplicao quando reagrupados. Quaisquer segmentos que cheguem com nmeros
de sequncia no contguos so retidos para processamento posterior. Ento, quando os segmentos com os bytes perdidos chegam,
esses segmentos so processados.

23

4.3.2 CONFIRMAO TCP COM JANELAMENTO

Confirmao de Recebimento de Segmentos


Uma das funes do TCP assegurar que cada segmento atinja o seu destino. Os servios TCP no host de destino confirmam os dados
que ele recebeu para a aplicao de origem.
O nmero de sequncia do cabealho do segmento e o nmero de confirmao so usados juntamente para confirmar o recebimento dos bytes de dados contidos nos segmentos. O nmero de sequncia o nmero relativo de bytes que foram transmitidos nessa
sesso mais 1 (que o nmero do primeiro byte de dado no segmento corrente). O TCP usa o nmero de confirmao em segmentos
enviados de volta origem para indicar o prximo byte que o receptor espera receber nessa sesso. Isto chamado de confirmao
esperada.
A origem informada de que o destino recebeu todos os bytes neste fluxo de dados at, mas no incluindo, o byte indicado
pelo nmero de confirmao. Espera-se que o host de envio envie um segmento que use um nmero de sequncia que igual ao nmero
de confirmao.
Lembre-se, cada conexo na verdade composta por duas sesses unidirecionais. Os nmeros de sequncia e de confirmao
esto sendo trocados em ambas as direes.
No exemplo da figura, o host da esquerda est enviando dados para o host da direita. Ele envia um segmento contendo 10
bytes de dados para essa sesso e um nmero de sequncia igual a 1 no cabealho.
O host receptor da direita recebe o segmento na Camada 4 e determina que o nmero de sequncia 1 e que ele tem 10 bytes
de dados. O host ento envia um segmento de volta ao host da esquerda para confirmar o recebimento deste dado. Neste segmento, o
host define o nmero de confirmao em 11 para indicar que o prximo byte de dados que ele espera receber nessa sesso o byte
nmero 11.
Quando o host de envio da esquerda recebe essa confirmao, ele pode agora enviar o prximo segmento contendo dados
para essa sesso iniciando com o byte nmero 11.
Examinando esse exemplo, se o host de envio tiver que esperar pela confirmao de recebimento de cada 10 bytes, a rede teria
muito overhead. Para reduzir o overhead dessas confirmaes, mltiplos segmentos de dados podem ser enviados e confirmados com
uma nica mensagem TCP na direo oposta. Este confirmao contm um nmero de confirmao baseado no nmero total de bytes
recebidos na sesso.
Por exemplo, comeando com um nmero de sequncia de 2000, se 10 segmentos de 1000 bytes cada fossem recebidos, o
nmero de confirmao 12001 seria retornado origem.

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.

4.3.3 RETRANSMISSO TCP

Lidando com a Perda de Segmento


No importa quanto uma rede seja bem projetada, a perda de dados ocorrer ocasionalmente. Portanto, o TCP fornece mtodos para
gerenciar essas perdas de segmentos. Entre estes mtodos h um mecanismo que retransmite segmentos com dados no confirmados.
Um servio de host de destino usando TCP geralmente reconhece os dados apenas para bytes sequenciais contguos. Se estiver
faltando um ou mais segmentos, apenas os dados nos segmentos que completam o fluxo sero confirmados.
Por exemplo, se os segmentos com nmeros de sequncia de 1500 a 3000 e de 3400 a 3500 fossem recebidos, o nmero de
confirmao seria 3001. Isto porque existem segmentos com os nmeros de sequncia de 3001 a 3399 que no foram recebidos.
Quando o TCP no host de origem no recebeu uma confirmao depois de um perodo pr-determinado de tempo, ele voltar
ao ltimo nmero de confirmao que recebeu e retransmitir os dados a partir daquele ponto para frente.
O processo de retransmisso no especificado pela RFC, mas deixado para a implementao especfica do TCP.
Para uma implementao de TCP tpica, um host pode transmitir um segmento, colocar uma cpia do segmento numa fila de
retransmisso e iniciar uma contagem. Quando a confirmao do dado recebida, o segmento deletado da fila. Se a confirmao no
for recebida antes da contagem expirar, o segmento retransmitido.
Os hosts atualmente podem tambm empregar um atributo adicional chamado de Confirmaes Seletivas. Se ambos os hosts
suportam Confirmaes Seletivas, possvel para o destino confirmar bytes em segmentos no contguos e o host precisar apenas
retransmitir os dados perdidos.

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

4.3.4 CONTROLE DE CONGESTIONAMENTO TCP MINIMIZANDO A PERDA DE SEGMENTOS


Controle de Fluxo
O TCP tambm fornece mecanismos para o controle de fluxo. O controle de fluxo ajuda na confiabilidade de transmisses TCP atravs
do ajuste da taxa de fluxo de dados efetiva entre os dois servios na sesso. Quando a origem informada de que uma quantidade
especificada de dados nos segmentos recebida, ela pode continuar a enviar mais dados para essa sesso.
O campo Tamanho de Janela no cabealho TCP especifica a quantidade de dados que podem ser transmitidos antes que uma
confirmao precise ser recebida. O tamanho de janela inicial determinado durante a inicializao da sesso atravs do handshake
triplo.
O mecanismo de feedback do TCP ajusta a taxa efetiva de transmisso de dados at o fluxo mximo que a rede e o dispositivo
de destino podem suportar sem perda. O TCP tenta gerenciar a taxa de transmisso de modo que todos os dados sejam recebidos e as
retransmisses sejam minimizadas.
Veja a figura para uma representao simplificada do tamanho de janela e confirmaes.
Neste exemplo, o tamanho de janela inicial para uma sesso TCP representada definido em 3000 bytes. Quando o remetente
tiver transmitido 3000 bytes, ele espera por uma confirmao destes bytes antes de transmitir mais segmentos nesta sesso.
Quando o remetente tiver recebido esta confirmao do receptor, o remetente poder transmitir mais 3000 bytes.

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.

Reduo do Tamanho de Janela


Um outro modo de controlar o fluxo de dados usar tamanhos de janela dinmicos. Quando os recursos da rede so restringidos, o TCP
pode reduzir o tamanho de janela para exigir que os segmentos recebidos sejam confirmados mais frequentemente. Isto diminui efetivamente a velocidade da taxa de transmisso porque a origem espera que os dados sejam confirmados mais frequentemente.
O host de recebimento envia o valor do tamanho de janela ao remetente para indicar o nmero de bytes que ele est preparado
para receber como parte desta sesso. Se o destino precisar diminuir a velocidade da taxa de comunicao por causa de memria de
buffer limitada, ele pode enviar um valor de tamanho de janela pequeno para a origem como parte de uma confirmao.
Conforme mostrado na figura, se um host de recebimento tem um congestionamento, ele pode responder ao host de envio
com um segmento com tamanho de janela reduzido. Neste grfico, h uma perda de um dos segmentos. O receptor mudou o campo da
janela no cabealho TCP de segmentos retornados nesta conversao de 3000 para 1500. Isto levou o remetente a reduzir o tamanho de
janela para 1500.
Aps perodos de transmisso com nenhuma perda de dados ou restrio de recursos, o receptor comear a aumentar o
campo da janela. Isto reduz a sobrecarga na rede porque poucas confirmaes precisam ser enviadas. O tamanho de janela continuar a
aumentar at que haja perda de dados, o que levar diminuio novamente.
Este aumento e diminuio dinmico no tamanho de janela um processo contnuo no TCP, que determina o tamanho de
janela adequado para cada sesso TCP. Em redes altamente eficientes, os tamanhos de janela podem se tornar muito grandes porque os
dados no esto sendo perdidos. Nas redes em que a infraestrutura subjacente pressionada, o tamanho de janela provavelmente
permanecer pequeno.
Links
Detalhes das vrias caractersticas de gerenciamento de congestionamento do TCP podem ser encontrados na RFC 2581.
http://www.ietf.org/rfc/rfc2581.txt

27

4.4.1 UDP BAIXO OVERHEAD VERSUS CONFIABILIDADE

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:

Domain Name System (DNS)


Simple Network Management Protocol (SNMP)
Protocolo de Configurao Dinmica de Host (DHCP)
Routing Information Protocol (RIP)
Trivial File Transfer Protocol (TFTP)
Jogos On-line

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

4.4.2 REAGRUPAMENTO DE DATAGRAMA UDP

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.

4.4.3 SOLICITAO UDP E PROCESSOS DE SERVIDORES

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

4.4.4 PROCESSOS DE CLIENTE UDP

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

Solicitar Portas de Origem

30
Responder Portas de Destino

Solicitar Portas de Origem

RESUMO

A camada de Transporte prov as necessidades da rede de dados atravs de:

Diviso de dados recebidos de uma aplicao em segmentos


Adio de um cabealho para identificar e gerenciar cada segmento
Uso da informao do cabealho para reagrupar os segmentos de volta nos dados da aplicao
Transmitir os dados agrupados para a aplicao correta

O UDP e o TCP so os protocolos da camada de Transporte mais comuns.


Os datagramas UDP e os segmentos TCP tm cabealhos pr-fixados aos dados que incluem o nmero de porta de origem e o
nmero de porta de destino. Estes nmeros de porta habilitam os dados a serem redirecionados para a aplicao correta sendo executada no computador de destino.
O TCP no passa qualquer dado para a rede at que saiba que o destino est pronto para receb-lo. O TCP ento gerencia o
fluxo de dados e reenvia quaisquer segmentos de dados que no so confirmados conforme sejam recebidos no destino. O TCP usa
mecanismos de handshake triplo, temporizador e confirmaes, e janelamento dinmico para alcanar estas caractersticas confiveis.
Esta confiabilidade, no entanto, impe uma sobrecarga na rede em termos de cabealhos de segmentos muito maior e mais trfego de
rede entre a origem e o destino no gerenciamento do transporte de dados.
Se os dados da aplicao precisam ser entregues rapidamente pela rede, ou se a largura de banda da rede no suporta a sobrecarga ou overhead de mensagens de controle sendo trocadas entre os sistemas de origem e destino, o UDP ser o protocolo da
camada de Transporte preferido pelo programador. Devido ao fato do UDP no rastrear ou confirmar o recebimento de datagramas no
destino - ele apenas passa os datagramas recebidos para a camada de Aplicao medida que eles chegam - e no reenvia datagramas

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.

Onde os processos da Camada de Transporte acontecem?


Os processos da Camada de Transporte acontecem na Camada de Aplicao e na Camada de Internet do modelo TCP/IP, e
entre as Camadas de Sesso e de Rede do modelo OSI.

2.

Quais as responsabilidades da Camada de Transporte?


A Camada de Transporte responsvel por:

Manter a conversao entre os aplicativos nos hosts de origem e destino

Segmentar dados e adicionar um cabealho para identificar e gerenciar cada segmento

Usar as informaes do cabealho para reunir os segmentos

Passar os dados reunidos ao aplicativo correto

3.

O que a segmentao fornece s comunicaes?


Segmentao de dados conforme a Camada de Transporte, fornece os meios para enviar e receber dados ao executar mltiplos
aplicativos ao mesmo tempo em um computador.

4.

Quais so as funes principais especificadas por todos os protocolos da Camada de Transporte?


As principais funes especificadas por todos os protocolos da Camada de Transporte incluem:

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.

Em termos de rede, o que confiabilidade?


Em termos de rede, confiabilidade significa garantir que cada segmento que a origem envie chegue ao destino.

6.

Liste trs aplicativos que usam TCP.


Aplicaes que usam TCP incluem:

Navegao

E-Mail

Transferncia de arquivos

32
7.

Liste trs aplicaes que usam UDP.


Aplicaes que usam UDP incluem:

Domain Name System (DNS)

Vdeo de Stream

Voz sobre IP (VoIP)

8.

Quais so os diferentes tipos de nmero de portas?


Os diferentes tipos de nmeros de portas so:

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.

O que est contido no cabealho de cada datagrama ou segmento?


O nmero de porta de origem e destino.

10. Qual a finalidade de um nmero de sequncia?


Um nmero de sequncia permite que as funes da Camada de Transporte no host de destino renam segmentos na ordem
na qual elas foram transmitidas.
11. Qual seria uma forma de melhorar a segurana em um servidor?
Uma forma de melhorar a segurana restringir o acesso ao servidor apenas para aquelas portas associadas aos servios e
aplicaes que devem ser acessveis a solicitantes autorizados.
12. Descreva o handshake triplo do TCP.
O handshake triplo:

Estabelece que o dispositivo de destino est presente na rede

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.

Domain Name System (DNS)

Simple Network Management Protocol (SNMP)

Protocolo DHCP

Protocolo RIP

Protocolo TFTP

Jogos online

33

4.0.1 INTRODUO AO CAPTULO

4.1.1 PROPSITO DA CAMADA DE TRANSPORTE

4.1.2 CONTROLE DAS CONVERSAES

4.1.3 SUPORTE DE COMUNICAO CONFIVEL

4.1.4 TCD E UDP

10

4.1.5 ENDEREAMENTO DE PORTA

11

4.1.6 SEGMENTAO E REAGRUPAMENTO DIVIDIR E CONQUISTAR

14

4.2.1 TORNANDO AS CONVERSAES CONFIVEIS

15

4.2.2 PROCESSOS TCP EM SERVIDORES

15

4.2.3 ESTABELECIMENTO E TRMINO DE CONEXES TCP

17

4.2.4 HANDSHAKE TRIPLO TCP

19

4.2.5 ENCERRAMENTO DA SESSO TCP

21

4.3.1 REAGRUPAMENTO DE SEGMENTOS TCP

22

4.3.2 CONFIRMAO TCP COM JANELAMENTO

23

4.3.3 RETRANSMISSO TCP

24

4.3.4 CONTROLE DE CONGESTIONAMENTO TCP MINIMIZANDO A PERDA DE SEGMENTOS

25

4.4.1 UDP BAIXO OVERHEAD VERSUS CONFIABILIDADE

27

4.4.2 REAGRUPAMENTO DE DATAGRAMA UDP

28

4.4.3 SOLICITAO UDP E PROCESSOS DE SERVIDORES

28

4.4.4 PROCESSOS DE CLIENTE UDP

29

RESUMO

30

QUESTIONRIO

31