Camadas de Aplicação e Transporte
Propósito
Reconhecer o funcionamento da camada de rede para o desenvolvimento de aplicações modernas que tenham como requisito a comunicação em rede; realizar um endereçamento uniforme permitindo que equipamentos e aplicações possam trocar informações.
Objetivos
Reconhecer os conceitos básicos da camada de rede no Modelo OSI.
Aplicar configurações de rede IP.
Classificar os protocolos de controle da Internet.
Selecionar os algoritmos de roteamento.
Introdução
Imagine que você está na sua casa e deseja ir para um evento com seus amigos. Você tem o endereço do local de encontro, mas precisa determinar o caminho até chegar ao destino. Provavelmente você utilizará algum aplicativo de GPS ou de transporte público que lhe fornecerá o caminho a percorrer ou conduções a serem utilizadas.Esse exemplo que você viu acima, algo rotineiro no nosso dia a dia, é o que a camada de rede faz. Ela é responsável por determinar o caminho entre a máquina de origem e a máquina de destino, atividade que chamamos de roteamento.
Mas ela não faz apenas isso! A camada de rede e seus respectivos protocolos também são responsáveis por definir o formato do endereço a ser utilizado, definição de protocolos auxiliares para sinalizar possíveis erros que ocorram no processo de roteamento, entre outras funções.
Vamos agora desvendar como a camada de rede executa essas funções, entendendo os princípios de funcionamento e como os protocolos operam.
Introdução
Camada OSI
Camada de rede
No Modelo OSI, a camada de rede situa-se logo acima da camada de enlace (ligação física entre dois ou mais dispositivos
que permite a troca de dados entre os dispositivos participantes), utilizando os serviços oferecidos por essa camada.
Saiba Mais
O Modelo OSI (Open System Interconnection) foi criado pela International Organization for Standardization (ISO) com o
objetivo de ser um padrão para construção de redes de computadores. Divide a rede em 7 camadas, em que cada camada realiza
funções específicas, implementadas pelo protocolo da camada, prestando serviços para sua camada superior.

A camada de enlace tem como objetivo organizar a comunicação em nível de enlace, ou seja, ela deve garantir que um hospedeiro
consiga se comunicar com o hospedeiro vizinho.
O objetivo da camada de rede é, a partir desse serviço de comunicação lado a lado, promover uma comunicação de âmbito global,
permitindo que a informação que sai de um hospedeiro chegue a seu destino não importando em qual local da rede esteja esse
destino. Para isso, ele deve realizar duas grandes funções: definir um esquema de endereçamento que seja aceito por toda a
grande rede, e realizar o roteamento.
Saiba Mais
Hospedeiro: também conhecido como host, é qualquer equipamento conectado à rede capaz de trocar informações
com outros equipamentos. Exemplos de hospedeiros são computadores, impressoras de rede, smartphones etc.
Roteamento: processo de determinar o caminho a ser seguido por um pacote de dados em uma rede para que chegue ao destino da
melhor forma possível.
Conceitos básicos da camada de rede
A quantidade máxima de dados que podem ser trocados entre entidades da camada de rede possui um tamanho limitado.
Para que as mensagens maiores que o limite possam ser trocadas entre aplicações, a camada de transporte deverá
segmentar tais mensagens em partes menores e colocar cada segmento em uma unidade de dados da camada de rede.
Essa unidade de dados trocada entre entidades da camada de rede recebe a denominação de pacote.
Comentário
É um trabalho diferente daquele realizado pela camada de enlace, que necessita apenas entregar a
informação na outra extremidade do meio de transmissão.
A camada de enlace de dados cuida apenas da comunicação de um hospedeiro com outro que esteja diretamente
conectado a ele por intermédio de um meio de comunicação. Já a camada de rede vai encaminhar os pacotes
permitindo que ocorra a comunicação fim a fim.
Para conseguir realizar essa comunicação, a camada de rede deve:
Conhecer toda a topologia da sub-rede de comunicação.
Escolher rotas que evitem sobrecarregar partes da rede enquanto outras ficam ociosas.
Compatibilizar a comunicação entre os diferentes tipos de sub-redes existentes.
Na origem, a camada de rede cria um pacote com dados provenientes da camada superior e acrescenta a ele um cabeçalho
com informações de endereço origem e destino. Em sistemas com mais de uma interface de rede deve também consultar suas
tabelas de repasse para determinar por qual interface o pacote deve ser encaminhado.
Nos hospedeiros intermediários, a camada de rede deve receber o pacote, consultar suas tabelas de roteamento e enviar
o pacote pela interface de rede apropriada.
No destino, a camada de rede deve verificar se o endereço destino do pacote é o mesmo do hospedeiro e, caso seja,
entregar o pacote à camada superior (camada de transporte).
Saiba Mais
Topologia: layout da rede de computadores.
Sub-rede: subdivisão de uma grande rede de computadores. Os roteadores que fazem parte de uma sub-rede devem utilizar
o mesmo software de roteamento para que possam trocar informações sobre rotas.
Interface de rede: dispositivo que permite que um hospedeiro possa enviar e receber dados por intermédio de uma rede de
computadores. Exemplos de interface de rede são placas de rede ethernet, muito comuns em computadores desktop, e placas
de comunicação Wi-Fi comuns em notebooks e smartphones.
Tabelas de repasse: tabela interna de um roteador montada por seu algoritmo de roteamento que possui entradas para todos
os destinos conhecidos, com indicação por qual interface de saída deve ser enviado um pacote com base em seu endereço
destino.
Comutação na camada de rede
Neste vídeo, o especialista explica sobre comutação de pacotes.
Comutação de pacotes
Neste momento você deve estar se perguntando como o pacote vai da origem até o destino. Diretamente?
Saltando de hospedeiro em hospedeiro?
Lembre-se de que, no Modelo OSI, uma camada utiliza os serviços da camada imediatamente inferior para
realizar seus trabalhos e oferecer serviços para a camada superior. Assim, um hospedeiro com um pacote
a enviar o transmite para o roteador mais próximo. O pacote é então totalmente recebido pelo roteador
e, após ter chegado por completo, é conferido. Em seguida, ele é encaminhado para o próximo roteador
ao longo do caminho até alcançar o hospedeiro de destino, onde é entregue. Esse mecanismo que tem
como base armazenar totalmente o pacote antes de enviá-lo ao próximo hospedeiro é conhecido como
comutação de pacotes.
Confira esse passo a passo na imagem abaixo:

