Camada de rede e de transporte
Objetivos
Esperamos que, ao final desta aula, você seja capaz de:
entender o papel da camada de rede e seus protocolos de roteamento; •
conhecer as funções da camada de transporte (camada 4) do mo- •
delo OSI.
Pré-requisitos
Ser capaz de identificar as funções de rede que ocorrem na camada de enlace do modelo de referência OSI estudadas na aula anterior, para que você possa compreender como a camada de rede e de transporte atuam entre si e com as demais camadas OSI. Caso você ainda tenha alguma dúvida sobre a camada de enlace, é recomendável que revise o conteúdo da aula anterior.
introdução
Nesta aula, conheceremos duas novas camadas do modelo OSI. A pri- meira delas é a camada de rede que tem a função de controlar a operação da rede de um modo geral. Suas principais funções são o roteamento dos pacotes entre a origem e o destino, mesmo que eles tenham de passar por diversos dispositivos intermediários durante o percurso; é responsável também pelo controle de congestionamento e a contabilização do número de pacotes utilizados pelo usuário.
A segunda delas é a camada de transporte, ela é parte principal de toda a hierarquia de protocolos. Sua tarefa é prover o transporte rápido e confiável de dados, independente da rede física ou das redes atualmente em uso.
5.1 A camada de rede
Segundo Tanenbaum (2004), a camada de rede é responsável pela
navegação dos dados por meio da rede, seu papel é encontrar o melhor
caminho. O esquema de endereçamento da camada de rede é usado pe- los dispositivos para determinar o destino dos dados à medida que eles se movem pela rede. Em um sistema de troca de informações, o roteamento é o procedimento de escolha do caminho pelo qual os dispositivos irão enviar as informações. Existem dois tipos de roteamento:
direto:
• que realiza a comunicação entre dois dispositivos alocados em uma mesma rede física;
indireto:
• que realiza a conexão entre dois dispositivos localizados em redes diferentes. Para isso, é necessário o uso de Gateways para efetuar o encaminhamento das informações para a rede de destino (TANENBAUM, 2004).
5.1.1 Algoritmo de roteamento
Conforme Tanenbaum (2004), o algoritmo de roteamento é a parte do programa de nível de rede responsável por definir por qual caminho um pacote deve ser encaminhado a fim de chegar ao destino desejado.
Vejamos agora, segundo o mesmo autor, as características desejadas em um algoritmo de roteamento:
correção:
• o algoritmo de roteamento deve ser capaz de calcular
rotas precisas para todos os destinos; eficiência:
• deve ser simples de entendimento e eficiente para que não sobrecarregue o computador;
estabilidade:
• o algoritmo de roteamento tem de trabalhar cor-
retamente o máximo possível, quando ocorrer alguma modificação
na topologia da rede. Essas modificações fazem com que as tabelas de roteamento de alguns roteadores apresentem informações erradas. A partir daí, eles devem ser capazes de atualizar suas tabelas o mais rápido possível;
robustez:
• a partir do momento em que a rede entra em funcionamento, deve permanecer o máximo de tempo possível sem que ocor- ram falhas em todo o sistema. Durante esse período, poderão ocorrer falhas isoladas de hardware e software, e a topologia da rede deverá modificar-se diversas vezes. O algoritmo de roteamento deve ser capaz de resolver essas modificações sem requerer uma reinicialização.
5.1.2 tipos de algoritmo
Vamos expor neste item alguns tipos de algoritmos de roteamento, segun- do Comer (2000).
Estático:
• não baseia as suas decisões de roteamento em medidas ou estimativas de tráfego e em topologias correntes. As rotas são definidas anteriormente e carregadas no roteador na inicialização da rede.
Dinâmico:
• tenta mudar as suas decisões de roteamento de acordo com as mudanças de tráfego e de topologia. A tabela de roteamento vai-se modificando com o passar do tempo. Evidentemente que esse tipo de roteamento apresenta uma flexibilidade e uma eficiência em condições adversas muito maiores.
Estrutura plana:
• todos os roteadores estão em um mesmo nível. As
informações não são organizadas e distribuídas hierarquicamente.
Estrutura hierárquica:
• as informações de roteamento são organiza-
das hierarquicamente.
Algoritmos intra-domínio:
• são algoritmos executados por roteado-
res de dentro de um determinado Sistema Autônomo (AS-Autonomous System). Permitem que sejam definidas as rotas para dentro da rede de uma determinada organização.
Algoritmos inter-domínios:
• permitem a definição das rotas que
são utilizadas para a comunicação com equipamentos de fora de um determinado sistema autônomo.
Dois algoritmos são os mais comumente utilizados por protocolos de rote- amento. Vamos a eles?
1. Algoritmo de vetor de distância (Distance Vector)
Segundo Comer (2000), os protocolos baseados no algoritmo vetor-dis- tância prevêem que cada nó que participa do roteamento deve conter uma tabela informando a melhor distância conhecida e que linha utilizar para chegar até lá.
O autor menciona outras características desse algoritmo. Vamos a elas? O roteador apresenta, em sua tabela, a rota para os roteadores vizinhos. •
Em intervalos de tempo regulares, o roteador envia toda a sua tabe- •
la de rotas para os seus vizinhos.
Após algum tempo, os diversos roteadores da rede convergem (fi- •
cam com as suas tabelas completas e atualizadas).
As tabelas apresentam o endereço destino, a métrica e o próximo •
roteador para onde a mensagem deve ser enviada.
Esse algoritmo exige menos recursos de memória e processamento •
do que o algoritmo de estado do enlace.
Ele apresenta convergência mais lenta e alguns problemas enquanto •
não se estabiliza.
2. Algoritmo de estado do enlace (Link State)
Segundo Comer (2000), nesse algoritmo, o roteador desempenha as se- guintes tarefas:
descobre quem são os vizinhos e qual o estado do enlace deles; •
mede os custos associados aos diversos enlaces que tem; •
transmite as informações sobre os enlaces para todos os roteadores da rede; •
recebe o estado de todos os enlaces da rede; •
constrói um mapa completo da rede; •
constrói o melhor caminho para cada roteador da rede utilizando o •
5.1.3 tabelas de roteamento
O algoritmo de roteamento IP utiliza tabelas de roteamento que contêm endereços de possíveis destinos e a maneira de alcançá-los, alocadas em hosts e gateways. Temos, então, uma rede de comutação por mensagens com inteligência de roteamento descentralizada (COMER, 2000).
Os gateways armazenam, segundo Comer (2000), informações parciais em suas tabelas de roteamento devido a dois motivos:
necessidade de
• buffers muito grandes e alto tráfego para atualiza- ção de tabelas completas;
dificuldade de se ter disponível uma máquina rápida o suficiente •
para rotear todos os datagramas sem degradar o throughput e ge- rar congestionamento.
Com o crescimento da Internet, percebeu-se também a necessidade de adotar um processo automático de atualização de tabelas de roteamento. Foi desenvolvida, então, uma estrutura formada por Core Gateways e Noncore Gateways.
Core Gateways
• ou Gateways Centrais são roteadores de alta
capacidade de processamento e armazenamento de dados. Contêm tabelas com todos os destinos e rotas possíveis. Os Core Gateways estão ligados ao backbone principal da Internet. Não utilizam rotas default (padrão).
Noncore Gateways
• ou Gateways Periféricos são responsá-
veis pela manutenção das tabelas de rotas locais. Têm rotas default para os Gateways Centrais. São responsáveis pelo roteamento de datagramas pertinentes a uma LAN de determinado sítio.
5.1.4 Protocolos de roteamento
Tanenbaum (2004) afirma que esses protocolos determinam o conteúdo das tabelas de roteamento, ou seja, são eles que ditam a forma como a tabela é montada e de quais informações ela é composta.
5.1.4.1 ggP – Gateway to Gateway Protocol
É o protocolo utilizado pelos primeiros Core Gateways para propagação de rotas. Utiliza o algoritmo Vector Distance, é encapsulado em um datagrama IP. Seu uso é restrito aos Core Gateways, e nenhum outro gateway interfere nessa comunicação (TANENBAUM, 2004).
São utilizados basicamente três formatos de mensagens GGP.
Formato 1 GGP:
• envia sinal de atualização ou inserção de no-
vas rotas.
Formato 2 GGP:
• é enviado imediatamente após um gateway rece-
ber uma mensagem de atualização GGP.
Formato 3 - teste de comunicação:
• é utilizada para que um
gateway verifique se um determinado “parceiro” está responden- do.
5.1.4.2 riP – Routing Information Protocol
Um gateway, utilizando RIP, envia mensagens de atualização de rotas em broadcasting a cada 30 segundos, mencionando as redes e suas respectivas distâncias (em hops). Os hosts, assim que recebem mensagens RIP, efetuam a atualização de suas tabelas (TANENBAUM, 2004).
O protocolo RIP difere dos demais que utilizam o algoritmo Vector Distan- ce na sua contagem de hops. Para o RIP, uma rede ligada diretamente a um gateway está à distância de “1” hop do mesmo e não à distância “0” como é adotada nos demais protocolos. Um gateway só deve efetuar uma alteração de rota quando aparecer uma rota de custo menor.
Devido à morosidade da divulgação de rotas, o RIP implementa um nú- mero máximo de hops igual a 16. Quando uma rota é divulgada com valor de 16 hops, ela é considerada inatingível. O maior problema do protocolo RIP está na possibilidade de ocorrência de loops na rede (TANENBAUM, 2004).
5.1.4.3 EgP – Exterior Gateway Protocol
Gateways que trocam informações de roteamento com outros gateways que não pertencem ao mesmo Sistema Autônomo, são considerados “Vizi-
nhos Exteriores” e utilizam o protocolo EGP (Exterior Gateway Protocol)
para se comunicarem (TANENBAUM, 2004).
Gateways que trocam informações de roteamento somente com gateways do mesmo Sistema Autônomo são considerados “Vizinhos Interiores” e utilizam diversos protocolos denominados genericamente IGP (Interior Ga- teway Protocols). Entre eles, encontram-se o RIP (Routing Information Protocol), o HELLO, o OSPF (Open Shortest Path First), o IGRP (Internal Gateway Routing Protocol), entre outros (TANENBAUM, 2004).
O protocolo EGP tem três características principais: suporta mecanismo de aquisição de vizinho; •
faz testes contínuos para ver se os vizinhos estão respondendo; •
divulga informação entre vizinhos utilizando mensagens de atuali- •
zação de rotas.
5.1.4.4 OsPf – Open Shortest Path First
É um protocolo que utiliza a técnica SPF (Shortest Path First), também co- nhecida como Link State. É um padrão aberto, largamente utilizado e de alto desempenho. Todas as mensagens OSPF são inicializadas com um cabeçalho padrão (TANENBAUM, 2004).
5.2 A camada de transporte
As suas responsabilidades principais são transportar e regular o fluxo de informações da origem para o destino de forma confiável e precisa, por isso o termo “qualidade de serviço” é freqüentemente usado para descrever a fi- nalidade da camada de transporte. O controle ponto a ponto, fornecido pelas janelas móveis, e a confiabilidade nos números de seqüência e nas confirma- ções são umas de suas funções principais (ODOM, 2002).
Pensando sobre o assunto
Para entender melhor a confiabilidade e o controle de fluxo, imagine um aluno que estude um idioma estrangeiro durante um ano. Agora, imagine que ele visite o país onde o idioma é usado. Na conversação, ele deverá pedir que todos repitam suas palavras (confiabilidade) e que falem pausadamente para que ele possa entender as palavras (controle de fluxo).
5.2.1 Protocolos da camada de transporte
Segundo Odom (2002), o protocolo TCP/IP da camada de transporte do modelo OSI tem dois protocolos: o TCP e o UDP. O TCP fornece um canal virtual entre aplicações do usuário final. A seguir vejamos algumas de suas
características:
é orientado para conexão; •
é confiável; •
divide as mensagens enviadas em segmentos; •
reagrupa as mensagens na estação de destino; •
reenvia tudo o que não foi recebido; •
reagrupa as mensagens a partir de segmentos recebidos. •
O UDP transporta dados sem confiabilidade entre origem e destino. A seguir, veremos algumas características do UDP:
não orienta a conexão; •
não é confiável; •
transmite mensagens (chamado de datagramas do usuário); •
não fornece verificação de
• software para a entrega da mensagem
(não é confiável);
não reagrupa as mensagens de entrada; •
não usa confirmações; •
não fornece controle de fluxo. •
5.2.2 tCP
Conforme expõe Comer (2000), o Transmission Control Protocol (TCP), ou Protocolo de Controle de Transmissão, é um protocolo da camada de trans- porte orientado para conexão que fornece transmissão de dados de forma
confiável. O TCP é parte da pilha de protocolos TCP/IP. A seguir, vejamos
os campos no segmento TCP e suas funções:
número porta de origem
• : número da porta que fez a chamada;
número porta de destino
• : número da porta chamada;
número da seqüência
• : número usado para garantir a seqüência
correta dos dados de chegada;
ACKNOWLEDMENT ou número de confirmação
• : esse campo
identifica a posição do byte mais alto (ou último byte) que o computa- dor fonte recebeu. O número de reconhecimento refere-se ao fluxo de dados na direção contrária ao segmento. As confirmações sempre es- pecificam o número do próximo byte que o receptor espera receber.
tamanho do cabeçalho (HLEN)
• : número de palavras de 32 bits
no cabeçalho;
reservado:
• reservado para uso futuro. Definido como zero;
bits
• de código: funções de controle (como a configuração e a termi-
nação de uma sessão);
tamanho da janela de transmissão
• : número de octetos que o
remetente está disposto a aceitar;
checksum
• (verificação de erros): é usado para verificar a integridade
tanto do cabeçalho como dos dados do segmento TCP.
ponteiro urgente
• : permite que o transmissor especifique que alguns
dados são urgentes. Isso significa que os dados serão expedidos tão rápido quanto seja possível.
opções:
• o software TCP usa esse campo para se comunicar com o software do outro extremo da conexão.
dados:
• informações que se deseja transmitir.
A seguir, veremos a figura representativa do cabeçalho TCP.
0 15 16 32
Número Porta Origem Número Porta Destino
Número da Seqüência
ACKNOWLEDMENT ou Número de confirmação Tamanho do Cabeçalho Reservado U R G A C K P S H R S T S Y N F I N Tamanho da Janela de Transmissão
Checksum Ponteiro Urgente
Opções Dados Figura 1 – Cabeçalho TCP
Fonte - Comer (2000)
5.2.3 UdP
Comer (2000) assevera que User Datagram Protocol (UDP) é o protocolo de transporte sem conexão da pilha de protocolos TCP/IP. O UDP é um protocolo simples que troca datagramas, sem confirmações ou entrega garantida. O proces- samento e a retransmissão de erros devem ser tratados por outros protocolos.
32 bits
P Porta de Origem Porta de Destino
Tamanho Checksum
Dados
Figura 2 – Cabeçalho UDP Fonte – Comer (2000)
O UDP não usa janelamento ou confirmações, portanto os protocolos da camada de aplicação fornecem a confiabilidade. O UDP é projetado para aplicações que não precisam colocar seqüências de segmentos juntas (COMER, 2000).
Os protocolos que usam o UDP são:
SNMP (
• Simple Network Management Protocol) ou protoco- lo de gerência simples de rede: facilita a troca de informações
DHCP (
• Dynamic Host Configuration Protocol): é um protocolo
de serviço TCP/IP que oferece configuração dinâmica de computado- res, com distribuição de endereços IP de host e outros parâmetros de configuração para clientes de rede;
DNS (
• Domain Name System) ou sistema de nomes de do- mínios: é um sistema de gerenciamento de nomes hierárquico distribu-é um sistema de gerenciamento de nomes hierárquico distribu- ído operando segundo duas definições: verificar e atualizar seu banco de dados e resolver nomes de servidores em endereços de rede IP.
5.2.4 Portas numeradas
Tanto o protocolo TCP quanto o UDP utilizam números de porta para trans- mitir as informações para as camadas superiores. Os números de portas são usados para manter registro de diferentes conversações que cruzam a rede ao mesmo tempo (TORRES, 2001).
Algumas portas são reservadas no TCP e no UDP, embora possa não haver aplica- ções para suportá-los. Os números de portas têm os seguintes conjuntos atribuídos:
números abaixo de 255
• : para aplicações públicas;
números de 255 a 1023
• : atribuídos às empresas para aplicações
comerciais;
números acima de 1023
• : não são regulamentados.
Os sistemas finais usam números de portas para selecionar as aplicações cor- retas. Os números de portas de origem são atribuídos dinamicamente pelo host de origem, normalmente são números maiores do que 1023 (TORRES, 2001).
5.2.5 Handshake triplo/aberto
Os serviços de conexão orientada envolvem três fases. Na fase de es- tabelecimento da conexão, um único caminho entre a origem e o destino é determinado (COMER, 2000).
Os hosts TCP estabelecem uma sessão orientada para conexão com outro usando um handshake triplo. Uma seqüência de conexão handshake triplo/ aberta sincroniza a conexão nas duas extremidades antes dos dados serem transferidos (COMER, 2000).
“
A retransmissão
e confirmação
positiva é uma
técnica comum que
muitos protocolos
usam para fornecer
confiabilidade.”
Primeiro, um host inicia uma conexão pelo envio de um pacote indican- do seu número de seqüência inicial X com um determinado bit no cabeçalho definido para indicar um pedido de conexão. O outro host recebe o pacote, grava o número de seqüência X, responde com uma confirmação X + 1 e inclui seu próprio número de seqüência inicial Y. O número de confirmação X + 1 significa que o host recebeu todos os octetos até X, inclusive, e que está esperando X + 1 em seguida (COMER, 2000).
A figura 3 expõe a representação do estabelecimento de conexão (handshake) em três direções do protocolo TCP.
Segundo Comer (2000), a retransmissão e confirmação positiva ou PAR (Positive Acknowledgment and Retransmission) é uma técnica comum que muitos protocolos usam para fornecer confiabilidade. Com a PAR, a origem envia um pacote, aciona um timer e espera por uma confirmação antes de enviar o próximo pacote. Se o timer expirar antes da origem receber uma con- firmação, a origem retransmitirá o pacote e iniciará novamente o timer.
O tamanho da janela determina a quantidade de dados que pode ser transmi- tida de uma vez antes de receber uma confirmação do destino. Quanto maior o ta- manho da janela (bytes), maior a quantidade de dados que o host pode transmitir. O autor acrescenta que depois de um host transmitir o número de bytes da janela dimensionada, ele tem de receber uma confirmação de que os dados foram recebidos antes de poder enviar mais mensagens. Por exemplo, com um tamanho de janela 1, cada segmento individual (1) tem de ser confirmado antes que o próximo segmento possa ser enviado.
O janelamento é um mecanismo de controle de fluxo que exige que o dispositivo de origem receba uma confirmação do destino depois de transmitir
Figura 3 – Conexão handshake em três direções TCP Fonte – Comer (2000)
uma determinada quantidade de dados. Caso não receba a confirmação, a origem saberá que os dados deverão ser retransmitidos e que a taxa de trans- missão deverá ser diminuída (COMER, 2000).
Portanto você pôde identificar que a camada de rede é responsável pelo roteamento dos pacotes entre a origem e o destino, mesmo que eles te- nham de passar por diversos dispositivos intermediários durante o percurso. Além disso, é responsável pelo controle de congestionamento e a contabi- lização do número de pacotes utilizados pelo usuário. E que a camada de transporte provê o transporte rápido e confiável de dados, independente da rede física utilizada.
síntese da aula
Nesta aula, conhecemos duas novas camadas do modelo OSI: a camada de rede e a de transporte. A camada de rede é responsável pela navega- ção dos dados por meio da rede. Suas principais funções são o roteamento dos pacotes entre a origem e o destino, mesmo que eles tenham que passar por diversos dispositivos intermediários durante o percurso; é responsável tam- bém pelo controle de congestionamento e pela contabilização do número de pacotes utilizados pelo usuário.
O algoritmo de roteamento é a parte do programa de nível de rede responsável por definir por qual caminho um pacote deve ser encaminhado a fim de chegar ao destino desejado. As características desejadas em um algoritmo de roteamento são: correção, eficiência, estabilidade, robustez.
Analisamos alguns tipos de algoritmos de roteamento: estático, dinâmico, estrutura plana, estrutura hierárquica, algoritmos intra-domínio, algoritmos in- ter-domínios. Dois algoritmos são os mais comumente utilizados por protocolos de roteamento: algoritmo de vetor de distância (Distance Vector) e algoritmo de estado do enlace (Link State)
O algoritmo de roteamento IP utiliza tabelas de roteamento que contém endereços de possíveis destinos e a maneira de alcançá-los, alocadas em hosts e gateways.
Também analisamos os protocolos de roteamento: GGP – Gateway to Gateway Protoco, RIP – Routing Information Protocol, EGP – Exterior Gateway Protocol, OSPF – Open Shortest Path First.
Depois falamos sobre a camada de transporte. Ela é parte principal de toda a hierarquia de protocolos. Sua tarefa é prover o transporte rápido e confiá- vel de dados. Tem dois protocolos: o TCP (fornece um canal virtual entre aplica- ções do usuário final) e o UDP (transporta dados sem confiabilidade entre origem e destino). Os dois protocolos utilizam números de porta para transmitir as in- formações para as camadas superiores. Os números de portas são usados para manter registro de diferentes conversações que cruzam a rede ao mesmo tempo.
A retransmissão e confirmação positiva é uma técnica comum que muitos protocolos usam para fornecer confiabilidade. O janelamento é um mecanismo de controle de fluxo que exige que o dispositivo de origem receba uma confirma- ção do destino depois de transmitir uma determinada quantidade de dados.