Camada de Transporte
A camada de transporte, como o próprio nome diz, é responsável por cuidar do transporte dos pacotes pela rede. No IP temos os endereços que querem se comunicar e nada mais. Não se sabe qual o host que irá receber o datagrama, assim fica a cargo da camada de transporte completar esta informação para que os pontos se comuniquem.
Na camada de transporte temos basicamente 2 protocolos. Um orientado a conexão, no caso o TCP e outro não orientado a conexão, no caso o UDP. Detalharemos mais sobre ambos abaixo.
Protocolo TCP
Este é o protocolo do Modelo TCP/IP da Camada de transporte que garante fluxo confiável e um serviço de conexão virtual para os aplicativos através de confirmações e, quando necessário, através da retransmissão de pacotes.
Como temos vários serviços e aplicativos rodando na rede, é necessário que tenhamos algo que garanta a chegada do pacote de sua origem para o seu destino. É definido uma porta TCP, ou seja um número que indica qual o tipo de serviço ele está estabelecendo uma conexão.
Fazendo uma analogia com um endereço comum, temos a rua que devemos entregar a correspondência, porém sem o número não conseguiremos ter certeza de que aquela correspondência está sendo entregue no local certo. Existem 65.536 portas TCP numeradas de 0 a 65.535, porém as portas mais conhecidas vão de 0 a 1023. Um exemplo seria a porta 80 usado para servidores Web, oi 21 para FTP ou ainda 22 para conexões SSH.
Os serviços do protocolo TCP são:
O fluxo de transferência de dados entregam um fluxo não estruturado de bytes identificados por números sequenciais. Através dele os aplicativos não precisam fragmentar blocos para enviá-los ao TCP, o TCP pode agrupar em segmentos e passar para que o IP para que sejam entregues.
A confiabilidade é garantida através de sequenciamento de bytes com um número conhecimento, assim como os número de frete, cujo o qual indicam ao destino o próximo byte a ser recebido pela origem. Bytes sem esse número é retransmitido depois de um determinado tempo.
O controle de fluxo é eficiente pois ao enviar conhecimentos para a origem, o processo recebedor do TCP indica o maior número sequencial que ele pode receber sem estourar a capacidade dos seus buffers internos.
Através de operações Full-Duplex pode-se enviar e receber pacotes simultaneamente.
Através da multiplexação várias comunicações com camadas superiores podem ser multiplexadas em uma única conexão.
Protocolo TCP
O cabeçalho TCP contém cerca de 20 octetos. As portas são utilizados para gerenciar as ligações, assim como citado anteriormente. A aplicação de TCP pode alocar 80 como a porta de origem, o TCP terá de saber a porta de destino do lado do host e coloca-o no cabeçalho.
Todos os datagramas têm um numero de sequência (Sequencial Number) para garantir a sua ordem no destino, permitindo que se possa notar algum pacote em falta. O TCP numera os octetos e não os datagramas, assim se existirem 500 octetos de dados em cada datagrama ao primeiro datagrama é posto o numero 0 no respectivo campo, enquanto ao segundo é atribuído o numero 500, terceiro 1000 etc.
Outro campo no cabeçalho é o checksum, que é calculado adicionando todos os octetos do datagrama. No destino o TCP calcula novamente e se o valor calculado for diferente do valor enviado no cabeçalho algo errado aconteceu na transmissão e o datagrama é eliminado.
O campo Acknowledgement Number é o campo contendo o número de conhecimento que tem a função de confiabilidade conforme citado anteriormente. O campo HL EN, possui número de words de 32 bits no cabeçalho TCP indica o início dos dados. O campo Reserved é reservado para uso futuro. Precisa ser zero. Os Code Bits são flags de controle. O campo window é usado para controlar a quantidade de dados que pode ser transmitida nesse determinado momento.
O campo Urgent Pointer permite a um host dizer ao outro para pular o processamento para um octeto particular, o que pode ser útil quando se quer lidar com acontecimentos assíncronos como por exemplo quando se insere um caractere de controle ou um comando qualquer que interrompa a saída. Os campos Options e Padding especificam várias opções TCP. Existem dois formatos possíveis para uma opção: apenas um octeto com o tipo da opção e um octeto com o comprimento do tipo. E o campo data possui informações para as camadas superiores.
Protocolo UDP
Este protocolo ao contrário do TCP não divide os dados em datagramas, nem tem a confiabilidade, isto é, não tem o controle se o pacote chegou ao seu destino ou não. O que o UDP fornece é o numero da Porta que é usada da mesma forma que no TCP. Neste protocolo existem várias portas pré-definidas para servidores que usam UDP.
O cabeçalho UDP para além das portas origem e destino possui também um campo de checksum e length. O length contém um contador de bytes no datagrama UDP. O valor mínimo é oito, sendo este só o comprimento do cabeçalho.
O Checksum é um campo de 16bts utilizado na detecção de erros. Embora o UDP forneça verificação de erros, ele não recupera esse erro. Algumas implementações de UDP descartam o segmento danificado, outras passam o segmento errado à aplicação acompanhado de algum aviso. Pode-se usar o protocolo UDP em aplicações que toleram perca de pacotes, fluxo de dados (vídeos, rádios online), multicasting, broadcasting.
Protocolo UDP
Lista de portas TCP e UDP:
http://www.gamboas.com.br/Scripts/portas.asp
Camada de Aplicação
Como visto nos artigos do Modelo de Referência TCP/IP a camada de aplicação é a camada que fica mais próxima do usuário. É a camada que convivemos diariamente quando estamos administrando uma rede. É através dela que requisitamos algo na rede e recebemos uma resposta. Assim sendo temos muitas aplicações rodando em cima também desta camada.
Falaremos a seguir sobre as mais utilizadas.
FTP ou File Transfer Protocol, é o protocolo usado para a transferência de arquivos em formato Binário ou ASCII. É uma aplicação Cliente/Servidor, utiliza o protocolo FTP e em uma situação típica a aplicação cliente FTP utiliza o protocolo TCP para estabelecer uma conexão com o servidor remoto. Faz a requisição pela porta 20 e recebe a resposta pela porta 21, que são as portas padrão. A utilização de portas permite desta forma, que um mesmo servidor receba várias requisições pois a resposta é endereçada à diferentes portas escolhidas por cada cliente.
Telnet é utilizada para conexão remota em computadores para execução de aplicações específicas. Também usada para configuração e monitoramento remoto de equipamentos. É uma aplicação Cliente/ Servidor e utiliza o protocolo TCP.
SNMP ou Simple Network Management Protocol é utilizado para fazer gerência de equipamentos, sendo o protocolo base de todas as principais plataformas de gerenciamento. O funcionamento das aplicações está vinculado ao envio/recebimento periódico de mensagens, equipamentos/computadores respectivamente, que contém valores de parâmetros relevantes para monitoramento, análise e posterior configuração por parte dos equipamentos. Tudo isso é fica armazenado numa base de dados chamada MIB.
DNS ou Domain Name Server é também chamada de Name Service, esta aplicação relaciona endereços IP com os seus respectivos nomes atribuídos a dispositivos da rede, para que o usuário utilize nomes para executar acessos ao invés de IPs. Fica muito mais fácil gravar por exemplo um endereço de web do que o seu IP.
SMTP ou Simple Mail Transfer Protocol é utilizado nos serviços básicos de envio de mensagens, isto é emails.
NFS ou Network File System é um sistema foi desenvolvido pela Sun Microsystems e permite que computadores possam "montar" discos ou parte deles (diretórios) de dispositivos remotos e operá-los como se fossem locais.
HTTP ou HyperText Transfer Protocol é a base do ambiente World Wide Web que basicamente permite a leitura dinâmica e interativa de documentos constituídos de texto, imagens e som.
DHCP ou Dynamic Host Configuration Protocol é utilizado em redes de computadores que permite a estes obterem um endereço IP automaticamente.
Bibliografia