quarta-feira, 5 de novembro de 2014

Camada de Transporte

     Os serviços da camada de transporte são responsáveis por prover uma conexão ponto a ponto e estabelecer conexão lógica entre a aplicação de origem e a aplicação de destino (quem transmite - quem recebe) de uma rede. Também fazem a segmentação (divisão) e a reconstrução (junção) do fluxo de dados que chegam das camadas superiores.
      A camada de transporte tem muita responsabilidade, pois precisa manter a integridade das informações, por isso, deve haver um controle de fluxo para dar aos usuários uma confiabilidade no transporte das informações ponto a ponto. Para que essa comunicação seja confiável é preciso que haja uma comunicação orientada a conexão e os protocolos envolvidos devem assegurar-se de:
  • Os seguimentos transmitidos são confirmados quando recebidos (acknowledged).
  • Qualquer segmento não confirmado é retransmitidos.
  • Os segmentos são reconstruídos em sua sequencia original.
  •   Uma gerencia do fluxo de dados é mantida para evitar congestionamento, sobrecarga e perda de dados.
      A imagem abaixo ilustra esse mecanismo:


      Operação de controle de Fluxo

        Depois de enviar a solicitação para iniciar a comunicação e receber (se possível) uma confirmação positiva, as  máquinas verificam a conexão periodicamente para ter a segurança de que as informações estão sendo enviadas e recebidas.
      
      Pode haver congestionamento de dados devido a heterogeneidade das máquinas (uma máquina potente pode gerar dados mais rápido do que a infra-estrutura da rede pode transmitir ou a rede pode transmitir mais rápido do que máquinas lentas podem processar) ou porque vários computadores querem acessar um mesmo destino, fazendo com que o caminho para esse destino fique congestionado (como uma estrada cheia de carros causa congestionamento do trânsito). 
      
      Quando uma máquina recebe mais dados do que pode processar ela enviar o excedente para uma memória chamada buffer, esse processo é conhecido como bufferização. Mas esse processo ocorre apenas se houver uma pause no recebimento dados, se a transferência for ininterrupta a memória de buffer se esgotará e qualquer dado que estiver chegando após o esgotamento será descartado, causando perda das informações.
   
      Graças a camada de transporte evitamos que problemas como esse aconteçam, quando a memória buffer da máquina está cheia e não está pronta para receber, ela manda um sinal que não está pronta (not ready), fazendo com que a máquina que está enviando aguarde e não envie mais dados. Após o receptor ter processado os dados da memória buffer ele manda um sinal de transmissão (ready) para que a máquina que está enviando volte a transmissão da onde tinha parado.

      Como dissemos para a comunicação ser confiável é necessário que haja uma confirmação de que os seguimentos (datagramas) enviados foram recebidos. Mas se formos aguardar a confirmação de cada datagrama enviado haveria um atraso gigantesco da chegada dessa informação, resultando numa transmissão de dados baixíssima. Portanto, uma vez que haja tempo, o transmissor envia segmentos antes de finalizar o processamento de cada confirmação.
   
     A quantidade de dados que o transmissor pode enviar antes de receber a confirmação é chamada de Janela (window). O processo chamado Windowing controla a quantidade de informação transferida antes que haja a confirmação. 
   
     Exemplo do processo Windowing: Se a janela tiver tamanho 1, a máquina transmissora espera a confirmação de cada segmento para poder enviar. Se o tamanho da janela for 2, a máquina transmissora pode enviar 2 segmentos antes de receber uma confirmação, e assim sucessivamente.

      Para finalizar o tópico de camada de transporte, não podemos esquecer da Confirmação (Acknowledgement), é a técnica que implica em enviar uma mensagem de confirmação da máquina destino para a máquina origem, caso o recebimentos dos dados tenha sido realizado com sucesso. Podemos comparar com o serviço de correio, assim que o destinatário recebe o produto, ele tem que assinar um protocolo que é enviado ao remetente, garantindo que a correspondência chegou com sucesso!      

Camada de Sessão

      A Camada de Sessão é a camada responsável pela iniciação, gerenciamento e finalização das sessões entre quem transmite e quem recebe as informações. Ela mantém os dados de diferentes aplicações separados, para que não haja bagunça!

Bibliografia:
Filippetti, Marco Aurélio. CCNA 4.1 Guia Completo de Estudo

segunda-feira, 3 de novembro de 2014

Camada de Apresentação

      A camada de Apresentação é a que recebe as solicitações de serviço da camada de aplicação e envia solicitações de serviço para a camada de sessão.
      É responsável pela formatação das informações, as vezes os arquivos precisam ter seu formato alterado para serem compreendidos por outras camadas do modelo, garantindo uma transmissão mais eficiente.
      Também é responsável pela encriptação e decriptação dos dados, compressão e descompressão, enfim, responsável pela semântica e segurança das informações!

Bibliografia:
Filippetti, Marco Aurélio. CCNA 4.1 Guia Completo de Estudo

Camada de Aplicação


      Camada responsável pela interação entre máquina e usuário, típica e conhecida comunicação cliente-servidor. Aplicações mais comuns dessa camada são os navegadores e servidores web (Google Chrome, Internet Explorer, Apache), emails, servidores de banco de dados (MySQL, Oracle, MS-SQL), entre outros.
      Quando estamos usando um navegador web, por exemplo, para acessar um site, este navegador é uma aplicação cliente. Os dados do site estão localizados em um servidor que está rodando uma aplicação servidora, como o Apache por exemplo.

Bibliografia:
Filippetti, Marco Aurélio. CCNA 4.1 Guia Completo de Estudo

Camadas do Modelo OSI

      E aee o/
      Bom vamos falar sobre as camadas do modelo OSI (Open System Interconnection - Norma ISO 7498, publicada em 1984). Como dito anteriormente, o modelo OSI divide as tarefas referentes a transmissão de dados entre máquinas em uma rede em 7 camadas, são elas:

                                                                          
      As camadas superiores tratam dos assuntos relacionados às aplicações, o que significa que são implementadas geralmente em softwares. Já as camadas inferiores tratam de como a transmissão das informações devem ocorrer nos diversos meios físicos possíveis. Vale lembrar que o modelo OSI não faz a comunicação acontecer, ele é apenas um conjunto de normas que sugere um padrão de como a comunicação entre máquinas deve ser feita.
      Vou explicar cada camada em um tópico separado para o texto não se tornar muito grande e cansativo, então basta clicar nos sub-tópicos ao lado para ler a importância de cada camada.
   
Bibliografia:
Filippetti, Marco Aurélio. CCNA 4.1 Guia Completo de Estudo