Pré-requisito: modelo TCP / IP , protocolo de datagrama do usuário (UDP) Show
Nesta era da internet moderna, com entretenimento, educação, jogos e todos os tipos de necessidades transmitindo ao vivo todos os dias, a demanda por um fluxo de vídeo ininterrupto é altamente inflexível. Para mergulhar no tópico de qual protocolo é melhor para streaming de vídeo, é necessário estar familiarizado com os protocolos TCP e UDP . TCP em pacotes de transmissão:
Transmissão normal do Reação
do TCP a pacotes perdidos: Podemos observar um cenário que descreve a reação do TCP aos pacotes perdidos abaixo - Neste cenário, a fonte A envia 10 pacotes de dados D1 a D10 para o destinatário B e, durante a transmissão, um pacote de dados D6 é perdido.
Observamos que um único pacote descartado causou um processo de início lento e um processo de prevenção de congestionamento para não
permitir o aumento do fluxo de tráfego. Ele caiu para um único pacote de cada vez. Assim, com a perda de um único pacote, nossa taxa de transferência chega a 50%.
Portanto, se seu cliente estiver exigindo largura de banda mais do que o remetente poderia fornecer e houver perda de dados, a latência será inevitável. Agora, se pensarmos em um streaming de vídeo ao vivo e devido a algumas das causas acima mencionadas, ocorre uma perda de pacote, então o desempenho do streaming ao vivo será fortemente deteriorado porque o protocolo estará ocupado retransmitindo os pacotes perdidos. Isso fará com que o espectador fique para trás em relação ao que realmente está sendo transmitido no vídeo ao vivo. UDP:
Portanto, vemos que o UDP não fornece nenhum meio de recuperar os pacotes perdidos. Ele não se importa se cada pacote atingiu seu destino ou não. Se você pensar no streaming de vídeo ao vivo novamente, uma perda em um pacote de dados não atrasará o vídeo para recuperar o pacote perdido. A qualidade do vídeo irá se deteriorar dependendo de quanto foi a perda, variando de um pequeno quadrado no canto da tela sendo distorcido ou a tela inteira, mas o ritmo do vídeo permanecerá alinhado com a transmissão ao vivo real. Protocolo em tempo real:
Portanto, o UDP pode ser muito sensível à perda de voz se vários pacotes sucessivos forem perdidos, o áudio cair momentaneamente e notarmos isso. Mas se você perder um único pacote, é um 50º de um segundo de um som e seu ouvido não é sensível para detectar isso. Mas no caso do vídeo, como tantos pacotes de vídeo são necessários para pintar um único quadro, a qualidade pode ser reduzida e se torna aparente na forma de pequenos quadrados ou pequenos cortes na tela que mudam para uma cor diferente porque os dados não t vêm para pintá-lo corretamente. Em uma transmissão de áudio ou vídeo em tempo real, as redes normalmente não devem apresentar perda> 0,25%. Portanto, o UDP acoplado a outros protocolos como RTP, WebRTC e RTSP pode fornecer uma experiência de streaming de vídeo melhor do que o TCP. Por que uma aplicação usaria UDP ao invés de TCP?O protocolo UDP funciona de forma semelhante ao TCP, mas elimina todo o material de verificação de erros. Toda a comunicação de ida e volta introduz latência, tornando as coisas mais lentas. Quando um aplicativo usa UDP, os pacotes são enviados apenas para o destinatário.
Por que o streaming de mídias como áudio e vídeo são realizados utilizando UDP em vez do TCP?O UDP (User Datagram Protocol), e não o TCP, é o protocolo de transmissão preferido para streaming em tempo real, porque não tem problemas com perdas de pacotes. O UDP pode enviar pacotes a uma taxa constante, independentemente de congestões na rede ou da capacidade da aplicação os conseguir receber.
Por que para aplicações em tempo real o protocolo UDP é mais indicado que o TCP?O protocolo UDP é a solução para aplicações que precisam de velocidade e podem abrir mão da confiabilidade do TCP. O UDP abre mão dessa confiabilidade, e isso o faz ser muito mais rápido do que o TCP. Ele envia os pacotes sem verificar se eles foram enviados corretamente.
Por que o UDP e adequado como protocolo de camada de transporte para aplicativos de vídeo?UDP Header
Um dos requisitos mais importantes para fornecer vídeo e voz ao vivo pela rede é que os dados continuem a fluir rapidamente. Os aplicativos de vídeo e voz ao vivo podem tolerar alguma perda de dados com efeito mínimo ou nenhum efeito perceptível e são perfeitamente adequados para UDP.
|