# Protocolo (ciência da computação)

Na ciência da computação, um protocolo é um padrão (conjunto de regras convencionadas) que controla e possibilita a conexão, comunicação e, transferência de dados entre dois sistemas computacionais; ou seja, em uma rede de computadores o protocolo é o responsável pela comunicação entre os computadores (a linguagem padrão de comunicação) e também responsável pela troca de dados entre eles, independente da localização e independente do sistema operacional/plataforma utilizada nesses equipamentos.
De maneira simples, um protocolo pode ser definido como "as regras que governam" a sintaxe, semântica e sincronização da comunicação. Os protocolos podem ser implementados pelo hardware, software ou por uma combinação dos dois.

## Propriedades típicas

É difícil generalizar sobre protocolos pois eles variam muito em propósito e sofistificação. A maioria dos protocolos especifica uma ou mais das seguintes propriedades:
* detecção da conexão física subjacente ou a existência de um nó;
* handshaking (estabelecimento de ligação);
* negociação de várias características de uma conexão;
* como iniciar e finalizar uma mensagem;
* como formatar uma mensagem;
* o que fazer com mensagens corrompidas ou mal formatadas;
* como detectar perda inesperada de conexão e o que fazer em seguida;
* término de sessão ou conexão

## Importância

O uso do funcionamento de protocolos difundidos e a expansão dos protocolos de comunicação é ao mesmo tempo um pré-requisito e uma contribuição para o poder e sucesso da Internet. O par formado por IP e TCP é uma referência a uma coleção dos protocolos mais utilizados. A maioria dos protocolos para comunicação via Internet é descrita nos documentos RFC do IETF.
Geralmente apenas os protocolos mais simples são utilizados sozinhos. A maioria dos protocolos, especialmente no contexto da comunicação em rede de computadores, são agrupados em pilhas de protocolo onde as diferentes tarefas que perfazem uma comunicação são executadas por níveis especializados da pilha.
Enquanto uma pilha de protocolos denota uma combinação específica de protocolos que trabalham conjuntamente, um modelo de referência é uma arquitetura de software que lista cada um dos níveis e os serviços que cada um deve oferecer. O modelo clássico OSI, em sete níveis, é utilizado para conceitualizar pilhas de protocolo.

## Lista de protocolos de comunicação em rede

| Protocolo | Descrição | Porta padrão | Camada OSI |
| IP | Internet Protocol (Protocolo de Internet) | | |
| DHCP | Dynamic Host Configuration Protocol (Protocolo de Configuração de Dinâmica de Anfitrião) | | |
| TCP | Transmission Control Protocol (Protocolo de Controle de Transmissão) | | |
| HTTP | Hypertext Transfer Protocol (Protocolo de Transferência de Hipertexto) | 80 | 7 (Aplicação) |
| FTP | File Transfer Protocol (Protocolo de Transferência de Arquivos) | 20,21 | 7 (Aplicação) |
| Telnet | Telnet Remote Protocol (Protocolo Remoto Telnet) | 23 | 7 (Aplicação) |
| SSH | Secure shell ("Concha Segura") | 22 | 7 (Aplicação) |
| POP3 | Post Office Protocol (Protocolo dos Correios) | 110 | |
| SMTP | Simple Mail Transfer Protocol (Protoclo de Trasferência de Correios Simples) | 25 | 7 (Aplicação) |
| IMAP | Internet Message Access Protocol (Protocolo de Acesso a Mansagens na Internet) | 143 | |
| IRC | Internet Relay Chat (Retransmissão de Bate-papo online) | 6667 | 7 (Aplicação) |

