(Simples) Protocolo UDP - Rede

1

Eu sei que o UDP é um protocolo não confiável onde as coisas podem chegar fora de ordem, não chegarem completamente, etc.

Também estou ciente de que ao usar o UDP para algo como traceroute, pacotes que chegam a roteadores com TTL = 1 e pacotes que chegam a hosts finais destinados a portas não abertas geram mensagens de erro ICMP que são transmitidas de volta ao remetente .

Minha pergunta é: o remetente tem alguma maneira de saber se um pacote padrão foi descartado? Eu sei que o protocolo não é confiável, mas há algum tipo de "ack" enviado de volta pelo receptor no protocolo UDP para permitir que o remetente saiba sobre o pacote descartado?

Esta é uma questão de protocolo direto para o UDP básico, não quero saber sobre o que "posso fazer". Eu li algumas coisas agora e enquanto eu tenho 100% de certeza que a resposta é não, você não pode dizer, eu li algumas coisas que me deixaram desconfortável com isso.

    
por John Humphreys - w00te 03.08.2011 / 22:15

2 respostas

7

Por definição, se um pacote UDP for descartado, o destinatário não poderá enviar um aviso ao remetente porque nada foi recebido. Você pode colocar seu próprio sistema de confirmação sobre o UDP. Mesmo um simples "se nenhum dado foi recebido em X segundos, envie um pacote para o remetente indicando tal". Você pode inserir seus próprios números de seqüência nos pacotes UDP, para que os pacotes perdidos / perdidos possam ser detectados, mas você provavelmente desejaria estar usando o TCP de qualquer forma, já que os números de seqüência e drop / lost TCP.

Basicamente, o UDP é fogo-e-esqueça. Os roteadores estão livres para abandonar os pacotes por capricho sem qualquer tipo de aviso ao remetente ou ao destinatário. Se eles tivessem que gerar um pacote de avisos de queda, isso apenas aumentaria as condições de congestionamento que faziam com que o pacote UDP fosse descartado em primeiro lugar. Os roteadores irão entregar um pacote UDP, se puderem, mas se as coisas ficarem ocupadas, o UDP terá prioridade mais baixa do que outros protocolos.

    
por 03.08.2011 / 22:20
1

A maneira mais simples de entender um pacote UDP é compará-lo a um tiro de bala de uma arma. Ele é enviado e, no que diz respeito à arma (remetente), o trabalho é feito. Embora existam maneiras de criar feedback, isso é algo que deve ser abordado, pois não é incorporado.

    
por 04.08.2011 / 02:00