TCP é a sigla para a expressão inglesa Transmission Control Protocol e designa um protocolo de transporte estandardizado para a interligação de redes de computadores baseadas em IP (nomeadamente a Internet). Operando no topo do IP, é responsável pela multiplexagem de sessões, recuperação de erros, fiabilidade da ligação entre extremos e controlo do fluxo. O TCP é um protocolo de comunicação de rede projetado para enviar pacotes de dados através da Internet.
O TCP é um protocolo da camada de transporte da camada de OSI e é utilizada para criar uma ligação entre computadores remotos, através do transporte e da entrega de mensagens através de redes de suporte e da Internet.
O Transmission Control Protocol é um dos protocolos mais utilizados na rede de comunicações digitais e faz parte do conjunto de protocolos da Internet, vulgarmente conhecido como o conjunto TCP/IP. O TCP garante a entrega de dados entre nós distintos. O TCP funciona em colaboração com o Protocolo de Internet, que define o local lógico do nó remoto, enquanto o TCP transporta e assegura que os dados são entregues ao destino correcto.
Antes de transmitir dados, o TCP cria uma conexão entre o nó de origem e o nó de destino e mantém-nos ligados enquanto a comunicação está ativa. O TCP divide os pacotes grandes de dados em pacotes menores e, também, assegura que a integridade dos dados mantenha-se intacta, uma vez que está montada no nó de destino.
História do TCP
Devido ao seu papel de destaque, a história do TCP é impossível de descrever sem voltar para os primeiros dias do conjunto de protocolos como um todo. No início de 1970, o que nós conhecemos hoje como a Internet global foi um pequeno conjunto de redes de pesquisa chamado de ARPAnet, que significa Defense Advanced Research Projects Agency (DARPA ou ARPA) dos Estados Unidos. Esta rede utilizava uma tecnologia chamada de Network Control Protocol (NCP) para permitir que os hosts conseguissem conectar-se uns aos outros. O NCP fez aproximadamente os trabalhos que o TCP e o IP fazem juntos hoje.
Devido ás limitações no NCP, o desenvolvimento começou num novo protocolo que seria mais adequado para um conjunto de redes em crescimento. Este novo protocolo, formalizado pela primeira vez no RFC 675, foi chamado de Transmission Control Protocol (TCP). Como seu antecessor, NCP, o TCP foi responsável por, basicamente, tudo o que era necessário para permitir que os aplicativos pudessem funcionar num conjunto de redes.
A funcionalidade do TCP foi melhorada ao longo do tempo, mas houve um problema com o conceito básico por trás do protocolo. Como o TCP tinha que lidar com ambas as transmissões e encaminhamento de datagramas, bem como as conexões, fiabilidade e gestão do fluxo de dados, significava que o TCP violava conceitos chave da camada e da modularidade do protocolo. O TCP forçava todas as aplicações a utilizar as funções da camada quatro do modelo OSI, a fim de utilizar as funções da camada três.
Como resultado, foi tomada a decisão de dividir o TCP em duas partes: as funções da camada quatro foram mantidas e tornaram-se no TCP. As funções da camada três tornaram-se o Protocolo de Internet. Esta divisão foi finalizada na versão 4 do TCP. A versão 4 do TCP foi definida no RFC 793, publicado em Setembro de 1981, e ainda é a versão atual do padrão.
A versão 4 foi o resultado de vários anos de trabalho e muitas versões TCP anteriormente testadas no início da Internet. É, por conseguinte, um protocolo muito maduro para a sua idade.
Visão Geral das Características e operações do Transmission Control Protocol
O TCP dá o endereçamento da camada de transporte para os processos de aplicação em forma de portas TCP, e permite que essas portas possam ser utilizadas no estabelecimento de conexões entre máquinas. Uma vez que as ligações tenham sido criadas, os dados podem ser transmitidos de forma bidireccional entre dois dispositivos. Os aplicativos podem enviar dados para o TCP como um simples fluxo de bytes, e o TCP cuida do envio dos dados como segmentos que são empacotados em datagramas IP. A implementação do TCP no dispositivo receptor inverte o processo, passando ao requerimento, e o fluxo de dados original é enviado.
O TCP inclui um extenso conjunto de mecanismos que conseguem garantir que os dados da fonte para o destino são enviados de forma confiável, consistente e em tempo hábil. A chave para o seu funcionamento, é o sistema de janelas de confirmação, o que permite que cada dispositivo consiga manter o controlo de quantos bytes de dados foram enviados e que consiga confirmar a receção dos dados recebidos do outro dispositivo na conexão. Os dados não confirmados são, eventualmente, retransmitidos automaticamente, e os parâmetros do sistema podem ser ajustados às necessidades dos dispositivos e da ligação. Este mesmo sistema também fornece capacidades de controlo de fluxo entre os dispositivos, para controlar as taxas de entrega de dados irregulares e outros problemas.
A inclusão de tantos recursos no TCP maximiza a probabilidade de que praticamente qualquer aplicação que exija a entrega confiável de dados através de uma conexão ficará satisfeito com o protocolo. Este é um objetivo primário do TCP, uma vez que significa que as aplicações das camadas mais altas não têm individualmente que fornecer essas funções comuns. O TCP é o protocolo de transporte TCP/IP mais amplamente utilizado, e empregue pela maioria dos pedidos de transmissão de mensagens convencional.