O modelo 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 TCP/IP, a pilha possui quatro camadas:
Camada | Exemplo |
4 - Aplicação (camadas OSI 5 até 7) | HTTP, FTP, DNS, RTP (protocolos de routing como BGP e RIP, que, por uma variedade de razões, são executados sobre TCP e UDP respectivamente, podem também ser considerados parte da camada de rede) |
3 - Transporte (camadas OSI 4) | TCP, UDP, SCTP (protocolos como OSPF, que é executado sobre IP, podem também ser considerados parte da camada de rede) |
2 - Internet ou Inter - Rede (camada OSI 3) | Para TCP/IP o protocolo é IP, MPLS (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 - Interface com a Rede (camadas OSI 1 e 2) | Ethernet, Wi-Fi,Modem, etc. |
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. Cada camada tem umprotocolo de camada acima e um protocolo de camada abaixo (exceto as camadas da ponta, obviamente) que podem usar serviços de camadas anteriores ou fornecer um serviço, respectivamente.
Enxergar as camadas como fornecedores ou consumidores de serviço é um método de abstração para isolar protocolos de camadas acima dos pequenos detalhes de transmitir bits através, digamos, de ethernet, e a detecção de colisão enquanto as camadas abaixo evitam ter de conhecer os detalhes de todas as aplicações e seus protocolos.
Essa abstração também permite que camadas de cima forneçam serviços que as camadas de baixo não podem fornecer. Por exemplo, o IP é projetado para não ser confiável e é um protocolo best effort delivery. Isso significa que toda a camada de transporte deve indicar se irá ou não fornecer confiabilidade e em qual nível.
O TCP (Transmission Control Protocol - Protocolo de Controle de Transmissão), é um protocolo orientado a conexões confiável que permite a entrega sem erros de um fluxo de bytes.
O UDP fornece integridade de dados (via um checksum) mas não fornece entrega garantida; já o TCP fornece tanto integridade dos dados quanto garantia de entrega (retransmitindo até que o destinatário receba o pacote).