O que é o TCP/IP ?

O TCP/IP é um modelo de referência de redes documentado na RFC 1180 de janeiro de 1991, que possibilita a comunicação entre dispositivos, e se refere a um conjunto de documentos. Cada um destes documentos descrevem pequenas funções requeridas de uma rede, juntos, esses documentos definem como as coisas devem acontecer em uma rede de computadores para um bom funcionamento.

Para entendermos melhor isso vamos entender porque e como surgiu o modelo TCP/IP.

Por mais que hoje o mundo de redes de computadores usem o modelo TCP/IP, nem sempre as coisas foram tão simples assim.
  No início de tudo, para que pudesse existir a comunicação entre dispositivos cada fabricante desenvolvia o seu próprio protocolo de comunicação, protocolos estes que não eram capazes de comunicar com os desenvolvidos por outros fabricantes. Por exemplo a empresa IBM, que era uma empresa com maior participação no mercado nas décadas de 1970 a 1980, desenvolveu seu modelo de redes Systems Network Architecture (SNA) em 1974, desta mesma forma outros fabricantes desenvolveram os seus próprios protocolos de comunicação.
  Perceba que, naquela época, se uma companhia adquirisse computadores de três fabricantes, os engenheiros de redes tinham que construir três diferentes redes baseadas no modelo de rede desenvolvido por cada fabricante, e de alguma forma, conectar essas redes entre si tornando a administração muito mais complexa.
Embora os modelos de redes proprietários definidos por fabricantes muitas vezes funcionassem bem, era uma necessidade ter um modelo de rede aberto e independente para reduzir a complexidade da comunicação em redes. Foi ai quando a International Organization for Standardization (ISO) assumiu a tarefa de desenvolver um modelo que seria capaz de ser universal para a comunicação. Então foi desenvolvido o modelo Open Systems Interconnection (OSI) para padronizar protocolos de redes e permitir a comunicação entre todos os fabricantes no mundo inteiro.
Em paralelo a isto também com a intenção de desenvolver um protocolo aberto e universal para comunicação entrou em jogo o U.S. Departament of Defense (DoD) (Departamento de Defesa dos Estados Unidos) que com a ajuda de vários pesquisadores de universidades desenvolveram um protocolo que resultou no modelo TCP/IP.
Durante os anos de 1990, companhias adotaram o modelo OSI, TPC/IP ou ambos em suas redes. Portanto, no final dos anos 1990, o modelo TCP/IP se tornou a escolha mais comum.

Vamos entender agora como esse cara funciona

O Modelo TCP/IP cria um conjunto de regras que permite que dispositivos consigam se comunicar, regras estas que são divididas em camadas que dividem funções em categorias.
Como assim ? Confuso né ? vamos lá…

    A camada inferior, física, tem o papel de transmitir os bits, aqui estão os sinais elétricos de cabos de par trançado, os sinais ópticos em fibras, as microondas em sinais de rádios, tudo que envolva a parte física de uma comunicação de rede.
    A camada de enlace também conhecida como link-layer  se concentra no envio de dados por meio de um tipo de link físico; eita…. complicou !
se acalme basta pensar no seguinte, cada uma dessas camadas usa determinados protocolos, na camada 2, camada de enlace, temos como exemplo: Ethernet, PPP, VLAN, ATM, HDLC dentre outros protocolos.
    Já a camada de rede, está focada no encaminhamento, aqui é onde o protocolo vê de onde o pacote vem e para onde vai, aqui é realizado as funções de roteamento, fragmentação e remontagem de pacotes, e também é aqui que está o protocolo IPv4 e IPv6. Outros protocolos de camada de rede incluem protocolos de roteamento, como OSPF (Open Shortest Path First) e protocolos de mensages, como ICMP (Internet Control Message Protocol). 
Na camada de transporte, fica a responsabilidade de comunicação lógica entre aplicativos executados em dispositivos diferentes, aqui estão as sessões temporárias entre dois dispositivos e a transmissão confiável de informações. Temos TCP (Transmission Control Protocol) e UDP (User Datagram Protocol) como protocolos da camada de transporte.
 
A camada de aplicação, é a camada mais próxima do usuário final, que tem como principais funções apresentar e formatar dados em um formato compatível para o receptor, comprimir dados de uma forma que possa ser descompactado pelo receptor e criptografar os dados para a transmissão e descriptografar os dados após o recebimento. Temos como exemplos de protocolos da camada de aplicação DNSHTTPSMTPPOPDHCPFTPIMAP.