You are on page 1of 6

24/1/2014 Julio Battisti

http://www.juliobattisti.com.br/artigos/windows/tcpip_p11.asp 1/6
Introduo:
Esta a dcima primeira parte do Tutorial de TCP/IP. Na Parte 1 tratei dos aspectos
bsicos do protocolo TCP/IP. Na Parte 2falei 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
5apresentei 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. NaParte 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 seqcia 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 verificae 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
24/1/2014 Julio Battisti
http://www.juliobattisti.com.br/artigos/windows/tcpip_p11.asp 2/6
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 seqenciamento 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).
24/1/2014 Julio Battisti
http://www.juliobattisti.com.br/artigos/windows/tcpip_p11.asp 3/6
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 seqencial 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
24/1/2014 Julio Battisti
http://www.juliobattisti.com.br/artigos/windows/tcpip_p11.asp 4/6
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 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 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 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, fica
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.
Nmero de porta TCP Descrio
20
Servidor FTP (File Transfer Protocol, protocolo de
transferncia de arquivo) (canal de dados)
21 Servidor FTP (canal de controle)
23 Servidor Telnet
53
Transferncias de zona DNS (Domain Name System,
sistema de nomes de domnios)
80
Servidor da Web (HTTP, Hypertext Transfer Protocol,
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
24/1/2014 Julio Battisti
http://www.juliobattisti.com.br/artigos/windows/tcpip_p11.asp 5/6
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
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.
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.
24/1/2014 Julio Battisti
http://www.juliobattisti.com.br/artigos/windows/tcpip_p11.asp 6/6
Nmero de porta UDP Descrio
53
Consultas de nomes DNS (Domain Name System, sistema de
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)
520
Routing Information Protocol (RIP, protocolo de informaes
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
estabelecida entre os hosts.
Servio orientado por conexo; uma sesso
estabelecida entre os hosts.
UDP no garante ou confirma a entrega ou
seqncia os dados.
TCP garante a entrega atravs do uso de
confirmaes e entrega seqenciada dos
dados.
Os programas que usam UDP so
responsveis por oferecer a confiabilidade
necessria ao transporte de dados.
Os programas que usam TCP tm garantia de
transporte confivel de dados.
UDP rpido, necessita de baixa sobrecarga
e pode oferecer suporte comunicao
ponto a ponto e ponto a vrios pontos.
TCP mais lento, necessita de maior
sobrecarga e pode oferecer suporte apenas
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 apresenta o 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.

You might also like