Você está na página 1de 72

TCP/IP

1. Introdução

A comunicação de dados em nível global tornou-se uma realidade do nosso tempo.


O desafio que a comunicação de voz representou para as gerações passadas volta
atualmente, sob a forma de aplicações de telemática, em várias modalidades de troca de
informação entre computadores heterogêneos situados em ambientes remotos,
interconectados através dos sofisticados meios oferecidos pela engenharia de
telecomunicações.
Para compreender as diversas posturas, abordagens e atitudes políticas relacionadas com a
área de comunicação de dados, como também para acompanhar o seu desenvolvimento
tecnológico, é necessário conhecer suas origens e sua história.

A História

A história da comunicação de dados começou, timidamente, nos anos 60, quando


alguns terminais deixaram o centro de processamento de dados para serem instalados "a
distância" e começaram a se comunicar com o "computador principal". Nascia, dessa forma,
o sistema de teleprocessamento, cujo elemento central era o computador que alojava todas
as aplicações e cuidava do funcionamento dos terminais remotos.
Teleprocessamento foi à tecnologia daqueles anos. Não obstante fosse
caracterizada por aplicações centralizadas, a tecnologia de teleprocessamento permitiu a
consolidação dos princípios de comunicação de dados bem como o surgimento de uma
categoria de equipamentos destinados a compatibilizar o caráter digital dos sinais que
carregavam a informação com o caráter analógico das vias de comunicação telefônica.
O mundo percebeu, então, que a tecnologia envolvida na utilização remota do
computador seria determinante nas décadas seguintes e que iria contribuir para o avanço de
todas as outras atividades humanas. Cada fabricante, vislumbrando o potencial do novo
mercado, investiu no desenvolvimento de uma tecnologia de teleprocessamento própria e,
com isso, as redes de teleprocessamento obtiveram um enorme crescimento, tanto do ponto
de vista de expansão geográfica quanto de variedade de aplicações.
Havia, porém, um obstáculo: os usuários de um sistema de teleprocessamento
necessitavam de acesso às aplicações pertencentes a outros sistemas. E, para tanto, seria
necessário interligar os sistemas de teleprocessamento ou interconectar os computadores.
O Projeto ARPA

Em meados da década de 1960, o governo dos EUA., por intermédio do


Departamento de Defesa, iniciou estudos relacionados à viabilidade do desenvolvimento de
redes de computadores. Finalmente, em 1968, financiadas por aquele departamento, tiveram
início às atividades do Projeto ARPA (Advanced Reserch Project Agency), tendo por base o
conhecimento e o potencial de pesquisa das universidades e dos centros de pesquisa norte-
americanos.
Em 1972, entrou em funcionamento o projeto-piloto da rede ARPA. Começava,
então, a era da tecnologia de redes de computadores, caracterizada pela distribuição das
aplicações entre vários computadores interligados de acordo com uma topologia
determinada. O sistema de teleprocessamento continuava a existir; cada computador
integrante da rede possuía sua própria estrutura de teleprocessamento.
O projeto ARPA foi pioneiro na criação de protocolos de transporte. Dentro de seu
escopo foi projetado e implementado o nó de comutação de pacotes e foram elaborados
mecanismos para controle de fluxo, confiabilidade e roteamento. Nessa época, foram
também desenvolvidos e entraram em funcionamento os primeiros protocolos de aplicação,
dentre os quais o protocolo de transferência de arquivos FTP (File Transfer Protocol) e o
protocolo de terminal virtual TELNET, ambos utilizados até hoje.
Também na década de 1970, o crescimento da ARPA permitiu a interligação de
computadores de universidades americanas e de alguns computadores situados em outros
países, validando, dessa maneira, o funcionamento da rede de computadores de longa
distância.
Na mesma época, os grandes fabricantes de equipamentos de processamento de
dados criaram seus próprios métodos para integrar em rede seus respectivos produtos.
Surgiram, assim, as chamadas arquiteturas proprietárias: primeiro, com a IBM, que lançou a
arquitetura SNA (Systems Network Architecture); depois, com a Digital e a sua arquitetura
Decnet, e várias outras.
Para as entidades especializadas em venda de serviços de telecomunicações abriu-
se um novo mercado: a oferta de serviços de comunicação de dados por meio do
fornecimento de uma estrutura de comunicação, denominada sub-rede, baseada
funcionalmente no princípio de comutação de pacotes. O CCITT (Consultive Committee for
International Telegraph and Telephone) elaborou documentos que permitiram que esses
serviços fossem padronizados, a partir dos quais publicaram, em 1976, a primeira versão da
Recomendação X.25, propondo a padronização de redes públicas de pacotes.
O que é TCP/IP

ARPANET
commissioned TCP/IP
by DOD FTP Protocol Suite
1969 1973 1982

Telnet TCP IP DNS


1972 1974 1981 1984

1965 1970 1975 1980 1985

Transmission Control Protocol / Internet Protocol (Protocolo de Controle de


Transmissão / Protocolo Internet) e, ao contrário do que parece, não é apenas um protocolo,
mas dois. O TCP é um protocolo de nível quatro enquanto que o IP é de nível três. A melhor
designação é conjunto de protocolos TCP/IP.
Nos anos 70 a Advanced Research Projects Agency – ARPA (Agência de
Projetos de Pesquisa Avançada), órgão do governo norte-americano, estava pesquisando
a tecnologia para interconexão de redes de computadores.
Esta tecnologia amadureceu e no final da década de 70 a DARPA (Defense
Advanced Research Projects Agency) apresentou o resultado sobre a conectividade entre
redes. A primeira implementação distribuída de TCP/IP foi feita pela Berkeley Software
Distribuition – BSD, da Universidade da Califórnia, subsidiada pela ARPA. Ela implementou
o TCP/IP em sua versão do sistema operacional UNIX, largamente utilizado em
universidades. Esta é a razão da associação do TCP/IP ao UNIX. Com isto a ARPA
conseguiu a adesão do meio acadêmico aos seus padrões.
O TCP/IP não tem dono, por isto existe a Internet Architeture Board – IAB, um
grupo de pesquisadores, dividido em unidades de trabalho conhecidas por Task Forces
(Forças Tarefas). O IAB é composto por cerca de dez Task Forces, cada ocupada com um
aspecto da tecnologia. Os pesquisadores do IAB são voluntários, recrutados entre
pesquisadores e empresas. O grupo mais conhecido do IAB é a Internet Engeneering Task
Force – IETF, responsável pelam resolução de problemas de engenharia de rede e
padronização.
2. Arquitetura do Protocolo TCP/IP

O TCP/IP é construído em camadas (como mostra a figura abaixo), semelhante ao


modelo de Redes do ISO designado: Open Systems Interconnection – OSI.
Cada camada é especialista em uma tarefa e fornece serviços à camada
imediatamente superior, possuindo seus próprios protocolos.
Camada de Interface de Rede
Responsável por converter os pacotes em frames específicos do tipo de rede que
está sendo utilizada. Ela também é responsável por converter endereços IP em endereços
físicos da rede.
O TCP/IP pode estar “conversando” com diversas interfaces de rede, cada uma se
preocupando com o tipo de rede à qual está conectada.
Nela ocorre a comunicação física da rede. Se ela for uma rede Ethernet, então
serão transmitidos e recebidos frames padrão IEEE 802.3.

Camada de Internet

A p lic a ç ã o

T ra n s p o rte
In t e r n e t P r o t o c o l ( IP )

In t e r n e t C o n t r o l M e s s a g e P r o t o c o l ( IC M P )
In t e r n e t
A d d r e s s R e s o lu t io n P r o t o c o l ( A R P )

R e v e r s e A d d r e s s R e s o lu t io n P r o t o c o l ( R A R P )
In t e r f a c e d e R e d e

Esta é a camada mais importante do TCP/IP, pois é o elo entre as camadas


superiores, mais voltadas para os aplicativos, e as camadas inferiores, orientadas para o
hardware. Ela é responsável pelo roteamento de pacotes na rede e pela verificação de sua
integridade.
Os quatro protocolos de Internet são:
1- ARP: é usado para obter endereços de hardware de hosts localizados sobre uma
mesma rede física.
2- ICMP: controla as mensagens de status e erro, gerados pelo IP.
3- IGMP: permite que um pacote seja transmitido a um conjunto de máquinas que
possuem um endereço específico, denominando multicast.
4- IP: é responsável pelo endereçamento e roteamento de pacotes entre hosts e redes.
Camada de Transporte

A p lic a ç ã o

T ra n s m is s io n C o n tro l P ro to c o l (T C P ) -
C o n e x ã o O rie n ta d a
T ra n s p o rte U s e r D a ta g ra m P ro to c o l (U D P ) - C o n e x ã o n ã o
o rie n ta d a

In te rn e t

In te rfa c e d e R e d e

Ela provê comunicação entre um programa aplicativo e outro, também conhecida


como End System-to-End System ou Host-to-Host. Ela controla o fluxo de dados, quebra
uma mensagem em pacotes, classifica e ordena os pacotes recebidos e verifica sua
seqüência.
Ambos os protocolos desta camada, TCP e UDP utilizam um mecanismo para
realizar a multiplexão, ou seja, permitir a identificação do programa que está enviando e do
que deverá receber a mensagem.
Dentro de uma estação pode haver vários programas. Com vários processos se
comunicando através do TCP/IP. O TCP/IP utiliza o conceito de portas e soquetes para
identificar os processos comunicantes.
Portas
As portas representam o primeiro mecanismo de conexão de aplicativos à camada
de transporte. Um programa servidor fica “escutando” uma determinada porta. Quando um
programa cliente deseja se comunicar, envia mensagens direcionadas aquela determinada
porta.
No caso do UDP, não é feita conexão entre o cliente e o servidor. As mensagens são
enviadas para uma determinada porta de uma estação. Se algum programa estiver
“escutando” aquela porta, receberá a mensagem e enviará uma resposta.
O TCP efetua conexão entre o cliente e o servidor, cuidando para que as mensagens
não sejam perdidas. Se um programa cliente desejar se comunicar com um programa
servidor através do TCP, precisa solicitar uma conexão através da porta do servidor. Então
um “plug” virtual é criado, ligando os aplicativos dos dois computadores em um circuito
virtual, que permanece conectado enquanto ambos desejarem.
Algumas portas têm utilização padronizada. Todos os programas que usam os
serviços normais do TCP/IP estão conectados a elas.
Porém, se apenas o conceito de porta existisse, um computador poderia apenas
responder a apenas uma conexão por porta. Seria possível realizar uma transmissão FTP e
outra HTTP, mas não duas HTTP simultaneamente.

Soquetes (Sockets)
Quando um programa necessita enviar ou receber através de uma porta, precisa
criar um soquete conectado a ela.
Soquetes é uma abstração que representa a conexão de um aplicativo com uma
porta. Podem-se ter vários aplicativos conectados a uma porta, cada um com o seu próprio
soquete aberto. Mesmo no UDP necessitamos criar soquetes para enviar ou receber dados.
Quando iniciamos um programa servidor, ele cria um soquete passivo ligado a uma
porta. É passivo porque apenas fica aguardando a chegada de dados. Quando estes
chegam, ele pode abrir um soquete ativo para responder ao remetente, deixando o primeiro
“escutando” a porta, aguardando novas solicitações.
Normalmente os soquetes são identificados através do endereço IP da estação
remota e o número da porta utilizada.

Esta camada também possui seus próprios protocolos específicos, como o TCP e
UDP.
• TCP – provê uma conexão orientada.
• UDP – provê uma conexão não orientada.
Camada de Aplicação

T r a n s fe r ê n c ia d e a r q u iv o
- TFTP*
- FTP*
- NFS*
E -M a il
-S M T P
A p lic a ç ã o L o g in R e m o to
- T e ln e t*
G e r e n c ia m e n to d a R e d e
- SMNP*
G e r e n c ia m e n to d e N o m e
-D N S *

T r a n s p o r te

In te r n e t

In te r fa c e d e R e d e

Cada programa de aplicação que usa o TCP/IP possui suas próprias regras para se
comunicar com seus semelhantes na rede.
Entre os protocolos de aplicação mais conhecidos estão:
• TELNET – Para login remoto
• HTTP – World Wide Web
• SMTP – Envio de correio eletrônico
• FTP – Transferência de arquivos

Um fato interessante é que, ao contrário das camadas inferiores, os protocolos de


aplicação rodam dentro dos programas aplicativos, ou seja: os programas aplicativos
precisam “saber” se comunicar usando o protocolo correto.
Tráfego de mensagens

Este é o objetivo principal de qualquer sistema de rede. Vamos ver como a


mensagem é transformada através das camadas TCP/IP:

Programa Aplicativo

Texto da mensagem

Transporte (TCP)

Segmentos da mensagem

Internet (IP)

Datagramas

Interface de Rede

Frames (IEEE 802.3, por ex.)


As etapas de uma transmissão:
1. O programa aplicativo, um browser WWW, envia uma mensagem a um servidor
WWW solicitando o processamento de um formulário. Ele está usando o protocolo
de aplicação HTTP.
2. O protocolo de aplicação HTTP por sua vez utiliza o protocolo de transporte TCP.
Antes de tudo, o TCP da máquina remetente necessita contatar o TCP da máquina
destinatária, de modo a estabelecer uma conexão orientada entre ambas. Só então
o TCP divide a mensagem em segmentos, adicionando um cabeçalho de controle e
os envia para o destinatário, usando os serviços do IP.
3. O protocolo de Internet (IP) acrescenta seu próprio cabeçalho à mensagem,
transformando-a em um datagrama. Além disto, ele precisa descobrir para onde
enviar o datagrama. Se for para uma estação em outra rede, ele necessita dos
serviços de um roteador que possa alcançá-la. Uma informação importante que o IP
acrescenta é o Time To Live (tempo de vida) do datagrama. É um mecanismo para
evitar que um datagrama fique vagando a esmo, caso não alcance o seu destino.
4. A interface de rede formata os datagramas dentro de unidades de transmissão,
conhecidas como frames. Para redes ethernet, usa-se o frame padrão IEEE 802.3.
então, mais um cabeçalho é acrescentado ao datagrama, transformando-o em um
frame de rede. Finalmente ele é enviado ao meio físico.

