Você está na página 1de 7

7.

AULA 7 CAMADA DE TRANSPORTE

Objetivos da Aula
Compreender o funcionamento da camada de transporte e de seus protocolos mais utilizados: TCP e UDP. Entender o conceito de portas. Enquanto a camada de rede est preocupada em definir a rota para conectar o host de origem ao host de destino, a principal funo da camada de transporte a comunicao fim a fim, ou seja, conectar o processo de uma aplicao que est sendo executado no host de origem e ao processo de uma aplicao executado no host servidor. Um processo pode ser definido como o ambiente em que uma aplicao executada. Uma explicao da funo da camada de transporte pode ser vista na Figura 7.1. A comunicao fim a fim permite que um usurio utilizando um Browser no Host A (executado pelo processo PA) consiga acessar a pgina Web disponvel pelo servio PB do host B.

Figura 7.1: Comunicao fim a fim Fonte: MAIA, 2009, p.186.

A camada de transporte torna transparente para a aplicao a complexidade da rede de interconexo e a localizao fsica dos hosts envolvidos na comunicao. Por exemplo, 95

a rede de interconexo entre os Hosts A e B possui 5 roteadores, porm, a camada de transporte faz com que as aplicaes PA e PB se comuniquem como se estivessem ligadas diretamente. Vale lembrar que os roteadores implementam somente as camadas necessrias para o roteamento dos pacotes (Fsica, Rede e Enlace). As camadas de Transporte e Aplicao so utilizadas apenas nos hosts de origem e destino.

7.1. Protocolos da camada de transporte do Modelo Internet


No modelo Internet a camada de transporte oferece duas opes de protocolos: TCP e UDP.

7.1.1. Protocolo TCP


O protocolo TCP (Transmission Control Protocol) juntamente com o IP, so os protocolos mais utilizados na Internet. O TCP fornece um servio de entrega de pacotes confivel e orientado por conexo. Ser orientado por conexo significa que todos os aplicativos baseados em TCP como protocolo de transporte antes de iniciar a troca de dados, precisam estabelecer uma conexo. Vejamos algumas caractersticas do TCP: Garante a entrega de datagramas IP: o TCP garante a entrega dos pacotes sem alteraes, sem terem sido corrompidos e na ordem correta. O TCP tem uma srie de mecanismos (que sero detalhados ainda nesta aula) para garantir esta entrega. Executa a segmentao e reagrupamento de grandes blocos de dados: o TCP divide grandes arquivos em pacotes menores e transmite cada pacote separadamente. Os pacotes podem ser enviados por caminhos diferentes e chegar fora de ordem. O TCP tem mecanismos para garantir que, no destino, os pacotes sejam ordenados corretamente, antes de serem entregues ao programa da camada de aplicao.

96

Verifica a integridade dos dados transmitidos usando clculos de soma de verificao: o TCP faz verificaes para garantir que os dados no foram alterados ou corrompidos durante o transporte entre a origem e o destino. Mantm uma conversao entre a origem e o destino para indicar que os dados foram entregues corretamente ou solicitar a retransmisso, em caso de erros: no destino, o TCP recebe os pacotes, verifica se esto livres de erros e, em caso afirmativo, envia uma mensagem para a origem, confirmando cada pacote que foi recebido corretamente. Caso um pacote no tenha sido recebido ou tenha sido recebido com problemas, o TCP envia uma mensagem ao computador de origem, solicitando uma retransmisso do pacote. Oferece transmisso confivel de dados para aplicaes como bancos de dados cliente/servidor: o TCP muito mais confivel do que o UDP (conforme ser mostrado mais adiante) para entrega dos dados e indicado para programas e servios que dependam de uma entrega confivel de dados.

7.1.1.1.

Funcionamento do TCP

Por ser um protocolo orientado a conexes, o host de origem e o host de destino entram em um processo de sincronizao para garantir que os dois lados esto prontos para a transmisso dos dados. Suponhamos que os hosts A e B desejam se comunicar. Para iniciar a transmisso confivel dos dados, ocorrem os seguintes passos: os hosts estabelecem uma conexo lgica para garantir que os hosts A e B esto preparados para iniciar a transmisso dos dados; depois de criada a conexo, os dispositivos iniciam a troca de dados; finalizando a troca de informaes, a conexo lgica pode ser encerrada. Para exemplificar o mecanismo de incio e trmino das conexes lgicas, vejamos como funcionam estas etapas no protocolo TCP de forma simplificada. O cabealho do protocolo TCP possui dois bits (informaes) utilizados na criao da conexo lgica: o bit SYN e o ACK (Figura 7.2). Como pode ser visto na Figura o processo ocorre em 3 fases:

97

o Host A deseja estabelecer uma conexo com o host B e envia um segmento Sx com o bit SYN ligado; ao receber o segmento, o host B responde com o segmento Sy com os bits SYN e ACK ligados, indicando que recebeu o segmento Sx e dando prosseguimento ao processo de transmisso; finalmente, a origem recebe o segmento Sy e confirma o seu desejo de estabelecer a conexo enviando o segmento Sz, com o bit ACK ligado.

Figura 7.2: Conexo lgica entre origem e destino Fonte: MAIA, 2009, p.195.

