Você está na página 1de 7

TCP, UDP e Portas de Comunicao. Introduo: Esta a dcima primeira parte do Tutorial de TCP/IP.

. Na Parte 1 tratei dos aspectos bsicos do protocolo TCP/IP. Na Parte 2 falei sobre clculos binrios, um importante tpico para entender sobre redes, mscara de sub-rede e roteamento. Na Parte 3 falei sobre Classes de endereos, na Parte 4 fiz uma introduo ao roteamento e na Parte 5 apresentei mais alguns exemplos e anlises de como funciona o roteamento e na Parte 6 falei sobre a Tabela de Roteamento. Na Parte 7 tratei sobre a diviso de uma rede em sub-redes, conceito conhecido como subnetting. Na Parte 8 fiz uma apresentao de um dos servios mais utilizados pelo TCP/IP, que o Domain Name System: DNS. O DNS o servio de resoluo de nomes usado em todas as redes TCP/IP, inclusive pela Internet que, sem dvidas, a maior rede TCP/IP existente. Na Parte 9 fiz uma introduo ao servio Dynamic Host Configuration Protocol DHCP. Na Parte 10 fiz uma introduo ao servio Windows Internet Name Services WINS. Nesta dcima primeira parte falarei sobre o conceito de portas de comunicao. Um pouco sobre Pacotes e sobre os protocolos de Transporte O TCP/IP, na verdade, formado por um grande conjunto de diferentes protocolos e servios de rede. O nome TCP/IP deriva dos dois protocolos mais importantes e mais utilizados, que so os seguintes:

IP: um protocolo de endereamento, um protocolo de rede. Eu me arriscaria a afirmar que as principais funes do protocolo IP so endereamento e roteamento, ou de uma maneira mais simples, fornecer uma maneira para identificar unicamente cada mquina da rede (endereo IP) e uma maneira de encontrar um caminho entre a origem e o destino (Roteamento). TCP: O TCP um protocolo de transporte e executa importantes funes para garantir que os dados sejam entregues de uma maneira confivel, ou seja, sem que os dados sejam corrompidos ou alterados.

Vamos imaginar uma situao prtica, onde voc deseja enviar um arquivo com cerca de 10 MB de um computador de origem para um computador de destino. Uma das primeiras coisas que tem que ser feitas encontrar uma rota, um caminho entre a origem e o destino. Este o papel do protocolo IP, mais especificamente da funo de roteamento. Uma vez encontrado o caminho, o prximo passo dividir o arquivo de 10 MB em pacotes de tamanhos menores, os quais possam ser enviados pelos equipamentos da rede. Alm da diviso em pacotes menores, o TCP/IP tem que garantir que os pacotes sejam entregues sem erros e sem alteraes. Pode tambm acontecer de os pacotes chegarem fora de ordem. O TCP/IP tem que ser capaz de identificar a ordem correta e entregar os pacotes para o programa de destino, na ordem correta. Por exemplo, pode acontecer de o pacote nmero 10 chegar antes do pacote nmero 9. Neste caso o TCP tem que aguardar a chegada do pacote nmero 9 e entreg-los na ordem correta. Pode tambm acontecer de serem perdidos pacotes durante o transporte. Neste caso, o TCP tem que informar origem de que determinado pacote no foi recebido no tempo esperado e solicitar que este seja retransmitido. Todas estas funes garantir a integridade, a sequencia correta e solicitar retransmisso so exercidas pelo protocolo TCP Transmission Control Protocol. Alm do TCP existe tambm o UDP, o qual no faz todas estas verificaes e utilizado por determinados servios. A seguir apresento uma descrio dos protocolos TCP e UDP e um estudo comparativo.

