Vous êtes sur la page 1sur 9

TCP & UDP

Conceitos fundamentais

Thiago Morais Segurana da Informao 1o Perodo Noturno Dezembro / 2012

Sumrio
TCP Uma viso geral Funcionamento do TCP O conceito de portas TCP O que uma porta TCP? UDP Uma viso geral Portas UDP Comparando UDP e TCP Bibliografia Pg. 1 Pg. 2 Pg. 3 Pg. 4 Pg. 5 Pg. 6 Pg. 6 Pg. 7

TCP Uma viso geral


O Transmission Control Protocol (TCP) , sem dvidas, um dos mais importantes protocolos da famlia TCP/IP. um padro defnido na RFC 793, "Transmission Control Protocol (TCP)", que fornece um servio de entrega de pacotes confvel e orientado por conexo. Ser orientado por conexo, signifca que todos os aplicativos baseados em TCP como protocolo de transporte, antes de iniciar a troca de dados, precisam estabelecer uma conexo. Na conexo so fornecidas, normalmente, informaes de logon, as quais identifcam o usurio que est tentando estabelecer a conexo. Um exemplo tpico so os aplicativos de FTP (CuteFTP, ES-FTP e assim por diante). Para que voc acesse um servidor de FTP, voc deve fornecer um nome de usurio e senha. Estes dados so utilizados para identifcar e autenticar o usurio. Aps a identifcao e autenticao, ser estabelecida uma sesso entre o cliente de FTP e o servidor de FTP. Algumas caractersticas do TCP: Garante a entrega de datagramas IP Esta talvez seja a principal funo do TCP, ou seja, garantir que os pacotes sejam entregues sem alteraes, sem terem sido corrompidos e na ordem correta. O TCP tem uma srie de mecanismos para garantir esta entrega. Executa a segmentao e reagrupamento de grandes blocos de dados enviados pelos programas e garante o sequenciamento adequado e entrega ordenada de dados segmentados Esta caracterstica refere-se a funo de dividir grandes arquivos em pacotes menores e transmitir 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 de destino. Verifica a integridade dos dados transmitidos usando clculos de soma de verificao O TCP faz verifcaes para garantir que os dados no foram alterados ou corrompidos durante o transporte entre a origem e o destino. Envia mensagens positivas dependendo do recebimento bem-sucedido dos dados. Ao usar confirmaes seletivas, tambm so enviadas confirmaes negativas para os dados que no foram recebidos No destino, o TCP recebe os pacotes, verifca se esto OK e, em caso afrmativo, envia uma mensagem para a origem, confrmando cada pacote que foi recebido corretamente. Caso
Pgina 1

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. Com esse mecanismo, apenas pacotes com problemas tero que ser reenviados, o que reduz o trfego na rede e agiliza o envio dos pacotes. Oferece um mtodo preferencial de transporte de programas que devem usar transmisso confivel de dados baseada em sesses, como bancos de dados cliente/servidor e programas de correio eletrnico Ou seja, o TCP muito mais confvel do que o UDP e indicado para programas e servios que dependam de uma entrega confvel de dados.

Funcionamento do TCP
O TCP baseia-se na comunicao ponto a ponto entre dois hosts de rede. O TCP recebe os dados de programas e processa esses dados como um fuxo de bytes. Os bytes so agrupados em segmentos que o TCP numera e seqncia para entrega. Estes segmentos so mais conhecidos como Pacotes. Antes que dois hosts TCP possam trocar dados, devem primeiro estabelecer uma sesso entre si. Uma sesso TCP inicializada atravs de um processo conhecido como um tree-way handshake (algo como Um Aperto de Mo Triplo). Esse processo sincroniza os nmeros de seqncia e oferece informaes de controle necessrias para estabelecer uma conexo virtual entre os dois hosts. De uma maneira simplifcada, o processo de tree-way handshake, pode ser descrito atravs dos seguintes passos: O computador de origem solicita o estabelecimento de uma sesso com o computador de destino. Por exemplo, voc utiliza um programa de FTP (origem) para estabelecer uma sesso com um servidor de FTP (destino). O computador de destino recebe a requisio, verifica as credenciais enviadas (tais como as informaes de logon e senha) e envia de volta para o cliente, informaes que sero utilizadas pelo destas O cliente, para que estabelecer o servidor recebe
Pgina 2

