protocol suite, conjunto de protocolos:
Um conjunto de protocolos é uma coleção de regras e padrões que determinam como as informações são transmitidas e gerenciadas em uma rede de computadores. Esses protocolos são necessários para que os dispositivos de rede possam se comunicar e trocar informações de maneira confiável e eficiente.
Os protocolos são usados para realizar uma ampla gama de tarefas, incluindo a transferência de arquivos, a transmissão de mensagens de correio eletrônico, a exibição de páginas da Web e a transmissão de voz e vídeo. Cada tarefa requer um conjunto específico de protocolos para funcionar corretamente.
Um dos protocolos mais importantes é o TCP/IP (Transmission Control Protocol/Internet Protocol), que é o conjunto de protocolos usado para a Internet. O TCP/IP é responsável por enviar pacotes de dados de uma rede para outra e garantir que os dados cheguem ao destino correto. O TCP garante a entrega confiável dos pacotes, enquanto o IP gerencia o endereçamento e a rotação dos pacotes.
Outro conjunto de protocolos importantes é o HTTP (Hypertext Transfer Protocol), que é usado para transmitir páginas da Web. O HTTP define como as solicitações do usuário são enviadas ao servidor e como as respostas são devolvidas. O protocolo HTTPS (Hypertext Transfer Protocol Secure) é uma versão segura do HTTP que usa criptografia para proteger as informações transmitidas.
O conjunto de protocolos de correio eletrônico inclui o SMTP (Simple Mail Transfer Protocol), que é usado para enviar mensagens de correio eletrônico, e o IMAP (Internet Message Access Protocol), que é usado para recuperar mensagens de correio eletrônico do servidor. O POP (Post Office Protocol) é outro protocolo de correio eletrônico que permite ao usuário recuperar mensagens de correio eletrônico armazenadas em um servidor.
Os protocolos de voz sobre IP incluem o SIP (Session Initiation Protocol), que é usado para iniciar chamadas de voz, e o RTP (Real-time Transport Protocol), que é usado para transmitir áudio e vídeo em tempo real.
Protocolos para internet
Os protocolos de internet são uma coleção de protocolos de comunicação que fornecem a pilha de protocolos sobre a qual a internet e a maioria das redes comerciais funcionam. Eles são frequentemente referidos como "protocolos TCP/IP" porque os dois primeiros protocolos a serem definidos foram o Transmission Control Protocol (TCP) e o Internet Protocol (IP).
O modelo OSI descreve sete camadas fixas de protocolos que são geralmente comparáveis ao modelo TCP/IP. No entanto, essa comparação pode causar confusão ou levar a uma compreensão mais profunda dos detalhes do modelo TCP/IP.
O modelo TCP/IP original foi baseado em quatro camadas: Host/rede, Inter-rede, Transporte e Aplicação. Posteriormente, um modelo híbrido de cinco camadas foi criado que removeu o excesso do modelo OSI e melhorou o modelo TCP/IP.
As camadas do modelo TCP/IP são:
-
Camada de Aplicação: É a camada mais alta da pilha TCP/IP e é responsável pelo processamento de dados de alto nível, como email, arquivos e serviços de transferência de arquivos (FTP). Alguns exemplos de protocolos da camada de aplicação incluem o SMTP (Simple Mail Transfer Protocol), FTP (File Transfer Protocol), Telnet, DNS (Domain Name System), HTTP (Hypertext Transfer Protocol), HTTPS (Hypertext Transfer Protocol Seguro) e outros.
-
Camada de Transporte: É responsável por assegurar a confiabilidade na transmissão de dados, garantindo a entrega dos pacotes em ordem correta. O protocolo TCP (Transmission Control Protocol) é o principal responsável por essa camada, seguido pelo UDP (User Datagram Protocol).
-
Camada de Rede: É responsável por rotear os pacotes através da rede e fazer a ligação entre redes diferentes. O protocolo IP (Internet Protocol) é o principal responsável por essa camada.
-
Camada de Link de Dados: É a camada mais baixa da pilha TCP/IP e é responsável pela transmissão física de dados a nível de enlace de dados. Exemplos de protocolos incluem o Ethernet, Wi-Fi e outros.
A implementação destes protocolos é importante para o funcionamento eficiente e seguro da internet, uma vez que cada camada fornece uma função específica e importante na comunicação de dados. O modelo TCP/IP é largamente usado e amplamente aceito como o modelo padrão para a comunicação na internet.
O modelo TCP/IP é uma solução prática para problemas de transmissão de dados. Embora essa definição possa parecer genérica, a melhor maneira de entender um protocolo TCP/IP é por meio de exemplos práticos.
De acordo com Tanenbaum, o modelo TCP/IP tem somente quatro camadas e não cinco como indicado na descrição anterior. Cada camada tem uma função específica que trabalha em conjunto com as outras camadas para garantir a transmissão eficiente e confiável de dados na internet.
Camadas da pilha dos protocolos internet
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 cinco camadas:
Camada | Exemplo |
5 - Aplicação
(camadas OSI 5 até 7) |
HTTP, FTP, DNS, Socket
(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) |
4 - Transporte
(camadas OSI 4 e 5) |
TCP, UDP, RTP, SCTP
(protocolos como OSPF, que é executado sobre IP, pode também ser considerado parte da camada de rede) |
3 - 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) |
2 - Interface de rede ou Link de dados
(camada OSI 2) |
ARP |
1 - Interface com a Rede
(camada OSI 1) |
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 um protocolo 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).
Comparação com o modelo OSI
Existe alguma discussão sobre como mapear o modelo TCP/IP dentro do modelo OSI. Uma vez que os modelos TCP/IP e OSI não combinam exatamente, mas não existe uma resposta correta para esta questão.
Além do mais, o modelo OSI não é realmente rico o suficiente nas camadas mais baixas para capturar a verdadeira divisão de camadas; é necessário uma camada extra (a camada internet) entre as camadas de transporte e de rede. Protocolos específicos para um tipo de rede que rodam em cima de estrutura de hardware básica precisam estar na camada de rede. Exemplos desse tipo de protocolo são ARP e o Spanning Tree Protocol (usado para manter pontes de rede redundantes em "espera" enquanto elas são necessárias). Entretanto, eles são protocolos locais e operam debaixo da funcionalidade internet. Reconhecidamente, colocar ambos os grupos (sem mencionar protocolos que são logicamente parte da camada internet, mas rodam em cima de um protocolo internet, como ICMP) na mesma camada pode ser um tanto confuso, mas o modelo OSI não é complexo o suficiente para apresentar algo melhor.
Geralmente, as três camadas mais acima do modelo OSI (aplicação, apresentação e sessão) são consideradas como uma única camada (aplicação) no modelo TCP/IP. Isso porque o TCP/IP tem uma camada de sessão relativamente leve, consistindo de abrir e fechar conexões sobre TCP e RTP e fornecer diferentes números de portas para diferentes aplicações sobre TCP e UDP. Se necessário, essas funções podem ser aumentadas por aplicações individuais (ou bibliotecas usadas por essas aplicações). Similarmente, IP é projetado em volta da ideia de tratar a rede abaixo dele como uma caixa preta de forma que ela possa ser considerada como uma única camada para os propósitos de discussão sobre TCP/IP.
As camadas
O que segue é uma descrição de cada camada na pilha da suíte IP.
A camada de aplicação
A camada de aplicação é a camada que a maioria dos programas de rede usa de forma a se comunicar através de uma rede com outros programas. Processos que rodam nessa camada são específicos da aplicação; o dado é passado do programa de rede, no formato usado internamente por essa aplicação, e é codificado dentro do padrão de um protocolo.
Alguns programas específicos são levados em conta nessa camada. Eles proveem serviços que suportam diretamente aplicações do usuário. Esses programas e seus correspondentes protocolos incluem o HTTP (navegação na World Wide Web), FTP (transporte de arquivos), SMTP (envio de email), SSH (login remoto seguro), DNS (pesquisas nome <-> IP) e muitos outros.
Uma vez que o dado de uma aplicação foi codificado dentro de um padrão de um protocolo da camada de aplicação ele será passado para a próxima camada da pilha IP.
Na camada de transporte, aplicações irão em sua maioria fazer uso de TCP ou UDP, e aplicações servidoras são frequentemente associadas com um número de porta. Portas para aplicações servidores são oficialmente alocadas pela IANA (Internet Assigned Numbers Authority) mas desenvolvedores de novos protocolos hoje em dia frequentemente escolhem os números de portas por eles mesmos. Uma vez que é raro ter mais que alguns poucos programas servidores no mesmo sistema, problemas com conflito de portas são raros. Aplicações também geralmente permitem que o usuário especifique números de portas arbitrários através de parâmetros em tempo de execução.
Aplicações cliente conectando para fora geralmente usam um número de porta aleatório determinado pelo sistema operacional.
O pacote relacionado à camada de aplicação é chamado Mensagem.
A camada de transporte
Os protocolos na camada de transporte podem resolver problemas como confiabilidade (o dado alcançou seu destino?) e integridade (os dados chegaram na ordem correta?). Na suíte de protocolos TCP/IP os protocolos de transporte também determinam para qual aplicação um dado qualquer é destinado.
Os protocolos dinâmicos de routing, que tecnicamente cabem nessa camada do TCP/IP, são geralmente considerados parte da camada de rede. Como exemplo tem-se o OSPF (protocolo IP número 89).
O TCP, número 6 do protocolo IP, é um mecanismo de transporte "confiável", orientado à conexão e que fornece um stream de bytes confiável, garantindo assim que os dados cheguem íntegros (não danificados e em ordem). O TCP tenta continuamente medir o quão carregada a rede está e desacelera sua taxa de envio para evitar sobrecarga. Além disso, o TCP irá tentar entregar todos os dados corretamente na sequência especificada. Essas são as principais diferenças dele para com o UDP, e pode se tornar desvantajoso em streaming, em tempo real ou aplicações de routing com altas taxas de perda na camada internet.
Recentemente criou-se SCTP (Stream Control Transmission Protocol, Protocolo de Transmissão de Controle de Stream), que também consiste em um mecanismo de transporte "confiável". Ele provê suporte a multihoming, onde o final de uma conexão pode ser representada por múltiplos endereços IP (representando múltiplas interfaces físicas), de maneira que, se algum falhar, a conexão não é interrompida. Ele foi desenvolvido inicialmente para transportar SS7 sobre IP em redes telefônicas, mas também pode ser usado para outras aplicações.
O UDP (User Datagram Protocol), número 17 do protocolo IP, é um protocolo de datagrama sem conexão. Ele é um protocolo de "melhor esforço" ou "não confiável". Não porque ele é particularmente não confiável, mas porque ele não verifica se os pacotes alcançaram seu destino, e não dá qualquer garantia que eles irão chegar na ordem. Se uma aplicação requer estas características, então ela mesma terá que provê-las ou usar o protocolo TCP.
O UDP é tipicamente usado por aplicações como as de mídia de streaming (áudio, vídeo etc), onde a chegada na hora é mais importante do que confiabilidade, ou para aplicações de simples requisição/resposta como pesquisas de DNS, onde o overhead de configurar uma conexão confiável é desproporcionalmente largo.
O DCCP está atualmente em desenvolvimento pelo IETF. Ele provê controle de fluxo das semânticas do TCP, enquanto mantém o modelo de serviço de datagramas do UDP visível para o usuário. O DHCP é incrementado automaticamente sem intervenção do usuário.
Tanto o TCP quanto o UDP são usados para transmitir um número de aplicações de alto nível. As aplicações em qualquer endereço de rede são distinguidas por seus endereços de porta TCP ou UDP. Por convenção, certas portas "bem conhecidas" estão associadas com aplicações específicas.
O pacote da camada de transporte é chamado Segmento.
A camada de rede
Como definido anteriormente, a camada de rede resolve o problema de obter pacotes através de uma rede simples. Exemplos de protocolos são o X.25 e o Host/IMP da ARPANET.
Com o advento da internet novas funcionalidades foram adicionadas nesta camada, especialmente para a obtenção de dados da rede de origem e da rede de destino. Isso geralmente envolve rotear o pacote através de redes distintas que se relacionam através da internet.
Na suíte de protocolos para a internet, o IP executa a tarefa básica de levar pacotes de dados da origem para o destino. O protocolo IP pode transmitir dados para diferentes protocolos de níveis mais altos, esses protocolos são identificados por um único número de protocolo IP.
Alguns dos protocolos transmitidos por IP, como o ICMP (usado para transmitir informação de diagnóstico sobre a transmissão IP) e o IGMP (usado para gerenciar dados multicast) são colocados acima do IP mas executam funções da camada internet. Isso ilustra uma incompatibilidade entre os modelos da internet e OSI. Todos os protocolos de routing, como o BGP, o OSPF e o RIP são também parte da camada de internet, muito embora eles possam ser vistos como pertencentes a camadas mais altas na pilha.
O datagrama (PDU) da camada de rede é geralmente conhecido como "pacote". Lembrando que todas as camadas tem seu PDU que variam o nome em : Dados (Aplicação), Segmento (Transporte), Pacote (Rede), Quadros (Enlace) e Bits (Física e LLC que é sub-camada de enlace)
A camada de enlace
A camada de enlace não é realmente parte do modelo TCP/IP, mas é o método usado para passar quadros da camada de rede de um dispositivo para a camada de internet de outro. Esse processo pode ser controlado tanto em software (device driver) para a placa de rede quanto em firmware ou chipsets especializados. Esses irão executar as funções da camada de enlace de dados como adicionar um header de pacote para prepará-lo para transmissão, então de fato transmitir o quadro através da camada física. Do outro lado, a camada de enlace irá receber quadros de dados, retirar os headers adicionados e encaminhar os pacotes recebidos para a camada de internet. Essa camada é a primeira normatizada do modelo, é responsável pelo endereçamento, roteamento e controle de envio e recepção.Ela não é orientada à conexão, se comunica pelos datagramas (pacotes de dados).
Entretanto, a camada de enlace não é sempre tão simples. Ela pode também ser um VPN (Virtual Private Network, Rede Privada Virtual) ou túnel, onde pacotes da camada de internet, ao invés de serem enviados através de uma interface física, são enviados usando um protocolo de tunneling e outra (ou a mesma) suíte de protocolos. O VPN ou túnel é usualmente estabelecido além do tempo, e tem características especiais que a transmissão direta por interface física não possui (por exemplo, ele pode criptografar os dados que passam através dele). Esse uso recursivo de suíte de protocolos pode ser confuso uma vez que a "camada" de enlace é agora uma rede inteira. Mas é um método elegante para implementar funções frequentemente complexas. Embora seja necessário muito cuidado para prevenir que um pacote já empacotado e enviado através de um túnel seja mais uma vez empacotado e reenviado pelo mesmo.
O pacote da camada de enlace é conhecido como Quadro.
A camada física
A camada física do Protocolo TCP/IP trata das características elétricas e mecânicas do meio, como tipos de conectores e cabos utilizado para estabelecer uma comunicação.
Implementações
Hoje, a maioria dos sistemas operacionais comerciais incluem e instalam a pilha TCP/IP por padrão. Para a maioria dos usuários, não há nenhuma necessidade de procurar por implementações. O TCP/IP é incluído em todas as versões do Unix e Linux, assim como no Mac OS e no Microsoft Windows.
Ver também
Também chamada de: protocol stack (pilha de protocolos).
Ver também: ISO/OSI model (modelo ISO/OSI).