Redes Multimídia (diário 2017-1)
Endereço encurtado: http://bit.ly/rmu20162
Redes Multimidia: Diário de Aula 2017-1
Professora: Simara Sonaglio
E-mail: simara.sonaglio@ifsc.edu.br
Encontros:
Atendimento paralelo:
Bibliografia
- Livros sobre Redes de Computadores (por ordem de preferência):
- KUROSE, James F. e ROSS, Keith W. Redes de computadores e a Internet, Uma abordagem Top-Down. 5a edição. Editora Addison Wesley SP, 2010.
- Sérgio Colcher, Antônio Tadeu Azevedo Gomes, e Anderson Oliveira da Silva. VoIP: Voz sobre IP. Campus, 1a edição, 2005.
- STALLINGS, W. Redes e sistemas de comunicação de dados. Editora Elsevier RJ, 2005.
- TANENBAUM, Andrew S. Redes de Computadores, tradução da quarta edição. Editora Campus RJ, 2003
- FOROUZAN, Behrouz. Comunicação de Dados e Redes de Computadores, 3a/4a edicão. Editora Bookman, 2004.
Softwares
Avaliações
Diário das aulas
13/02 - Apresentação da disciplina
Aula 1 |
---|
Apresentação da disciplina: conteúdo, bibliografia e avaliação, laboratório. |
14/02 - Etapa Asterisk: Introdução, plano de discagem e contas SIP
Aula 2 |
---|
Um PBX IP funciona como uma central telefônica, porém intermediando chamadas VoIP. Com isso, as chamadas são feitas de um telefone IP em direção ao PBX IP, que a encaminha ao telefone IP de destino de acordo com suas regras de discagem. A figura abaixo ilustra como funciona uma chamada VoIP típica através de um PBX IP.
PBX IP Asterisk
Características Básicas: faz tudo que um PABX pequeno e simples faz e pouco mais
Canais SIPCada telefone SIP deve ter seu identificador cadastrado no Asterisk. O identificador pode tanto ser um número, análogo a um ramal, ou uma string alfanumérica. No terminologia do Asterisk, cada telefone SIP é chamado de canal SIP, e deve estar declarado em /etc/asterisk/sip.conf: ; Canal 2000 (um exemplo)
[2000]
defaultuser=maria ; o nome do usuário para fins de autenticação
secret=kabrum
type=friend ; pode efetuar e receber chamadas
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
insecure=port,invite ;
context=alunos ; o contexto do plano de discagem para chamadas originadas neste canal
disallow=all
allow=gsm ; habilita este codec para o João.
allow=alaw ; outro codec
allow=ulaw ; mais um codec
qualify=yes; monitora o UAC
; Canal 1000 (outro exemplo)
[1000]
defaultuser=joao ; o nome do usuário para fins de autenticação
secret=blabla
type=friend ; pode efetuar e receber chamadas
host=dynamic ; pode conectar-se a partir de qualquer endereço IP
insecure=port,invite ;
context=alunos ; o contexto no plano de discagem para chamadas originadas neste canal
disallow=all
allow=gsm ; habilita este codec
allow=alaw ; outro codec
allow=ulaw ; mais um codec
qualify=yes; monitora o UAC
Plano de discagemO plano de discagem define como cada chamada deve ser processada. As instruções de processamento residem no arquivo de configuração /etc/asterisk/extensions.conf. O fluxo de processamento de chamadas pode ser visto resumidamente abaixo:
[alunos]; o nome deste contexto
# Chamadas para o número 101 são feitas via SIP para o canal "maria"
exten=>101,1,Dial(SIP/maria)
same=>n,Hangup()
# Chamadas para "teste" serão atendidas com um som de beep, seguido
# da reprodução do arquivo de som "hello-world", em seguida outro beep e
# enfim se encerra a chamada.
exten=>teste,1,Playback(beep)
same=>n,Wait(1)
same=>n,Playback(hello-world)
same=>n,Wait(1)
same=>n,Playback(beep)
same=>n,Hangup
A estrutura do plano de discagem é composta por extensões (um termo específico do Asterisk). Cada extensão identifica um número (ou usuário) que pode ser chamado, e como essa chamada deve ser processada. A sintaxe pode ser vista abaixo: exten=>identificador,prioridade,aplicação
Como o processamento de uma chamada usualmente envolve uma sequência de extensões, existe uma sintaxe opcional para simplificar a declaração: exten=>identificador,prioridade,aplicação
same=>prioridade,aplicação
Por fim, a prioridade (que define a ordem com que as extensões são processadas) declarada com o valor n equivale à prioridade da extensão imediatamente anterior incrementada em uma unidade: exten=>101,1,Dial(SIP/101)
same=>n,Hangup; a prioridade aqui terá o valor 2
Experimento: comunicação entre telefones IP ou softphones por meio de um PBX IPPara realizar esses exercícios você deve usar o Asterisk em uma máquina virtual. Para testar as chamadas, use um softphone em seu celular ou em um computador, e um telefone IP ou ATA.
2. Crie um plano de discagem em que todos podem fazer chamadas para todos (isso é, 100 pode chamar 101, e vice-versa). 3. Agora configure o softphone de forma que se registre no PBX Asterisk, usando uma das contas SIP criadas previamente. Faça o mesmo com o telefone IP ou ATA. 4. A partir do softphone faça uma chamada para a conta do telefone IP. Verifique se o telefone IP acusou o recebimento de chamada. Caso isso não tenha ocorrido, verifique seu plano de discagem. Em seguida faça uma chamada em sentido contrário. 5. Execute o comando rasterisk -vvv no computador do Asterisk. 6. Usando o comando sip show peers, visualize os estados dos canais SIP conhecidos pelo Asterisk. 7. Refaça uma chamada entre softphone e telefone IP, e observe o que aparece na tela do rasterisk. 8. Será possível verificar que chamadas estão em andamento no Asterisk usando o rasterisk ? Pesquise como se pode fazer isso. 9. Use o rasterisk para testar chamadas. Use o comando console dial canal_SIP@contexto para chamar um canal SIP (substitua canal_SIP pelo número a ser chamado). Ao final, execute console hangup. 10. Acrescente mais um canal SIP, editando o arquivo sip.conf. Configure o softphone para usar esse novo canal (ou o telefone IP para se associar também a esse canal SIP). 11. Teste chamadas entre os telefones usando esse novo número. Possíveis problemas
DICAS ASTERISKComandos válidos no CLI do Asterisk:
|
20/02 - Etapa Asterisk: Caracterização de mídia
Aula 3 |
---|
Compressão de áudio |
21/02 - Etapa Asterisk: Caracterização de mídia
Aula 4 |
---|
Compressão de vídeo |
06/03 - Etapa Asterisk: Transmissão de mídia
Aula 5 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
A transmissão de dados multimidia está sujeita a alguns fatores, destacando-se:
Componentes do atraso fim-a-fimO atraso fim-a-fim, contado portanto desde a origem de um pacote até seu destino, se compõe de um conjunto de tempos despendidos ao longo de sua transmissão. Alguns desses tempos são constantes, porém outros são variáveis.
O menor atraso pode ser calculado assim:
Com isso, uma transmissão de video nessa rede está sujeita a atrasos máximo de cerca de 492 ms por pacote, e variação de atraso de até . Note-se que, nessa rede, a variação de atraso se deve essencialmente a atrasos de enfileiramento nos roteadores. Em outras redes pode haver fatores adicionais para variações de atraso: perdas de pacotes por erros de transmissão ou congestionamento, priorização de pacotes, e até o controle de congestionamento TCP (se esse protocolo for usado para a transmissão). O exemplo acima diz respeito a uma pequena rede com bons links WAN e pequeno número de saltos (roteadores intermediários) entre origem e destino. Em um cenário mais realista, como um usuário doméstico acessando videos no Youtube, a situação pode ser bem pior. Para fins de comparação, da rede da escola até o Youtube foram contados 9 saltos, e de casa se contaram 8 saltos (o caso do Youtube é um pouco mais complicado, pois sua infraestrutura é baseada em um tipo de CDN). Se cada pacote está sujeito a um atraso variável, o reprodutor de video no receptor precisa de algum mecanismo para compensar essas variações e apresentar o video de forma contínua. O mesmo raciocínio vale para transmissões de audio. Estratégias para tratar a variação de atrasoMecanismos para compensar atraso e variação de atraso da rede:
Atraso de reprodução fixoCompensa atrasos de mensagens com a imposição de um atraso fixo q no reprodutor de midia. Mensagens recebidas após seu instante de reprodução (i.e. chegam após timestamp + q) são descartados.
Atraso de reprodução adaptativoProcura minimizar o atraso de reprodução, estimando o atraso da rede e sua variação. O atraso de reprodução assim calculado é imposto no receptor antes de cada rajada de mensagens (isso faz mais sentido em transmissão de voz).
Estratégias para abrandar a perda de mensagensReprodução de mensagens perdidas inadequada para aplicações interativas
Correção antecipada de errosEmissor envia dados redundantes em suas mensagens, também conhecidos como um código de correção de erro. Exemplo 1: envio de uma mensagem redundante para cada grupo de n mensagens. A mensagem redundante é calculada fazendo XOR das demais mensagens do grupo.
IntercalaçãoConsiste no resequenciamento das unidades de áudio antes de transmiti-las, de forma que unidades que estavam originalmente próximas sejam separadas por uma certa distância no fluxo a ser transmitido. No exemplo abaixo, cada unidade de áudio tem 5 ms, e cada mensagem contém quatro unidades (totalizando 20 ms). AtividadePesquise sobre o uso de técnicas de abrandamento de perdas de mensagens em diferentes tipos de transmissão de midia: VoIP, video, radio on-line, ... |
7/03 - Etapa Asterisk: Estudo do protocolo SIP
Aula 6 |
---|
|
13/03 - Etapa Asterisk: Estudo do protocolo SIP e SDP
Aula 7 |
---|
|
14/03 - Etapa Asterisk: Estudo do protocolo RTP
Aula 8 |
---|
|
20/03 - Etapa Asterisk: Análise dos protocolos SIP, SDP e RTP utilizando o wireshark
Aula 9 |
---|
|
21/03 - Etapa Asterisk: Asterisk e NAT
Aula 10 |
---|
|
27/03 - Etapa Asterisk: Funções de PABX
Aula 11 |
---|
|
28/03 - Etapa Asterisk: Padrões de extensões e variáveis
Aula 12 |
---|
|
03/04 - Etapa Asterisk: Padrões de extensões e variáveis
Aula 13 |
---|
|
04/04 - Etapa Asterisk: URA
Aula 14 |
---|
|
10/04 - Etapa Asterisk: Interconexão de PABX utilizando SIP
Aula 15 |
---|
|
11/04 - Etapa Asterisk: Desenvolvimento do trabalho
Aula 16 |
---|
|
17/04 - Etapa Asterisk: Desenvolvimento do trabalho
Aula 17 |
---|
|
18/04 - Etapa Asterisk: Desenvolvimento do trabalho
Aula 18 |
---|
|
24/04 - Etapa Asterisk: Desenvolvimento do trabalho
Aula 19 |
---|
|
25/04 - Etapa Asterisk: Apresentação do trabalho
Aula 20 |
---|
|
02/05 - Etapa QoS: Introdução à Qualidade de Serviço
Aula 21 |
---|
|
08/05 - Etapa QoS: Conceitos básicos de QoS
Aula 22 |
---|
|
09/05 - Etapa QoS: QoS em roteador Linux
Aula 23 |
---|
|
15/05 - Etapa QoS: QoS em roteador Linux
Aula 24 |
---|
|
16/05 - Etapa QoS: Exercícios práticos
Aula 25 |
---|
|
22/05 - Etapa QoS: Desenvolvimento do trabalho (continuação Etapa Asterisk)
Aula 26 |
---|
|
23/05 - Etapa QoS: Desenvolvimento do trabalho (continuação Etapa Asterisk)
Aula 27 |
---|
|
29/05 - Etapa QoS: Desenvolvimento do trabalho (continuação Etapa Asterisk)
Aula 28 |
---|
|
30/05 - Etapa QoS: Apresentação do trabalho (continuação Etapa Asterisk)
Aula 29 |
---|
|
05/06 - Etapa Firewall: Introdução a Firewall
Aula 30 |
---|
|
06/06 - Etapa Firewall: Firewall com iptables
Aula 31 |
---|
|
12/06 - Etapa Firewall: Exercícios práticos
Aula 32 |
---|
|
13/06 - Etapa Firewall: Exercícios práticos
Aula 33 |
---|
|
19/06 - Etapa Firewall: Desenvolvimento do trabalho (continuação Etapa QoS)
Aula 34 |
---|
|
20/06 - Etapa Firewall: Desenvolvimento do trabalho (continuação Etapa QoS)
Aula 35 |
---|
|
26/06 - Etapa Firewall: Desenvolvimento do trabalho (continuação Etapa QoS)
Aula 36 |
---|
|
27/06 - Etapa Firewall: Apresentação do trabalho (continuação Etapa QoS)
Aula 37 |
---|
|
03/07 - Recuperação
Aula 38 |
---|
|
04/07 - Recuperação
Aula 39 |
---|
|