efetivamente ir

sesso. o cliente

As e

informaes enviadas nesta etapa so importantes, pois atravs informaes de identificar de liberar ou no o acesso. computador origem as informaes confirmao

enviadas

pelo

servidor

envia

estas

confirmaes

de

volta

ao

servidor. O servidor recebe as informaes, verifica que elas esto corretas e estabelece a sesso. A partir deste momento, origem e destino esto autenticados e aptos a trocar informaes usando o protocolo TCP. Se por algum motivo, as informaes enviadas pela origem no estiverem corretas, a sesso no ser estabelecida e uma mensagem de erro ser enviada de volta ao computador de origem. Depois de concludo o tree-way handshake inicial, os segmentos so enviados e confrmados de forma seqencial entre os hosts remetente e destinatrio. Um processo de handshake semelhante usado pelo TCP antes de fechar a conexo para verifcar se os dois hosts acabaram de enviar e receber todos os dados. Os segmentos TCP so encapsulados e enviados em datagramas IP, conforme apresentado na fgura a seguir, obtida na ajuda do Windows 2000 Server:

O conceito de portas TCP


Os programas TCP usam nmeros de porta reservados ou conhecidos, conforme apresentado na seguinte ilustrao, da ajuda do Windows 2000 Server:

Pgina 3

O que uma porta TCP?


Bem, sem entrar em detalhes tcnicos do TCP/IP, vou explicar, atravs de um exemplo prtico, o conceito de porta. Vamos imaginar um usurio, utilizando um computador com conexo Internet. Este usurio, pode, ao mesmo tempo, acessar um ou mais sites da Internet, usar o Outlook Express para ler suas mensagens de email, estar conectado a um servidor de FTP, usando um programa como o WS-FTP, para fazer download de um ou mais arquivos, estar jogando DOOM atravs da Internet e assim por diante. Como o sistema sabe para qual dos programas se destina cada um dos pacotes que esto chegando no computador? Por exemplo, chega um determinado pacote. Este pacote para uma das janelas do Navegador, para o cliente de FTP, um comando do DOOM, referente a uma mensagem de email ou quem o destinatrio deste pacote? A resposta para esta questo o mecanismo de portas utilizado pelo TCP/IP. Cada programa trabalha com um protocolo/servio especfco, ao qual est associado um nmero de porta. Por exemplo, o servio de FTP, normalmente opera na porta 21 (na verdade usa duas portas, uma para controle e outra para o envio de dados). Todo pacote que for enviado do servidor FTP para o cliente, ter, alm dos dados que esto sendo enviados, uma srie de dados de controle, tais como o nmero do pacote, cdigo de validao dos dados e tambm o nmero da porta. Quando o pacote chega no seu computador, o sistema l no pacote o nmero da porta e sabe para quem encaminhar o pacote. Por exemplo, se voc est utilizando um cliente de FTP para fazer um download, os pacotes que chegarem, com informao de Porta = 21, sero encaminhados para o cliente de FTP, o qual ir ler o pacote e dar o destino apropriado. Outro exemplo, o protocolo HTTP, utilizado para o transporte de informaes de um servidor Web at o seu navegador, opera, por padro, na porta 80. Os pacotes que chegarem, destinados porta 80, sero encaminhados para o navegador. Se houver mais de uma janela do navegador aberta, cada uma acessando diferentes pginas, o sistema inclui informaes, alm da porta, capazes de identifcar cada janela individualmente. Com isso, quando chega um pacote para a porta 80, o sistema identifca para qual das janelas do navegador se destina o referido pacote. Em resumo: O uso do conceito de portas, permite que vrios programas estejam em funcionamento, ao mesmo tempo, no mesmo computador, trocando informaes com um ou mais servios/servidores. O lado do servidor de cada programa que usa portas TCP escuta as mensagens que
Pgina 4

chegam no seu nmero de porta conhecido. Todos os nmeros de porta de servidor TCP menores que 1.024 (e alguns nmeros mais altos) so reservados e registrados pela Internet Assigned Numbers Authority (IANA, autoridade de nmeros atribudos da Internet). Por exemplo, o servio HTTP (servidor Web), instalado em um servidor, fca sempre escutando os pacotes que chegam ao servidor. Os pacotes destinados a porta 80, sero encaminhados pelo sistema operacional para processamento do servidor Web. A tabela a seguir uma lista parcial de algumas portas de servidor TCP conhecidas usadas por programas baseados em TCP padro.

