You are on page 1of 25

Introduo ao capitulo 4 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.

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 congestionamento 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 entreg-los 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.

4.1.1 proposito da camada de transporte 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.

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 Controlo 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 todorastreiem todas os segmentos 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 fe 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 controle 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 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 TCP 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. As segmentos de comunicao em UDP so chamados datagramas. Estes datagramas 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 fluxo. 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.

As aplicaes que usam TCP so:

Navegadores web

E-mail

FTP

4.1.5 Endereameno 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 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. 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) 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 conhecidas 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 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. As 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.

As 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.

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.

You might also like