Membros do grupo

O Problema

O problema consiste em desenvolver uma versão do Real-time Transport Protocol (RTP), que utilize como protocolos subjacentes o UDP e o TCP de janela 0. O RTP é o padrão mais comum para a transferência de dados multimídia em redes IP, e possui suporte à correção de jitter e à distribuição multicast. Ele é utilizado, por exemplo, em aplicações de streaming de áudio/vídeo, voz sobre ip, entre outras. O RTP é usado em conjunto com um segundo protocolo, o RTCP (Real-Time Control Protocol). Enquanto o RTP em si é responsável pelo transporte dos dados com características de tempo real, o RTCP monitora a qualidade de serviço e fornece informações de temporização para os participantes.

Metas

Implementar o protocolo RTP como componente do sistema operacional EPOS--, utilizando como protocolos subjacentes o UDP e o TCP com janela 0. A implementação desenvolvida deve ser capaz de suportar a execução de algum tipo de aplicação normalmente associado ao RTP, como streaming de áudio/vídeo e telefonia.

RTP - Real-Time Transport Protocol

RTCP - Real-Time Transport Control Protocol

Conclusão

O protocolo RTP é importante para a transmissão de mídia e largamente aplicado, devido à sua flexibilidade. Tais características tornam a sua adaptação aos sistemas embarcados uma tarefa complexa. Fixamos diversos parâmetros e simplificamos a implementação em vários aspectos para atender às limitações do hardware, mas com isso perdemos a abrangência do protocolo.

A nossa ideia principal era realizar a transferência de dados de um servidor para um receptor, o que só foi alcançado perto do prazo de entrega do projeto. Então apesar do RTCP ser essencial para melhorar a performance da transferência, se não houver dados trafegando na rede não há porquê utilizar um protocolo de controle. Este é o motivo pelo qual priorizamos a implementação do RTP sobre o RTCP.

A implementação do projeto nos possibilitou aperfeiçoar os conhecimentos sobre rede de computadores e nos incentivou a entrar em contato com normas, como a RFC3550. Pudemos também praticar a programação na linguagem C++ (que não é muito abordada no curso) e revisar os conceitos de sistemas operacionais.

Aplicações de teste

Código completo

Bibliografia