Páginas

sábado, 15 de novembro de 2014

Modelo OSI - Camada 1

Camada Física (1) – Physical Layer


Modelo OSI - Camada 2

Camada de Enlace (2) – Data-Link Layer
Funções
- Assegurar que os dados são transmitidos ao equipamento apropriado, convertendo os dados (provenientes da camada de rede) em bits, o que possibilita desta maneira a sua transmissão no meio físico (por exemplo: cabo), meio esse (definido na camada física) cujos controlos de acesso são também controlados nesta camada 2.
- Identificação de cada máquina na rede local.
- Encapsular os pacotes adicionando uma frame header (cabeçalho da frame) e uma frame trailer com endereçamento apropriado. 

Sub-Camadas
A camada de enlace (IEEE Ethernet) possui duas sub-camadas distintas:
- Logical Link Control (LLC): Esta sub-camada tem como função principal a identificação de protocolos da camada de rede e respectivo encapsulamento do pacote (Define o frame header e o frame trailer), bem como o controle de fluxo e sequenciação de bits. Um cabeçalho LLC diz á camada de enlace o que fazer com um pacote logo que a frame é recebida. 

- Media Access Control (MAC): Esta sub-camada tem como funções principais:
  -Definição de alocamento e transmissão dos pacotes no meio;
  -Definir o endereçamento fisico e a topologia lógica;
  -Disciplina da linha, notificação de erros (não a correcção), entrega de frames ordenada (marca o inicio e fim das mesmas) e controlo de fluxo.

Dispositivos (Layer 2 Devices) e Funcionamento
Os dispositivos mais comuns nesta camada são os switches, bridges e os Access Points (em modo bridge). Resumidamente são todos os dispositivos que apresentam como função principal o bridging. Os Switches são considerados “hardware-based-bridges” por utilizarem um hardware especial ASICS( Application Specific Integrated Circuits).  


Protocolos
Em cada hop existe um protocolo de layer 2 utilizado durante a viagem dos pacotes. Diferentes meios físicos, diferentes tipos de ligação e a tipologia de rede utilizada (LAN, WAN) afectam a escolha de protocolos. Cada protocolo utiliza um tipo de frame diferente. Ao chegar a um router, é removida a frame (utilizada até chegar "aqui") e adicionada um novo frame header e frame trailer, utilizados até chegarem ao novo router (onde irá ser feito novamente este processo).

Layer 2 Frame - Formato Geral da Frame


PPP Frame


Ethernet Frame





sexta-feira, 14 de novembro de 2014

Modelo OSI - Camada 3

Camada de Rede (3) – Network Layer
Funções
- Encaminhamento e endereçamento lógico (Ex: IP Adress) dos dados.
- Transporte de tráfego entre máquinas não interligadas localmente.


Dispositivos (Layer 3 Devices) e Funcionalidades
O dispositivo mais comum definido nesta camada é o router, pois é um dos que assegura os serviços de encaminhamento numa “Internetworking” e só se “preocupam” apenas com a localização lógica das redes.


Todos os routers possuem routing tables. Uma routing table é uma lista onde constam todas as redes conhecidas pelo router, bem como o melhor caminho a percorrer para a transmissão de pacotes (mais especificamente estão definidas as portas de saída [outgoing ports] e o endereço [address]).


Durante o caminho entre o host transmissor e o host destinatário, o pacote irá passar (“saltar”) por diversos routers. Cada vez que chega a um, é lido o endereço IP do pacote e decidido o que fazer com ele (ou é enviado para uma das redes ou enviado para o próximo router). O caminho percorrido pelo pacote de um router para outro denomina-se hop, sendo que o próximo router onde o pacote irá ser analisado denomina-se Next Hop Router.  O processo de seleccionar o melhor caminho a percorrer pelos pacotes denomina-se routing.

Os routers possuem diversas funcionalidades. São elas:
  -Partem domínios de broadcast (e limita-os) e de colisão (alguns switchs mais avançados [mesmo sendo considerados da camada Data-Link] também têm esta funcionalidades), mas não propagam mensagens de broadcast ou multicast.
  -Cada interface é uma rede isolada (tem um n° identificação exclusivo e cada host utiliza esse mesmo endereço de rede).
  -Determinam para que router o pacote deve ser enviado devido à utilização do endereço lógico no cabeçalho do mesmo.
  -Podem utilizar listas de acesso (criadas por um administrador) para gerir a segurança dos pacotes de entrada ou saída.
  -Possibilita a comunicação entre Virtual LANs (VLANS).
  -Pode funcionar apenas em modo bridge (função tipicamente associada a dispositivos da camada Data-Link) e efectuar efectuar routeamento de pacotes (na mesma interface) em simultâneo.
  -Assegura a Qualidade do Serviço (Quality of Service - QoS) para tipos específicos de tráfego de dados.