Entenda as diferenças entre repasse e roteamento:
Um roteador é um equipamento que possui, normalmente, várias interfaces de rede. Quando um pacote chega por uma de suas interfaces, o roteador deve verificar o destino desse pacote e decidir por qual de suas linhas o pacote deve ser enviado para que consiga chegar ao destino. Chamamos de repasse o trabalho (local) de escolher por qual das interfaces deve seguir o pacote que chega.
Roteamento
Cabe à camada de rede decidir o caminho a ser seguido por um pacote para que este chegue ao seu destino, fazendo o melhor
caminho possível. Para isso, os roteadores devem trocar informações entre si sobre o estado da rede, de forma a decidirem
o melhor caminho para cada destino. Chamamos de roteamento o trabalho (global) de escolher os caminhos por uma rede para
que o repasse possa ser realizado.
O algoritmo que realiza esta tarefa é conhecido como algoritmo de roteamento.
O repasse refere-se a uma ação realizada localmente por um roteador sobre um pacote que chega, enquanto no roteamento há uma ação
global envolvendo todos os roteadores de uma sub-rede para a escolha do melhor caminho.
Você já deve ter percebido que existe uma relação bastante próxima entre repasse e roteamento, mas como é essa relação?
Vamos iniciar pelos algoritmos de roteamento. Para escolher a melhor rota, um conjunto de roteadores precisa trocar informações
sobre a situação da rede em sua vizinhança, de modo que os roteadores do conjunto possam decidir sobre o caminho a ser seguido
em cada situação. Diferentes algoritmos com diferentes propriedades podem ser utilizados nessa tarefa.
Como funcionam esses algoritmos e de que forma eles se diferenciam, estudaremos adiante. Por ora, o importante é que existem
algoritmos
capazes de encontrar o melhor caminho em uma rede.
O mesmo algoritmo é então executado nos roteadores da sub-rede, trocando informações de tráfego e calculando a melhor rota. Uma vez
calculadas as rotas para cada destino, os algoritmos de roteamento criam as chamadas tabelas de repasse, as quais são indexadas pelos
possíveis endereços destino de um pacote e indicam a interface pela qual o pacote deve ser enviado com base em seu endereço destino.
Ao chegar um pacote em um roteador, e sendo necessário fazer seu repasse, o processo responsável por essa função verifica o endereço
de destino do pacote, consulta a tabela de repasse utilizando o endereço destino como índice e obtém a interface pela qual o pacote
deve seguir. Resumidamente, as tabelas de repasse são montadas pelos algoritmos de roteamento e consultadas pelo processo de repasse
para determinar por qual interface deve seguir um pacote que chega.
Circuitos virtuais e datagramas
Há basicamente duas formas para a organização da camada de rede de uma sub-rede: uma utilizando conexões e a outra trabalhando sem conexão. Na camada de rede, um serviço orientado à conexão costuma ser chamado de circuito virtual, enquanto um serviço que realiza a entrega de pacotes independentes, sem conexão, costuma ser chamado de serviço de datagramas.
A camada de transporte também oferece serviços com conexão e sem conexão, mas estes se diferem dos serviços oferecidos pela camada de rede.
Comentário
Pensando na arquitetura TCP/IP, a camada cliente da camada de transporte é a camada de aplicação, portanto, o serviço de transporte com conexão é um serviço aplicação a aplicação, ou seja, uma conexão de transporte conecta diretamente duas aplicações. Já a camada de rede é voltada para a interligação de hospedeiros, logo, uma conexão da camada de rede é uma conexão hospedeiro a hospedeiro.
Encaminhamento por circuitos virtuais
Circuitos virtuais
A ideia dos circuitos virtuais é evitar a necessidade de escolher uma nova rota para cada pacote que passa,
sendo por isso utilizado em sub-redes com serviço de rede orientado à conexão. Ao se estabelecer uma
conexão, é criada uma rota entre o hospedeiro origem e o hospedeiro destino como parte do estabelecimento
da conexão. Essa rota é utilizada por todo o tráfego que flui pela conexão entre os hospedeiros.
Quando a conexão é liberada, o circuito virtual deixa de existir.
Um circuito virtual (CV) consiste em:
Um caminho definido entre origem e destino;
Números de identificação de circuitos virtuais, um para cada enlace ao longo do caminho;
Registros em tabelas de comutadores ao longo do caminho.
Considere a rede da figura a seguir. Os números em cada extremidade dos enlaces representam o número da
interface do comutador naquele enlace.

