Escolar Documentos
Profissional Documentos
Cultura Documentos
TCP-IP
Básico
V.2.0
abril de 2004
AVISO IMPORTANTE
Esta apostila é parte integrante do Curso de TCP-IP Básico,
desenvolvido pela TopMaster para a Embratel.
O objetivo deste documento é apresentar uma versão textual
do conteúdo do curso online para a conveniência do aluno.
Sua leitura não substitui o estudo online, pois este oferece interações e
animações que não podem ser representadas no formato impresso.
Com a instalação de um escritório na Europa e outro nos Estados Unidos, surgiu o seguinte
problema: as soluções normalmente oferecidas para WAN e MAN não seriam mais capazes de
atender às necessidades de interligação de suas redes. O custo de uma conexão dedicada entre
escritórios localizados em continentes diferentes seria muito alta e proibitiva.
Como, então, permitir a interligação de redes tão geograficamente separadas com o menor custo
possível?
Cada máquina, utilizando seu endereço IP e a máscara de rede, consegue determinar se um certo
pacote tem como destino um host em sua própria rede.
Se a máquina determinar que o endereço IP não pertence à sua própria rede, o pacote será enviado
diretamente para o roteador.
O roteador consulta a sua própria tabela de roteamento e determina para qual roteador deverá
repassar o pacote. Essa determinação poderá ser feita em função do "vector-state", ou seja, enviar
pelo caminho que tiver o menor número de saltos possíveis, ou em função do "link-state", ou seja,
do estado dos links (ativos ou inativos) e da métrica ou custo de se enviar um pacote por aquele
caminho.
3.1.1 – Descrição
Quando se transcende o nível da rede local e pretende-se interligar redes heterogêneas e distintas,
a tecnologia utilizada em uma rede específica deixa de ser relevante. Possibilitar a interligação é
muito mais importante do que a tecnologia utilizada.
Essa interligação, no caso do TCP/IP, foi concebida utilizando-se três grupos de serviços que
obedecem a uma dependência hierárquica.
No nível mais baixo existem os serviços de entrega de pacotes sem conexão; no nível
intermediário, dependente do nível mais baixo, existem os serviços de transporte confiável e
no nível mais alto, dependente dos outros dois níveis, temos os serviços de aplicativos.
O protocolo IP define o nível mais baixo da interligação em redes TCP/IP, o serviço de entrega de
pacotes sem conexão.
• Best-effort:
É chamado de best-effort porque o software de interligação de redes faz uma
tentativa séria para entregar os pacotes.
• Não-confiável:
É chamado de não-confiável pois a entrega não é garantida.
Além disso, o protocolo IP também é responsável por três definições utilizadas durante a
transmissão dos pacotes:
• Roteamento:
Ao realizar o roteamento, o protocolo está escolhendo o caminho através do qual
os dados serão enviados.
Veja abaixo uma descrição do conteúdo do cabeçalho IP, seus campos e a organização
destes.
0 8 16 24 31
VERS HLEN TIPO DE SERVIÇO COMPRIMENTO TOTAL
DESLOCAMENTO DO
IDENTIFICAÇÃO FLAGS
FRAGMENTO
TTL PROTOCOLO SOMA DA VERIFICAÇÃO DO CABEÇALHO
ENDEREÇO IP DE ORIGEM
ENDEREÇO IP DE DESTINO
OPÇÕES IP (SE HOUVER) PREENCHIMENTO
DADOS
DADOS
...
VERS: É um campo de quatro bits que especifica a versão do protocolo IP utilizada para
criar o datagrama. O objetivo é garantir que máquinas interpretarão apenas datagramas
que utilizem o mesmo protocolo que o seu, evitando que o conteúdo do datagrama seja
comprometido.
TIPO DE SERVIÇO: A maioria dos roteadores e hosts ignora o tipo de serviço, ainda
que o seu conceito seja importante, já que este campo implementa mecanismos para
determinar a precedência de um determinado datagrama sobre outros (por exemplo,
datagramas de controle teriam precedência sobre datagramas de dados). Além disso,
0 1 2 3 4 5 6 7
Precedência Latência Throughput Confiabilidade Reservado
000: tráfego de
rotina
001: prioridade
010: imediato
011: flash
100: flash
override Normal (0) Normal (0) Normal (0) Reservado para
101: Baixa (1) Alto (1) Alta (1) uso futuro
crítico/correção de
erro
110: controle
inter-redes
111: controle de
rede
Como este campo possui 16 bits, o maior número que pode representar é 216, ou seja, o
tamanho máximo do datagrama será de 65.535 octetos.
0 1 2
Reservado Não fragmentar Mais fragmentos
Se for (1), impede que o pacote Será (0) apenas no último
seja fragmentado fragmento
TTL: Este campo especifica quanto tempo, em segundos, o datagrama pode permanecer
no sistema de interligação em redes antes que ele seja descartado pelo sistema.
O objetivo é impedir que datagramas fiquem circulando pelo sistema mesmo que todo o
sistema de entrega de pacotes tenha sido comprometido.
É importante lembrar que este campo é utilizado para determinar a validade do cabeçalho
apenas, e não dos dados presentes na área de dados! A responsabilidade por assegurar a
integridade dos dados pertence aos protocolos de nível mais alto.
OPÇÕES IP: Estes campos de formato e tamanho variáveis podem conter uma série de
informações opcionais sobre o datagrama, tais como hora ou rota de origem. Como
raramente são utilizados, uma análise detalhada está fora do escopo deste curso.
Um exemplo muito conhecido é o caso do IP sobre Ethernet, cujo quadro tem um tamanho
máximo (MTU - Maximum Transmission Unit) de 1500 bytes.
Neste caso, um recurso usado pelo IP (e por vários outros protocolos) é o da fragmentação e
remontagem.
O roteador verifica o tamanho máximo que pode ser usado numa sub-rede. Datagramas com
tamanhos maiores deverão ser, então, fragmentados.
Isso significa que cada fragmento terá o mesmo formato que o datagrama original. A única
diferença é que campos especiais no cabeçalho IP indicam que o datagrama é um fragmento e
qual é a sua posição dentro do datagrama original.
Dessa forma, com base no conteúdo dos campos Identification, Flags e Fragment Offset, o
receptor consegue remontar o datagrama original.
Cada datagrama IP enviado por uma máquina possui um Identification diferente. Quando o
datagrama deve ser fragmentado, o valor deste campo se mantém o mesmo em cada fragmento.
• Do not Fragment, que informa que o datagrama não deve ser fragmentado. Se
não for possível transportar sem essa operação, deve ser descartado pelo roteador.
Essa opção pode ser usada para se determinar o tamanho máximo que pode ser
transportado por uma rede.
Caso o roteador resolva descartar o datagrama, deve informar o emissor através de ICMP.
O protocolo ICMP é responsável por emitir mensagens quando acontece algum erro. Esse
protocolo é explicado em detalhes na seção "Protocolos Intermediários de Controle".
O campo Offset determina a posição relativa deste fragmento em relação ao datagrama original.
Como o campo Flags, consumiu 3 bits (um é reservado).
Cabe lembrar que, comumente, por motivos de desempenho dos roteadores, é função única e
exclusiva do receptor a reconstrução do datagrama.
A idéia é simples e importante: toda vez que uma máquina injeta um datagrama na interligação
em redes, ela estabelece um tempo máximo de vida para o datagrama. Os roteadores e hosts que
processam datagramas precisam decrementar o campo TTL à medida que o tempo passa e
remover o datagrama da interligação em redes quando seu tempo expira.
Quando o valor do TTL chegar a zero, o datagrama é descartado e uma mensagem será
enviada ao emissor, através do protocolo ICMP. O objetivo de toda esta operação é evitar
que um erro nas tabelas de roteamento permita que alguns datagramas fiquem circulando
eternamente pela rede.
Dessa forma, é necessário utilizar um método que identifique, de forma única, cada computador
que se acopla à rede.
Como veremos a seguir, o endereço IP possui informações tanto sobre a rede quanto sobre o
host nessa rede. Assim sendo, o endereço IP não especifica um computador individual mas sim
uma conexão à rede!
Dessa forma, se um roteador estiver conectando duas redes diferentes, ele terá dois endereços
IP diferentes, um para cada conexão de rede.
3.2.1 – ClassFull
O endereço IP é um número formado por 32 bits na forma de quatro octetos binários, que são
usados para identificar um host em uma rede TCP/IP.
Exemplo:
• Network ID
• Host ID
O Network ID, que constitui a primeira parte, identifica a rede e todos os equipamentos
pertencentes a ela (que requerem o mesmo Network ID).
Exemplo: Uma rede em que o endereço IP é 200.255.33.z poderia ter hosts com os números
200.255.33.2 e 200.255.33.3.
A diferença entre as classes é o número de bits utilizados para identificar a rede (Network
ID) e o número utilizado para identificar o host (Host ID).
Importante!
Pela definição da RFC-950, nunca podemos ter todos os campos de hosts com
todos os bits em 1 ou em 0, pois são endereços reservados para broadcast e
endereços de rede.
Quando temos a seguinte notação, 123.0.0.0 estamos nos referindo a rede 123. Esta
notação serve para facilitar as definições de rede. É mais fácil entender que 172.255.0.0 é
uma rede, do que escrever 172.255.
CLASSE A:
A Classe A é constituída de 8 bits para o Network ID e 24 bits para Host
ID. O primeiro campo de rede vai de 1 até 126, totalizando 126 redes
classe A.
Os campos de host podem variar de 0 a 255, tendo cada rede 65.534 hosts.
CLASSE C:
A Classe C é constituída de 24 bits para Network ID e 8 bits para Host
ID. O primeiro campo de rede vai de 192 até 223, totalizando 2.097.152
redes classe C.
Os campos de host podem variar de 1 a 254, tendo cada rede 254 hosts.
CLASSE D:
Uso reservado.
CLASSE E:
Uso reservado.
3.2.2.1 – Sub-redes
O que é uma sub-rede?
Uma sub-rede é o segmento de uma rede TCP/IP que usa endereços IP derivados de um
único Network ID, que passa a ser conhecido como o subnet ID.
Exemplo: A Embratel fornece um subconjunto de uma classe C para seus novos clientes de
acesso dedicado à Internet.
O cliente passa a ter 64 endereços disponíveis.
Para melhor aproveitar os endereços disponíveis, muitas redes são divididas em sub-redes
(subnets). Essa prática é comum quando as redes envolvidas são muito grandes.
Quando isso acontece, o endereço da máscara de rede também deve ser alterado de modo
a refletir as sub-redes.
A máscara de rede classfull é usada em redes TCP/IP que não estão divididas em
sub-redes. Todos os hosts de uma rede TCP/IP necessitam de uma máscara de
rede:
Outras vantagens:
• As redes menores são mais fáceis de gerenciar;
o A segurança de rede pode ser aplicada mais facilmente nos pontos de
interconexão entre as sub-redes.
• O tráfego global de rede é reduzido e a performance pode melhorar porque a
maior parte do tráfego é local à sua sub-rede;
Importante!
De acordo com as regras clássicas de roteamento IP, não é permitido o uso de sub-redes
com todos os bits 0 ou 1 na porção destinada à rede.
Suponha que uma empresa tenha uma rede classe C, em que seja possível endereçar no
máximo 254 hosts, e tenha chegado um momento em que a quantidade de hosts excedeu
a classe inteira. Mas se substituindo uma nova classe C, houvesse uma classe B dividida
em pedaços e distribuída para cada nova rede, o crescimento se tornaria escalonável.
Cada pedaço menor criado chama-se sub-rede.
Os bits do endereço IP local são comparados aos bits respectivos da máscara de rede. O
mesmo é feito usando-se o endereço IP de destino e a máscara de rede. Se o resultado for
igual, o host de destino está situado na própria rede.
IP 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 1
Máscara 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
Resultado 1 1 0 0 1 0 0 0 1 1 1 1 1 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0
Foi feita aqui uma multiplicação binária, onde o resultado será 1, somente quando os dois
operadores forem 1.
Este processo é feito tanto para sub-redes quanto para endereços de rede.
3.2.2.3. – Super-redes
O que é uma super-rede?
Vamos supor que queremos unir em uma única super-rede um bloco de endereços
contínuos cujo endereço inicial é 234.170.168.0 e o endereço final é 234.170.175.234.
Dessa forma, estamos varrendo o equivalente a 7 redes classe C.
Notação decimal
Equivalente binário de 32 de bits
com ponto
mais baixo 234.170.168.0 11101010 10101010 10101000 00000000
mais alto 234.170.175.234 11101010 10101010 10101111 11101010
máscara 255.255.248.0 11111111 11111111 11111000 00000000
A notação para esta super-rede pode ser abreviada para 234.170.168.0/21, onde
O CIDR é uma das soluções encontradas para os problemas acarretados pelo intenso uso
do protocolo IP, utilizado por mais de uma década, que são o esgotamento dos
endereços IP e a explosão das tabelas de roteamento.
O CIDR organiza a sobra das redes classe C em blocos de extensão variável. Por
exemplo: uma empresa necessita de um total de 2000 endereços, então são destinados a
ela 2048 endereços (oito redes classe C contíguas) e não uma rede classe B inteira (65536
endereços).
De acordo com a organização feita pela política CIDR, o mundo foi dividido em quatro
partes:
Suponhamos que esses sejam os únicos sites existentes na Europa, então os roteadores
europeus teriam a seguinte tabela dos endereços expostos acima:
ENDEREÇO MÁSCARA
Inicialmente, este valor sofre uma operação de ANDING com a máscara da primeira
entrada (resultado 11000010 00011000 00010000 00000000), que não é igual ao primeiro
endereço.
Desta forma, o endereço sofre novamente uma operação de ANDING com a máscara da
próxima entrada (resultado 11000010 00011000 00010000 00000000), que é o mesmo
valor do endereço da segunda entrada da tabela. Logo, este pacote é enviado para o
roteador da Universidade B (segunda entrada).
Desvantagens
Os números 0 e 255 também têm uso reservado quando se trata de usá-los para identificar o
Network ID ou o Host ID.
Os endereços de MULTICASTING, são aqueles utilizados para enviar pacotes para todos os nós
da rede. Estão acima de 224.0.0.0, sendo que a aplicação escolhe a faixa de utilização.
Todo host de uma rede TCP/IP realiza esse processo ao enviar pacotes pela rede. O mesmo
processo ocorre também em um roteador (hardware específico ou computador com software de
roteamento), que geralmente separa duas redes físicas.
• Previsibilidade das rotas, uma vez que são computadas com antecedência podendo ser
melhor controladas;
• O roteamento estático não utiliza algoritmos que possam causar overhead nos roteadores.
A Embratel utiliza roteamento estático para os clientes;
• Necessidade de ajustes na tabela em caso de mudanças na rede, o que pode ser muito
trabalhoso dependendo do tamanho da rede;
Algoritmo de roteamento
Distance-Vector
O roteador periodicamente passa a todos os roteadores duas informações:
• As distâncias (hops) para os roteadores próximos, existentes na rede.
• A direção que deverá ser tomada para atingir cada um dos roteadores existentes.
Link-State
O roteador periodicamente passa aos seus "vizinhos" duas informações:
• Quem são os roteadores que são seus vizinhos imediatos;
• O estado da conexão com esses roteadores vizinhos.
Um pacote cujo destino seja uma sub-rede diferente das três conectadas
diretamente ao roteador será enviado para o roteador default, com endereço
193.55.114.129, conectado à interface le0. A interface le0 também foi
configurada para ser utilizada no roteamento de pacotes "multi-cast". Isso é feito
programando-se a sub-rede de destino como sendo 224.0.0.0.
Vantagens
Protocolos internos
O projeto do OSPF segue o padrão do link state protocol, isto é, possui banco de
dados distribuído, definição de adjacência, rotas externas, entradas especiais e o
protocolo "flooding".
Algoritmo
Se algum link da rede for alterado, os nós adjacentes serão encarregados de avisar
aos demais. Para saber se o aviso é atual há um campo no pacote com o número e
a hora em que a mensagem foi enviada.
Além disso, suporta não só redes ponto-a-ponto como Ethernet, token rings,
ATM ou anéis FDDI, ou seja, suporta redes de multiacesso com broadcast e sem
broadcast. Vejamos como isto é realizado:
Nas redes Ethernet, em que cada host pertence a uma sub-rede única, essa
configuração é muito eficaz.
Redes Broadcast
Redes Não-Broadcast
Áreas Múltiplas
Rodam várias cópias do algoritmo de roteamento, sendo uma para cada área à
qual são conectados. Também condensam as informações destas áreas e as
enviam ao backbone.
Roteadores de backbone
Roteadores que estão no backbone e são conectados a todos os Roteadores de
Borda de Área.
Em vez disso, para cada endereço IP que não esteja na tabela da estação, o protocolo
ARP manda uma solicitação via broadcast do endereço físico para o endereço IP
determinado.
O destinatário que tiver o endereço IP informado responde à máquina solicitante seu endereço
físico.
Nessa ocasião, a tabela da máquina origem e a da máquina destino são atualizadas com os
endereços.
Para ver a tabela que contém todas as informações dos endereços MAC e endereços IP
relacionados, basta ir até a linha de comando e digitar:
Lembre-se de que esta tabela é dinâmica e caso estes hosts (origem e destino) não se comuniquem
nos próximos minutos, estes dados serão excluídos automaticamente desta tabela.
Ou seja, nesta tabela somente constarão os dados dos últimos hosts que tiveram alguma
comunicação com o host do qual foi extraída esta tabela.
Por isso, é necessário um mecanismo que emita informações de controle e de erros quando
acontecerem problemas na rede.
As mensagens ICMP são geradas por gateways na rota de transporte de um datagrama ou pela
estação de destino.
Quando ocorre algum problema previsto pelo ICMP, a mensagem ICMP, que descreve a situação,
é preparada e entregue à camada IP.
A fonte deve relatar os erros aos programas de aplicação individuais e agir para corrigir o
problema.
Uma das mensagens que o ICMP pode enviar é Destination Unreachable, que pode ser dos
seguintes tipos:
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.
• Destinatário inacessível;
• Ajuste de fonte: solicita à estação a redução da taxa de emissão de datagramas;
• Redireção: rota mais adequada para a estação destinatária (para atualização da tabela de
endereço dos roteadores;
• Eco e resposta de eco;
• Tempo excedido;
• Problemas de parâmetros;
• Marca de Tempo e Resposta à Marca de Tempo;
• Solicitação de Informações e Respostas de Informações;
• Solicitação de Máscara de Endereço e Resposta à Mascara de Endereço.
Para participar do Multicast IP de uma rede local, o host deve ter um software que lhe permita
enviar e receber datagrams multicast.
Para participar de um desses datagramas, que cubra diversas redes, o host deve informar os
roteadores multicast locais.
Antes que um roteador multicast possa propagar informações de participação de multicast, deve
determinar se um ou mais hosts da rede local decidiram se juntar a um grupo multicast.
Para que isso aconteça, roteadores e hosts multicast, que implementam o multicast, devem usar o
IGMP para transmitir informações de participação de grupo.
Estas mensagens são destinadas ao grupo all-hosts (endereço 224.0.0.1) e possuem time-to-live
de valor 1.
Os hosts geram, então, mensagens do tipo Host Membership Report como resposta, informando
a cada grupo a que pertencem através da interface de rede pela qual a mensagem foi recebida.
Quando um host recebe uma mensagem Host Membership Query, ao invés de enviar mensagens
de notificação, imediatamente ele inicia um temporizador de atraso do envio da resposta referente
a cada grupo de que ele participa, através da interface de rede utilizada pela mensagem de
consulta.
Cada temporizador é escolhido entre um valor (randômico entre 0 e 10 segundos), de forma a não
ocorrer o envio de todas as mensagens de uma vez.
Quando um host percebe uma notificação para um grupo a que ele pertence, ele suspende seu
próprio temporizador para este grupo e não gera a mensagem de notificação para o grupo.
Assim, em casos normais, somente uma notificação será gerada para cada grupo presente na rede
local, que será enviada pelo host no qual o temporizador de atraso expirar primeiro.
O roteador multicast receberá todos os datagramas multicast IP, de modo que estes não precisam
estar endereçados explicitamente a ele.
Além disso, os roteadores não precisam saber quais hosts participam de um grupo, somente, que,
no mínimo, um dos hosts da rede pertence ao grupo.
Quando um temporizador já está sendo executado para um grupo e uma nova mensagem de
consulta é recebida, o tempo não é reiniciado com um novo valor randômico, continuando com
seu valor corrente. Notificações para o grupo all-hosts nunca são enviadas.
Os roteadores multicast enviam mensagens de consulta periodicamente para atualizar sua tabela
dos grupos presentes na rede.
As mensagens de consulta são poucas, de modo a manter baixo o overhead IGMP nos hosts e na
rede.
Quando um host se liga a um novo grupo, imediatamente devem ser enviadas mensagens de
notificações ao grupo, sem esperar a mensagem de consulta, já que o host pode ser o primeiro a
ser membro do grupo na rede.
É recomendado que sejam enviadas mais uma ou duas mensagens depois de pequenos espaços de
tempo, a fim de se cobrir a possibilidade de que a mensagem de notificação inicial seja perdida ou
danificada.