Soquete UDP liberado. Quais são as limitações? Quando isso bloqueia?

0

Eu planejo enviar uma grande quantidade de dados por meio do UDP (streaming de vídeo), e pensei em um sistema que exige detectar quando uma interface atingiu a banda máxima de upload.

Eu sei que quando eu libero os dados de saída em um soquete ele bloqueia até que o buffer seja esvaziado, mas, por que o soquete está bloqueado? Enviar mais do que a banda de upload é uma dessas limitações? Quero dizer, por exemplo, envio instantaneamente 100 Kb de dados por meio de um soquete; ter uma velocidade de upload de 10 Kb / s fará o bloco de soquete durante 10 segundos? Ou vai flush para outra interface (digamos, o roteador) e ele retornará embora os dados não foram enviados para a Internet?

Lembre-se de que estamos falando de UDP, então não há ACKs.

    
por Jorge Fuentes González 22.12.2014 / 21:19

2 respostas

2

Há largura de banda do seu servidor e largura de banda do roteador. Seu servidor estará enviando dados o mais rápido possível para colocá-lo no fio da sua interface (blocos UDP, quando o buffer de soquete no servidor está cheio).

Até onde eu sei, o roteador estará descartando pacotes em excesso (como exatamente eles serão selecionados depende do sistema operacional do roteador) quando os buffers estiverem cheios. Seu aplicativo precisa lidar adequadamente com pacotes perdidos ou implementar alguma lógica para controlar o fluxo de pacotes (não há feedback em caso de perda de pacotes - o UDP é um transporte não confiável ).

SCTP pode ser uma alternativa melhor se for uma opção aceitável.

    
por 22.12.2014 / 22:38
0

Se a largura de banda for de 10Kb / s entre você e seu roteador, o soquete ficará bloqueado por algum tempo, o tempo para enviar os sinais elétricos para o dispositivo "próximo salto". Se a sua conexão com a Internet está limitada a 10Kb / s, seu soquete será liberado rapidamente, mas o roteador terá que lidar com o próximo ponto, de modo que seu soquete estará ocupado enquanto o seu está vazio.

    
por 22.12.2014 / 21:41