Tipos de Pacotes e Protocolos
Existem 2 tipos de pacotes utilizados na camada de rede:
- Pacotes de Dados (Data Packets): Pacotes utilizados para transporte de dados pela rede. Os protocolos utilizados para suportar tráfego deste tipo são denominados Routed Protocols.

- Pacotes de Actualização (Router Update Packets): Utilizado para transporte de actualizações sobre routers vizinhos, estes pacotes são utilizados na formação e manutenção das tabelas de encaminhamento de cada router. Os protocolos utilizados para suportar tráfego deste tipo denominam-se Routing Protocols.

Routed Protocols
Os protocolos deste tipo têm como funções principais disponibilizar um esquema de endereçamento que permita identificar redes e os hosts de cada uma individualmente, encapsular segmentos de camada 4 em pacotes e incluir endereços aos mesmos, direccionar um pacote entre uma ou mais redes até chegar ao host destinatário e “desencapsular” (remover) o cabeçalho de um pacote (remove the packet header) e enviar o segmento à camada 4  (camada de transporte).
Os protocolos mais comuns nesta categoria são o IP (IPv4 e IPv6), IPX (Novell), AppleTalk e DECNet. Neste documento iremos focar no protocolo IP.

As características mais importantes do protocolo IP são quatro:
-> Low overhead (Cabeçalho pequeno) – “Faz o que tem de fazer”; Rapidez
-> Connectionless – Não estabelece ligação com o destinatário antes de enviar pacotes.
-> “Melhor esforço” (não confiável): Não garante a recepção, não verifica se chegou ao destino nem reenvia pacotes.

-> Precisa apenas de saber o tamanho máximo do pacote que pode ser enviado, independentemente do meio de transmissão. 


IPv4 Packet Header (Cabeçalho de um pacote IPv4)

IP Header (Cabeçalho de um IP)

Composição de um endereço IPv4 (Tipo Hierárquico)


Routing Protocols
Os protocolos deste tipo são nada mais nada menos do que um conjunto de regras utilizadas para efectuar a troca de informações. Para os routers poderem efectuar a transmissão de informação (pacotes) entre eles, é necessário que os mesmos saibam que caminhos devem utilizar. Estes “caminhos” podem ser definidos por um administrador de sistemas (determina a rota que os pacotes terão que percorrer do ponto A para o ponto B) ou os routers podem “definir entre eles” qual o melhor caminho a ser percorrido pelo pacote (e é aqui que entram os protocolos como o RIP, EIGRP e OSPF por exemplo). 


Modelo OSI - Camada 4

Camada de Transporte (4) – Transport Layer
Funções
- Responsável por todas transferências dos dados das aplicações que ocorrem entre 2 estações (estabelece uma comunicação confiável entre 2 nós [end to end, nó-a-nó]).

- Permite que o mesmo dispositivo consiga transmitir dados de diferentes aplicações na mesma rede em simultâneo (através de circuitos virtuais).

- Possui mecanismos para criar, manter e finalizar circuitos virtuais. (Os circuitos virtuais são utilizados antes de ser estabelecida a comunicação entre 2 nós. Permitem à camada de transporte receber dados de diferentes aplicações de camadas superiores (camada 7 p.e.), sem que os dados colidam uns com os outros, ou seja, cada aplicação da camada superior têm um circuito virtual próprio que “liga” à camada de rede). Manterá a consistência desse túnel virtual.
- Efectua o controlo de fluxo de informação:
  -Segmentos transmitidos são confirmados ao serem recebidos;
  -Qualquer segmento não confirmado é retransmitido;
 -Reconstrução dos segmentos na sua sequência original (uma vez recebidos pelo computador destinatário).
  -Mantém um fluxo de dados gerível (a fim de evitar congestionamento, sobrecarga e perca de dados)



Protocolos
-> TCP (Transmission Control Protocol) – Reliable (Confiável)
Utilizado por aplicações que necessitam que os dados sejam enviados e recebidos sem erros e sem estarem em falta, e por isso toleram algum atraso na comunicação para se certificarem de que tudo se mantém correcto.
Exemplo: Web; E-mail (SMTP, IMAP/POP).

-> UDP (User Datagram Protocol) – Fast (Rapidez)
Utilizado por aplicações que têm como prioridade a rapidez no envio e recepção de dados, não havendo por isso qualquer tolerância a atrasos na comunicação. No entanto, existem algumas aplicações que aceitam erros ou falhas ocasionais durante a transmissão dos dados.
Exemplo: Streaming de Video ;VoIP; Torrents.

O processo de comunicação utilizado pelo protocolo TCP denomina-se Three-way Handshake.