Quando um frame é recebido, a operação toda ocorre em ordem reversa.


1. Um frame chega à interface de rede. Ela faz sua verificação básica e, caso esteja
tudo ok, envia o datagrama ao protocolo para o qual está endereçada no caso IP.
2. O protocolo de internet (IP) simplesmente verifica se o datagrama recebido possui
como endereço de destino o seu próprio endereço IP. Caso positivo, ele verifica para
qual protocolo de transporte deve enviar o datagrama: TCP, UDP ou ICMP, e o
despacha para ser processado pela camada superior.
3. No caso mostrado, o TCP recebe o segmento, executa uma verificação, chamada de
TCP Checksum, de modo a validá-lo, e verifica se ele está na sequência correta
(lembrando que a mensagem foi desmembrada em segmentos). Estando tudo ok,
ele envia um sinal de Acknowledgement para quem lhe remeteu o segmento,
avisando qual o número da seqüência do próximo segmento esperado. Se esse foi o
último segmento de mensagem e se todos estiverem presentes, o TCP irá remontar
a mensagem e enviá-la para o programa de aplicação que a está esperando.
4. O aplicativo que recebe a mensagem é um servidor WWW, usando o protocolo
HTTP. Ele verifica a correção da mensagem, agora um comando HTTP, e processa
o pedido, enviando mensagens em resposta.
3. Protocolos

3.1 Protocolo IP (Internet Protocol)


O IP recebe segmentos de mensagem da camada de Transporte. Pode ser a
mensagem inteira ou apenas uma fração dela. Caso o destinatário não esteja na mesma
rede física, é necessário descobrir qual o melhor caminho para o destino, colocando o
endereço do roteador indicado para atingi-lo, a seguir o IP gera um (ou mais) datagrama,
tentando enquadra-lo dentro do tamanho permitido para os frames da rede física e o envia
para a interface de rede. Entre suas principais funções estão:
- Fragmentação
Durante o percurso de um datagrama, ele trafega por diversos tipos de redes e como
cada tecnologia tem um tamanho de bloco diferente, ou seja, pode passar por redes em que
o tamanho máximo que um datagrama pode ser menor que o da rede anterior. Para resolver
este problema, o datagrama será fragmentado em datagramas menores e independentes
que serão enviados ao destino.
- Roteamento
Roteamento é o processo de escolha do caminho ao qual a mensagem é enviada ao
seu destino. Basicamente existem dois tipos de roteamento: o direto e o indireto.
Todas as estações e gateways (máquinas que interligam duas ou mais sub-redes)
possuem uma tabela de roteamento, constituída basicamente dos seguintes dados:
endereço IP (destino) e endereço IP do próximo gateway.
A tabela de roteamento IP contém apenas endereços dos gateways que podem ser
atingidos diretamente, ou seja, todos os gateways listados na tabela de roteamento estão
conectados diretamente a sub-rede deste gateway.
O IP está definido sobre a RFC 791.
Datagramas IP
Um datagrama IP é a unidade gerada pela IP. Cada camada do TCP/IP acrescenta
seu próprio cabeçalho de controle ao fragmento de mensagem. Este processo é chamado de
“encapsulação”, pois o fragmento da camada superior é “embutido” ou “encapsulado”
dentro do fragmento gerado.
Assim o IP encapsula o segmento TCP em seu próprio fragmento, chamado de
datagrama:

Cabeçalho IP Cabeçalho TCP Mensagem

O tamanho máximo de um datagrama é de 64KB, o que supera e muito a


capacidade das redes físicas mais usadas atualmente.

Um datagrama, gerado em uma máquina, pode realizar uma longa viagem através
de diversos roteadores. Para controlar esta transmissão existe o cabeçalho IP, composto
por vários campos. São eles:
Versão (4 bits) Versão do protocolo IP que está sendo usado (valor 4 para o
IPv4).
IHL (Internet Header Comprimento do cabeçalho (4 bits) – fornece o comprimento do
Length) cabeçalho em número de palavras de 32 bits.

Tipo de serviço (TOS) Fornece uma indicação dos parâmetros da qualidade de serviço
desejada. Também indica se é um datagrama de controle de
rede (com maior prioridade) ou normal. Como os datagramas
dependem da colaboração de outros roteadores, o IP não pode
garantir o tipo de serviço, porém serve como indicação. Seus
valores podem ser:
Low Delay: Para serviço que exigem pouca quantidade de
dados, porém alta velocidade, como o Telnet.
High Throughput: Para serviços que transfiram grande
quantidade de dados, como o FTP.
High Reliability: Alta confiabilidade, para serviços que
necessitam como controle da rede.

Comprimento Total Fornece o comprimento do datagrama, medido em bytes,


incluindo o cabeçalho e a parte de dados, o comprimento
máximo é de 65.535 bytes.

Identificação (ID) Usado na montagem dos fragmentos de um datagrama.

Flags Campo de 3 bits que controla a fragmentação do datagrama.


Indicando se um datagrama pode ou não ser fragmentado e se
houve fragmentação.

Offset Quando um datagrama é fragmentado, indica a posição que a


área de dados deste datagrama ocupa na área de dados do
datagrama original. Inicia a contagem em zero.

Time To Live (TTL) Este é um campo importantíssimo para o roteamento. Indica


quanto tempo, em segundos, o datagrama pode ficar
transitando. Cada roteador que o recebe decrementa este
campo de 1 unidade. Caso ele fique aguardando
processamento, a cada segundo extra, há um decremento. Se
seu valor chegar a zero, ele é descartado e é gerada uma
mensagem de erro para a origem (via ICMP).

Protocolo Identifica o protocolo de transporte que gerou o pacote, é


utilizado como um mapa para interpretar a área de dados do
datagrama. Alguns códigos de protocolo:
ICMP: 1
TCP: 6
UDP: 17

Header Checksum Serve para identificar erros ocorridos durante a transmissão ou


na atualização do cabeçalho; desta forma, o checksum é
recalculado e verificado a cada ponto onde o cabeçalho é
processado.
Endereço de origem Endereço IP de quem originou a mensagem. Este endereço
salva em operações especiais, nunca se altera.

Endereço de destino Endereço IP do destinatário. Também não se altera.

Opções Serve para indicar opções especiais de controle da rede.


Normalmente não são utilizadas. Possuem tamanhos variáveis,
dependendo do tipo de opção. Alguns exemplos são:
Record Route – Para cada roteador coloque seu endereço IP
no datagrama, de modo, a saber, a rota percorrida.
Source Route – Contém uma lista de endereços IP,
determinando o caminho a ser seguido pelo datagrama.
Time Stamp – Funciona como um “Record Route”, exceto que
cada roteador acrescenta também a hora em que recebeu o
datagrama.

Padding Serve como enchimento, para garantir que o cabeçalho IP


chegue ao máximo de 6 palavras de 32 bits.

Logo após o cabeçalho vem à área de dados, reservada para o segmento gerado
pelo protocolo de transporte.
Normalmente protocolos como o TCP, geram segmentos de um tamanho
determinado, de modo que caibam exatamente em um datagrama. Porém, podem ocorrer
situações onde o tamanho do datagrama precisa ser reduzido, então ocorre o fenômeno da
fragmentação.
Fragmentação de Datagramas
O tamanho máximo de um datagrama (na versão 4.0 do IP) é de 64KB. O tamanho
máximo de um frame Ethernet é de 1500 bytes (1492 ou 1514, dependendo do cabeçalho).
Então, como o padrão mais utilizado é o Ethernet, é preciso limitar o tamanho dos
datagramas de acordo com ele.
O tamanho máximo de um frame em uma rede é chamado de Maximum Transfer
Unit – MTU. O fato do MTU máximo da Ethernet comportar 1500 bytes não significa que
todos os datagramas tenham este tamanho.
O IP fragmenta e remonta os datagramas de acordo com o MTU da rede. Quando
um protocolo de transporte, como o TCP, gera segmentos, procura faze-lo de acordo com o
MTU da rede. Algumas implementações de TCP/IP, como o Trumpet Winsock, permitem a
configuração do tamanho dos segmentos TCP. O IP recebe o segmento TCP e, caso caiba
dentro do MTU da rede, gera um datagrama que é enviado para Interface de Rede. A
Interface de Rede gera um frame para cada datagrama e o envia para a rede.
Quando o IP percebe que o segmento não caberá no MTU da interface de rede, ele
o divide em vários datagramas menores, usando o campo OFFSET do cabeçalho IP para
numerá-los. Também liga o terceiro bit do campo FLAG para indicar que há mais fragmentos
a caminho. O último fragmento possui este bit zerado.
Os fragmentos do datagrama original são também datagramas, portanto podem
seguir caminhos diferentes, chegando fora de ordem. O IP do destinatário recebe os
datagramas e, caso sejam fragmentos de um datagrama original, aguarda até que tenha
recebido todos para repassá-los ao protocolo identificado no campo PROTOCOLO do
cabeçalho IP. Todos os fragmentos do datagrama original contêm o mesmo valor no campo
IDENTIFICAÇÃO do cabeçalho IP, portanto o IP destinatário sabe que eles formam um só
pacote. Quando recebe um fragmento de datagrama com o terceiro bit do FLAG zerado,
sabe que ele é o último, portanto pode calcular o tamanho total do datagrama original e
verificar se receberam todos os fragmentos.
Para saber se está ocorrendo fragmentação, além de problemas com remontagem
de datagramas, pode-se usar o utilitário NETSTAT.EXE. Ele tem várias funções, porém, para
saber esta informação, pode-se solicitar por protocolo, como por exemplo:
C:\Windows> netstat –ps IP
IP Statistics
Packets Received = 170
Received Header Errors =0
Received Address Errors =0
Datagrams Forwarded =0
Unknown Protocols Received =0
Received Packets Discarded =0
Received Packets Delivered = 170
Output Requests = 94
Routing Discards = 192
Discarded Output Packets =0
Output Packet No Route =0
Reassembly Required =0
Reassembly Successful =0
Reassembly Failures =0
Datagrams Successfully Fragmented =0
Datagrams Failing fragmentation =0
Fragments Created =0
Note que não houve fragmentação nem remontagem de datagramas. Porém vamos
fazer uns testes com o utilitário PING. Enviaremos pacotes ICMP para a estação “instrutor”
com o tamanho normal de 32 bytes, depois iremos fazer o mesmo com 2000 bytes, o que
requer fragmentação, e por fim vamos enviar 2000 bytes solicitando que não sejam
fragmentados.
C:\Windows> ping instrutor
Pinging instrutor [192.168.1.200] with 32 bytes of date:
Reply from 192.168.1.200 : bytes=32 time=2ms TTL=32
Reply from 192.168.1.200 : bytes=32 time=2ms TTL=32
Reply from 192.168.1.200 : bytes=32 time=2ms TTL=32
Reply from 192.168.1.200 : bytes=32 time=2ms TTL=32

Foram enviadas quatro datagramas e recebidas quatro respostas, com o tempo


variando em 2ms. Agora vamos executar com pacotes de 2000 bytes:
C: \Windows> ping instrutor –l 2000
Pinging instrutor [192.168.1.200] with 2000 bytes of date:
Reply from 192.168.1.200 : bytes=2000 time=8ms TTL=32
Reply from 192.168.1.200 : bytes=2000 time=9ms TTL=32
Reply from 192.168.1.200 : bytes=2000 time=8ms TTL=32
Reply from 192.168.1.200 : bytes=2000 time=8ms TTL=32
Sem problemas, apenas o tempo aumentou um pouco. Agora vamos fazer o mesmo,
solicitando que os datagramas tenham o segundo bit do FLAG ligado, também conhecido por
DF (Don’t Fragment).
C:\Windows> ping instrutor –l 2000 –f
Pinging instrutor [192.168.1.200] with 2000 bytes of date:
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.
Packet needs to be fragmented but DF set.

Foram geradas quatro mensagens de erro ICMP e quatro datagramas foram


descartados. Vejamos como ficou a estatística do IP:
C: \Windows> netstat –ps IP
IP Statistics
Packets Received = 207
Received Header Errors =0
Received Address Errors =0
Datagrams Forwarded =0
Unknown Protocols Received =0
Received Packets Discarded =0
Received Packets Delivered = 196
Output Requests = 127
Routing Discards = 255
Discarded Output Packets =0
Output Packet No Route =0
Reassembly Required = 22
Reassembly Successful = 11
Reassembly Failures =0
Datagrams Successfully Fragmented = 12
Datagrams Failing fragmentation =8
Fragments Created = 24
3.2 Protocolo ICMP (Internet Control Message Protocol)
O protocolo de mensagem de controle da Internet (ICMP), definido na RFC792, é
obrigatório em implementações da camada IP. O ICMP é um protocolo usado na
transferência de mensagens de gateways e estações para uma estação da rede Internet. Na
sua maioria, essas mensagens indicam a ocorrência de problemas no transporte de algum
datagrama ou servem às operações de controle. Ele utiliza o IP para o transporte de
mensagem, não oferecendo, portanto, garantia de entrega. O ICMP é considerado integrante
da camada IP apesar de, na verdade, utilizar os serviços da camada IP.
No caso de problemas com datagramas enviados pela estação de origem, o ICMP
inclui no seu datagrama de ocorrências, o cabeçalho além de 64 bits iniciais dos dados do
datagrama IP que originou o erro.
As ocorrências do ICMP podem ser:
a) Destinatário inacessível (Destination Unreachable) – se um roteador não
puder enviar um datagrama IP adiante, ele usa o ICMP para enviar uma
mensagem de volta ao emissor, anunciando essa situação. Por exemplo, se
um roteador recebe um pacote destinado a uma rede que o roteador não
conhece, ele enviará uma mensagem ICMP Destination Unreachable de
volta à estação emissora.
b) Buffer cheio (Buffer Full) – se o buffer de memória de um roteador para a
recepção de datagramas estiver cheio, ele usará o ICMP para enviar essa
mensagem.
c) Saltos (Hops) – cada datagrama IP indicam certo número de roteadores,
chamados saltos, por onde poderá passar.
d) Ping (Packet Internet Groper) – utiliza mensagens de eco ICMP para verificar
a conectividade física das máquinas em uma rede.
e) Tempo excedido;
f) Problemas de parâmetros;
g) Marca de tempo e resposta à marca de tempo;
h) Solicitação de informações e respostas de informações;
i) Solicitação de máscara de endereço e resposta à máscara de endereço.

