training-networking-tcpip neto

download training-networking-tcpip neto

of 106

Transcript of training-networking-tcpip neto

  • 8/14/2019 training-networking-tcpip neto

    1/106

    Apostila TCP/IP

    Wandreson Luiz Brandinowandreson.com

    [email protected]/1998

  • 8/14/2019 training-networking-tcpip neto

    2/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    1

    ndice

    1 Introduo ao TCP/IP ________________________________________________ 41.1 Histrico______________________________________________________________ 4

    1.2 Documentao_________________________________________________________ 5

    2 Endereo de Rede____________________________________________________ 6

    2.1 Endereo IP ___________________________________________________________ 7

    2.2 Classes de Endereos ___________________________________________________ 82.2.1 Endereo Loopback __________________________________________________________ 92.2.2 Endereos IP reservados______________________________________________________ 10

    2.3 Roteadores___________________________________________________________ 10

    2.4 Sub-rede_____________________________________________________________ 132.4.1 Mscara de uma Sub-Rede ____________________________________________________ 13

    2.5 Formato do datagrama IP ______________________________________________ 172.5.1 Algumas OPTIONS interessantes_______________________________________________ 20

    3 Mapeamento de endereo de rede em endereo do nvel fsico________________ 22

    3.1 Protocolo ARP________________________________________________________ 223.1.1 Formato do Pacote ARP ______________________________________________________ 24

    3.2 Protocolo RARP ______________________________________________________ 25

    3.3 Fragmentao de endereo IP em endereo fsico ___________________________ 25

    4 ICMP Internet Control message Protocol ______________________________ 284.1 Entrega de Mensagens ICMP ___________________________________________ 29

    4.2 Tipos de Mensagem ICMP______________________________________________ 294.2.1 Echo Request & Echo Reply __________________________________________________ 304.2.2 Reports unreacheble destination________________________________________________ 314.2.3 Controle de Fluxo e de Congestionamento _______________________________________ 324.2.4 Route Change Request (Redirect) ______________________________________________ 324.2.5 Detecta rota circular ou excessivamente longa ____________________________________ 334.2.6 Reporta outros problemas_____________________________________________________ 344.2.7 Sincronizao de relgio e estimativa de tempo de transito __________________________ 34

    5 Camada de Transporte _______________________________________________ 35

    5.1 Aplicaes Cliente-Servidor_____________________________________________ 355.1.1 O conceito de Porta _________________________________________________________ 365.1.2 Utilizando a Arquitetura Cliente-Servidor________________________________________ 38

    5.2 O Protocolo TCP (Transmission Control Protocol) _________________________ 395.2.1 Formato do pacote TCP ______________________________________________________ 405.2.2 Portas bem conhecidas do TCP ________________________________________________ 42

    5.3 O Protocolo UDP (User Datagram Protocol) _______________________________ 435.3.1 Formato do Pacote UDP (User Datagram Protocol) ________________________________ 435.3.2 Portas bem conhecidas do UDP ________________________________________________ 44

    6 Protocolos de Roteamento ____________________________________________ 45

  • 8/14/2019 training-networking-tcpip neto

    3/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    2

    6.1 Roteamento Direto ____________________________________________________ 45

    6.2 Roteamento Indireto___________________________________________________ 45

    6.3 Tabela de Roteamento _________________________________________________ 476.4 RotaDefault__________________________________________________________ 49

    6.5 Alguns exemplos prticos_______________________________________________ 506.5.1 Exemplo 1_________________________________________________________________ 506.5.2 Exemplo 2_________________________________________________________________ 55

    7 IGP Interior Gateway Protocol_______________________________________ 59

    7.1 RIP - Routing Information Protocol (RFC 1058) ___________________________ 617.1.1 Problemas do Protocolo RIP __________________________________________________ 617.1.2 Convergncia Lenta do RIP ___________________________________________________ 62

    7.1.2.1 Mtodo Split Horizon ___________________________________________________ 647.1.2.2 Mtodo Hold Down ____________________________________________________ 647.1.2.3 Mtodo Poison Reverse _________________________________________________ 64

    7.2 O Protocolo Hello _____________________________________________________ 64

    7.3 OSPF - Open Shortest Path First (RFC 1131) ______________________________ 657.3.1 Formato das Mensagens ______________________________________________________ 66

    7.3.1.1 Database Description ___________________________________________________ 677.3.1.2 Link Status Request ____________________________________________________ 687.3.1.3 Link Status Update _____________________________________________________ 697.3.1.4 Link Status Acknowledgement____________________________________________ 70

    7.3.2 Exemplo de Funcionamento OSPF _____________________________________________ 71

    7.4 IGRP (Interior Gateway Routing Protocol)________________________________ 74

    8 EGP - Exterior Gateway Protocol (RFC 904) _____________________________ 758.1 Cabealho Padro do EGP______________________________________________ 76

    8.2 Mensagem de Aquisio de Vizinho ______________________________________ 77

    8.3 Teste Contnuo de Funcionamento de Vizinho _____________________________ 78

    8.4 Mensagem POLL REQUEST ___________________________________________ 78

    8.5 Mensagem de Atualizao de Rotas ______________________________________ 78

    9 DNS - Domain Name System__________________________________________ 82

    9.1 Nomes Hierrquicos ___________________________________________________ 83

    9.2 Ferramenta Nslookup__________________________________________________ 85

    9.3 Configurao do DNS__________________________________________________ 86

    9.4 Resoluo de Nomes ___________________________________________________ 889.4.1 Formato da Mensagem _______________________________________________________ 88

    10 Aplicaes_______________________________________________________ 91

    10.1 Telnet Terminal Remoto ______________________________________________ 91

    10.2 FTP - Transferncia de Arquivos ________________________________________ 93

    10.3 E-mail - Mensagens Eletrnicas _________________________________________ 97

    10.4 News Group__________________________________________________________ 99

  • 8/14/2019 training-networking-tcpip neto

    4/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    3

    10.5 WWW (Word Wide Web) _____________________________________________ 100

    10.6 Ping________________________________________________________________ 102

    10.7 Finger______________________________________________________________ 10311 Evoluo e Concluso ____________________________________________ 104

    12 Bibliografia_____________________________________________________ 105

  • 8/14/2019 training-networking-tcpip neto

    5/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    4

    1 Introduo ao TCP/IP

    Com o crescimento cada vez mais acentuado das redes de computadores surge anecessidade de interconecata-las haja visto que uma grande rede formada por pequenasunidades de LAN (Local Area Network ), MAN (Metropolitan Area Network) ou WAN(Wide Area Network).

    Como existem diversos tipos de usurios e diversos tipos de aplicaes, existemtecnologias de redes que se adequam melhor a cada perfil de usurio. O problema comea asurgir quando precisamos conectar diferentes tecnologias de redes de forma transparente.

    Torna-se ento necessrio um protocolo (ou linguagem) comum que independente datecnologia de rede utilizada permita uma comunio (ou internetworking) de formatransparente. Neste contexto, o protocolo TCP/IP (Transport Control Protocol / InternetProtocol) vem suprir esta necessidade dando total transparncia aos usurios finais dasdiversas tecnologias de rede empregadas pelas diversas LANs, MANs e WANs existentes,mascarando todos os detalhes da tecnologia de Hardware utilizada.

    Na Internet usado o conceito de Open System (Sistemas Abertos), onde as especificaesso pblicas, no tm dono, ou seja, qualquer pessoa pode produzir software para estatecnologia sem que seja preciso autorizao ou pagamento de royalties para terceiros.

    A Internet j possui milhares de aplicaes, e outras tantas esto diariamente sendo criadas.Dentre todas as aplicaes algumas merecem destaque especial, como:

    Correio Eletrnico (SMTP) WWW (HTTP) Resoluo de Nomes (DNS) Transferncia de Arquivos (FTP) Terminal Remoto (TELNET) Gerenciamento (SNMP)

    1.1 Histrico

    A plataforma TCP/IP surgiu atravs dos trabalhos do DARPA (Defense Advanced

    Research Projects Agency) dos Estados Unidos, em meados da dcada de 70, constituindo aARPANET, que mais tarde se desmembrou em ARPANET, para pesquisa, e MILNET,voltada para as instituies militares.

    Vale ressaltar que desde o princpio a arquitetura TCP/IP foi concebida em um contexto deguerra (Guerra Fria), onde uma das grandes preocupaes era interligar os diversoscomputadores (independente da tecnologia de rede utilizada), de forma simples e nocentralizada, ou seja, se determinados computadores fossem eventualmente destrudos arede continuasse funcionando independente daqueles computadores, o que inclui umconceito muito forte de descentralizao, caracterstica essa que no era comum na poca.

  • 8/14/2019 training-networking-tcpip neto

    6/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    5

    Para encorajar os pesquisadores universitrios a adotar o TCP/IP, o DARPA fez umaimplementao de baixo custo, integrando-o ao sistema operacional UNIX da Universidade

    de Berkeley (BSD) j em uso em todas as universidades americanas. Alm disso, teve-se ocuidado de definir aplicaes de rede similares s j conhecidas em Unix, como rusers ercp.

    Mais tarde a NSF (National Science Foundation) estimulou o seu crescimento criando aNSFNET, que ligava centros de supercomputao espalhados por todo o Estados Unidos,numa rede de longa distncia, tambm o utilizando o protocolo TCP/IP para interligar asdiferentes tecnologias de redes.

    Devido a sua grande facilidade de implementao, baixo custo e as vantagens que esta redeoferecia, ela cresceu rapidamente e se espalhou por diversos pases, constuindo o que hoje

    conhecemos como Internet.

    Quando algum nos fala do protocolo TCP/IP logo nos vem a cabea a palavra Internet,porque a Internet s o que graas a este protocolo, vale observar que voc pode utilizaro TCP/IP independente de estar ligado a Internet. A palavra que usamos atualmente paradefinir uma rede que utiliza o TCP/IP mas no esta ligada Internet Intranet. Nestecontexto, possvel ter todas as facilidades das aplicaes Internet, ou seja, do protocoloTCP/IP, dentro de um ambiente fechado.

    Como o TCP/IP um sistemas aberto, no existe uma pessoa ou instituio responsvelpor ele. Existe sim, organismos como o IAB (Internet Activites Board) que coordena os

    esforos de pesquisa na rea, atravs de vrios grupos de trabalho, tal como o IETF(Internet Engineering Task Force). Todas estas especificaes so descritas nas RFC(Request for Comments), que detalham o conjunto de padres para comunicao entre oscomputadores, assim como as convenes de interconexo, roteamento, trfego e etc.

    1.2 Documentao

    Qualquer pessoa pode sugerir um novo padro ou alterao de um j existente, para isso elaescreve a especificao deste padro e o envia na forma de um draft(Rascunho) de umaRFC, para o NIC (Network Information Center), para ser julgado da viabilidade deaceitao ou no do padro, caso o padro seja aceito, ele recebe um nmero sequncia e

    publicado na Internet para que as pessoas tenham conhecimento dele. Um exemplo de RFCseria portanto a RFC1092, RFC734 e assim por diante. Caso o draftno seja aceito, ele simplesmente descartado.

    Existem vrios lugares na Internet que se publicam as RFCs, entre eles citamos:

    http://www.ietf.org/ http://andrew2.andrew.cmu.edu/rfc/rfc1160.html , vai trazer a RFC1160, por exemplo

  • 8/14/2019 training-networking-tcpip neto

    7/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    6

    2 Endereo de Rede

    O nvel de rede da arquitetura Internet TCP/IP exatamente o protocolo IP (InternetProtocol). Como visto anteriormente, este protocolo tem como funcionalidade bsicarotear pacotes de uma mquina para outra, dentro de uma mesma rede ou entre redesdiferentes (baseado na informao de endereo contida no pacote), utilizando a tecnologiade chaveamento de pacotes com datagrama no-confivel. Isto significa dizer que o nvelIP no faz nenhum tipo de verificao de entrega dos pacotes, nem to pouco estabelececonexo antes de transmitir qualquer dado (Connectionless Packet Delivery Service),ficando esta responsabilidade para as camadas superiores, no caso, o TCP (TransmissionControl Protocol) para dados com garantia de entrega ou UDP (User Datagram Protocol)para dados sem garantia de entrega. A Figura 2.1 mostra uma comparao entre o modelode referncia OSI e a arquitetura Internet, nele possvel ver que o protocolo IPcorrespondente exatamente ao nvel de rede do modelo OSI.

    Figura 2.1 - Modelo OSI versus Arquitetura TCP/IPAlm de rotear os pacotes pela rede, o nvel IP tambm define o endereamento universalda Internet, ou seja, neste nvel que as mquinas so diferenciadas uma das outras,atravs do seu endereo IP.

  • 8/14/2019 training-networking-tcpip neto

    8/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    7

    2.1 Endereo IP

    Para duas mquinas se comunicarem utilizando o protocolo TCP/IP, cada uma destasmquinas precisa ter um endereo IP diferente, pois atravs do endereo IP que possvelidentificar uma determinada mquina.

    Agora imagine que ao invs de voc ligar somente duas mquinas, voc queira ligarmilhes delas em diversas partes do mundo. natural pensar que a quantidade deendereos tambm seja enorme. Pensando nisso, o endereo IP foi criado como umconjunto de 32 bits para ser utilizado por todas as aplicaes que utilizem o protocoloTCP/IP. A notao desta representao mostrada a seguir:

    X.X.X.X

    Onde o valor de X varia de 0 255, ou seja, 28 = 256 possibilidades, como mostradoabaixo:

    0.0.0.0 255.255.255.255

    Observe, portanto, que o nmero mximo de computadores e elementos de rede utilizandoesta forma de endereamento seria: 4.294.967.296 (256 x 256 x 256 x 256), o que umnmero bastante representantivo, mas que j esta ficando saturado para os dias atuais1. por isso que solues como Proxy, DHCP ou o prprio IPv6 (nova verso do IP) estosendo largamente utilizados para resolver este problema de escassez de nmeros IP, comoveremos nos prximos captulos. Alguns exemplos de endereo IP seriam:

    200.241.16.8 30.10.90.155 197.240.30.1

    De forma a facilitar a compreenso ao homem, o endereo IP escrito como quatronmeros decimais separados por ponto. Cada decimal d o valor de um octeto do endereoIP (em binrio). A figura 2.2 mostra um endereo IP com a sua representao binria e asua representao decimal. A representao binria separada em quatro blocos de oitobits, j na sua forma decimal, estes blocos so agrupados e separados por ponto.

    Figura 2.2 Representao IP binria e decimal

    1 Esta conta s ilustrativa, pois a quantidade de mquinas ainda menor. Pois no estamos considerandoendereos de Loopback, IPs reservados entre outros.

  • 8/14/2019 training-networking-tcpip neto

    9/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    8

    Observe que mesmo o endereamento IP sendo bastante eficiente, as pessoas tendem a Terdificuldade para decorar nmeros, ainda mais um nmero to grande. Para resolver esteproblema foi criado o servio de DNS (Domain Name System), que associa um nome,

    geralmente mais fcil de memorizar ao respectivo nmero IP da mquina, isto porque acomunicao entre qualquer dois usurios na Internet sempre feita atravs de endereosIPs. O servio de DNS ser abordado mais adiante.

    Quando a Internet surgiu os endereos IPs eram distribudos de forma centralizada peloNIC (Network Information Center), medida que a Internet foi crescendo tornou-seimpossvel uma nica entidade distribuir os endereos IP. O NIC ento tomou a deciso dedescentralizar este servio, passando a responsabilidade para determinadas instituies decada pas. No Brasil a instituio responsvel pela distribuio dos endereos IPs e pelogerenciamento dos domnios a FAPESP. Os endereos IPs so gratuitos, antigamentebastava-se fazer uma solicitao para receber um endereo classe C, com a crescente

    escassez destes endereos os critrios mudaram um pouco, passando tambm o provedor deacesso seder alguns endereos classe C para um determinado cliente. Maiores informaessobre a poltica atual da FAPESP podem ser encontradas no sitewww.fapesp.br.

    2.2 Classes de Endereos

    Os endereos IP foram divididos em classes para facilitar o roteamento de pacotes. Nestadiviso, um endereo de classe A por exemplo tem o seu primeiro octeto reservado para oendereo de rede e os demais so utilizados para as mquinas, j o endereo classe B, temos dois primeiros octetos reservados para a rede e os demais para as mquinas, no endereode classe C os trs primeiros octetos so reservados para a rede e somente o ltimo octeto

    para as mquinas. Isto significa dizer que os endereos de classe C so usados por pequenasredes, at o limite de 256 computador (utilizando somente um endereo de classe C), j osendereos de classe B, so para redes maiores suportando at 65.536 computadores namesma rede e os de classe A suportam at 1.6777.2162. Existe ainda os endereos de ClasseD que so utilizados para enviar mensagens multicasting (uma mensagem enviada atravsde um nico endereo IP para vrios destinatrios) e o broadcasting (uma mensagemenviada atravs de um nico endereo IP para todos os destinatrios de uma determinadarede). A faixa de endereos IP de cada classe mostrada na Tabela 2.1

    De Classe de Endereo0 126 A

    128 191 B192 223 C224 239 D240 247 E

    Tabela 2.1 Faixa de endereos IP de cada classe

    2 Novamente esta conta no leva em considerao diversos aspectos, sendo o nmero de computadores menordo que o especificado.

  • 8/14/2019 training-networking-tcpip neto

    10/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    9

    A Figura 2.3 ilustra cada classe com a sua respectiva representao binria e a quantidadede Hosts (computadores) que podem estar conectados dentro daquela classe de endereo.

    Figura 2.3 - Diviso dos endereos IP em classes

    A Tabela 2.2 ilustra as classes de endereos com suas faixas decimal e sua representaobinria.

    Classe Faixa de Endereos Representao Binria UtilizaoA 1-126.X.X.X 0nnnnnnn.hhhhhhhh.hhhhhhhh.hhhhhhhhB 128-191.X.X.X 10nnnnnn.nnnnnnnn.hhhhhhhh.hhhhhhhhC 192-223.X.X.X 110nnnnn.nnnnnnnn.nnnnnnnn.hhhhhhhh

    D 224-239.X.X.X 1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx Multicast /BroadcastE 240-247.X.X.X 11110xxx.xxxxxxxx.xxxxxxxx.xxxxxxxx Reservado

    Tabela 2.2 Faixa de Endereos decimais e binriosOnde,

    X um nmero que varia de 0 255n o nmero de bits da redeh o nmero de bits do hostx o nmero de bits da rede e do host

    2.2.1 Endereo Loopback

    Observe que o endereo 127.X.X.X no mostrado na tabela acima, isto porque esteendereo foi reservado paraLoopback.

    Por conveno, toda mquina rodando TCP/IP possu uma interface deLoopback, alm dasinterfaces de rede que possui. Esta interface no conecta a rede alguma. Seu objetivo permitir teste de comunicao inter-processos dentro da mesma mquina.

  • 8/14/2019 training-networking-tcpip neto

    11/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    10

    Quando um programa usa o endereo de loopback para enviar dados, o software doprotocolo retorna o dado sem gerar trfego na rede (isto muito utilizado para se testarprogramas, inclusive quando no se tem placa de rede). A comunicao vai pelo caminho

    normal, saindo do nvel de aplicao, passando pelo nvel de transporte (TCP ou UDP) echegando ao nvel IP, que retorna a comunicao de volta ao nvel de aplicao de umoutro processo.

    A especificao determina que um pacote enviado para a rede 127 nunca deve aparecer emnenhuma rede. O endereo de loopbackutilizado pela quase totalidade das implementaes 127.0.0.1.

    2.2.2 Endereos IP reservados

    Assim como a classe de endereos 127.0.0.0 reservada para loopback, existem outrosendereos reservados que no podem ser utilizados em nenhuma mquina conectada aInternet.

    Esses endereos so reservados para redes que no se ligaro nunca Internet ou que seligaro atravs de umproxy3 (assim como as Intranets).

    Nenhum destes endereos pode ser anunciado, o que quer dizer que se uma mquina forconectada a Internet com algum endereo reservado ela no conseguir passar pelosgateways core (Core sero vistos mais a frente).

    Os endereos reservados da Internet so especificados pela RFC1597 e so os seguintes:

    Rede Mscara10.0.0.0 255.0.0.0172.16.0.0 255.240.0.0192.168.0.0 255.255.0.0

    2.3 Roteadores

    A funo bsica do protocolo IP o transporte dos blocos de dados dentro de uma mesma

    rede ou entre sub-redes. Quando uma mquina A deseja falar com uma mquina B queesteja na mesma rede, esta simplesmente joga a mensagem na rede, para ser mapeada noprotocolo de enlace e depois no fsico para chegar seu destionatrio.

    Entretanto, s vezes a mquina A deseja falar com a mquina C, que esta em uma outrasub-rede. Neste caso o trfego transferido de uma rede para outra atravs deequipamentos chamados Roteadores ou Gateways, estes equipamentos tem por finalidadeinterconectar duas redes, como mostra a Figura 2.4.

    3 Proxy e Core sero vistos mais adiante.

  • 8/14/2019 training-networking-tcpip neto

    12/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    11

    Figura 2.4 Roteador entre duas Redes

    Como vimos, o endereo IP contm informaes sobre a rede e a mquina. Como resolverento o problema do Roteador, j que este esta ligado a duas redes distintas?

    Este problema resolvido atribuindo dois endereos IP ao roteador, um endereo referenteInterface de rede da Rede 1 e outro endereo IP referente Interface de rede da Rede 2.O roteador ter portanto no mnimo dois endereos IPs. Havero casos que o roteador

    estar ligado a mais redes, logo um nmero maior de endereos IPs ser requerido.

    Um primeiro problema que surge que se uma mquina A, da Rede 1, for transferida para aRede 2, o endereo IP desta mquina ter que ser alterado. A Figura 2.5 um exemplo deconexo de redes diferentes (2 redes Ethernet e 1 Token Ring ) utilizando o protocoloTCP/IP. Vale ressaltar que temos trs classes de endereos IP, como mostrado abaixo:

    Token Ring 192.3.40.0 (classe C) Ethernet 146.134.0.0 (classe B) Ethernet 12.0.0.0 (classe A)

  • 8/14/2019 training-networking-tcpip neto

    13/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    12

    Figura 2.5 Interconexo de trs redes

    Na rede Token Ring (192.3.40.0), temos as mquinas:

    192.3.40.1 192.3.40.2 192.3.40.20 (Mquina C) 192.3.40.21 192.3.40.22 (Mquina A)

    Na rede Ethernet, 146.134.0.0, temos as mquinas:

    146.134.8.2 146.134.20.7 146.134.20.8 (Mquina A) 146.134.150.1 (Mquina B)

    Na rede Ethernet, 12.0.0.0, temos as mquinas:

    12.11.111.0 (Mquina B) 12.0.0.4 12.20.40.32 (Mquina C)

    Observe que a Mquina A, esta fazendo o papel de roteador (ou gateway) entre a redeToken-Ring (192.3.40.0) e rede Ethernet (146.134.0.0), da mesma forma que a MquinaB, entre a rede Ethernet (146.134.0.0) e rede Ethernet (12.0.0.0) e a Mquina C entre arede Ethernet (12.0.0.0) e a rede Token-Ring (192.3.40.0). Isto facilmente implementadocolocando duas placas de rede em cada uma dessas mquinas e configurando para cadaplaca de rede o seu respectivo endereo IP.

  • 8/14/2019 training-networking-tcpip neto

    14/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    13

    2.4 Sub-rede

    A classificao dos endereos IP por classes tem como objetivo facilitar o roteamento. Pelaclasse do endereo sabe-se quantos bits representam a rede e quantos a mquina O endereoclasse C geralmente usado para redes pequenas. No entanto, a alocao de um endereoclasse C para uma rede implica na alocao de 256 endereos, na verdade 254 (sodesconsiderados o ltimo nmero igual a 0 e a 255), mesmo que eles no sejam todosusados. O crescimento elevado da Internet fez escassear o nmero de endereos disponvel,principalmente porque muitas empresas tem endereo IP classe C para 254 mquinas eusam bem menos que esta quantidade. Para minimizar este problema, foi introduzido oconceito de sub-rede, que procura utilizar outros bits para identificar a rede ao invs daestao. O exemplo da Figura 2.6 mostra uma rede 128.10.0.0 que sub-divididainternamente em duas redes distintas, a rede 128.10.1.0 e a rede 128.10.2.0

    Figura 2.6 Sub-Diviso de uma rede

    Para toda a Internet, existe o endereo de rede 128.10.0.0, que o endereo que chega at oGateway(G), quando um pacote chega a este Gateway que ele vai ser roteado para umaou outra rede dependendo do IP de destino (no caso ir analisar o terceiro octeto dedestino). Em vrios casos a separao em sub-rede traz outras vantagens como melhoria naperformance da prpria rede interna, como veremos a seguir.

    Vale ressaltar que se eu no fizesse a diviso em sub-redes, o endereo 128.10.1.0 e oendereo 128.10.2.0 sero endereos de estaes e no endereos de rede como esta agora.

    2.4.1 Mscara de uma Sub-Rede

    Para definirmos se um determinado endereo IP um endereo de rede ou um endereo demquina utilizamos o conceito de mscara. A mscara de uma rede vai nos permitir dizerquais endereos so da rede e quais so de mquinas e dentro de qual rede. O formato deescrita da mscara o mesmo do nmero IP.

    A lgica bastante simples: Vamos definir que se o bit da mscara for igual a 1 significaque um endereo de rede e se for igual a 0 (zero) endereo de mquina. Neste sentido amscara 255.255.255.0 por exemplo, que na sua forma binria equivaleria a

  • 8/14/2019 training-networking-tcpip neto

    15/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    14

    11111111 11111111 11111111 00000000

    estaria indicando que os trs primeiros octetos esto sendo utilizados para rede e o ltimopara mquina. Isto significa dizer que dentro desta rede podemos ter 254 mquinas (256 =28 2 dos endereos 0 e 255). Isto porque gastamos os trs primeiros octetos para dizerqual a rede, ento s nos sobrou o ltimo para especificar as mquinas.

    A Tabela 2.3 mostra qual a mscara utilizada para as classes A, B e C, sem sub-redes.

    O padro especifica que um site usando subrede deve escolher uma mscara de 32 bits paracada rede. Bits na mscara so 1 se o bit correspondente no endereo IP for referente arede, e 0 se o bit bit correspondente no endereo IP for referente a mquina.

    Por exemplo, para redes classe A, B e C sem subrede teramos as seguintes mscaras(Tabela 2.3):

    Classe Mscara Binria Mscara DecimalA 11111111 00000000 00000000 00000000 255.0.0.0B 11111111 11111111 00000000 00000000 255.255.0.0C 11111111 11111111 11111111 00000000 255.255.255.0

    Tabela 2.3 Mscara Binria e Decimal por classe, sem sub-rede

    Pelo padro, os bits usados para sub-rede no precisam ser contguos. A seguinte mscara vlida:

    11111111 11111111 00011000 01000000

    Esta mscara, no entanto, traria endereos de mquinas na sub-rede bastante confusos, deforma que boa poltica usar bits de rede contguos.

    Exemplo:

    Vamos fazer agora um exemplo real. Suponha que tenhamos um endereos IP classe C,digamos 200.241.16.X. Quantas sub-redes eu posso ter? E quais os endereos de mquina?

    No caso mais simples, temos apenas 1 rede, no h sub-redes, logo a mascara seria:

    Binrio 11111111 11111111 11111111 00000000Decimal 255 255 255 0

    E os endereos IPs seriam de: 200.241.16.0 200.241.16.255

    S que devemos lembrar SEMPRE de retirar os endereos IP extremos. Portanto, nossosendereos vlidos so:

  • 8/14/2019 training-networking-tcpip neto

    16/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    15

    200.241.16.1 200.241.16.254

    Agora suponha que tenhamos 2 sub-redes. Nossa mscara ento seria:

    Binrio 11111111 11111111 11111111 10000000Decimal 255 255 255 128

    Neste caso estamos utilizando mais um bit para identificar a rede (o primeiro bit igual a 1do quarto octeto). Logo temos duas redes possveis. A rede 0 e a rede 1.

    Na sub-rede 0 teremos os endereos IPs de: 200.241.16.0 200.241.16.127

    Como devemos eliminar sempre os extremos, os nossos endereos vlidos nessa sub-redesero:

    200.241.16.1 200.241.16.126

    J na sub-rede 1 teremos os endereos IPs de: 200.241.16.128 200.241.16.255

    Aplicando tambm a eliminao dos extremos, ficamos com os endereos:

    200.241.16.129 200.241.16.254

    Observao Importante: De acordo com o padro a primeira sub-rede (todos os bits derede igual a zero) e a ltima sub-rede (todos os bits de rede igual a um) tem que serdescartadas. Logo, pelo padro, a rede acimano teria nenhuma mquina j quedescartaramos a primeira e a ltima sub-rede. Alguns fabricantes, entretanto, como aCisco por exemplo aceitam a mascara acima, mas vale ressaltar que isto no faz parte dopadro e portanto no recomendado.

    Agora suponha que tenhamos 4 sub-redes. Nossa mscara ento seria:

    Binrio 11111111 11111111 11111111 11000000Decimal 255 255 255 192

    Neste caso estamos utilizando mais dois bits para identificar a rede (os dois primeiros bitsigual a 1 do quarto octeto). Logo temos quatro redes possveis. A rede 00, 01, 10 e 11.

    Na sub-rede 00 teremos os endereos IPs de: 200.241.16.0 200.241.16.63

    Como devemos eliminar sempre os extremos, os nossos endereos vlidos nessa sub-redesero:

    200.241.16.1 200.241.16.62

    A explicao acima s ilustrativa, porque como j vimos esta sub-rede deve serdesconsiderada.

  • 8/14/2019 training-networking-tcpip neto

    17/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    16

    Na sub-rede 01 teremos os endereos IPs de: 200.241.16.64 200.241.16.127

    Aplicando tambm a eliminao dos extremos, ficamos com os endereos:

    200.241.16.65 200.241.16.126

    Na sub-rede 10 teremos os endereos IPs de: 200.241.16.128 200.241.16.191

    Aplicando tambm a eliminao dos extremos, ficamos com os endereos:

    200.241.16.129 200.241.16.190

    Na sub-rede 11 teremos os endereos IPs de: 200.241.16.192 200.241.16.255

    Aplicando tambm a eliminao dos extremos, ficamos com os endereos:

    200.241.16.193 200.241.16.254

    Pelo mesmo motivo mencionado anteriormente esta sub-rede tambm ser descartada.

    Para saber qual a faixa de endereos IP de cada sub-rede basta dividir 256 pelo nmero desub-redes. No exemplo anterior teriamos 256 dividido por 4 igual a 64. Isto significa dizerque cada rede teria 64 mquinas (sem considerar a eliminao dos extremos). Ficando entoos endereos distribudos da seguinte forma:

    X.X.X.0 X.X.X.63 X.X.X.64 X.X.X.127 X.X.X.128 X.X.X.191 X.X.X.192 X.X.X.255

    Lembrando sempre que o primeiro e o ltimo conjunto de endereos dever ser descartado.No caso os endereos de X.X.X.0 X.X.X.63 e X.X.X.192 X.X.X.255

    O processo para achar todas as outras sub-redes o mesmo. A tabela 2.4 faz um resumodeste processo para um endereo IP classe C at 8 sub-redes. As sub-redes grifadas nopodero ser usadas de acordo com o padro.

    Sub-Redes Mscara No. Da Sub-Rede IPs Vlidos Tot. Maq.1 255.255.255.0 - x.x.x.1 x.x.x.254 2542 255.255.255.128 0 x.x.x.1 x.x.x.126 126

    255.255.255.128 1 x.x.x.129 x.x.x.254 1264 255.255.255.192 00 x.x.x.1 x.x.x.62 62

    255.255.255.192 01 x.x.x.65 x.x.x.126 62255.255.255.192 10 x.x.x.129 x.x.x.190 62255.255.255.192 11 x.x.x.193 x.x.x.254 62

    8 255.255.255.224 000 x.x.x.1 x.x.x.30 30

  • 8/14/2019 training-networking-tcpip neto

    18/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    17

    Sub-Redes Mscara No. Da Sub-Rede IPs Vlidos Tot. Maq.255.255.255.224 001 x.x.x.33 x.x.x.62 30255.255.255.224 010 x.x.x.65 x.x.x.94 30255.255.255.224 011 x.x.x.97 x.x.x.126 30255.255.255.224 100 x.x.x.129 x.x.x.158 30255.255.255.224 101 x.x.x.161 x.x.x.190 30255.255.255.224 110 x.x.x.193 x.x.x.222 30255.255.255.224 111 x.x.x.225 x.x.x.254 30

    Tabela 2.4 N de sub-redes versus classes

    A Tabela 2.5 mostra a quantidade de sub-redes, a quantidade de mquinas de cada sub-redee a quantidade total de mquinas.

    N de Bits N Sub-Redes Quantidade de Mquinas por Sub-Rede Total Mquinas0 0 254 2541 2-2=0 0 02 4-2=2 62 1243 8-2=6 30 1804 16-2=14 14 1965 32-2=30 6 1806 64-2=62 2 124

    Tabela 2.5 N de sub-redes e mquinas de um endereo classe C

    2.5 Formato do datagrama IP

    O datagrama IP a unidade bsica de dados no nvel de rede (Internet Protocol IP). Esteprotocolo consiste em um servio de entrega de pacotes, no confivel, semreconhecimento e sem conexo de um datagrama IP. Isto significa dizer que um pacote IPpode ser perdido, duplicado atrasado ou entregue fora de ordem, mas o nvel IP nodetectar tais condies ficando esta responsabilidade para os nveis superiores. funodo nvel de rede (IP) tambm efetuar o roteamento do pacote escolhendo o caminho que eledever seguir.

    Um datagrama est dividido em duas reas, uma rea de cabealho e outra de dados. Ocabealho contm toda a informao necessria para identificar o contedo do datagrama,bem como o seu endereo origem e destino, entre outros. Na rea de dados estencapsulado o pacote do nvel superior, ou seja um pacote TCP ou UDP, que contm osdados propriamente ditos. A Figura 2.7 mostra o formato do datagrama.

  • 8/14/2019 training-networking-tcpip neto

    19/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    18

    Figura 2.7 Datagrama IP

    A Tabela 2.6 fornece a descrio de cada campo.

    Campo IP DescrioVERS Verso do protocolo IP que foi usada para criar o datagramaHLEN Comprimento do cabealho, medido em palavras de 32 bitsSERVICE-TYPE Este campo especifica como o datagrama poderia ser manipulado

    pelo sistema de comunicao. Algumas opes so:Precedence: indica a importncia do pacote, com valores desde 0(precedncia normal) at 7 (controle da rede). Este bits permite-se aotransmissor indicar a importncia de cada datagrama que ele estenviando, sem contudo garantir que estas exigncias serocumpridas pela rede. Existem ainda as opes abaixo:

    Precedncia Indica a importncia do pacote D: Baixo Delay T: Alto throughput R: Alta confiabilidade

    TOTAL-LENGTH Este campo proporciona o comprimento do datagrama medido embytes, incluindo cabealho e dados. Se o pacote for fragmentado estecampo indicar o tamanho do fragmento e no do pacote original

    IDENTIFICATION Valor inteiro que identifica o datagrama. Este campo usado paraajudar na remontagem de pacotes fragmentados. Este campo muitoimportante porque quando um gateway fragmenta um datagrama, elecopia a maioria dos campos do cabealho do datagrama em cadafragmento, ento a identificao tambm deve ser copiada, com o

  • 8/14/2019 training-networking-tcpip neto

    20/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    19

    Campo IP Descriopropsito de que o destino saiba quais fragmentos pertencem a quaisdatagramas. Cada fragmento tem o mesmo formato que umdatagrama completo.

    FRAGMENTOFF SET

    Especifica o incio do datagrama original dos dados que esto sendotransportados no fragmento. medido em unidades de 8 bytes

    FLAG Controla a fragmentao. Os dois bits de mais baixa ordemcontrolam a fragmentao. Um bit especifica se o pacote pode ou noser fragmentado e o outro bit especifica se o pacote o ltimofragmento

    TTL (Time to Live) Especifica o tempo em segundos que o datagrama est permitido apermanecer no sistema Internet. Gateways e hosts que processam odatagrama devem decrementar o campo TTL cada vez que umdatagrama passa por eles e devem remov-lo quando seu tempoexpirar.

    PROTOCOL Especifica qual protocolo de alto nvel foi usado para criar amensagem que est sendo transportada na rea de dados dodatagrama. Exemplo: FTP, HTTP, SMTP, etc

    HEADER-CHECKSUM

    Assegura a integridade dos valores do cabealho. Observe que noexiste CheckSum para os dados, somente para o cabealho, istoporque no pode haver erro na hora da entrega de um pacote aoendereo de destino, mesmo que os dados estejam com problemas.Isto significa dizer que o endereo da carta estar sempre correto, nosignificando que esta chegue ao seu destinatrio ou caso chegue, queos dados estejam corretos.

    SOURCE IP Especfica o endereo IP de origemDESTINATION IP Especfica o endereo IP de destinoOPTIONS Consiste de um nico octeto com opes diversas sobre um

    determinado pacote. Algumas delas so:

    Copy controla como os gateways tratam as opes quando hfragmentao: Se Copy = 1, ento Opes devem ser copiadas em

    todos os fragmentosOption Class Significado

    0 Datagrama de controle1 Reservado para uso futuro2 Debug3 Reservado para uso futuro

    Para cada uma das opes existe ainda um Option Number paraaumentar mais ainda a diversidade de opes.

    A prxima sesso traz alguns exemplo interesantes.PADDING Este campo pode ou no ser usado dependendo do campo OPTIONS.

    um campo complementar, usado para armazenar um determinado

  • 8/14/2019 training-networking-tcpip neto

    21/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    20

    Campo IP Descriovalor dependendo da opo anterior.

    DATA o pacote da camada de transporte (TCP ou UDP)

    Tabela 2.6 Opes do Datagrama IP

    2.5.1 Algumas OPTIONSinteressantes

    Estas opes referem-se ao campo OPTION do datagrama IP.

    Option Number 7, Option Class 0 - Record Route Option

    Esta opo permite a origem criar uma lista vazia de endereos IPs e a cada gateway quemanusear o datagrama colocar o seu IP nesta lista. Esta opo ento traria toda a rotautilizada que um determinado pacote fez entre o seu endereo de origem e o seu endereode destino. A Figura 2.8 ilustra como os endereos IP seriam armazenados.

    Figura 2.8 Endereos IP de uma rota armazenados

    Os endereos IP dos Gateways intermedirios so colocados na posio indicada pelocampo POINTER.

    Option Number 9 ou 3, Option Class 0 - Source Route Option

    Permite a origem indicar a rota a ser seguida pelo pacote IP. Pode ser strict(option 9) ouloose (option 3). No modo strict, o caminho entre dois endereos sucessivos deve consistirde uma nica conexo fsica de rede. Na opo loose, o datagrama deve seguir a sequnciade endereos, mas dois endereos sucessivos na lista podem ter vrios gateways entre eles.Esta opo utilizada quando se deseja que um datagrama passe por um caminhoespecfico independente do protocolo de roteamento. A Figura 2.9 ilustra este fato.

  • 8/14/2019 training-networking-tcpip neto

    22/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    21

    Figura 2.9 Definindo uma rota no datagrama

    Option Number 4, Option Class 2 - Timestamp Option

    Esta opo similar ao Record Route, porm cada gateway coloca na lista, alm do seu IP,

    o tempo em que o pacote chegou este gateway. A Figura 2.10 ilustra este fato.

    Figura 2.10 Armazenando uma rota e o seu tempo

    O campo OFLOW conta o nmero de gateways que no suportam esta opo.

  • 8/14/2019 training-networking-tcpip neto

    23/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    22

    3 Mapeamento de endereo de rede em endereo donvel fsico

    Duas mquinas numa mesma rede fsica s podem se comunicar se elas souberem oendereo fsico uma da outra. Observe que at agora estavamos falando de endereo derede, agora j abaixamos mais um nvel no modelo de referncia OSI e no TCP/IP. Estecaptulo tratar basicamente de transformar um endereo de rede em um endereo fsico,para isto veremos os protocolos ARP e RARP.

    3.1 Protocolo ARP

    Como dito anteriormente, para duas mquinas numa mesma rede se comunicarem, elasprecisam saber o endereo fsico uma da outra. A Figura 3.1 ilustra uma rede com topologia

    em barra.

    Figura 3.1 Computadores em uma mesma rede

    Considere as mquinas A e B da Figura 3.1, com seus endereos IP IA e IB e endereos

    fsicos FA e FB. Suponha agora, que a mquina A deseja enviar um pacote para a mquinaB, mas A sabe apenas o endereo IP de B (IB). Ser necessrio portanto, um mapeamento

    entre o endereo IP de B(IB) no seu endereo fsico, como ilustra a Figura 3.2. Mas como amquina A far isso?

    Figura 3.2 Encapasulamento nvel de rede no nvel fsico

    Primeiramente, A envia um broadcast (uma mensagem que parte de uma estao e atinge

    todas as outras estaes da mesma rede), pedindo para a mquina cujo endereo IP seja IB

    responder com seu endereo fsico FB.

  • 8/14/2019 training-networking-tcpip neto

    24/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    23

    Todas as mquinas recebem este broadcast, mas s B responde mquina que solicitou, nocaso a mquina A, s a partir deste momento que A pode enviar a mensagem para B. Esteprotocolo chamado de ARP (Address Resolution Protocol).

    De forma a otimizar a resoluo de endereos IP em fsico, o protocolo ARP usa uma cacheda seguinte forma:

    Quando A recebe a resposta de B, guarda numa tabela os endereos IP e fsico de B (IB eFB)

    Quando B recebe o broadcastde A pedindo seu endereo fsico, B guarda em sua cacheIA e FA, supondo que se A deseja falar com ela (a mquina B), certamente ela (amquina B) ter de falar com A.

    Esta informao residir no cache por um perodo apropriado.

    A seguir apresentado um exemplo de como saber quais so os endereos IPs de uma redee os seus respectivos endereos fsicos. O comando arp a, pode ser usado tanto paramquinas UNIX quanto na linha de comando do DOS.

    cairo.inf.ufes.br> arp -amilao.inf.ufes.br (200.241.16.86) at b4-66-56-ed-98-81router.inf.ufes.br (200.241.16.1) at 08-00-02-09-71-90xareu.16.241.200.in-addr.arpa (200.241.16.212) at 00-00-e8-31-8e-eb stalehelsinki.inf.ufes.br (200.241.16.253) at 00-a0-4b-03-5b-52barcelona.inf.ufes.br (200.241.16.31) at 52-54-00-db-05-feseoul.inf.ufes.br (200.241.16.20) at (incomplete) stale not respondingnovel107.inf.ufes.br (200.241.16.57) at b4-66-48-90-98-81berlim.inf.ufes.br (200.241.16.9) at 08-00-2b-e7-74-e0baleia.16.241.200.in-addr.arpa (200.241.16.220) at 00-60-08-df-4a-62 staleparis.inf.ufes.br (200.241.16.2) at 08-00-2b-3d-ef-4e stalenovel115.inf.ufes.br (200.241.16.65) at b4-66-59-85-98-81 stalealbany.inf.ufes.br (200.241.16.28) at 00-00-e8-08-71-1d stalelondres.inf.ufes.br (200.241.16.6) at 00-00-3b-80-33-94 stalenovel119.inf.ufes.br (200.241.16.69) at b4-66-52-9e-98-81 staleleeds.inf.ufes.br (200.241.16.10) at 10-00-5a-fa-37-10novel109.inf.ufes.br (200.241.16.59) at 00-00-b4-33-9f-4b staleveneza.inf.ufes.br (200.241.16.11) at 10-00-5a-fa-50-83marlin.inf.ufes.br (200.241.16.200) at 10-00-5a-fa-4d-b2camburi.inf.ufes.br (200.241.16.130) at 08-00-20-0e-9a-d3otawa.inf.ufes.br (200.241.16.23) at 00-00-e8-08-6b-f6

    Neste exemplo, possvel ver que a mquina de endereo hierrquico otawa.inf.ufes.br,possui endereo IP 200.241.16.23 e endereo fsico 00-00-e8-08-6b-f6. Seguindo a mesmaleitura, sabe-se o endereo fsico de todas as outras mquinas da rede.

  • 8/14/2019 training-networking-tcpip neto

    25/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    24

    importante ressaltar que diferentes redes (Ethernet, Token Ring, ATM, FDDI), temdiferentes implementaes do ARP. Sendo isto totalmente transparente para arquiteturaTCP/IP, j que tendo o endereo fsico a preocupao de entrega deste pacote nesta rede

    fica por conta dos protocolos de acesso ao meio e de entrega desta rede.

    Quando iniciadas, as estaes no possuem a tabela endereo IP / endereo fsico. Estatabela vai sendo criada e manipulada dinamicamente dependendo da sua necessidade.

    3.1.1 Formato do Pacote ARP

    A Figura 3.3 mostra o formato do pacote ARP.

    Figura 3.3 Formato do pacote ARP

    A Tabela 3.1 descreve os campos do pacote ARP.

    Nome do Campo DescrioHardware Type Especifica a interface de hardware pela qual o usurio aguarda uma

    resposta. No caso da rede Ethernet o valor 1.Protocol Type Especifica o tipo de endereo que o usurio est procurando (0800H se

    for IP).HLEN Tamanho do endereo de HardwarePLEN Tamanho do endereo do protocolo de alto nvel. As opes HLEN e

    PLEN em conjunto permitem que o ARP possa ser usado para uma redequalquer.

    Operation 1 - ARP request (Requisio do endereo fsico)2 - ARP response (Resposta do endereo fsico)3 - RARP request (Requisio do endereo IP)4 - RARP response (Resposta do endereo IP)

    Sender H Endereo de Hardware (Hardware Address) do remetenteSender IP Endereo IP do remetenteTarget H Endereo de Hardware (Hardware Address) do destinatrio

  • 8/14/2019 training-networking-tcpip neto

    26/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    25

    Nome do Campo DescrioTarget IP Endereo IP do destinatrio

    Tabela 3.1 Descrio dos campos do pacote ARP

    3.2 Protocolo RARP

    O ARP converte um endereo IP em um endereo fsico, j o RARP ( Reverse AddressResolution Protocol) faz exatamente o processo inverso, que o de converter um endereofsico em um endereo IP.

    Talvez voc esteja se perguntado mas para que ser isso? Pois bem, quando se usa mquinasdiskless (sem disco) que do boot via rede e deseja-se usar um protocolo para este bootbaseado em TCP/IP, ser necessrio que a mquina disponha de seu endereo IP ainda noprocesso de boot. O problema onde guardar este endereo se a mquina no possui discolocal?

    O protocolo RARP usado exatamente para este propsito. Ele mapeia o endereo fsicono endereo IP. Uma mquina (com disco) dever ser designada servidor de RARP.Quando uma mquina diskless entrar em processo de boot, o software de boot acionar oRARP. Este enviar um broadcastna rede perguntando se algum sabe o endereo IP dela(o endereo fsico automaticamente enviado no quadro). O servidor responde com oendereo IP daquela mquina, a qual pode falar TCP/IP normalmente da pra frente, at queela seja desligada e o processo se repita novamente.

    Repare que inicialmente o administrador da rede precisa identificar os endereos fsicos dasmquinas diskless e criar uma tabela de mapeamento no servidor.

    O protocolo RARP idntico ao ARP, mudando apenas o tipo de mapeamento feito.

    3.3 Fragmentao de endereo IP em endereo fsico

    Para o nvel IP (de rede), um pacote IP uma unidade nica e indivisvel. Idealmente, opacote IP deveria caber inteiro no quadro do nvel de enlace. No entanto, nem sempre issoacontece. Pode acontecer de que num certo caminho existam nveis de enlace que tenhamtamanho de rea de dados bastante reduzidos. Pode acontecer tambm do usurioconfigurar o tamanho do pacote IP maior que a rea de dados da prpria rede onde amquina est conectada.

    Quando um pacote IP no couber inteiro na rea de dados do quadro fsico, ele deve serfragmentado. Isto significa dizer, que o pacote deve ser quebrado em diversos pedaos quecaibam no nvel fsico. Ao chegar no seu destino, o pacote deve ser reconstitudo, j que onvel IP s poder processar o pacote se este estiver inteiro. A fragmentao/remontagem feita pelo prprio nvel IP.

  • 8/14/2019 training-networking-tcpip neto

    27/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    26

    Na configurao do TCP/IP o usurio pode configurar o MTU (Maximun Transfer Unit),parmetro que define o tamanho mximo do pacote IP inteiro. Se o tamanho mximo da

    rea de dados do quadro de enlace for menor que o MTU o pacote IP ser fragmentado.Esta fragmentao poder ser feita em qualquer gateway no caminho do pacote at o seudestino, e no apenas na origem. No entanto, uma vez fragmentado, o pacote seguirviagem assim (podendo ainda ser fragmentado novamente, caso em algum caminho aunidade de dados do nvel fsico seja menor que o tamanho deste fragmento).

    A responsabilidade pela remontagem dos fragmentos da mquina destino. A perda de umfragmento implica na perda do pacote inteiro.

    Para exemplificar o processo de fragmentao, observe a Figura 3.4, nela existem duasredes Ethernet, cada uma com rea de dados de 1500 bytes, ligando as duas redes temos

    uma rede X.25 com rea de dados de 256 bytes.

    Figura 3.4 Redes com reas de dados diferentes

    Observe que caso H1 queira enviar um dado para H2 no haver fragmentao (desde que opacote IP seja menor que 1500 bytes), o mesmo ocorre entre as mquinas H3 e H4. Agoraimagine que H1 queira enviar um dado para a mquina H3 ou H4.

    Ser de responsabilidade de G1 fragmentar este dado para que ele possa passar pela redeX.25, e ser de responsabilidade de H3 ou H4 remontar este pacote. O mesmo acontececaso H3 ou H4 queiram enviar um pacote para H1 ou H2.

    Uma forma de evitar esse problema seria definir a MTU das duas redes Ethernet para 256(mesmo tamanho da rede X.25). Neste caso no haveria fragmentao, entretanto,operaes dentro da mesma rede estariam sub-utilizando oframe Ethernet.

    Na Figura 3.5 temos um pacote IP de 1400 bytes, sendo transmitido em uma rede comMTU igual a 620 bytes e 20 bytes de cabealho. Ser portanto necessrio fragmentar estepacote em trs outros. Pacote 1: 620 bytes (600 de dados e 20 de cabealho), Pacote 2: 620bytes (600 de dados e 20 de cabealho) e Pacote 3: 220 bytes (600 de dados e 20 decabealho). claro que este processo aumenta o Overhead da rede, incluindo vrioscabealhos, desperdiando assim recursos do sistema de computao.

  • 8/14/2019 training-networking-tcpip neto

    28/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    27

    Figura 3.5 Fragmentao de um pacote

    O campo offset ajudar mquina de destino na remontagem do pacote.

  • 8/14/2019 training-networking-tcpip neto

    29/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    28

    4 ICMP Internet Control message Protocol

    A Internet funciona bem se todas as mquinas operam corretamente e os roteadores estejamcoerentes, o que na verdade uma utopia. O protocolo IP pode falhar na entrega dedatagramas, estas falhas podem ser ocasionadas por:

    Falha nas linhas de comunicao; Mquina destino desconectada da rede; TTL (Time-to-Live) do pacote IP expirar; Gateway intermedirios congestionados entre outros

    O ICMP (Internet Control Message Protocol) permite que os Gateways reportem erros ouforneam informaes sobre circunstncias inesperadas (mensagens de controle). Assim

    como qualquer outro trfego na Internet, ICMP viaja na rea de dados de um pacote IP. Odestino final de uma mensagem ICMP o nvel IP e no uma aplicao .

    O ICMP apenas informa a mquina que enviou a mensagem que ouve um erro ou umasituao inesperada. Protocolos de nvel superior que vo interpretar estes erros e tomar asdevidas providncias. O ICMP no faz correo de erros.

    Algumas mensagens reportados pelo ICMP so:

    Network Unreachable (rede no alcanvel) Host Unreachable (host no alcanvel)

    Port Unreachable (port no alcanvel) Destination Host Unknown (Host destino desconhecido) Destination Network Unknown (rede destino desconhecida) Echo Request e Echo Reply (Solicitao de Eco e Resposta de Eco); Time Exceded for Datagram TTL (Tempo do pacote excedido); Entre outros

    ICMP somente reporta condies de erros fonte original. A fonte deve relatar os erros aosprogramas de aplicao individuais e tomar ao para corrigir o problema. Uma fragilidadedo ICMP a de s reportar erros fonte original, no a intermedirios.

    Suponha que um datagrama siga uma rota atravs de uma srie de gateways G 1, G2, ..., GK.Se GK tem rotas incorretas e envia o datagrama para o gateway GE, GE reporta o erro devolta para a origem do datagrama. Porm a origem no tem nenhuma responsabilidadesobre esse erro nem controle sobre o gateway problemtico. Pode inclusive nem saber qual esse gateway. Alm disso, o prprio pacote ICMP pode se perder como qualquerdatagrama IP, no informando a ningum do problema.

    O comando PING (ver captulo de aplicaes) por exemplo, faz uso de um dos tipos depacote ICMP. A mquina origem envia pacote ICMP do tipo echo request. A mquina querecebe essa mensagem responde com ICMP do tipo echo reply. Algumas verses de PING

  • 8/14/2019 training-networking-tcpip neto

    30/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    29

    enviam vrios pacotes e devolvem estatsticas. Se o PING tem sucesso, significa que asprincipais partes do sistema de transporte esto funcionando.

    4.1 Entrega de Mensagens ICMP

    Uma mensagem ICMP requer dois nveis de encapsulamento, como mostra a Figura 4.1.Apesar de ser encapsulada no nvel IP, o ICMP no considerado um protocolo de altonvel. O ICMP parte do nvel IP.

    Figura 4.1 Encapsulamento do ICMP em um pacote IP

    Observe que o pacote ICMP (Dados + Cabealho) colocado na rea de dados do pacote IP(Dados + Cabealho), e este novo dado por sua vez colocado no frame, que a partefsica propriamente dita de transmisso.

    4.2 Tipos de Mensagem ICMP

    Cada mensagem ICMP tem seu prprio formato, mas todas elas comeam com os camposabaixo:

    TYPE (8 bits), que identifica a mensagem CODE (8 bits), que fornece mais informaes sobre a mensagem CHECKSUM (16 bits)

    A Figura 4.2 relaciona os possveis tipos para o campo TYPE.

  • 8/14/2019 training-networking-tcpip neto

    31/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    30

    Figura 4.2 Possveis tipos de mensagens ICMP

    Alm destes campos, o ICMP que reporta erro sempre inclui o cabealho e os primeiros 64bits de dados do pacote causador do problema. Isto permite ao remetente descobrir queprotocolo e que aplicao so responsveis polo datagrama.

    4.2.1 Echo Request & Echo Reply

    A Figura 4.3 descreve o campo de solicitao (Echo Request) e resposta (Echo Reply) dotipo eco. Essa mensagem usada pelo programa PING para verificar se uma mquina esta

    respondendo ou no.

    Figura 4.3 Mensagem do tipo Echo Request & Echo Reply

    Os campos TYPE, CODE e CHECKSUM so os mesmos descritos acima. A Tabela 4.1

    relaciona os outros campos com as suas funcionalidades.

  • 8/14/2019 training-networking-tcpip neto

    32/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    31

    Campo DescrioTYPE=8 Echo Request (Requisio de resposta)TYPE=0 Echo Reply (Resposta solicitao anterior)IDENTIFIER e SEQUENCE NUMBER So usados para identificar qual mensagem

    foi enviada e qual esta sendo recebidaOPTIONAL DATA Campo opcional, que dependendo da

    implementao pode retornar dados aoremetente, como por exemplo o tempo gastopara se alcanar a mquina.

    Tabela 4.1 Descrio dos campos da mensagem Echo Request & Echo Reply

    4.2.2 Reports unreacheble destination

    A Figura 4.4 ilustra a mensagem que enviada para informar que uma mquina ou rede noesta alcanvel (unreacheble).

    Figura 4.4 Cabealho padro para endereo no alcanvel

    Para identificar uma mensagem deste tipo basta verificar o campo TYPE=3. O campoCODE pode receber valores de 0 12. O significado de cada campo mostrado na Figura4.5

    Figura 4.5 Valores dos campos CODE para mensagens com TYPE=3

  • 8/14/2019 training-networking-tcpip neto

    33/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    32

    4.2.3 Controle de Fluxo e de Congestionamento

    Quando um Gateway est com suas filas de envio de pacotes cheias e no tem mais espaopara armazenar novos pacotes, ele ter que descartar os novos pacotes que chegarem. Deforma a avisar aos remetentes que parem de mandar pacotes, o Gateway pode enviar umamensagem ICMP do tipo QUENCH para que a origem pare de transmitir dados. A Figura4.6 ilustra mostra os cabealho padro desta mensagem.

    Figura 4.6 Cabealho padro para controle de congestionamento

    Uma mensagem de congestionamento identificada pelo campo TYPE=4, CODE=0, e ocampo INTERNET HEADER conter o endereo do gateway problemtico, mais 64 bitsdo datagrama.

    4.2.4 Route Change Request (Redirect)

    Quando um Gateway detecta que um host est usando uma rota no otimizada, ele enviaum ICMP de REDIRECT (Figura 4.7) requisitando que o host mude sua tabela de rotas. Ohost mudar sua tabela de rotas caso ele esteja configurado para trabalhar com roteamentodinmico.

    Est mensagem est restrita a um Gateway e um host fisicamente conectados (na mesmarede).

    Figura 4.7 Mensagem de mudana de rota

    Uma mensagem de mudana de rota identificada pelo campo TYPE=5 e o campoCODE=0 3. O campo INTERNET HEADER conter o endereo do gatewayproblemtico, mais 64 bits do datagrama.

  • 8/14/2019 training-networking-tcpip neto

    34/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    33

    Suponha por exemplo que eu tenha um Host conectado a dois Gateways (G1 e G2), nasredes 1 e 2 respectivamente (Figura 4.8).

    Figura 4.8 Exemplo de mensagem de redirecionamento de rota

    Se o Host H mandar um pacote para a Rede 1, via o Gateway G2. Este Gateway (G2),retornar uma mensagem de ICMP REDIRECT para o Host H. O Host H mandar ento opacote pelo Gateway G1, e este ser entregue corretamente Rede 1.

    4.2.5 Detecta rota circular ou excessivamente longa

    Quando um Gateway detecta que o campo TTL (Time-to-Live) do datagrama IP est com ovalor ZERO, ele manda o ICMP TIME EXCEEDED para a origem (Figura 4.9).

    Figura 4.9 Cabealho ICMP TIME EXCEEDED

    Caso o campo CODE retorna o valor 0 indicar que o TTL zerou, caso retorne 1, indicarque a remontagem de fragmentos excedeu o tempo mximo.

  • 8/14/2019 training-networking-tcpip neto

    35/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    34

    4.2.6 Reporta outros problemas

    Quando um Gateway detecta um problema diferente dos citados anteriormente (porexemplo, erro no cabealho), ele envia um ICMP PARAMETER PROBLEM para aorigem (Figura 4.10).

    Figura 4.10 Cabealho ICMP para outros problemas

    O campo POINTER usado para apontar para o octeto do datagrama original que causouo problema. J o campo CODE vir com o valor 1 caso o campo POINTER esteja sendousado ou com o campo 0 se o campo POINTER no estiver sendo utilizado.

    4.2.7 Sincronizao de relgio e estimativa de tempo de transito

    Uma mquina pode usar o ICMP REQUEST TIMESTAMP para requisitar a hora do diadoutra mquina. A mquina endereada retorna um ICMP TIMESTAMP REPLY (Figura4.11).

    Figura 4.11 Cabealho ICMP para mensagem de sincronizao de relgios

    O campo TYPE = 13 indica usa mensagem de solicitao (request) e o campo TYPE = 14indica a resposta (reply). O campo ORIGINATE TIMESTAMP preenchido pelo

    remetente e os campos RECEIVE TIMESTAMP e TRANSMIT TIMESTAMP sopreenchidos pelo destinatrio no momento da chegada do requeste no momento da sadado reply respectivamente. Todos os tempos so em milisegundos, a partir da meia noite.

  • 8/14/2019 training-networking-tcpip neto

    36/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    35

    5 Camada de Transporte

    A camada de transporte da arquitetura TCP/IP tem por responsabilidade transferir um dadofim-a-fim entre duas mquinas, ou seja, de responsabilidade desta camada transferir umdado de uma mquina A, at uma mquina B, independente da infra-estrutura decomunicao que se tenha entre elas.

    A arquitetura Internet define dois protocolos para esta camada: o TCP (TransmissionControl Protocol Protocolo com controle de transmisso) e o UDP (User DatagramProtocol Protocolo sem controle de transmisso) como ilustra a Figura 5.1.

    Figura 5.1 Camada de Transporte da Arquitetura TCP/IP

    A diferena bsica entre os dois que o TCP um protocolo confivel, ele garante aentrega de informaes corretas entre duas estaes, j o UDP no faz isso. Por ter que sepreocupar com diversos detalhes, tais como sequencializao, CheckSun, etc o TCP muito mais lento que o UDP. Veremos que existem aplicaes que necessitam daconfiabilidade do TCP e outras da velocidade e particularidades do UDP. As prximassesses discutem com mais detalhes estes dois protocolos, antes porm preciso entender oconceito de aplicao cliente-servidor.

    5.1 Aplicaes Cliente-Servidor

    As aplicaes Cliente-Servidor so caracterizadas basicamente pela presena de umServidor, responsvel por prover determinadas facilidades e um Cliente que ir acessar asfacilidades que so providas pelo servidor.

    Basicamente o Cliente solicita uma determinada tarefa ao Servidor, este a processa edevolve o resultado ao Cliente, diminuindo substancialmente a troca de mensagens na rede,j que as perguntas e respostas costumam ser bem curtas.

    Na maioria do casos, temos um Servidor, em geral uma mquina melhor que as demais,servindo a vrios Clientes simultaneamente. Dentro deste contexto para uma mesma

  • 8/14/2019 training-networking-tcpip neto

    37/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    36

    aplicao, por exemplo o telnet (Terminal Remoto) existe o telnet do servidor, conhecidotambm como daemon e o telnet do cliente.

    Quando um usurio chama a aplicao telnet no seu terminal, ele esta usando o telnet docliente, s que para esta aplicao funcionar ele precisa se conectar a um servidor, queprecisa estar rodando o telnet do servidor. A este conjunto de aplicaes do cliente e doservidor damos o nome de arquitetura cliente-servidor ou client-server.

    A Figura 5.2 mostra algumas aplicaes do modelo TCP/IP. Observe que o Telnet, FTP eSMTP utilizam o TCP como protocolo de transporte, j aplicaes tipo NSF, SNMP eTFTP utilizam o UDP.

    Figura 5.2 Algumas aplicaes do modelo TCP/IP

    5.1.1 O conceito de Porta

    Quando uma aplicao cliente deseja conectar-se aplicao servidor, esta deve fornecer oendereo IP ou nome hierrquico (que ser convertido em endereo IP pelo servio deDNS, pois na Internet s trafegam endereos IPs) do servidor. Neste caso teremos umendereo IP de origem e um endereo IP de destino que identificar uma comunicao.Entretanto, estes dois campos no so suficiente para identificar univocamente umaconexo, pois o servidor poder estar rodando diversas aplicaes simultaneamente. Comoento eu conseguiria identificar que eu desejo me conectar aplicao A ou aplicao B?

    Para resolver este problema, foi criado o conceito de Porta. A idia bastante simples:Para cada aplicao definido um nmero de porta nico que a distingue das demaisaplicaes, chamaremos porta do servidor de Porta de Destino.

    possvel agora informar o endereo IP de destino e o endereo da Porta de Destino, paraidentificar uma determinada aplicao. Aplicaes como Telnet, FTP (Transferncia deArquivos), HTTP (Home Pages), entre outras tem suas portas bem definidas e em geral noprecisam ser informadas pelas aplicaes, j so colocadas nos pacotes de Transporteautomaticamente por estes programas.

  • 8/14/2019 training-networking-tcpip neto

    38/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    37

    Observe que o endereo IP de origem, endereo IP de destino e Porta de destino ainda nodefinem unicamente uma aplicao. Pois dentro da mquina cliente (o mesmo endereo IP

    de origem) eu posso querem me conectar com o mesmo servidor (endereo IP de destino)na mesma aplicao (porta de destino). Como eu conseguiria identificar quais das duasaplicaes da minha mquina deve receber determinada resposta?

    Isto acontece com frequncia quando abrimos diversas instncias de um mesmo programa.Quando por exemplo estamos navegando na Internet atravs de um browser (InternetExplorer ou Netscape) e abrimos vrias janelas que tem como endereo o mesmo servidorde destino. Para resolver este problema incluindo nossa lista o conceito de Porta deorigem. A porta de origem vai identificar qual das instncias de um mesmo programa estase conectando a um mesmo servio, numa mesma mquina destino.

    A Figura 5.3 ilustra este fato, mostrando o formato de um pacote TCP (observe que opacote UDP tambm ter que ter porta de origem e porta de destino tambm). O campoSource Port, identifica a porta de origem e o campo Destination Port, identifica a porta dedestino. Os campos de IP de origem e IP de destino so colocados no cabealho do pacoteIP e no do TCP ou UDP. Os demais campos sero explicados na sesso Protocolo TCP.

    Figura 5.3 Porta de Origem e Destino no pacote TCP

  • 8/14/2019 training-networking-tcpip neto

    39/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    38

    5.1.2 Utilizando a Arquitetura Cliente-Servidor

    Para utilizarmos desta arquitetura primeiramente precisamos instalar um determinadoservio em um determinado servidor. Suponha que iremos instalar o servio de WWW(World Wide Web) que utiliza o protocolo HTTP no servidor www.uol.com.br(200.246.5.65). O servio de WWW um servio bastante difundido e por isso j possuiuma porta padro, a porta 80. Temos portanto que do ponto de vista de um cliente:

    IP de destino: 200.246.4.65Porta de destino: 80

    Suponha agora que voc esteja na mquina 200.241.16.8 e deseja acessar este site atravsde um Browser qualquer. Voc precisa de uma porta de origem. Este nmero de porta fornecido dinamicamente pelo sistema operacional, digamos que num dado momento aporta de origem seja: 3478. Logo j temos todo o cabealho para estabelecer a comunicao

    IP de origem: 200.241.16.8Porta de Origem: 3478

    Caso voc abra uma nova janela do seuBrowser, e se conecte ao mesmo lugar, utilizando omesmo servio o sistema operacional le dar uma nova Porta de Origem, para que no seconfunda com as outras portas em uso. Digamos que a nova porta seja 4312. Teremosportanto:

    IP de origem: 200.241.16.8Porta de Origem: 4312

    Desta forma possvel enderear corretamente uma determinada informao.

    Se outra pessoa, numa outra mquina, digamos 200.30.20.83 quiser acessar o mesmo site,pode ocorrer do sistema operacional dar a ela o mesmo nmero de porta, digamos 4312.Logo teramos:

    IP de origem: 200.30.20.83Porta de Origem: 4312

    Observe que o IP de origem outro e portanto no haver confuso na hora da entrega dospacotes.

    Os servidores de aplicao esto sempre ativos e esperando conexes. As conexesacontecem assincronamente e por um perodo de tempo indeterminado. Nas mquinasUNIX possvel ver quais so os servios ativos, e quais os programas que os manipulamatravs dos respectivos comandos:

  • 8/14/2019 training-networking-tcpip neto

    40/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    39

    % cat /etc/services

    % cat /etc/inetd.conf

    Nas mquinas Windows NT possvel ver quais so os servios ativos atravs dasequncia: Iniciar / Configurao / Painel de Controle / Servios, sendo possvel ainicializar ou parar um determinado servio.

    5.2 O Protocolo TCP (Transmission Control Protocol)

    O TCP um protocolo do nvel de transporte da arquitetura Internet. Este protocolo garanteque um dado enviado de um computador A para um computador B em qualquer rede (queesteja ligada via TCP/IP) vai ser entregue corretamente.

    O TCP um protocolo confivel e orientado a conexo. Este protocolo prov umaInterface para a camada de aplicao que deixa totalmente transparente os procedimentosde retransmisso, sequencializao, correo e verificao de erros, controle de fluxo, entreoutros, sendo de sua responsabilidade estas tarefas.

    Tambm de responsabilidade do TCP especificar como duas mquinas iniciam umaconexo, transferem dados e terminam uma conexo. Mostraremos a seguir as principaisresponsabilidades do protocolo TCP.

    1. Estabelecimento e Liberao de conexo Como o TCP orientado conexo,antes de comear qualquer processo de transferncia de dados preciso estabeleceruma conexo entre a mquina origem e a mquina destino. Aps o trmino datransferncia de dados a conexo desfeita.

    2. Transferncia de dados Aps o estabelecimento da conexo possvel comearo processo de transferncia de dados, que pode ser por mensagens variveis ou detamanho fixo e no formatofull-duplex (as duas mquinas podem estar transmitindodados simultaneamente).

    3. Transferncia de dados urgentes Ainda na transferncia de dados possvel

    definir se uma mensagem ser normal ou urgente. Esta ltima opo usadageralmente para informaes de controle.

    4. Multiplexao A multiplexao um processo de colocar diversas conexes detransporte, no caso o TCP, em uma conexo de rede, no caso o IP, este processo feito na mquina origem. Na mquina destino feito o processo inverso, chamadode de-multiplexao, que consiste em separar uma conexo de rede em vriasconexes de transporte.

  • 8/14/2019 training-networking-tcpip neto

    41/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    40

    5. Segmentao Acontecer segmentao quando a rea de dados do pacote IP formenor que a rea de dados do pacote TCP. Neste caso o pacote TCP serfragmentada em vrios pacotes IP para que possa ser trafegado na rede. Sendo

    depois remontado na mquina destino.

    6. Controle do fluxo Atravs de um sistema de buferizao denominada Janeladeslizante, o TCP envia uma srie de pacotes sem aguardar o reconhecimento decada um deles. Na medida em que recebe o reconhecimento de cada bloco enviado,atualiza o buffer(caso reconhecimento positivo) ou reenvia os dados ao destinatrio(caso reconhecimento negativo ou no reconhecimento aps um timeout prestipulado).

    7. Controle de erros Alm da numerao dos segmentos transmitidos, vai juntocom o cabealho (header) uma soma verificadora dos dados transmitidos

    (checksum), assim o destinatrio verifica a soma com o clculo dos dados recebidose consegue identificar se os dados esto corretos ou no.

    5.2.1 Formato do pacote TCP

    A unidade de transferncia entre o protocolo TCP de duas mquinas chamado deSegmento. Os segmentos so trocados para estabelecer conexes, transferir dados, enviarreconhecimentos e fechar conexes. Dado que TCP usa a tcnica de Piggybacking, umreconhecimento viajando de uma mquina A para B pode ir no mesmo segmento de dadosque esto sendo enviados de A para B, embora o reconhecimento refere-se a dados

    enviados da mquina B para A.

    A Figura 5.4 mostra o formato de um pacote TCP e suas opes.

    Figura 5.4 Formato do pacote TCP

    A seguir so apresentados os objetivos de cada campo do pacote TCP.

  • 8/14/2019 training-networking-tcpip neto

    42/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    41

    1. SOURCE PORT Identifica a porta de origem

    2. DESTINATION PORT Identifica a porta de destino

    3. SEQUENCE NUMBER Especfica o nmero de sequncia de dados no mesmosegmento. atravs deste nmero que possvel fazer a sequencializao.

    4. ACKNOWLEDGEMENT NUMBER Identifica o nmero de bytes que a fonteesperar receber na prxima transmisso.

    5. HLEN Este campo especifica a partir da onde ir comear o campo de dados. Isto necessrio pois dependendo da tamanho do campo de opes (OPTION), o campo de

    dados ir comear em uma determinada posio.

    6. RESERVED Campo reservado para uso futuro.

    7. CODE BITS Determina o propsito e contedo do segmento, codificado na forma daTabela 5.1.

    Opo SignificadoURG Campo de ponteiro Urgente vlidoACK Campo de Reconhecimento vlidoPSH Este segmento solicita um PushRST Resetara conexoSYN Sincroniza nmeros de SequnciasFIN O transmissor chega ao fim do fluxo de bytes

    Tabela 5.1 Significado do Code Bits

    8. WINDOW Atravs deste campo o protocolo TCP indica quantos dados ele temcapacidade de receber em seu buffer.

    9. CHECKSUN usado para verificar a integridade tanto do cabealho como dosdados do segmento TCP.

    10.URGENT POINT possvel, atravs deste campo especificar que alguns dadosdevem ser entregues de forma urgente. Esta informao repassada ao nvel IP quetenta executar esta operao. Esta opo totalmente dependente dos recursos dosistema de comunicao.

    11.OPTION (IF ANY) Campo reservado para opes do TCP (caso haja algum).

    12.PADDING Este campo serve para colocar alguns parmetros que podem serrequeridos na escolha de uma determinada opo no campo OPTION.

  • 8/14/2019 training-networking-tcpip neto

    43/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    42

    13.DATA Campo de dados do TCP.

    5.2.2 Portas bem conhecidas do TCP

    Como j foi dito anteriormente, uma mesma mquina pode prover diversos serviosconcorrentemente, bastando para isso que cada servio (ou aplicao) esteja colocado emuma porta diferente. Alguns servios so bastante utilizados na Internet, e por isso suasportas so bem conhecidas. A Figura 5.5 mostra algumas portas conhecidas. Nela possvelver, por exemplo, que o servio de terminal remoto (telnet) esta na porta 23, que o serviode correio eletrnico (SMTP) esta na porta 25, e que o servio de transferncia de arquivos(FTP) esta na porta 21, entre outros. Observe que o servio de WWW (HTTP) no estalistado na Figura 5.5, entretanto pela popularizao cada vez maior deste servio, ele colocado na maioria dos casos na porta 80, podendo eventualmente ser colocado em outraporta. As portas acima de 1024 podem ser usadas por qualquer aplicao cliente-servidor

    Figura 5.5 Algumas portas TCP bem conhecidas

  • 8/14/2019 training-networking-tcpip neto

    44/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    43

    5.3 O Protocolo UDP (User Datagram Protocol)

    O protocolo UDP usa o mesmo princpio de portas e de aplicaes distribudas do TCP. Agrande diferena entre o TCP e o UDP que o UDP muito mais leve que o TCP, pois eleno garante a entrega dos dados, sequencializao, fluxo de mensagens, etc. O UDP no orientado conexo, ele Connectionless, ou seja, no necessrio estabelecer umaconexo para comear a transferir os dados e depois se preocupar em terminar a conexo.

    No UDP, voc simplesmente envia o dado de uma mquina (IP Origem, Porta Origem) parauma mquina de destino (IP Origem, Porta Destino). Caso a rede consiga enviar o pacoteao seu destino, sem erro, este chegar perfeitamente. Caso contrrio no haverretransmisso deste pacote. Talvez voc esteja se perguntando para que serve um servioque no garante que a informao vai chegar do outro lado, e caso chegue tambm nogarante que a ordem correta ou que os prprios dados estejam corretos?

    5.3.1 Formato do Pacote UDP (User Datagram Protocol)

    A Figura 5.6 mostra o formato do pacote UDP.

    Figura 5.6 Formato do pacote UDP

    A estrutura do pacote UDP muito simples, os campos que compe o pacote so:

    1. PORTA UDP ORIGEM Este campo contm a porta UDP usado pela origem(opcional).

    2. PORTA UDP DESTINO Este campo contm a porta UDP de destino.

    3. TAMANHO DA MENSAGEM UDP Este campo contm o tamanho de todo opacote UDP (Dados + Cabealho)

    4. UDP CHECKSUM Este campo utilizado na recepo dos dados para verificar se odado recebido esta certo ou no. um campo opcional, para tanto basta colocar o valor

  • 8/14/2019 training-networking-tcpip neto

    45/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    44

    0 (zero) no campo. Caso o valor zero seja informado o receptor no tem como saber seo dado esta correto ou no.

    5. DADOS Este campo contm os dados propriamente ditos.

    5.3.2 Portas bem conhecidas do UDP

    Tal como no TCP, o UDP tambm possui um conjunto de portas bem conhecidas, comoilustra a Figura 5.7. As portas reservadas vo de 1 1000, e as portas livres vo de 1001 65535.

    Na Figura 5.7 possvel ver, por exemplo, que o servio deDayTime, que informa o dia e ahora daquela mquina utilizado na porta 13, o servio de DNS (Domain Name Service)

    esta na porta 53, o servio de Gerenciamento da rede (SNMP) esta na porta 161 e 162, entreoutros servios.

    Figura 5.7 Portas UDP bem conhecidas

  • 8/14/2019 training-networking-tcpip neto

    46/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    45

    6 Protocolos de Roteamento

    A arquitetura TCP/IP uma arquitetura de interconexo de redes. Neste sentido, se duasmquinas A e B esto conectadas a uma rede TCP/IP, possvel que as duas mquinasconversem entre si, independente de quantas redes existam entre as duas mquinas.

    Quando a mquina A deseja falar com a mquina B surge um pequeno problema. Comopodem existir diversas redes entre A e B, qual o caminho o pacote IP deve percorrer parasair da mquina A e ir at a mquina B? A este processo chamamos de Roteamento. Oroteamento consiste em encontrar um caminho (pode no ser o melhor caminho) de talforma que as informaes saiam de A e consigam atingir a mquina B e vice-versa. O nomeRoteador dado mquina ou equipamento que toma tal deciso.

    Chamaremos de Roteador ou Gateway ao equipamento que conecta duas ou mais redesfisicamente. E denotaremos por Host a uma mquina que esta conectada a uma rede fsica.As decises de roteamento so tomadas tanto por Hosts ou Gateways.

    O roteamento IP consiste em decidir para onde enviar um datagrama baseando-se noendereo IP destino contido neste datagrama. Existem dois tipos de roteamento: Oroteamento direto e o roteamento indireto.

    6.1 Roteamento Direto

    O roteamento direto ocorre quando as duas mquinas envolvidas esto na mesma rede

    fsica. Neste caso basta o transmissor encapsular o pacote IP em uma quadro fsico, com oendereo do destino, que conseguido via o protocolo ARP e enviar este pacotediretamente na rede. A mquina destino receber o pacote fsico descapsular o pacote etratar o datagrama IP. Observe que no h a necessidade da figura do Gateway, haja vistoque as duas mquinas envolvidas esto na mesma rede fsica, por exemplo um barramentoEthernet.

    Para saber se a mquina destino est na mesma rede se faz uma comparao entre osendereos IP fonte e destino, especificamente entre os campos que identificam a rede. Seambos campos so iguais (todos igual a 1 binrio), significa que o datagrama pode serenviado diretamente sem ter que passar por um gateway.

    6.2 Roteamento Indireto

    O roteamento indireto ocorre quando as duas mquinas envolvidas no esto na mesmarede fsica. Neste caso, gateways intermedirios tero que manusear este pacote at que elechegue rede fsica de destino, para ai ser tratado como um roteamento direto.

    No roteamento indireto o transmissor deve identificar um Gateway para o qual o datagramadeve ser enviado, para que este Gateway tome a deciso de continuar enviando o pacotepara a rede fsica que o conecta ou para um outro Gateway. Observe que o endereo desteGateway deve estar na mesma rede fsica da mquina de origem.

  • 8/14/2019 training-networking-tcpip neto

    47/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    46

    Cada mquina na Internet, seja ela um Host ou um Gateway, dever possuir umatabela derotas.

    A deciso que um Host dever tomar, baseado na sua tabela de rotas :

    O roteamento ser direto ou no? Caso no seja, para qual Gateway dever enviar o pacote?

    J a deciso do Gateway :

    Se a mquina destino est na mesma rede fsica e pode ser alcanadadiretamente? (Neste caso ele o Gateway Final)

    Caso contrrio, para qual outro Gateway entregar o pacote?

    Figura 6.1 Duas redes Ethernet ligadas por um Gateway

    Na Figura 6.1, se H1 desejar se comunicar com H2, isto ser feito utilizando o roteamentodireto, ou seja, H1 ter que mapear o endereo IP de H2 em seu endereo fsico (via ARP),encapsular o pacote IP no quadro fsico e enviar na rede para que H2 possa receb-lo. Omesmo ocorre se H3 quiser se comunicar com H4 ou vice-versa.

    Agora se H1 desejar se comunicar com H3, ser feito um roteamento indireto. H1escolher o Gateway como a mquina no caminho para H3. Observe que a princpio, H1no sabe por quantos gateways o pacote ter que passar at atingir a mquina H3. A nicainformao que ele tem que como o endereo de destino no esta conectado sua rede

    fsica ele precisa enviar este pacote para o Gateway, para que este tome uma deciso.

    Para que H1 consiga ento mandar o pacote para H3 ele ter que envi-lo antes aoGateway. Neste caso, H1 far o mapeamento do endereo IP do gateway no seu endereofsico (via ARP) e enviar o pacote para o gateway. Ao receber o pacote, o Gatewayverifica que precisa fazer uma entrega direta para H3, e tambm via ARP o faz.

    Observe que apesar de H1 direcionar o pacote para o Gateway, este direcionamento apenas no nvel fsico. O pacote no ser alterado, ou seja, continuar com o endereo IP dedestino H3. Desta forma o Gateway poder ento rote-lo.

  • 8/14/2019 training-networking-tcpip neto

    48/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    47

    Este tipo de roteamento mais difcil que o roteamento direto, j que o remetente deveidentificar um gateway ao qual o datagrama pode ser enviado, depois o gateway deveenviar o datagrama a rede destino, ou a outro gateway, e assim sucessivamente.

    Vamos supor que tenham muitas redes interconetadas por gateways, mas s tenham doishosts em cada extremo da interconexo das redes, quando um host quer enviar ao outro, eleencapsula o datagrama e o envia ao gateway mais prximo. Uma vez que o quadro chegaao gateway, o software de IP extra o datagrama encapsulado, e a rotina de roteamento IPseleciona o prximo gateway que formar parte do caminho que levarr o datagrama aoHost destino.

    Talvez voc esteja se perguntando, como que eu vou ter certeza que as escolhas degateways levaro o pacote ao endereo IP de destino correto?

    Este processo feito atravs da manipulao de um banco de dados distribudo. Onde cadarede tem que informar somente os dados referentes sua rede e manipular o que chamamosde Tabela de Roteamento.

    6.3 Tabela de Roteamento

    Tipicamente, uma tabela de roteamento (ou tabela de rotas), contm um par (N,G), onde N o endereo IP da rede destino e G o endereo IP do prximo Gateway no caminho darede N.

    Os Gateways no conhecem o caminho completo at a mquina destino e sim o prximopasso em direo quela rede. As tabelas de rota sempre apontam para Gateways que estona mesma rede fsica da mquina que possui esta tabela. Na Figura 6.2 vemos quatro redesinterligadas por trs gateways.

    Figura 6.2 Configurao de quatro redes e trs gateways

    Veremos a seguir quais deveriam ser as tabelas de rotas do gateway F (Tabela 6.1), G(Tabela 6.2) e H (Tabela 6.3).

  • 8/14/2019 training-networking-tcpip neto

    49/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    48

    Rede Destino Mandar Para

    10.0.0.0 Direto20.0.0.0 Direto30.0.0.0 20.0.0.640.0.0.0 20.0.0.6

    Tabela 6.1 Tabela de rotas do Gateway F

    Observe na Tabela 6.1 que para enviar uma mensagem para a rede 10.0.0.0 ou para a rede20.0.0.0 o envio feito de forma direta, pois as duas redes esto conectadas ao Gateway. Jpara enviar uma mensagem para as redes 30.0.0.0 e 40.0.0.0 este envia a mensagem para oendereo IP 20.0.0.6 que um dos endereos do Gateway G. A este gateway caber aresponsabilidade de continuar o roteamento, como visto na Tabela 6.2

    Rede Destino Mandar Para10.0.0.0 20.0.0.520.0.0.0 Direto30.0.0.0 Direto40.0.0.0 30.0.0.7

    Tabela 6.2 Tabela de rotas do Gateway G

    Ainda em relao ao exemplo anterior, observe que na Tabela 6.2, quando um datagrama

    enviado para a rede 30.0.0.0 o roteamento feito de forma direta e quando enviada para arede 40.0.0.0 encaminhado para o endereo IP 30.0.0.7 (Gateway H), para este tomar adeciso de roteamento. E naturalmente quando um pacote enviado para a rede 20.0.0.0 ele enviado de forma direta, pois o Gateway esta fisicamente conectado a este rede, e quandoum pacote for enviado para a rede 10.0.0.0 ele ser roteado primeiramente para o endereoIP 20.0.0.5 (Gateway F), para que este possa tomar a deciso do que fazer com o pacote.Observe agora a Tabela 6.3 do Gateway H

    Rede Destino Mandar Para10.0.0.0 30.0.0.620.0.0.0 30.0.0.6

    30.0.0.0 Direto40.0.0.0 Direto

    Tabela 6.3 Tabela de rotas do Gateway H

    Nesta tabela possvel observar que quando um datagrama por enviado para a rede 10.0.0.0ou para a rede 20.0.0.0 ele ser roteado para o endereo IP 30.0.0.6 (Gateway G) e quandofor enviado para a rede 30.0.0.0 ou 40.0.0.0 o roteamento ser direto.

    Observe que cada Gateway no guarda toda a rota que o pacote dever seguir, e sim oprximo Gateway ou rede para o qual ele dever ser roteado ou entregue diretamente.

  • 8/14/2019 training-networking-tcpip neto

    50/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    49

    importante entender que a tabela de roteamento sempre aponta aos gateways que podem

    ser alcanados atravs da rede a qual esse gateway est conetado. Isso significa que todosos gateways listados na tabela de roteamento de uma mquina M devem conetar-se as redess quais M est conetada diretamente. Quando um datagrama est pronto para sair de M, oprotocolo IP localiza o endereo IP destino e extrae a poro da rede. Logo M usa aidentificao da rede para fazer uma deciso de roteamento, selecionando um gateway quepossa ser alcanado diretamente.

    Nas tabelas de roteamento no possvel armazenar as informaes de cada mquinadestino, seria impossvel manter as tabelas atualizadas, alm do que as mquinas teriamproblemas com armazenamento para toda a informao.

    6.4 Rota Default

    Suponha que a rede do exemplo anterior se expandisse para um dos lados, como mostra aFigura 6.3.

    Figura 6.3 Vrias redes interconectadas por Gateways

    A Tabela de Rotas do Gatway G ficaria na forma da Tabela 6.4.

    Rede Destino Mandar Para10.0.0.0 20.0.0.520.0.0.0 Direto30.0.0.0 Direto40.0.0.0 30.0.0.750.0.0.0 30.0.0.7

  • 8/14/2019 training-networking-tcpip neto

    51/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    50

    Rede Destino Mandar Para60.0.0.0 30.0.0.770.0.0.0 30.0.0.780.0.0.0 30.0.0.7

    Tabela 6.4 Tabela de Rotas do Gateway G

    Podemos notar claramente que existem vrias rotas apontando para o mesmo Gateway H(endereo IP 30.0.0.7). Alm disso, se a rede continuar crescendo para este lado, a tabela derotas de G aumentaria tambm, e sempre apontando para o mesmo gateway H.

    Para no ficarmos desperdiando espao em memria, a especificao TCP/IP permite queseja definida uma rota default, que ser usada sempre que nenhuma outra rota forencontrada na tabela. Utilizando a rota defaulta tabela de rotas de G seria apenas (Tabela6.5):

    Rede Destino Mandar Para10.0.0.0 20.0.0.520.0.0.0 Direto30.0.0.0 DiretoDefault 30.0.0.7

    Tabela 6.5 Tabela de Rotas do Gateway G usando rotaDefault

    Observe que esta forma de especificar as rotas de destino bem mais fcil que a anterior,pois o nmero de linhas na tabela de rotas reduzido bruscamente.

    6.5 Alguns exemplos prticos

    Nesta sesso faremos alguns exerccios prticos de estabelecimento de rotas de Gateways eHosts.

    Faremos agora um exemplo prtico, para demonstrar como feita a tabela de rotas estticas

    de trs redes conectadas entre si e Internet.

    6.5.1 Exemplo 1

    Estabelea a tabela de rotas das mquinas G1, G2, G3, G4, H1, H2 conforme a Figura 6.4

  • 8/14/2019 training-networking-tcpip neto

    52/106

    Apostila TCP;IP

    Wandreson Brandinowww.wandreson.com

    51

    Figura 6.4 Trs redes conectadas entre si e Internet

    G1Rede Destino Mscara Gateway Destino Interface Mtrica

    192.3.40.0 255.255.255.0 192.3.40.2 192.3.40.2 1146.134.20.0 255.255.255.0 192.3.40.22 192.3.40.2 1146.134.21.0 255.255.255.0 192.3.40.20 192.3.40.2 10.0.0.0 0.0.0.0 200.241.155.9 200.241.155.10 1

    Observe que na tabela de rotas do Gateway G1, quando um pacote for endereado para arede FDDI (192.3.40.0) com mscara 255.255.255.0 ele ser enviado atravs do prpriogateway G1 (192.3.40.2), que neste caso tambm gateway destino, atravs de sua