Tag Archives: tcp
Redes – Protocolos e suas Camadas – Parte 02
Na primeira parte vimos as duas primeiras camadas, e vimos protocolos importantes como o IP, ARP e ICMP. Nesta parte trataremos dos protocolos das duas camadas finais. Camada de Transporte e de Aplicação.
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 envia-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 seqüencia (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 assincronos como por exemplo quando se insere um caracter 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é-defenidas 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 (videos, 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, é a 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 armazrenado 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
- Andrew Tanenbaum – Redes de Computadores
- Carlos Morimoto – Redes Guia Prático
- Abusar – www.abusar.org
- Clube do Hardware – www.clubedohardware.com.br
Redes – Modelo TCP IP
O Modelo TCP/IP tem o mesmo objetivo do Modelo OSI, que é a de definir um modelo padrão de camadas para a implementação de camadas na arquitetura da rede. A principal diferença entre o Modelo TCP/IP e o zodelo OSI é o número de camadas, sendo que o primeiro possui 4 camadas e o segundo 7. O nome do Modelo se dá pelos 2 principais protocolos utilizados. Um dos seus principais objetivos era habilidade de conectar várias sub-redes de maneira uniforme, queriam ainda que as conexões permanecessem intactas enquanto origem e destinos estivessem funcionando mesmo que hosts intermediários parassem.

Modelo TCP/IP
Camada 1: Camada Host / Rede
Esta camada não é bem definida pelo modelo, e nenhum livro comenta ao certo o que acontece nesta fase. Porém o que se sabe é que essa camada é responsável por estabelecer uma conexão por qualquer protocolo que possa enviar pacotes IP. E mais um porém é que este protocolo não é definido, isto é, varia de rede para rede e de host para host.
Camada 2 : Camada Internet
Esta camada é responsável por permitir que hosts enviem pacotes à qualquer rede e garantam que os mesmo trafeguem até o seu destino. Ela é equivalente a camada de rede do Modelo OSI.
Por existir a necessidade de interligar várias redes diferentes, esta camada diz que toda a informação a ser transmitida deve ser divididas em pacotes antes de ser enviadas ao seu destino, tendo um padrão definido pelas próprias especificações do modelo. Ela tem como protocolo principal o protocolo IP (Internet Protocol). Ela também tem a tarefa de fazer o roteamento dos pacotes, isto é, analisar a rota e indicar o melhor caminho, sem congestionamentos, para que o pacote chegue ao seu destino. Os pacotes enviados podem chegar todos fora de ordem deixando a tarefa de organiza-los para as camadas superiores.

Comparação: OSI vs TCP/IP
Camada 3: Camada Transporte
Esta camada é equivalente a camada de Transporte do Modelo OSI. Sua função é permitir a conversação entre dois hosts, um origem e outro destino. Como forma de garantir que os dois hosts se comuniquem, foram definidos 2 protocolos nesta camada. O UDP e o TCP.O protocolo UDP é usado em uma entrega de pacotes de forma não confiável, pois ele não garante que os pacotes cheguem ou cheguem sem erros, definindo que o protocolo UDP é um protocolo não orientado a conexão, por essas características citadas acima. Uma analogia pode ser feita as transmissões de rádio, pois as mesmas enviam sinais ao seu rádio porém não garantem a clareza dos sons. Ao mesmo tempo que a transmissão está limpa e clara, em um breve ou longo momento pode existir chiados. Programas de transmissão de vídeos e áudio utilizam esse protocolo.
O protocolo TCP é usado na entrega de pacotes de forma confiável. Como seu próprio nome diz (TCP – Transmission Control Protocol – Protocolo de Controle de Transmissão) é usado no controle de transmissão garantindo que o pacote chegue ao seu destino, e garantido que o mesmo esteja livre de erros. Essas características definem o protocolo como um protocolo orientado a conexão. Caso um pacote não chegue ao seu destino ou chegue danificado, o mesmo é retransmitido. Uma analogia pode ser feita aos Ars dos correios, pois se os mesmos não chegam ao seu destino, você escreve um novo e manda novamente.
Camada 4: Camada de Aplicação
Esta camada é a camada que convivemos diariamente quando lidamos com redes. E através dela que fazemos nossas requisições para executarmos determinadas tarefas em nossa rede. Lidamos com ela através de softwares que utilizam protocolos da Camada de Aplicação para executar as tarefas que solicitamos. Alguns exemplos de protocolos são: Telnet, FTP e SMTP.
Uma vez que o dado de uma aplicação foi codificados dentro de um padrão de um protocolo da camada de aplicação ele será passado para a próxima camada da pilha IP. Na camada de transporte, aplicações irão em sua maioria fazer uso de TCP ou UDP, e aplicações servidoras são freqüentemente associadas com um número de porta.
Bibliografia
- Andrew Tanenbaum – Redes de Computadores
- Carlos Morimoto – Redes Guia Prático
- Abusar – www.abusar.org
- Clube do Hardware – www.clubedohardware.com.br