3.3 ARP – Address Resolution Protocol


A maneira mais simples de mapear endereços virtuais em endereços físicos seria
criar uma tabela de conversão e copiá-la para cada máquina participante. Esta alternativa
tem algumas desvantagens:
Demora na pesquisa: quando a interface de rede necessita obter um endereço físico,
ela já tem um datagrama esperando para ser transmitido. Longas tabelas de endereços
físicos podem ser problemáticas, a começar pelo local onde serão armazenadas.
Replicação: no caso de uma nova estação ou um roteador serem adicionados, é
necessário alterar as tabelas de todas as outras estações.
Para contornar estes problemas, foi criado um mapeamento dinâmico, no qual as
próprias estações descobrem os endereços físicos uma das outras. Este mapeamento é
implementado pelo Address Resolution Protocol – ARP, um protocolo que roda na camada
de Interface de Rede.
Em linhas gerais, as estações de uma rede, sejam computadores ou roteadores,
trabalham com o ARP em sua interface de rede. Ela mantém uma área temporária, chamada
Cache ARP, cujo propósito é armazenar os endereços IP e endereços físicos das estações
com as quais se comunicaram recentemente. Quando necessitam enviar um pacote,
procuram o endereço IP no cache, de modo a obter o endereço físico. Caso não exista, elas
enviam uma mensagem ARP, com endereço de Broadcast, solicitando o endereço físico de
um determinado endereço IP. A estação ao qual pertence o endereço IP irá responder
diretamente qual é o seu endereço físico e a remetente envia sua mensagem, atualizando o
seu cache com o endereço físico fornecido.
Os endereços IP e físicos são armazenados no cache por algum tempo, de modo a
evitar o envio de broadcasts ARP, pois sempre congestionam o cabeamento. Porém, após o
término da comunicação e esgotado o tempo de permanência, a entrada é removida do
cache ARP, dando espaço para armazenar mais endereços.
Quando ainda não foi emitido nenhum comando TCP/IP, no seu micro,
provavelmente o cache ARP da mesma estará vazio. Com o envio de pacotes TCP/IP, o
computador estará interagindo com as outras estações, necessitando saber seus endereços
físicos.

Veja o exemplo abaixo, com o comando ARP:


C:\Windows> arp –a
No ARP Entries Found

Neste momento o cache esta vazio.


C:\Windows> ping instrutor
Pinging instrutor [192.168.1.200] with 32 bytes of date:
Reply from 192.168.1.200 : bytes=32 time=2ms TTL=32
Reply from 192.168.1.200 : bytes=32 time=2ms TTL=32
Reply from 192.168.1.200 : bytes=32 time=2ms TTL=32
Reply from 192.168.1.200 : bytes=32 time=2ms TTL=32

Um pacote TCP/IP foi enviado.


C:\Windows> arp –a
Interface: 192.168.1.100
Internet Address Physical Address Type
192.168.1.200 00-20-18-34-ad-5f Dynamic
O cache agora possui um endereço.

Interface: 192.168.1.100 – este é o endereço IP associado à interface de rede que estamos


usando. Se o computador for multihomed, pode-se especificar de qual interface deseja obter
informações.
Internet Address – esta coluna lista os endereços IP das estações com as quais nos
comunicamos mais recentemente.
Physical Address – esta lista os endereços físicos correspondente ao endereço IP.
Type – este é o tipo de entrada no cache ARP. Dynamic significa que este endereço é obtido
dinamicamente, através de mensagens broadcast ARP. Pode-se entrar com endereços
permanentes, o que não é recomendável.

Opções ARP:
-a: exibe o cache ARP.
-s: adiciona uma entrada no cache ARP permanente.
-d: remove uma entrada do cache ARP.
-N: indica o endereço da interface de rede, caso seu computador seja um multihomed.
O ARP está definido sobre a RFC 826.
3.4 RARP – ARP Reverso
O RARP – Reverse Address Resolution Protocol, permite saber o endereço IP a
partir de um endereço físico. Normalmente o RARP não está presente nos pacotes mais
comuns do TCP/IP.
Seu funcionamento é muito simples. Temos servidores na rede, conhecidos como
servidores RARP. Quando uma estação deseja saber seu endereço IP (ou de alguma outra
estação) ela envia um broadcast RARP contendo seu endereço físico, então o servidor
RARP responde diretamente a ela com o endereço IP correspondente.

3.5 IGMP
O Internet Group Management Protocol (IGMP), é usado por hosts para reportar
seus participantes de grupos de hosts a roteadores multicast vizinhos. Como o ICMP, o
IGMP é uma parte integral do IP. É um requisito básico de implementações a todos os hosts
que desejem enviar e receber pacotes multicast. As mensagens IGMP são encapsuladas em
datagramas IP.
3.6 Protocolo TCP (Transmission Control Protocol)
O protocolo TCP reside na camada imediatamente acima do protocolo IP, ou seja,
na camada de transporte. O protocolo TCP é responsável por oferecer um serviço confiável
de transferência de dados, para isto são implementados mecanismos de recuperação de
dados perdidos, danificados ou recebidos fora de sequência e mecanismos para minimizar o
atraso na transmissão de dados. É um protocolo orientado à conexão. Entre suas principais
funções estão:

- Multiplexação
Provê um conjunto de portas (endereços) dentro de cada estação para permitir que
vários processos dentro de uma mesma estação utilizem simultaneamente os serviços de
comunicação. A associação de portas aos processos é tratada independentemente em cada
estação. Estas portas concatenadas com o endereço IP da estação constituem um socket,
cujo número é único em uma rede internet.

- Transferência de dados
O TCP é capaz de transferir um “stream” contínuos de bytes em cada direção entre
seus usuários, agrupando certo número de bytes para formar os segmentos (modo stream).
O TCP também permite que os usuários utilizem serviço orientado a registro (mode letter).
O serviço de transporte de dados oferece facilidades referentes à:

- Transferência full-duplex – os usuários podem transmitir dados, simultaneamente


em ambas as direções de uma conexão.
- Temporização na entrega – o usuário pode especificar um prazo máximo (timeout)
para a entrega de dados. Caso o TCP não consiga, ele notifica o usuário da falha do serviço
e termina abruptamente a conexão.
- Transferência ordenada – O TCP garante que o stream de dados fornecidos pelo
usuário de origem é entregue na mesma ordem ao usuário de destino, ainda que tenha
ocorrido segmentação durante a transmissão.
- Controle de fluxo – O TCP regula o fluxo de dados para prevenir congestionamento
interno que poderia levar a degradação e a falha do serviço de transporte de dados.
- Verificação de erros – O TCP utiliza o algoritmo de soma verificadora (checksum)
para garantir dados livres de erro, dentro das possibilidades deste algoritmo.
- Relatórios de Erros - O TCP relata falhas de serviço originadas em situações de
funcionamento anormal no ambiente da rede, falhas que ele não conseguiu recuperar como,
por exemplo, a queda de enlaces físicos.
Segmento TCP
A unidade de transferência de dados trocada entre estações usando o protocolo TCP
é chamada de segmento. Estes segmentos são trocados para estabelecimento de conexão,
transferência de dados, enviarem confirmações de recebimento (ACK), alterar o tamanho de
uma janela e para encerrar uma conexão. O segmento é dividido em duas partes: cabeçalho
TCP e bloco de dados. O cabeçalho carrega a sua identificação e informações de controle.

Os campos do segmento TCP


Porta de origem e Contêm os números da portas TCP associada aos programas de
porta de destino aplicação em cada ponto de conexão.
Número de sequência Identifica o número de sequência deste segmento.

Número de ACK Identifica o número do próximo segmento que a origem espera


(acknowledgement receber. Importante observar que o número da sequência faz o
number) controle do fluxo de dados na transmissão enquanto o número de
ACK faz o controle na direção oposta, ou seja, de recepção.
HLEN (Header Length) Especifica o tamanho do cabeçalho do segmento medido em
múltiplos de 32 bits, isto é necessário porque o campo opções tem
tamanho variável, dependendo de quais opções estão incluídas.
Deste modo, o tamanho do cabeçalho TCP varia conforme as
opções selecionadas.

Code bits (bits de Determinar o propósito e o conteúdo do segmento, por exemplo,


código) iniciar ou encerrar uma conexão. Os 6 bits mostram como
interpretar os outros campos no cabeçalho de acordo com a
tabela abaixo:
Bit (da esquerda para a Significado (se o bit estiver
direita) ligado)
URG Campo urgent point é válido.
ACK Campo número de ACK é
válido.
PSH Este segmento solicita um push.
RST Ocorre uma reinicialização da
conexão.
SYN Sincroniza os números da
seqüência.
FIN O transmissor deseja terminar a
conexão.
Janela Específica a quantidade de dados que ele está apto a aceitar.

Checksum É baseado na soma em complemento de um pseudo-cabeçalho, o


cabeçalho TCP e dos dados. Este pseudo-cabeçalho é constituído
de IP de origem e destino, a identificação do protocolo e do
comprimento do segmento TCP. Este pseudo-cabeçalho não é
transmitido com o segmento e é somente usado para efeito de
cálculos do checksum. A sua utilização tem como objetivo detectar
erros no roteamento de segmentos.

Padding É usado para garantir que o cabeçalho TCP seja múltiplo de 32


bits.
3.7 Protocolo UDP (User Datagram Protocol)
É um protocolo mais rápido do que o TCP, pelo fato de não verificar o
reconhecimento das mensagens enviadas. Por este motivo, não é confiável como o TCP.
O protocolo é não-orientada a conexão, e não provê muitas funções, como:
a) não controla o fluxo podendo os datagramas chegar fora de sequência ou até mesmo não
chegarem ao destinatário;
b) Opcionalmente pode conter um campo checksum, sendo que os datagramas que não
conferem este campo ao chegarem ao destino, são descartados, cabendo à aplicação
recupera-lo.

Segmento UDP

Os campos do segmento UDP

Porta de origem Número da porta do host que envia os


dados.

Porta de destino Número de porta da aplicação solicitada no


host de destino.

Tamanho do segmento Tamanho do cabeçalho UDP e dados UDP.

CRC Soma de verificação dos campos de


cabeçalho e dados do UDP.
Dados Dados do nível superior.
4. Endereçamento IP
Para que as mensagens alcancem seu destino, é necessário um modo de endereçar
os computadores e redes. Em uma única rede, as estações são endereçadas pelo número
gravado em sua placa de rede.

- Endereço Físico
Em um sistema de redes de barramento, como a ethernet, todas as estações
recebem os frames simultaneamente. É necessário um mecanismo que permita a
identificação física de cada uma, de modo à somente receberem os pacotes que lhe são
destinados. Este sistema é conhecido como Endereço Físico ou Media Access Control –
MAC Address. Ele é fornecido pelo IEEE, sendo único para cada placa fornecida.

- Endereço de Broadcast
Alguns serviços de rede exigem que seja enviada uma mensagem para todas as
estações de uma rede física. Por isto é providenciado um endereço especial, conhecido
como broadcast, que permite todas as estações receberem os pacotes endereçados a ele.
Mas o broadcast tem uma desvantagem. Imagine que em uma rede com grande
número de estações, é necessário enviar mensagens apenas para um grupo delas. Todas
receberiam as mensagens, sendo ocupadas desnecessariamente.

- Endereço de Multicast
Este tipo de endereço permite que um grupo de estações participe ou não de um
grupo de mensagens. Ao contrário do broadcast, o multicast especifica grupos de
máquinas. Se desejarmos enviar mensagens para um determinado grupo de máquinas,
basta saber qual é o endereço de multicast delas.

- Endereçamento Virtual
O TCP/IP é implementado por software, de modo a formar uma rede virtual entre
redes heterogênea. Por isto ele é um conjunto de especificações de protocolos que
padroniza as comunicações entre equipamentos diferentes.
Para implementar este tipo de comunicação universal, a camada de Internet do
TCP/IP utiliza seu próprio endereçamento, conhecido como Endereço IP. Ele é um endereço
virtual, ou seja, cada equipamento deve conhecer o seu próprio endereço IP, que não esta
gravada fisicamente na placa de rede como o endereço Físico. Além disto, deve ser capaz
de fazer um mapeamento entre os endereços IP e os endereços Físicos das outras estações
da rede.
- Endereços IP
Um endereço IP identifica um computador em uma rede TCP/IP. Ele é um número
compostos por quatro bytes (ou octetos), normalmente representados separados por pontos.

- Endereços de Rede e de Computador


O TCP/IP serve para estabelecer circuitos virtuais entre redes. O que significa que o
endereço IP não deve apenas indicar qual é o computador, mas a qual rede está conectado.
Isto é feito dividindo-se o endereço IP em endereço de rede e endereço de computador.
Esta divisão não pode ser fixa, pois temos vários tamanhos de redes, desde a alguns
poucos computadores até milhares de computadores. Por isto, foi criado o sistema de
classes IP. Este sistema determina a separação entre endereço de rede e endereço de
computador, possibilitando assim a correta interpretação do endereço IP pelos roteadores.

Classes de Endereços IP
A comunidade da INTERNET definiu cinco classes de endereços para redes de
tamanhos variados.
Estas classes de endereços definem quais os bits são usados para o HOST ID. Ele
também define o número possível de redes, e o número de HOSTS por rede.
Como é feita esta divisão? Considerando o endereço IP, que contém 32 bits. Os três
primeiros bits são utilizados para identificar a classe do endereço e de acordo com ela,
sabem-se quantos bits são usados para identificar a rede e quantos para o computador.

Classe A
Network ID Host ID
0

W X Y Z

Classe B
Network ID Host ID
1 0

W X Y Z
Classe C
Network ID Host ID
1 1 0

W X Y Z
Classe A
Esta atende às necessidades de redes de grande abrangência, constituídas de
poucas sub-redes e com elevado número de estações, estando disponíveis 8 bits para a
identificação das sub-redes e 24 bits para a identificação das estações, possibilitando assim
126 redes cada uma delas com aproximadamente 17 milhões de estações.
Em uma rede de classe A, as RFCs indicam que o primeiro bit do primeiro byte em
um endereço de classe A sempre precisa ser 0 (zero). Isso significa que um endereço de
classe A precisa estar entre 0 e 127.

