Você está na página 1de 87

Aula 07 24/03/2008 - Laboratrio de Redes 7 Fase

Universidade do Contestado - UnC


Sistemas de Informao
Prof. Carlos Guerber

APOSTILA TCP/IP

1. HISTRICO .............................................................................................................................. 3
2. O MODELO DE REFERNCIA TCP/IP.................................................................................... 6
2.1

A CAMADA INTER-REDES ................................................................................... 6

2.2

A CAMADA DE TRANSPORTE ............................................................................. 8

2.3

A CAMADA DE APLICAO ................................................................................. 9

2.4

A CAMADA HOST/REDE....................................................................................... 9

2.5

POSICIONAMENTO DO NVEL OSI ................................................................... 10

2.6

EXEMPLOS DE APLICAO DE REDES COM ARQUITETURA TCP/IP.......... 11

2.7

COMPARAO ENTRE OS MODELOS DE REFERNCIA OSI E TCP/IP ....... 14

2.8

UMA CRTICA AO MODELO DE REFERNCIA TCP/IP .................................... 17

3. IPv4 - A VERSO ATUAL DO IP........................................................................................... 19


3.1

O DATAGRAMA IPV4 .......................................................................................... 19

4. ENDEREAMENTO IP........................................................................................................... 27
4.1

IDENTIFICADORES UNIVERSAIS ...................................................................... 27

4.2

TRS CLASSES PRIMRIAS DE ENDEREO .................................................. 27

4.3

ENDEREO DE UMA REDE E ENDEREO DE DIFUSO (BROADCAST) ..... 29

4.4

DIFUSO LOCAL................................................................................................. 29

4.5

ENDEREOS DE REFERNCIA PRPRIA REDE E AO PRPRIO HOST. . 30

4.6

ENDEREO DE MULTICAST.............................................................................. 30

4.7

FRAQUEZAS DO ENDEREAMENTO IP........................................................... 31

4.8

NOTAO DECIMAL........................................................................................... 32

4.9

ENDEREO DE LOOPBACK .............................................................................. 33

4.11

ENDEREAMENTO DE SUB-REDE................................................................... 33

4.11.1

Distribuio Geogrfica de Endereos................................................................ 34

4.11.2

Implementao de Sub-redes com Mscara....................................................... 35

4.11.3

Super-redes ......................................................................................................... 35

4.11.4

Exemplo de Redes .............................................................................................. 36

4.12

SUB-REDES......................................................................................................... 38

4.13

PLANEJAMENTO DE UM ESQUEMA DE ENDEREAMENTO......................... 41

5. PROTOCOLOS DE ROTEAMENTO ...................................................................................... 43


5.1

CONCEITO........................................................................................................... 43

5.2

RIP........................................................................................................................ 45

5.3

RIP II..................................................................................................................... 46

5.4

OSPF .................................................................................................................... 47

5.5

COMPARAO ENTRE OS PROTOCOLOS DE ROTEAMENTO RIP E OSPF 47

5.6

EGP ...................................................................................................................... 48

6. PROTOCOLO ARP E RARP .................................................................................................. 50


6.1

INTRODUO ..................................................................................................... 50

6.2

PROBLEMA DE CONVERSO............................................................................ 50

6.2.1

Converso Atravs do Mapeamento Direto: ........................................................ 51

6.2.2

Converso Atravs de Vinculao Dinmica: ...................................................... 51

6.2.3

Cache de Converso de Endereo: ..................................................................... 51

6.3

APRIMORAMENTO DE ARP ............................................................................... 52

6.3.1

Definio ARP ...................................................................................................... 52

6.3.2

Implementao ARP............................................................................................. 52

6.3.3

Encapsulamento e Identificao ARP .................................................................. 53

6.3.4

Formato do Protocolo ARP................................................................................... 53

6.4

PROTOCOLO RARP............................................................................................ 54

6.4.1

Introduo............................................................................................................. 54

7. PROTOCOLO ICMP ............................................................................................................... 56


7.1

MENSAGEMS ICMP ............................................................................................ 57

