TCP/IP


          TCP/IP é o principal protocolo de envio e recebimento de dados, uma espécie de comunicador que fornece o endereço e o nome e permite a localização do outro computador devido ao recebimento das mesmas informações, sendo usado para estabelecer esta relação tanto na internet quanto em uma intranet. TCP significa, em português, Protocolo de Controle de Transmissão e o IP Internet (Protocolo de Internet), esses dois foram os primeiros a ser definidos.
          Entrando em termos um pouco mais técnicos, este conjunto de protocolos também pode ser visto como um modelo de camadas, no qual cada uma delas é responsável pela execução de uma quantidade ( grupo) de tarefas.
          O TCP/IP foi desenhado segundo uma arquitetura de pilha, onde diversas camadas de software interagem somente com as camadas acima e abaixo.

Camada de Aplicação

>> Engloba as aplicações standard da rede (Telnet, SMTP, FTP,…);
>> Camada situada no topo das camadas do protocolo.
>> Assegura a interface com as aplicações. É o nível mais próximo do usuário.
>> Exemplos de aplicativos: FTP, navegadores (browser).
>> Protocolos pertencentes a esta camada: FTP, TFTP, SNMP, HTTP, DNS, RIP, NFS, SMTP, POP3, Gopher, etc.
>> Nesta camada são usados os aplicativos para acessarem os recursos da rede.
>> Esta camada não possui um padrão comum, cada aplicação tem um padrão para acessar os recursos.
>> A camada converte as diferenças em um padrão comum para acesso, pois não existe um padrão que defina como deve ser estruturada uma aplicação.

Camada de Transporte

          Esta camada é responsável por pegar os dados enviados pela camada de aplicação e transformá-los em pacotes, a serem repassados para a camada de Internet. É responsável pelo endereçamento, roteamento dos pacotes, controle de envio e recepção (erros, bufferização, fragmentação, sequência, reconhecimento, etc.), etc.
          Provê a comunicação entre as aplicações, chamadas de fim a fim, isto é, uma entidade desta camada só se comunica com a sua entidade-par do host destinatário.. O serviço é confiável, tendo controle de erro e sequência com mecanismos de identificação dos processos de origem e de destino recebendo dados da camada de aplicação e os dividindo em unidades menores, com o endereço de destino para a camada de rede (IP). Orientado a conexão (ponto a ponto), e pode controlar o fluxo de informações. A camada de transporte utiliza dois protocolos: o TCP e o UDP. O primeiro é orientado à conexão e o segundo é não orientado à conexão. Ambos os protocolos podem servir a mais de uma aplicação simultaneamente.
          O acesso das aplicações à camada de transporte é feito através de portas que recebem um número inteiro para cada tipo de aplicação, podendo também tais portas serem criadas ao passo em que novas necessidades vão surgindo com o desenvolvimento de novas aplicações.
          A maneira como a camada de transporte transmite dados das várias aplicações simultâneas é por intermédio da multiplexação, onde várias mensagens são repassadas para a camada de rede (especificamente ao protocolo IP) que se encarregará de empacotá-las e mandar para uma ou mais interface de rede. Chegando ao destinatário o protocolo IP repassa para a camada de transporte que de multiplexa para as portas (aplicações) específicas.



Camada de Rede

>> A camada de rede trata da comunicação entre máquinas.
>> Fornece funções necessárias para interconectar redes e gateways formando um sistema coerente.
>> É responsável pela entrega de dados desde a origem até o destino final.
>> Contém os protocolos IP e ICMP, e os protocolos de roteamento.
>> Efetua também o mapeamento de endereços (ARP).
>> Esta aceita uma requisição de envio de pacote, vinda da camada de transporte, com a identificação da máquina para onde o pacote deve ser transmitido. Encapsula o pacote em um datagrama IP, preenche o cabeçalho do datagrama, usa um algoritmo de roteamento para determinar se o datagrama deve ser entregue diretamente, ou enviado para um gateway. Finalmente, o datagrama é passado para a interface de rede apropriada, para que este possa ser transmitido.
>> A camada de rede é a primeira (normatizada) do modelo. Dentre os protocolos da Camada de Rede, destaca-se inicialmente o IP (Internet Protocol), além do ARP, ICMP, RARP e dos protocolos de roteamento (RIP, IGP, OSPF, Hello, EGP e GGP). A camada de rede é uma camada não orientada à conexão, portanto se comunica através de datagramas.

