Parte 2 Transporte de Mídia Redes de Computadores II Tópicos em Sistemas de Computação Prof. Dr. Adriano Mauro Cansian adriano@acmesecurity.org Veremos: RTP Real-Time Protocol RTCP Real-Time Control Protocol H.323 e SIP Diffservices - Serviços Diferenciados Prof. Dr. Adriano Mauro Cansian 1
Real-Time Protocol (RTP) Transporte de Mídia Real-Time Protocol (RTP) q Protocolo de transporte de áudio e vídeo (RFC 1889.) q Pacote RTP apresenta: Identificação do tipo de carga. Numeração da sequência de pacotes. Marcas de tempo. q RTP roda nos sistemas terminais: client-server q Pacotes RTP são encapsulados em UDP. q Interoperabilidade: se duas aplicações usam RTP, então elas podem ser capazes de operar juntas, mesmo se desenvolvedores diferentes. Prof. Dr. Adriano Mauro Cansian 2
RTP roda sobre UDP q RTP é um protocolo de aplicação, mas oferece uma interface para a camada de transporte, que amplia funcionalidades do UDP: Verificação de erros dentro dos segmentos. Identificação do tipo de carga. Numeração da sequência. Marcas de tempo. RTP + UDP juntos fornecem um serviço de transporte de mídia para a aplicação Pseudo camada de transporte Aplicação Enlace Física Protocolo aplicação RTP: Exemplo q Considere 64 kbps de voz em PCM sobre RTP. Dados em blocos, a cada 20 ms = 160 bytes por bloco. q O bloco de áudio, junto com o cabeçalho RTP, forma o pacote RTP, que é encapsulado num segmento UDP. q Cabeçalho RTP possui um campo de tipo de codificação de mídia de cada pacote. Transmissores podem mudar a codificação em voo. q O cabeçalho RTP também contém: Números de sequência. Marcas de tempo. Prof. Dr. Adriano Mauro Cansian 3
RTP não fornece QoS (1) q Não garante temporização. q Não fornece garantia de banda. q Não tem efeito nos roteadores no caminho. RTP é visto apenas nos sistemas finais. Roteadores continuam fornecendo o serviço de melhor-esforço. RTP não fornece QoS (2) q A fim de fornecer QoS, a rede deve prover um mecanismo especial para que a aplicação possa reservar recursos da rede (geralmente na rede local). q Uma possibilidade é usar o RSVP. Resource reservation Protocol (RFC-2205) (Exercício) https://memoria.rnp.br/newsgen/0005/rsvp.html https://tools.ietf.org/html/rfc2205 http://www.networksorcery.com/enp/protocol/rsvp.htm Prof. Dr. Adriano Mauro Cansian 4
Fluxos RTP (1) q RTP permite atribuir a cada fonte o seu próprio fluxo de pacotes independente. Por exemplo, uma câmera e um microfone. Exemplo: para uma videoconferência entre 2 participantes, 4 fluxos RTP poderiam ser abertos: 2 fluxos para transmitir o áudio. 2 fluxos para o vídeo. E um deles em cada direção. Fluxos RTP (2) q Algumas técnicas populares, incluindo MPEG1 e MPEG2, juntam o áudio e o vídeo num único fluxo durante a codificação. Quando o áudio e o vídeo são reunidos pelo codificador, então apenas um fluxo RTP é gerado, em cada direção. Prof. Dr. Adriano Mauro Cansian 5
Header RTP completo Campos de controle do header. Version (2bits), Padding (1 bit) EXtension (1 bit) CSRC Count (CC) (4 bits) Marker (1 bit) Detalhamento: http://www.freesoft.org/cie/rfc/1889/9.htm (exercício) Header RTP (1) Tipo de Carga (7 bits): indica o tipo de codificação usado no momento. Se um transmissor muda o tipo de codificação durante uma conferência, informa o receptor usando deste campo. Alguns deles: 0: PCM mu-law, 64 Kbps. 3: GSM, 13 Kbps. 7: LPC, 2.4 Kbps. 26: Motion JPEG. 31: H.261. 33: MPEG2 video. Lista completa em: http://www.networksorcery.com/enp/protocol/rtp.htm Prof. Dr. Adriano Mauro Cansian 6
Header RTP (2) Número de Sequência (16 bits): O número de sequência é incrementado em 1, a cada pacote RTP enviado. Usado para detectar perdas de pacotes, e para recuperar a sequência de pacotes. Header RTP (3) Campo SSRC (identificador de sincronismo fonte) (32 bits). Identifica a fonte do fluxo RTP. Cada fluxo numa sessão RTP deve ter um SSRC distinto. Prof. Dr. Adriano Mauro Cansian 7
RTP SSRC packets (sniffer) Header RTP (4) Timestamp: Campo de marca de tempo (32 bits). Marca o instante de amostragem do primeiro byte no pacote de dados RTP. O receptor pode usar esta marca de tempo para remover o jitter do pacote, e para obter o sincronismo de reprodução, conforme discutido anteriormente. (Será detalhado a seguir) Prof. Dr. Adriano Mauro Cansian 8
Timestamp (1) q Marca de tempo: é derivada do relógio de amostragem no transmissor. Para áudio: o relógio de marca de tempo incrementa em 1 a cada intervalo de amostragem. (Exemplo a seguir) Timestamp (2) q Incrementa em 1 a cada intervalo de amostragem. Se taxa amostragem é 8 KHz à 1 / 8000 (1/s). Então: incrementa de 1 a cada 125 µs. Exemplo: se a aplicação gera blocos com 160 amostras codificadas, a marca de tempo aumenta de 160 para cada pacote RTP, representando 0,2 seg (160 x 125 µs). q O relógio de marca de tempo continua a aumentar numa taxa constante, mesmo quando a fonte está inativa. Prof. Dr. Adriano Mauro Cansian 9
RTP Timestamp packets...17406 17246 = 160...17566 17406 = 160...18046 17886 = 160...71084 70924 = 160 RTCP Real-Time Control Protocol!! NÃO CONFUNDIR COM RTSP!! (Real Time Streaming Protocol) Prof. Dr. Adriano Mauro Cansian 10
Real-Time Control Protocol (RTCP) q Atua em conjunto com o RTP. q Cada participante de uma sessão RTP transmite, periodicamente, pacotes de controle RTCP para todos os participantes. Cada pacote RTCP contém relatórios do transmissor e/ou do receptor. Estes relatórios são úteis para a aplicação. Relatórios incluem o número de pacotes enviados, número de pacotes perdidos, variação de atraso entre chegadas, dentre outras informações. Retroalimentação Real-Time Control Protocol (RTCP) q Envia informações de feedback para a aplicação. Pode ser usada para controle do desempenho, e para fins de diagnósticos. Por exemplo, o transmissor pode alterar suas transmissões a partir das informações de realimentação. Prof. Dr. Adriano Mauro Cansian 11
Tipos de pacotes RTCP (1) q Pacotes de relatório do receptor: % de pacotes perdidos. Último número de sequência. Variância média do atraso entre chegadas. q Pacotes de relatório do transmissor: SSRC do fluxo RTP. Tempo corrente. Número de pacotes enviados; Número de bytes enviados. Tipos de pacotes RTCP (2) q Pacotes de descrição da fonte geradora (caso de broadcasting): Endereço de e-mail do gerador. Nome do gerador; SSRC do fluxo RTP associado. Estes pacotes fornecem um mapeamento entre o SSRC e o nome do usuário ou do host. Prof. Dr. Adriano Mauro Cansian 12
Restrição de Banda do RTCP q O RTCP procura limitar seu tráfego a 5% da banda passante da sessão. Por exemplo: suponha um transmissor enviando vídeo com uma taxa de 2 Mbps (2000 Kbps). RTCP tenta limitar seu tráfego TOTAL a até 100 Kbps. O protocolo oferece 3/4 desta taxa, para os receptores (no exemplo: 75 kbps) 1/4 restantes da taxa para o transmissor (no exemplo: 25 kbps). Finalizando: não confunda! q RTSP Real Time Streaming Protocol Protocolo para controle de mídia. q RTP Real Time Protocol Protocolo para transmissão de mídia. q RTCP Real-Time Control Protocol Protocolo para troca de informações (feedback). Não confunda catraca de canhão com conhaque de alcatrão Prof. Dr. Adriano Mauro Cansian 13
Protocolos de Voice over IP Relacionamento Redes de voz e dados Dados Rede IP Sites Serviços Web Dados Rede de Dados Dados Rede SS7 Voz Switch Class 5 Switch Class 4 Switch Class 4 Switch Class 5 Voz Rede de Telefonia (PSTN ) Prof. Dr. Adriano Mauro Cansian 14
VoIP: Voice over IP. q Por que Usar VoIP? Redução da banda de transmissão (compressão da voz). Melhor utilização da infraestrutura de transmissão em rede para voz e imagem. Menor custo de Equipamentos e Infraestrutura. Integração de Aplicações de dados e voz. Configuração Simplificada da Rede de Transmissão. Menores custos de Transmissão. Modelo de telefonia em rede Componentes críticos do sistema de Telefonia em Rede: 1) Protocolos de transmissão da VOZ. 2) Protocolos de sinalização. VOZ Transmissão de Voz Sinalização VOZ REDE PSTN(*) (*) Public Service Telephone Network Rede pública tradicional de telefonia ou rede legada Prof. Dr. Adriano Mauro Cansian 15
Modelo VoIP - Protocolos de Transmissão RTP/RTCP RTP/RTCP UDP IP Datalink Physical Internet UDP IP Datalink Physical RTP/RTCP: Transmissão em Tempo Real. Operam sobre UDP. CODEC s: G711: 64 Kbps / G729A: 9 Kbps / G723.1: 5.3 Kbps. Modelo VoIP - Protocolos de sinalização H323, SIP MGCP, Megaco TCP / UDP IP Datalink Physical REDE TCP/IP H323, SIP MGCP, Megaco TCP / UDP IP Datalink Physical Protocolos Ponto-a-Ponto: - H.323 - SIP Protocolos de Controle de Gateways (Mestre/Escravo): - MGCP. - H.248 (MEGACO). Prof. Dr. Adriano Mauro Cansian 16
H.323 Visão Geral do H.323 (1) q Surgiu para conferência de áudio e de vídeo, através de redes TCP/IP. Comunicação de tempo real (ao invés de sob demanda ) q Recomendação do ITU-T. Telecommunication Standardization Sector (ITU-T) http://www.itu.int/ q Escopo amplo funciona em: Equipamentos isolados (telefones IP). Aplicações em PCs (softwares). Conferências ponto-a-ponto e multiponto. Prof. Dr. Adriano Mauro Cansian 17
Visão Geral do H.323 (2) q H.323 trata como os equipamentos terminais: Fazem e recebem chamadas. Negociam codificações comuns de áudio e vídeo. Se comunicam com seus respectivos gatekeepers (visto adiante) q Além disso, define ainda: Como os blocos de áudio e vídeo são encapsulados e enviados. Como o áudio e o vídeo são sincronizados. Como os telefones IP e os telefones PSTN(*) convencionais se comunicam. (*) PSTN = Public Service Telephone Network (é a a rede telefônica convencional comutada, ou sistema legado ). Visão Geral do H.323 (3) Gatekeeper Internet Gateway PSTN H.323 SS7, Inband Prof. Dr. Adriano Mauro Cansian 18
Visão Geral do H.323 (4) q Mídia: RTP transporta a mídia. RTCP carrega estado (status) e controle. RTP/RTCP em transporte não confiável, sob UDP. q Sinalização: Transporte confiável, sob TCP. RAS: Protocolo de registro, admissão e estado. Q.931: Protocolo de call setup e finalização. H.245 : Protocolo de controle de troca. Faz o controle fora-da-banda para controlar a mídia entre os terminais. A arquitetura do H.323 Aplications Audio/Video Terminal / Application Control Codecs Audio/Video RTP RTCP H.225.0 Ras Signaling H.225.0 Call Signaling H.245 Control Signaling UDP TCP IP Prof. Dr. Adriano Mauro Cansian 19
SIP Session Initiation Protocol Session Initiation Protocol (SIP) q Mídia: RTP carrega fluxo de mídia real. RTCP carrega informações de estado e controle. Ambos via transporte não confiável em UDP. q Sinalização transportada também sobre UDP. Mecanismo de mensagens para estabelecimento de sessões. SDP Linguagem estruturada para descrição de sessões. q Utiliza áudio codecs para mídia. (G.711, G.723.1, G.729, etc...) Prof. Dr. Adriano Mauro Cansian 20
A arquitetura do SIP Conference Applications Aplications Audio/Video SDP Codecs Audio/Video RTCP SAP SIP HTTP RTP UDP TCP IP Arquitetura SIP - Proxy Server SIP Proxy SIP SIP VOZ Internet RTP/RTCP VOZ Prof. Dr. Adriano Mauro Cansian 21
Comparação SIP x H.323 H.323 q Mensagens H.323 são binárias. q São codificadas usando ASN.1 q São necessários decodificadores especiais (parsers) para mapear em formato legível. SIP q Mensagens são em formato texto (inclusive suportando Unicode). q Facilmente implementado em Perl, Tcl, Java, etc q Debugging é fácil: tcpdump, ngrep, netcat, etc Resumo comparação SIP x H.323 H.323 q Desenvolvimento iniciado há mais tempo. q Mensagens mais curtas, mas binárias. q Mais complexo. q Geralmente custo menor. q Muitas opções disponíveis (vários freeware). SIP q Escalável. q Extensível. q Menor complexidade, mensagens em texto. q Facilidade de implementação. q Customização. q Permite controle de chamadas por terceiros. Prof. Dr. Adriano Mauro Cansian 22
Comparação H.323 x SIP Aplications Audio/Video Terminal / Application Control Codecs Audio/Video RTP RTCP H.225.0 Ras Signaling H.225.0 Call Signaling H.245 Control Signaling SIP UDP TCP Conference Applications IP H.323 Aplications Audio/Video Codecs Audio/Video RTP SDP RTCP SAP SIP HTTP UDP TCP IP Protocolos SIP & H.323 Prof. Dr. Adriano Mauro Cansian 23
QoS em Redes IP V4 Oferecendo QoS em Redes IP q Os grupos do IETF desenvolveram propostas para fornecer melhor controle de QoS em redes IP. Buscando superar o serviço de melhor esforço, e prover alguma garantia de QoS com a tecnologia atual. q Desenvolvimentos incluem Serviços Diferenciados, e Serviços Integrados. Prof. Dr. Adriano Mauro Cansian 24
Serviços integrados X diferenciados q Serviços Integrados Baseado em protocolo de sinalização: RSVP Permite efetuar reserva de recursos fim-a-fim para garantir a QoS de um dado fluxo, no momento em que o fluxo é criado. q Serviços Diferenciados Não utiliza protocolo de sinalização. Utiliza um esquema de priorização de recursos baseado em SLA (Service Level Agreement) previamente configurados. Differentiated Services - Diffserv Serviços diferenciados Prof. Dr. Adriano Mauro Cansian 25
Serviços diferenciados Abordagem: q Apenas funções simples no interior da rede, e funções relativamente complexas nos roteadores de borda (ou nos hosts). q Não define classes de serviço. Ao invés disso, fornece componentes funcionais com os quais as classes de serviço podem ser construídas. Funções de borda q Executados num computador com funções de DS (serviços diferenciados), ou no primeiro roteador com funções de DS. q Classificação: o nó de borda marca os pacotes de acordo com regras de classificação a serem especificadas (manualmente pelo administrador ou por algum protocolo de sinalização). q Condicionamento de Tráfego: o nó de borda pode atrasar e então enviar, ou pode descartar. roteador central: envio roteador de borda: classificação condicionamento Prof. Dr. Adriano Mauro Cansian 26
PHB Per-Hop-Behavior q Envio ocorre de acordo com PHB - Per-Hop- Behavior (comportamento por salto) especificado para aquela classe em particular Este PHB baseia-se estritamente na marcação de classe. Nenhum outro campo do cabeçalho pode ser usado para influenciar o PHB. (exercício) q GRANDE VANTAGEM: Não há necessidade de manter informação de estado nos roteadores. Serviços diferenciados (DiffServ) q QoS na Internet para agregações de fluxos. q Resumindo: Sem estado para cada fluxo de dados. Sem sinalização para cada nó. q Utiliza um Campo DS nos headers dos datagramas Pacotes são marcados para receber serviços diferenciados nos Domínios DS. Campo TOS do IPv4 ou Traffic Class do IPv6. Identifica o PHB (Per-Hop Behavior) Valores DS são chamados de DSCP - DiffServ Code Point. (Como veremos em seguida ) Prof. Dr. Adriano Mauro Cansian 27
Classificação e condicionamento (1) q Datagrama é rotulado usando: Campo TOS (Type of Service - TOS) no IPv4. Campo Classe de Tráfego no IPv6. q 6 bits usados para o Código de Serviços Diferenciados ou DSCP - Differentiated Service Code Point: DSCP determina qual o PHB que o pacote receberá. q 2 bits são atualmente reservados para uso futuro. TOS no IP 32 Bits Version IHL Type of service Total length Time to live Identification Protocol D F Source address M F Destination address Fragment offset Header checksum Options (0 or more words) Prof. Dr. Adriano Mauro Cansian 28
Classificação e condicionamento q Pode ser desejável limitar a taxa de injeção de tráfego em alguma classe. Usuário declara o perfil de tráfego (por exemplo taxa e tamanho das rajadas). q Tráfego é medido e ajustado se não estiver de acordo com o seu perfil. medidor pacotes classificador marcador ajuste corte enviar descartar Contratos e serviços q SLA: Service Level Agreement Contrato comercial bilateral. Identifica perfil de tráfego q Nível de Serviço: tratamento global de um determinado subconjunto do tráfego de um usuário dentro de um Domínio DS, ou fim a fim. q PHBs + regras de policiamento = vários serviços. Prof. Dr. Adriano Mauro Cansian 29
Arquitetura de Serviços Diferenciados (Lógica) Fonte SLA: Service Level Agreement SLA Destino SLA Domínio SLA SLA Domínio SLA Domínio Domínios proporcionam serviços especificados no SLA aos seus clientes Condicionamento de tráfego (1) q Classificador: seleciona os pacotes dentro de um fluxo através do cabeçalho (BA e MF). q Medidor: mede o fluxo para verificar se está de acordo com o perfil de tráfego contratado (SLA). q Marcador: grava determinado padrão de bits no codepoint (DSCP). q Suavizador (shapping): atrasa tráfego fora do perfil, para torná-lo dentro do perfil. Prof. Dr. Adriano Mauro Cansian 30
Condicionamento de tráfego (2) Medidor Condicionador Pacotes Classificador Marcador Suavizador/ Descartador q Nem todos os quatro elementos precisam estar presentes em todos os nós de borda Perguntas em aberto: q Como/quando/se o QoS irá funcionar em uma Internet completamente heterogênea? q Como se obtém QoS quando múltiplos domínios administrativos de trânsito (backbones distintos)? Prof. Dr. Adriano Mauro Cansian 31
Sumário do tópico: q Características da Mídia na Internet. q Problemas e desafios. q Fluxo contínuo de áudio e vídeo armazenados. q Codificação de áudio e vídeo, PCM e MP3. q Controle de mídia com RTSP. q Aplicações interativas em tempo real. q Protocolos para transportar mídia: RTP, RTCP. q VoIP: H323 e SIP q QoS real na Internet Ipv4: serviços diferenciados 63 Apêndice: O QUE É O ASTERISK? www.digium.com Prof. Dr. Adriano Mauro Cansian 32
Conceitos Básicos q Asterisk é um grande projeto de código livre para um PABX IP baseado em software (PABXIP). q Provê todas as funcionalidades de um PABX tradicional, além de muitas outras, por um baixo custo. Utilizando o Linux como sistema operacional q Com o Asterisk um computador ou servidor transforma-se em um PABX Digital poderoso, de baixo custo e altamente flexível. q O Asterisk permite integrar aparelhos telefônicos, computadores, centrais convencionais, intranets e a Internet em uma única plataforma de voz. COMO SURGIU? Prof. Dr. Adriano Mauro Cansian 33
História q Criado para atender às necessidades da Linux Support Services, de Mark Spencer, recém-formado em Engenharia da Computação, em 1999. q Em 2001, conhece Jim Dixon. Criador do Zapata (hardware) de integração de telefonia. q Nos anos seguintes, a Digium (Asterisk) teve taxa de 100% de crescimento. q Em Agosto de 2006 com apenas 5 desenvolvedores e 350 colaboradores, recebeu seu primeiro aporte de capital externo: US$ 13.8 Milhões da Matrix Partners. q ^ Kraeuter, Chris (August 9, 2006). "Digium Gets Funding From Matrix". Forbes. http://goo.gl/usdcqa Asterisk - PABXIP Comunicação Unificada Funções básicas: Ligar, receber, puxar, transferir, monitorar, esperar, music on-hold, áudio conferência, vídeo conferência, relatórios, etc... Funções especiais: 1. CallBack e WebCallBack; 2. PABX Virtual e WebPABXIP; 3. WebFax; 4. Senha VoIP; 5. Discadora Automática; 6. Marketing Voice; 7. Back0800; 8. Orelhão VoIP; 9. Integração com ERP; 10. URA Prof. Dr. Adriano Mauro Cansian 34
Integração de mídias q Asterisk possui uma grande integração de mídias. q Asterisk conversa nos protocolos IAX, SIP e H.323, porém devido ser um opensource muitos conversores de mídia foram especificamente projetados. Prof. Dr. Adriano Mauro Cansian 35