Você está na página 1de 8

lOMoARcPSD|8011093

Redes

Introdução às Redes de Computadores (Universidade do Minho)

StuDocu is not sponsored or endorsed by any college or university


Downloaded by Bruna Paço (brunafpaco@gmail.com)
lOMoARcPSD|8011093

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.

Software: Protocolos de rede;

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:

- Aberta – Especificações publicadas e bem conhecidas, abertura completa ao


desenvolvimento de código;

- Portável – Independência do sistema operativo e plataforma;

- Estável e Robusta – Normas testadas ao longo de três décadas, e fixas. Constante


desenvolvimento e aperfeiçoamento.

- Suporte global – Incluída em todos os sistemas de computação.

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.

As principais funções do protocolo são:

- Fornecer a unidade elementar de transferência de dados;

- Inclui mecanismos para o encaminhamento dos PDUs;

- Fragmentação de datagramas: transita em qualquer LAN;

- Incorpora um esquema de endereçamento universal.

Formato dos datagramas no protocolo IP

Downloaded by Bruna Paço (brunafpaco@gmail.com)


lOMoARcPSD|8011093

Vers – Versão do protocolo (4 ou 6);

HLEN – Tamanho do cabeçalho em blocos de 32bits;

TOS – Dá uma indicação em abstrato dos parâmetros de qualidade de serviço pretendido;

Total Length – Tamanho total em bytes;

Identification - Identificador único por datagrama e por conexão, ajuda a identificar os


fragmentos que devem ser reagrupados;

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;

Header Checksum – Soma de verificação em complemento para 1;

IP Options – Opcional e de tamanho variável.

Source IP Address – Endereço IP da origem do datagrama;

Destination IP Address – Endereço IP do destino do datagrama;

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.

- Os encaminhadores têm tipicamente múltiplas interfaces;

- Os sistemas terminais podem ter múltiplas interfaces;

- Os endereços de IP associam-se a interfaces, e não a sistemas terminais ou


encaminhadores;

Os endereços de IP podem fazer endereçamento de duas formas:

- Por classes – Utiliza os primeiros bits como identificadores de classe;

- Classe A – 0 + 7bits de rede + 24bits de estação;

- Classe B – 10 + 14bits de rede + 16bits de estação;

- Classe C – 110 + 21bits de rede + 8bits de estação;

- Classe D – 1110 + Endereços Multicast;

- Classe E – 11110 – Reservada para utilização futura;

Downloaded by Bruna Paço (brunafpaco@gmail.com)


lOMoARcPSD|8011093

- 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

Decimal: 255.0.0.0 -> Notação /8

- Classe B – 11111111.11111111.00000000.00000000

Decimal: 255.255.0.0 -> Notação /16

- Classe C – 11111111.11111111.11111111.00000000

Decimal: 255.255.255.0 -> Notação /24

No endereçamento sem classes as máscaras podem ter qualquer outro valor.

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:

- Os primeiros 4bits não podem ser 1;

- 127.x.x.x é o endereço reservado para loopback;

- Os bits de host a 0s ou a 1s são reservados (rede ou broadcast);

- Bits de subnet a 0s ou 1s são 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.

ARP – Address Resolution Protocol

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.

IP – Endereçamento sem classe


O endereçamento por classes faz um uso ineficiente do espaço de endereçamento, existe
uma exaustão de espaço isto porque, por exemplo, uma classe B aloca 65000 hosts, mesmo que
só existam 2000.

No endereçamento sem classes a parte do endereço relativa à rede tem um comprimento


arbitrário e é indicado no fim do endereço através de /x sendo x o número de bits
correspondentes à rede.

A utilização de sub-redes permite melhor aproveitamento, organização e gestão do


espaço de endereços. Introduz um outro nível hierárquico para routing.

Downloaded by Bruna Paço (brunafpaco@gmail.com)


lOMoARcPSD|8011093

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.

NAT – Network Address Translation


As redes locais utilizam apenas um endereço Internet conhecido com acesso global.
Existem vários fatores que fazem com que esta implementação seja boa, como por exemplo:

- Apenas se gasta um endereço ao ISP, em vez de uma gama de endereços;

- Podem mudar-se os endereços da rede a qualquer momento, sem que todo o mundo
tenha que ser avisado disso acontecer;

- Pode-se mudar de ISP sem mudar de endereços na rede local;

- Os equipamentos da rede local não são endereçáveis do exterior, o que proporciona um


nível de proteção de segurança acrescido.

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.

DHCP – Dynamic Host Configuration Protocol


Permite obter um endereço dinamicamente, segue uma estrutura plug-and-play. O
cliente envia uma mensagem de descoberta ao servidor DHCP, à qual este responde com a oferta
de um endereço. O cliente poderá então requisitar este endereço ao servidor, requisito este ao
qual o servidor responde um uma mensagem de conhecimento que aquele endereço está agora
associado àquele cliente. O servidor DHCP deve estar na mesma rede que o cliente, caso não
esteja é necessário um agente DHCP-Relay (um router) que sirva de intermediário. Um cliente
pode receber ofertas de mais que um servidor DHCP, mas só pode escolher uma delas.

TCP/IP : Protocolos de transporte UDP e TCP


Disponibiliza uma ligação lógica entre aplicações que estão a ser executadas em sistemas
terminais diferentes. Os protocolos de transporte são executados nos sistemas terminais.

Existem dois tipos de serviço de transportes:

- Orientado à conexão – Estabelece, mantém e finaliza a conexão lógica entre processos.


Suporta uma vasta variedade de aplicações e implica um serviço fiável. É o mais comum.

- Não orientado à conexão