O hospedeiro H1 solicita à rede que estabeleça um circuito virtual até o hospedeiro H2, e a rede estabelece
o caminho H1-A-B-E-F-H2, atribuindo respectivamente os seguintes circuitos virtuais: 23, 8, 37, 22, e 16
(numerações aleatórias).
Com base nessas informações são montadas as seguintes tabelas de repasse em cada um dos comutadores ao
longo do caminho:

Sempre que um novo circuito virtual (CV) é estabelecido através de um comutador, um registro para este CV é adicionado à tabela do
comutador. De forma análoga, sempre que um CV termina, suas informações são removidas das tabelas do comutador ao longo do percurso.
A utilização de diferentes identificadores para os CVs, ao longo do caminho, simplifica o trabalho, uma vez que, a utilização de um
mesmo CV durante todo o trajeto iria requerer a concordância de todos os comutadores participantes da rota. O importante para que
os comutadores possam definir o caminho é que o número de saída do CV de um comutador seja o mesmo número de entrada do CV do
comutador seguinte.
No exemplo, o circuito estabelecido entre os comutadores E e F possui CV 22 (o CV 22 sai pela linha 3 de E e entra como CV 22
pela linha 1 de F). Da mesma forma, o CV entre A e B possui valor 8 e o CV entre B e E possui valor 37. Reveja as figuras com
os circuitos em destaque.

