Você está na página 1de 52

HISTRICO

A histria do TCP/IP intimamente interligada com a da Internet. O conjunto de protocolos TCP/IP resultou de pesquisas fundadas pelo ARPA (Advanced Research Projects Agent ) para conectar redes dos seus departamentos de pesquisas, a esta rede denominou-se ARPANET. Os primeiros projetos de pesquisas originaram-se da idia de comutao de pacote, considerada radical na poca, em meados de 1960. No final da dcada de 60, precisamente em dezembro de 69, entrou no ar uma rede experimental com quatro ns interligando as instituies UCLA (Universidade de Los Angeles), UCSB ( Universidade de Santa Barbara ), SRI (Instituto de Pesquisa de Stanford) e Universidade de Utah. Atravs da experincia conseguida nesta rede, alavancou-se grandes pesquisas sobre protocolos, culminando com a criao dos protocolos e do modelo TCP/IP. Em 1983 o TCP/IP tornou-se o protocolo oficial da ARPANET, levando a uma das primeiras definies de Internet, como sendo um conjunto de rede conectadas via TCP/IP; nessa mesma poca foi feita na Universidade de Berkeley, a implantao do protocolo ao sistema operacional Unix, conhecido como BSD . Em adio aos protocolos foram oferecidas um conjunto de aplicaes que passaria a expandir os servios do Unix a mais de uma mquina. Com esta implantao o protocolo aumentou sua popularidade. Conjuntamente a estas aplicaes, o BSD ofereceu uma abstrao ao seu sistema operacional que permitia acesso aos protocolos TCP/IP, chamada sockets. Isto aumentou a utilizao dos protocolos pelos programadores que passaram a enxerg-los num mais alto nvel que antes. A partir da pesquisas foram alavancadas e novas aplicaes foram surgindo. Em 1985 a entidade americana NSF ( National Science Foundation) interligou os supercomputadores de seus centros de pesquisas em rede, que passaram a ser conhecida como NSFNET. Em 1986 esta rede conectou-se a ARPANET. O conjunto de todos os computadores desta rede e sua espinha dorsal passaram a ser conhecidas oficialmente como Internet. Em 1988 a NSFNET passou a ser mantida pela IBM, MCI ( empresa de telecomunicaes americana) e MERIT ( instituio responsvel por uma rede pertencente a instituies de Michigan, EUA) estas criaram a ANS ( Advanced Network and Services). Em 1990 o backbone ( espinha dorsal) ARPANET deixou de existir e no seu lugar foi criado uma outra espinha dorsal conhecida como DRI ( Defense Research Internet ). Em 1990/1993 a ANS criou a ANSNET, que passou a ser a nova espinha dorsal da Internet; paralelamente foi criado a espinha dorsal europia (EBONE), que interligou alguns pases da Europa a Internet. A partir de 1993 a rede deixou de ser puramente acadmica para ser explorada comercialmente. Desde 1991, membros da IETF ( Internet Engineering Task Force ) chegaram a concluso que o crescimento exponencial da rede levaria em poucos anos a exausto dos endereos utilizados para identificar os computadores na Internet. Isto se os equipamentos da poca no esgotassem toda a sua capacidade. Solues paliativas ento foram criadas para resolver temporariamente este problema. Foi criado um grupo de trabalho pela IETF, para definir uma nova verso do IP ( Internet Protocol ), protocolo utilizado para enderear e enviar dados que trafegam pela rede. O intuito deste grupo era criar uma nova verso mais eficiente e flexvel, e que fosse capaz de resolver os problemas relacionados com a questo do esgotamento de endereos e outros mais. Os principais objetivos foram : aceitar bilhes de hosts, mesmo com alocao de espao de endereo ineficiente; reduzir o tamanho das tabelas de roteamento; simplificar o protocolo de modo a permitir que os roteadores processem os pacotes com mais rapidez; oferecer mais segurana ( autenticidade e privacidade ) do que o IP atual; dar mais importncia ao tipo de servio, particularmente para os dados em tempo real; permitir multicast, possibilitando a especificao de escopos; permitir que um host mude de lugar sem precisar mudar de endereo; permitir que o protocolo evolua no futuro; permitir a coexistncia entre o novo e o antigo protocolo durante anos. Foram submetidos 21 trabalhos ao grupo, estes propuseram desde pequenos ajustes do IP, at a eliminao completa com o surgimento de um novo protocolo. Trs propostas foram utilizadas como base, e uma verso ajustada foi criada e manteve caractersticas da verso atual, possuindo

ainda uma transio melhor. Depois de muita discusso, reviso e disputas, foi produzida a recomendao para a nova verso do IP em novembro de 1994, chamada de SIPP ( Simple Internet Protocol Plus), e lhe foi atribuda a designao de Ipv6.

O Modelo de Referncia TCP/IP Vamos deixar de lado temporariamente o modelo de referncia OSI para nos concentrarmos no modelo de referncia usado na "av" de todas as redes de computadores, a ARPANET, e sua sucessora, a Internet. A ARPANET era uma rede de pesquisa que foi criada pelo Departamento de Defesa dos Estados Unidos. Pouco a pouco, centenas de universidades e reparties pblicas foram sendo conectadas a ela atravs de linhas telefnicas privadas. Quando foram criadas as redes de rdio e satlite, comearam a surgir problemas com os protocolos ento existentes, o que forou a criao de uma nova arquitetura de referncia. Seu objetivo era conectar vrias redes ao mesmo tempo. Essa arquitetura veio a ficar conhecida como o Modelo de Referncia TCP/IP, graas a seus dois principais protocolos. Esse modelo foi definido pela primeira vez por Cerf e Kahn, 1974. Uma nova perspectiva foi oferecida em Leiner et aI-, 1985. A filosofia de projeto na qual se baseia o modelo discutida em Clark, 1988. Diante da preocupao do Pentgono de que seus preciosos hosts, roteadores e gateways de inter-rede fossem destrudos de uma hora para outra, definiu-se tambm que a rede fosse capaz de sobreviver perda de hardwares da sub-rede, impedindo que as conversas que estivessem sendo travadas fossem interrompidas. Em outras palavras, o Pentgono queria que as conexes permanecessem intactas enquanto as mquinas de origem e de destino estivessem funcionando, mesmo que algumas mquinas ou linhas de transmisso intermedirias deixassem de operar repentinamente. Por essa razo, era preciso criar uma arquitetura flexvel, capaz de se adaptar a aplicaes com necessidades divergentes, como por exemplo a transferncia de arquivos e a transmisso de dados de voz em tempo real. A Camada Inter-redes Todas essas necessidades levaram escolha de uma rede de comutao de pacotes baseada em uma camada de ligao inter-rede. Esse camada, chamada de camada inter-redes, integra toda a arquitetura. Sua tarefa permitir que os hosts injetem pacotes em qualquer rede e garantir que eles sejam transmitidos independentemente do destino (que pode ser outra rede). possvel, inclusive, que esses pacotes cheguem em outra ordem diferente daquela em que foram enviados, obrigando as camadas superiores a reorganiz-los, caso a entrega tenha de respeitar algum tipo de ordem. Observe que, nesse caso, a expresso inter-rede usada no sentido genrico, muito embora essa camada esteja presente na Internet, analogia usada nesse caso diz respeito ao sistema do correio. Uma pessoa pode soltar uma seqncia de cartas internacionais em uma caixa de correio em um pais e, com um pouco de sorte, a maioria delas ser entregue no endereo correto no pais de destino. Provavelmente as cartas atravessaro um ou mais gateways internacionais, mas esse processo transparente para os usurios. Por essa razo, cada pais (ou seja, cada rede) tem seus prprios selos, tamanhos de envelope preferidos e regras de entrega escondidas dos usurios. A camada inter-redes define um formato de pacote oficial e um protocolo chamado de IP (Internet Protocol). A tarefa da camada inter-redes entregar pacotes IP onde eles so necessrios. O roteamento uma questo de grande importncia nessa camada, assim como evitar congestionamentos. Por essas razes, razovel dizer que a funo da camada inter-redes TCP/IP muito parecida com a da camada de rede OSI.

Host A Aplicao
Mensagem idntica Pacote idntico

Host A Aplicao

Transporte

Transporte

Roteador
Inter-Rede
Datagrama idntico

Inter-rede Rede Rede

Datagrama idntico

Inter-Rede

Rede
Quadro idntico

Rede
Quadro idntico

Rede Fsica 1

Rede Fsica 2

A Camada de Transporte No modelo TCP/IP, a camada localizada acima da camada inter-redes chamada de camada de transporte. A finalidade dessa camada permitir que as entidades par (peer entity) dos hosts de origem e de destino mantenham uma conversao, exatamente como acontece na camada de transporte OSI. Dois protocolos fim a fim foram definidos aqui. O primeiro deles, o TCP (Transmission Control Protocol), um protocolo orientado conexo confivel que permite a entrega sem erros de um fluxo de bytes originado de uma determinada mquina em qualquer computador da inter-rede. Esse protocolo fragmenta o fluxo de bytes de entrada em mensagens e passa cada uma delas para a camada inter-redes No destino, o processo TCP remonta as mensagens recebidas no fluxo de sada. O TCP cuida tambm do controle de fluxo, impedindo que um transmissor rpido sobrecarregue um receptor lento com um volume de mensagens muito grande.

O segundo protocolo dessa camada, o UDP (User Datagram Protocol), um protocolo sem conexo no confivel para aplicaes que no necessitam nem de controle de fluxo, nem da manuteno da seqncia das mensagens enviadas. Ele amplamente usado em aplicaes em que a entrega imediata mais importante do que a entrega precisa, como a transmisso de dados de voz ou de vdeo. A relao entre o IP, o TCP e o UDP mostrada na Figura 1.19. Desde que o modelo foi desenvolvido, o IP foi implementado em muitas outras redes. A Camada de Aplicao

O modelo TCP/IP no tem as camadas de sesso e de apresentao. Como no foi percebida qualquer necessidade, elas no foram includas. A experincia com o modelo OSI provou a seguinte tese: elas so pouco usadas na maioria das aplicaes.

Acima da camada ,de transporte, est a camada de aplicao Ela contm os protocolos de alto nvel. Dentre eles esto o protocolo de terminal virtual (TELNET), o protocolo de transferncia de arquivos (FTP) e o protocolo de correio eletrnico (SMTP), como mostra a Figura 1.19 O protocolo do terminal virtual permite que um usurio de um Computador estabelea login em uma mquina remota e trabalhe nela. O protocolo de transferncia de arquivos permite mover dados com eficincia de uma mquina para outra. Originalmente, o correio eletrnico era um tipo de transferncia de arquivo. No entanto, posteriormente um protocolo especializado foi desenvolvido para essa funo. Muitos outros protocolos foram includos com o decorrer dos anos, como o DNS (Domain Name Service), que mapeia os nomes de host para seus respectivos endereos de rede, o NNTP, o protocolo usado para mover novos artigos, e o HTTP, o protocolo usado para buscar pginas na WWW (World Wide Wcb). entre outros. A Camada Host/Rede Abaixo da camada inter-redes, encontra-se um grande vcuo. O modelo de referncia T'CP/IP no especifica coisa alguma, exceto pelo fato de que o host tem de se conectar com a rede utilizando um protocolo, para que seja possvel enviar pacotes. Esse protocolo no definido e varia de host para host e de rede para rede. Os livros e a documentao que tratam do modelo TCP/IP raramente descrevem esse protocolo.

Posicionamento do Nvel OSI


A arquitetura TCP/IP possui uma srie de diferenas em relao arquitetura OSI. Elas se resumem principalmente nos nveis de aplicao e Inter-rede da arquitetura TCP/IP. Como principais diferenas pode-se citar: OSI trata todos os nveis, enquanto TCP/IP s trata a partir do nvel de Rede OSI OSI tem opes de modelos incompatveis. TCP/IP sempre compatvel entre as vrias implementaes OSI oferece servios orientados a conexo no nvel de rede, o que necessita de inteligncia adicional em cada equipamento componente da estrutura de rede. Em TCP/IP a funo de roteamento bem simples e no necessita de manuteno de informaes complexas TCP/IP tem funo mnima (roteamento IP) nos ns intermedirios (roteadores) Aplicaes TCP/IP tratam os nveis superiores de forma monoltica, Desta forma OSI mais eficiente pois permite reaproveitar funes comuns a diversos tipos de aplicaes. Em TCP/IP, cada aplicao tem que implementar suas necessidades de forma completa. A figura 3 ilustra a comparao entre TCP/IP e OSI. Note que a camada Inter-rede de TCP/IP apresenta uma altura menor que o correspondente nvel de Rede OSI. Isto representa o fato de que uma das funes do nvel de Rede OSI realizada pelo nvel de Rede TCP/IP. Esta funo a entrega local de mensagens dentro da mesma rede. O IP s trata a entrega e a deciso de roteamento quando o origem e o destino da mensagem esto situados em redes distintas.

Arquitetura OSI Aplicao Apresentao Sesso Transporte Rede Enlace Fsico

Arquitetura TCP/IP

Aplicao Transporte Inter-rede Rede

A figura abaixo ilustra um posicionamento geral de diversos protocolos nas arquiteturas OSI, TCP/IP e Novell Netware:
Aplicao DS, MHS FTAM ISO Presentation ISO Session

Shell DNS NCP

Apresentao

S M T P

F T P

ping

H T T P socket

N F S

POP

Sesso

T e l n e t

Winsock
Transporte ISO Transport C4 X.25 SNDCP LLC IEEE 802.2

TLI

SPX

TCP, UDP

Rede

IPX LSL DD MLID Ethernet Binding A R DD NDIS P Ethernet

IP, ICMP

Enlace

Unix X.25 Ethernet

PPP

Fsico

IEEE 802.3 IEEE 802.5

Serial

Exemplos de aplicao de redes com arquitetura TCP/IP


Seguem abaixo, alguns exemplos de aplicaes da arquiteturas distintas de rede baseadas em TCP/IP, como por exemplo, redes internas de empresas baseadas em transporte TCP/IP, servios de redes de empresas conectados Internet, provedores de acesso Internet. Exemplo 1: Redes internas empresa utilizando protocolos TCP/IP para formar a estrutura de comunicao e a base das aplicaes de rede (correio-eletrnico), compartilhamento de arquivos, distribuio de informao via hipertexto, etc e chamadas de intranet:
M M M M Hub ou switch Servidor HTTP Servidor DNS Roteador principal Roteador B

Servidor NFS, NIS Servidor LPD

Servidor SMTP POP3/ IMAP4

Servidor FTP Servidor News Gerncia SNMP