21 23 53 80 139

Servidor FTP (File Transfer Protocol) Servidor Telnet Transferncias de zona DNS (Domain Name System) Servidor da Web (HTTP) Servio de sesso de NetBIOS

UDP Uma viso geral


O User Datagram Protocol (UDP) um padro TCP/IP e est defnido pela RFC 768, "User Datagram Protocol (UDP)." O UDP usado por alguns programas em vez de TCP para o transporte rpido de dados entre hosts TCP/IP. Porm o UDP no fornece garantia de entrega e nem verifcao de dados. De uma maneira simples, dizemos que o protocolo UDP manda os dados para o destino; se vai chegar ou se vai chegar corretamente, sem erros, praticamente impossvel prever com exatido. Pode parecer estranho esta caracterstica do UDP, porm voc ver que em determinadas situaes, o fato de o UDP ser muito mais rpido do que o TCP (por no fazer verifcaes 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 verifca o seqenciamento para qualquer pacote. Um host de origem que precise de comunicao confvel deve usar TCP ou um programa que oferea seus prprios servios de seqenciamento e confrmao. As mensagens UDP so encapsuladas e enviadas em datagramas IP, conforme apresentado na seguinte ilustrao, da ajuda do Windows 2000 Server:

Pgina 5

Portas UDP
O conceito de porta UDP idntico ao conceito de portas TCP, embora tecnicamente, existam diferenas na maneira como as portas so utilizadas em cada protocolo. A idia a mesma, por exemplo, se um usurio estiver utilizando vrios programas baseados em UDP, ao mesmo tempo, no seu computador, atravs do uso de portas, que o sistema operacional sabe a qual programa se destina cada pacote UDP que chega. O lado do servidor de cada programa que usa UDP escuta as mensagens que chegam no seu nmero de porta conhecido. Todos os nmeros de porta de servidor UDP menores que 1.024 (e alguns nmeros mais altos) so reservados e registrados pela Internet Assigned Numbers Authority (IANA, autoridade de nmeros atribudos da Internet). Cada porta de servidor UDP identifcada por um nmero de porta reservado ou conhecido. A tabela a seguir mostra uma lista parcial de algumas portas de servidor UDP conhecidas usadas por programas baseados em UDP padro.

53 69 137 161 520

Consultas de nomes DNS Trivial File Transfer Protocol (TFTP) Servio de nomes de NetBIOS Simple Network Management Protocol (SNMP) Routing Information Protocol (RIP)

Comparando UDP e TCP


Geralmente, as diferenas na maneira como UDP e TCP entregam os dados assemelhamse s diferenas entre um telefonema e um carto postal. O TCP funciona como um telefonema, verifcando 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.

Pgina 6

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 verifcaes que so feitas pela TCP) e as capacidades de broadcast do UDP (por exemplo, um datagrama, vrios destinatrios) so mais adequadas do que o TCP. O UDP contrasta diretamente com os servios e recursos oferecidos por TCP. A tabela a seguir compara as diferenas em como a comunicao TCP/IP tratada dependendo do uso de UDP ou TCP para o transporte de dados.

UDP
Servio sem conexo; nenhuma sesso estabelecida entre os hosts UDP no garante ou confirma a entrega ou seqncia os dados Os programas que usam UDP so responsveis por oferecer a confiabilidade necessria ao transporte de dados UDP rpido, necessita de baixa sobrecarga e pode oferecer suporte comunicao ponto a ponto e ponto a vrios pontos

TCP
Servio orientado por conexo; uma sesso estabelecida entre os hosts TCP garante a entrega atravs do uso de confirmaes e entrega sequenciada dos dados Os programas que usam TCP tm garantia de transporte confivel de dados TCP mais lento, necessita de maior sobrecarga e pode oferecer suporte apenas comunicao ponto a ponto

Tanto UDP quanto TCP usam portas para identifcar as comunicaes para cada programa TCP/IP, conforme descrito anteriormente.

Bibliografia
Tutorial de TCP/IP Parte 11 http://bit.ly/TSX4lS

Pgina 7