Redes
Interligação de redes
Nenhuma das tecnologias existentes de rede local é adequada para satisfazer todos os
requisitos de comunicações das aplicações, isto é, nenhuma das tecnologias é totalmente
escalável. A interligação de redes baseia-se na utilização de funcionalidades específicas de rede
que proporcionam um serviço global de interligação de redes locais heterogéneas. Estas
funcionalidades são realizadas tanto em hardware como em software.
Hardware: Routers;
TCP/IP
O protocolo de nível de rede mais utilizado é o protocolo de rede usado na internet. O
Internet Protocol (IP), da pilha protocolar TCP/IP. Esta pilha apresenta como principais
características:
IP – Internet Protocol
É um protocolo de interligação de rede, cujo paradigma protocolar é o melhor esforço,
ou seja, o protocolo esforça-se por entregar os datagramas no destino mas não o garante. A
versão IPv4 é a que está em uso, no entanto a versão IPv6 está em instalação.
Flags –
Fragment offset – Define a que parte do datagrama pertence este fragmento e mede-se em
blocos de 64bits;
Time To Live – Máximo tempo de vida do datagrama que é decrementado a cada salto. Ao valor
0 o datagrama é destruído;
Protocol – Usado para identificar o protocolo da camada acima a quem devem ser entregues os
dados transportados;
Endereçamento IP
Um endereço de IP é um identificador de 32bits por interface do sistema terminal ou
encaminhador. Uma interface é uma ligação entre o sistema terminal ou o encaminhador e
ligação física.
- Sem classes – Não considera os bits de classe e utiliza uma máscara de 32bits para
determinar o endereço de rede;
Máscara de rede – Padrão que, quando conjugado com o endereço de IP, devolve a parte do
endereço de rede (ou sub-rede);
- Classe A – 11111111.00000000.00000000.00000000
- Classe B – 11111111.11111111.00000000.00000000
- Classe C – 11111111.11111111.11111111.00000000
Numa sub-rede existe um conjunto de endereços com a parte de sub-rede iguais, onde as
interfaces estão ligadas fisicamente sem a intervenção de um router. As interfaces comunicam
diretamente entre si.
Restrições a Endereços IP
Endereços reservados:
Endereços privados são atribuídos para internets privadas, sem conetividade global, não devem
ser visíveis nem são encaminhados na internet exterior.
O ARP mapeia um endereço de IP no endereço MAC que lhe corresponde. É uma operação local
à LAN e não utiliza encapsulamento IP.
Fragmentação
As ligações de rede têm diferentes MTU, ou max transfer unit, que é o tamanho máximo
da trama da camada de ligação. Diferentes tipos de ligação implicam diferentes MTUs. Um
datagrama IP demasiado grande é dividido em vários fragmentos dentro da rede, e a junção é
feita no nó de destino. No cabeçalho do datagrama existem campos que permitem identificar e
ordenar fragmentos.
- Podem mudar-se os endereços da rede a qualquer momento, sem que todo o mundo
tenha que ser avisado disso acontecer;
Para que se faça a implementação de um sistema deste género é necessário que se tenha
um router NAT, este router irá substituir o par (IP origem; Porta) de todos os datagramas que
saírem por (IP NAT; Nova Porta) e os sistemas do exterior vão endereçar todas as respostas para
o endereço de IP NAT fornecido, e a nova porta também fornecida. Estes routers guardam numa
tabela NAT todas as trocas que foram feitas de pares para que depois se consiga identificar os
destinos e origens dos datagramas. Quando chegam datagramas ao router o par (IP NAT; Porta)
é substituído pelo correspondente que está armazenado na tabela NAT. O NAT é muito
controverso pois viola a independência entre camadas, o conceito fim-a-fim e em geral não é a
forma correta de resolver a escassez de endereços.
A camada de rede fornece uma ligação lógica entre dois sistemas terminais.
O UDP é um serviço do tipo “best effort”, ou seja, faz o maior esforço para cumprir aquilo
para que foi desenhado, no entanto não o garante. Os datagramas podem ser perdidos ou até
mesmo entregues fora de ordem. O UDP tem capacidade de deteção de erros, através de
Checksum, mas no entanto não faz a correção dos mesmos. As vantagens do UDP são:
Para fechar a conexão o cliente envia um segmento do tipo FIN, ao qual o servidor envia
um ACK de resposta, seguido de um segmento de FIN. Após este segundo segmento FIN o cliente
apenas envia um ACK para confirmar que a conexão foi de facto fechada.
As retransmissões são ativadas por eventos de timeout ou então por envio de ACKs
duplicados. O valor de timeout do TCP deve ser maior do que o RTT, mas não deverá ser muito
pequeno para não causar situações de timeout prematuro, onde ocorrerão retransmissões
desnecessárias. Se o timeout for muito grande irá haver uma reação muito lenta à perda de
segmentos. O RTT pode ser estimado através da obtenção de amostras, e do cálculo das médias
de várias amostras.
O controlo de congestionamento tem como objetivo fazer com que o transmissor TCP
envie os dados tão rapidamente quanto possível, sem causar o congestionamento da rede.
Existem várias formas de encontrar a taxa de transmissão máxima, de forma a que esta fique
abaixo do nível de congestionamento da rede.
Nível de Aplicação
Só é possível comunicar se existirem pelo menos dois intervenientes. As aplicações
normalmente não falam sozinhas. Requer a criação de um canal de comunicação entre as
aplicações. Sendo assim é também necessário conseguir identificar a máquina e aplicação com a
qual queremos contactar.
- Peer-to-peer (P2P);
- Híbridas;