O TCP/IP (também chamado de pilha de protocolos TCP/IP) é um conjunto de protocolos de comunicação entre computadores que estão ligados em rede. Seu nome vem de dois protocolos: o TCP (Transmission Control Protocol - Protocolo de Controle de Transmissão) e o IP (Internet Protocol - Protocolo de Internet, ou ainda, protocolo de interconexão). Este conjunto de protocolos pode ser visto como um modelo de camadas (Modelo OSI), onde cada camada é responsável por um grupo de tarefas, fornecendo um conjunto de serviços bem definidos para o protocolo da camada superior. As camadas mais altas, estão logicamente mais perto do utilizador, na camada de aplicação, e lidam com dados mais abstratos, confiando em protocolos de camadas mais baixas para tarefas de menor nível de abstração.
História
O TCP/IP foi desenvolvido em 1969 pelo U.S. Department of Defense Advanced Research Projects Agency, como um recurso para um projeto experimental chamado de ARPANET (Advanced Research Project Agency Network) para preencher a necessidade de comunicação entre um grande número de sistemas de computadores e várias organizações militares dispersas. O objetivo do projeto era disponibilizar links (vínculos) de comunicação com alta velocidade, utilizando redes de comutação de pacotes. O protocolo deveria ser capaz de identificar e encontrar a melhor rota possível entre dois sites (locais), além de ser capaz de procurar rotas alternativas para chegar ao destino, caso qualquer uma das rotas tivesse sido destruída. O objetivo principal da elaboração de TCP/IP foi na época, encontrar um protocolo que pudesse tentar de todas as formas uma comunicação caso ocorresse uma guerra nuclear. A partir de 1972 o projeto ARPANET começou a crescer em uma comunidade internacional e hoje se transformou no que conhecemos como Internet. Em 1983 ficou definido que todos os computadores conectados ao ARPANET passariam a utilizar o TCP/IP, pois na época o rádio e a comunicação por satélite fora introduzida, e o modelo seguido pela ARPANET até então dificultava a integração dela com essas tecnologias emergentes. No final dos anos 1980 a Fundação Nacional de Ciências em Washington, D.C., começou a construir o NSFNET, um backbone para um supercomputador que serviria para interconectar diferentes comunidades de pesquisa e também os computadores da ARPANET. Em 1990 o NSFNET se tornou o backbone das redes para a Internet, padronizando definitivamente o TCP/IP.
Especificação
De 1973 a 1974 o grupo International Network Working Group (INWG), liderado por Cerf, trabalhou os detalhes da ideia do protocolo TCP/IP, resultando em sua primeira especificação.
A influência técnica significativa foi o trabalho da Xerox PARC, que produziu o PARC (Packet Universal protocol suite), muito mais do que existia naquela época.
DARPA então contratado pela BBN Technologies, da Universidade de Stanford e da University College London (UCL) para desenvolver versões operacionais do protocolo sobre diferentes plataformas de hardware. Quatro versões foram desenvolvidas: TCP v1, v2 TCP, TCP v3 e v3 IP e TCP / IP v4. O último protocolo ainda está em uso hoje.
Em 1975, foi realizado um teste de comunicação entre as duas redes TCP/IP entre Stanford e UCL (as duas universidades citadas anteriormente). Em novembro de 1977, foi realizado um teste entre três redes TCP/IP entre os sites nos EUA, Reino Unido e Noruega. Vários outros protótipos TCP/IP foram desenvolvidos em múltiplos centros de pesquisa entre 1978 e 1983. A migração da ARPANET para o TCP/IP foi oficialmente concluído no dia 1º de janeiro de 1983, quando o flag foi programado para ativar permanentemente os novos protocolos.
Em 2020, esgotou-se os endereçamentos disponíveis do TCP/IPv4. Para resolver este problema, a versão mais recente do protocolo, o TCP/ IPv6, veio para ampliar a gama de endereçamentos, através do envio de endereços de protocolo por 128 bits, superior aos 32 bits do IPv4.
Benefícios O TCP/IP sempre foi considerado um modelo bastante pesado quando comparado com modelo UDP/IP, uma vez que o TCP/IP tem muito de seu foco voltado para a confiabilidade ao invés de só velocidade, diferente do UDP/IP, que é mais leve e veloz, mas não garante que a informação chegará ao respectivo destino.
Com o desenvolvimento das interfaces gráficas, com a evolução dos processadores e com o esforço dos desenvolvedores de sistemas operacionais em oferecer o TCP/IP para as suas plataformas com performance igual ou às vezes superior aos outros protocolos, o TCP/IP se tornou um protocolo indispensável.
O TCP/IP oferece alguns benefícios, dentre eles: Padronização: um padrão, um protocolo roteável que é o mais completo e aceito protocolo disponível atualmente. Todos os sistemas operacionais modernos oferecem suporte para o TCP/IP e a maioria das grandes redes se baseia em TCP/IP para a maior parte de seu tráfego; Interconectividade: uma tecnologia para conectar sistemas não similares. Muitos utilitários padrões de conectividade estão disponíveis para acessar e transferir dados entre esses sistemas não similares, incluindo FTP (File Transfer Protocol) e Telnet (Terminal Emulation Protocol); Roteamento: permite e habilita as tecnologias mais antigas e as novas a se conectarem à Internet. Trabalha com protocolos de linha como P2P (Point to Point Protocol) permitindo conexão remota a partir de linha discada ou dedicada. Trabalha como os mecanismos IPCs e interfaces mais utilizados pelos sistemas operacionais, como sockets do Windows e NetBIOS; Protocolo robusto: escalável, multiplataforma, com estrutura para ser utilizada em sistemas operacionais cliente/servidor, permitindo a utilização de aplicações desse porte entre dois pontos distantes; Internet: é através da suíte de protocolos TCP/IP que obtemos acesso a Internet. As redes locais distribuem servidores de acesso a Internet (proxy servers) e os hosts locais se conectam a estes servidores para obter o acesso a Internet. Este acesso só pode ser conseguido se os computadores estiverem configurados para utilizar TCP/IP.
Protocolos para Internet
Os protocolos para Internet formam o grupo de protocolos de comunicação que implementam a pilha de protocolos sobre a qual a internet e a maioria das redes comerciais funcionam. Eles são algumas vezes chamados de "protocolos TCP/IP", já que os dois protocolos: o protocolo TCP - Transmission Control Protocol (Protocolo de Controle de Transmissão); e o IP - Internet Protocol (Protocolo de Internet) foram os primeiros a serem definidos.
O modelo OSI descreve um grupo fixo de sete camadas que pode ser comparado, a grosso modo, com o modelo TCP/IP. Essa comparação pode causar confusão ou trazer detalhes mais internos para o TCP/IP.
O modelo inicial do TCP/IP é baseado em 4 níveis: Host/rede; Inter-rede; Transporte; e Aplicação. Surgiu, então, um modelo híbrido, com 5 camadas, que retira o excesso do modelo OSI e melhora o modelo TCP/IP: Física; Enlace; Rede; Transporte; e Aplicação.
Resumidamente, o modelo é o que podemos chamar de uma "solução prática para problemas de transmissão de dados". Textualmente isto pode parecer muito genérico, pois na realidade para melhor compreensão de um protocolo TCP/IP deveremos usar exemplos práticos. Este modelo é ocasionalmente conhecido como modelo DoD, devido à influência fundamental da ARPANET em 1970 (operado pela DARPA, uma agência do Departamento de Defesa dos Estados Unidos).
Funcionamento
TCP-IP possui 4 camadas sendo que o início se dá com o programa conversando na camada de aplicação. Nesta camada você vai encontrar protocolos como o SMTP (para e-mail), FTP (para transferência de arquivos) e HTTP (para navegar na internet) e cada tipo de programa fala para um protocolo diferente da camada de Aplicação, dependendo do propósito do programa.
Depois de processar a requisição, o protocolo na camada de Aplicação vai falar com outro protocolo na camada de Transporte, usualmente o TCP. Esta camada é responsável por pegar o dado enviado pela camada de Aplicação, dividindo este dado em pacotes a fim de enviá-lo para a camada inferior, a da Internet. Também, durante o recebimento do dados, a camada de Transporte é responsável por colocar os pacotes de dados recebidos da camada de Internet em ordem (os dados podem ser recebidos fora de ordem) e também checar se o conteúdo dos pacotes estão intactos.
Os endereços IP podem ser atribuídos de forma estática ou dinâmica, dependendo da configuração da rede. Os endereços IP estáticos permanecem inalterados ao longo do tempo e são frequentemente utilizados em servidores, sistemas de acesso remoto e aplicações que exigem identificação permanente na rede. Já os endereços IP dinâmicos são atribuídos automaticamente e podem ser alterados periodicamente pelo provedor de acesso ou pelo administrador da rede.
Na camada da Internet, nós temos o IP (Internet Protocol), que pega os pacotes recebidos da camada de Transporte e adiciona uma informação de endereço virtual. Exemplo: adiciona o endereço do computador que está enviando dados e o endereço do computador que vai receber estes dados. Estes endereços virtuais são chamados de endereços IP. Então o pacote é enviado para a camada inferior, Interface de Rede e quando dos dados chegam nesta camada, eles são chamados de datagramas.
A Interface de Rede vai pegar os pacotes enviados pela camada de Internet e enviar através da rede (ou receber da rede, se o computador estiver recebendo dados). O que vai ter dentro desta camada vai depender do tipo de rede que o computador estiver inserido.
Hoje em dia, o tipo de arquitetura mais utilizada para comunicação entre computadores em redes locais é a Ethernet (que é avaliada em diferentes faixas de velocidade) e pode ser cabeada (cabo de par trançado CAT5 ou CAT6) ou WI-FI (sem fio). Ainda dentro da camada de Interface de Rede Ethernet, você deve encontrar camadas Ethernet como a LLC (Logic Link Control), MAC (Media Access Control) e a Física que é o meio físico (cabo por exemplo).
Os pacotes transmitidos através da rede são chamados de quadros.
Camadas da pilha dos protocolos internet O modelo ou arquitetura TCP/IP de encapsulamento busca fornecer abstração aos protocolos e serviços para diferentes camadas de uma pilha de estruturas de dados (ou simplesmente pilha).
No caso do modelo inicial do TCP/IP, a pilha possuía quatro camadas:
CamadaExemplo4 - Aplicação(5ª, 6ª e 7ª camada OSI)HTTP, HTTPS, FTP, DNS Essa parte contém todos os protocolos para um serviço específico de comunicação de dados em um nível de processo-a-processo (por exemplo: como um web browser deve se comunicar com um servidor da web). 3 - Transporte(4ª camada OSI)TCP, UDP, SCTP Essa parte controla a comunicação host-a-host. [protocolos como OSPF, que é executado sobre IP, podem também ser considerados parte da camada de rede] 2 - Internet(3ª camada OSI) Para TCP/IP o protocolo é IP, MPLSEssa parte é responsável pelas conexões entre as redes locais, estabelecendo assim a interconexão. [protocolos requeridos como ICMP e IGMP é executado sobre IP, mas podem ainda ser considerados parte da camada de rede; ARP não roda sobre IP] 1 - Enlace (Interface com Rede)(1ª e 2ª camada OSI)Essa é a parte responsável por enviar o datagrama recebido pela camada de "Internet" em forma de um quadro através da rede. Tecnologias usadas para as conexões: Ethernet rede com fio e Wi-Fi rede sem fio. No modelo OSI, essa camada também é física, porém, é dividido em duas partes: física e enlace de dados. A física é a parte do hardware (por exemplo os cabos das redes com fio) e a enlace de dados é a parte lógica do hardware: endereço MAC de origem e destino; controle de enlace lógico; controle de acesso ao meio. As camadas mais próximas do topo estão logicamente mais perto do usuário, enquanto aquelas mais abaixo estão logicamente mais perto da transmissão física do dado.