00000000 = 0
01111111 = 127

Classe B
Representa redes intermediárias, com 16 bits para a identificação das sub-redes e
16 para as estações, gerando 16,384 redes, cada uma com 65,534 estações.
Em uma rede de classe B, as RFC’s indicam que o primeiro bit do primeiro byte
sempre precisa ser ativado, mas o segundo bit sempre precisa estar desativado. Isso
significa que um endereço de classe B precisa estar entre 128 e 191.

10000000 = 128
10111111 = 191
Classe C
Atende as redes menores, com 24 bits reservados para a identificação da sub-rede e
8 bits para a identificação das estações, permitindo aproximadamente 2 milhões de redes
com 254 estações cada.
Para redes classe C, as RFC’s definem os dois primeiros bits do primeiro octeto
sempre ativados, mas o terceiro bit nunca pode estar ativado. Isso significa que um endereço
de classe C precisa estar entre 192 e 223.

11000000 = 192
11011111 = 223

Classe D
Endereços de Classe D, são reservados para endereços de multicast. (224 a 239)
Alguns endereços de multicast da Classe D usados pelos protocolos de roteamento
são os seguintes:
• OSPF – 224.0.0.5 e 224.0.0.6
• RIPv2 – 224.0.0.9
• EIGRP – 224.0.0.10

Classe E
Endereços de Classe E, são endereços reservados para uso futuro. (240 a 255)
A tabela abaixo, mostra o número de redes por classe, o número de computadores
por rede, e o intervalo de rede do endereço IP (conhecida também como Regra do Primeiro
Octeto) da classe A, B e C:
Intervalo da Identificação Identificação Redes Hosts por rede
Rede (primeiro da Rede do Host disponíveis
octeto)
Classe A 1 – 126 w x.y.z 126 16, 777,214
Classe B 128 – 191 w.x y.z 16,384 65,534
Classe C 192 - 223 w.x.y z 2, 097,152 254

Endereços Especiais
Alguns endereços IP são reservados para uso especial, não podendo ser utilizados.
Os endereços são:
• A identificação da rede não pode ser 127
o 127 - reservado para funções de loopback
• A identificação da rede e do computador não pode ser 255 (todos os bits em 1)
o 255 - reservado para endereço de broadcast
• A Identificação da rede e do computador não pode ser 0 (todos os bits em 0)
o Quando os bits estão todos em 0, o endereço é interpretado como “endereço
da rede”.

A tabela a seguir lista as faixas válidas de HOSTS ID’S de uma rede privada
CLASSE DE ENDEREÇO FAIXA INICIAL FAIXA FINAL

CLASSE A W.0.0.1 W.255.255.254

CLASSE B W.X.0.1 W.X.255.254

CLASSE C W.X.Y.1 W.X.Y.254

Coberto pela RFC 1918 (1996). Existem alguns endereços reservados para a
utilização em redes internas, os quais não são e nunca será atribuída a nenhuma máquina
ligada à internet.
Os endereços reservados são:
De 10.0.0.0 à 10.255.255.255, classe A.
De 17.16.0.0 à 172.31.0.0, classe B.
De 192.168.0.0 à 192.168.255.0, classe C.
Máscara de sub-rede
A máscara de sub-rede ou subnet mask é uma técnica que permite a divisão de uma
rede em várias sub-redes, todas compartilhando a mesma faixa de endereços IP.
Esta técnica consiste basicamente em acrescentar alguns bits ao endereço de rede,
de modo a identificar mais de uma sub-rede agregada. Esses bits são retirados da parte
reservada para o endereço do computador, portando as sub-redes resultantes terão menos
endereços IP que a rede original.
Existem várias razões para dividir uma rede. As principais são:
Tráfego – em certos casos, há muito tráfego entre um determinado número de estações.
Dividindo a rede, pode-se diminuir a carga do cabeamento, aumentando assim a
performance geral.
Segurança – alguns dados somente podem ser tratados por certas estações. Pode ser um
risco muito grande ter os pacotes viajando por estações não muito seguras.
Tecnologia – não é raro ter redes de diferentes tecnologias na mesma empresa. Ela pode
ter uma rede Token Ring e uma rede Ethernet. Ambas se baseiam em tecnologias diferentes.
Mesmo podendo atuar como uma só rede virtual é necessária separar as redes físicas.

Como já foi visto, o endereço IP possui duas partes: endereço de rede e endereço
de computador. Ele é dividido assim para poupar memória dos roteadores, que não
necessitam saber o endereço IP completo de todos os computadores ligados, bastando
saber onde estão as redes.
Imagine que seu endereço de rede é um portal que liga ao mundo exterior. Para fora
de seu portal, o endereço de rede não se altera. Quando entra em seu portal, o roteador
obtém o endereço da sub-rede, e encaminha para a interface de rede correta.

A tabela a seguir mostra a subnet masks default de cada classe


Classe de Endereço Bits por Subnet Mask Prefixo da Rede Subnet Mask
Classe A 11111111 00000000 00000000 00000000 /8 255.0.0.0
Classe B 11111111 11111111 00000000 00000000 /16 255.255.0.0
Classe C 11111111 11111111 11111111 00000000 /24 255.255.255.0
Em um endereço IP de classe B, 16 bits são dedicados ao endereço de rede e os
restantes 16 ao endereço de computador. Se “roubarmos” alguns bits da parte do endereço
do computador, podemos criar uma classificação que indique a sub-rede. Veja bem, os
roteadores ao longo do caminho não verificam a parte do endereço de computador, pois para
eles apenas interessa o endereço de rede, então eles não se importarão em saber qual é a
sub-rede.
Suponha um endereço IP classe B:

Rede Rede Computador Computador

Se utilizássemos o primeiro byte do endereço do computador como nosso endereço


de sub-rede, teríamos:

Rede Rede Sub-rede Computador

Isso possibilitaria termos um endereço de rede único, através do qual seríamos


encontrados, e uma classificação indicando para qual sub-rede a mensagem deve ser
enviada. Neste caso em particular poderíamos ter 254 sub-redes, cada uma com 254
computadores em cada uma. Usamos o mesmo endereço de rede para todas, poupando
assim 253 endereços.
Mas não é necessário usar um byte inteiro para formar o endereço da sub-rede. Na
verdade não seria muito prático podermos ter 254 redes com 254 computadores. Imagine
que desejamos ter 6 sub-redes, neste caso podemos utilizar apenas 3 bits do endereço do
computador.

Rede Rede SR Comput. Computador

Neste caso teríamos 6 sub-redes com até 8.190 computadores em cada uma. Para
calcular o número de sub-rede use a fórmula:
SR = 2X – 2

Onde: “SR” é o número de sub-redes obtidos e “X” é o número de bits dedicados ao


endereço de sub-rede. É necessário considerar na fórmula o endereço reservado para
broadcast e o de rede, assim se explica o motivo de subtrair por dois.
Para saber quantos computadores poderão ter em cada sub-rede, temos a fórmula
semelhante:
NC = 2Y – 2
Onde: “NC” é o número de computadores permitidos e “Y” é o número de bits dedicados ao
endereço de computador. Lembrando que estes bits são as sobras da sub-rede.
Para usar a técnica de Subnetting, possui um parâmetro de configuração de
interface TCP/IP que indica qual o esquema de sub-rede está sendo usado. Seu nome é
Máscara de Sub-rede ou Subnet Mask. Este parâmetro tem a mesma forma que um
endereço IP e sua interpretação é muito simples: os bits ligados indicam qual a parte do
endereço IP deve ser interpretada como endereço de rede. No exemplo de sub-rede com 3
bits, teríamos:

RRRRRRRR. RRRRRRRR. SSSCCCCC. CCCCCCCC

Onde: “R” significa bit dedicado ao endereço de rede, “S” significa bit dedicado ao endereço
de sub-rede e “C” significa bit dedicado ao endereço de computador. A máscara de sub-rede
para esta configuração seria em bits:
11111111.11111111.11100000.00000000

Transformando para o sistema decimal, teremos: 255.255.224.0

Tabela de Conversão – Subnet Mask

A seguinte tabela lista as subnet mask existente em redes de classe A:


Número de Subnets Números de bits Subnet Mask Números de hosts
requeridos por subnet
0 1 Inválido Inválido
2 2 255.192.0.0 4, 194,302
6 3 255.224.0.0 2, 097,150
14 4 255.240.0.0 1, 048,574
30 5 255.248.0.0 524,286
62 6 225.252.0.0 262,142
126 7 255.254.0.0 131,070
254 8 255.255.0.0 65,534
A seguinte tabela lista as subnet mask existente em redes de classe B:
Número de Subnets Números de bits Subnet Mask Números de hosts
requeridos por subnet
0 1 Inválido Inválido
2 2 255.255.192.0 16,382
6 3 255.255.224.0 8,190
14 4 255.255.240.0 4,094
30 5 255.255.248.0 2,046
62 6 225.255.252.0 1,022
126 7 255.255.254.0 510
254 8 255.255.255.0 254

A seguinte tabela lista as subnet mask existente em redes de classe C:


Número de Subnets Números de bits Subnet Mask Números de hosts
requeridos por subnet
0 1 Inválido Inválido
2 2 255.255.255.192 62
6 3 255.255.255.224 30
14 4 255.255.255.240 14
30 5 255.255.255.248 6
62 6 225.255.255.252 2
126 7 Inválido Inválido
254 8 Inválido Inválido
5. Roteamento
O que é roteamento?

192.168.1.0 172.16.1.0

- Possíveis caminhos
- Melhores caminhos
- Endereços de Destino

É a técnica que viabiliza a escolha do melhor caminho entre dois pontos de uma rede
para o envio de dados. Na arquitetura TCP/IP, a função de rotear informações (datagramas)
é executada pelos gateways ou roteadores.
A maioria dos dispositivos de roteamento é capaz de descobrir rotas na inter-rede e
armazenar as informações de rota em tabelas de roteamento.
As tabelas de roteamento não armazenam apenas informações de caminho. Elas
também armazenam estimativas do tempo gasto para enviar uma mensagem em uma
determinada rota. Essa estimativa de tempo é conhecida como custo de um determinado
caminho. Existem vários métodos para estimar os custos de roteamento, entre eles podemos
citar:
• Contagem de saltos (hop count): descreve o número de roteadores que
uma mensagem deve atravessar antes de chegar em seu destino. Se,
supostamente, todos os saltos gastam o mesmo tempo, o melhor caminho
é aquele que possui a menor contagem de saltos.
• Contagem de tiques: é uma estimativa de tempo real, em que um tique é
uma unidade de tempo definida pela implementação do roteamento.
• Gasto relativo: é qualquer medida de custo definida para usar um
determinado link.

Também podemos definir o roteamento como: direto ou indireto.


Roteamento Direto

Um host em uma dada rede IP pode transmitir diretamente um frame para qualquer
outro host na mesma rede. Este tipo de transmissão é chamado de roteamento direto, e não
necessita de nenhum roteador IP. Para transmitir um datagrama usando roteamento direto, o
host fonte encapsula-o em um frame físico, mapeando o endereço IP em endereço físico,
usando ARP. Veja um exemplo de como funciona:

1. Algum protocolo de transporte de uma estação de rede, por exemplo, o TCP, envia
um segmento de mensagem para o IP, localizado na camada Internet. Juntamente
com o segmento, ele fornece um endereço IP do destinatário como parâmetro. O
endereço não esta gravada no segmento.

TCP IP

Endereço IP Segmento

2. O IP prepara um datagrama, embutindo o segmento TCP na área de dados e


informando o endereço IP fornecido e o seu próprio no cabeçalho IP, como Origem e
Destino, respectivamente.

Cabeçalho Área de dados

Origem Destino Segmento TCP

Endereço IP Endereço IP
Fornecido Fornecido

3. A seguir verifica se o endereço IP de destino pertence à sua própria rede.

4. Caso positivo, o IP encaminha o datagrama para a interface de rede correspondente


à rede do destinatário, fornecendo à parte o seu endereço IP. Note que o endereço
IP do destinatário também é fornecido dentro do cabeçlho IP do datagrama.

IP Int. Rede

Endereço IP Datagrama
5. A interface de rede transforma o endereço IP do destinatário, fornecido à parte pelo
IP, em endereço físico, utilizando o ARP. Note que o endereço IP de destino,
inserido no cabeçlho IP, não é utilizado. No cabeçalho do frame ela fornece o
endereço físico obtido e o envia pela rede.

Endereço IP
Interface ARP
de Rede
Endereço Físico

Cabeçalho do Frame Datagrama

Endereço Físico

Placa de
Rede

Uma camada inferior nunca “abre” o pacote recebido de uma camada superior,
geralmente porque o seu conteúdo não lhe interessa. Então, o endereço IP de destino
sempre tem que ser fornecido à parte. Quando o IP envia um datagrama para a interface de
rede, este não utiliza o endereço IP contido no cabeçalho IP, mas sim o que é fornecido
como parâmetro.
Roteamento Indireto
No roteamento indireto, o endereço de origem precisa determinar um gateway para o
qual o datagrama deve ser enviado. O gateway selecionado, por sua vez, deve encaminhar
esse datagrama na direção do endereço de destino.
Para visualizar o processo de roteamento indireto, imagine uma rede interna
constituída de várias sub-redes interconectadas por gateways, com apenas duas estações,
uma em cada extremidade da rede. Quando uma estação deseja enviar um datagrama a
outra, ela encapsula o datagrama em um quadro físico e o envia ao gateway mais próximo.
Quando o quadro chega ao gateway, o datagrama é retirado do quadro e as rotinas
de roteamento determinam, a partir do endereço IP do destinatário, o próximo gateway no
caminho para a estação destinatária. O datagrama é novamente colocado em um quadro e
enviado para o segundo gateway e, assim por diante, até que o datagrama chegue ao último
gateway.
Um gateway determina o próximo gateway no caminho para a estação destinatária
utilizando o Algoritmo de Roteamento Baseado em Tabelas.
A determinação das melhores rotas
Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve
ser enviada para chegar ao seu destino de forma segura e eficiente. Para realizar esta
função, o roteador utiliza dois conceitos muito importantes: o conceito de métrica e o
conceito de tabelas de roteadores.