Camada Física

          Camada de abstração de hardware que tem como principal função a interface do modelo TCP/IP com os diversos tipos de redes (X.25, ATM, FDDI, Ethernet, Token Ring, Frame Relay, PPP e SLIP). Por causa da grande variedade de tecnologias de rede, ela não é normatizada pelo modelo, o que provê a possibilidade de interconexão e interoperação de redes heterogêneas. Abaixo da camada de rede, encontra-se um grande vácuo. O modelo de referência TCP/IP não especifica muito bem o que acontece ali, exceto o fato de que o host tem de se conectar a rede utilizando algum protocolo para que seja possível enviar pacotes IP. Esse protocolo não é definido e varia de host para host e de rede para rede. Os livros e a documentação que tratam do modelo TCP/IP raramente descrevem esse protocolo.


Modelo de referência ISO/OSI





   O modelo de referência de rede OSI - Open Systems Interconnection –, foi desenvolvido pela ISO – International Standards Organization – com o objetivo de primeiramente padronizar a maneira de se desenvolver soluções para troca de dados entre redes.

         Lembre-se que ISO é um órgão de padronização internacional e, portanto, monta as “convenções” sobre como as coisas devem ser feitas.
      Portanto, o ISO/OSI permite que empresas diferentes possam desenvolver seus produtos diferentes, baseados neste modelo, e no final esses produtos possam trocar informações entre si.
      O modelo ISO/OSI ou simplesmente OSI tenta padronizar a forma de se transmitir dados para a rede. Isto permite o desenvolvimento de sistemas compatíveis entre si, mesmo sendo de fabricantes diferentes. Isto dá uma ideia de sistema aberto a comunicação com outros sistemas, talvez daí o termo Open.
      Desta forma o modelo OSI é baseado em sete camadas, sendo que cada camada resolve um problema específico relacionado a transmissão de dados em uma rede.
      O tráfego na rede é enviado na forma de pacotes de dados ou pacotes de rede. Um pacote de dados é a informação de um usuário transformado em um formato entendido pela rede.
      Cada camada adicionará informações ao pacote de dados, contudo o pacote de dados não é alterado. As informações adicionadas a um pacote são chamadas de cabeçalho. O cabeçalho de uma camada é simplesmente a informação que detalha o formato do pacote. Esse cabeçalho é recebido na camada correspondente do cliente receptor e é utilizado para entender o formato do pacote.
      A camada física e de enlace seriam implementadas em hardware. As camadas de rede e de transporte seriam implementadas pelo SO. E as camadas que restaram (sessão, apresentação e aplicação) são implementadas como softwares de usuário. Isto é só um exemplo e não corresponde a todas as realidades. Um dispositivo embarcado (uma TV, por exemplo) poderia ter todas as camadas implementas em hardware.
|
Camadas

Física:
      A camada física pega os bits e converte em uma forma interpretável pelo meio de comunicação. “A camada física trata da transmissão de bits brutos por um canal de comunicação”. Se o meio de transmissão for elétrico, essa camada converte os 0s e 1s enviados pela camada de enlace em sinais elétricos a serem transmitidos pelo cabo. Se o meio for óptico, essa camada converte os 0s e 1s dos quadros em sinais luminosos e assim por diante, dependendo do meio de transmissão de dados.
      Conforme Wendell Odon, a camada física define os detalhes elétricos, óticos, de cabeamento, de conectores e de procedimentos requeridos para se transmitirem os bits. Representados como alguma forma de energia se movendo através de um meio físico.

Enlace:

A camada de enlace é a que, a princípio, tem mais tarefas, sendo estas:

● Controle de acesso ao meio físico;
● Detecção de erros;
● Endereçamento físico;
● Impedir que um host mais rápido inunde de informações um host mais lento.

      “A principal tarefa da camada de enlace de dados é transformar um canal bruto em uma linha que pareça livre de erros de transmissão... Outra questão que surge na camada de enlace de dados (e na maioria das camadas mais altas) é como impedir que um transmissor rápido envie uma quantidade excessiva de dados a um receptor mais lento... As redes por difusão têm um problema adicional a ser resolvido na camada de enlace de dados: controlar o acesso ao canal compartilhado”.
      Odom diz o seguinte sobre a camada de enlace: “Formata dados em frames apropriados para transmissão através de alguma mídia física. Define regras para quando a mídia pode ou não ser usada. Define meios pelos quais se pode reconhecer erros de transmissão”.

