10 - tcp,udp portas de comunicação

Upload: paulo-cardoso

Post on 15-Oct-2015

6 views

Category:

Documents


0 download

TRANSCRIPT

  • 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 aspectosbsicos do protocolo TCP/IP. Na Parte 2falei sobre clculos binrios, um importantetpico para entender sobre redes, mscara de sub-rede e roteamento. Na Parte 3 faleisobre Classes de endereos, na Parte 4 fiz uma introduo ao roteamento e na Parte5apresentei mais alguns exemplos e anlises de como funciona o roteamento ena Parte 6 falei sobre a Tabela de Roteamento. Na Parte 7 tratei sobre a diviso de umarede em sub-redes, conceito conhecido como subnetting. NaParte 8 fiz umaapresentao de um dos servios mais utilizados pelo TCP/IP, que o Domain NameSystem: DNS. O DNS o servio de resoluo de nomes usado em todas as redesTCP/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 eservios de rede. O nome TCP/IP deriva dos dois protocolos mais importantes e maisutilizados, que so os seguintes:

    IP: um protocolo de endereamento, um protocolo de rede. Eu me arriscaria a afirmar que asprincipais funes do protocolo IP so endereamento e roteamento, ou de uma maneira maissimples, fornecer uma maneira para identificar unicamente cada mquina da rede (endereo IP) euma 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 osdados sejam entregues de uma maneira confivel, ou seja, sem que os dados sejam corrompidosou alterados.

    Vamos imaginar uma situao prtica, onde voc deseja enviar um arquivo com cercade 10 MB de um computador de origem para um computador de destino. Uma dasprimeiras coisas que tem que ser feitas encontrar uma rota, um caminho entre aorigem e o destino. Este o papel do protocolo IP, mais especificamente da funo deroteamento. Uma vez encontrado o caminho, o prximo passo dividir o arquivo de10 MB em pacotes de tamanhos menores, os quais possam ser enviados pelosequipamentos da rede. Alm da diviso em pacotes menores, o TCP/IP tem quegarantir que os pacotes sejam entregues sem erros e sem alteraes. Pode tambmacontecer de os pacotes chegarem fora de ordem. O TCP/IP tem que ser capaz deidentificar a ordem correta e entregar os pacotes para o programa de destino, naordem correta. Por exemplo, pode acontecer de o pacote nmero 10 chegar antes dopacote nmero 9. Neste caso o TCP tem que aguardar a chegada do pacote nmero 9e entreg-los na ordem correta. Pode tambm acontecer de serem perdidos pacotesdurante o transporte. Neste caso, o TCP tem que informar origem de quedeterminado pacote no foi recebido no tempo esperado e solicitar que este sejaretransmitido. Todas estas funes garantir a integridade, a seqcia correta esolicitar retransmisso so exercidas pelo protocolo TCP Transmission ControlProtocol. 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 protocolosTCP 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 ControlProtocol (TCP)", que fornece um servio de entrega de pacotes confivel e orientadopor conexo. Ser orientado por conexo, significa que todos os aplicativos baseadosem TCP como protocolo de transporte, antes de iniciar a troca de dados, precisamestabelecer uma conexo. Na conexo so fornecidas, normalmente, informaes delogon, as quais identificam o usurio que est tentando estabelecer a conexo. Umexemplo tpico so os aplicativos de FTP (Cute FTP, ES-FTP e assim por diante). Paraque 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 eautenticao, 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 naordem correta. O TCP tem uma srie de mecanismos para garantir esta entrega.

    Executa a segmentao e reagrupamento de grandes blocos de dados enviados pelosprogramas e Garante o seqenciamento adequado e entrega ordenada de dadossegmentados: Esta caracterstica refere-se a funo de dividir grandes arquivos em pacotesmenores e transmitir cada pacote separadamente. Os pacotes podem ser enviados por caminhosdiferentes e chegar fora de ordem. O TCP tem mecanismos para garantir que, no destino, ospacotes sejam ordenados corretamente, antes de serem entregues ao programa de destino.

    Verifica a integridade dos dados transmitidos usando clculos de soma de verificao: O TCPfaz verificaes para garantir que os dados no foram alterados ou corrompidos durante otransporte entre a origem e o destino.

    Envia mensagens positivas dependendo do recebimento bem-sucedido dos dados. Ao usarconfirmaes seletivas, tambm so enviadas confirmaes negativas para os dados que noforam recebidos: No destino, o TCP recebe os pacotes, verifica se esto OK e, em casoafirmativo, envia uma mensagem para a origem, confirmando cada pacote que foi recebidocorretamente. Caso um pacote no tenha sido recebido ou tenha sido recebido com problemas, oTCP 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 otrfego na rede e agiliza o envio dos pacotes.

    Oferece um mtodo preferencial de transporte de programas que devem usar transmissoconfivel de dados baseada em sesses, como bancos de dados cliente/servidor e programasde correio eletrnico: Ou seja, o TCP muito mais confivel do que o UDP (conforme mostrareimais adiante) e indicado para programas e servios que dependam de uma entrega confivelde dados.

    Funcionamento do TCP

    O TCP baseia-se na comunicao ponto a ponto entre dois hosts de rede. O TCP recebeos dados de programas e processa esses dados como um fluxo de bytes. Os bytes soagrupados em segmentos que o TCP numera e seqncia para entrega. Estessegmentos so mais conhecidos como Pacotes.

    Antes que dois hosts TCP possam trocar dados, devem primeiro estabelecer umasesso entre si. Uma sesso TCP inicializada atravs de um processo conhecidocomo um tree-way handshake (algo como Um Aperto de Mo Triplo). Esse processosincroniza os nmeros de seqncia e oferece informaes de controle necessriaspara estabelecer uma conexo virtual entre os dois hosts.

    De uma maneira simplificada, o processo de tree-way handshake, pode ser descritoatravs dos seguintes passos:

    O computador de origem solicita o estabelecimento de uma sesso com o computador dedestino: Por exemplo, voc utiliza um programa de FTP (origem) para estabelecer uma sessocom 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 asinformaes de logon e senha) e envia de volta para o cliente, informaes que sero utilizadaspelo cliente, para estabelecer efetivamente a sesso. As informaes enviadas nesta etapa soimportantes, pois atravs destas informaes que o servidor ir identificar o cliente e liberar ouno o acesso.

    O computador de origem recebe as informaes de confirmao enviadas pelo servidor e enviaestas confirmaes de volta ao servidor. O servidor recebe as informaes, verifica que elasesto corretas e estabelece a sesso. A partir deste momento, origem e destino estoautenticados e aptos a trocar informaes usando o protocolo TCP. Se por algum motivo, asinformaes enviadas pela origem no estiverem corretas, a sesso no ser estabelecida e umamensagem de erro ser enviada de volta ao computador de origem.

    Depois de concludo o tree-way handshake inicial, os segmentos so enviados econfirmados de forma seqencial entre os hosts remetente e destinatrio. Um processode handshake semelhante usado pelo TCP antes de fechar a conexo para verificar seos dois hosts acabaram de enviar e receber todos os dados.

    Os segmentos TCP so encapsulados e enviados em datagramas IP, conformeapresentado 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, conformeapresentado 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 exemploprtico, o conceito de porta. Vamos imaginar um usurio, utilizando um computadorcom conexo Internet. Este usurio, pode, ao mesmo tempo, acessar um ou maissites da Internet, usar o Outlook Express para ler suas mensagens de email, estarconectado a um servidor de FTP, usando um programa como o WS-FTP, para fazerdownload de um ou mais arquivos, estar jogando DOOM atravs da Internet e assimpor 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 pacotesque esto chegando no computador?

    Por exemplo, chega um determinado pacote. Este pacote para uma das janelas doNavegador, para o cliente de FTP, um comando do DOOM, referente a umamensagem de email ou quem o destinatrio deste pacote? A resposta para estaquesto o mecanismo de portas utilizado pelo TCP/IP. Cada programa trabalha comum protocolo/servio especfico, ao qual est associado um nmero de porta. Porexemplo, o servio de FTP, normalmente opera na porta 21 (na verdade usa duasportas, uma para controle e outra para o envio de dados). Todo pacote que for enviadodo servidor FTP para o cliente, ter, alm dos dados que esto sendo enviados, umasrie de dados de controle, tais como o nmero do pacote, cdigo de validao dosdados e tambm o nmero da porta. Quando o pacote chega no seu computador, osistema l no pacote o nmero da porta e sabe para quem encaminhar o pacote. Porexemplo, se voc est utilizando um cliente de FTP para fazer um download, ospacotes que chegarem, com informao de Porta = 21, sero encaminhados para ocliente de FTP, o qual ir ler o pacote e dar o destino apropriado. Outro exemplo, oprotocolo HTTP, utilizado para o transporte de informaes de um servidor Web at oseu 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 donavegador aberta, cada uma acessando diferentes pginas, o sistema incluiinformaes, alm da porta, capazes de identificar cada janela individualmente. Comisso, quando chega um pacote para a porta 80, o sistema identifica para qual dasjanelas do navegador se destina o referido pacote.

    Em resumo: O uso do conceito de portas, permite que vrios programas estejam emfuncionamento, ao mesmo tempo, no mesmo computador, trocando informaes comum ou mais servios/servidores.

    O lado do servidor de cada programa que usa portas TCP escuta as mensagens quechegam no seu nmero de porta conhecido. Todos os nmeros de porta de servidorTCP menores que 1.024 (e alguns nmeros mais altos) so reservados e registradospela Internet Assigned Numbers Authority (IANA, autoridade de nmeros atribudos daInternet). Por exemplo, o servio HTTP (servidor Web), instalado em um servidor, ficasempre escutando os pacotes que chegam ao servidor. Os pacotes destinados aporta 80, sero encaminhados pelo sistema operacional para processamento doservidor Web.

    A tabela a seguir uma lista parcial de algumas portas de servidor TCP conhecidasusadas por programas baseados em TCP padro.

    Nmero de porta TCP Descrio

    20Servidor FTP (File Transfer Protocol, protocolo de transferncia de arquivo) (canal de dados)

    21 Servidor FTP (canal de controle)

    23 Servidor Telnet

    53Transferncias de zona DNS (Domain Name System, sistema de nomes de domnios)

    80Servidor 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 TCPpara o transporte rpido de dados entre hosts TCP/IP. Porm o UDP no fornecegarantia de entrega e nem verificao de dados. De uma maneira simples, dizemos queo protocolo UDP manda os dados para o destino; se vai chegar ou se vai chegarcorretamente, sem erros, s Deus sabe. Pode parecer estranho esta caracterstica doUPD, porm voc ver que em determinadas situaes, o fato de o UDP ser muito maisrpido do que o TCP (por no fazer verificaes e por no estabelecer sesses), o usodo UDP recomendado.

    O protocolo UDP fornece um servio de pacotes sem conexo que oferece entregacom base no melhor esforo, ou seja, UDP no garante a entrega ou verifica oseqenciamento para qualquer pacote. Um host de origem que precise de comunicaoconfivel deve usar TCP ou um programa que oferea seus prprios servios deseqenciamento e confirmao.

    As mensagens UDP so encapsuladas e enviadas em datagramas IP, conformeapresentado 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. Aidia a mesma, por exemplo, se um usurio estiver utilizando vrios programasbaseados 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 quechega.

    O lado do servidor de cada programa que usa UDP escuta as mensagens que chegamno seu nmero de porta conhecido. Todos os nmeros de porta de servidor UDPmenores que 1.024 (e alguns nmeros mais altos) so reservados e registrados pelaInternet Assigned Numbers Authority (IANA, autoridade de nmeros atribudos daInternet).

    Cada porta de servidor UDP identificada por um nmero de porta reservado ouconhecido. A tabela a seguir mostra uma lista parcial de algumas portas de servidorUDP 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

    53Consultas 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)

    520Routing Information Protocol (RIP, protocolo de informaes de roteamento)

    Para obter uma lista atualizada e completa de todas as portas TCP conhecidas eregistradas 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 dadosassemelham-se s diferenas entre um telefonema e um carto postal. O TCP funcionacomo um telefonema, verificando se o destino est disponvel e pronto para acomunicao. O UDP funciona como um carto postal as mensagens so pequenas ea entrega provvel, mas nem sempre garantida.

    UDP geralmente usado por programas que transmitem pequenas quantidades dedados ao mesmo tempo ou tm necessidades em tempo real. Nessas situaes, abaixa sobrecarga do UDP (pois este no faz as verificaes que so feitas pela TCP) eas capacidades de broadcast do UDP (por exemplo, um datagrama, vriosdestinatrios) so mais adequadas do que o TCP.

    O UDP contrasta diretamente com os servios e recursos oferecidos por TCP. A tabelaa seguir compara as diferenas em como a comunicao TCP/IP tratada dependendodo 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 ouseqncia os dados.

    TCP garante a entrega atravs do uso deconfirmaes e entrega seqenciada dosdados.

    Os programas que usam UDP soresponsveis por oferecer a confiabilidadenecessria ao transporte de dados.

    Os programas que usam TCP tm garantia detransporte confivel de dados.

    UDP rpido, necessita de baixa sobrecargae pode oferecer suporte comunicaoponto a ponto e ponto a vrios pontos.

    TCP mais lento, necessita de maiorsobrecarga e pode oferecer suporte apenas comunicao ponto a ponto.

    Tanto UDP quanto TCP usam portas para identificar as comunicaes para cadaprograma TCP/IP, conforme descrito anteriormente.

    Concluso

    Nesta parte do tutorial fiz uma apresenta o dos protocolos TCP e UDP, os quais soresponsveis pelo transporte de pacotes em redes baseadas no TCP/IP. Voc tambmaprendeu sobre as diferenas entre os protocolos TCP e UDP e sobre o conceito deporta de comunicao.