Exemplo 2: Uma estrutura de rede TCP/IP conectada Internet de forma segura, atravs da utilizao de um firewall, que realiza o filtro de pacotes IP e o transporte de protocolo de aplicaes por meio de um gateway (proxy):
Servidor Externo HTTP, FTP, DNS Roteador

Firewall Filtros, NAT Proxy HTTP, FTP, Telnet Gateways seguros Acesso Remoto

Clientes

Servidor Proxy

Servidor HTTP DNS, FTP

Servidor SMTP/POP3 Correio corporativo

Exemplo 3: Um provedor de acesso Internet, fornecendo servios de conexo a usurios discados e empresas por meio de ligao dedicada, alm de oferecer os servios bsicos de Internet como HTTP, SMTP, POP3, FTP, etc
M M M Acesso IP Dedicado Hub ou switch Roteador B Roteador A M

Internet

Servidor HTTP Servidor DNS Gerncia Servidor SMTP POP3/ IMAP4 Radius/Tacacs Servidor FTP Servidor News

Acesso IP Discado M M M M

... M
M

Sistema Telefnico

Comparaao entre os Modelos de Referncia OSI e TCP/IP Os modelos de referncia OSI e TCP/IP tm muito em comum. Os dois se baseiam no conceito de uma pilha de protocolos independentes. Alm disso, as camadas tm praticamente as mesmas funes. Em ambos os modelos, por exemplo, esto presentes as camadas que englobam at a camada de transporte. Nesses modelos, so oferecidos aos processos que desejam se comunicar um servio de transporte fim a fim independente do tipo de rede que est sendo usado. Essas camadas formam o provedor de transporte. Mais uma vez em ambos os modelos, as camadas acima da camada de transporte dizem respeito aos usurios orientados aplicao do servio de transporte. Apesar dessas semelhanas fundamentais, os dois modelos tambm tm muitas diferenas. importante notar que estamos comparando modelos de referncia, independente das pilhas de protocolos correspondentes. O modelo OSI tem trs conceitos fundamentais, que so os seguintes: 1. 1. Servios 2. 2. Interfaces 3. 3. Protocolos Provavelmente a maior contribuio do modelo OSI tornar explicita a distino entre esses trs conceitos. Cada camada executa alguns servios para a camada acima dela. A definio do servio informa o que a camada faz, e no a forma como as entidades acima dela o acessam ou como a camada funciona. A interface de uma camada informa como os processos acima dela podem acess-la. A interface especifica quais so os parmetros e resultados a serem esperados. Ela tambm no revela o funcionamento interno da camada. Finalmente, os protocolos utilizados em uma camada so de responsabilidade dessa camada A camada pode usar os protocolos que quiser, desde que eles viabilizem a realizao do trabalho (ou seja, forneam os servios oferecidos). Ela tambm pode alterar esses protocolos sem influenciar o software das camadas superiores. Essas idias se adaptam perfeitamente aos novos conceitos da programao orientada a objetos. Um objeto, assim como uma camada, tem um conjunto de mtodos (operaes) que processos externos ao objeto podem ativar. A semntica desses mtodos define o conjunto de servios que o objeto oferece. Os parmetros e os resultados do mtodo formam a interface do objeto. O cdigo interno do objeto e seu protocolo, que no e visvel nem interessa aos elementos que esto fora do objeto. Originalmente, o modelo TCP/IP no distinguiu com clareza a diferena entre servio, interface e protocolo, embora as pessoas tenham tentado adapt-lo ao modelo OSI. Por exemplo, os nicos servios reais oferecidos pela camada inter-redes so SEND IP PACKET (enviar pacote IP) e RECEIVE IP PACKET (receber pacote IP). Por essa razo, os protocolos do modelo OSI so mais bem encapsulados do que no modelo TCP/IP e podem ser substitudos com relativa facilidade, acompanhando as tendncias dos eventuais avanos tecnolgicos. Um dos principais objetivos das diversas camadas de protocolo so as possibilidades que elas oferecem no que diz respeito a essas mudanas. O modelo de referncia OSI foi concebido antes de os protocolos terem sido inventados. Conseqentemente, o modelo no foi criado com base em um determinado conjunto de protocolos, o que o deixou bastante flexvel. No entanto, h o inconveniente de os projetistas no terem experincia com o assunto e no terem muita noo sobre a funcionalidade que deve ser colocada em cada camada. Por exemplo, a camada de enlace de dados originalmente lidava com redes ponto a ponto. Quando surgiram as redes de difuso, uma nova camada teve de ser criada no modelo. Quando as pessoas comearam a criar redes com base no modelo OSI e nos protocolos existentes, elas perceberam que as especificaes de servio obrigatrias no eram compatveis. Portanto, foi necessrio enxertar no modelo sub-camadas de convergncia que permitissem atenuar as diferenas. Como acreditava que cada pas teria uma rede, controlada pelo governo e baseada nos protocolos OSI, o comit no se preocupou com as conexes inter-redes. Resumindo: na prtica, foi tudo muito diferente. Com o TCP/IP, aconteceu exatamente o contrrio: como os protocolos vieram primeiro, o modelo foi criado com base neles. Os protocolos no tiveram problemas para se adaptar ao modelo. Foi um casamento perfeito. O nico problema foi o seguinte: o modelo no se adaptava s outras pilhas de protocolos. Conseqentemente, ele no era de muita utilidade quando havia necessidade

de se escrever redes que no faziam uso do protocolo TCP/IP. Deixando a filosofia de lado e entrando em questes mais prticas, uma das maiores diferenas entre os dois modelos est no nmero de camadas: o modelo OSI tem sete camadas e o TCP/IP, quatro. Ambos tm as camadas de inter-rede, transporte e aplicao, mas as outras so diferentes. Outra diferena est na rea da comunicao sem conexo e da comunicao orientada conexo. Na camada de rede, o modelo OSI compatvel com a comunicao sem conexo e com a comunicao orientada conexo no entanto, na camada de transporte, o modelo aceita apenas a comunicao orientada conexo, onde ela de fato mais importante (pois o servio de transporte visvel para os usurios). O modelo TCP/IP tem apenas um modo na camada de rede (sem conexo), mas aceita ambos os modelos na camada de transporte, oferecendo aos usurios uma opo de escolha. Essa escolha especialmente importante para os protocolos simples de solicitao/resposta.

Uma Crtica ao Modelo de Referncia TCP/IP Os protocolos e o modelo TCP/IP tambm tiveram os seus problemas. Em primeiro lugar, o modelo no diferencia com a necessria clareza os conceitos de servio, interface e protocolo. A boa prtica da engenharia de software exige uma diferenciao entre especificao e implementao, o que, ao contrrio do que acontece com o OSI, no acontece com o TCP/IP. consequentemente, o modelo TCP/IP no o melhor dos guias para se estruturar novas redes com base em novas tecnologias. Em segundo lugar, o modelo TCP/IP no nem um pouco abrangente e no consegue descrever outras pilhas de protocolos que no a TCP/IP. Seria praticamente impossvel, por exemplo, tentar descrever a SNA usando o modelo TCP/IP. Em terceiro lugar, a camada host/rede no realmente uma camada no sentido em que o termo usado no contexto dos protocolos hierarquizado.s Trata-se, na verdade, de uma interface (entre as camadas de rede e de enlace de dados). A distino entre uma interface e uma camada crucial e voc deve consider-la com cuidado. Em quarto lugar, o modelo TCP/IP no faz distino (nem menciona) entre as camadas fsica e de enlace de dados. Elas so complemente diferentes. A camada fsica est relacionada s caractersticas de transmisso do fio de cobre, dos cabos de fibra ptica e da comunicao sem fio. A tarefa da camada de enlace de dados delimitar o incio e o final dos quadros e envi-los de um lado a outro com o grau de confiabilidade desejado. Um modelo mais adequado incluiria as duas camadas como elementos distintos. O modelo TCP/IP no faz isso. Por fim, apesar de os protocolos IP e TCP terem sido cuidadosamente projetados e bem implementados, o mesmo no aconteceu com muitos outros protocolos produzidos pela comunidade acadmica. As implementaes desses protocolos eram gratuitamente distribudas, o que acabava difundindo seu uso de tal forma que acabava ficando difcil substitu-las- A fidelidade a esse produtos , atualmente, motivo de alguns embaraos. O protocolo de terminal virtual, o TELNET, por exemplo, foi projetado para um vdeo TTY mecnico, capaz de processar 10 caracteres por segundo. Ele no reconhece mouses e interfaces grficas No entanto, esse protocolo usado em larga escala ainda hoje, 25 anos depois de seu surgimento. Em resumo, apesar de seus problemas, o modelo OSI (menos as camadas de sesso e apresentao) mostrou-se excepcionalmente til para a discusso das redes de computador. Por outro lado, os protocolos OSI jamais conseguiram se tornar populares. exatamente o contrrio o que acontece com o TCP/IP: o modelo praticamente ignorado, mas os protocolos so usados cm larga escala.

IPv4 - A VERSO ATUAL DO IP


O protocolo IP foi projetado tendo como principal objetivo a ligao inter-redes. Por isto ele considerado como elemento integrador da Internet, atravs dele possvel a conexo de diversas sub-redes. A internet composta de diversos backbones construdos atravs linhas de alta velocidades de diversos tipos de tecnologia. A cada um destes backbones esto conectados vrias redes locais de muitas outras instituies cada uma com suas caractersticas de sub-rede. Em muitas empresas comum utilizar o IP, e outros protocolos de sua famlia, para interligar computadores de tecnologia diferentes. O protocolo IP providencia duas importantes definies de servio. Uma define a unidade bsica de transferncia de dados chamada de datagrama IP. A outra define uma funo de roteamento, preocupando-se como os pacotes so endereados e quais caminhos tero que seguir para chegarem a seu destino. O datagrama IPv4 Antes de comear a desenvolver sobre o Protocolo IP propriamente dito, explicar-se- sobre o conceito do termo datagrama. Como foi visto anteriormente, existem dois tipos de servios a serem disponibilizado em uma rede: o orientado a conexo e o no orientado. No primeiro, o fluxo de dados feito como se existisse um duto, onde uma vez feito a conexo inicial, os dados so colocados neste, garantindo assim uma entrega confivel dos dados e a sua seqencializao. Para a camada de rede, um servio equivalente a este tipo, costuma ser chamado de circuito virtual, em analogia aos sistemas telefnicos. Neste servio necessrio , ento, uma configurao obrigatria do circuito e a rota por onde os pacotes fluem escolhida previamente. Cada pacote endereado atravs da identificao do circuito virtual, seguindo esta rota. No segundo, temos um fluxo de pacotes independes chamados de datagramas. No servio de datagrama, nenhuma rota preestabelecida e cada pacote enviado independentemente. Neste caso, cada pacote contm os endereos completos da origem e do destino sem se preocupar com a ordem de chegada dos mesmos. Uma outra caracterstica inerente ao servio de datagrama que este limita o tamanho dos dados a serem transmitidos. Um datagrama IP consiste em duas partes: o cabealho e a rea til de dados. O cabealho, como j foi mencionado, inclui campos adicionais a mensagem a ser transmitida de maneira que o protocolo IP possa ser executado. Este composto de uma parte fixa e uma parte opcional varivel. A figura 4.1 mostra o formato de um datagrama IP. Logo a seguir feita uma descrio de cada um dos campos que formam o seu cabealho.

32 BITS

VERSION

IHL

TYPE OF SERVICE IDENTIFICATION DF MF

TOTAL LENGTH FRAGMENT OFFSET HEADER CHECKSUM

TIME TO LIVE

PROTOCOL SOURCE ADDRESS

DESTINATION ADDRESS

OPTIONS

DATA

Figura .1 - Formato do datagrama IPv4

O campo VERSION ( 4 bits) contm a verso do IP que foi usado para criar o datagrama. Desta maneira checa-se a verso antes de process-lo, evitando-se que formato de pacotes diferentes sejam usados. O campo HLEN ( header length ) possui quatro bits que indicam o comprimento do datagrama em palavras de 32 bits. O seu valor mnimo 5, o que indica um cabealho variando de 20 octetos ( sem o campo OPTIONS que opcional ) a 60 octetos. O TYPE OF SERVICE ( 8 bits) indica o tipo de servio de rede que se deseja. Como pode ser visto na figura 4.2, o campo pode ser quebrado em 5 ( cinco) sub-campos. Os trs primeiros bits correspondem ao sub-campo PRECEDENCE que diz a prioridade de cada datagrama quele que enviar os dados. O valor 1 indica prioridade normal, e 7 a mais alta prioridade que utilizada para pacotes de controle de rede. Os bits D, T e R especificam respectivamente, o que mais importante no envio do pacote: retardo, taxa de envio e confiabilidade. Desta maneira pode-se escolher prioridades de tipos de links diferentes de acordo com o desejado. Os dois ltimos bits no so utilizados. Na prtica os roteadores ( equipamentos utilizados para especificar rotas aos datagramas ) ignoram totalmente todas as opes do campo TYPE OF SERVICE, pois necessrio um conhecimento prvio da tecnologia dos links utilizados.

1 PRECEDENCE

3 4 5 6 7 D T R No Usados Figura .2 - Os cinco sub-campos do campo SERVICE TYPE

O campo TOTAL LENGTH indica o tamanho total do datagrama, incluindo cabealho e dados, em octetos. O valor mximo que lhe atribudo de 65.535 bytes. Nas tecnologias de redes existentes este valor suficiente, porm, com a utilizao de redes de altssima velocidade um fator limitante. Antes de falar sobre os prximos campos, seria interessante visualizar como os datagrama relacionam-se com os quadros da sub-rede. Verificou-se anteriormente que o datagrama poderia ter um tamanho de at 65.535 octetos, porm na prtica, existem outros limites fundamentais. Sabe-se que os datagramas, movem-se de uma mquina para outra, e que estes devem ser transportados pela camada de sub-rede. Para fazer um transporte eficiente preciso que cada datagrama seja transportado em um quadro distinto desta camada. Este processo denomina-se encapsulamento. Ao tamanho mximo do quadro suportado por uma camada de sub-rede denomina-se MTU ( maximum transfer unit ).

Figura .3 Pacote IP