TCP Uma Viso Geral O Transmission Control Protocol (TCP) , sem dvidas, um dos mais importantes protocolos da famlia TCP/IP. um padro definido na RFC 793, "Transmission Control Protocol (TCP)", que 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. Na conexo so fornecidas, normalmente, informaes de logon, as quais identificam o usurio que est tentando estabelecer a conexo. Um exemplo tpico so os aplicativos de FTP (Cute FTP, 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 identificar e autenticar o usurio. Aps a identificao 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 verificaes 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, verifica se esto OK 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. 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 confivel do que o UDP (conforme mostrarei mais adiante) e indicado para programas e servios que dependam de uma entrega confivel 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 fluxo 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 simplificada, 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 cliente, para estabelecer efetivamente a sesso. As informaes enviadas nesta etapa so importantes, pois atravs destas informaes que o servidor ir identificar o cliente e liberar ou no o acesso. O computador de origem recebe as informaes de confirmao enviadas pelo servidor e 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 confirmados de forma sequencial entre os hosts remetente e destinatrio. Um processo de handshake semelhante usado pelo TCP antes de fechar a conexo para verificar 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 figura 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:

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. Todas as informaes que este usurio recebe esto chegando atravs de pacotes que chegam at a placa de Modem ou at o Modem ADSL, no caso de uma conexo rpida. A pergunta que naturalmente surge : 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 especfico, 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 ao 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 identificar cada janela individualmente. Com isso, quando chega um pacote para a porta 80, o sistema identifica 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 chegam ao 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, fica sempre escutando os pacotes que chegam ao servidor. Os pacotes destinados 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 e usadas por programas baseados em TCP padro. Nmero de porta TCP Descrio Servidor FTP (File Transfer Protocol, protocolo de 20 transferncia de arquivo) (canal de dados) 21 Servidor FTP (canal de controle) 23 Servidor Telnet Transferncias de zona DNS (Domain Name System, 53 sistema de nomes de domnios) Servidor da Web (HTTP, Hypertext Transfer Protocol, 80 protocolo de transferncia de hipertexto) 139 Servio de sesso de NetBIOS Para obter uma lista atualizada e completa de todas as portas TCP conhecidas e registradas atualmente, consulte o seguinte endereo: http://www.iana.org/assignments/port-numbers UDP Uma Viso Geral O User Datagram Protocol (UDP) um padro TCP/IP e est definido 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 verificao 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, s Deus sabe. 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 sequenciamento para qualquer pacote. Um host de origem que precise de comunicao confivel deve usar TCP ou um programa que oferea seus prprios servios de sequenciamento e confirmao. As mensagens UDP so encapsuladas e enviadas em datagramas IP, conforme apresentado na seguinte ilustrao, da ajuda do Windows 2000 Server:

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 identificada 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. Nmero de porta UDP Descrio Consultas de nomes DNS (Domain Name System, sistema de 53 nomes de domnios) 69 Trivial File Transfer Protocol (TFTP) 137 Servio de nomes de NetBIOS 138 Servio de datagrama de NetBIOS 161 Simple Network Management Protocol (SNMP) Routing Information Protocol (RIP, protocolo de informaes 520 de roteamento) Para obter uma lista atualizada e completa de todas as portas TCP conhecidas e registradas atualmente, consulte o seguinte endereo: http://www.iana.org/assignments/port-numbers Comparando UDP e TCP: 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. 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) 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 TCP Servio sem conexo; nenhuma sesso Servio orientado por conexo; uma sesso estabelecida entre os hosts. estabelecida entre os hosts. UDP no garante ou confirma a entrega ou TCP garante a entrega atravs do uso de seqncia os dados. confirmaes e entrega sequenciada dos dados. Os programas que usam UDP so Os programas que usam TCP tm garantia de responsveis por oferecer a confiabilidade transporte confivel de dados. necessria ao transporte de dados. UDP rpido, necessita de baixa sobrecarga TCP mais lento, necessita de maior e pode oferecer suporte comunicao ponto sobrecarga e pode oferecer suporte apenas a ponto e ponto a vrios pontos. comunicao ponto a ponto.

Tanto UDP quanto TCP usam portas para identificar as comunicaes para cada programa TCP/IP, conforme descrito anteriormente. Concluso Nesta parte do tutorial fiz uma apresentao dos protocolos TCP e UDP, os quais so responsveis pelo transporte de pacotes em redes baseadas no TCP/IP. Voc tambm aprendeu sobre as diferenas entre os protocolos TCP e UDP e sobre o conceito de porta de comunicao.