Ao estabelecer um caminho dessa forma, é como se fosse colocado um circuito físico (como um cabo de rede) ligando
diretamente os hospedeiros, por isso o nome circuito virtual.
Outra característica da rede de circuitos virtuais é que, como os pacotes seguem sempre pelo mesmo caminho, eles
chegam ao destino na mesma ordem em que saíram da origem.
Existem 3 fases que podem ser identificadas em um circuito virtual:
Estabelecimento do CV
Nesta fase, os comutadores estabelecem os parâmetros da conexão e o caminho pelo qual os pacotes irão seguir durante a fase de transferência de dados.
Transferência de dados
Fase seguinte ao estabelecimento do CV, durante a qual ocorre a transferência de pacotes desde a origem até o destino.
Todos os pacotes seguem pelo caminho definido durante a fase de estabelecimento do CV.
Encerramento do CV
Fase na qual o circuito virtual é desfeito. Necessária para que os comutadores sejam avisados do encerramento e possam retirar de suas tabelas as informações sobre o circuito virtual encerrado.
Encaminhamento por datagramas
Datagramas
Em uma sub-rede de datagramas, nenhuma rota é previamente definida. Ao ser transmitido, um pacote passa por
uma série de roteadores, e cada roteador, ao longo do caminho, utiliza o endereço destino para determinar
por qual interface de saída enviar o pacote (realiza o repasse).
Como não há estabelecimento de circuitos para as transferências, os roteadores, ao longo do caminho,
deverão manter tabelas de repasse baseadas no endereço destino do pacote, qualquer que seja o destino.
Significa dizer que, se as tabelas de repasse forem alteradas durante uma transferência, os datagramas
de uma mensagem podem fazer caminhos diferentes até o destino.
Exemplo
Suponha que você esteja assistindo a um filme pela rede e que o vídeo seja enviado até seu equipamento
por uma sub-rede de datagramas. Parece real? Sim, é real. Atualmente, assistimos a filmes pela Internet
e ela é uma rede de datagramas.
O filme possui cerca de 90 minutos. Será que as rotas de uma rede mudam durante 90 minutos? Sim, essa
é uma possibilidade. Isso significa que, em determinado momento, as tabelas de repasse mudarão, então,
os datagramas passarão a fazer outro caminho até chegarem em seu equipamento. Assim, vemos que, ao
contrário dos circuitos virtuais, os pacotes em uma rede de datagramas não seguem sempre pelo mesmo
caminho.
Por que a rota é alterada?
Uma possibilidade é que os pacotes estavam passando por uma região que ficou sobrecarregada, e os
roteadores descobriram outra região com melhores condições de tráfego, preferindo enviar os pacotes
por essa nova região. Uma consequência disso é que os primeiros pacotes que estão seguindo pelo novo
caminho podem chegar ao destino antes de alguns dos pacotes que seguiram pelo caminho antigo.
Assim sendo, existe a possibilidade de que alguns pacotes cheguem ao destino fora de ordem.
Os problemas que podem acontecer em uma rede de datagramas são:
A perda de datagramas.
Datagramas chegarem com erro.
Datagramas chegarem fora de ordem.
Datagramas serem duplicados.
Protocolo ARP
Para saber mais sobre protocolo ARP, assista ao vídeo abaixo:
Endereçamento
Alguns tipos de rede permitem que sejam criados vários endereços por hospedeiro, enquanto outros tipos de rede permitem
a utilização de apenas um por hospedeiro. Porém, qualquer que seja o tipo de rede, o endereçamento deve ser completamente
independente do endereçamento dos protocolos de outras camadas. A camada de rede tem a função de unificar toda a comunicação
da rede, portanto ela deve definir uma forma de identificação dos hospedeiros que seja aceita por toda a rede.
Basicamente dois tipos de endereçamento são possíveis:
Endereçamento hierárquico
No endereçamento hierárquico, o endereço de uma entidade é constituído de acordo com os endereços correspondentes aos vários níveis da
hierarquia da qual faz parte. O endereço hierárquico é o método sugerido pelo ITU-T para interconexão de redes públicas de telefonia.
Nessa recomendação, os endereços são números decimais formados por três campos: um código do país, um código para a rede, e um campo
para o endereçamento dentro da rede.
Observação: setor da ITU (International Telecommunication Union) responsável pela elaboração de padrões e normas consensuais sobre tecnologia
que garantam o funcionamento, a interoperabilidade e a integração dos sistemas de comunicação em todo o mundo, com a finalidade de facilitar
o acesso das indústrias aos diferentes mercados de cada país.
Endereçamento horizontal
No endereçamento horizontal, os endereços não têm relação alguma com o lugar onde estão as entidades dentro da rede. Um exemplo comum desse tipo
de endereçamento são os endereços utilizados nas placas de rede ethernet, que são gravados durante seu processo de fabricação e serão sempre
os mesmos, não importando em qual lugar do mundo a placa seja utilizada.
Observação: placa de rede ethernet é um dispositivo de hardware que permite a ligação de um computador a uma rede de computadores padrão
ethernet.

