Enquanto muitos protocolos oferecem mecanismos de manipulação de erros,
TCP (Protocolo de Controle de Transmissão) Geralmente fornece os recursos de manipulação de erros mais robustos e abrangentes. Aqui está o porquê:
*
Orientado por conexão: O TCP estabelece uma conexão antes da transmissão de dados, permitindo comunicação confiável através de um aperto de mão de três vias. Esse aperto de mão permite a negociação de parâmetros e uma garantia de que ambos os lados estão prontos para se comunicar.
*
Transferência de dados confiável: O TCP garante entrega confiável de dados. Faz isso através de vários mecanismos:
*
Entrega sequenciada: Os segmentos TCP (unidades de dados) são numerados, garantindo que sejam entregues na ordem correta. Se os segmentos chegarem fora de ordem, o receptor os encobrirá antes de passar os dados para a camada do aplicativo.
*
reconhecimento (ACK): O receptor envia um reconhecimento (ACK) para cada segmento recebido. Isso confirma que os dados chegaram com sucesso.
*
retransmissão: Se o remetente não receber um ACK dentro de um determinado período de tempo limite, ele pressupõe que o segmento tenha sido perdido e retransmitam -o. Isso garante que todos os dados cheguem, mesmo na presença de congestionamento ou erros de rede.
*
soma de verificação: Cada segmento TCP inclui uma soma de verificação. O receptor calcula a soma de verificação do segmento recebido e o compara à soma de verificação incluída no segmento. Se as somas de verificação não corresponderem, indica que os dados foram corrompidos durante a transmissão e o receptor descarta o segmento. O remetente, sem receber um ACK, retransmitirá o segmento corrompido.
*
Controle de fluxo: O TCP usa mecanismos de controle de fluxo (como uma janela deslizante) para impedir que o remetente sobrecarregue o receptor. O receptor anuncia o tamanho da janela de recebimento, indicando quanto dados ele pode suportar. O remetente não deve enviar mais dados do que o tamanho da janela anunciada.
*
Controle de congestionamento: O TCP inclui mecanismos de controle de congestionamento (como início lento, prevenção de congestionamentos, retransmissão rápida e recuperação rápida) para evitar sobrecarregar a rede. Ele detecta congestionamento da rede monitorando a perda ou atraso de pacotes e ajusta sua taxa de envio de acordo.
Por outro lado, o UDP (Protocolo do Datagrama do Usuário) é um protocolo sem conexão que oferece manuseio mínimo de erros. O UDP envia dados sem estabelecer uma conexão ou garantir entrega. Ele não fornece reconhecimentos, retransmissão, sequenciamento ou controle de fluxo. Isso torna o UDP mais rápido e mais eficiente para aplicativos em que alguma perda de dados é aceitável (por exemplo, streaming de vídeo, jogos on -line), mas é menos confiável que o TCP. Os aplicativos usando UDP devem implementar seus próprios mecanismos de manipulação de erros se a confiabilidade for importante.
Outros protocolos, como HTTP ou SMTP, construir * no topo * do TCP, herdando seus recursos de transporte confiáveis. O HTTP, por exemplo, conta com o TCP para entrega confiável de conteúdo da Web. O SMTP, por email, também usa o TCP para transferência de mensagens confiável. Esses próprios protocolos fornecem manuseio de erros da camada de aplicativo (por exemplo, códigos de status HTTP, mensagens de erro SMTP), mas a confiabilidade * subjacente * vem do TCP.
Portanto,
tcp destaca-se como o protocolo que fornece os recursos de manipulação de erros mais robustos devido à sua natureza orientada para a conexão e seus mecanismos abrangentes para garantir uma transferência confiável de dados.