Métrica
É o padrão de medida que é usado pelos algoritmos de roteamento para determinar
o melhor caminho para um destino. Pode-se utilizar apenas um parâmetro ou vários
parâmetros. A utilização de vários parâmetros permite uma melhor modelagem da métrica e
uma decisão mais eficiente de qual é o melhor caminho.

Alguns parâmetros utilizados

• Tamanho do caminho
• Confiabilidade
• Atraso
• Largura de banda
• Carga
• Custo da comunicação

Tabela de Roteamento IP (RIT – Routing Information Table)


Ela indica para onde enviar pacotes que não estão destinados à mesma rede física,
tanto para estações quanto para roteadores. É uma tabela que contém as seguintes
informações:
Endereço de destino fora da rede física. Pode ser apenas um
Destino
endereço de rede ou um endereço IP completo.
Subnet Mask Máscara da sub-rede que deve ser utilizada para comparação.
Endereço IP do roteador que pode entregar o pacote ao
Gateway
destinatário. Também conhecido como Next Hop ou Next Router.
Endereço IP da interface de rede para onde enviar o pacote. Faz
Interface
sentido apenas para computadores multihomed ou roteadores.
É a quantidade de roteadores que o pacote deve atravessar para
Métrica chegar ao destino. Serve como dica para o campo TTL. Também
chamado de Distance ou Hop Counter.

Cada equipamento que usa TCP/IP tem uma tabela destas. Ela serve para
determinar para onde devem ser enviados os datagramas destinados a endereços IP que
não pertencem à mesma rede física.
Exemplo de uma Tabela de Roteamento sobre o Windows 2000
Rede de Destino Máscara de Rede Gateway Interface Metric Finalidade
0.0.0.0 0.0.0.0 157.55.16.1 157.55.27.90 1 Default Route
127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 Loopback Network
157.55.16.0 255.255.240.0 157.55.27.90 157.55.27.90 1 Directly Attached Network
157.55.27.90 255.255.255.255 127.0.0.1 127.0.0.1 1 Local Host
157.55.255.255 255.255.255.255 157.55.27.90 157.55.27.90 1 Network Broadcast
224.0.0.0 224.0.0.0 157.55.27.90 157.55.27.90 1 Multicast Addresses
255.255.255.255 255.255.255.255 157.55.27.90 157.55.27.90 1 Limited Broadcast

Quando uma estação necessita enviar um pacote, ela compara um endereço da rede
do destinatário com o da sua própria rede. Ela o faz comparando o endereço de rede do
endereço IP de destino com o endereço de rede de seu próprio endereço IP. Para retirar o
endereço de rede, a estação faz uma operação lógica AND entre o endereço IP e o campo
Máscara sa Sub-Rede, configurado no TCP/IP. Somente ficarão ligados os bits que
correspondem ao endereço de rede. Ela executa essa operação tanto para endereço IP de
destino, quanto para o seu próprio. Caso a comparação entre os dois endereços de rede
resulte em diferença, ela recorre à tabela de roteamento IP. Exemplo:

Endereço IP de destino: 195.168.200.10.2


Máscara da Sub-rede: 255.255.255.255.0
Resultado da AND: 195.168.200.10.0
Endereço IP da estação: 192.168.200.1.2
Máscara da Sub-rede: 255.255.255.255.0
Resultado da AND: 192.168.200.1.0

Resultado: 195.168.200.10.0 é diferente de 192.168.1.0, portanto o destinatário esta em


outra rede física.

Se os endereços de rede fossem iguais, bastaria enviar o datagrama para a camada


de interface de rede, deixando a cargo desta a resolução do endereço físico (ARP) e o envio
do frame. Como não foi isto o que aconteceu, a estação necessita descobrir quem é o
roteador que pode enviar o pacote para o destino. Ela inicia a pesquisa na tabela de
roteamento IP, comparando o endereço de rede do destinatário com o endereço de rede de
cada campo DESTINO. Caso alguma comparação seja positiva, basta solicitar a interface de
rede que envie o datagrama para o endereço IP contido no campo GATEWAY.
A tabela de roteamento IP pode ser mantida de duas maneiras: manual e
automática. Em estações de rede, normalmente quem mantém a tabela é o administrador da
rede. Em roteadores, isto pode ser feito automaticamente, pois eles costumam trocar
informações sobre novas rotas usando protocolos de roteamento, como o RIP e OSPF.

Rota Estática
Esse tipo de rota se caracteriza por usar caminhos programados pelo administrador
de rede. É um tanto custoso, pois o administrador deve preencher manualmente a tabela de
roteamento do roteador.
Este tipo de rota não funciona bem em ambientes de rápido crescimento ou
constantes mudanças, visto que à medida que a topologia da rede muda, todos os
roteadores da rede deverão ter suas tabelas manualmente atualizadas.

Nota: Sempre que for necessário enviar um pacote para um determinado roteador, será
usado o mesmo caminho. Portanto, se por acaso o link utilizado para alcançar o roteador
estiver inoperante, o pacote não conseguirá chegar ao seu destino.

172.16.1.0

S0
REDE
A 172.16.2.2 172.16.2.1 B

- Rota estática é configurado em ambos os lados


Algoritmos de Roteamento
É a forma como os gateways localizam as diversas redes e estações. Podem ser:
a) Vetor distância (Vector-Distance) - A informação é difundida para todos os
roteadores da rede. É mantida apenas uma tabela de roteamento com apenas a
informação necessária para atingir o próximo roteador na rede. Nesse caso os
roteadores trocam constantemente entre si informações sobre o estado de suas
tabelas.

b) Estado de Enlace (Link-State) - É gerado um mapa lógico de toda a rede. Para isso
os roteadores se enviam pacotes contendo informações que permitem aos outros
roteadores conhecer exatamente a situação de um outro roteador. A informação
inter-roteadores somente é atualizada quando ocorre uma mudança na rota ou no
serviço

c) Híbrido (Balanced hybrid) - Usa aspectos do vetor distância e do estado de enlace. O


protocolo EIGRP é um exemplo de um protocolo híbrido.

Protocolos de roteamento
São protocolos de manutenção e administração das rotas de endereços de
determinada rede. Eles executam um mapeamento que pode ser feito por diversos
algoritmos como vetor distância e o link state. No algoritmo vetor distância a informação é
difundida para todos os roteadores da rede. É mantida apenas uma tabela de roteamento
com apenas a informação necessária para atingir o próximo roteador na rede. Nesse caso os
roteadores trocam constantemente entre si informações sobre o estado de suas tabelas. No
algoritmo link state é gerado um mapa lógico de toda a rede. Para isso os roteadores se
enviam pacotes contendo informações que permitem aos outros roteadores conhecer
exatamente a situação de um outro roteador. A informação inter-roteadores somente é
atualizada quando ocorre uma mudança na rota ou no serviço.
Os protocolos de roteamento padronizam a forma de como os gateways trocam
informações necessárias à execução dos algoritmos de roteamento.
Além disso, eles podem ser classificados de acordo com a sua cobertura da rede ou
de acordo com as “regiões administrativas”, que podem ser internas, Interior Gateway
Protocols, ou externas, Exterior Gateway Protocols.
Sistemas Autônomos: Protocolos de Roteamento Interior ou Exterior

IG P s : R I P , IG R P
EG Ps: BG P

S is te m a A u tô n o m o 1 0 0 S is t e m a A u t ô n o m o 2 0 0
- U m s is te m a a u t ô n o m o é u m a c o le ç ã o d e r e d e s s o b re u m
d o m ín io a d m in is tr a tiv o .

- IG P s o p e r a m d e n tr o d e u m s is te m a a u tô n o m o .

- E G P s c o n e c ta m d ife r e n te s s is te m a s a u tô n o m o s .

Como cada rede é independente das demais para fins de conexão entre redes, são
normalmente referenciadas como Sistemas Autônomos.
A definição clássica é um conjunto de roteadores sob uma administração técnica
única, usando algum tipo de interior gateway protocol e métricas comuns para rotear pacotes
dentro de um sistema autônomo, e utilizando um exterior gateway protocol para rotear
pacotes para outros SAs. Mas muitos SAs podem possuir diversos IGPs diferentes, bem
como adotar diversas métricas dentro do Sistema Autônomo. Portanto, a utilização do termo
Sistema Autônomo designa aqui o fato que, mesmo com múltiplos IGPs e métricas, a
administração de um AS aparenta a outro AS ter um único plano de rota e apresenta um
quadro consistente de que destinação são alcançáveis através dele.

Interior Gateway Protocols (IGP)


O termo IGP é utilizado para designar o protocolo usado na troca de informações de
roteamento entre Interior Gateways (IG).
Em sistemas autônomos pequenos, as tabelas de roteamento podem ser
determinadas, manualmente, pelo administrador do sistema. O administrador mantém uma
tabela de redes do SA que é atualizada sempre que uma rede é removida ou inserida no SA.
Além de não ser confiável, esse método torna-se inviável com o crescimento do SA.
Protocolos do tipo IGP (Interior Gateway Protocols)
• RIP (Routing Information Protocol)
• IGRP (Interior Gateway Routing Protocol)
• EIGRP (Enhanced Interior Gateway Routing Protocol)
• OSPF (Open Shortest Path First)
• IS-IS (Intermediate System-to-Intermediate System)
Exterior Gateway Protocols (EGP)
O protocolo EGP não está vinculado a nenhum algoritmo de roteamento. Isto é, para
que dois gateways se comuniquem através do EGP não é necessário que eles executem um
mesmo algoritmo de roteamento. O EGP define as informações a serem trocadas entre EG
(basicamente, as tabelas de roteamento) e os elementos de protocolo necessários à troca
dessas informações.
Tais informações permitem que um ou mais sistemas autônomos sejam utilizados
como intermediários do tráfego originado em algum sistema autônomo e destinado a outro,
sem que o usuário da rede interna perceba que a rede é composta por mais de um sistema
autônomo. O número de sistemas autônomos que um datagrama atravessa até chegar ao
destino deve ser transparente ao usuário.
O EGP é um protocolo de roteamento elaborado para uma rede de sistemas
autônomos organizados em uma estrutura do tipo árvore, ou seja, uma rede sem loops
(ciclos) na sua topologia. As informações trocadas neste protocolo não impedem que
ocorram loops no roteamento. Uma situação de loop pode ocorrer, por exemplo, quando a
tabela de roteamento de um gateway G indica o gateway G' como a melhor saída para uma
rede N, e a tabela de roteamento de G' indica G como a melhor saída para a rede N.
As mensagens do EGP são associadas a cada Sistema Autônomo através de uma
identificação de 16 bits que é colocada no cabeçalho de cada mensagem do EGP. Essas
mensagens trafegam somente entre gateways vizinhos. Dois gateways podem tornar-se
vizinhos quando:

• Estão diretamente conectados por um cabo, por exemplo;


• Estão conectados por uma rede transparente para eles, isto é, uma
rede cuja estrutura interna eles não conhecem.

Protocolos do tipo EGP (Exterior Gateway Protocols)


- EGP (Exterior Gateway Protocol)
- BGP (Border Gateway Protocol)
Algoritmo Vetor Distância

Router B

Router C Router A

Router D

Router D Router C Router B Router A

T abela T abela T abela Tabela


de de de de
Rotea- Rotea- Rotea- Rotea-
mento mento mento mento

Passa cópias periodicas da tabela de roteamento para


roteadores vizinhos e acumula o vetor distância.

A técnica vetor distância é baseada na “distância” entre dois pontos. Esta distância
refere-se ao número de roteadores existentes no caminho utilizado.
À distância entre um ponto e outro é medido em hops (salto), que é a passagem de
um datagrama por cada roteador.
Periodicamente, os roteadores enviam cópias de suas tabelas de roteamento para
todos os roteadores que possam alcançar diretamente (broadcast). Quando um roteador
recebe uma tabela de roteamento proveniente de outro, este verifica se existem rotas mais
curtas que as suas ou inexistentes em sua tabela, atualizando então a mesma. Na figura a
cima, por exemplo, o roteador B recebe informações do roteador A. O roteador B adiciona
uma métrica, incrementando o vetor distância. Este passa a sua tabela de roteamento para o
outro vizinho, o roteador C. O processo é executado para os demais roteadores da rede
(roteadores vizinhos).
O algoritmo vetor distância é um algoritmo eficiente, mas pode ser igualmente
ineficiente. Como as alterações devem passar pela rede de roteador para roteador, pode ser
que demore em uma alteração tornar-se conhecida por todos os roteadores da rede. O que
pode causar erros de roteamento (ou loops de roteamento) e gerar a contagem para o infinito
(counting to infinity).
Além disso, os frequentes broadcasts de informações de roteamento produzem altos
níveis de tráfego na rede, podendo prejudicar o desempenho em redes maiores.
Os seguintes protocolos de roteamento são exemplos de algoritmo vetor distância:
- RIP
- IGRP
Funcionamento:
1. O roteador apresenta em sua tabela a rota para os roteadores vizinhos.
2. Em intervalos de tempo regular o roteador envia toda a sua tabela de rotas para
os seus vizinhos.
3. Após algum tempo os diversos roteadores da rede convergem (ficam com suas
tabelas completas e atualizadas).
4. As tabelas apresentam o endereço destino, a métrica, e o próximo roteador para
onde a mensagem deve ser enviada.
5. Exige menos recursos de memória e processamento do que o algoritmo de
estado de enlace.
6. Apresenta convergência mais lenta e alguns problemas enquanto o algoritmo
não se estabilizou.

Vetor Distância – Origem da informação e descobrindo rotas.

10.1.0.0 10.2.0.0 10.3.0.0 10.4.0.0


E0 Router A S0 S0 Router B S1 S0 Router C E0

Tabela de Tabela de Tabela de