Downloaded by Bruna Paço (brunafpaco@gmail.com)


lOMoARcPSD|8011093

O estabelecimento e finalização da conexão serve três grandes propósitos. Permite


assegurar que o sistema terminal com o qual se vai estabelecer a ligação existe, permite a troca
e negociação de parâmetros adicionais e permite também a alocação de recursos nas entidades
envolvidas no serviço de transporte.

A camada de rede fornece uma ligação lógica entre dois sistemas terminais.

A camada de transporte fornece uma comunicação lógica entre dois processos.

A camada de transporte usa e melhor os serviços disponibilizados pela camada de rede.


É possível fazer uma troca de dados fiável e ordenada, com controlo de gestão, controlo de fluxo
e estabelecimento de ligação (TCP) e também fazer trocas de dados não fiáveis e desordenadas.

A multiplexagem é o processo pelo qual múltiplos canais de dados, provenientes de


diferentes fontes, são combinados e transmitido através de um único canal de dados. A
multiplexagem no emissor consiste em recolher os dados de diferentes sockets e delimitá-los
com os respetivos cabeçalhos construindo os respetivos segmentos. No recetor a
desmultiplexagem consiste em entregar os diferentes segmentos ao socket correto. Os sistemas
terminais utilizam os endereços IP e os números de porta presentes no datagrama para
encaminhar o segmento para o socket correto.

UDP – User Datagram Protocol

Protocolo de transporte fim-a-fim, não fiável. É orientado ao datagrama, ou seja, não há


o estabelecimento nem finalização da conexão. É uma interface da aplicação com o protocolo IP
para multiplexar e desmultiplexar tráfego. Utiliza o conceito de porta como forma de direcionar
datagramas IP para o nível superior. É utilizado em situações em que não se justifica o TCP, ou
em situações em que o fator tempo é crítico. (Por exemplo no streaming de vídeo e áudio)

O método de desmultiplexagem do UDP é feito com recurso à identificação de sockets


através do endereço de IP de destino e o número de porta do destino. Quando um sistema
terminal recebe um datagrama UDP verifica qual é o número da porta destino que consta do
datagrama e redireciona o datagrama para essa porta. Existe a possibilidade de datagramas com
endereços IP de origem diferentes serem direcionados para o mesmo socket.

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:

- Não há estabelecimento de conexão (menos atraso);

- Simples, não há variáveis de estado;

- Tamanho do cabeçalho é pequeno;

- Não há controlo de congestionamento, sempre que necessário é enviado;

Downloaded by Bruna Paço (brunafpaco@gmail.com)


lOMoARcPSD|8011093

TCP – Transmission Control Protocol

O TCP permite o transporte fiável de dados fim-a-fim, e é orientado à conexão. Cada


conexão é identificada por um par de pontos terminais. Uma conexão é um circuito virtual entre
portas de aplicações. Os dados são multiplexados através do número de porta. Existe controlo de
fluxo, controlo de congestão e de erros. É um serviço full-duplex, orientado à transmissão de
sequências de bytes. É um serviço fiável, que garante a entrega dos dados ordenados, com
deteção de erros e a sua respetiva correção através de retransmissão. É um serviço orientado à
conexão de dois processos. O controlo de fluxo é feito com buffers nos dois extremos da ligação.

O estabelecimento da conexão é feito através do processo de handshake triplo. Em


primeiro lugar o cliente envia um segmento SYN para o servidor onde especifica o número inicial
da sequência e não contém dados. O servidor recebe o SYN e responde com um segmento
SYNACK, alocando espaço nos seus buffers e especificando o número de sequência inicial. O
cliente recebe o segmento SYNACK e responde com um segmento ACK que pode conter dados.

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.

Os datagramas possuem números de sequência que identificam o número do primeiro


byte do segmento, e número de ACK, que identifica o número de sequência do próximo byte
esperado por quem envia.

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.

- Modelo descentralizado – Cada transmissor TCP configura a sua própria taxa de


transmissão com base no feedback implícito recebido. Caso receba um ACK significa que a rede
não está congestionada e que portanto pode aumentar a taxa, caso receba um segmento perdido
assume-se que a rede está congestionada e portanto a taxa de transmissão vai ser reduzida.

- Sonda a largura de banda – Aumenta a taxa de transmissão, sempre que um ACK


é recebido até que eventualmente ocorra uma perda.

Downloaded by Bruna Paço (brunafpaco@gmail.com)


lOMoARcPSD|8011093

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.

- Sockets – permitem definir os extremos de um canal de comunicação. As sockets


identificam a máquina (IP), bem como a aplicação (porta) com a qual queremos comunicar. As
sockets oferecem uma interface de programação. Em sockets existem dois tipos de transporte,
datagramas UDP e datagramas TCP.

- Modelo cliente/servidor TCP – O servidor está executado ininterruptamente


aguardando por contactos de clientes, servindo-os sempre que estes ocorram. Os clientes são
responsáveis por iniciar a comunicação, criando canais de comunicação e efetuando pedidos
aos servidores. O cliente cria um socket e solicita uma ligação ao servidor, ficando a aguardar
que a mesma seja estabelecida, quando for estabelecida envia o pedido ou mensagem, recebe
a resposta e finaliza a conexão. O servidor cria uma socket e aguarda ligações, e por cada
ligação recebida cria um novo socket. Recebe o pedido ou mensagem e envia a resposta,
finalizando a conexão.

Arquiteturas do nível de aplicação

- Cliente/Servidor – São a maioria das aplicações;

- Peer-to-peer (P2P);

- Híbridas;

Downloaded by Bruna Paço (brunafpaco@gmail.com)

Você também pode gostar