Enviando um arquivo via soquete TCP / UDP

1

Estou lendo sobre TCP e UDP em um artigo. No final, o que entendi é que o UDP é mais rápido que o TCP, mas não é confiável. Então, se eu estou indo para enviar um arquivo, se usar UDP, seria ser mais rápido que o TCP? Alguém pode explicar como seria mais rápido que o TCP?

    
por user9423112 07.12.2011 / 18:05

1 resposta

6

Pode ser mais rápido porque não requer handshaking para começar a enviar pacotes com payload (não há nenhum conceito de conexão com UDP - você apenas envia pacotes e espera que o outro receba coisas) e os cabeçalhos de pacotes são um pouco menores (embora para o tráfego em massa que resulta em pacotes grandes sendo enviados, isso provavelmente não é tão significativo).

Você não desejaria enviar dados dessa maneira - você teria que implementar a detecção de pacote ausente, reenvio de pacotes, reordenação de pacotes (eles nem sempre chegam na mesma ordem em que são enviados), detecção de congestionamento, e assim que o TCP faz por você. Uma vez que você adicionar tudo isso em você, quase certamente descobrirá que você não foi mais rápido (talvez muito mais lento) do que o TCP teria sido e você fez muito trabalho para chegar lá.

O TCP é bom para quando as informações em pacotes perdidos não precisam ser reenviadas, você deseja que implemente seu próprio controle de fluxo, ou você está agrupando fluxos TCP e semelhantes em seu próprio fluxo ( isto é, você está implementando uma VPN - TCP através de TCP pode ter problemas significativos de desempenho quando há congestionamento intermitente), não é bom para transferir dados em massa como ao tentar transmitir um arquivo de forma confiável (exceto no caso de VPN, é claro, mas você ainda usam o TCP dentro do wrapper da VPN).

    
por 07.12.2011 / 18:56

Tags