Roteamento Roteamento Roteamento
10.1.0.0 E0 0 10.2.0.0 S0 0 10.3.0.0 S0 0
10.2.0.0 S0 0 10.3.0.0 S1 0 10.4.0.0 E0 0
10.3.0.0 S0 1 10.4.0.0 S1 1 10.2.0.0 S0 1
10.4.0.0 S0 2 10.1.0.0 S0 1 10.1.0.0 S0 2

Roteadores descobrem o melhor caminho para destinos


de cada vizinho.

A interface para cada rede diretamente conectada possui uma distância (custo) igual
a 0. As tabelas de roteamento são compostas basicamente por três campos: o endereço
destino, a interface usada para alcançar o destino e o custo.
Os roteadores descobrem o melhor caminho para redes que não estão diretamente
conectado, baseado sobre o acumulo da métrica de cada vizinho. Roteadores vizinhos
proveem informação de roteadores que não estão conectados diretamente.
Por exemplo, o roteador A aprende sobre outras redes baseado em informações que
recebeu do roteador B. As redes que não estão conectadas diretamente com o roteador A é
incrementado o valor de 1 no seu custo.
Para cada endereço de destino haverá uma única entrada na tabela de roteamento
do roteador, ou seja, o número médio de registros da tabela é equivalente ao número médio
de roteadores presentes na mesma sub-rede.

Vetor Distância – Selecionando o melhor roteador com métricas

IG R P

B a n d w id t h
A
D e la y
M TU
56

R IP
Hop count 56
T1

T1

I n f o r m a ç ã o u s a d a p a r a s e l e c i n a r o m e lh o r c a m in h o d e r o t e a m e n t o .

Múltiplas rotas podem existir para um determinado destino. Quando o algoritmo de


protocolo de roteamento faz um update na tabela de roteamento, o seu primeiro objetivo é
determinar a melhor rota para incluir sobre sua tabela. Cada protocolo de roteamento – vetor
distância, usa diferente algoritmo de roteamento para determinar a melhor rota. O algoritmo
gerado é um número chamado de métrica.
Métrica é o padrão de medida que é usado pelos algoritmos de roteamento para
determinar o melhor caminho para um destino. Pode-se utilizar apenas um parâmetro ou
vários parâmetros. A utilização de vários parâmetros permite uma melhor modelagem da
métrica e uma decisão mais eficiente de qual é o melhor caminho. Os parâmetros mais
comuns usadas por roteadores são:
- Tamanho do caminho
- Confiabilidade
- Atraso
- Largura da banda
- Carga
- Custo da comunicação
- MTU (Maximum Transmission Unit)

Os recursos de protocolos de vetor distância: dividir horizonte, retenção e


contraveneno.
Um roteador que executa um protocolo de vetor distância envia sua tabela de
roteamento a cada uma de suas portas em base periódica. Se o protocolo admitir a técnica
de dividir horizonte, o roteador enviará apenas rotas que podem ser alcançadas através de
outras portas. Isso reduz a extensão da atualização e, mais importante, melhora à precisão
das informações de roteamento. Com a divisão do horizonte, um roteador não transmite
informações a outro que este aprenderia melhor no local.
A maioria dos protocolos de vetor distância também implementa um cronômetro de
retenção, para que novas informações sobre uma rota até uma rede suspeita não recebam
crédito imediatamente, no caso de as informações se basearem em dados ultrapassados. Os
cronômetros de retenção são formas padrão de evitar loops que podem acontecer durante a
convergência. Para entender o problema do loop, considere a figura abaixo.

S0 S0

Router A Router B
E0 E0

172.16.0.0 192.168.2.0

Tabela de Roteam ento Tabela de Roteamento

172.16.0.0 E0 0 192.168.2.0 E0 0
192.168.2.0 S0 1 172.16.0.0 S0 1

Quando os roteadores transmitem suas tabelas de roteamento, eles simplesmente


enviam as colunas Network e Distance da tabela. Eles não enviam a coluna Send to (Next-
Hop) que é uma das causas do problema do loop.

A sequência de eventos que pode conduzir a um loop de roteamento é:


1. A conexão do roteador A para a rede 172.16.0.0 falha.
2. O roteador A remove a rede 172.16.0.0 de sua tabela de roteamento.
3. Baseado em anúncios anteriores do roteador A, o roteador B transmite sua
tabela de roteamento dizendo que o roteador B pode alcançar a rede 172.16.0.0.
4. O roteador A acrescenta a rede 172.16.0.0 à sua tabela de roteamento com um
valor Send To (Next-Hop) do roteador B e uma distância de 2.
5. O roteador A recebe uma estrutura para um host na rede 172.16.0.0.
6. O roteador A envia a estrutura ao roteador B.
7. O roteador B envia a estrutura ao roteador A.
Os loops de estruturas vão e voltam do roteador A para o roteador B, até expirar o
valor de time-to-live. (Time-to-live é um campo no cabeçalho IP de um pacote IP que é
decrementado toda a vez que um roteador processa a estrutura.)
Sem dividir o horizonte, em algum momento o roteador A envia uma atualização de
rota informando que pode alcançar a rede 172.16.0.0, fazendo o roteador B atualizar a rota
em sua tabela com a distância em 3. Ambos os roteadores A e B continuam a enviar
atualizações de rotas até finalmente o campo de distância alcançar o infinito. (Os protocolos
de roteamento arbitrariamente definem uma distância que significa infinito. Por exemplo, “16”
significa infinito para o RIP.) Quando a distância alcança o infinito, os roteadores removem a
rota.
O problema da atualização de rota é chamado problema da contagem até o infinito.
Uma função de retenção informa a um roteador para incluir ou atualizar informações sobre
uma rota que foi recentemente afastada, até um cronômetro de retenção expirar. No
exemplo, se o roteador A usar a retenção, ele não acrescentará a rota para a rede
172.16.0.0 que o roteador B envia. Dividir o horizonte também resolve o problema no
exemplo, porque se o roteador B usar dividir horizonte, ele não informará ao roteador A
sobre uma rota para 172.16.0.0.
As mensagens de contraveneno é outro modo de acelerar a convergência e evitar
loops. Com o contraveneno, quando um roteador nota um problema com uma rota, ele pode
enviar imediatamente uma atualização da rota que especifica que o destino já não pode mais
ser alcançado. A maioria dos produtos faz isso especificando a distância como infinito.
Algoritmo Estado de Enlace (Link State)

R o u ter B

Ro uter C R o u ter A

R o u ter D

P acotes Estado de E nla ce

T ab ela
B ase de d ad os d a
T o po log ia
de
R o tea -
m en to

A lg oritm o
S PF

Ap ós iniciar o flo od , é feito u m u pd ate em to do s os


ou tro s roteado res da rede

Cada gateway mantém um mapa da topologia da rede. Basicamente, a tarefa de um


gateway é testar inicialmente a possibilidade de comunicação com os gateways diretamente
conectados a ele. Obtido o estado do enlace (up ou down), o gateway divulga as
informações para outros gateways.
As redes são consideradas links ponto a ponto, onde um roteador alcança outro
diretamente. Nesta técnica não são trocadas informações sobre distâncias, mas sobre o
status de cada link. Portanto, um roteador tem por função testar o estado de cada link com
quem mantenha ligação direta e após isto enviar periodicamente o resultado para os demais
roteadores. Para testar o estado de um roteador vizinho, um roteador envia periodicamente
mensagens para reconhecer se o vizinho está “vivo” e “alcançável”.
Quando um roteador recebe uma resposta, ele considera o link entre os envolvidos
com status “up”, caso contrário considera o mesmo “down”. Para informar aos demais
roteadores da rede quanto ao estado dos links, cada roteador envia periodicamente uma
mensagem que lista todos o status correspondente a cada link com os quais tem ligação
direta. Estas mensagens de status não especificam rotas ideais, apenas apontam o estado
de cada link.
Cada roteador que recebe mensagens de status é responsável pela propagação das
mesmas na rede. Ao receber uma mensagem de status de link, além de providenciar a
propagação da mesma, cada roteador efetua a atualização de sua tabela de status.
A grande vantagem dos algoritmos Shortest Path First (SPF) reside no fato das
mensagens enviadas serem pequenas, o que evita um volume de tráfego desnecessário na
rede.
Roteadores em mau funcionamento são facilmente detectáveis, já que todos devem
manter uma base de dados idêntica. Bastando então verificar a consistência das tabelas de
um roteador em relação à base de dados de outro.
Os protocolos de estado de enlace normalmente convergem com maior rapidez que
os protocolos de vetor distância e são menos propensos a loops de roteamento. Por outro
lado, os protocolos de estado de enlace exigem maior capacidade e memória da CPU, e
podem ser mais dispendiosos para implementar e oferecer suporte. A solução de problemas
de protocolos de estado de enlace é mais difícil que a dos protocolos de vetor distância.
Os protocolos a seguir são protocolos de roteamento de estado de enlace:
- OSPF (Open Shortest Path First)
- IS-IS (Intermediate System-to-Intermediate System)
- NLSP (NetWare Link Services Protocol)

Passos que o protocolo executa:


1- As atualizações ocorrem somente quando há uma modificação na rede.
2- As atualizações são enviadas para todos os roteadores da rede.
3- Para realizar o envio da atualização para toda a rede, existe um protocolo que
“inunda” a rede com a mensagem chamada de “flooding protocol”.
4- Quando dois nós se “descobrem”, durante a inicialização de um roteador, eles
trocam mensagens entre si para sincronizarem os seus bancos de dados. Depois de
os bancos de dados estarem iguais. A nova configuração é comunicada ao restante
da rede.
5- Os bancos de dados topológicos de todos os roteadores devem estar sempre iguais
após a convergência do algoritmo.

O roteador faz as seguintes tarefas:


1- Descobre quem são os vizinhos e qual o estado do enlace dos vizinhos.
2- Mede os custos associados aos diversos enlaces que possui.
3- Transmite as informações sobre os enlaces para todos os roteadores da rede.
4- Recebe o estado de todos os enlaces da rede.
5- Constrói um mapa completo da rede.
6- Constrói o melhor caminho para cada roteador da rede utilizando o algoritmo de
Dijkstra
Routing Information Protocol – RIP

19.2Kbps
B

A
T1 T1

T1

- Seleciona o caminho pelo cálculo de salto (hop count)

- Atualiza a tabela de roteamento a cada 30 segundos

- Máximo de 15 hop count

O RIP (Routing Information Protocol) foi o primeiro protocolo de roteamento padrão


desenvolvido para ambientes TCP/IP. O RIP foi desenvolvido originalmente para protocolos
XSN (Xerox Network System) e foi adotado pela comunidade IP no início dos anos 80. O RIP
ainda é usado comumente como um protocolo de roteamento interior, provavelmente porque
é fácil configurar e funciona em roteadores de todos os fornecedores importantes. O RIP
Versão 1 está documentado na RFC 1058. O RIP Versão 2 está documentado na RFC 1723.
O RIP é um protocolo de vetor distância que se caracteriza pela simplicidade e
facilidade de solução de problemas. O RIP transmite sua tabela de roteamento a cada 30
segundos. O RIP permite 25 rotas por pacote; assim, em redes grandes, são exigidos vários
pacotes para enviar a tabela de roteamento inteira. A utilização de largura de banda é uma
questão importante em grandes redes RIP que incluem links de baixa largura de banda. Para
evitar loops de roteamento durante a convergência, a maioria das implementações do RIP
inclui divisão do horizonte (Split Horizon) e um cronômetro de retenção (Hold Down).
Ele utiliza uma única métrica de roteamento (contagem de saltos) para medir a
distância até uma rede de destino. Essa limitação deve ser considerada durante o projeto de
redes que usam o RIP. A limitação significa que se existem vários caminhos até um destino,
O RIP só mantém o caminho com a menor quantidade de saltos, mesmo que outros
caminhos tenham uma largura de banda agregada mais alta, um retrato agregado mais
baixo, menor congestionamento e assim por diante.
Outra limitação do RIP é que a contagem de saltos não pode ir além de 15. Se um
roteador receber uma atualização de roteamento especificando que um destino está a 16
saltos de distância, o roteador purgará esse destino de sua tabela de roteamento.

Uma contagem de saltos igual 16 significa que a distância até o destino é infinita; em
outras palavras, o destino é inacessível.
A IETF (Internet Engineering Task Force) desenvolveu o RIP Versão 2 para atacar
alguns problemas de facilidade de escalonamento e de desempenho do RIP Versão 1. O RIP
Versão 2 acrescenta os seguintes campos Às entradas de rotas dentro de uma tabela de
roteamento:
• Route tag: distingue rotas internas que estão dentro do domínio de roteamento do RIP de
rotas externas que foram importadas de outro protocolo de roteamento ou de um sistema
autônomo diferente.
• Subnet mask: contém a máscara de sub-rede que é aplicada ao endereço IP para formar a
parte não relacionada ao host (prefixo) do endereço.
• Next Hop: especifica o endereço IP do próximo salta imediato para o qual devem ser
enviados os pacotes para o destino na entrada da rota.
As tags de rotas facilitam a mescla de rede RIP e não RIP. A inclusão da máscara
em uma entrada de rota fornece suporte para roteamento sem classes. O propósito do
campo do próximo salto é eliminar pacotes que estão sendo roteados através de saltos
extras. A especificação do valor 0.0.0.0 é útil quando o RIP não está em uso em todos os
roteadores de uma rede. Para ter um exemplo, veja o Apêndice A da RFC 1723.
O RIP Versão 2 também admite autenticação simples para frustrar os hackers que
enviam atualização de roteamento. O esquema de autenticação utiliza o espaço de uma
entrada de rota. Isso significa que só podem existir 24 entradas de rotas em uma mensagem,
quando a autenticação é usada. Atualmente a única autenticação aceita é uma senha
simples de texto comum.
Existem quatros técnicas para contornar o problema dos “loops” ou da “convergência
lenta”:
• Split Horizon – um gateway registra a interface sobre a qual ela recebe a
informação sobre uma dada rota e não propaga a sua informação sobre
esta rota de volta na mesma interface. As rotas que apontam para o
vizinho do gateway são omitidas.
• Hold Down – quando uma dada rota é removida, nenhuma outra rota nova
deve ser aceita para o mesmo destino durante um período de tempo (60s).
Desvantagem desta técnica é que durante este período, não são utilizadas
rotas nem caminho alternativos.
• Poison Reverse – quando uma conexão é removida, o gateway
responsável pela propagação desta rota retém as entradas por vários
períodos de atualização, e inclui um custo infinito no seu broadcast.
• Triggered Updates – força um gateway enviar uma mensagem de
broadcast imediatamente após receber uma noticia de falha de conexão,
ao invés de esperar o broadcast periódico.
Interior Gateway Routing Protocol - IGRP