Considerações sobre o roteamento indicam vantagens na utilização de endereçamento hierárquico, uma vez que este contém informações explícitas
sobre o local onde se localizam as entidades. Já o endereçamento horizontal permite uma mobilidade das entidades sem reconfiguração.
Apesar do endereçamento universal ser realizado pela camada de rede, o envio dos pacotes é realizado por camada inferior que possui seu
próprio esquema de endereçamento específico da tecnologia da rede física em uso. Ocorre, portanto, um mapeamento entre os endereços físicos
e de rede, e essa tarefa deve ser realizada pela camada de rede. Existem duas técnicas usuais para essa conversão: resolução por meio de
mapeamento direto e resolução por meio de vinculação dinâmica.
Mapeamento direto
A estação sabe como computar o endereço de enlace por intermédio de uma função que mapeia o endereço de rede no endereço de enlace. Por exemplo,
o endereçamento hierárquico onde o campo de endereçamento dentro da rede corresponda exatamente ao endereço físico da estação. Conversões mais
complexas podem ser realizadas por meio de tabelas de conversão e técnicas de acesso rápido a essas tabelas.
Vinculação dinâmica
Para evitar o uso de tabelas de conversão, uma vinculação dinâmica pode ser efetuada entre o endereço de rede e o físico por intermédio da utilização de algum protocolo de resolução. A exemplo, temos o protocolo ARP, o qual estudaremos mais adiante.
A camada de rede na Internet
Na camada de rede, a Internet pode ser vista como um conjunto de sub-redes ou Sistemas Autônomos (SA) conectados entre si.
Não existe uma estrutura real, mas diversos backbones que interligam redes regionais, que por sua vez estão conectadas às redes locais.
O protocolo que mantém a Internet unida é o protocolo de camada de rede IP (Internet Protocol). A tarefa do IP é fornecer a melhor
forma de transportar datagramas da origem para o destino, independentemente de esses hospedeiros estarem na mesma rede ou em outras
redes intermediárias.

Imagine que você está solicitando a transferência de dados de seu computador para um hospedeiro remoto (está fazendo o upload do arquivo).
A camada de transporte de seu computador receberá o fluxo de dados referente à transferência de seu arquivo. Como provavelmente esse fluxo
é muito grande para caber em um único pacote IP, ele será quebrado em partes menores pela camada de transporte e cada parte desta será
entregue para a camada de rede (cada um será colocado em um datagrama IP).
Esses datagramas serão transmitidos pela Internet, podendo ainda serem fragmentados ao longo do caminho. Quando todos os fragmentos de um
datagrama chegam ao destino, o datagrama original é remontado pela camada de rede do destino sendo entregue à camada de transporte que
recriará o fluxo original para o processo de recepção.
Protocolo de endereços IPv4
Protocolo IP versão 4 (IPv4)
Na Internet, a camada de rede trata cada pacote de forma independente, não tendo qualquer relação com pacotes
anteriores ou posteriores. Pacotes com mesma origem e destino podem, inclusive, passar por diferentes rotas.
O IPv4 é definido pela RFC 791, sendo atualizado pelas RFC 1349, RFC 2474 e RFC 6864.
Datagramas
São unidades básicas de informações que passam pela Internet. Dentro do datagrama está seu cabeçalho, que contém informações sobre sua origem e seu destino, assim como informações sobre para qual protocolo o IP deverá passar os dados. Também fazem parte dele os dados que devem ser entregues à camada de transporte no destino.
Fragmentos
São partes de um datagrama muito grande que foi quebrado em unidades menores. Como os dados precisam caber dentro da porção de dados da rede física, pode ser que seja necessário fragmentar os dados da aplicação para que eles possam ser transportados pela rede. O tamanho do fragmento é determinado pelo MTU da interface de hardware da rede. O IPv4 especifica que a fragmentação ocorre em cada roteador baseado na MTU da interface pela qual o datagrama IP deve passar.
MTU (Maximum Transmission Unit) refere-se à quantidade máxima de dados que pode ser enviada em uma mensagem de um protocolo de rede.
Quando um datagrama é quebrado em fragmentos, cada um desses fragmentos passa a ser um novo datagrama que está passando pela rede.
Um datagrama IP consiste em duas partes: cabeçalho e dados. O cabeçalho tem uma parte fixa de 20 bytes e uma parte opcional de tamanho variável.

