Internet - Il  protocollo TCP Das TCP Protokoll Le protocole TCP Protocolo TCP TCP protocol

As características do protocolo TCP

O TCP (que significa Transmission Control Protocol, em português: Protocolo de Controlo de Transmissão) é um dos principais protocolos da camada transporte do modelo TCP/IP. Permite, a nível das aplicações, gerir os dados em proveniência da (ou com destino à) camada inferior do modelo (quer dizer, o protocoloIP). Quando os dados são fornecidos ao protocolo IP, este encapsula-os em datagramas IP, fixando o campo protocolo em 6 (para saber que o protocolo ascendente é TCP…). O TCP é um protocolo orientado para a conexão, quer dizer que permite, a duas máquinas comunicantes, controlar o estado da transmissão.
As principais características do protocolo TCP são as seguintes:

  • TCP permite entregar ordenadamente os datagramas provenientes do protocolo IP
  • TCP permite verificar a onda de dados para evitar uma saturação da rede
  • TCP permite formatar os dados em segmentos de comprimento variável a fim de os "entregar" ao protocolo IP
  • TCP permite multiplexar os dados, quer dizer, fazer circular simultaneamente informações que provêm de fontes (aplicações, por exemplo) distintas numa mesma linha
  • TCP permite, por último, o começo e o fim de uma comunicação de maneira educada.

O objectivo do TCP

Graças ao protocolo TCP, as aplicações podem comunicar de forma segura (graças ao sistema de avisos de recepção do protocolo TCP), independentemente das camadas inferiores. Isto significa que routers (que trabalham na camada Internet) têm como único papel o encaminhamento dos dados sob a forma de datagramas, sem se preocuparem com o controlo dos dados, porque este é realizado pela camada transporte (mais concretamente pelo protocolo TCP).

Aquando de uma comunicação através do protocolo TCP, as duas máquinas devem estabelecer uma conexão. A máquina emissora (a que pede a conexão) chama-se cliente, enquanto a máquina receptora se chama servidor. Diz-se então que estamos num ambiente Cliente-Servidor.
As máquinas em tal ambiente comunicam em modo ligado, quer dizer que a comunicação se faz nos dois sentidos.

Para permitir o bom desenrolar da comunicação e de todos os controlos que a acompanham, os dados são encapsulados, isto é, juntamos ao pacote de dados um cabeçalho que vai permitir sincronisar as transmissões e assegurar a sua recepção.

Uma outra particularidade do TCP é poder controlar o débito dos dados graças à sua capacidade para emitir mensagens de dimensão variável: estas mensagens designam-se "segmentos".

A função multiplexagem

O TCP permite efetuar uma tarefa importante: multiplexagem/desmultiplexagem, quer dizer fazer transitar numa mesma linha dados que provêm de aplicações diversas ou, por outras palavras, pôr em série informações que chegam em paralelo.