19.2 Kbps 19.2 Kbps

Origem

Destino

- Largura da banda
- Atraso
- Confiabilidade
- Carga
- MTU

A Cisco Systems, desenvolveu o protocolo de vetor de distância IGRP (Interior


Gateway Routing Protocol) em meados da década de 1980 para atender às necessidades
dos clientes que exigiam um protocolo de roteamento interior robusto e escalável. Muitos
clientes migraram suas redes RIP para IGRP, a fim de superar a limitação de 15 saltos do
RIP e seu uso de apenas uma métrica (contagem de saltos). O cronômetro de atualização de
90 segundos de IGRP para envio de atualizações de rotas também foi mais atrativo que o
cronômetro de atualização de rotas de 30 segundos do RIP pra clientes interessados na
utilização da largura de banda.
O IGRP usa uma métrica composta, baseada nos seguintes fatores:
• Largura de banda. A largura de banda do segmento de largura de banda mais baixa no
caminho. Um administrador de redes pode configurar a largura de banda ou usar o valor
padrão, baseado no tipo de link (a configuração é recomendada para links de WANS de alta
velocidade, se o valor de largura de banda padrão é menor que a velocidade real).
• Retardo. Uma soma de todos os retardos para interfaces de saída no caminho. Cada
retardo é inversamente proporcional à largura de banda de cada interface de saída. O
retardo não é dinamicamente calculado.
• Confiabilidade. O pior valor de confiabilidade em qualquer link. Como padrão, a
confiabilidade não é usada, a menos que o comando metric weights seja configurado, nesse
caso, a confiança é calculada dinamicamente, com base na capacidade de enviar e receber
pacotes keepalive.
• Carga. A carga mais pesada em qualquer link. Como padrão à carga não é usado, ameno
que o comando metric weights seja configurado; nesse caso, a carga é calculada
dinamicamente.
O IGRP permite o balanceamento de carga sobre os caminhos de métrica desigual.
O recurso de variação do IGRP significa que, se um caminho for três vezes melhor que
outro, o melhor caminho poderá ser três vezes mais usado que o outro caminho.
Ele possui um algoritmo melhor que o RIP para anunciar e selecionar uma rota
padrão. O RIP permite a um administrador de redes configurar uma rede padrão, que é
identificada com a rede 0.0.0.0. Por outro lado, o IGRP varre todas as rotas candidatas a
padrão real. Esse recurso permite maior flexibilidade e melhor desempenho que a rota
padrão estática do RIP.
Para reduzir o tempo de convergência, o IGRP admite atualizações ativadas. Um
roteador envia uma atualização ativada é uma nova tabela de roteamento, em resposta a
uma alteração – por exemplo, a falha de link. Ao receberem uma atualização ativada, outros
roteadores podem enviar atualizações ativadas. Uma falha faz uma onda de mensagens de
atualização se propagar por toda a rede, acelerando assim o tempo de convergência e
reduzindo risco de loops. É possível que um roteador que ainda não recebeu uma
atualização ativada possa emitir uma atualização normal justamente na hora errada, fazendo
uma rota ruim ser reinserida nas tabelas de roteamento dos vizinhos. Para evitar esse tipo de
problema, o padrão é de 280 segundos, longo o suficiente para permitir que uma onda de
atualizações ativadas se espalhe por uma grande inter-rede. O cronômetro de retenção pode
ser diminuído (ou até mesmo eliminado) para acelerar a convergência, desde que IGRP
também implemente a divisão do horizonte contravenenos são enviados se a métrica de uma
rota aumenta por um fator de 1.1 ou maior, indicando um possível loop que não foi resolvido
por outros métodos de prevenção contra loops.
Open Shortest Path First - OSPF
O protocolo OSPF foi elaborado por um grupo de trabalho da IETF (Internet
Engineering Task Force) com o propósito de atender às exigências de roteamento de
grandes redes, ou seja, um IGP (Interior Gateway Protocols) para sistemas autônomos de
porte. É um protocolo que utiliza o algoritmo Link State e compreende uma série de
facilidades adicionais listados a seguir, as quais permitem diminuir a sobrecarga necessária
para a manutenção da topologia atualizada de uma rede:
- Roteamento levando em consideração o tipo de serviço;
- Balanceamento de carga entre rotas de mesmo tamanho;
- Divulgações e informações recebidas de exterior gateways. O formato da mensagem
permite distinguir informações recebidas de fontes externas daquelas recebidas dentro do
SA (Sistema Autônomo).
O protocolo OSPF é baseado nas mensagens: Hello, Database Description, Link
Status Request e Link Status Update. Quando um gateway OSPF é inicializado, sua primeira
ação é contatar os gateways vizinhos, através de mensagens Hello. Os gateways trocam
mensagens entre si para eleger o gateway mestre (DR – Designated Router). Este gateway
torna-se responsável pela notificação de informações de roteamento a todos os gateways
presentes na rede (gateways secundários). A figura de um gateway mestre, com a função de
gerador/distribuidor de informações, reduz significativamente os tráfegos relativos às
mensagens de roteamento, que são trocadas somente entre o gateway mestre e os demais
gateways secundários. As informações de roteamento trocados entre gateways, através da
mensagem Database Description, indicam o estado e o custo associado às interfaces e aos
gateways vizinhos. Estas mensagens são confirmadas pelos gateways que recebem. A
mensagem Link Status Request é usada por um gateway na requisição de dados atualizados
a outro gateway. Na mensagem Link Status Update é usada por um gateway no envio de
informações sobre o estado de seus enlaces.
6. DHCP
O DHCP tem como principal vantagem, a sua capacidade de configuração
automática de estações, sem necessidade de criação de uma tabela de configuração para
cada máquina. Desta forma, um administrador de rede pode configurar as diversas estações
IP existentes na rede de modo genérico, sem especificar uma tabela para cada uma.
O DHCP tem a capacidade de distribuir endereços de forma dinâmica para as estações,
usando três métodos de fornecimento distintos:
• Empréstimo (leasing) de endereço aleatório por tempo limitado: Neste tipo de
fornecimento de endereço IP, o servidor fornece ao cliente um endereço IP obtido de
um conjunto pré-definido de endereços (p.ex. 192.168.0.10 a 192.168.0.90) por um
tempo pré-determinado.

• Empréstimo de endereço aleatório por tempo infinito: Neste tipo, o servidor associa
um endereço obtido do conjunto de endereços a um cliente na primeira vez que este
cliente contatar o servidor. Nas demais vezes, seremos fornecidas o mesmo
endereço a este cliente (associado através do endereço MAC), mesmo que as duas
máquinas sejam desligadas e ligadas. Este método simplifica a atribuição de
endereços para uma quantidade grande de máquinas.

• Empréstimo de endereço fixo: Neste tipo de fornecimento, o DHCP opera como o


BOOTP, onde há a associação explícita entre o endereço IP e o endereço MAC da
máquina origem, estipulado em uma tabela de configuração.

Processo de entrega do endereço IP


Onde:
DHCP DISCOVER - Enviado pelo cliente para solicitar uma resposta de algum servidor
DHCP
DHCP OFFER - Oferta de endereço IP de um servidor para um cliente. Um cliente pode
receber várias ofertas de diferentes servidores DHCP
DHCP REQUEST - Requisição de um endereço específico daqueles oferecidos pelos
servidores. É enviado por broadcast apesar de ser endereçado a um único servidor para que
os demais tomem conhecimento da escolha.
DHCP ACK - Confirmação do servidor sobre a atribuição do endereço para a requisição do
cliente.

Opções DHCP
As opções DHCP têm o formato abaixo:
CODE LENGTH VARIÁVEL ...

O código indica o tipo da opção. Os comandos DHCP têm sempre o código 53 e tamanho 1,
sendo o próximo byte o código específico do comando:
1 = DHCPDISCOVER
2 = DHCPOFFER
3 = DHCPREQUEST
4 = DHCPDECLINE
5 = DHCPPACK
6 = DHCPNACK
7 = DHCPRELEASE
8 = DHCPINFORM
As opções de DHCP informam dados úteis para as diversas camadas TCP/IP, desde o nível
de Rede ao Nível de Aplicação. Enumeram-se algumas abaixo:
Opções Básicas:
Code Param Descrição
0 Pad - alinhamento
255 Fim das opções
1 MASK Máscara a ser utilizada pela estação
3 IP1, IP2, ... Lista de roteadores default para a estação
6 IP1, IP2, … Lista de servidores de DNS
9 IP1, IP2, … Lista de servidores de impressão LPR
12 nome Nome da máquina
13 número Tamanho do arquivo de boot
15 nome Nome do domínio
16 IP Endereço do servidor de swap
17 nome Path do diretório / da máquina
Opções de DHCP
Code Param Descrição
50 IP Endereço IP requerido preferencialmente
51 tempo (s) Tempo de empréstimo de endereço
53 mensagem Mensagem DHCP
54 IP Identificação do servidor DHCP remetente
55 COD1, … Cliente requisita opções ao servidor
56 texto Mensagem de erro
57 número Tamanho máximo da mensagem DHCP
58 tempo T1 - Tempo de espera para estado RENEWING
59 tempo T2 - Tempo de espera para estado REBINDING

Opções de IP
Code Param Descrição
19 1/0 Habilita IP Forwarding na estação
20 1/0 Habilita Source Routing na estação
22 número Tamanho máximo do datagrama que cliente deve
receber
23 número Tamanho do TTL default da máquina
26 número MTU da interface
27 1/0 Todas as interfaces tem o mesmo MTU ?
28 IP Endereço de broadacst da rede
29 1/0 Realizar ICMP Mask Discovery ?
31 1/0 Realizar ICMP Router Discovery ?
33 IP1/DEST1, IP2/DEST2 Rotas estáticas
7. Resolução de Nomes

7.1 DNS (Domain Name System)