Fragmentação
Para saber mais sobre como funciona a fragmentação, assista ao vídeo:
Endereço IPV4
Um hospedeiro normalmente possui apenas uma interface com a rede de computadores. Quando o protocolo IP de um
hospedeiro quer enviar um datagrama, ele o faz por meio dessa interface.
A interface de rede é a fronteira entre o hospedeiro e a rede física.
Considere, neste momento, um roteador e suas interfaces. Como a tarefa de um roteador é receber um datagrama por
uma interface e repassá-lo por outra interface, ele estará ligado a duas ou mais redes físicas.
A fronteira entre o roteador e qualquer uma dessas redes também é denominada uma interface. Assim,
um roteador tem múltiplas interfaces, uma para cada uma das redes às quais está conectado.
Atenção
Independentemente de quantas interfaces tenha um hospedeiro, o IP exige que cada uma delas tenha seu próprio
endereço IP de modo que este, tecnicamente, esteja associado a uma interface, e não ao hospedeiro que a contém.
Cada endereço IP tem comprimento de 32 bits (4 bytes), havendo um total de 232 endereços possíveis
(aproximadamente 4 bilhões de endereços IP), os quais são escritos em notação decimal separada por pontos,
na qual cada byte do endereço é escrito em sua forma decimal e separado dos outros bytes por um ponto.
Considere o endereço IP 192.168.23.67. O 192 é o número decimal equivalente aos primeiros 8 bits do endereço;
o 168 é o decimal equivalente ao segundo conjunto de 8 bits do endereço, e assim por diante. Em notação binária,
o endereço 192.168.23.67 fica:
11000000 10101000 00010111 01000011

Cada interface em cada hospedeiro da Internet precisa de um endereço IP globalmente exclusivo, ou seja, não pode haver duas interfaces com o
mesmo endereço IP na Internet válida.
A figura, a seguir, fornece um exemplo de endereçamento IP e interfaces em que um roteador com 2 interfaces é usado para interconectar os
6 hospedeiros. Observando os endereços dos hospedeiros da esquerda e da interface do roteador que os liga, percebe-se que todos possuem
endereço IP na forma 192.168.0.x, enquanto os hospedeiros e a interface do roteador localizados na parte direita da figura possuem endereço
na forma 192.168.1.x. Diz-se que cada uma dessas redes que interconecta 3 hospedeiros mais a interface do roteador formam uma sub-rede.