Durante a transmissão de dados, ambos os dispositivos controlam periodicamente a ligação estabelecida para assegurarem que os dados estão a ser correctamente enviados e recebidos. Um congestionamento de dados pode ocorrer quando os computadores geram os dados mais rapidamente do que a capacidade máxima suportada pela infra-estrutura de rede consegue transmitir (ou quando existem inúmeros computadores a transmitir datagramas para um único gateway ou destino). Para evitar a perda de datagramas, existem essencialmente três métodos de controlo de fluxo:
-> Buffering
            Quando uma máquina recebe um fluxo de datagramas maior do que ela pode processar, armazena-os numa memória chamada buffer. Este processo de “bufferização” resolve o problema apenas se os datagramas fizerem parte de uma pequena “rajada”. Se o fluxo for contínuo, a memória buffer irá esgotar-se (perda de capacidade de recepção) e a partir daí os datagramas que continuarem a ser enviados serão perdidos. Para gerir esta “inundação de dados” e evitar a perda de datagramas, a camada de transporte irá enviar um sinal de “not ready” ao transmissor (fazendo com que o mesmo aguarde antes de enviar mais dados). Quando os datagramas armazenados na buffer da máquina destinatária tiverem sido todos processados, é enviado um sinal de transporte “ready” (a memória buffer da máquina destinatária está pronta para receber mais dados) e a máquina transmissora (ao receber esse sinal) retoma a transmissão onde havia parado anteriormente. Numa comunicação confiável (orientada para a conexão) tantos os datagramas devem ser entregues no seu destino na exacta ordem em que são transmitidos como também os segmentos não podem ser perdidos, duplicados ou corrompidos. A mais pequena falha em alguns destes pontos irá gerar erros de comunicação e transmissão. Daí a necessidade da máquina destinatária confirmar um a um tanto os datagramas como os segmentos.
-> Windowing
            Esperar pela confirmação (por parte da máquina transmissora) antes de transmitir cada segmento iria tornar a taxa de transmissão de dados extremamente baixa. Assim sendo, em vez de se esperar antes de transmitir cada segmento, existe uma “janela de tempo” durante a qual a máquina transmissora envia os segmentos sem haver confirmação da recepção dos segmentos anteriores. É a essa quantidade de dados que uma máquina transmissora é capaz de enviar sem antes receber a confirmação do(s) segmento(s) enviado(s) anteriormente que se denomina “window”. O processo de “windowing” controla a quantidade de informação transferida entre as máquinas participantes, sendo esta quantificação feita através da contagem do número de bytes. 
Exemplo:

-> Confirmação (Positive Acknowledgement with Retransmition)
            Esta técnica é a única que garante que os dados transmitidos entre dois nós não são perdidos ou duplicados e que mantém a sua integridade intacta. Neste método, a máquina destinatária transmite uma mensagem de confirmação de retorno para a máquina transmissora quando a recepção dos dados é efectuada com sucesso.


Tanto o TCP como o UDP utilizam port numbers como forma de completar o socket (conjunto formado pelo endereço IP e o port number), para saber que serviço específico está a ser requisitado à máquina. É através destes port numbers que se consegue identificar o protocolo das aplicações.


Cada vez que um computador-cliente tenta aceder a um servidor, este utiliza uma porta (gerada aleatoriamente) para comunicar com o servidor. Existem intervalos de portas exclusivos para finalidades específicas: Protocolos (Well Known Ports), processos específicos de algumas aplicações (Registered Ports) e pelas aplicações client (Dynamic/Private/Ephemeral Ports). Tudo isto é gerido pela Internet Assigned Numbers Authority (IANA).



Mesmo que no servidor existam clients com o mesmo número de porta atribuído, o servidor sabe que são computadores diferentes a aceder (sabe pelo seu endereço IP, e no caso de estarem no mesmo domínio, diferem pelo nº da porta local.
Para saber estas informações no sistema operativo Windows, basta correr o comando netstat na linha de comandos (Command Prompt).

Modelo OSI - Camadas 7, 6 e 5

Camada de Aplicação (7) – Application Layer
Função
- Identificar e estabelecer a disponibilidade da aplicação na máquina destinatária e os recursos para que a comunicação seja possível. É onde ocorre a interacção utilizador-máquina.

Exemplos
Web Browser (Netscape, Explorer); E-mail Gateways (Exchange); EDI (Electronic Data Interchange); BBS (Bulletin Board Systems)


Camada de Apresentação (6) – Presentation Layer
Função
- Apresentar os dados na camada de aplicação;
- Definir (através de padrões) a formatação, apresentação, codificação e conversão dos dados.
- Associação de tarefas como a compressão/descompressão e encriptação/desencriptação.
Exemplos
Processos de Multimédia (MPEG, MP3, TIFF)


Camada de Sessão (5) – Session Layer
Função
- Estabelecer, gerir e finalizar sessões entre entidades da camada de apresentação e aplicação;
- Assegurar múltiplas sessões em rede simultaneamente sem interferências entre elas
Manter os dados de diferentes aplicações separados uns dos outros

Exemplos
NFS (Network File System); SQL (Structured Query Language); AppleTalk (ASP); RPC (Remote Procedure Call)