O protocolo IP implementa uma maneira dos datagramas trafegarem em meios fsicos que no podem cont-lo completamente. O datagrama fragmentado em pedaos menores que sero logo depois remontados, com isto, ele no fica limitado a pedaos pequenos de acordo com a tecnologia de hardware utilizada. Cada fragmento contm a duplicao dos campos do cabealho que o originou, exceto pelos que dizem tratar-se de um fragmento. Para fazer isto, ele utiliza os campos IDENTIFICATION, MF, DF e FRAGMENT OFFSET, como explicado a seguir. O campo IDENTICATION (16 bit's), permite no caso de uma fragmentao, o destino identificar a qual datagrama pertence o fragmento, utilizando-se deste e do endereo daquele que o originou. O bit DF indica que o Datagrama no deve ser fragmentado. Garantindo que isto no ocorrer, mesmo que se tenha um desempenho baixo se o mesmo for forado a passar por uma rede lenta. O bit MF indica que existem mais fragmentos a seguir. Todos os fragmentos devem t-los setados, menos o ltimo. O campo FRAGMENT OFFSET indica a que ponto do Datagrama original o fragmento pertence. Todos os fragmentos devem ser mltiplos de 8 bytes. O campo TIME TO LIVE representa o tempo de processamento dos pacotes em segundos. Cada roteador ao processar o datagrama decrementa o tempo gasto para este processamento, se alcanar zero o datagrama descartado. Com a dificuldade dos roteadores saberem detalhes do tempo de transmisso sub-redes, na prtica ao passar pelos mesmos, este campo decrementado de 1. Garantindo, assim, que um datagrama no trafegue indefinidamente pela rede caso haja uma rota em loop, ou seja, um caminho que seja cclico. O campo PROTOCOL especifica qual protocolo de transporte foi utilizado para criar os dados transportados pelo datagrama. utilizado para entregar o dados diretamente ao tipo do protocolo que o criou. O campo HEADER CHECKSUM garante a integridade do cabealho. Este processo feito considerando o cabealho como uma seqncia de inteiros de 16 bits, onde soma-se eles utilizando aritmtica de complemento de 1 e depois calcula-se o complemento de 1 do resultado. Se o valor der 0, no houve erro no cabealho. Os campos SOURCE IP ADDRESS e DESTINATION IP ADDRESS (32 bits), contm respectivamente os endereos do host de origem e do host de destino. Apesar destes passarem por muitos equipamentos intermedirios ( roteadores) os mesmos no se modificam. Discutiremos as formas de endereamento nos captulos seguintes. O campo OPTIONS no requerido em todos os datagramas. Foi criado inicialmente para permitir novas implementaes ao projeto original. O comprimento deste campo depende de quais

opes foram selecionadas. Algumas possuem somente 1 octeto, outras possuem comprimentos variveis. Quando presentes no datagrama, as opes aparecem de forma contgua e sem separadores. Cada opo consiste de 1 octeto simples que representa o OPTION CODE, que pode ser seguido de um outro octeto LENGTH e um conjunto de octetos de dados. O OPTION CODE dividido em 3 sub-campos, como pode ser visto na figura 4.4. O primeiro campo, o COPY, controla como os roteadores devem tratar as opes durante a fragmentao. Quando tem o seu valor 1 especifica que a opo ser copiada em todos os fragmentos, quando 0, somente no primeiro. O OPTION CLASS indica as vrias classes de opes. Os outros dois representam as vrias sub-opes dentro desta mesma classe. As tabelas 4.1 e 4.2 representam as classes e subclasses destas opes.
0 COPY 1 OPTION CLASS 2 5 6 OPTION NUMBER Figura .4 Sub-campos do OPTION CODE 3 4 7

OPTION CLASS 0 1 2 3

Classes Controle de datagrama ou de rede Reservado para uso futuro Medidas e depurao Reservado para uso futuro Tabela .1 - Classes de Opes

OPTION CODE 0

OPTION NUMBER 0

0 0

2 3

0 0

7 9

Comprimento da Descrio opo ----------------------Fim das opes. Indica ---que as opes Terminaram, a partir da colocado bytes para completar o cabealho. ----------------------Sem operao. Usados ---para alinhar octetos em uma lista de opes 11 palavras de Security. Usado para 32 bits implementar segurana. Varivel Loose Source Route. Usado para encaminhar um datagrama ao longo de um caminho especificado. Varivel Record Route. Usado para registrar as rotas. Varivel Strict Source Route. Usado para encaminhar um datagrama ao longo de um caminho especificado. Varivel Intert Timestamp. Usado para registrar o tempo em cada roteador. Tabela .2 Sub-classes de Opes

A opo Record Route permite a criao de uma lista vazia de endereo IP e cada roteador anexa seu endereo nesta. utilizada para fins de depurao de endereos. O Source Route prov uma maneira de indicar o caminho que deve ser seguido pelo datagrama, isto feito para verificar taxa de envio de dados de uma rede obrigando-a a seguir por um caminho a ser testado, para enviar pacotes de emergncia ou evitar rotas por questes polticas ou econmicas. Existem duas variaes desta opo, o Strict e o Loose. No Stict fornecido um caminho completo a ser seguido e o datagrama obrigado a passar por ele. No Loose, o pacote percorre por uma lista de roteadores especficos e permitido que ele passe por outros intermedirios.

Timestamp trabalha como o Record Option .Cria uma lista vazia que preenchida com o roteador e um tempo relativo a ele. Esta opo elimina a ambigidade, pois, o registro do roteador e seu timestamp permite que se possa saber exatamente qual caminho o datagrama seguiu. Security informa o nvel da segurana da informao. No utilizado na prtica, pois informa justamente quais informaes so mais interessantes para algum com ms intenes.

Endereamento IP
Identificadores Universais
Diz-se que um sistema prov um servio de comunicao universal quando possvel a quaisquer dos elementos deste sistema se comunicarem arbitrariamente. Para tornar um sistema de comunicao universal, devemos estabelecer um mtodo globalmente aceito para identificao dos componentes a ele conectados. Nas redes TCP/IP, a entidade que atua como identificador universal o endereo IP, um nmero de 32 dgitos binrios. A idia bsica de seus mentores era a de tornar o roteamento simples e eficiente. verdade que a manipulao deste tipo de nmero traz grande facilidade para o nvel de software mas seu tratamento no to simples para um humano.

As trs Classes Primrias de Endereo


Podemos pensar na Internet como uma gigantesca rede de computadores como qualquer outra rede fsica. A grande diferena, entretanto, est no fato de que a Internet uma estrutura virtual, concebida por seus desenhistas e implementada inteiramente em software. Assim, os projetistas tiveram liberdade de arbitrar o tamanho e formato dos pacotes, endereos, tcnicas de roteamento, etc. Nada ditado pelo hardware. Na questo do endereamento, optou-se por um esquema anlogo ao das redes convencionais, onde a cada host atribudo um nmero inteiro que ser seu endereo - no caso o endereo IP. A grande vantagem no esquema de endereamento da Internet que ele foi cuidadosamente concebido para simplificar a tarefa de roteamento. Cada mquina ligada Internet possui um endereo de 32 bits, que se divide em duas partes: uma primeira que identifica a rede a qual esse computador est fisicamente conectado e uma segunda parte que identifica o computador propriamente dito. Observe que todas as mquinas conectadas a uma mesma rede iro compartilhar essa primeira parte, que se convencionou chamar net id (identificador da rede). Analogamente, segunda poro do endereo IP chamamos host id (identificao da mquina). Em termos prticos, cada endereo IP dever estar contido em uma das cinco categorias representadas na Figura 1. A classe de um endereo pode ser identificada atravs do exame dos quatro bits de mais alta ordem, sendo que as trs classes bsicas (A, B e C) podem ser distinguidas apenas pelos dois primeiros. A classe A, usada para um pequeno nmero de redes que contm mais de 65.535 hosts, reserva 7 bits para o net id e 24 bits para o host id. Os endereos da classe B se destinam a redes de tamanho intermedirio (entre 256 e 65535 mquinas) e reservam 14 bits para o net id e 16 bits para o host id. Finalmente, a classe C, apropriada para pequenas redes, aloca 21 bits para o net id e apenas 8 bits para o host id. Observe que os endereos IP so estruturados de forma a permitir uma rpida extrao da identificao da rede (net id) e da mquina a ela conectada (host id). Os gateways dependem da extrao eficiente do net id para realizar o roteamento dos pacotes IP.

Figura 1 Ainda h pouco, dissemos que os endereos IP identificam um host. Essa afirmativa simplifica o tratamento do assunto mas no estritamente correta. Considere um gateway que conecta duas redes. Como poderemos atribuir a essa mquina um nico endereo IP, contendo uma identificao da rede e do host? Na verdade, no podemos. Mquinas como a deste exemplo, possuem no um, mas mltiplos endereos IP (dois, no caso). Cada um de seus endereos identifica uma conexo de rede. Numa definio mais precisa, portanto, endereos IP no definem hosts, mas conexes a uma rede. Mquinas conectadas a n redes, possuiro n endereos IP.

Endereo de uma rede e Endereo de Difuso (Broadcast)


J mencionamos a maior vantagem em codificar informao sobre a rede num endereo Internet: possibilitar um roteamento eficiente. Outra vantagem, que os endereos IP podem se referir tanto a hosts quanto a redes. Por conveno, um host id 0 nunca atribudo a uma mquina. Ao invs disso, esse endereo com os bits do host id todos zerados ir se referir rede propriamente dita. Outra vantagem do esquema de endereamento da Internet que ele permite que se faa referncia a todos os hosts de uma determinada rede atravs do chamado endereo de difuso. Um endereo de broadcast aquele em que os bits do host id so todos 1. Nem todas as redes suportam a difuso, algumas iro precisar de implementao de software e outras no permitiro esta facilidade nem mesmo a nvel de software.

Difuso local
O endereo de broadcast que acabamos de descrever chamado de Endereo de Difuso Direcionada j que contm um net id vlido (isto , um endereo de uma rede existente) e um host id indicando broadcast. O endereo de difuso permite que um sistema remoto mande um pacote para todos os ns de uma determinada rede. Do ponto de vista do endereamento, a grande desvantagem deste esquema que ele requer o conhecimento do endereo de rede. Outra forma de endereo de difuso de pacotes chamada endereo de difuso limitada ou endereo de difuso local. Este endereo consiste de 32 bits iguais a 1. Esse mecanismo possibilita a referncia a todas as mquinas de uma rede local sem que os endereos IP reais sejam conhecidos.

Endereos de referncia prpria rede e ao prprio host.


J podemos perceber que campos de endereo preenchidos somente com 1's indicam "todos". Um endereo com 32 bits 1, indica todas as mquinas desta rede e um endereo com todos os bits do host id iguais a 1 indica todas as mquinas de uma determinada rede (especificada no net id). Analogamente, campos preenchidos com 0's so geralmente interpretados como significando "este". Assim, um endereo com 32 bits 0, indica o prprio host (este host) e um endereo com todos os bits do net id iguais a zero, se refere rede local (esta rede).

Endereo de Multicast
Muitas tecnologias de rede contm mecanismos que permitem o envio simultneo (ou quase simultneo) de pacotes a mltiplos destinatrios. At agora, abordamos um destes mecanismos, conhecido com difuso. Na difuso enviada uma cpia de um pacote para todos os ns de uma rede. Em redes de barramento (como a Ethernet) isso pode ser alcanado com o envio de um nico pacote (capturado por todos os hosts). Em outras topologias, com conexes ponto-a-ponto, esse pacote dever ser replicado para alcanar todos os hosts. Algumas redes suportam um segundo tipo de comunicao ponto multi-ponto, conhecido com multicast. Ao contrrio do broadcast, a tcnica de multicast permite que cada host "escolha" se deseja ou no participar daquele "canal". Quando um grupo de mquinas decide se comunicar, elas selecionam um endereo de multicast que ser, ento, o seu canal de comunicao. Na Internet, quando um determinado grupo de mquinas (que podem estar conectadas a redes distintas) deseja criar um grupo de multicast, elas devem todas "sintonizar", isto , configurar suas interfaces para receber pacotes enviados para um mesmo endereo. Esse endereo dever pertencer Classe D. Assim, cada endereo entre 224.0.0.0 e 239.255.255.255 (mais de 268 milhes de alternativas!) pode ser usado por um determinado grupo de multicast.

A idia que hosts podem, a qualquer momento, conectar-se ou desconectar-se de um grupo de multicast. A tcnica de multicasting traz, como vantagem sobre a difuso, uma melhor seletividade. Isto , os dados s sero enviados aos hosts necessrios. E mais, os hosts alcanados no precisam pertencer a uma mesma rede fsica. Entretanto, sua implementao mais complexa pois necessita de hardware especializado.

Fraquezas do Endereamento IP
Um das desvantagens do esquema de endereamento da Internet que, como um endereo IP se refere a uma conexo de rede (e no a um host), quando uma mquina muda de uma rede para outra, ela deve mudar de endereo IP. Isso traz uma grande barreira conexo de hosts mveis (como computadores portteis) que precisem de IPs fixos Internet. Uma limitao menos importante est no fato de que redes classes C que crescam para alm de 255 hosts devem ser realocadas para a classe B. O que implica uma mudana de todos os endereos. A maior fraqueza, entretanto, surge quando analisamos cuidadosamente uma situao especial de roteamento de pacotes na Internet. J dissemos que as decises de roteamento (i.e. para que canal entre diversas possibilidades um pacote deve ser mandado) dependem da extrao do net id. Considere uma mquina conectada a duas redes (Rede 1 e Rede 2). Como o roteamento de pacotes para este host ser determinado pelo seu net id (e ele possui dois distintos), o caminho tomado por um pacote que se destina a essa mquina ir depender do endereo usado pelo remetente. Assim, parmetros, como o tempo de resposta na comunicao, iro variar de acordo com a interface que seja endereada. Essa multiplicidade de caminhos pode trazer consequncias pouco bvias. Um host pode deixar de ser acessvel por um de seus endereos IP, caso haja algum impedimento fsico em uma das redes a que ele est conectado. Uma outra mquina que conhea apenas esse endereo (desativado) e se comunique com este host atravs dele no poder mais faz-lo, embora o host ainda esteja ligado a Internet.

Notao Decimal
Nmeros de 32 bits no so facilmente manipulveis por seres humanos, e mesmo os programas da camada de aplicao no tratam diretamente com este tipo de representao. Uma forma mais inteligvel de representar endereos IP a de particion-lo em quatro octetos convertidos para a notao decimal e separados por pontos. Desta forma, o binrio 11000000 11000110 00001011 10000001 passa a ser tratado como 192.198.11.129 Pode-se tambm atribuir nomes alfabticos a hosts, facilitando ainda mais sua memorizao. Esta traduo apoiada por um protocolo especfico que atua sobre uma imensa base de dados distribuda conhecida como Domain Name System. O DNS um assunto de complexidade, que merece um curso exclusivamente dedicado a ele. Por questes de simplificao pode-se representar um endereo IP de 32 bits agrupando-os em grupos de 8 bits e representando estes grupos em valores decimais. Por exemplo o endereo 11001000100010011000001100000010 representado em forma de ponto decimal seria 200.137.131.2. A tabela 3 representa as classes de IP em notao decimal. Classe A Classe B Classe C Classe D Classe E 1.0.0.0 at 127.255.255.255 128.0.0.0 at 191.255.255.255 192.0.0.0 at 223.255.255.255 224.0.0.0 at 239.255.255.255 240.0.0.0 at 247.255.255.255 Tabela 3 - Classes de Endereos representados sobe forma decimal

Endereo de Loopback
O endereo 127.0.0.0 reservado aplicao de loopback. Isto , qualquer pacote enviado a este endereo no deve trafegar na rede, mas retornar ao prprio remetente (isto equivale a dizer que o pacote retornar da prpria interface de rede do host). O endereo de loopback se presta a testes e comunicao entre processos que rodam numa mesma mquina.

Sumrio dos Endereos Especiais


J abordamos diversos endereos IP especiais, isto , combinaes que tm significados especficos. A Figura 2 esquematiza essas diversas possibilidades.

Figura 2

Endereamento de Sub-Rede
Uma tcnica que permite que se partilhe um mesmo endereo de rede entre diversas redes o endereamento de sub-rede. Vamos imaginar uma instituio a qual foi atribudo um endereo classe C mas que possui diversas redes interconectadas em suas instalaes. Como partilhar este endereo entre estas diversas redes? A adio de sub-redes implica uma nova subdiviso do endereo IP. O sufixo designador do host (host id) dividido em duas partes: a primeira designar uma sub-rede, e a segunda um host a ela conectado.

Figura 3 O problema bsico que surge quando realizamos esta nova diviso que o esquema convencional de roteamento, que procura extrair a poro que designa a rede, deixa de funcionar. Para suplantar esta dificuldade, introduz-se no sistema de roteamento uma nova entidade: a mscara de sub-rede. A mscara de sub-rede um nmero de 32 bits que, aplicado (atravs de um "e" lgico) a um determinado endereo, permite a extrao de sua "poro de rede". Isto , ele possui bits 1 nas posies correspondentes a esta "poro de rede". Para uma rede classe C sem sub-redes a mscara seria: 11111111 11111111 11111111 00000000 que em notao decimal corresponde a: 255.255.255.0 Qual seria a mscara de sub-rede usada para extrair a "poro de rede" num classe C partilhado entre quatro redes? Observe que, para podermos realizar a partilha, os dois bits mais significativos do ltimo octeto iro ser usados para determinar a sub-rede. A mscara dever ento extrair os trs primeiros octetos e estes dois bits adicionais. A mscara seria: 11111111 11111111 11111111 11000000 correspondente a: 255.255.255.192 Esse o nmero que aplicado a um determinado endereo IP ir resultar na extrao da poro deste endereo sobre a qual iremos "resolver" o roteamento. A utilizao de mscaras to importante na Internet, que qualquer administrador de redes, independente de utilizar ou no sub-redes, ir lidar com esse parmetro quando configurar seus gateways.

Distribuio Geogrfica de endereos


Alm de utilizar as classes de redes vistas anteriormente, os endereos classes C, por serem em grande quantidade, so divididos geograficamente segundo a tabela 4. Cada regio recebe uma faixa destes que visa facilitar a tarefa de designao das rotas at o destino ( roteamento ). Faixa de endereos Localidade 194.0.0.0 a 195.255.255.255 Europa 198.0.0.0 a 199.255.255.255 Amrica do Norte 200.0.0.0 a 201.255.255.255 Amrica Central e Amrica do Sul 202.0.0.0 a 203.255.255.255 sia e a regio do Pacfico Tabela 4 - Distribuio geogrfica de classes C Por exemplo, um roteador americano que recebe um pacote cujo destino Londres, o envia ao roteador padro europeu, que ter mais detalhes sobre como encontrar o destino. Esta tcnica impede que os roteadores tenham de saber a localizao de todos os endereos classe C na rede mundial.

Implementao de sub-redes com mscara


Os bits 1 representa a parte correspondente a rede + sub-rede ( ver figura 6 ). Os bits 0 representa o pedao que ser utilizado para identificar cada um dos hosts. Na rede especificada no exemplo anterior, tem-se os primeiros 22 bits para representar rede + sub-rede, e os dez ltimos para enderear os hosts nesta rede. A mscara de sub-rede tambm, pode ser especificada utilizando a mesma notao decimal por ponto, que no exemplo daria 255.255.252.0 . Dado um endereo completo do host e sua mscara de sub-rede uma funo AND entre os dois, indicar a poro de rede deste. Por exemplo, um certo host, que utiliza esta mascara endereado por 186. 183.174.2 , aplicando um AND lgico entre este e a sua mascara obtm-se o endereo da sub-rede: 186.183.174.0. A faixa de endereo completa de 186. 183.174.0 at 186. 183.177.255 excluindo os mesmos.

Super-redes
Como pode-se notar a diviso de redes utilizando classes, tem como diferena a grande quantidade de endereos entre as classes. A "C" pequena demais para a maioria das empresas e a "B" muito grande. Em oposio ao esquema de diviso do IP em classes, surge o CIDR ( Classless Inter-Domain Routing). Este esquema de endereamento consiste em alocar as redes classes "C" restante em blocos de tamanhos variveis. Sendo assim, se um site precisar de 2.000 endereos receber um bloco de 2048 correspondente a oito blocos classe "C" de maneira contgua, ao invs de uma classe "B" completa. O endereo ento representado pelo par: (rede, numero). Por exemplo a rede (192.20.8.0,4) possui a faixa de endereos correspondente as redes 192.20.8.0, 192.20.9.0, 192.21.0.0 e 192.21.1.0 possuindo como mscara de super-rede 255.255.252.0.

Exemplo de Redes
As figuras abaixo mostram exemplos de endereamento de mquinas situadas na mesma rede e em redes diferentes. Pode ser observado que como o endereo comea por 200 (ou seja, os dois primeiros bits so 1 e o terceiro 0), eles so de classe C. Por isto, os trs primeiros bytes do endereo identificam a rede. Como na primeira figura, ambas as estaes tem o endereo comeando por 200.18.171, elas esto na mesma rede. Na segunda figura, as estaes esto em redes distintas e uma possvel topologia mostrada, onde um roteador interliga diretamente as duas redes.
Estao A Estao B

200.18.171.37

200.18.171.148 Rede = 200.18.171.0

Estao A Roteador

Estao B

200.18.171.148 200.18.171.37 200.18.171.0

200.18.180.10 200.18.180.200 200.18.180.0

A figura abaixo ilustra um diagrama de rede com o endereamento utilizado. Note que no h necessidade de correlao entre os endereos utilizados nas redes adjacentes. O mecanismo para que uma mensagem chegue na rede correta o roteamento. Cada elemento conectando mais de uma rede realiza a funo de roteamento IP, baseado em decises de rotas. Note que mesmo os enlaces formados por ligaes ponto-a-pontos so tambm redes distintas. Neste diagrama existem 6 redes, identificadas por 200.1.2.0, 139.82.0.0, 210.200.4.0, 210.201.0.0, 10.0.0.0 e 200.1.3.0.

200.1.2.0 200.1.2.1 200.1.2.20 200.1.2.35

139.82.5.14 139.82.5.0
139.82.5.15

139.82.5.3

139.82.5.129 210.200.4.3 210.200.4.0

200.1.3.2 200.1.3.0 210.201.0.0

210.201.0.1 210.200.4.57 210.200.4.56

200.1.3.1

210.201.0.3

10.0.0.1

10.0.0.2

Sub-Redes
Existem casos em que necessrio subdividir uma rede em redes menores. Imagine o administrador de uma rede classe A: como montar e administrar uma rede com 16 milhes de equipamentos? Mesmo redes classe C algumas vezes tm de ser sub-dividida em mais de uma rede fsica. Para esses casos, em que preciso subdividir uma determinada rede em sub-redes, foi criada a mscara de rede (subnet mask). A mscara de rede define quantos bits so utilizados para o endereo de rede e quantos bits so utilizados para especificar o endereo de equipamento, dentro dessa sub-rede. Alm do endereo IP cada equipamento passa a ter tambm uma mscara de rede. A mscara de rede tem o mesmo formato do endereo IP (nmero de 32 bits, representado por quatro nmeros decimais, separados por ponto). Quando no so utilizadas sub-redes, informa-se a mscara default da rede classe A, B ou C, conforme o caso.

Por exemplo, para subdividir uma rede classe A em 256 sub-redes, utiliza-se a mscara 255.255.0.0. A rede 15.0.0.0, com a mscara 255.255.0.0, passa a ser dividida nas seguintes sub-redes: 15.0.0.0, 15.1.0.0, 15.2.0.0, e assim por diante, at 15.255 0.0. Pode ser necessrio subdividir uma rede classe C. Como nesse caso no possvel utilizar um byte inteiro para endereo de sub-rede, utilizam-se alguns bits do ltimo byte do endereo IP para enderear a sub-rede. Se precisarmos subdividir a rede 200.245.29.0 em quatro sub-redes, utilizamos a mscara 255.255.255.192, pois "192" corresponde ao nmero "1100 0000" em binrio, o que indica que os dois primeiros bits endeream a subrede, e que as sub-redes possveis so "0000 0000" (0), "0100 0000" (64), "1000 0000" ( 128) e "1100 0000" (192). Ou seja, com a mscara de rede 255.255.255.192 possvel subdividir a rede 200.245.29.0 nas seguintes subredes: 200.245.29.0, 200.245.29.64, 200.245.29.128 e 200.245.29.192. Cada sub-rede pode enderear at 62 equipamentos (lembrando que um endereo usado para identificar a ede e outro para a comunicao em broadcast).A seguir apresentamos uma tabela que contm as sub-redes possveis para uma classe C.

J a tabela abaixo relaciona as mscaras de rede possveis para subdividir uma rede classe C, com o nmero de sub-redes e o nmero de equipamentos que cada mscara permite enderear. Por exemplo, para dividirmos uma rede classe C em seis sub-redes de quinze equipamentos cada, a soluo utilizarmos a mscara 255.255.255.224, que divide uma rede classe C em oito sub-redes com at trinta endereos

vlidos para cada rede. A mscara tambm pode ser representada como o nmero de bits utilizados para enderear a parte de rede, aps o endereo IP (endereo_IP/ nmero_de_bits). Exemplo : Essa notao utilizada por alguns fabricantes, e conhecida como CIDR, de Classless Inter-Domain Routing.

Planejamento de um esquema de endereamento

Normalmente, o provedor de backbone (ou a empresa pela qual sua empresa se conecta Internet) fornece uma faixa de endereos IP . Aps a definio dessa faixa, deve ser feito um planejamento da utilizao dos endereos IP . Caso seja necessrio utilizar sub-redes, define-se o nmero de sub-redes e o nmero de hosts para cada sub-rede. Em seguida, divide-se o ltimo byte do endereo IP em duas partes, uma para a sub-rede e outra para o host. Depois disso, determina-se a mscara de rede a ser utilizada. Para a mscara 255.255.255.240 divide-se o Ultimo byte em duas partes : Nesse exemplo, para cada um desses valores de sub-rede, somente catorze endereos so disponveis para hosts, pois somente a parte direita do byte pode ser usada, e o primeiro e o ltimo endereo de cada sub-rede tm significado especial. O primeiro endereo de cada sub-rede indica o endereo da prpria sub-rede, portanto no pode ser utilizado para enderear um host. O ltimo endereo de cada sub-rede o endereo de broadcast (esse endereo utilizado quando se deseja enviar informaes a todos os equipamentos da subrede), portanto esse endereo tambm no pode ser utilizado para enderear um host. Assim, a sub-rede 192.67.32.16 (mscara 255.255.255.240) poder conter hosts nas faixas de endereo de 192.67.32.17 at 192.67.32.30 e a sub-rede 192.67.32.32 poder conter hosts na faixa de 192.67.32.33 at 192.67.32.46, etc.

Protocolos de roteamento
Conceito
As redes locais podem interligar-se por meio de ns comuns, que so chamados de roteadores. Ou, ainda, a conexo entre duas redes locais pode ser um enlace entre dois roteadores, sendo cada roteador um n de uma das redes. Se um pacote de dados tiver que ser encaminhado a um n situado em outra rede local, ele passar por um ou mais roteadores no caminho. Cada roteador decidir apenas a qual dos seus enlaces encaminhar o pacote. Esta parte do trajeto total do pacote um hop. O hop seguinte no trajeto do pacote ser decidido pelo roteador existente na outra extremidade do enlace.

Para executar o roteamento de um pacote, o roteador precisa de uma tabela de roteamento que, para cada n da rede a ser alcanado, indique o prximo hop que o pacote deve seguir.

Por exemplo, consideremos a rede cujos roteadores, respectivos enlaces e seus custos aparecem na Figura 19. A tabela de roteamento do roteador R1 , construda pelo critrio de menor custo, dada a seguir.

As rotas da tabela de roteamento podem ser estticas ou dinmicas. As rotas estticas so configuradas pelo administrador da rede. Na ocorrncia de falhas ou na ampliao da rede necessrio reconfigurar manualmente as tabelas de roteamento de todos os roteadores vizinhos. J as rotas dinmicas so constantemente atualizadas por protocolos de roteamento. Nesse caso, na ocorrncia de falhas ou na ampliao da rede, o protocolo de roteamento detecta a mudana de topologia da rede e atualiza as tabelas de roteamento nos roteadores envolvidos. Esse processo muito mais rpido do que a reconfigurao manuaI. Os protocoIos de roteamento classificam-se, de acordo com o algoritmo de mapeamento das rotas, em distance vector e link state. Alm disso, os protocolos de roteamento podem ser classificados de acordo com a sua cobertura da rede ou de acordo com as "regies administrativas", que podem ser internas (Interior Gateway Protocols) ou externas (Exterior Gateway Protocols). Tendo em vista essa ltima classificao, convm definir o conceito de sistema autnomo. Um sistema autnomo uma coleo de roteadores e de redes sujeitos a um nico controle administrativo, por exemplo, um backbone. Algoritmos distance vector Os algoritmos do tipo distance vector difundem a informao de roteamento para os roteadores na rede. Os roteadores que usam aIgoritmos desse tipo mantm apenas uma tabela de roteamento com a informao necessria para atingir o prximo roteador na direo de cada um dos roteadores existentes na rede. Cada elo at o roteador mais prximo numa dada direo chama- se next hop. Esses roteadores trocam periodicamente informaes a respeito das suas tabelas de roteamento mesmo que elas no tenham sido alteradas desde a ltima troca de informaes. Algoritmo link state Os algoritmos do tipo link state geram e mantm um mapa lgico de toda a rede . Um roteador desse tipo realiza essa tarefa por meio do envio de um pacote com informaes sobre todos os seus enlaces (conexes para redes e conexes para outros roteadores) para todos os outros roteadores link state existentes na rede. Esse procedimento chamado de flooding. Cada roteador usa essas informaes para construir um mapa da rede, sendo concludo quando todos os roteadores atingirem o mesmo mapa da rede. Os roteadores link state somente retransmitem informaes entre si quando ocorre uma mudana na rota ou no servio.

RIP
O Routing Infonoation Protocol (RIP) um protocolo do tipo distance vector usado nas redes TCP/IP. Um roteador com protocolo RIP habilitado transmite periodicamente uma mensagem de atualizao de roteamento, que possui um dado para cada rede que pode alcanar, representando o custo de acesso a ela. Os roteadores RIP "escutam" todas as mensagens de broadcast do protocolo RIP . Cada dado recebido numa mensagem de atualizao de roteamento incorporado tabela de roteamento. O roteador que enviou a mensagem de atualizao identificado como o prximo roteador (next hop router) da rota para o destino, cuja distncia de acesso representada pelo dado em questo. Se um roteador for informado da existncia de duas rotas de acesso a uma mesma rede, ele mantm na tabela de roteamento apenas o prximo hop e a distncia da rota de caminho mais curto. O RIP usa como distncia a contagem dos hops, ou seja, o nmero de roteadores existentes no caminho at o destino. essa, distncia est limitada em quinze hops. A partir do momento em que uma rota memorizada na tabela de roteamento, sua existncia precisa ser verificada a intervalos regulares. Os roteadores RIP normalmente transmitem uma mensagem de atualizao de roteamento contendo todas as rotas a cada 30 segundos. Sempre que uma rota atualizada em conseqncia de uma mensagem de atualizao de roteamento, dispara-se um temporizador. Se no for recebida nenhuma mensagem de atualizao da rota dentro de 180 segundos, a rota considerada inativa em decorrncia de uma falha de rede ou de n (mtrica 16, usada para esse fim), retirada da tabela de roteamento e divulgada (como removida) para os vizinhos por 120 segundos.

RIP II
O RIP II um aprimoramento do RIP que inclui mscara de rede nas suas rotas. A falta de mscara de rede limita o RIP I (ou simplesmente RIP) divulgao de rotas de rede apenas ou leva os roteadores RIP a fazer hipteses sobre a mscara de rede. Quando o RIP I usado numa rede com sub-redes, todas as sub-redes so foradas a usar a mesma mscara. O RIP II pode ser utilizado em topologias de rede que exijam o uso de mscaras de rede com comprimentos variveis, podendo suportar a sub-rede zero. Porm, nem todos os roteadores RIP suportam o RIP II. O RIP II tambm suporta autenticao de seus pacotes por password, evitando a adulterao destes em seu trajeto pela rede.

OSPF
Open Shortest Path First (OSPF) um protocolo de roteamento interno do tipo, link state (Dijkstra link state), que faz parte do conjunto de protocolos TCP/IP . Os roteadores do tipo link state trocam informaes sobre a topologia da rede, incluindo o estado de funcionamento de cada enlace e a distncia associada entre seus roteadores. Com esses dados trocados, cada roteador constri o seu mapa da rede, que utiliza para a extrao dos dados necessrios para o roteamento. Os protocolos do tipo distance vector demandam dos roteadores vizinhos a troca das distncias de cada um a todos os outros roteadores da rede. Para cada destinatrio, os roteadores OSPF consultam a sua base de dados de link state e selecionam a rota que proporcione o caminho mais curto. Na seqncia, as informaes de link state so compartilhadas com outros roteadores em diferentes reas, de acordo com a relao que guardam entre si. Para fins administrativos, a rede OSPF pode ser subdividida em vrias regies ou reas. Todos os roteadores da mesma rea trocam entre si todas as informaes sobre o estado completo dos enlaces. As informaes trocadas entre roteadores de reas diferentes consistem apenas em um resumo da topologia.

Comparao entre os protocolos de roteamento


A tabela a seguir resume os principais aspectos dos protocolos RIP, RIP 11 e OSPF comparando-os entre si.

O RIP, apesar de sua facilidade de configurao, recomendado apenas para pequenas redes (algo em torno de quarenta ou cinqenta roteadores no mximo).Sua grande vantagem que, por ser um protocolo simples, implementado pela grande maioria de roteadores e sistemas operacionais, o que no ocorre com o OSPF que bem mais complicado de se configurar que o RIP, porm apresenta vrias vantagens em relao a este, tais como: organizao hierrquica, segurana contra ataques de informaes de roteamento, reduo de overhead, convergncia de rotas mais rpida e maior tolerncia a falhas. Embora apresente maior dificuldade inicial de aprendizado, e sua configurao seja mais complexa, OSPF o protocolo ideal para ambientes mais complexos ou com previso de crescimento.

EGP
O Exterior Gateway Protocol (EGP) troca informaes de acesso entre sistemas autnomos. Ele faz parte do conjunto de protocolos TCP/IP . Escolhem-se alguns roteadores em cada sistema autnomo para intermediar a comunicao com o mundo externo, em geral pela Intemet. Esses roteadores so denominados roteadores externos. Os roteadores externos tomam-se vizinhos EGP. Os vizinhos EGP trocam informaes sobre as redes que podem ser alcanadas no interior dos seus respectivos sistemas autnomos.

Protocolo ARP e RARP


Introduo Foi mencionado anteriormente que os endereos IPs possuem 32 bits e so endereos virtuais (endereo de um ponto na rede). Apartir de agora iremos verificar como feito o endereamento de um pacote apartir de um ponto fsico (endereo de mquina). Inicialmente devemos entender o que MAC (Controle de Acesso ao Meio). Uma placa de rede possui um endereo nico gravado no hardware, feito pelo fabricante. Os endereos MAC so representados por nmeros em hexadecimal. Cada a;gorismo em hexadecimal equivale a um nmero de 4 bits. Desta forma, um byte representado por dois algarismo em hexadecimal e, com isso, o endereo MAC sempre representado como m conjunto de 12 algarismo em hexadecimal. Foi padronizado que os endereos MAC utilizam os 3 primeiros bytes para o cdigo do fabricante, este cdigo chamado de OUI (Organizationally Unique Identifier). Os 3 ltimos bytes se referem ao nmero de srie da placa, nmero definido pelo fabricante. Problema de Converso : Como mquinas somente conseguem se comunicar atravs de endereos de interligao (endereos fsicos), se torna necessrio a converso dos endereos de alto nvel (camada de rede acima) para endereos de baixo nvel (endereo fsico do dispositivo de comunicao). Converso atravs do mapeamento direto: Em alguns tipo de rede como : proNet token ring, o endereo fsico malevel e pode ser configurado pelo usurio. Neste casa se torna fcil a comverso do endereo de rede com o endereo a nvel fsico. Converso atravs de vinculao dinmica: Em uma rede IP utilizando Ethernet, todo dispositivo de rede possui um endereo MAC vinculado ao IP. Se um destes dispositivos falham, ele deve ser trocado, logo o equipamento pode ser o mesmo, porem com outro dispositivo e com o mesmo IP. Para solucionar este tipo de problema foi criado o protocolo ARP (Address Resolution Protocol), utilizando a seguinte idia: A deseja descobrir o endereo de B Envia um pacote de broadcast para todas as mquinas, porem com o endereo IP de destino o da B Somente B responde esta solicitao A recebe esta resposta e envia a B os dados de usurio a serem transmitidos

Cache de converso de endereo: Porque no passado o pacote de usurio por difiso ? Devido ao trfego da rede. Para poder solucionar este problema de sempre perguntar o endereo, mantido em toda mquina na rede uma cache interno (arquivo) que contem uma vinvulao entre o endereo fsico e o endereo IP. Aprimoramento de ARP: 1o Quando B recebe o pacote de A, ele retira o MAC de A e quarda em seu cache o 2 Quando A envia por difuso um pedido para B, todas as mquinas recebem este pedido porem s B responde, mas estas mquinas retiram o MAC de A e quarda em suas tabelas ARP 3o Quando B trocar sua interface, seu MAC ser alterado. Porem quando B entrar no ar novamento ele informar por difuso que seu MAC foi alterado.

Definio ARP: ARP um protocolo de baixo nvel que absrai o endereamento fsico, permitindo que seja atribudo um endereo IP para cada mquina. Idealizamos ARP como a parte fsica do sistema de redes, e no como a parte do protocolo de interligao em redes. Implementao ARP: Ao enviar um pacote, dever ser consultado a tabela ARP para saber se o existe um MAC para o IP de destino. Se no houver, ser enviado um pacote por difuso para todas as mquinas na rede. Se a mquina de destino estiver muito ocupado ou desativada a resposta pode demorar. Enquanto isto, a mquina de origem, deve manter o pacote de

usurio de forma a envia-lo o mais rpido possvel, assim que a resposta chegue. Porem, o canal de cmunicao deve ser mantido livre para ser utilizado com outros destinos. Podemos considerar, em outro caso, quando A mantem comunicao B (o MAC de B est gravado na cache de A), e derrepente a placa de comunicao de B falha e a mesma substituda. O que aconteceria com A se B voltasse com outro MAC. Para esta soluo foi criado um timer na Cache da tabela ARP, onde um registro dever ser atualizado, substitudo ou mesmo excludo aps um determinado tempo. Este procedimento mantem a segurana na comunicao entre dois hosts. Podemos ter dois tipos de tratamento para os pacotes ARP. Quando A envia uma solicitao de endereamento para B. B envia uma resposta para A e A dever acrescentar/atualizar em sua tabela ARP o endereo de B. Porem se o pacote de resposta de B no coincidir com o IP solicitado por A, o pacote dever ser descartado. Encapsulamento e identificao ARP:

MENSAGEM ARP
CABEALHO QUADRO

MENSAGEM ARP

Quando uma mensagem ARP enviada, a mesma possui uma valor especial no campo TIPO, isto faz com seja realizado uma tratamento especial/urgente para as mensagens ARP. Formato do protocolo ARP: As mensagens ARP no possuem um cabealho fixo, fazendo com que esta mesagens possua uma boa adaptao em diferentes tecnologias. Para a rede Ethernet a mensagem Arp possui 28 octetos.

TIPO HARDWARE HLE SENDER HA SENDER IP HL

TIPO PROTOCOLO OPERAO SENDER IP TARGET HA

SENDER HA ( octetos 0-3 )

TARGET HA (octetos 2-5 ) TARGET IP (octetos 0-3 )


TIPO DE HARDWARE : Tipo de interface de hardware do destino TIPO DE PROTOCOLO : tipo do protocolo da camada de enlace (Ex. Ethernet = 080016) OPERAO : Solicitao ARP (1); resposta ARP (2); solicitao RARP (3) e resposta RARP (4) HLEN : extenso do endereo de hardware PLEN : extenso do endereo de protocolo SENDER HA : endereo de hardware da origem SENDER IP : endereo IP da origem TARGET HA : endereo de hardware de destino (RARP) TARGET IP : endereo IP do destino

Protocolo RARP Introduo


Normalmente o endereo IP de uma mquina mantido em um arquivo de configurao. Mas como mquinas sem disco iro conseguir verificar este arquivo ? Mquinas sem disco, tentam contatar um servidor na rede que possua o seu endereo IP, atravs de uma comunicao utilizando o endereo fsico (MAC). enviado uma solicitao a um servidor, o qual possui um banco de dados com tais informaes, e aguardado sua resposta. Porem esta mquina, no sabe qual o endereo fsico do servidor. Ela apenas envia um broadcast para a rede e solicita a todas as mquinas que enviem o seu endereo IP. Somente o servidor responder. Este mesmo procedimento, pode ocorrer no caso de uma mquina solicitar o endereo IP de uma terceira. O RARP uma adaptao do protocolo ARP, e utiliza o mesmo formato de endereamento, sendo a nica necessidade a troca do campo tipo para 803516, para identificar o contedo do quadro como mensagem RARP.

Protocolo ICMP
O protocolo ICMP um protocolo auxiliar ao IP, que carrega informaes de controle e diagnstico, informando falhas como TTL do pacote IP expirou, erros de fragmentao, roteadores intermedirios congestionados e outros. Uma mensagem ICMP encapsulada no protocolo IP, conforme ilustrado na figura abaixo. Apesar de encapsulado dentro do pacote IP, o protocolo ICMP no considerado um protocolo de nvel mais alto.
Cabealho ICMP Cabealho IP Dados ICMP

Mensagem ICMP
Datagrama IP

A mensagem ICMP sempre destinada ao host origem da mensagem, no existindo nenhum mecanismo para informar erros aos roteadores no caminho ou ao host destino. As mensagens ICMP possuem um identificar principal de tipo (TYPE) e um identificador de sub-tipo (CODE), conforme pode ser visto no formato de mensagem ilustrado abaixo:
0 Octeto 1 TYPE 7 Octeto 2 CODE 15 Octeto 3 23 Octeto 4 31

CHECKSUM

MENSAGEM ICMP ESPECFICA

Os tipos de mensagem ICMP so listados na tabela abaixo: Tipo Mensagem ICMP Categoria
0 3 4 5 8 9 10 11 12 13 14 15 16 17 Echo Reply Destination Unreachable Source Quench Redirect Echo Request Router Advertisement (RFC 1256) Router Solicitation (RFC 1256) Time Exceeded for a Datagram Parameter Problem on a Datagram Timestamp Request Timestamp Reply Information Request (obsoleto) Information Reply (obsoleto) Address Mark Request Controle Erro Controle Controle Controle Controle Controle Erro Erro Controle Controle Controle Controle Controle Controle

18 Address Mark Reply As mensagens ICMP so listadas abaixo:

Echo Request e Echo Reply


Utilizada pelo comando ping, a mensagem Echo Request enviada para um host causa o retorno de uma mensagem Echo Reply. utilizada principalmente para fins de testes de conectividade entre as duas mquinas.
0 Octeto 1 TYPE (8 ou 0) 7 Octeto 2 CODE (0) 15 Octeto 3 23 Octeto 4 31

CHECKSUM SEQUENCE NUMBER

IDENTIFIER

OPTIONAL DATA ...

Destination Unreacheable
Esta mensagem possui diversos sub-tipos para identificar o motivo da no alcanabilidade: os sub-tipos utilizados atualmente so: 0 : Network Unreachable - Rede destino inalcanvel 1 : Host Unreachable (ou falha no roteamento para subnet) - Mquina destino inalcanvel 2 : Protocol Unreachable - Protocolo destino desativado ou aplicao inexistente 3 : Port Unreachable - Porta destino sem aplicao associada 4 : Fragmentation Needed and DNF set - Fragmentao necessria mas bit DNF setado. Alterado tambm pela RFC 1191 para suporta o protocolo Path MTU Discovery

5 : Source Route Failed - Roteamento por rota especificada em opo IP falhou 6 : Destination Network Unknown 7 : Destination Host Unknown 8 : Source Host Isolated 9 : Communication with destination network administratively prohibited 10 : Communication with destination host administratively prohibited O sub-tipo Fragmentation Needed and DNF set utilizado como forma de um host descobrir o menor MTU nas redes que sero percorridas entre a origem e o destino. Por meio desta mensagem, possvel enviar pacotes que no precisaro ser fragmentados, aumentando a eficincia da rede. Esta tcnica, que forma um protocolo denominado de ICMP MTU Discovery Protocol, definido na RFC 1191. A operao simples. Todo pacote IP enviado marcado com o bit DNF (Do Not Fragment), que impede sua fragmentao nos roteadores. Desta forma, se uma pacote IP, ao passar por um roteador para chegar a outra rede com MTU menor, deva ser fragmentado, o protocolo IP no ir permitir e enviar uma mensagem ICMP Destination Unreacheable para o destino. Para suportar esta tcnica, a mensagem ICMP foi alterada para informar o MTU da rede que causou o ICMP. Desta forma, a mquina origem saber qual o valor de MTU que causou a necessidade de fragmentao, podendo reduzir o MTU de acordo, nos prximos pacotes. Esta mensagem est ilustrada abaixo:
0 Octeto 1 TYPE (3) 7 Octeto 2
CODE (4)

15 Octeto 3

23 Octeto 4

31

CHECKSUM MTU of next HOP

No usado (deve ser 0)

IP HEADER + FIRST 64 BITS OF DATAGRAM

...
Source Quench
Esta mensagem utilizada por um roteador para informar origem, que foi obrigado a descartar o pacote devido a incapacidade de rote-lo devido ao trfego.
0 Octeto 1 TYPE (4) 7 Octeto 2 CODE (0) 15 Octeto 3 23 Octeto 4 31

CHECKSUM

UNUSED (MUST BE ZERO) IP HEADER + FIRST 64 BITS OF DATAGRAM

...
Redirect
Esta mensagem, uma das mais importantes do protocolo IP, utilizada por um roteador para informar ao host origem de uma mensagem que existe uma rota direta mais adequada atravs de outro roteador. O host, aps receber a mensagem ICMP, instalar uma rota especfica para aquele host destino:
0 Octeto 1 TYPE (5) 7 Octeto 2 CODE (0-3) 15 Octeto 3 23 Octeto 4 31

CHECKSUM

GATEWAY INTERNET ADDRESS IP HEADER + FIRST 64 BITS OF DATAGRAM

...
0 : Redirect datagrams for the Net (obsoleto) 1 : Redirect datagrams for the Host 2 : Redirect datagrams for the Type of Service and Net 3 : Redirect datagrams for the Type of Service and Host

A operao do ICMP Redirect ocorre conforme os diagramas abaixo. Note que a rota instalada uma rota especfica para host, com mscara 255.255.255.255, no servindo para outras mquinas na mesma rede. Se uma mquina se comunica com 10 mquinas em outra rede e se basear em ICMP Redirect para aprender as rotas, ele instalar pelo menos 10 entradas na tabela de rede, uma para cada mquina

139.82.16.33 139.82.16.1 139.82.17.1

139.82.17.22 139.92.18.1 139.92.17.2

139.82.18.44

139.82.16.2 139.82.19.1

Datagrama IP Origem: 139.82.17.22 Destino: 139.82.19.55


139.82.19.55
139.82.16.33 139.82.16.1 139.82.17.1 139.82.17.22 139.92.18.1 139.92.17.2 139.82.18.44

139.82.16.2 139.82.19.1

Mensagem ICMP
5 1 CHECKSUM

139.82.17.1
139.82.19.55
IP HEADER + FIRST 64 BITS OF DATAGRAM

Na figura acima, a estao 139.82.17.22 instalou, aps a mensagem ICMP, a seguinte rota na tabela de rotas: Rede Mscara Roteador Destino (Gateway) ops 139.8 255.255.255 139.82.17.1 2.19.55 .255

TTL Expired
Esta mensagem ICMP originada em um roteador informa ao host de origem que foi obrigado a descartar o pacote, uma vez que o TTL chegou a zero.
0 Octeto 1 TYPE (11) 7 Octeto 2 CODE (0-1) 15 Octeto 3 23 Octeto 4 31

CHECKSUM

UNUSED (MUST BE ZERO) IP HEADER + FIRST 64 BITS OF DATAGRAM

...
Esta mensagem utilizada pelo programa traceroute (ou tracert no Windows) para testar o caminho percorrido por um pacote. O programa funciona da seguinte forma: 1. 1. enviada uma mensagem ICMP Echo Request para um endereo IP destino. Esta mensagem enviada com TTL = 1. 2. 2. Quando chega ao primeiro roteador, este decrementa o valor de TTL da mensagem IP e retorna uma mensagem ICMP TTL Expired. O programa armazena o endereo IP do roteador que enviou a mensagem TTL Expired. 3. 3. O programa envia outra mensagem ICMP Echo Request para o endereo IP destino. Esta mensagem enviada desta vez com TTL=2. 4. 4. A mensagem atravessa o primeiro roteador e tem o TTL decrementado para 1. Quando chega ao segundo roteador, o TTL torna-se 0 e este roteador envia uma mensagem ICMP TTL Expired para a mquina origem. Esta armazena o endereo do segundo roteador. 5. 5. Esta operao prossegue at que a mquina destino responda. Todos os roteadores no caminho so registrados. Note, entretanto, que devido diferenas de rotas seguidas pelos diversos pacotes, o caminho obtido no necessariamente nico. A execuo do programa traceroute mais de uma vez pode revelar rotas diferentes seguidas pelos pacotes.

ICMP Router Solicitation/Advertisement


Esta variao de ICMP, definido na RFC 1256 foi projetada para permitir que um roteador possa divulgar sua existncia para as mquinas existentes na rede. O objetivo desta funo evitar a necessidade de se configurar manualmente todas as estaes da rede com a rota default e permitir que uma estao conhea outros roteadores alm do default que possam rotear no caso de falha do principal.

A mensagem composta de duas formas: a solicitao de divulgao de uma roteador e o anncio de um roteador. O roteador pode ser configurado para enviar automaticamente as mensagens de anncio ou faz-lo apenas comandado por uma mensagem de solicitao. A mensagem ICMP Router Solicitation mostrada abaixo:
0 Octeto 1 TYPE (10) 7 Octeto 2 CODE (0) 15 Octeto 3 23 Octeto 4 31

CHECKSUM

RESERVADO

A mensagem ICMP Router Solicitation mostrada abaixo:


0 Octeto 1 TYPE (9) 7 Octeto 2 CODE (0) 15 Octeto 3 23 Octeto 4 31

CHECKSUM LIFETIME (seg)

NUM ADDR 2 (Tam Reg)

ROUTER ADDRESS 1

PREFERENCE LEVEL 1

...
Esta mensagem pode conter a divulgao de diversos roteadores iniciada a partir de um que seja configurado para divulg-los. O nmero de preferncia a ordem de preferncia que estes roteadores podem ser utilizados pelas estaes.

Aquisio de informaes de roteamento


Em uma estao e em um roteador, as informaes constantes na tabela de rotas podem ser obtidas de diversas formas. As rotas podem ser obtidas por uma estao ou em um roteador de diversas formas, com limitaes dependendo da implementao do TCP/IP em cada sistema operacional: 1. 1. Estao sem nenhuma rota. Neste caso, a estao vai precisar de pelo menor um roteador default. A estao pode obter um roteador default atravs de: protocolo ICMP Router Advertisement Protocolo BOOTP ou DHCP durante a etapa de boot ou aps ela. Escuta dos protocolos de roteamento como RIP e outras para descobrir roteadores outras, sempre no respeitando a diviso em camadas 2. 2. Estao com somente um roteador default. Com um roteador, a estao j pode operar corretamente. No caso de existir rotas melhores atravs de outros roteadores, o roteador default informar rotas especficas atravs de ICMP Redirect, sempre especfica para uma estao destino. 3. 3. Estao com mais de um roteador default, poder utilizar os diversos roteadores default, no caso de falha do primeiro. 4. 4. Estao com rotas especficas para outras redes configuradas de forma manual. 5. 5. Estao executando algum protocolo de roteamento, geralmente na forma SOMENTE ESCUTA. Desta forma, a estao pode aprender informaes de rotas trocadas entre os roteadores sem divulgar rotas. possvel inclusive ocorrer o recebimento de informaes conflitantes ou no idnticas de rotas para determinadas redes. O roteador resolve estes conflitos com a adoo de prioridades para rotas aprendidas por meios diferentes. Geralmente, a ordem de prioridade da forma de aprendizagem das rotas da seguinte forma: 1. 1. Rotas configuradas estaticamente tem maior prioridade, exceto se houver outra rota mais especfica (com mscara mais longa). P. exemplo, um roteador possui uma rota para a rede 200.0.0.0 mas aprende uma rotas especfica para 200.0.0.123. Esta ltima ter maior prioridade 2. 2. Rotas especficas aprendidas por meio de ICMP Redirect e rotas default aprendidas por meio de ICMP Router Advertisement 3. 3. Rotas aprendidas por meio dos protocolos OSPF e BGP 4. 4. Rotas aprendidas por meio do protocolo RIP

Protocolos da Camada de Transporte


A figura 1 ilustra a diviso em camadas da arquitetura TCP/IP:

Aplicao
Mensagens da aplicao

Transporte Inter-rede
Datagramas IP

Rede
Camada de Transporte

HDLC, X.25, PPP, SLIP, Ethernet, Token-Ring, FDDI, ATM, LLC, NDIS, ...

Esta camada rene os protocolos que realizam as funes de transporte de dados fim-a-fim, ou seja, considerando apenas a origem e o destino da comunicao, sem se preocupar com os elementos intermedirios. A camada de transporte possui dois protocolos que so o UDP (User Datagram Protocol) e TCP (Transmission Control Protocol). O protocolo UDP realiza apenas a multiplexao para que vrias aplicaes possam acessar o sistema de comunicao de forma coerente. O protocolo TCP realiza alm da multiplexao, uma srie de funes para tornar a comunicao entre origem e destino mais confivel. So responsabilidades do protocolo TCP o controle de fluco, o controle de erro, a sequenciao e a multiplexao de mensagens. A camada de transporte oferece para o nvel de aplicao um conjunto de funes e procedimentos para acesso ao sistema de comunicao de modo a permitir a criao e a utilizao de aplicaes de forma independente da implementao. Desta forma, as interfaces socket (ambiente Unix) e Winsock (ambiente Windows) fornecem um conjunto de funes-padro para permitir que as aplicaes possam ser desenvolvidas independentes do sistema operacional no qual rodaro.

Protocolo UDP
O protocolo UDP fornece uma forma simples de acesso ao sistema de comunicao, provendo um servio sem conexo, sem confiabilidade e sem correo de erros. A principal funo do nvel de transporte implementada em UDP a capacidade de multiplexao de acesso ao sistema de comunicao. Esta funo permite que vrios processos ou programas executando em um computador possam acessar o sistema de comunicao e o trfego de dados respectivo a cada um deles seja corretamente identificado, separado e utilize buffers individuais. Um processo o programa que implementa uma aplicao do sistema operacional, e que pode ser uma aplicao do nvel de aplicao TCP/IP. A forma de identificao de um ponto de acesso de servio (SAP) do modelo OSI a porta de protocolo em TCP/IP. A porta a unidade que permite identificar o trfego de dados destinado a diversas aplicaes. A identificao nica de um processo acessando os servios TCP/IP , ento, o endereo IP da mquina e a porta (ou portas) usadas pela aplicao. Cada processo pode utilizar mais de uma porta simultneamente, mas uma porta s pode ser utilizada por uma aplicao em um dado momento. Uma aplicao que deseje utilizar os servios de comunicao dever requisitar uma ou mais portas para realizar a comunicao. A mesma porta usada por uma aplicao pode ser usada por outra, desde que a primeira tenha terminado de utiliz-la. A forma de utilizao de portas mostra uma distino entre a parte cliente e a parte servidora de uma aplicao TCP/IP. O programa cliente pode utilizar um nmero de porta qualquer, j que nenhum programa na rede ter necessidade de enviar uma mensagem para ele. J uma aplicao servidora deve utilizar uma nmero de porta bemconhecido (Well-known ports) de modo que um cliente qualquer, querendo utilizar os servios do servidor, tenha que saber apenas o endereo IP da mquina onde este est executando. Se no houvesse a utilizao de um nmero de porta bem conhecido, a arquitetura TCP/IP deveria possuir um mecanismo de diretrio para que um cliente pudesse descobrir o nmero da porta associado ao servidor. Para evitar este passo intermedirio, utiliza-se nmeros de porta bem conhecidos e o cliente j possui pr programado em seu cdigo o nmero de porta a ser utilizado. Os nmeros de porta de 1 a 1023 so nmeros bem-conhecidos para servios (aplicaes) atribudos pela IANA (Internet Assigned Numbers Authority). Os nmeros de 1024 a 65535 podem ser atribudos para outros servios e so geralmente utilizados pelas programas-cliente de um protocolo (que podem utilizar um nmero de porta qualquer). Este conjunto de nmeros tem ainda a atribuio de alguns servios de forma no oficial, j que os primeiros 1024 nmeros no conseguem comportar todos os protocolos TCP/IP existentes. A figura abaixo ilustra a multiplexao/demultiplexao realizada pelo protocolo UDP, camada de transporte:
Aplicao 1 Aplicao 2

Porta 126

Porta 34

Porta 22

UDP

IP
Formato da mensagem UDP
0 Octeto 1 7 Octeto 2 15 Octeto 3 23 Octeto 4 31

UDP SOURCE PORT UDP MESSAGE LENGTH DATA ...

UDP DESTINATION PORT UDP CHECKSUM

Opcional (campo=0)
A mensagem UDP representada pela figura acima. O dado carregado o pacote de nvel de aplicao. UDP acrescenta apenas mais 8 bytes que so a porta de protocolo origem a porta de protocolo destino, o tamanho da mensagem UDP e um checksum para averiguar a correo dos dados do cabealho UDP. Pseudocabealho UDP A soma de verificao UDP abrange mais informaes do que consta do datagrama UDP sozinho. Para calcular a soma de verificao, o UDP inicialmente adiciona um pseudocabealho ao datagrama UDP, acrescenta um octeto de zeros para preencher o datagrama e fazer dele um mltiplo exato de 16 bits e calcula a soma de verificao cobrindo todo o objeto. O octeto usado para preenchimento e pseudocabealho no so transmitidos com o datagrama UDP, nem so includos no comprimento. Para calcular uma soma de verificao, o software primeiramente armazena zeros no

campo soma de verificao e, acumula uma soma de complementos de um de 16 bits de todo o objeto, inclusive o pseudocabealho, o cabealho UDP e os dados de usurio. O uso de um pseudocabealho tem como finalidade verificar se o datagrama UDP atingiu o seu destino correto. A chave para compreender o pseudocabealho est na constatao de que o destino correto consiste em uma mquina especfica e em uma porta de protocolos especfica dentro desta mquina. O prprio cabealho UDP especifica apenas o nmero de porta de protocolo. Assim, para verificar o destino, o UDP na mquina transmissora calcula uma soma de verificao que cubra o endereo IP de destino, assim como o datagrama UDP. No destino final, o UDP examina a soma de verificao usando o endereo IP de destino obtido do cabealho do datagrama IP que transportou a mensagem UDP. Se a soma de vreificao conferir, ento deve ser verdade que o datagrama alcanou o host de destino

pretendido, assim como a porta de protocolo correta naquele host. Figura 1 - Os 12 octetos do pseudocabealho usado durante o clculo da soma de verificao UDP O pseudocabelho usado no clculo da soma de verificao UDP consiste em 12 octetos de dados distribudos. Os campos do pseudocabealho, denominados Endereos IP de Origem e Endereo IP de Destino comtm os endereos IP de origem e de destino que sero usados ao ser enviada a mensagem UDP. O campo Proto contm o cdigo de tipo de protocolo IP (17 para UDP), e o campo de nome Comprimento UDP comtm o comprimento do datagrama UDP (sem incluir o pseudocabealho). Para vreificar a soma de verificao, o receptor deve extrair esses campos do cabealho IP, mont-los com o formato de pseudocabealho e recalcular a soma de verificao. Encapsulamento de UDP e Colocao de protocolos em Camadas O UDP situa-se na camada acima da camada de rede. Em tese, os programas aplicativos acessam o UDP, que usa o IP para enviar e receber datagramas. Colocao Conceitual em Camadas Aplicativo Datagrama de Usurio (UDP) Internet (IP) Enlace

Posicionar o UDP acima do IP significa que uma mensagem UDP completa, incluindo o cabealho UDP e os dados, est encapsulada em um datagrama IP, enquanto transportada atravs de uma interligao em redes. Figura 1 - Encapsulamento dos dados A idia de encapsulamento no somente para o protocolo UDP, na verdade todas as camadas tem um certo encapsulamento dos dados. Desde a camada de mais baixo nvel, at a de mais alto nvel. O que acontece que quando algum envia dados para outra pessoa, primeiramente os dados esto na camada de mais alto nvel, e para que exista o transporte dos dados na rede, os dados passam por todas as camadas, e com isso existe o encapsulamento de uma camada para outra, e depois quando a pessoa recebe os dados, antes passa pelo processo inverso, e volta a ter as mesmas caractersticas, mais detalhadamente pegando-se o protocolo UDP: Para os protocolos que j foram examinados, encapsulamento significa que o UDP anexa inicialmente um cabealho aos dados que o usurio envia e passa-o ao IP. A camada de rede (IP) inicialmente anexa um cabealho ao que ele recebe de UDP. Finalmente, a camada de enlace embute o datagrama em um quadro antes de envi-lo de uma mquina a outra. O formato do quadro depende da tecnologia bsica da rede. Normalmente os quadros de rede incluem um cabealho adicional. Na entrada, um pacote chega camada mais baixa e inicia sua asceno atravs de camadas sucessivamente mais altas. Cada camada remove um cabealho antes de passar a mensagem adiante, de modo que, quando o nvel mais alto repassar os dados para o processo receptor, todos os cabealhos j tenham sido removidos. Assim, o cabealho mais externo corresponde camada mais baixa de protocolo, enquanto o cabealho mais interno

corresponde camada mais alta de protocolo. Quando se considerar o modo como os cabealhos so inseridos e removidos, importante lembrar o princpio de colocao em camadas. Deve-se observar que o princpio de colocao em camadas aplica-se ao UDP, assim, o datagrama UDP recebido pelo IP na mquina de destino idntico ao que o UDP passou ao IP na mquina de origem. Por sua vez, os dados que o UDP entrega a um processo de usurio na mquina receptora sero exatamente os mesmos que um processo de usurio que passou ao UDP na mquina transmissora. Desse modo, apenas o cabealho IP identifica os hosts de origem e destino, apenas a camada UDP identifica as portas de origem e destino em um host. Organizao em Camadas Existe uma forte interao enrte UDP e IP, e isso viola a permissa bsica de que a colocao em camadas reflete separao de funcionalidade; O UDP tem estado estreitamente integrado ao protocolo IP. claramente um compromisso de simples separao feito por razes inteiramente prticas. Estamos dispostos a deixar passar a violao da colocao em camadas, poque impossvel identificar inteiramente um programa aplicativo de destino sem especificar a mquina de destino; e queremos tornar eficiente o mapeamento entre os endereos usados por UDP e aqueles usados por IP. Multiplexao e demultiplexao UDP e portas Cada software colocado em cada camada de uma hierarquia de protocolo deve ser capaz de multiplexar ou demultiplexar mltiplos objetos da camada seguinte. O software UDP apresenta multiplexao e demultiplexao, ele aceita datagramas do protocolo UDP de muitos programas aplicativos, e os passa ao IP, para transmisso, e aceita datagramas UDP recebidos de ip e pos passa ao programa aplicatrivo apropriado. Conceitualmente, toda multiplexao e demultiplexao entre o software UDP e o programa aplicativo ocorre atravs do mecanismo da porta. Cada programa aplicativo deve negociar com o sistema operacional a fim de obter uma porta de protocolo e um nmero de porta correspondente, antes que ele possa enviar um datagrama UDP. Uma vez que a porta tenha sido atribuda, qualquer datagrama que o programa aplicativo enviar atravs da porta ter aquele nmero de porta em seu campo Porta de origem UDP. Enquanto est processando a entrada, o UDP aceita datagramas recebidos do IP e procede demultiplexao

tendo como base a porta de destino do UDP. Figura 1 - Exemplo de demultiplexao de uma camada acima do IP. O UDP usa o nmero da porta de destino UDP para selecionar uma porta de destino apropriada para os datagramas recebidos

O modo mais simples de conceber uma porta UDP uma fila. Na maioria doas implementaes, quando um programa aplicativo negocia com o sistema operacional para usar determinada porta, o sistema operacional cria uma fila interna que pode reter as mensagens que esto chagando. Freqentemente, o aplicativo pode especificar ou mudar o tamanho da fila. Quando o UDP recebe um datagrama, vreifica se o nmero de porta de destino confere com uma das portas atualmente em uso. Se no conferir, envia uma mensagem de erro ICMP de porta no-atingida descarta o datagrama. Se for encontrada uma dorrespondncia, o UDP enfilera o novo datagrama na porta onde o programa aplicativo pode acess-lo. Naturalmente ocorrer um erro se a porta estiver cheia e o UDP descartar o datagrama recebido. Nmeros de portas UDP reservadas e disponveis
Uma pergunta importante como devero ser atribudos nmeros de porta de protocolo? O problema que dois computadores precisam equiparar-se pelos nmeros de porta, antes que possam se comunicar. Por exemplo, quando um computador A deseja obter um arquivo do computador B, ele precisa saber qual a porta usada no computador B pelo programa de transferncia de arquivos. Existe duas abordagens fundamentais para a atribuio de portas. A primeira usa a autoridade central. Todos concordam em permitir que uma autoriddae central atribua nmeros de portas, de acordo com a necessidade, e publique a lista de todas as atribuies. A seguir, todo o software criado de acordo com a lista. Essa abordagem algumas vezes chamada atribuies univresais; as atribuies de porta, especificadas pela autoridade, so chamadas atribuies de portas identificadas.

A segunda abordagem para atribuio de portas usa atribuio dinmica. Nesse tipo de abordagem de atribuio, as portas no so totalmente identificadas. Em vez disso, sempre que um programa necessita de uma porta, o software da rede atribui uma. Para aprender sobre a atribuio atual de porta em outro computador, preciso enviar um pedido que faauma pergunta. A mquina-alvo responde, dando o nmero de porta correto. Os projetistas do TCP/IP adotaram uma abordagem hbrida que atribui alguns nmeros de porta, mas deixa disponveis para sites locais ou pragramas aplicativos. Os nmeros de porta atribudos comeam com valores baixos e vo se elevando, deixando valores inteiros grandes disponveis para atribuio dinmica. Dec imal 0
7 9 11 13 15 17 19 37 42 43 53 67 68 69 111 123 161 162 512 513 514 525 RVER NICNAM E DOMAIN BOOTPS BOOTPC TFTP SUNRPC NTP EN TIME NAMESE E QUOTE CHARG D USERS DAYTIM

Senha ECHO DISCAR

Senha UNIX echo discard sytat daytime netstat qotd chargen time name whois nameserver bootps bootpc tftp sunrpc ntp snmp snmp-trap biff who syslog timed

Descrio Reserved
Echo Discard Active Users Daytime Who is up or NETSTAT Quote of the Day Character Generator Time Host Name Server Who is Domain Name Server Bootstrap Protocol Server Bootstrap Protocol Client Trivial File Transfer Sun Microsystems RPC Network Time Protocol SNMP net monitor SNMP traps UNIX comsat UNIX rwho daemon system log Time daemon

Tabela 1 - Listagens de alguns nmeros de porta UDP atribudos atualmente

Protocolo TCP
O protocolo TCP trabalha no mesmo nvel que o protocolo UDP, mas oferece servios mais complexos, que incluem controle de erros e fluxo, servio com conexo e envio de fluxo de dados. TCP utiliza o mesmo conceito de porta de UDP. Para TCP, uma conexo formada pelo par (End. IP. Origem, Porta Origem) e (End. IP Destino, Porta Destino). O protocolo TCP oferece as seguintes caractersticas: Controle de Fluxo e Erro fim-a-fim Servio confivel de transferncia de dados Comunicao full-duplex fim-a-fim A aplicao basta enviar um fluxo de bytes Desassociao entre qtd. de dados enviados pela aplicao e pela camada TCP Ordenao de mensagens Multiplexao de IP, atravs de vrias portas Opo de envio de dados urgentes A conexo TCP ilustrada na figura abaixo:
Porta 22 Porta 2340

TCP IP Host 139.82.17.10

TCP IP

Inter-rede TCP/IP

Host 139.82.55.3

Uma conexo TCP formada por trs fases: o estabelecimento de conexo, a troca de dados e o finalizao da conexo, conforme ilustrado na figura abaixo:

SYN/ACK ACK Transmite dados DADOS ACK DADOS ACK FIN ACK FIN ACK Recebe dados

Recebe dados

Transmite dados

Fecha conexo

Fecha conexo

A fase inicial de estabelecimento de conexo formada de trs mensagens, formando o three-way-hanshaking, conforme a figura abaixo:

SEQ 21

ACK -

SEQ 152

ACK 22

SEQ -

ACK 153

O pacote TCP formado pela mensagem mostrada abaixo:

0 Octeto 1

7 Octeto 2

15 Octeto 3

23 Octeto 4

31

TCP SOURCE PORT

TCP DESTINATION PORT

SEQUENCE NUMBER ACKNOWLEDGEMENT NUMBER HLEN RESERVED CODE BITS WINDOW URGENT POINTER PADDING

CHECKSUM OPTIONS (IF ANY) DATA ...

Estes campos so definidos da seguinte forma: TCP SOURCE PORT: Porta origem da mensagem TCP DESTINATION PORT: Porta destino da mensagem SEQUENCE NUMBER: nmero de sequncia dos dados sendo transmitidos face ao conjunto total de dados j transmitidos. Este nmero indica a posio do primeiro byte de dados sendo transmitido em relao ao total de bytes j transmitidos nesta conexo. O primeiro nmero de sequncia utilizado no zero ou um, mas comea de um valor aleatrio. Logo se um pacote est trasmitindo do 1234o. byte at o 2000o. byte de uma conexo e o SEQUENCE NUMBER inicial utilizado nesta conexo foi 10000, o campo SEQUENCE NUMBER conter o valor 11234. O sequence number em um sentido da conexo (mquina A para B) diferente do seuqnece number do sentido inverso, j que os dados transmitidos por um e outro lado so completamente distintos. ACKNOWLEDGE NUMBER: nmero que significa o reconhecimento dos dados recebidos at ento no sentido inverso. O ACK de um sentido transmitido em piggy-backing no outro sentido. O ACK contm o nmero do prximo byte do fluxo de dados recebido, que a origem deste pacote espera receber da outra mquina. Este valor leva em considerao o nmero de SEQUENCE NUMBER inicial praticado pela outra mquina. O valor de ACK informa sempre o prximo byte ainda no recebido do conjunto contguo de bytes recebidos do transmissor.

CODE BITS: So formados por seis bits, URG, ACK, PSH, RST, SYN e FIN, cuja utilizao mostrada abaixo: URG: bit de Urgncia: significa que o segmento sendo carregado contm dados urgentes que devem ser lidos com prioridade pela aplicao. A aplicao origem responsvel por acionar este bit e fornecer o valor do URGENT POINTER que indica o fim dos dados urgentes. Um exemplo da utilizao desta facilidade o aborto de uma conexo (por exemplo por Control-C), que faz com que a aplicao destino examine logo o pacote at o fim da rea de urgncia, descubra que houve um Control-C e termine a conexo. ACK: bit de Reconhecimento: indica que o valor do campo de reconhecimento est carregando um reconhecimento vlido. PSH: bit de PUSH: Este mecanismo que pode ser acionado pela aplicao informa ao TCP origem e destino que a aplicao solicita a transmisso rpida dos dados enviados, mesmo que ela contenha um nmero baixo de bytes, no preeenchendo o tamanho mnimo do buffer de transmisso. RST: bit de RESET: Informa o destino que a conexo foi abortada neste sentido pela origem SYN: bit de Sincronismo: o bit que informa que este um dos dois primeiros segmentos de estabelecimento da conexo. FIN: bit de Terminao: indica que este pacote um dos dos pacotes de finalizao da conexo WINDOW: Este campo informa o tamanho disponvel em bytes na janela de recepo da origem deste pacote. Por meio deste valor, o TCP pode realizar um controle adequando de fluxo para evitar a sobrecarga do receptor. Quando este valor igual a zero, o transmissor no envia dados, esperando receber um pacote com WINDOW maior que zero. O transmissor sempre vai tentar transmitir a quantidade de dados disponveis na janela de recepo sem aguardar um ACK. Enquanto no for recebido um reconhecimento dos dados transmitidos e o correspondente valor de WINDOW > 0, o transmissor no enviar dados. OPTIONS: O campo de opes s possui uma nica opo vlida que a negociao do MSS (Maximum Segment Size) que o TCP pode transmitir. O MSS calculado atravs do MTU ou atravs do protocolo ICMP Path MTU Discovery.

Servios TCP
O principal propsito do TCP garantir a trnsferncia confivel de dados, para isto o protocolo deve fornecer alguns servios, tais como:

Servios TCP : Transferncia de Dados


A transferncia de dados entre usurios pode ser feita tanto no modo full-duplex commo no modo half-duplex, sendo que a unidade bsica de transferncia entre o TCP e as estaes chamada de segmento. Em cada conexo o protocolo que determina o momento mais conveniente de bloquear ou liberar o dados para transmisso. O processo de ajuste dos intervalos enrte liberaes feito dinamicamente, para poder acomodar as constantes mudanas no tempo decorrido entre o instante de segmento, a diferena comparada com valores correntes, sendo ento feitos os ajustes necessrios. Em cada conexo o protocolo que determina o momento mais conveniente de bloquear ou liberar o dado para transmisso.O processo de ajuste dos intervalos entre liberaes feito dinamicamente, para poder acomodar as constantes mudanas no tempo de propagao do ambiente Internet. O mecanismo consiste na verificao do tempo decorrido entre o instante de transmisso de um segmento e o instante de chegada do reconhecimento associado a este segmento, a diferena comparada com os valores correntes, sendo ento feitos os ajustes necessrios. O TCP tambm determina o nmero de octetos a serem includos em um determinado segmento, visando otimizar o uso do meio de transmisso. Aps o estabelecimento da conexo o tamanho de cada segmento pode variar, ou seja, os segmentos no vo necessariamente conter o mesmo nmero de octetos. Exitem ainda dois mecanismos especiais : a sinalizao de "push data" e de dados urgentes. O primeiro caso usado quando o emissor quer especificar para o protocolo um conjunto de dados que devem ser transmitidos no mesmo segmento, para isto cada dado pertencente a este conjunto tem o seu flag ativado. O TCP separa todos os dados marcados com o flag, junta com os dados que j estavam no buffer e monta um segmento, transmitindo-o imediatamente. O protocolo do lado receptor ao perceber a existncia de dados marcados com o push flag pega todos os dados do seu buffer e os entrega ao usurio. O segundo mecanismo empregado nos casos em que interessante sinalizar ao processo destinatrio a existncia de dados cujo atendimento seja prioritrio. Neste caso o processo destinatrio que fica responsvel pelo tratamento adequado destes dados. Um exemplo de sistema onde a aplicao deste conceito til, o de sistemas de automao e controle.

Servios TCP : Confiabilidade TCP garante a correo dos dados nos casos de alterao, perda, duplicao ou entrega fora de sequncia. Para manter este controle, o TCP se apoia basicamente no nmero de seqncia. A cadeia de bytes recebida da aplicao vista como um conjunto de octetos. A cada octeto associado um nico nmero de seqncia, incrementado de um em um a cada octeto formado. A utilizao deste dado e dos mecanismos de reconhecimento e checksum, visa manter a confiabilidade, sendo feita da seguinte forma :
1. 1. perda de dados : o TCP associa um nmero de seqncia para cada octeto (byte) transmitido pela conexo, solicitando ao TCP destinatrio o envio de um reconhecimento positivo (ACK). Este ACK contm o nmero de seqncia do prximo elemento esperado pela recepo, e representa uma confirmao de todos os nmeros anteriores a ele. Se o ACK no recebido dentro do tempo especificado para entrega (ocorrncia de timeout), o receptor solicita ao transmisssor que os dados sejam retransmitidos; 2. 2. ordenao : o mesmo nmero de sequncia usado pela estao receptora como forma de verificao da correta ordenao dos dados recebidos; 3. 3. duplicao : algumas vezes pode ocorrer a perda de algum ACK, o que implicaria na duplicao do segmento associado. O nmero de sequncia permite a identificao do segmento duplicado de forma que este possa ser descartado pelo receptor; 4. 4. erros de contedo : dados recebidos possuem campo contendo um valor de checksum. O processo receptor recalcula o checksum com base no algoritmo de soma em complemento a um, e compara com o valor deste campo, caso o erro seja confirmado o receptor descarta os segmentos alterados. Para estes segmentos o receptor no envia o sinal de ACK, o que provoca a sua retransmisso.

Servios TCP : Controle de Fluxo


O TCP fornece um mecanismo, chamado de janela deslizante de tamanho varivel ou janela de crdito, que permite a estao receptora controlar a quantidade de dados enviados pela estao transmissora. O receptor junto com cada ACK, envia um dado chamado janela de recepo com uma indicao da quantidade de octetos adicionais que podem ser aceitos pelo seu buffer. Normalmente a medida que o buffer vai enchendo este valor vai sendo reduzido, evitando o seu transbordamento. Quando os dados so passados do buffer para a aplicao, o valor da janela de recepo volta a aumentar, indicando que o tamanho da janela de transmisso pode aumentar tambm.

Servios TCP : Multiplexao


O TCP usa a idia de portas para identificar o destino final dentro da mquina. Cada mquina possui um conjunto de portas e isto permite que vrios processos dentro de uma mesma mquina faam uso simultneo dos servios de comunicao do protocolo. Os soquetes representam o ponto terminal de todo o trfego IP entre duas mquinas, sendo que um mesmo soquete pode ser usado para mais de uma conexo.

Servios TCP : Conexo


O protocolo TCP orientado conexo, o que caracteriza trs fases de funcionamento : estabelecimento da conexo, transferncia de dados e liberao da conexo. Quando dois processos desejam se comunicar, o processo TCP associado a cada mquina deve primeiro estabelecer uma conexo. O processo de incio da conexo faz com que as informaes de status sejam iniciadas em ambos os lados de circuito virtual, garantindo a sincronizao entre os nmeros de seqncia iniciais de cada um dos lados. Parmetros especificando a segurana e precedncia dos segmentos de dados a serem transferidos so fechados pelos usurios nesta fase. Durante a transferncia de dados o processo TCP de cada mquina deve verificar a recepo correta dos dados. No caso de falhas devido a problemas na rede de comunicaes, ambas as mquinas devem detectar a falha e notificla ao programa de aplicao. Aps a troca de dados a conexo deve ser fechada para liberar recursos para outros usurios. O estabelecimento e o fechamento de uma conexo so realizados em trs nveis distintos, com dois nveis de confirmao para evitar situaes de erro.

Servios TCP : Relatrios de Erros


Erros no recuperveis relacionados a pedidos de servio ou a problemas ocasionados pelo funcionamento deficiente do ambiente interno da rede so relatados ao processo usurio pelo TCP.

Servios TCP : Primitivas de Servios

O acesso aos servios prestados pelo TCP feito atravs da chamada as primitivas de servio especificadas pelo protocolo. Servios que envolvam a transferncia de dados entre estaes, implicam na ativao das primitivas IP associadas. Modelo de Chamadas entre as Camadas: - Tabela de Primitivas de Pedido de Servio: - Nom e da Primitiva Passi ve Open no especificada Parmetros Descrio Aguarda tentativa de conexo de qualquer estao remota, com nveis de segurana e de precedncia especifidados

Porta Origem, [temporizador], [ao temporizao], [precedncia], [faixa de segurana]

Passi Aguarda tentativa de conexo de estao ve Open Porta de origem, porta de destino, [temporizador], remota especfica, com nveis de segurana e completamente [ao de temporizao], [precedncia], [faixa de segurana] precedncia especficos. especificada Solicita conexo a uma estao remota Activ Porta origem, porta destino, [temporizador], [ao especfica, com nveis de segurana e precedncia eOpen de temporizaoo], [precedncia], [faixa de segurana] particulares Activ Porta origem, porta destino, [temporizador], [ao Solicita conexo a uma estao remota eOpen com de temporizaoo], [precedncia], [segurana], tamanho do especfica, com nveis de segurana e precedncia dados campo de dados, dados [push flag], [urgent flag] particulares. Tal primitiva contm dados do usurio nome da conexo local, tamanho do campo de Transfere dados atravs da conexo Send dados, dados [push flag], [urgent flag], [temporizador], [ao identificada pelo parmetro nome da conexo local de temporizao] Alloc nome da conexo local, tamanho do campo de Solicita ao TCP aumento da rea alocada ate dados para a recepo de dados Close nome da conexo local Fecha a conexo normalmente Abort nome da conexo local Fecha a conexo abruptamente Statu nome da conexo local Pergunta o status da conexo s

- Tabela de Primitivas de Respostas do TCP:


N ome da Primitiva pen ID pen Failure pen Success eliver losing T erminate D flag] C