[Image: http://static.commentcamarche.net/pt.kioskea.net/pictures/internet-images-mux.gif|230px|]

Estas operações são realizadas graças ao conceito de portas(ou sockets), quer dizer, um número associado a um tipo de aplicação que, combinado com um endereço IP, permite determinar de maneira única uma aplicação que funciona numa dada máquina.

O formato dos dados em TCP

Um segmento TCP é constituído do seguinte modo :


012345678910111213141516171819202122232425262728293031
Porta Fonte Porta destino

Número de ordem

Número de aviso de recepção
Desfasamento
dados
reservada URG ACK PSH RST SYN FIN Janela

Soma de controlo

Ponteiro de emergência
Opções Enchimento

Dados



Significado dos diferentes campos:

  • Porta Fonte (16 bits): Porta relativa à aplicação corrente na máquina fonte
  • Porta Destino (16 bits): Porta relativa à aplicação corrente na máquina de destino
  • Número de ordem (32 bits): Quando a bandeira SYN é 0, o número de ordem é o da primeira palavra do segmento corrente.

Quando SYN é 1, o número de ordem é igual ao número de ordem inicial utilizado para sincronizar os números de sequência (ISN)
  • Número de aviso de recepção (32 bits): O número de aviso de recepção, igualmente chamado número de pagamento, corresponde ao número (de ordem) do próximo segmento esperado, e não o número do último segmento recebido.
  • Desfasamento dos dados (4 bits) : permite localizar o início dos dados no pacote. O desfasamento é aqui essencial, porque o campo de opções é de dimensão variável
  • Reservadas(6 bits): Campo inutilizado actualmente, mas previsto para o futuro
  • As bandeiras(flags) (6x1 bit): representam informações suplementares:
    • URG: se esta bandeira for 1 o pacote deve ser tratado de maneira urgente.
    • ACK: se esta bandeira for 1 o pacote é um aviso de recepção.
    • PSH (PUSH): se esta bandeira for 1, o pacote funciona de acordo com o método PUSH.
    • RST: se esta bandeira for 1, a conexão é reiniciada.
    • SYN: A Bandeira TCP SYN indica um pedido de estabelecimento de conexão.
    • FIN: se esta bandeira for 1, a conexão interrompe-se.
  • Janela (16 bits): Campo permitindo conhecer o número de bytes que o receptor deseja receber sem aviso de recepção
  • Soma de controlo : (Checksum ou CRC) : A soma de controlo é realizada fazendo a soma dos campos de dados do cabeçalho, para poder verificar a integridade do cabeçalho
  • Ponteiro de emergência (16 bits): Indica o número de ordem a partir do qual a informação se torna urgente
  • Opções (Dimensão variável): Opções diversas
  • Preencher : Preenche-se o espaço que fica após as opções com zeros, para ter um comprimento múltiplo de 32 bits

Fiabilidade das transferências

O protocolo TCP permite assegurar a transferência dos dados de maneira fiável, embora utilize o protocolo IP, que não integra nenhum controlo de entrega de datagrama.

Na realidade, o protocolo TCP possui um sistema de aviso de recepção que permite ao cliente e ao servidor terem a certeza da recepção correcta e mútua dos dados.
Aquando da emissão de um segmento, um número de ordem (chamado também número de sequência) é associado. Aquando da recepção de um segmento de dado, a máquina receptora vai devolver um segmento de dado cuja bandeira ACK é 1 (para assinalar que se trata de um aviso de recepção), acompanhado de um número de aviso de recepção igual ao número de ordem precedente.

[Image: http://static.commentcamarche.net/pt.kioskea.net/pictures/internet-images-ack1.gif|255px|]


Além disso, graças a um cronómetro desencadeado a partir da recepção de um segmento a nível da máquina emissora, o segmento é reenviado assim que o tempo fixado esgotar, porque neste caso a máquina emissora considera que o segmento se perdeu…

[Image: http://static.commentcamarche.net/pt.kioskea.net/pictures/internet-images-ack2.gif|255px|]


Contudo, se o segmento não se perder e chegar mesmo assim ao destino, a máquina receptora saberá, graças ao número de ordem, que se trata de uma cópia e conservará apenas o último segmento a chegar ao destino…

Estabelecimento de uma ligação

Já que este processo de comunicação, que se faz graças a uma emissão de dados e a um aviso de recepção, se baseia num número de ordem (chamado geralmente número de sequência), é necessário que as máquinas emissoras e receptoras (cliente e servidor) conheçam o número de ordem inicial da outra máquina.

O estabelecimento da ligação entre duas aplicações faz-se frequentemente de acordo com o esquema seguinte:

  • As portas TCP devem estar abertas
  • A aplicação no servidor é passiva, quer dizer que a aplicação está à escuta, à espera de uma conexão
  • A aplicação no cliente faz um pedido de conexão ao servidor cuja aplicação está em abertura passiva. Diz-se que a aplicação do cliente está “em abertura activa”



As duas máquinas devem então sincronisar as suas sequências graças a um mecanismo chamado habitualmente three ways handshake (aperto de mãos em três tempos), que encontramos também aquando do encerramento de sessão.

Este diálogo permite iniciar a comunicação e desenrola-se em três tempos, como a sua denominação o indica:

  • Inicialmente a máquina emissora (o cliente) transmite um segmento cuja bandeira SYN é de 1 (para assinalar que trata-se de um segmento de sincronização), com um número de ordem NO., que chama-se número de ordem inicial do cliente
  • Subsequentemente a máquina receptora (o servidor) recebe o segmento inicial que provem do cliente, seguidamente envia-lhe um acusado de recepção, quer dizer um segmento cuja bandeira ACK é de 1 e a bandeira SYN é de 1 (porque trata-se lá ainda de uma sincronização). Este segmento contem o número de ordem desta máquina (do servidor) que é o número de ordem inicial do cliente. O campo mais importante deste segmento é o campo acusado de recepção que contem o número de ordem inicial do cliente, incrementado de 1
  • Por último, o cliente transmite ao servidor um acusado de recepção, quer dizer um segmento cuja bandeira ACK é de 1, cuja bandeira SYN é à zero (não se age mais de um segmento de sincronização). O seu número de ordem é incrementado e o número de acusado de recepção representa o número de ordem inicial do servidor incrementado de 1



[Image: http://static.commentcamarche.net/pt.kioskea.net/pictures/internet-images-3way.gif|255px|three ways handshake - poignée de mains en trois temps]


Sequência à esta sequência que comporta três trocas as duas máquinas synchronisées e a comunicação pode começar!

Existe uma técnica de pirataria, chamada spoofing IP, permitindo corromper esta relação de aprovação à fins maliciosos!

Método da janela deslizando

Numerosos em casos, é possível limitar o número de acusados de recepção, a fim de descongestionar a rede, fixando um número de sequência à extremidade do qual acusado de recepção é um necessário. Este número com efeito é armazenado no campo janela da rubrica TCP/IP.

Chama-se certamente este método “método da janela que desliza” porque ele define-se em certa medida um garfo de sequências que não têm necessidade de acusado de recepção, e esta desloca-se a medida que os acusados de recepção forem recebidos.

[Image: http://static.commentcamarche.net/pt.kioskea.net/pictures/internet-images-gliss.gif|151px|]


[Image: http://static.commentcamarche.net/...|251px|]


De mais, a dimensão desta janela não é fixa. Com efeito, o servidor pode incluir nos seus acusados de recepção armazenando no campo fenestra a dimensão da janela que lhe parece adaptado. Assim, quando o acusado de recepção indica um pedido de aumento da janela, o cliente vai deslocar o bordo direito da janela.

[Image: http://static.commentcamarche.net/pt.kioskea.net/pictures/internet-images-plus.gif|151px|]


Em contrapartida, no caso de uma diminuição, o cliente não vai deslocar o bordo direito da janela para a esquerda mas esperar que o bordo esquerdo avança (com a chegada dos acusados de recepção).

[Image: http://static.commentcamarche.net/pt.kioskea.net/pictures/internet-images-moins.gif|151px|]

Fim de uma conexão

O cliente pode pedir a pôr fim à uma conexão assim como o servidor.
O fim da conexão faz-se como segue ::

  • Uma das máquinas envia um segmento com a bandeira FIN à 1, e a aplicação põe-se em estado de espera de fim, quer dizer que termina receber o segmento corrente e ignora os seguintes
  • Após recepção deste segmento, a outra máquina envia um acusado de recepção com a bandeira FIN à 1 e continua expedir os segmentos correntes. Sequência àaquilo a máquina informa a aplicação que um segmento FIN foi recebido, seguidamente envia um segmento FIN à outra máquina, que encerra a conexão…

Mais informações

Para mais informações sobre o protocolo TCP, melhor é adiar-se ao RFC 793 que explica de maneira detalhada o protocolo :



Última modificação do dia Segunda 17 de Agosto de 2009 às 20:01:40.Este documento, intitulado « O protocolo TCP »a partir de Kioskea (pt.kioskea.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.
Melhores respostas por « O protocolo TCP » em :
TCP/IP Ver O que significa TCP/IP? O TCP/IP é uma sequência de protocolos. A sigla TCP/IP significa “Transmission Control Protocol/Internet Protocol” e pronuncia-se “T-C-P-I-P”. Provém dos nomes dos dois protocolos essenciais da sequência de...
Os protocolos de serviço de mensagens (SMTP, POP3 e IMAP4) Ver Introdução ao serviço de mensagens electrónicas O correio electrónico é considerado o serviço mais utilizado na Internet. Assim, a sequência de protocolos TCP/IP oferece uma panóplia de protocolos que permitem gerir facilmente o...
O protocolo IP Ver O papel do protocolo IP O protocolo IP faz parte da camada Internet da sequência de protocolos TCP/IP. É um dos protocolos mais importantes da Internet, porque permite a elaboração e o transporte dos datagramas IP (os pacotes de dados),...
O protocolo BitTorrent VerO protocolo BitTorrent 1. Legalidade 2. O princípio 3. Funcionamento 4. Transparência de vida privada 5 . Os softwares Endereços complementares 1. Legalidade Atenção! Na base, o BitTorrent é legal. Mas seu procedimento é as vezes...
O protocolo BitTorrent VerO protocolo BitTorrent 1. Legalidade 2. O princípio 3. Funcionamento 4. Transparência de privacidade 5 . Os softwares Endereços complementares 1. Legalidade Atenção ! Em princípio, o BitTorrent é legal. Mas, às vezes, seu processo...
Como saber o IP do meu computador? VerComo eu faço pra saber o IP do meu computador? Com as instruções abaixo você pode saber qual é o IP do seu computador. conhecer seu IP no Windows 2000/Windows XP/ Windows Vista No Windows 95/ Windows 98 No Linux Por que alguns sites...
Download VLC VerVLC Media Player é um leitor multimédia sob capaz de ler numerosos formatos audio e vídeos (MPEG-1, MPEG-2, MPEG-4, DivX, mp3, ogg…), bem como DVD ou VCD e diversos protocolos de streaming. A sua principal vantagem em relação outros aos todos os...
Download FlashGet VerFlashGet é um gerenciador de downloads que os divide para que rode de maneira mais rápida. Pra completar, está livre dos spywares. FlashGet suporta os protocolos HTTP, FTP, HTTPS, MMS, MMST e RTSP, além de você poder escolher a versão em português....
O protocolo UDP VerAs características do protocolo UDP O protocolo UDP (User Datagram Protocol) é um protocolo não orientado para a conexão da camada transporte do modelo TCP/IP. Este protocolo é muito simples já que não fornece controlo de erros (não ...
Portas/Entradas TCP/IP VerA utilidade das portas Numerosos programas TCP/IP podem ser executados simultaneamente na Internet (pode, por exemplo, abrir vários navegadores simultaneamente ou navegar em páginas HTML tdescarregando ao mesmo tempo um ficheiro por FTP)....
Instalação em rede de vários computadores sob Windows VerInstalação em rede sob Windows 2000/XP Para configurar cada computador, basta ir ao painel de configuração, seguidamente clicar 2 vezes em “conexões rede”, seguidamente clicar com o botão direito sobre “conexão à rede local”,...