### Protocolo TCP/IP

   O TCP/IP é um conjunto de protocolos de comunicação. O nome vem de dois protocolos TCP (Transmission Control Protocol) e o IP (Internet Protocol). Ele tem por objetivo padronizar todas as comunicações de rede, principalmente as comunicações na web.
   O modelo TCP/IP possui apenas 4 camadas que englobam as 7 camadas do modelo OSI. As camadas mais acima recebem informações e as distribui para as camadas inferiores, atribuindo a cada uma delas a função que exercerá durante a comunicação.
   Como se relacionam as 4 camadas TCP/IP e suas funções:
   * Camada 4: Aplicação
   Aqui encontram-se todos os protocolos de serviço que efetuam a comunicação direta com o software para identificar o tipo de requisição que está sendo realizada. Após a comunicação entre software e a camada de Aplicação, a informação é codificada dentro do padrão do protocolo e repassada para as camadas inferiores.
   * Camada 3: Transporte
   Responsável pela comunicação entre os pontos (hosts) envolvidos. Ela tem como função a manutenção da confiabilidade e integridade da comunicação, verificando se o pacote alcançou seu destino e se os dados nele contidos chegaram de maneira íntegra.
   É por isso que uma de suas funções é o estabelecimento de um padrão de qualidade de serviço (QoS - a qual, na prática, define os limites mínimos aceitáveis para certos parâmetros de desempenho para que a conexão seja mantida) sobre o qual a comunicação deve ocorrer. Ainda tem como função a definição de como uma conexão deve ser estabelecida, mantida e encerrada.
   Por ser a primeira camada que ocorre a transferência de pacotes entre as duas que se interligam apenas se movem nos locais que estão sendo organizadas, é o transporte que realiza a conexão e desconexão entre esses locais, e devido assim seus protocolos são denominados de ponto a ponto. Assim, é necessário que somente a necessidade de envio de mensagens requerindo a conexão, aceitando o pedido e realizando a conexão depois da confirmação sobre a qualidade da comunicação.
   * Camada 2: Internet ou Rede
   Pode-se dizer que aqui está o GPS do pacote TCP/IP, pois dentro dessa camada é que encontramos os endereços de origem e destino de uma conexão.
   Durante todo o tráfego do pacote pela rede ele encontra diversos equipamentos que o direcionam para a melhor rota a fim de atingir seu destino. Esses equipamentos são chamados de roteadores e pode-se, em uma analogia, defini-los como nós de uma rede.
   Dentro dessa camada podemos encontrar os protocolos ICMP e o IGMP. O primeiro é utilizado para transmitir diagnósticos sobre a rede que está trafegando. O segundo é utilizado para o gerenciamento do multicast de dados.
   * Camada 1: Enlace ou Física
   Tem por função identificar a conexão física da rede pela qual o pacote trafega. Por exemplo, Ethernet, Wi-Fi, Modem discado, ATM, FDDI, Token Ring, X.2. Além disso, carrega consigo a identidade do hardware que deu origem ao envio do pacote armazenando o seu endereço MAC.

## Programação orientada a objeto

A programação orientada a objeto estendeu a utilização do termo protocolo para incluir os protocolos de programação para disponibilizar conexões e comunicação entre objetos.

## Protocolo de internet

IPv6 foi desenvolvido em 1998, pela IETF(INTERNET ENGINEERING TASK FORCE) que é a organização responsável por toda engenharia da internet e ratificado como padrão em 2017, possuindo 128 bits, não utilizando décimas e sim hexadecimais (128²) o equivalente a 340 undecilhões de endereços possíveis. O Protocolo anterior, IPv4, com a alta repentina de dispositivos conectados em decorrência da chamada “Internet das Coisas”(IoT, na sigla em inglês) que permite cada vez mais dispositivos conectados à internet a conexão dos objetos, mais do que das pessoas então foi preciso atualizar o cenário dando maior capacidade, a fim de conseguir acolher todos esses novos dispositivos.
SEIS CARACTERISTICAS DO IPV6:
* Roteamento mais eficiente;
* Melhor processamento de pacotes;
* Fluxo de dados diretos;
* Configuração de rede simplificada;
* Suporte para novos serviços;
* Melhoria da segurança.
Com o fim próximo dos endereços IPv4, diversos países já começaram a mobilizar-se para atualizar suas infraestruturas de rede e suportar endereços IPv6. Embora a necessidade seja iminente, a adoção do novo modelo ainda é lenta na maior parte do mundo, especialmente no brasil.
Especialistas do setor indicam que a falta de regulamentação específica incentivando a mudança para o protocolo é considerado um desafio para a migração. isso porque realizar a troca do IPv4 para o IPv6 exige que software e roteadores sejam alterados para suportar o avanço da rede e isso demanda tempo e investimentos, já são mais de 20 anos de andamento, a passos lentos, o Google possui uma área dedicada para o acompanhamento do processo de adoção ao IPv6 no mundo, hoje os protocolos ainda coexistem, funcionando paralelamente. Não há como prever quando o IPv6 substituirá o IPv4 por completo.