7.1.1

Echo Request e Echo Reply................................................................................. 57

7.1.2

Destination Unreacheable .................................................................................... 58

7.1.3

Source Quench..................................................................................................... 59

7.1.4

Redirect ................................................................................................................ 60

7.1.5

TTL Expired .......................................................................................................... 62

7.1.6

ICMP Router Solicitation/Advertisement .............................................................. 63

7.1.7

Aquisio de informaes de Roteamento........................................................... 64

8. PROTOCOLOS DA CAMADA DE TRANSPORTE ............................................................... 66


8.1

CAMADA DE TRANSPORTE............................................................................... 66

8.2

PROTOCOLO UDP .............................................................................................. 67

8.2.1

Formato da Mensagem UDP................................................................................ 69

8.2.2

Encapsulamento de UDP e Colocao de Protocolos em Camadas .................. 69

8.2.3.1

Organizao em camadas.................................................................................... 71

8.2.4

Multiplexao e Demultiplexao UDP e Portas.................................................. 71

8.2.4.1

Nmeros de portas UDP reservadas e disponveis ............................................. 73

8.3

PROTOCOLO TCP .............................................................................................. 75

8.3.1

Servios TCP........................................................................................................ 79

8.3.1.1

Servios TCP: transferncia de dados................................................................. 79

8.3.1.2

Servios TCP: confiabilidade................................................................................ 81

8.3.1.4

Servios TCP: controle de fluxo ........................................................................... 82

8.3.1.5

Servios TCP: multiplexao................................................................................ 82

8.3.1.6

Servios TCP: conexo ........................................................................................ 82

8.3.1.7

Estabelecimento de conexo ............................................................................... 83

8.3.2

Transferncia de Dados ....................................................................................... 85

8.3.3

Encerramento da Conexo................................................................................... 86

8.3.4

Desempenho TCP ................................................................................................ 87

HISTRICO

A histria do TCP/IP est 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.

2.1

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

Host A
Mensagem
idntica

Aplicao

Aplicao

Pacote
idntico

Transporte

Transporte

Roteador
Inter-Rede

Datagrama
idntico

Inter-rede
Rede

Rede
Quadro
idntico

Rede Fsica 1

Datagrama
idntico

Rede

Inter-Rede

Rede
Quadro
idntico

Rede Fsica 2

2.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. Desde que o modelo foi desenvolvido, o IP foi implementado

em muitas outras redes.

2.3

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 anterior 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.

2.4

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.

10

2.5

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 22 ilustra a comparao entre TCP/IP e OSI. Note que a


camada

Inter-rede

de

TCP/IP

apresenta

uma

altura

menor

que

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.

11

Arquitetura TCP/IP

Arquitetura OSI
Aplicao
Apresentao

Aplicao

Sesso
Transporte
Inter-rede

Transporte
Rede
Enlace

Rede

Fsico
Figura 22- OSI e TCP/IP

A Figura 23 abaixo ilustra um posicionamento geral de diversos


protocolos nas arquiteturas OSI, TCP/IP e Novell Netware:
Aplicao

DS, MHS
FTAM

Shell
DNS

S
M
T
P

F
T
P

ping

H
T
T
P

Apresentao

ISO
Presentation

Sesso

ISO Session

Transporte

ISO
Transport
C4

SPX

TCP, UDP

Rede

X.25
SNDCP

IPX

IP, ICMP

NCP

Winsock

Enlace

Fsico

LLC
IEEE 802.2

IEEE 802.3
IEEE 802.5

DD MLID

Binding A
R
DD NDIS P

Ethernet

Ethernet

LSL

N
F
S

socket

POP

T
e
l
n
e
t

TLI

Unix

PPP
X.25

Ethernet

Serial

Figura 23 Posicionamento protocolos

2.6

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

12

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 (correioeletrnico), compartilhamento de arquivos, distribuio de informao via
hipertexto, etc e chamadas de intranet:
M

Roteador B

M
M
Hub ou switch
Roteador
principal

Servidor HTTP
Servidor DNS

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