Nos primórdios da Internet, quando apenas poucos equipamentos possuíam acesso
a grande rede, a resolução de nomes era feita através da troca de arquivos hosts entre os
sistemas conectados. Com a expansão da Internet, este método tornou-se inviável, devido
ao grande número de atualizações nas redes, pois a maior parte do tráfego da Internet
passou a ser a transferência deste arquivo.
Para solucionar este problema, foi criado o sistema de DNS, que consiste em uma
estrutura hierárquica. Nesta, a raiz é constituída por 13 servidores, chamados de “root
servers”, responsáveis por redirecionar o tráfego de uma consulta para servidores
responsáveis por países. Por exemplo, no Brasil, a instituição responsável pela hospedagem
e manutenção de domínios de Internet é a Fapesp (http://registro.br). Nesta, constam um
cadastro de domínios e, para cada um, uma entrada indicando onde devem ser pesquisadas
as informações de DNS para um determinado domínio. Estes servidores são mantidos pelo
proprietário do domínio, ou muitas vezes, hospedados por empresas de prestação de
serviços.
A estrutura de nomes na Internet tem o formato de uma árvore invertida onde a raiz
não possui nome. Os ramos imediatamente inferiores à raiz são chamados de TLDs (Top-
Level Domain Names) e são por exemplo: .com, .edu., .org, .gov, .net, .mil, .br, .fr, .us, uk,
etc… Os TLDs que não designam países são utilizados nos EUA. Os diversos países
utilizam a sua própria designação para as classificações internas.
Cada ramo completo até a raiz como, por exemplo, puc-rio.br, acme.com.br,
nasa.gov, e outros são chamados de domínios. Um domínio é a área administrativa
englobando ele próprio e os subdomínios abaixo dele. Por exemplo, o domínio .br engloba
todos os subdomínios do Brasil. O domínio acme.com.br tem a responsabilidade por todos
os domínios abaixo dele.
A delegação de responsabilidade de um domínio é a capacidade do DNS de
simplificar a administração. Ao invés do domínio .br ser responsável diretamente por todos
os seus sub-domínios e os que vierem abaixo deles, há na verdade uma delegação na
atribuição de nomes para os diversos sub-domínios. No exemplo acima, a empresa Acme
possui a responsabilidade de administração do domínio acme.com.br.
A hierarquia de domínios pode ser observada na figura abaixo:

. Raiz

br uk tw ... Zona Países (Registro.br)

co net mil Área de Atuação

Domínio (cliente)
meudominio.co dominio2.com.b

- Implementação do DNS
Um servidor de DNS pode ser responsável pela resolução de uma ou mais nomes de
domínios (acme.com.br, presid.acme.com.br). Seu escopo de atuação define a Zona de
atuação de um servidor DNS. Por exemplo, para resolver o domínio acme.com.br e seus
sub-domínios existem três zonas: a primeira resolve o próprio domínio principal e os
subdomínios mktg.acme e vendas.acme; a segunda resolve os domínios engen.acme e
prod.engen.acme; e a terceira resolve o domínio lab.engen.acme. Cada zona possui um
servidor de nomes principal ou primário, que mantêm em tabelas o mapeamento dos nomes
em endereços IP daquele domínio. Uma zona pode ter servidores secundários que possam
substituir os primários em caso de falha. Os secundários, entretanto não possuem
fisicamente as tabelas de mapeamento, mas carregam regularmente as informações do
primário.
Veja figura abaixo:

br

com

acme Zona

Zona engen mktg vendas

lab prod B C A B C A B

C D E F G
Zona
Por outro lado, a representação do domínio reverso .in-addr.arpa para uma das
máquinas de prod.engen.acme.com.br é visto abaixo:

arpa serv1.prod.engen.acme.com.br = br
200.18.100.2
in-addr acme

1 2 3 ... 200 ... 254

engen
1 2 ... 18 ... 254

prod B C
1 2 ... 100 ... 254

serv1 G
1 2 3 ... 253 254

serv1.prod.engen.acme.com.br

A resolução de um nome é realizada de forma recursiva, consultando diversos


servidores de nome até chegar àquele responsável pelo domínio consultado. Por exemplo, a
resolução do endereço www.lab.acme.com.br, será realizado pelo servidor da zona
responsável por lab.acme.com.br. A figura abaixo ilustra o processo de consulta:

NS2

com
br org
NS3 acme
...

4 3 2
com puc
5
6 NS1

NS4
acme telemidia
7 8
1
www resolver odeon
www =
9 200.18.1.1
7.2 Resolução de Nomes utilizando o arquivo Hosts
Um sentido comum para resolver um nome de computador para um endereço IP é
utilizar uma base de dados armazenada sobre o próprio computador. Este arquivo irá conter
o endereço IP e o nome do computador. Sobre o sistema Unix / Linux, este arquivo se
encontra em /etc/hosts. Sobre sistemas baseados em Windows 2000, ele se encontra em
\SystemRoot\system32\drivers\etc.

Exemplo do conteúdo do arquivo HOSTS:


#
# Table of IP addresses and host names
#
127.0.0.1 localhost
131.107.34.1 router
157.55.45.121 server1.central.reskit.com s1
8. Aplicações
As aplicações, no modelo TCP/IP, não possuem uma padronização comum. Cada
camada possui um RFC próprio. O endereçamento das aplicações é feito através de portas,
por onde são passadas as mensagens.
A comunicação entre as máquinas da rede é possibilitada através de primitivas de
acesso das camadas UDP e TCP. Antes de iniciar o estabelecimento da conexão, são
executadas as primitivas socket, que cria um ponto terminal de comunicação, e bind que
registra o endereço da aplicação (número da porta). Para estabelecer a conexão (com o
protocolo TCP), a aplicação servidora executa uma primitiva listen enquanto que o cliente
executa connect. A aplicação servidora usa o accept para receber e estabelecer a conexão.
Já o UDP, como não é orientado à conexão, logo após o socket e o bind, utiliza as primitivas
sendto e recvfrom.

Telnet
É um protocolo que permite a operação em um sistema remoto através de uma
sessão de terminal. Com isso, a aplicação servidora recebe as teclas acionadas no terminal
remoto como se fosse local. Utiliza a porta 23 TCP.
O Telnet oferece três serviços:
1. Definição de um terminal virtual de rede;
2. Negociação de opções (modo de operação, eco, etc.);
3. Transferência de dados.

FTP (File Transfer Protocol)


Provê serviços de transferência, renomeação e eliminação de arquivos, além de
criação, modificação e exclusão de diretórios. Para sua operação, são mantidas duas
conexões: uma de dados e outra de controle. Não implementa segurança, o que deixa para o
TCP, excetos as aquisições de senhas de acesso a determinados arquivos.
As transferências de arquivos podem ser no modo TEXTO, onde há conversões de
codificação para o sistema destinatário, e o modo BINÁRIO, onde não há nenhuma
conversão e todos os bytes são transferidos como estão.

SNMP (Simple Network Management Protocol)


É utilizado para trafegar as informações de controle da rede. De acordo com o
sistema de gerenciamento da arquitetura TCP/IP, existem o agente e o gerente que coletam
e processam respectivamente, dados sobre erros, problemas, violação de protocolos, dentre
outros.
Na rede existe uma base de dados denominada MIB (Management Information
Base) onde são guardadas informações sobre hosts, gateways, interfaces individuais de
rede, tradução de endereço, softwares relativos ao IP, ICMP, TCP, UDP, etc. Através do
SNMP podem-se acessar os valores dessas variáveis, receberem informações sobre
problemas na rede, armazenar valores, todos através da base do MIB.

SMTP (Simple Mail Transfer Protocol)


Implementa o sistema de correio eletrônico da internet, provê serviços de envio de
mensagens do usuário.
O SMTP divide a mensagem em duas partes: corpo e cabeçalho que são separados
por uma linha em branco. No cabeçalho existe uma seqüência de linhas que identificam o
emissor, o destinatário, o assunto, e algumas outras informações opcionais.

RPC (Remote Procedure Call)


Implementa mecanismos de procedimentos de chamada remota, úteis no
desenvolvimento de aplicações cliente/servidor com um nível maior de abstração.
Uma aplicação utiliza o RPC para fazer interface das suas funções. Assim as
funções chamadas pelas aplicações são repassadas ao RPC que monta uma mensagem
correspondente e envia para o processamento remoto. O servidor, então processa as
mensagens, executa a rotina e devolve os resultados para o RPC da estação, que
reestrutura os dados e repassa à aplicação. Tudo isso implementa uma função virtualmente
local, transparente para a aplicação.
9. Troubleshooting Tools and Strategies

Utilitários de diagnósticos

IPCONFIG
Mostra os parâmetros de configuração do protocolo TCP/IP do computador. Quando
utilizado com a opção /all, este irá mostrar todos os detalhes de todas as interfaces do
computador.
Se a configuração foi inicializada, o endereço IP, máscara de rede e o default
gateway devem aparecer. Se houver endereço IP duplicado, a máscara de rede aparecerá
da seguinte maneira: 0.0.0.0
C:\>ipconfig /all
Windows 2000 IP Configuration
Host Name . . . . . . . . . . . . : DAVEMAC2
Primary DNS Suffix . . . . . . . : mytest.microsoft.com
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : microsoft.com

Ethernet adapter Local Area Connection 2:


Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : 3Com EtherLink III EISA (3C579-TP)
Physical Address. . . . . . . . . : 00-20-AF-1D-2B-91
DHCP Enabled. . . . . . . . . . . : No
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 10.57.8.190
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . :
DNS Servers . . . . . . . . . . . : 10.57.9.254
Primary WINS Server . . . . . . . : 10.57.9.254

Ethernet adapter Local Area Connection:


Connection-specific DNS Suffix . :
Description . . . . . . . . . . . : AMD Family PCI Ethernet Adapter
Physical Address. . . . . . . . . : 00-80-5F-88-60-9A
DHCP Enabled. . . . . . . . . . . : No
IP Address. . . . . . . . . . . . : 199.199.40.22
Autoconfiguration Enabled . . . . : Yes
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 199.199.40.1
DNS Servers . . . . . . . . . . . : 199.199.40.254
Primary WINS Server . . . . . . . : 199.199.40.254
PING
Após verificar as configurações do host através do IPCONFIG, use o comando PING
para testar a conectividade. Este é uma ferramenta de diagnóstico, para verificar se o TCP/IP
está configurado corretamente e também pode ser usado para testar hosts remotos. O
utilitário PING usa o ICMP (Internet Control Message Protocol) echo request e echo reply. A
sintaxe do comando é ping ip_endereço. A tabela a seguir mostra os parâmetros do
comando:

Opção Descrição
-t Continua “pingando” até que o usuário interrompa.
-a Transforma endereços em nomes.
-n contador Número de mensagens ECHO REQUEST.
-l tamanho Tamanho do Datagrama.
-f Não fragmenta os Datagramas.
-i TTL Pinga com este TTL.
-v TOS Use este tipo de serviço.
-r contador Faça Record Route para o número de roteadores especificado em “contador”.
-s contador Faça Time Stamp para o número de roteadores especificado em “contador”.
-j lista Faça Loose Source Root através da rota especificada em “lista”.
-k lista Faça Strict Route através da rota especificada em “lista”.
-w tempo Aguarde “tempo” milissegundos para cada resposta.

Para verificar se uma estação está respondendo, pode usar:

C:\Windows>ping 192.168.1.1
Reply from 192.168.1.102: bytes=32 time<10ms TTL=128
Reply from 192.168.1.102: bytes=32 time<10ms TTL=128
Reply from 192.168.1.102: bytes=32 time<10ms TTL=128
Reply from 192.168.1.102: bytes=32 time<10ms TTL=128
ARP

Mostra o cache local utilizado para resolver o endereçamento IP para o endereço MAC.

C:\Windows> arp –a
Interface: 192.168.1.100
Internet Address Physical Address Type
192.168.1.200 00-20-18-34-ad-5f Dynamic

TRACERT

Verifica a rota utilizada para conexão com um computador remoto.

C:\WINDOWS>tracert www.terra.com.br -d

Tracing route to www.terra.com.br [200.176.3.142]

over a maximum of 30 hops:

1 <1 ms <1 ms <1 ms 192.168.1.1

2 1 ms 3 ms 1 ms 200.102.202.33

3 15 ms 13 ms 9 ms 200.180.143.226

4 11 ms 32 ms 12 ms 201.10.254.137

5 10 ms 10 ms 9 ms 201.10.225.30

6 116 ms 135 ms 66 ms 200.180.143.214

7 137 ms 113 ms 87 ms 200.176.255.22

8 12 ms 14 ms 30 ms 200.176.3.142

Trace complete.
ROUTE

Comando utilizado para ver ou modificar tabela de roteamento. A tabela a seguir mostra
a sintaxe do comando:

Print Mostra uma lista das rotas correntes conhecidas pelo host.

Add Adiciona rotas sobre a tabela de roteamento.

Delete Remove rotas da tabela de roteamento

NETSTAT
Mostram estatística e estado das conexões TCP/IP. Alguns exemplos de saídas netstat:

C:\>netstat -e
Interface Statistics

Received Sent

Bytes 372959625 123567086


Unicast packets 134302 145204
Non-unicast packets 55937 886
Discards 0 0
Errors 0 0
Unknown protocols 1757381

C:\>netstat -an

Active Connections

Proto Local Address Foreign Address State


TCP 0.0.0.0:42 0.0.0.0:0 LISTENING
TCP 0.0.0.0:88 0.0.0.0:0 LISTENING
TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
TCP 0.0.0.0:389 0.0.0.0:0 LISTENING
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 0.0.0.0:593 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1038 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1041 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1048 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1054 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1077 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1080 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1088 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1092 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1723 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3268 0.0.0.0:0 LISTENING
TCP 10.99.99.1:53 0.0.0.0:0 LISTENING
TCP 10.99.99.1:139 0.0.0.0:0 LISTENING
TCP 10.99.99.1:389 10.99.99.1:1092 ESTABLISHED
TCP 10.99.99.1:1092 10.99.99.1:389 ESTABLISHED
TCP 10.99.99.1:3604 10.99.99.1:135 TIME_WAIT
TCP 10.99.99.1:3605 10.99.99.1:1077 TIME_WAIT
UDP 0.0.0.0:42 *:*
UDP 0.0.0.0:88 *:*
UDP 0.0.0.0:123 *:*
UDP 0.0.0.0:135 *:*
UDP 0.0.0.0:389 *:*
UDP 0.0.0.0:445 *:*
UDP 0.0.0.0:1073 *:*
D:\>netstat -s

IP Statistics
Packets Received = 3175996
Received Header Errors = 0
Received Address Errors = 38054
Datagrams Forwarded = 0
Unknown Protocols Received = 0
Received Packets Discarded = 0
Received Packets Delivered = 3142564
Output Requests = 3523906
Routing Discards = 0
Discarded Output Packets = 0
Output Packet No Route = 0
Reassembly Required = 0
Reassembly Successful = 0
Reassembly Failures = 0
Datagrams Successfully Fragmented = 0
Datagrams Failing Fragmentation = 0
Fragments Created = 0

ICMP Statistics

Received Sent
Messages 462 33
Errors 0 0
Destination Unreachable 392 4
Time Exceeded 0 0
Parameter Problems 0 0
Source Quenchs 0 0
Redirects 0 0
Echos 1 22
Echo Replies 12 1
Timestamps 0 0
Timestamp Replies 0 0
Address Masks 0 0
Address Mask Replies 0 0

TCP Statistics

Active Opens = 12164


Passive Opens = 12
Failed Connection Attempts = 79
Reset Connections = 11923
Current Connections = 1
Segments Received = 2970519
Segments Sent = 3505992
Segments Retransmitted = 18

UDP Statistics

Datagrams Received = 155620


No Ports = 16578
Receive Errors = 0
Datagrams Sent = 17822
NBTSTAT

Verifica o estado das conexões NETBIOS sobre TCP/IP, atualiza o arquivo


LMHOSTS no cache.

NSLOOKUP

Verifica problemas com resolução de nomes completos (DNS).

C:\>nslookup
*** Can't find server name for address 192.168.1.131: Non-existent domain
Default Server: UnKnown
Address: 192.168.1.131

> set q=mx


> dominio.com.br
Server: UnKnown
Address: 192.168.1.131

Non-authoritative answer:
dominio.com.br MX preference = 10, mail exchanger = mail.dominio.com.br

dominio.com.br nameserver = dns1.procempa.com.br


dominio.com.br nameserver = dns2.procempa.com.br
mail.dominio.com.br internet address = 200.248.156.20

Network Monitor
O Network Monitor é uma ferramenta para monitorar problemas complexos de rede.
Esta ferramenta monitora e captura o tráfego da rede para ser analisado. Ele captura todos
os pacotes de entrada e saída de um adaptador de rede.
Filtros de captura podem ser definidos para especificar quais frames serão salvos
para serem analisados. Estes filtros podem ser definidos baseados sobre a origem e destino
do endereço MAC.
Referências Bibliográfica

Protocolo TCP/IP. Obtido em http://www.modulo.com

Roteamento na Internet. Obtido em http://www.gta.ufrj.br/~vidal/ip/indice.html

RIP – Routing Information Protocol (RFC 1058). Obtido em

http://penta2.ufrgs.br/rc952/lisiane/lis23.html

Protocolo TCP/IP – Uma visão ampliada. Obtido em

http://www.lansewans.com.br/html/tutoriais/tcpip/index.html

Roteamento na Internet. Obtido em http://www.gta.ufrj.br/~vidal/ip/indice.html

Falavigna Ciro Justo – Curso Avançado de Roteadores Cisco – Gruppen

Diógenes, Yuri - Certificação CISCO CCNA 2.0

Lammle, Todd - Porter, Donald - Chellis, James - CCNA Study Guide, Exam 640-507

2000 Microsoft Corporation - White Paper – Introduction to TCP/IP, Microsoft Windows 2000

Server

James Kurose – Redes de Computadores e a Internet

Catherine Paquet, Diane Teare – Construindo Redes Escalaveis

Mark Poplar, Jason Waters – Routing and Switching

IPv6. Obtido em http://ipv6.br

Você também pode gostar