Como pode-se observar, no exemplo, os 3 campos mais à esquerda do endereço (formados por 24 bits) nunca mudam
dentro da sub-rede. Desse modo, temos à esquerda a sub-rede 192.168.0.0/24 e à direita a sub-rede 192.168.1.0/24.
O “/24” indica que os 24 bits mais à esquerda do endereço definem a sub-rede.
A estratégia de atribuição de endereços da Internet é conhecida como Roteamento Interdomínio sem Classes
(Classless Inter-domain Routing – CIDR).
O CIDR generaliza a noção de endereçamento de sub-rede. O endereço IP de 32 bits é dividido em 2 partes sendo
representado por A.B.C.D/X, em que X indica o número de bits existentes na primeira parte do endereço.
Os X bits mais significativos de um endereço na forma A.B.C.D/X constituem a parcela da rede do endereço IP
e normalmente são denominados prefixo (ou prefixo de rede). Esse prefixo determina qual parte do endereço IP
identifica a rede. Uma organização normalmente recebe um bloco de endereços contíguos, ou seja, uma faixa de
endereços com um prefixo comum. Assim, os endereços IP de hospedeiros dentro da organização compartilharão
o prefixo comum, o que reduz consideravelmente o tamanho da tabela de repasse nos roteadores, visto que um
único registro da forma A.B.C.D/X será suficiente para transmitir pacotes partindo de fora para qualquer
destino dentro da organização.
Os últimos (32-X) bits de um endereço podem ser considerados como os bits que distinguem os hospedeiros dentro
da sub-rede. Esses bits menos significativos podem (ou não) ter uma estrutura adicional de sub-rede tal como
aquela discutida anteriormente. Por exemplo, suponha que os primeiros 24 bits do endereço A.B.C.D/24 especificam o prefixo da rede da organização
e são comuns aos endereços IP de todos os hospedeiros da organização. Os 8 bits restantes, então, identificam os hospedeiros específicos da
organização.
A estrutura interna da organização poderia ser tal que esses 8 bits mais à direita seriam usados para criar uma sub-rede dentro da organização,
como discutido. Por exemplo, A.B.C.D/28 poderia se referir a uma sub-rede específica dentro da organização.
Anteriormente ao CIDR, os bits reservados para indicar a parte da sub-rede possuíam exatamente 8, 16 ou 24 bits. Esse esquema é conhecido como
endereçamento de classes cheias, e as sub-redes com endereços de sub-rede de 8, 16 e 24 eram conhecidas, respectivamente, como redes de classe A,
B e C. Tal divisão em classes cheias se mostrou problemática para suportar o rápido crescimento da quantidade de organizações com sub-redes de
pequeno e médio portes.
Uma sub-rede de classe C (/24) poderia acomodar apenas 28 - 2 = 254 hospedeiros (dois dos 28 = 256 endereços são reservados para uso especial).
Essa sub-rede é muito pequena para muitas organizações, por outro lado, uma sub-rede de classe B (/16), que suporta até 216 - 2 = 65.534 hospedeiros,
seria demasiadamente grande. Com o endereçamento de classes cheias, uma organização com 2.000 hospedeiros recebia um endereço de sub-rede de
classe B (/16), o que resultava no rápido esgotamento do espaço de endereços de classe B e na má utilização do espaço de
endereço alocado.
Os 2 endereços especiais de uma sub-rede que não podem ser utilizados são o primeiro e o último endereço da faixa de endereços da organização.
O primeiro é reservado para o endereço de rede, que identifica a rede como um todo. Nele, todos os bits que não fazem parte do prefixo de rede
recebem o valor 0.
Já o último endereço é utilizado como endereço de difusão (broadcast). Roteadores não repassam mensagens de difusão, portando, em uma rede IP
a difusão fica limitada ao segmento de rede limitado pelo roteador. No endereço de difusão, todos os bits que não fazem parte do prefixo de
rede recebem o valor 1.
O 255.255.255.255 é um endereço especial de difusão em que a mensagem é entregue a todos os demais hospedeiros que estão na mesma sub-rede do
hospedeiro que enviou a mensagem.
No endereçamento de classes cheias, o número total de redes e hospedeiros para cada classe é:
Classe A
126 redes com aproximadamente 16 milhões de hospedeiros cada.
Classe B
16.384 redes com até 64K hospedeiros cada.
Classe C
Cerca de 2 milhões de redes com até 254 hospedeiros cada.
Classe D
Cerca de 268 milhões de grupos multicast.

A distribuição de endereços IP é controlada pela ICANN (Internet Corporation for Assigned Names and Numbers).
Sub Redes
O mundo exterior a uma organização enxerga sua rede como sendo única, e nenhuma informação sobre sua estrutura
interna é necessária. Porém, sem a utilização de sub-redes, o espaço de endereçamento pode se tornar muito
ineficiente.
A fim de tornar mais eficiente a utilização da rede, é comum sua divisão em várias sub-redes. O mecanismo que
permite tal divisão é conhecido como máscara de rede.
Assim como um endereço IP, uma máscara de rede possui 32 bits divididos em 4 campos com 8 bits cada, seguindo
o padrão:
Bits da rede – bit 1
Bits da sub-rede – bit 1
Bits do hospedeiro – bit 0
Os bits da sub-rede são utilizados para especificar quais bits no campo do hospedeiro são usados para especificar as sub-redes de uma rede.
A máscara padrão (default) para cada classe é dada por:


Uma rede pode ser dividida em diversas partes para uso interno, continuando a ser vista como uma única rede
externamente. Essas partes são as sub-redes.
Existem diversas razões para se dividir uma rede em sub-redes. Algumas destas razões são:
Isolar o tráfego de uma sub-rede, reduzindo assim o tráfego total da rede.
Proteger ou limitar o acesso a uma sub-rede.
Permitir a associação de uma sub-rede com um departamento ou espaço geográfico específico.
Cálculo das máscaras de rede
Para saber mais sobre como calcular máscaras de rede, assista ao vídeo.
Configurações de rede IP
Tradução de endereços
NAT
Atualmente, endereços IP são escassos e esse esgotamento não é um problema teórico que pode ocorrer em
algum momento no futuro distante, ele já está acontecendo, e a solução atual para esse problema é
o NAT (Network Address Translation – Tradução de Endereço de Rede), descrito na RFC 3022.
Com essa técnica, uma organização pode utilizar internamente uma faixa de endereços que não é válida
na Internet, e quando é necessário fazer acesso externo, o dispositivo responsável pelo NAT faz a
tradução do endereço da rede interna para o endereço válido da organização. Dessa forma, a organização
poderá obter internamente uma quantidade maior de hospedeiros do que endereços disponíveis para
utilização da Internet.

A ideia básica do NAT é atribuir a cada organização uma pequena quantidade de endereços IP para tráfego na Internet.
Dentro da organização, todo computador obtém um endereço IP exclusivo (também conhecido como endereço IP privado)
usado para roteamento do tráfego interno e, quando um pacote sai da organização e vai para a Internet, ocorre uma
conversão do endereço.
Para tornar esse esquema possível, três intervalos de endereços IP foram declarados como endereços privativos
(reservados) e as organizações podem utilizá-los internamente da maneira que quiserem, a única regra é que nenhum
pacote contendo esses endereços pode aparecer na própria Internet. Os três intervalos reservados são:

Dentro da organização, toda máquina tem um endereço exclusivo que não é válido na Internet. Quando um
pacote deixa a organização, ele passa por uma caixa NAT (normalmente um roteador), que converte o
endereço de origem no endereço IP válido da organização. Desse modo, o pacote poderá transitar sem
problemas pela Internet, porém, a resposta do pacote voltará para o endereço IP válido da organização,
e não para a máquina que fez tal requisição. Por causa disso, a caixa NAT deverá manter uma tabela na
qual poderá mapear a máquina que enviou a requisição para Internet, de forma que, quando a resposta
voltar, ela possa ser mapeada para a máquina correta.
Na técnica de NAT, os endereços utilizados pelos hospedeiros de uma organização não são válidos na
Internet, não há como tais equipamentos receberem acesso direto da rede externa, conferindo um certo
grau de proteção aos hospedeiros da rede interna.
Funcionamento do NAT
Para saber mais sobre o funcionamento do NAT, assista ao vídeo.
Principais Protocolos de Controle
Principais protocolos de controle
Protocolo de controle da Internet
O protocolo IP é o responsável por manter a unidade de toda a Internet, porém, ele não consegue realizar sozinho todo o
trabalho necessário. Para auxiliá-lo nessa tarefa, foram desenvolvidos protocolos auxiliares na camada de rede, conhecidos
como protocolos de controle.
Neste módulo, estudaremos os principais protocolos de controle que trabalham em conjunto com o
protocolo IP.
ARP (Address Resolution Protocol)
Embora na Internet cada hospedeiro possua um ou mais endereços IP, na verdade eles não podem ser usados diretamente para
o envio de informações pela rede, pois o hardware da camada de enlace de dados não entende os endereços Internet.
Suponha que você esteja utilizando um notebook e que ele enviará dados para um servidor na mesma rede. O software IP do notebook
receberá os dados a serem enviados e construirá um pacote com o endereço IP do servidor no campo ENDEREÇO DESTINO do datagrama
para transmissão. O software IP descobrirá que o servidor está em sua própria rede e que, portanto, deverá transmitir os dados
diretamente a ele.
Neste ponto existe um problema. A placa de rede trabalha com endereços físicos da camada de enlace, ela não reconhece endereços IP.
Logo, é necessário encontrar uma forma de mapear os endereços de rede nos endereços de enlace.
A solução adotada é fazer com que o hospedeiro que precise descobrir o endereço de enlace do destinatário envie um pacote por
difusão perguntando: “A quem pertence o endereço IP A.B.C.D?”. Então, o hospedeiro destinatário responderá com seu endereço de
enlace. O protocolo que faz essa pergunta e obtém a resposta é o ARP (Address Resolution Protocol, que é definido na RFC 826).
No exemplo da imagem a seguir, a requisição ARP é enviada para o endereço de enlace ff-ff-ff-ff-ff-ff, o que permite que a
camada de enlace promova uma difusão (entregue a requisição a todos os hospedeiros ligados ao meio de transmissão).