Parmetros

Descrio

Informa ao usurio o nome O nome da conexo local, porta de origem, porta de destino, atribudo conexo solicitada por ele atravs endereo de destino da primitiva Open O Informa falha de um pedido de nome da conexo local Active Open O nome da conexo local nome da conexo local, tamanho do campo de dados [urgent Informa a concluso de um pedido de Open Pendente Indica chegada de dados Indica que o usurio remoto emitiu pedido de Close e todos os quadros enviados por ele foram entregues Informa que a conexo foi encerrada sendo fornecida uma descrio do motivo do encerramento o ssstatus atual da

nome da conexo local

nome da conexo local, motivo

nome da conexo loca, porta de origem, endereo de origem, S porta de destino, endereo de destino, estado da conexo, janela de Informa tatus recepo, janela de transmisso, quantidades de ACKs pendentes, conexo Response quantidade de recepes pendentes, estado de urgncia, precedncia, segurana

Servios TCP : Gerenciamento de Conexo


O protocolo de transporte TCP deve ser capaz de gerenciar problemas como a perda, a duplicao, a alterao de contedo e o no sequenciamento dos segmentos recebidos nas seguintes situaes : Estabelecimento de Conexo Um pedido de abertura de conexo pode ser feito de dois modos diferentes : passivo ou ativo. No modo de abertura passiva, o processo usurio fica em estado de espera aguardando a chegada pela rede de um pedido de incio de conexo. O modo passivo pode ser do tipo completamente especificado ou no especificado. No primeiro caso o usurio fixa um soquete remoto pelo qual os pedidos de conexo sero aceitos. Um processo servidor que deseja fornecer servios para outros processos deve fazer uma abertura passiva e aceitar aberturas ativas de qualquer processo chamador. Na abertura ativa, o usurio necessita estabelecer uma conexo com um processo servidor remoto, ele cria ento um processo cliente para iniciar o circuito e faz um pedido de abertura ativa. Neste caso o processo na outra extremidade j deve ter feito a abertura passiva e estar esperando pelas chamadas de entrada. O estabelecimento de conexo possui quatro funes principais: 1. 1. assegurar a cada extremidade da conexo a existncia da outra pela troca de pacotes de pedido de conexo e resposta associada; 2. 2. possibilitar a troca de parmetros opcionais tais como o tamanho de pacote, o tamanho da janela e a qualidade de servico; 3. 3. alocar recursos tais como o espao em buffer; 4. 4. criar uma entrada na tabela de conexo. Para cumprir as funes citadas acima os processos servidor e cliente devem primeiro definir o contedo da estrutura de dados local conhecida como TCB (Transport Connection Block), com o estabelecimento dos seguintes dados : tipo da conexo, nmero da porta remota e local, endereo Ip remoto e local, estado da conexo, ponteiro para o buffer de entrada. O estabelecimento da conexo dividido em trs fases para evitar a ocorrncia de problemas como a duplicao da mensagem ou a perda da mensagem de confirmao do estabelecimento da conexo. A primeira fase consiste no envio do pedido de conexo, onde a mquina solicitante informa o nmero de seqncia inicial dos dados que sero enviados. Ao receber a solicitao o destinatrio envia alm do reconhecimento do pedido de abertura do solicitante, o seu nmero de sequncia inicial. Aps receber a confirmao do seu pedido o solicitante envia o reconhecimento desta resposta.

O mecanismo de troca de nmeros de sequncia entre os processos, evita que dados retransmitidos ou mesmo dados atrasados sejam interpretados como um novo pedido de abertura de conexo, uma vez que no podem ser estabelecidas duas conexes consecutivas com o mesmo nmero de sequncia. No caso de um dos processos interpretar um pedido de conexo anterior como sendo novo, o outro processo vai responder com uma indicao de rejeio do pedido. Exemplo de estabelecimento de conexo bem sucedido Transferncia de Dados A transferncia de dados comea logo aps o trmino da operao de estabelecimento de conexo. O mecanismo de janela deslizante aumenta a eficincia da transmisso, permitindo ao TCP enviar vrios pacotes antes que um reconhecimento chegue. O tamanho da janela deve ser escolhido com cuidado, pois uma janela maior apesar de aumentar a taxa de transmisso implica na necessidade de uma capacidade de armazenamento de dados maior em ambos os lados. No caso da conexo full-duplex pode-se usar o mecanismo de piggybacking para reduzir o trfego relativo ao reconhecimento. Esta tcnica usa o recurso de colocar os reconhecimentos dentro dos segmentos de dados enviados para o outro lado, evitando assim o envio do reconhecimento em um segmento isolado.

Encerramento da Conexo
Existem duas formas para encerrar a conexo, uma normal e outra abrupta. Na terminao normal cada um dos lados s efetivamente desconectado aps a entrega dos seus respectivos dados. O processo de liberao negociado, ou seja, o usurio remoto tem a opo de concordar ou no com a desconexo. A conexo TCP permite a transferncia de dados full-duplex, isto significa que existem cadeias de dados independentes, fluindo em cada uma das direes da conexo. Para liberar as duas direes da conexo ambos os lados devem ser fechados, no entanto, caso desejado, pode-se encerrar s uma delas . Algumas vezes pode ocorrer um evento que force o programa de aplicao ou o software de comunicao a abortar a conexo, caracterizando uma terminao abrupta. No caso da terminao abrupta, a transferncia de dados cessa imediatamente em ambas as direes, podendo ocorrer perda dos dados ainda em trnsito.

Exemplo de fim de conexo normal

Desempenho TCP
O TCP um protocolo complexo que promove a comunicao atravs de uma grande variedade de tecnologias de rede bsica. Muitas pessoas supem que, como o TCP desempenha uma tarefa muito mais complexa que outros protocolos de transporte, o cdigo precisa ser inepto e ineficaz. Surpreendentemente, a generalidade sua generalidade no parece interferir no desempenho do TCP. As experincias em Berkeley comprovaram que o mesmo TCP que opera eficazmente em uma Internet global pode entregar garantidamente 8 Mbps de troughput de dados de usurio enrte duas estaes de trabalho em uma Ethernet de 10 Mbps.

Você também pode gostar