Rede:

      A camada de rede é responsável pelo endereçamento e roteamento. O endereço da camada de rede é lógico (normalmente armazenado em uma memória secundária), o endereço físico é tratado pela camada de enlace conforme já vimos. A camada de rede controla a operação da sub-rede.
      Uma questão fundamental de projeto é determinar a maneira como os pacotes são roteados da origem até o destino... O controle de congestionamento também pertence à camada de rede... Qualidade de serviço também é uma questão da camada de rede... Talvez a segunda rede não aceite o pacote devido a seu tamanho excessivo... Cabe à camada de rede superar todos estes problemas. Odom cita que a camada de rede faz: “Endereçamento lógico, roteamento e determinação de caminhos”.

Transporte:

      A camada de transporte é responsável pelo controle lógico dos dados, que pode ser orientado a conexão e não orientado a conexão. O meio de transporte orientado a conexão se preocupa com a entrega correta de dados. Já o meio de transporte não orientado a conexão não se preocupa com os dados, ou seja, não corrige possíveis erros.
      A camada de transporte determina que tipo de serviço deve ser fornecido ao usuário/aplicação. O tipo de conexão de transporte mais popular é um canal ponto a ponto livre de erros que entrega mensagens ou bytes na ordem em que eles foram enviados. No entanto é possível outro, que entrega mensagens isoladas sem nenhuma garantia relativa à ordem de entrega. O tipo de serviço é determinado quando a conexão é estabelecida.
      Sobre a camada de transporte Odom, diz: Fornece uma variedade de serviços entre dois hosts, incluindo o estabelecimento e a finalização da conexão, controle de fluxo, recuperação de erros e segmentação de grandes blocos de dados em partes menores para transmissão.

Sessão:

      A camada de sessão estabelece uma sessão entre origem e destino. Odom fala que a cada sessão estabelece e mantém fluxos bidirecionais de um terminal a outro. Inclui o gerenciamento de fluxos de transação. A camada de sessão define como iniciar, controlar e finalizar sessões.
      Já Tanenbaum comenta que a camada de sessão permite que os usuários de diferentes máquinas estabeleçam sessões entre eles. Uma sessão oferece diversos serviços:

● Controle de diálogo: mantem o controle de quem deve transmitir em cada momento;
● Gerenciamento de token: impede que duas partes tentem executar a mesma operação crítica ao mesmo tempo;
● Sincronização: realiza a verificação periódica de transmissões longas para permitir que elas continuem a partir do ponto em que estavam ao ocorrer uma falha.

Apresentação:

      A camada de apresentação faz tradução de dados, também poderia ser chamada de camada de tradução.
      Odom explica que a camada de apresentação define o formato e a organização dos dados. Inclui criptografia. Sendo o propósito principal desta camada definir e negociar formatos de dados.
      Já Tanenbaum diz que, diferente das camadas mais baixas, que se preocupam principalmente com a movimentação de bits, a camada de apresentação está relacionada à sintaxe e à semântica das informações transmitidas. A camada de apresentação gerencia diferentes estruturas de dados abstratas e permite a definição e o intercâmbio de estruturas de dados de nível mais alto.

Aplicação:

             A camada de aplicação é a interface entre o usuário e a rede e vice-versa. Neste caso o usuário na maioria das vezes não é quem usa o computador propriamente dito, mas sim, um software.
        Tanenbaum explica que a camada de aplicação contém uma série de protocolos comumente necessários para os usuários. Um protocolo de aplicação amplamente utilizado é o HTTP, que é a base para a Internet.
       Já Odom comenta que a camada de aplicação fornece uma interface entre o software de comunicação e quaisquer aplicativos que precisem se comunicar fora do computador no qual o aplicativo reside. Ela também pode definir os processos para autenticação do usuário.
          Essa camada é responsável por interagir com o aplicativo de usuário, ela aceita os dados do aplicativo a partir do aplicativo de software e fornece o serviço de aplicativo de rede que é responsável pela solicitação do usuário.

Fonte: Internet