13

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

Roteador B

Roteador A
M

M
M

Internet

Acesso IP
Dedicado

Hub ou switch

Servidor HTTP
Servidor DNS
Gerncia

Servidor SMTP
POP3/ IMAP4
Radius/Tacacs
Servidor FTP
Servidor News

Acesso IP
Discado
M M M M

... M

Sistema
Telefnico

14

2.7

COMPARAO 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. Servios
2. Interfaces
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

15

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

16

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

solicitao/resposta.

importante

para

os

protocolos

simples

de

17

2.8

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

18

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.

19

IPv4 - A VERSO ATUAL DO IP

O protocolo IP foi projetado tendo como principal objetivo a ligao interredes. 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.

3.1

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

20

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 mostra o formato de um datagrama IP. Logo a seguir feita uma
descrio de cada um dos campos que formam o seu cabealho.

21

32 BITS

VERSIO
N

TYPE

IHL

OF

SERVICE

IDENTIFICATION

TOTAL LENGTH

D M
F F

TIME

TO

LIVE

PROTOCO
L

FRAGMENT
OFFSET

HEADER CHECKSUM

SOURCE ADDRESS
DESTINATION ADDRESS

OPTIONS

DATA
Figura 4 - 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 5, 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

22

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.

PRECEDENCE

No Usados

Figura 5 - 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 ).

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

23

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.

24

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 6. 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.
0
COPY

OPTION CLASS

OPTION NUMBER

Figura 6 Sub-campos do OPTION CODE

OPTION

Classes

CLASS
0

Controle de datagrama ou de rede

Reservado para uso futuro

Medidas e depurao

Reservado para uso futuro

25

OPTIO
N CODE

OPTION
NUMBER

Comprimento

Descrio

da opo

--------------------------

Fim das opes.


Indica que as opes
Terminaram, a partir da
colocado bytes para
completar o cabealho.

--------------------------

Sem
Usados

operao.

para

alinhar

octetos em uma lista de


opes
0

11

palavras

de 32 bits

Security.
para

Usado

implementar

segurana.
0

Varivel

Loose
Route.

Usado

encaminhar

Source
para
um

datagrama ao longo de
um

caminho

especificado.
0

Varivel

Record

Route.

Usado para registrar as


rotas.
0

Varivel

Strict
Route.

Usado

encaminhar

Source
para
um

datagrama ao longo de
um
especificado.

caminho

26

Varivel

Intert

Timestamp.

Usado para registrar o


tempo em cada roteador.

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.

27

ENDEREAMENTO IP

4.1

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.

4.2

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

28

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 7. 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 7 Categorias IP

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,

29

portanto, endereos IP no definem hosts, mas conexes a uma rede.


Mquinas conectadas a n redes, possuiro n endereos IP.

4.3

ENDEREO

DE

UMA

REDE

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.

4.4

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.

30

4.5

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).

4.6

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 multiponto, 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

31

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.

4.7

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

32

conectado. Uma outra mquina que conhea apenas esse endereo


(desativado) e se comunique com este host atravs dele no poder mais fazlo, embora o host ainda esteja ligado a Internet.

4.8

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

endereo

11001000100010011000001100000010 representado em forma de ponto


decimal seria 200.137.131.2.

Classe A

1.0.0.0 at 127.255.255.255

33

4.9

Classe B

128.0.0.0 at 191.255.255.255

Classe C

192.0.0.0 at 223.255.255.255

Classe D

224.0.0.0 at 239.255.255.255

Classe E

240.0.0.0 at 247.255.255.255

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.

4.11

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.
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

34

"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.

4.11.1

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.
Cada regio recebe uma faixa destes que visa facilitar a tarefa de designao
das rotas at o destino ( roteamento ).

35

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

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.

4.11.2

Implementao de Sub-redes com Mscara

Os bits 1 representa a parte correspondente a rede + sub-rede. 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.

4.11.3

Super-redes

36

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.

4.11.4

Exemplo de Redes