Justamente por possuir 3 passos, o processo de conexo lgica conhecido como trheeway-handshake (aperto de mo em trs vias). Aps o estabelecimento da conexo, o host A pode enviar os dados para o host B ou vice-versa. Nesta etapa, os hosts envolvidos na comunicao mantm uma conversao verificando se os dados enviados pela origem foram realmente recebidos pelo destino. Caso algum segmento dos dados enviados tenha sido perdido, o host cliente reenvia os segmentos faltantes para completar a transmisso dos dados. Aps o fim da transmisso dos dados necessrio finalizar a conexo estabelecida. A Figura 7.3 exemplifica o processo, que utiliza dois bits do protocolo TCP: o bit FIN e ACK. Inicialmente, o host A envia um segmento Sx com o bit FIN ligado, indicando que deseja encerrar a conexo; 98

O host B recebe o pedido de desconexo e envia um segmento com o bit ACK ligado reconhecendo o pedido. Ao receber o segmento, o host A est desconectado, porm o host B pode continuar enviando dados; algum tempo depois, o host B envia o segmento Sy com o bit FIN ligado, indicando o desejo de encerrar a conexo; mesmo desconectado, o host A recebe o segmento e envia um reconhecimento do pedido, e o host B, ao receb-lo, estar desconectado.

Figura 7.3: Encerramento da conexo entre origem e destino Fonte: MAIA, 2009, p.196.

7.1.2. Protocolo UDP


O UDP (User Datagram Protocol) um protocolo utilizado na camada de transporte do modelo Internet. Ele usado por alguns programas em vez de TCP para o transporte rpido de dados entre hosts. Porm o UDP no fornece garantia de entrega e nem verificao de dados. Pode parecer estranho esta caracterstica do UPD, porm voc ver que em determinadas situaes, o fato de o UDP ser muito mais rpido do que o TCP (por no fazer verificaes e por no estabelecer sesses), o uso do UDP recomendado. O protocolo UDP fornece um servio de pacotes sem conexo que oferece entrega com base no melhor esforo, ou seja, UDP no garante a entrega ou verifica o seqenciamento para qualquer pacote. Um host de origem que precise de comunicao confivel deve usar TCP ou um programa que oferea seus prprios servios de seqenciamento e confirmao. 99

Com o uso do protocolo UDP, o tratamento de erros deve ser realizado pelas camadas superiores.

7.1.3. Comparando o TCP e o UDP


Geralmente, as diferenas na maneira como UDP e TCP entregam os dados assemelham-se s diferenas entre um telefonema e um carto postal. O TCP funciona como um telefonema, verificando se o destino est disponvel e pronto para a comunicao. O UDP funciona como um carto postal as mensagens so pequenas e a entrega provvel, mas nem sempre garantida. O UDP geralmente usado por programas que transmitem pequenas quantidades de dados ao mesmo tempo ou tm necessidades em tempo real. Nessas situaes, a baixa sobrecarga do UDP (pois este no faz as verificaes que so feitas pela TCP) mais adequada que o TCP. A Tabela 7.1 compara as diferenas em como a comunicao TCP/IP tratada dependendo do uso de UDP ou TCP para o transporte de dados. Tabela 7.1: Valores dos octetos Protocolos da camada de transporte UDP Servio sem conexo; nenhuma sesso estabelecida entre os hosts. UDP no garante ou confirma a entrega ou seqncia os dados. TCP Servio orientado por conexo; uma sesso estabelecida entre os hosts. TCP garante a entrega atravs do uso de confirmaes e entrega seqenciada dos dados. Os programas que usam UDP so Os programas que usam TCP tm responsveis por oferecer a garantia de transporte confivel de dados. confiabilidade necessria ao transporte de dados. Tanto UDP quanto TCP usam portas para identificar as comunicaes entre as aplicaes de origem e destino, como ser visto a seguir.

7.2. Endereamento da camada de transporte (Portas)


O endereamento da camada de rede tem o objetivo de identificar um dispositivo. O endereamento da camada tem transporte mais especfico. Geralmente, um host (como 100

um servidor) possui inmeras aplicaes em execuo, como o servio Web, servio de emails e servios de resoluo de nomes, que sero explicados na Aula 8. O endereamento da camada de transporte tem a funo de identificar a aplicao executada individualmente e no modelo Internet chamado de portas. Para exemplificar o conceito de portas, vejamos a Figura 7.4.

Figura 7.3: Identificao utilizando portas Fonte: MAIA, 2009, p.189.

Tanto o protocolo TCP quanto o UDP utilizam o conceito de porta como forma de endereamento na camada de transporte. Uma porta identifica uma aplicao de um host, e cada host pode ter 216 portas, numeradas de 0 a 65535. As portas de 0 a 1023 so chamadas portas reservadas e destinam-se a servios previamente estabelecidos (controlados pelo IANA Internet Assigned Numbers Authority). A tabela 7.1 apresenta algumas portas reservadas, protocolo de aplicao e a descrio do servio. Tabela 7.1: Portas reservadas Protocolo Descrio FTP Transferncia de arquivos Telnet Terminal remoto SMTP Correio eletrnico HTTP Servio Web

Porta 20 23 25 80

As portas entre 1024 e 49151 so chamadas portas registradas e no so controladas pelo IANA. As portas de 49152 a 65535 so chamadas portas dinmicas, e podem ser alocadas e desalocadas dinamicamente pelo sistema operacional.

101