É necessário um ACK ao usar protocolos confiáveis como o TCP? Quanta sobrecarga / taxa de transferência é criada?

5

É necessário um ACK ao usar protocolos confiáveis como o TCP? Quanta sobrecarga / taxa de transferência penalidade cria?

    
por α CVn 24.12.2016 / 12:52

3 respostas

25

É necessário um ACK ao usar protocolos confiáveis como o TCP?

Sim. os ACKs são o mecanismo que faz do TCP um protocolo confiável.

Se os ACKs fossem removidos do protocolo, o TCP não saberia mais se um pacote havia sido descartado ou perdido e, portanto, precisava ser retransmitido.

Isso tornaria mais parecido com o UDP.

Quanta sobrecarga / taxa de transferência ela cria?

Em geral, isso não pode ser respondido, pois depende das condições da rede entre os dois pontos finais.

É evidente que a sobrecarga é menor se não houver perda de pacotes, mas se houver perda significativa de pacotes, a sobrecarga será muito maior porque os dados são retransmitidos.

Leitura Adicional

  • RFC 793 - Protocolo de Controle de Transmissão - Ferramentas do IETF
por 24.12.2016 / 13:20
5

Você perguntou sobre "protocolos confiáveis como o TCP / IP"; Vou responder por TCP / IP.

É necessário um ACK ao usar o TCP?

Sim, é parte integrante do TCP / IP. O TCP / IP é um protocolo de janela deslizante . O ACK permite que o receptor "deslize a janela", permitindo que o remetente envie mais dados. Sem o ACK, o TCP / IP não enviará mais dados não reconhecidos do que o tamanho da janela permite.

Sem uma janela deslizante, o remetente teria que preservar todo o conteúdo do fluxo de dados caso o receptor desejasse uma retransmissão de alguma parte dele. A janela deslizante permite que o remetente mantenha apenas uma pequena parte do fluxo de dados em torno de uma possível retransmissão.

Quanta sobrecarga / taxa de transferência é criada?

Em um caso em que o tamanho da janela é adequado para as condições da rede e a largura de banda do receptor para o remetente não está saturada, o ACK (e o número de sequência que o acompanha) não deve causar penalidade de throughput. Isso ocorre porque o TCP / IP não exige que um pacote seja reconhecido antes que um pacote subseqüente possa ser enviado. Sob condições favoráveis, o remetente pode enviar sem pausa enquanto recebe simultaneamente um fluxo de ACKs do receptor.

    
por 24.12.2016 / 16:12
3

Uma camada de aplicação ACK é preferida para saber que a outra extremidade realmente processou os dados. A confiabilidade do TCP, por si só, não ajuda o aplicativo a saber se os dados realmente chegaram e foram processados pelo outro lado. É um mal-entendido comum que o TCP em si torna a comunicação confiável. Dados sobre conexões TCP podem ficar presos por um tempo arbitrário em buffers do lado do remetente ou do lado do receptor e se a conexão falhar não há como o remetente saber quanto foi processado pelo receptor, a menos que as ACKs da camada de aplicativo sejam usadas .

A sobrecarga é uma viagem de ida e volta extra entre as partes, mas se houver comunicação constante, não será necessário adicionar latência se os dados forem enviados em paralelo. A sobrecarga de largura de banda é bastante pequena, no mínimo, o receptor pode ACK com um pacote de 1 byte simples, mas em casos mais complexos o pacote ACK pode precisar de algumas dezenas de bytes.

    
por 26.12.2016 / 01:26

Tags