As Figuras 8 e 9 respectivamente 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 Figura 8, ambas as
estaes tem o endereo comeando por 200.18.171, elas esto na mesma
rede. Na Figura 9, 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

37
Estao A

Estao B
Roteador

200.18.171.148

200.18.180.10

200.18.171.37

200.18.180.200

200.18.171.0

200.18.180.0

A Figura 10 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

139.82.5.14
139.82.5.0

200.1.2.20

139.82.5.3

139.82.5.15

139.82.5.129
210.200.4.3

200.1.3.2
200.1.3.0

210.200.4.0

210.201.0.1
210.201.0.0

200.1.3.1

10.0.0.1

200.1.2.35

210.201.0.3

10.0.0.2

210.200.4.57

210.200.4.56

38

4.12

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

39

"1100 0000" em binrio, o que indica que os dois primeiros bits endeream a
sub-rede, 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 sub-redes: 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).

40

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,

soluo

utilizarmos

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.

41

4.13

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.

42

O primeiro endereo de cada sub-rede indica o endereo da prpria subrede, 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 subrede 192.67.32.32 poder conter hosts na faixa de 192.67.32.33 at
192.67.32.46, etc.

43

5. PROTOCOLOS DE ROTEAMENTO

5.1

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 11. A tabela de roteamento do
roteador R1 , construda pelo critrio de menor custo, dada a seguir.

44

Figura 11 Tabela de Roteamento

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.

45

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.

5.2

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

46

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.

5.3

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.

47

5.4

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.

5.5

COMPARAO ENTRE OS PROTOCOLOS DE ROTEAMENTO RIP E

OSPF

A tabela a seguir resume os principais aspectos dos protocolos RIP, RIP


11 e OSPF comparando-os entre si.

48

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.

5.6

EGP

O Exterior Gateway Protocol (EGP) troca informaes de acesso entre


sistemas autnomos. Ele faz parte do conjunto de protocolos TCP/IP .

49

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.

50

6. PROTOCOLO ARP E RARP

6.1

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.

6.2

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).

51

6.2.1 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.

6.2.2 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

6.2.3 Cache de Converso de Endereo:

Porque no passado o pacote de usurio por difiso ? Devido ao


trfego da rede.

52

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.

6.3

APRIMORAMENTO DE ARP

1o Quando B recebe o pacote de A, ele retira o MAC de A e quarda em seu


cache
2o 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.

6.3.1 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.

6.3.2 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.

53

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.

6.3.3 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.

6.3.4 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.

54

TIPO
HLE

TIPO
H

OPERAO

SENDER HA ( octetos 0-3 )


SENDER HA

SENDER IP

SENDER IP

TARGET HA

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

6.4

PROTOCOLO RARP

6.4.1 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

55

