Baixe o app para aproveitar ainda mais
Prévia do material em texto
DESCRIÇÃO Protocolos de transporte de tempo real e de sinalização para a transmissão de voz. PROPÓSITO Compreender as características dos protocolos de transporte de tempo real e o funcionamento dos protocolos de sinalização de aplicações para a transmissão de áudio e vídeo. OBJETIVOS MÓDULO 1 Descrever o funcionamento dos protocolos de transporte de tempo real utilizados na internet MÓDULO 2 Descrever o funcionamento dos protocolos de sinalização utilizados para a transmissão de voz na internet INTRODUÇÃO Os protocolos de transporte tradicionais da internet não podem prover um suporte adequado ao funcionamento das aplicações multimídia – uma realidade particularmente presente nas transmissões em tempo real. Devido a tal fato, foram desenvolvidos protocolos específicos para esse tipo de aplicação que procuraram satisfazer aos requisitos para o correto funcionamento destas aplicações. Outra situação que se apresentou ao longo do tempo foi a necessidade de permitir a transmissão de voz do tipo telefonia pela internet. Isso também gerou a necessidade de novos protocolos que garantissem uma compatibilidade entre o sistema telefônico e as redes IP. Esses dois aspectos serão o objeto de nosso estudo neste tema. MÓDULO 1 Descrever o funcionamento dos protocolos de transporte de tempo real utilizados na internet CAMADA DE TRANSPORTE NA INTERNET A camada de transporte da internet possui dois protocolos principais: TCP Protocolo orientado à conexão e confiável, o TCP busca garantir a entrega de todos os pacotes e a sua ordenação antes de passá-los para a camada de aplicação. Para obter essa confiabilidade, ele implementa reconhecimentos positivos (ACK) e a retransmissão de pacotes perdidos. Além disso, o TCP realiza mecanismos de controle de congestionamento que podem fazer com que a taxa de transmissão caia muito. ATENÇÃO Essas características o tornam inadequado para a transmissão de multimídia, principalmente em tempo real, pois elas implicam tempo de processamento elevado para cada pacote. UDP Trata-se de um protocolo muito mais simplificado; afinal, seu cabeçalho é extremamente simples (vide figura a seguir). De forma resumida, podemos dizer que ele basicamente acrescenta apenas o número da porta da aplicação de destino à funcionalidade do IP, permitindo a multiplexação da transmissão. PORTA Porta é o endereço utilizado na camada de transporte, permitindo a indicação para qual, entre os processos em execução, host de destino se deseja enviar o pacote. O número da porta de destino é necessário para a entrega; o da porta de origem, para a resposta. Datagrama UDP. Isso faz com que ele seja um protocolo leve e de processamento muito rápido. Apenas isso, entretanto, não o torna suficiente para a transmissão de multimídia. Para que esse tipo de dado possa ser processado de forma eficaz, é necessário algum mecanismo de javascript:void(0) sequenciamento dos pacotes e de controle de tempo. RTP Por conta das deficiências dos protocolos da camada de transporte da internet para o tratamento de transmissão de multimídia, foi criado o real–time transport protocol (RTP), ou, em português, protocolo de transporte em tempo real. Associado ao UDP, o RTP permite a realização eficiente das trocas de áudio e vídeo em tempo real pela internet. CONCEITO Embora seja considerado um protocolo de transporte, o RTP não é encapsulado em um datagrama IP, e sim em um datagrama UDP. Seu objetivo é multiplexar, conforme indica a figura a seguir, diversos fluxos de dados de tempo real em um único fluxo de pacotes UDP: Posição do RTP na pilha TCP/IP. O RTP em si não possui mecanismos de entrega, como, por exemplo, os números das portas. Essas funcionalidades continuam sendo fornecidas pelo UDP, que o encapsula. Ele também não provê nenhuma garantia especial sobre a entrega. Os pacotes, portanto, podem ser perdidos, atrasados, adulterados etc. O que o protocolo RTP acrescenta são dois novos recursos: UM NÚMERO SEQUENCIAL PARA CADA PACOTE Isso permite ao receptor verificar se eles chegaram em ordem ou se ocorreu alguma perda. UMA ESTAMPA DE TEMPO Com isso, pode ser realizado o controle da reprodução no destinatário. PACOTE Um pacote RTP é composto de um cabeçalho genérico, contendo campos e parâmetros definidos na RFC-0064, adicionado de informações específicas e particulares a cada perfil. PERFIL Cada tipo de carga RTP pode conter amostras diferentes, codificadas da forma que a aplicação desejar. Os perfis estão definidos em RFCs distintas e para permitir a interoperabilidade ele pode permitir vários formatos de codificação. EXEMPLO Um único fluxo de áudio pode ser codificado em amostras PCM de 8 bits a 8KHz usando codificação delta, preditiva ou GSM, MP3, e assim por diante. O pacote RTP possui o seguinte formato conforme tabela a seguir. Clique em cada um dos campos e conheça um pouco mais sobre eles: javascript:void(0) javascript:void(0) javascript:void(0) Ver P X Contr. count M Tipo de payload Número de sequência Timestamp Identificador da fonte de sincronismo Identificação do participante . . . Identificação do participante Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Formato do pacote RTP. Tabela: FOROUZAN, 2008, p. 917, adaptada por Ramany Oliveira e Eduardo Trindade VER Este campo possui 2 bits e indica a versão do RTP. A versão atual é a 2. P Este campo possui 1 bit. Se o seu valor for 1, ele indicará a presença de preenchimento (padding) no final do pacote; se ele for 0, a ausência dele. javascript:void(0); javascript:void(0); javascript:void(0); javascript:void(0); javascript:void(0); javascript:void(0); javascript:void(0); javascript:void(0); javascript:void(0); javascript:void(0); Preenchimento corresponde à existência de octetos adicionais no final do pacote que não fazem parte dos dados e que devem ser ignorados. O preenchimento ocorre graças à exigência de determinados algoritmos de criptografia de trabalhar como blocos de tamanho fixo. O último octeto do preenchimento informará a quantidade de bytes inserida. X Com 1 bit, este campo indica se existe (valor 1) ou não existe (valor 0) no cabeçalho de extensão extra entre o cabeçalho básico e os dados. CONTRIBUTOR COUNT. Campo de 4 bits que indica o número de participantes daquele evento. Um exemplo é uma videoconferência. A quantidade é limitada a 15 participantes, já que 4 bits só permitem números de 0 a 15. M Este campo de 1 bit constitui um marcador usado pela aplicação para destacar determinados pacotes. Por exemplo, M pode indicar o último pacote de dados ou o início de cada frame ao enviar vídeo. TIPO DE PAYLOAD Com 7 bits, ele informa o tipo de carga (payload) do pacote usando números inteiros para sua indicação. Esse tipo define os perfis e como a aplicação deverá tratar os dados. Os tipos de carga são padronizados. Veremos a seguir dois exemplos de cargas (o primeiro, para áudio; o segundo, para vídeo): Número do tipo de carga útil Formato de áudio Taxa de amostragem Vazão 0 PCM µ-law 8KHz 64kbits/s 1 1016 8KHz 4,8kbits/s 3 GSM 8KHz 13kbits/s 7 LPC 8Khz 2,4kbits/s 9 G.722 16KHz 48- 64kbits/'s 14 Áudio MPEG 90KHz - 15 G.728 8KHz 16KHz Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Número do tipo de carga útil Formato de vídeo 26 Motion JPEG 31 H.261 32 Video MPEG 1 33 Video MPEG 2 Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Tabela: KUROSE; ROSS, 2014, p. 462. ATENÇÃO Observe que todos os outros campos a seguir serão interpretados pela aplicação definida pelo tipo de carga especificada nesse campo. NÚMERO DE SEQUÊNCIA Campo de 16 bits que permite a ordenação dos pacotes de uma comunicação. O primeiro pacote recebe um número aleatório, enquanto os demais são incrementados de 1 em relação ao anterior, permitindo ao receptor reordenar pacotes recebidos fora de ordem ou identificar aqueles perdidos.TIMESTAMP (CARIMBO DE TEMPO) Campo de 32 bits que marca o momento em que o primeiro octeto dos dados de cada pacote foi gerado. IDENTIFICADOR DA FONTE DE SINCRONISMO (SSRC) A fonte de sincronização (ou, em inglês, synchronization source) é um campo de 32 bits usado para identificar as fontes de sincronização. Cada participante da sessão RTP escolhe um número aleatório para ser sua identificação frente aos outros participantes. O protocolo possui procedimentos para lidar com o fato de dois hosts escolherem o mesmo SSRC. IDENTIFICADOR DO PARTICIPANTE (CSRC) A fonte contribuinte (ou contributing source) constitui um campo de 32 bits usado para identificar as fontes de onde vieram os dados contidos no pacote. O CSRC se aplica a pacotes gerados por misturadores. Misturadores são hosts que recebem fluxos de dados de múltiplas fontes e os combinam em um único fluxo. Por exemplo, em locais distintos, várias pessoas estão participando de uma teleconferência IP. Uma possível implementação para minimizar o número de fluxos seria que todas elas estabelecessem uma sessão RTP com o misturador. A partir daí, o misturador combinaria os diversos fluxos de áudio (provavelmente convertendo- os para o analógico e realizando uma nova amostragem do sinal resultante) e os reenviaria como um único fluxo digital. Com isso, ao atuar, o misturador se torna o SSRC do novo fluxo e lista no CSRC as fontes dos sinais misturados. ENCAPSULAMENTO Conforme vimos, o RTP é encapsulado em um datagrama UDP, e não em um datagrama IP. Por isso, ele não se comporta como um protocolo de transporte típico; devido a essa característica, muito autores classificam o RTP como um protocolo de aplicação, e não de transporte. É como se o RTP fosse um tipo de aplicação com uma grande diferença: ele não possui um número de porta fixo. A porta será alocada quando houver uma solicitação para cada sessão. Isso exige que a aplicação remota seja informada desse número, sendo que, por convenção, o RTP recebe uma porta de número par. ATENÇÃO Esse esquema de encapsulamento (dentro do UDP e recebendo um número distinto a cada solicitação) permite a um único host possuir múltiplas aplicações, utilizando o RTP paralelamente e sem interferência. FUNCIONAMENTO Quando o host remetente deseja enviar uma mídia, ele a encapsula em um pacote RTP. Esse pacote, então, recebe um número de porta par e é encapsulado em um datagrama UDP. A partir daí, a transmissão transcorre no esquema normal de rede, sendo tudo encapsulado em um datagrama IP. Esse datagrama, como delineia a figura a seguir, sofre esse encapsulamento no quadro de camada 2 e, em seguida, é transmitido no meio físico. (a) Posição do RTP na pilha de protocolos; (b) Aninhamento de pacotes. Quando recebe o pacote, o receptor realiza o desencapsulamento. Ao chegar ao RTP, ele extrai a parte de mídia (carga útil do pacote) e a entrega à aplicação para decodificação e apresentação. Apresentaremos, agora, um exemplo baseado em transmissão de telefonia IP: A origem de uma voz é codificada (isto é, amostrada, quantizada e digitalizada) mediante o emprego do codificador G.711. O remetente precede cada parte dos dados com um cabeçalho RTP (vide a figura a seguir) no qual são especificados: O tipo de carga. Um número de sequência. Uma estampa de tempo. COMENTÁRIO Não houve a necessidade de preencher os demais campos do cabeçalho. Em seguida, o pacote é passado para o UDP, que coloca o número das portas de origem e destino. Reparemos que cada uma é um número par. Ele ainda migra para a camada de redes e enlace, sendo, por fim, transmitido na camada física. O receptor processa o pacote e entrega a aplicação que extrai a mídia, usando os campos do cabeçalho RTP para identificar o tipo de mídia, decodificá-la e reproduzi-la. Pacote RTP. ATENÇÃO O RTP não garante a qualidade do serviço (QoS), a entrega dos pacotes e a ordenação deles. Cabe à aplicação lidar com tais aspectos. Observemos que o encapsulamento RTP somente é visível nos sistemas finais. Para os sistemas intermediários, ele é apenas mais um datagrama IP em processamento. Como se deve agir se faltar um pacote ou se ele chegar fora de ordem? RESPOSTA Normalmente, as aplicações pulam um quadro do vídeo (se ele for o tipo de conteúdo) ou fazem uma interpolação no áudio, mas dificilmente utilizariam a retransmissão, já que o pacote retransmitido chegaria muito tarde para ser útil. Por conta disso, o RTP não possui mecanismo de confirmação nem solicitação de retransmissão. Outra característica importante de seu funcionamento é o fato de normalmente ser atribuído um fluxo independente para cada origem. EXEMPLO Em uma videoconferência, em que cada lado possui um microfone e uma câmera, seriam abertos quatro fluxos RTP: dois para o áudio (um em cada sentido) e outros dois para vídeo (também um em cada sentido). Devemos lembrar, entretanto, que várias técnicas de codificação, como MPEG1 e MPEG2, combinam o áudio e o vídeo em um único fluxo durante a codificação. Isso obviamente faz com que o RTP abra apenas um fluxo para cada direção. RTCP CONCEITO O RTP cumpre apenas a transmissão de mensagens que realizem o transporte de mídia entre a origem e o destino. Muitas vezes, contudo, somente isso não é suficiente. Dependendo das características da sessão, pode haver a necessidade de mensagens que: Façam o controle do fluxo. Indiquem a qualidade dos dados. Permitam o feedback do receptor para as fontes. Para atender a tais situações, foi criado o protocolo RTCP. Fornecendo recursos para o controle e o monitoramento da comunicação, ele permite a emissores e receptores a troca de relatórios com informações adicionais a respeito dos dados, como a variação do atraso (jitter), a largura de banda e o congestionamento. EXEMPLO Essa troca de relatórios permite que o emissor aumente ou diminua sua taxa de dados em função da carga da rede, melhorando (se a rede estiver relativamente ociosa) ou diminuindo (se ela estiver congestionada) a qualidade da transmissão a partir da alternância da codificação utilizada. Isso é possível ao se passar de um MP3 para um PCM de 8 bits, ou vice-versa. O RTCP usa o mesmo método de envio dos pacotes RTP, porém o faz em uma porta UDP diferente. Além disso, ela sempre será a porta subsequente daquela utilizada pelo RTP ao qual ele se associa. RTP e RTCP (portas UDP). Notemos, na figura anterior, que a porta do RTP é 7000 (um número par), e a do RTCP, 7001 (ímpar). PACOTE O pacote RTCP possui o seguinte formato. Clique em cada um dos campos e conheça um pouco mais sobre eles: 2 1 5 8 16 Versão p RC Tipo Pacote Tamanho javascript:void(0); javascript:void(0); javascript:void(0); javascript:void(0); javascript:void(0); Dados Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Pacote RTCP. Tabela: Sidney Nicolau Venturi Filho, adaptado por Ramany Oliveira e Eduardo Trindade. V (VERSÃO) Campo com 2 bits que identifica a versão de RTP utilizada, sendo a mesma para o RTP e o RTCP. P (PREENCHIMENTO OU PADDING) Com 1 bit, o R informa se existe preenchimento no pacote. RC (CONTADOR DE RELATÓRIOS) Campo com 5 bits que indica a quantidade de relatórios contidos. TIPO DO PACOTE Com 8 bits, ele indica o tipo de pacote RTCP (mensagem). TAMANHO Informa o tamanho do pacote RCTP. javascript:void(0); DADOS Eles contêm a mensagem RTCP. MENSAGENS O RTCP possui cinco tipos básicos de mensagem: RELATÓRIO DO EMISSOR (SENDER REPORT) – CÓDIGO 200 Essa mensagem é enviada de tempos em tempos pelos transmissores ativos para reportar estatísticas de transmissão e recepção de pacotes RTP enviados. Ela inclui um registro de estampa de tempo absoluto, que corresponde ao número de segundos decorridos desde a meia-noite de 1º de janeiro de 1970. RELATÓRIO DO RECEPTOR (RECEIVER REPORT) – CÓDIGO 201 Enviado por participantes passivos, ou seja, aqueles que não são fontes de pacote RTP, esse relatório informaao emissor e aos receptores sobre a qualidade dos serviços de rede. DESCRIÇÃO DE ORIGEM (SOURCE DESCRIPTION) – CÓDIGO 202 Código utilizado pelas fontes para periodicamente reportar informações adicionais a seu respeito. Essas informações podem incluir o nome, o endereço de e-mail, o número de telefone e, principalmente, o cname. DESPEDIDA (BYE) – CÓDIGO 203 Utilizada por uma fonte para encerrar uma sessão de multimídia. ESPECÍFICA DA APLICAÇÃO (APP) – CÓDIGO 204 Uma mensagem APP (sigla da expressão application-specific message) permite que uma aplicação defina novos tipos de mensagens não estabelecidas no padrão do RTCP. javascript:void(0) Conhecido como nome canônico, o cname é o único campo necessário em uma Source Description. Ele tem como formato geral o endereço usuario@host, em que: Host é o nome de domínio do computador (ou seu endereço IP) na forma decimal ou hexadecimal pontuada. Usuário (user) é um nome de login. FUNCIONAMENTO Os computadores emissores enviam periodicamente uma mensagem de relatório do emissor que fornece uma estampa de tempo absoluta. ATENÇÃO Você deve entender que o uso dessa estampa é de extrema importância, pois, como o RTP permite que cada fluxo escolha uma origem diferente para sua estampa de tempo, seria impossível fazer a sincronização entre a voz e o vídeo de uma videoconferência pelas estampas de tempo do RTP. Utiliza-se, para isso, a estampa absoluta do RTCP. A figura a seguir mostra a captura no wireshark de um pacote RTCP do tipo relatório do emissor. WIRESHARK Classificado como snnifer, esse aplicativo permite a captura dos pacotes que trafegam em uma rede javascript:void(0) Relatório do emissor. Nela podemos notar que: A porta de origem e de destino são ímpares. O tipo da mensagem é 200. O emissor envia o seu SSRC. Existe a estampa de tempo absoluta em relação a uma origem especificada. Os receptores enviam periodicamente mensagens de relatório do receptor informando a origem e as condições de recepção. Esses relatórios possuem duas funções importantes: Permitir que outros receptores presentes na sessão aprendam, na companhia do emissor, a respeito das condições da recepção. Possibilitar que os receptores adaptem sua frequência de geração de relatório a fim de poupar a largura de banda e não sobrecarregar o emissor. O esquema adaptativo utilizado faz com que tráfego de controle total permaneça menos de 5% do tráfego de dados em tempo real e que os relatórios do receptor gerem menos de 75% do tráfego de controle. SAIBA MAIS Em cada relatório, são identificados: As origens de sincronização. Uma seção para cada origem, em que é especificado o número sequencial mais alto de um pacote recebido. A perda de pacote cumulativa e percentual experimentada. O tempo decorrido desde que o último relatório RTCP chegou da origem. O jitter entre as chegadas. O emissor também transmite periodicamente mensagens de descrição de origem. Essa mensagem é dividida em seções, uma para cada fluxo RTP. Além de seu nome canônico, obrigatório, ela pode possuir outros dados, como e-mail do usuário, número de telefone e endereço ou ferramenta utilizada para criar o fluxo. Esse tipo de mensagem está destinado à leitura de humanos em uma interface. A figura a seguir mostra a captura no wireshark de um pacote RTCP do tipo descrição da origem. Podemos observar nela: Identificação do tipo de mensagem 202. Cname do emissor. Descrição da origem. Um emissor transmite uma mensagem de despedida (Bye) quando encerra um fluxo. Tendo isso em vista, a figura a seguir demonstra a captura no wireshark de um pacote RTCP do tipo mensagem de despedida origem. Podemos verificar nela: Tipo da mensagem. Mensagem propriamente dita, correspondendo ao shutdown da sessão. Mensagem de despedida. Uma aplicação pode definir um novo tipo de mensagem RTCP, por exemplo, para enviar as informações de legenda de um vídeo. FUNCIONAMENTO DO RTP E RTCP O especialista fala sobre o funcionamento dos protocolos RTP e RTCP, utilizando exemplos práticos para auxiliar o entendimento do aluno. VERIFICANDO O APRENDIZADO MÓDULO 2 Descrever o funcionamento dos protocolos de sinalização utilizados para a transmissão de voz na internet H.323 CONCEITO O H.323 é um padrão (pilha de protocolos) desenvolvido pelo International Telecommunication Union (ITU) para permitir a comunicação entre os telefones da rede pública convencional e os computadores conectados à internet. ARQUITETURA GERAL Esta figura ilustra a arquitetura geral do H.323: Arquitetura H.323. Listaremos a seguir alguns componentes dessa arquitetura: TERMINAIS São os computadores pessoais utilizados na rede, a qual provê uma comunicação em tempo real. Todos os terminais devem suportar voz. Já o suporte a vídeo e dados é opcional. GATEWAYS São equipamentos que estabelecem uma conexão entre a internet e a rede de telefonia pública, transformando uma mensagem da rede telefônica em uma da internet. Eles se comunicam por meio de dois tipos de protocolo: H.323 (no lado da internet). PSTN (na rede telefônica). GATEKEEPERS Trata-se de um de seus componentes mais importantes. Gatekeepers atuam como um ponto central para todas as chamadas dentro de sua zona e proveem serviços de controle de chamada para registrar participantes. Entre outras coisas, eles também são responsáveis pelo gerenciamento da largura de banda em conferências H.323. javascript:void(0) javascript:void(0) PSTN Abreviação da expressão em inglês public switched telephone network, o PSTN é usado para descrever uma rede de sistemas de telefonia (estatal ou comercial) interligada. ZONA Zona é o conjunto de todos terminais e gateways gerenciados por um único gatekeeper. Uma zona precisa incluir, pelo menos, um terminal, embora possa incluir ainda segmentos de LAN conectados usando roteadores. OUTROS PROTOCOLOS O H.323 suporta uma série de protocolos para estabelecer e manter a comunicação de voz (ou de vídeo). Esta figura apresenta tais protocolos: Protocolos H.323. Falaremos um pouco mais sobre alguns desses protocolos: H.225 RAS Ele é responsável pela sinalização de chamadas e pelo encapsulamento de um fluxo de dados multimídia para sistemas de comunicação baseada em pacotes. Esse padrão engloba outros protocolos responsáveis pela: Comunicação entre gatekeepers: ela é feita por meio de mensagens trocadas entre os GKs (gatekeepers) para estabelecer o processo de sinalização e o controle entre zonas distintas. Transporte de mídia: realizado graças aos protocolos RTP e RTCP, que são responsáveis pelo transporte da voz. Controle de conferência e equipamentos de rede: esse controle é realizado por meio do protocolo RAS (sigla para register, adimission and status), que é responsável pelo registro, pela admissão e pelo status dos equipamentos da rede. H.245 Control protocol for multimedia communication ou protocolo de controle para comunicação multimídia) Esse protocolo fornece os padrões para o controle do transporte da voz nas chamadas realizadas entre os terminais. Utilizado depois do estabelecimento da chamada, o H.245 possui a capacidade de se adaptar às mudanças que ocorrem na rede – como as alterações na disponibilidade dela ou nas capacidades dos elementos H.323 – por meio de uma negociação dinâmica que ocorre entre os terminais com o propósito de estabelecer alguns aspectos da comunicação. Exemplo: formato de imagens e áudio, codecs e taxa de transmissão. Q.931 Trata-se do protocolo de sinalização para o estabelecimento e a finalização de chamadas entre dois equipamentos terminais originalmente desenvolvido para o PSTN. No contexto do H.323, o Q.931 estabelece o formato das mensagens que trafegam entre equipamentos, terminais ou gatekeepers. CODECS javascript:void(0) Codec é um acrônimo para codificador/decodificador, que é o software ou o hardware que realiza a codificação e a decodificação de sinais. OPERAÇÃO Para entenderemos a operação do H.323,estabeleceremos agora um exemplo simples desenvolvido por Forouzan (2008). A comunicação entre o terminal e um telefone ocorre em sete passos: Operação do H.323. Inicialmente, o terminal precisa descobrir o IP do gatekeeper; para isso, envia uma mensagem de broadcast na rede solicitando o IP. O gatekeeper responde com seu endereço IP. O terminal envia uma mensagem H.225 para o gatekeeper solicitando a largura de banda. Ocorre o estabelecimento da conexão entre o terminal e o telefone, passando pelo gatekeeper e pelo gateway com a utilização de uma mensagem Q.931. O método de compressão é negociado entre os quatro componentes mediante o emprego do protocolo H.245. O áudio é trocado utilizando o RTP gerenciado pelo RCTP. Para encerrar a comunicação, novamente é utilizada uma mensagem Q.391. PROTOCOLO DE INICIALIZAÇÃO DE SESSÃO (SIP) O protocolo SIP (sigla para session initiation protocol) é um padrão para a implementação de aplicações de voz sobre o IP que está se impondo ao H.323. CONCEITO Desenvolvido pelo IETF, o SIP é um protocolo de aplicação que permite estabelecer, gerenciar e encerrar uma sessão multimídia (tipicamente uma chamada VOIP), permitindo, no processo, sessões entre duas partes, várias partes ou em multicast. MULTICAST Tipo de comunicação que engloba um grupo de usuários, ou seja, constitui uma informação enviada para os usuários que pertencem a determinado grupo. O SIP é um protocolo independente do de transporte, podendo ser encapsulado em qualquer um de seus protocolos. SAIBA MAIS Ele provê mecanismos para: Estabelecer chamadas entre dois interlocutores por uma rede IP. Avisar ao destinatário que alguém o está chamando. Encerrar uma chamada. javascript:void(0) Permitir que o chamador determine o IP atual do destinatário, já que pode estar sendo utilizado um endereçamento dinâmico (DHCP). Gerenciar a chamada adicionando novos fluxos de mídia ou alterando a codificação utilizada. Convidar novos participantes para uma chamada ativa. Transferir e segurar chamadas. COMPONENTES Para poder funcionar, o SIP utiliza basicamente três componentes: Componentes do SIP. AGENTES DE USUÁRIO (UA) São as aplicações nos terminais que enviam e recebem solicitações SIP em nome dos usuários. Os User Agent Clients (UAC) enviam solicitações SIP à parte chamadora, enquanto os User Agent Servers (UAS) as recebem da parte chamada. Cada usuário pode ter múltiplos agentes de usuário. Por exemplo, pode haver agentes de usuário separados para o telefone do trabalho, o residencial, o móvel e o computador multimídia. Um endereço SIP é associado a cada agente de usuário. SERVIDORES PROXY Os servidores proxy são as aplicações que recebem solicitações SIP dos clientes e iniciam novas em nome deles para os agentes de usuário de destino. Eles operam como roteadores SIP, que encaminham mensagens de sinalização de chamada a seu destino. REGISTRADORES Eles aceitam registros de clientes que indicam os endereços nos quais podem ser encontrados. A funcionalidade do registrador é normalmente combinada com um servidor proxy ou de redirecionamento, embora ele constitua um processo lógico independente, estando fora do escopo do SIP. MENSAGENS O SIP, assim como o HTTP, é um protocolo baseado em texto. São empregadas seis mensagens para o gerenciamento das chamadas: INVITE ACK BYE OPTIONS CANCEL REGISTER INVITE Solicita o início de uma sessão. ACK Confirma que uma sessão foi iniciada. BYE Solicita o término de uma sessão. OPTIONS Consulta um host sobre seus recursos. CANCEL Cancela uma solicitação pendente. REGISTER Informa um servidor de redirecionamento sobre a localização atual do usuário. Escrita em ASCII, cada mensagem corresponde ao nome do método a ser executado na primeira linha, sendo seguido por linhas adicionais que contêm cabeçalhos com parâmetros da comunicação. Esta mensagem Cancel foi extraída de uma captura com o wireshark. Mensagem Cancel. A figura a seguir apresenta o binário do pacote presente no exemplo anterior. Nota-se que a mensagem é passada em texto claro, sendo possível realizar sua leitura: Mensagem Cancel em ASCII. A fim de iniciar uma sessão, o chamador envia uma mensagem Invite para o destinatário. A partir da segunda linha do cabeçalho, estão presentes as informações sobre os recursos do chamador, os tipos de mídia e o formato. Esta figura contém uma mensagem Invite e seu cabeçalho: Mensagem Invite. Se o destinatário aceitar a chamada, ele responderá com um código de resposta de três dígitos similar ao do HTTP. EXEMPLO Eis alguns exemplos de códigos de resposta: Código Significado Exemplos 1xx Informação 100 = classe informacional (ela contém mensagens que indicam o progresso da chamada). 2xx Sucesso 200 = solicitação com sucesso. 204 = nenhum conteúdo presente. 3xx Redirecionamento 301 = página movida. 304 = página em cache ainda válida. 4xx Erro do cliente 403 = página proibida. 404 = página não localizada. 5xx Erro do servidor 500 = erro interno do servidor. 503 = tente novamente mais tarde. Atenção! Para visualizaçãocompleta da tabela utilize a rolagem horizontal Códigos de resposta do protocolo SIP. Tabela: Sidney Nicolau Venturi Filho. Após a linha do código, o host chamado também pode fornecer: Informações de seus recursos. Tipo de mídia que ele utiliza. Formatos suportados. Esta figura apresenta a resposta de aceitação de um Invite pelo host chamado e os dados informados: Mensagem de aceitação de chamado. Finalmente, para confirmar que recebeu a resposta, o host chamador responde com uma mensagem ACK: Mensagem ACK. Para tornar tudo mais claro vamos ver um exemplo baseado no exemplo disponível em Kurose e Ross (2014, p 463). Observe esta situação: A figura a seguir possui dois hosts: um utilizado por Alice (167.180.112.24) e outro por Bob (192.64.210.89). Considerando que ela conhece o IP dele, o procedimento se dividiria pelas seguintes etapas: ETAPA 1 Alice envia a Bob uma mensagem de Invite para a porta 5060 (portão padrão do SIP) utilizando UDP (o que é mais comum) ou TCP, o qual, por sua vez, inclui: Identificador para Bob (bob@193.64.210.89). IP atual de Alice (167.180.112.24). Tipo de dados que deseja receber (áudio). Codificação do áudio AVP 0 (PCM codificado com lei μ). Porta pela qual deseja receber o áudio (38060). Encapsulamento a ser utilizado (RTP). ETAPA 2 Como Bob resolveu aceitar a chamada, ele envia uma mensagem com o código 200 (OK) para a porta 5060 de Alice, incluindo: O seu endereço IP (192.64.210.89). O tipo de dado: Áudio. A codificação de áudio que deseja: AVP3 (GSM). O encapsulamento que deseja: RTP. A porta para a qual deve ser enviado o áudio: 48753. ETAPA 3 Após receber a resposta de Bob, Alice envia um reconhecimento (ACK) SIP para a porta 5060. Assim, a partir desse ponto, eles podem conversar. Chamada SIP para IP conhecido. Notemos que, neste exemplo: Alice e Bob estão utilizando codificações diferentes para seu áudio e as enviam para as portas solicitadas, e não para a porta do SIP. O SIP é um protocolo fora de banda, já que suas mensagens são enviadas para portas diferentes daquelas utilizadas para a transmissão da mídia. O SIP exige que toda mensagem seja reconhecida; por isso, houve o envio do ACK por Alice. Consideremos agora que Bob não tivesse o codec necessário para transmitir para Alice (PCM μ-law). O que aconteceria? Ele enviaria para ela uma mensagem 606 informando que não pôde aceitar o Invite e listaria todos os codecs que possui. Ela escolheria um dos codecs listados e enviaria um novo Invite. Ele, então, poderia aceitar a chamada enviando um 200: OK. Após o término da conversa, qualquer uma das partes poderia solicitar o término da sessão enviando uma mensagem Bye. Quando ela for confirmada (ACK) pelo outro usuário, a sessão será encerrada. ENDEREÇOS Para que o SIP possa funcionar, é necessário que cada usuário possua um endereço.No exemplo anterior, o endereço SIP de Bob era sip:bob@193.64.210.89, ou seja, o nome dele estava associado a seu endereço IP. Isso, porém, não é a única possibilidade. Um e-mail ou o telefone fixo convencional também pode ser um endereço SIP. Formatos de endereço SIP. ATENÇÃO O endereço SIP tem um recurso muito interessante: a possibilidade de ele ser incluído em páginas web de forma similar ao que é feito com o e-mail. Bob poderia colocar seu endereço sip:bob@fhda.edu em uma página web, a qual, ao ser clicada, fará com que a aplicação SIP do usuário que clicou seja acionada e seja enviado um Invite para Bob. Quando o chamador coloca o endereço SIP do tipo e-mail ou telefone fixo convencional no Invite, a infraestrutura SIP consegue, conforme veremos adiante, descobrir qual é o IP a ser chamado e roteia a mensagem. DESCOBRIMENTO DO DESTINATÁRIO DE UMA CHAMADA No exemplo que demos, Alice conhecia o IP de Bob. Porém, o que aconteceria se ela não o conhecesse? Ou se o endereço SIP de Bob fosse sip:bob@fhda.edu? Ou se ele utilizasse um endereço dinâmico (DHCP)? COMO BOB PODERIA SER ENCONTRADO? RESPOSTA O SIP utiliza um mecanismo de registro similar ao DNS para poder encontrar o host chamado. Os servidores de registro do sistema possuem, a todo instante, o registro dos usuários como o seu endereço IP naquele momento. Quando alguém precisa chamar determinado endereço SIP, envia um Invite com o endereço do tipo bob@fhda.edu, o qual, por sua vez, vai ser encaminhado até um servidor proxy. Ele, então, envia uma mensagem de pesquisa a um dos servidores de registro que possua o endereço IP de Bob. Esse servidor lhe responde com o endereço IP. Ao recebê-lo, o proxy o inclui na mensagem de Invite da chamada, enviando-a ao destinatário. A figura a seguir ilustra o processo do descobrimento do destinatário de uma chamada. Descoberta de destinatário. REGISTRO DO USUÁRIO A esta altura, você pode estar se perguntando: como o servidor de registro sabe o IP de Bob? É aí que entra a mensagem Register do SIP. Quando uma aplicação SIP é acionada em um dispositivo, ela envia uma mensagem de registro (register) a um servidor de registro informando seu IP atual. Eis uma mensagem de registro: Mensagem Register. PROTOCOLOS DE SINALIZAÇÃO PARA VOZ NA INTERNET O especialista apresenta o funcionamento dos protocolos de sinalização utilizados para a comunicação de voz na internet (VoIP). VERIFICANDO O APRENDIZADO CONCLUSÃO CONSIDERAÇÕES FINAIS Ao longo deste tema, estudamos os protocolos envolvidos na transmissão de mídia, especialmente naquelas realizadas em tempo real. No primeiro módulo, após analisarmos as características dos protocolos TCP e UDP, explicamos por que eles são inadequados para a transmissão multimídia. Em seguida, descrevemos mais dois protocolos: o RTP, estabelecendo seu cabeçalho e seu funcionamento, e o RTCP, além de suas mensagens e de sua operação em conjunto com o RTP. No segundo módulo, nós nos concentramos em protocolos de sinalização para as aplicações em tempo real. Começamos vendo o padrão H.323 e seus protocolos principais. Por fim, estudamos o SIP, incluindo seus componentes, suas mensagens e seu funcionamento. PODCAST Agora, o especialista Sidney Nicolau Venturi Filho encerra o tema falando sobre a importância dos protocolos para aplicações multimídia em tempo real. AVALIAÇÃO DO TEMA: REFERÊNCIAS COMER, D. E. Interligação de redes com TCP/IP. 6. ed. Rio de Janeiro: Elsevier, 2015. FOROUZAN, B. Comunicação de dados e redes de computadores. 4. ed. São Paulo: McGraw-Hill, 2008. INTERNET ENGINEERING TASK FORCE. RTP: a transport protocol for real-time applications. Request for comments: 1889. Consultado em meio eletrônico em: 22 fev. 2021. KUROSE, J. F.; ROSS, K. W. Redes de computadores e a internet: uma abordagem top-down. 6. ed. Ribeirão Preto: Pearson Education, 2014. TANENBAUM, A. Redes de computadores. 5. ed. Rio de Janeiro: Campus, 2011. EXPLORE+ Faça uma pesquisa na internet a respeito destes protocolos: SDP (session description protocol), que formata as mensagens do SIP. SCTP (stream control transmission protocol), que pertence à camada de transporte e foi desenvolvido para fazer a transferência confiável de stream na internet. CONTEUDISTA Sidney Nicolau Venturi Filho CURRÍCULO LATTES javascript:void(0);
Compartilhar