(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.

56

7. 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 12 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

Figura 12 Encapsulamento ICMP

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

15

Octeto 1

Octeto 2

TYPE

CODE

23
Octeto 3

31
Octeto 4

CHECKSUM

MENSAGEM ICMP ESPECFICA

57

Os tipos de mensagem ICMP so listados na tabela abaixo:


Mensagem ICMP

Tipo

Categoria

Echo Reply

Controle

Destination Unreachable

Source Quench

Controle

Redirect

Controle

Echo Request

Controle

Router Advertisement (RFC 1256)

Controle

10

Router Solicitation (RFC 1256)

Controle

11

Time Exceeded for a Datagram

Erro

12

Parameter Problem on a Datagram

Erro

13

Timestamp Request

Controle

14

Timestamp Reply

Controle

15

Information Request (obsoleto)

Controle

16

Information Reply (obsoleto)

Controle

17

Address Mark Request

Controle

18

Address Mark Reply

Controle

Erro

As mensagens ICMP so listadas abaixo:

7.1

MENSAGEMS ICMP

7.1.1 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

15

Octeto 1

Octeto 2

TYPE (8 ou 0)

CODE (0)

23
Octeto 3

31
Octeto 4

CHECKSUM

IDENTIFIER

SEQUENCE NUMBER
OPTIONAL DATA
...

58

7.1.2 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

59

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:

15

Octeto 1

Octeto 2

TYPE (3)

CODE (4)

23
Octeto 3

31
Octeto 4

CHECKSUM

No usado (deve ser 0)

MTU of next HOP

IP HEADER + FIRST 64 BITS OF DATAGRAM

...
7.1.3 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.

15

Octeto 1

Octeto 2

TYPE (4)

CODE (0)

23
Octeto 3

31
Octeto 4

CHECKSUM

UNUSED (MUST BE ZERO)


IP HEADER + FIRST 64 BITS OF DATAGRAM

...

60

7.1.4 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

15

Octeto 1

Octeto 2

TYPE (5)

CODE (0-3)

23
Octeto 3

31
Octeto 4

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

61

139.82.16.33

139.82.17.22
139.82.16.1
139.82.17.1

139.82.18.44
139.92.18.1
139.92.17.2

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.17.22

139.82.18.44
139.92.18.1
139.92.17.2

139.82.16.1
139.82.17.1

139.82.16.2
139.82.19.1

Mensagem ICMP
5

CHECKSUM

139.82.17.1
139.82.19.55

IP HEADER + FIRST 64 BITS OF DATAGRAM

Figura 13 - ICMP

Na Figura 13 acima, a estao 139.82.17.22 instalou, aps a mensagem


ICMP, a seguinte rota na tabela de rotas:
Rede Destino

Mscara

139.82.19.55

255.255.255.255

Roteador (Gateway) Hops


139.82.17.1

62

7.1.5 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.

15

Octeto 1

Octeto 2

TYPE (11)

CODE (0-1)

23
Octeto 3

31
Octeto 4

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. enviada uma mensagem ICMP Echo Request para um endereo IP


destino. Esta mensagem enviada com TTL = 1.
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. O programa envia outra mensagem ICMP Echo Request para o endereo IP
destino. Esta mensagem enviada desta vez com TTL=2.
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. Esta operao prossegue at que a mquina destino responda. Todos os
roteadores no caminho so registrados.

63

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.

7.1.6 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:

15

Octeto 1

Octeto 2

TYPE (10)

CODE (0)

23
Octeto 3

31
Octeto 4

CHECKSUM

RESERVADO

64

A mensagem ICMP Router Solicitation mostrada abaixo:

15

Octeto 1

Octeto 2

TYPE (9)

CODE (0)

23
Octeto 3

NUM ADDR 2 (Tam Reg)

31
Octeto 4

CHECKSUM
LIFETIME (seg)

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.

7.1.7 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. 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

65

outras, sempre no respeitando a diviso em camadas


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. Estao com mais de um roteador default, poder utilizar os diversos
roteadores default, no caso de falha do primeiro.
4. Estao com rotas especficas para outras redes configuradas de forma
manual.
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. 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. Rotas especficas aprendidas por meio de ICMP Redirect e rotas default
aprendidas por meio de ICMP Router Advertisement
3. Rotas aprendidas por meio dos protocolos OSPF e BGP
4. Rotas aprendidas por meio do protocolo RIP

66

8.

PROTOCOLOS DA CAMADA DE TRANSPORTE

A Figura 14 ilustra a diviso em camadas da arquitetura TCP/IP:

Aplicao
Mensagens da aplicao

Transporte
Inter-rede
Datagramas IP

Rede

HDLC, X.25, PPP, SLIP,


Ethernet, Token-Ring, FDDI,
ATM, LLC, NDIS, ...

Figura 14 Diviso em Camadas

8.1

CAMADA DE TRANSPORTE

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

67

(ambiente Windows) fornecem um conjunto de funes-padro para permitir


que as aplicaes possam ser desenvolvidas independentes do sistema
operacional no qual rodaro.

8.2

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 bem-conhecido (Well-known ports) de modo

68

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 15 abaixo ilustra a multiplexao/demultiplexao realizada
pelo protocolo UDP, camada de transporte:
Aplicao 1

Porta 126

Aplicao 2

Porta 34

Porta 22

UDP

IP
Figura 15 Multiplexao e Demultiplexao

69

8.2.1 Formato da Mensagem UDP

7
Octeto 1

15
Octeto 2

23
Octeto 3

31
Octeto 4

UDP SOURCE PORT

UDP DESTINATION PORT

UDP MESSAGE LENGTH

UDP CHECKSUM
DATA
...

Opcional (campo=0)
Figura 16 Formato da Mensagem UDP

A mensagem UDP representada pela Figura 16. 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.

8.2.2 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.

Aplicativo
Datagrama de Usurio (UDP)
Internet (IP)
Enlace
Colocao Conceitual em Camadas

70

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.
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

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 passao 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

71

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.

Figura 17 Encapsulamento em camadas

8.2.3.1

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.

8.2.4 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,

72

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 18 - 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

73

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.

8.2.4.1

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 equipararse 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.

74

Decima

Senha

Senha UNIX

Descrio

Reserved

ECHO

echo

Echo

DISCARD

discard

Discard

11

USERS

sytat

Active Users

13

DAYTIME

daytime

Daytime

15

netstat

17

QUOTE

qotd

19

CHARGEN

chargen

37

TIME

time

42

NAMESERVER

name

43

NICNAME

whois

53

DOMAIN

nameserver

67

BOOTPS

bootps

68

BOOTPC

bootpc

69

TFTP

tftp

111

SUNRPC

sunrpc

123

NTP

ntp

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

75

8.3

SNMP

net

161

snmp

162

snmp-trap

SNMP traps

512

biff

UNIX comsat

513

who

514

syslog

system log

525

timed

Time daemon

monitor

UNIX

rwho

daemon

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 19:

76

Porta 22

Porta 2340

TCP

TCP

IP

IP

Host 139.82.17.10

Inter-rede
TCP/IP

Host 139.82.55.3

Figura 19 Conexo TCP

Uma conexo TCP formada por trs fases: o estabelecimento de


conexo, a troca de dados e o finalizao da conexo, conforme ilustrado na
Figura 20:

SYN/ACK
ACK
Transmite dados

Recebe dados

Fecha conexo

DADOS
ACK
DADOS
ACK
FIN
ACK
FIN
ACK

Recebe dados

Transmite dados

Fecha conexo

Figura 20 Conexo em trs fases

A fase inicial de estabelecimento de conexo formada de trs


mensagens, formando o three-way-hanshaking, conforme a Figura 21:

77
SEQ
21

ACK
-

SEQ
152

SEQ
-

ACK
22

ACK
153

Figura 21 Three Way Handshake

O pacote TCP formado pela mensagem mostrada abaixo:

15

Octeto 1

Octeto 2

23

31

Octeto 3

TCP SOURCE PORT

Octeto 4

TCP DESTINATION PORT

SEQUENCE NUMBER
ACKNOWLEDGEMENT NUMBER
HLEN

RESERVED

CODE BITS

WINDOW

CHECKSUM

URGENT POINTER

OPTIONS (IF ANY)

PADDING

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

78

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 descrita 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.

79

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.

8.3.1 Servios TCP

O principal propsito do TCP garantir a trnsferncia confivel de


dados, para isto o protocolo deve fornecer alguns servios, tais como:

8.3.1.1

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

80

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.

81

8.3.1.2

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. 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. ordenao : o mesmo nmero de sequncia usado pela estao
receptora como forma de verificao da correta ordenao dos dados
recebidos;
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. 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.

82

8.3.1.4

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.

8.3.1.5

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.

8.3.1.6

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.

83

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 notific-la 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.

8.3.1.7

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. assegurar a cada extremidade da conexo a existncia da outra pela troca
de pacotes de pedido de conexo e resposta associada;
2. possibilitar a troca de parmetros opcionais tais como o tamanho de pacote,
o tamanho da janela e a qualidade de servico;

84

3. alocar recursos tais como o espao em buffer;


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.

85

Exemplo de estabelecimento de conexo bem sucedido

8.3.2 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

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.

86

8.3.3 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.

87

Exemplo de fim de conexo normal

8.3.4 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.