NewsGeneration: um serviço oferecido pela RNP desde 1997


ISSN 1518-5974
Boletim bimestral sobre tecnologia de redes
produzido e publicado pela  RNP – Rede Nacional de Ensino e Pesquisa
12 de janeiro de 1998 | volume 2, número 1

volta à página inicial de NewsGeneration

Nesta edição:

NewsGeneration:



Internet Group Management Protocol - Versão 1 e 2 e Real Time Protocol (RTP)

Reinaldo Penno Filho <>

Rede Nacional de Ensino e Pesquisa (RNP)

Introdução
Endereços de grupos de hosts
Modelo de implementação de um host IP
Internet Group Management Protocol version 1 (IGMPv1)
Descrição informal do protocolo
Montagem Da Tabela De Grupos Nos Roteadores Multicast
Internet Group Management Protocol, Version 2 (Igmpv2)
o processo de eleição do querier
Introdução Ao Real Time Protocol (Rtp)
Conclusão
Referências Bibliográficas

Este é o segundo artigo de uma longa (senão infinita) série que pretende desmistificar a tecnologia MBONE. Nesse artigo, será visto a fundo as duas versões do Internet Group Management Protocol e será dada uma pincelada no Real Time Protocol (RTP). Mas o leitor não deve ficar preocupado, pois o RTP será explorado, em toda a sua exuberância, em artigos posteriores. É importante notar que é assunido que o leitor leu o primeiro artigo da série, publicado no boletim número 4 (volume 1)

^

Introdução

É possível classificar um host, com relação a sua capacidade de multicast, em um dos três níveis abaixo, chamados de níveis de conformidade: 

Não existe, até esta data, nenhum requerimento que todas as implementações baseadas em IP suportem multicasting. Hosts de nível 0 não serão afetados, em geral, por atividade deste tipo. A única exceção acontece, em alguns tipos de rede local, onde a presença de hosts de nível 1 ou 2 pode causar o envio equivocado de datagramas IP multicast para hosts de nível 0.  

O nível 1 permite que um host tome parte em alguns serviços multicast, como localização de recursos ou reportagem de status, mas não permite que o mesmo se associe a um grupo de hosts.  
 

O nível 2 permite que um host se associe ou deixe grupos de hosts, como também envie datagramas IP para os mesmos. Isto requer a implementação do Internet Group Management Protocol (IGMP) e extensão dos serviços de IP e de rede local nas interfaces dos hosts

^

Endereços de grupos de hosts

Este tópico já foi abordado no artigo anterior, mas é repetido aqui em benefício da continuidade do assunto. 
Grupos de hosts são identificados por endereços classe D, isto é, aqueles cujos quatro bits de ordem mais alta são iguais a "1110".

Na notação Internet padrão, endereços de grupos de hosts variam de 224.0.0.0 até 239.255.255.255. O endereço 224.0.0.0 é garantido não pertencer a nenhum grupo e 224.0.0.1 é designado ao grupo permanente de todos os hosts IP (incluindo gateways). Isto é usado para endereçar todos os hosts multicast em redes diretamente conectadas. Não há um endereço multicast (ou outro endereço IP) para todos os hosts na Internet. 

^

Modelo de implementação de um host IP

As extensões multicast da implementação de um host IP estão especificadas no modelo de camadas ilustrado abaixo. Nesse modelo, as implementações do ICMP e do IGMP (para hosts de nível 2) são consideradas parte do módulo IP. Já o mapeamento de endereços IP para endereços de rede local é considerado como responsabilidade dos módulos de rede local.  
 

^

Internet Group Management Protocol version 1 (IGMPv1)

O Internet Group Management Protocol (IGMP) é usado por um host IP para informar suas associações a grupos de hosts para qualquer roteador multicast imediatamente vizinho. Trata-se de um protocolo assimétrico e é especificado aqui do ponto de vista do host, não de um roteador multicast. Desta forma, mensagens IGMP são encapsuladas em datagramas IP, com número de protocolo igual a 2. Todas as mensagens que dizem respeito a hosts têm o seguinte formato:  
 

  
 
 

^

Descrição informal do protocolo

Roteadores multicast enviam mensagens Host Membership Query (chamadas de Queries) para descobrir quais grupos de hosts têm membros nas redes locais diretamente conectadas. Queries são endereçadas ao grupo que engloba todos os hosts (endereço 224.0.0.1), e têm time-to-live no cabeçalho IP igual a um.

Os hosts, ao receberem uma Query, respondem a através de mensagens Host Membership Reports (as chamadas Reports), informando os grupos a que pertencem através da interface de rede em que a Query foi recebida. Para evitar uma explosão de Reports concorrentes e reduzir o número total destas mensagens transmitidas, duas técnicas são usadas: 

  1. Quando um host recebe uma Query, ao invés de enviar Reports imediatamente, ele liga um cronômetro regressivo para cada um dos grupos a que está associado na interface em que a Query foi recebida. Cada cronômetro é ajustado para um valor diferente, escolhido aleatoriamente entre 0 e N segundos. Quando um cronômetro expira, um Report é gerado para o grupo de hosts correspondente. Logo, Reports são espalhados durante um intervalo de N segundos, ao invés de ocorrerem ao mesmo tempo. 
  2. Um Report é enviado com o endereço IP de destino igual ao endereço do grupo de hosts sendo informado, e com um time-to-live igual a 1, de modo que outros membros do mesmo grupo na mesma rede podem receber o Report. Se um host ouvir um Report direcionado a um grupo que faz parte, ele pára o cronômetro correspondente a este grupo e não gera o respectivo Report. Então, normalmente, somente um Report será gerado para cada grupo presente na rede, pelo membro cujo cronômetro expirar primeiro. Note que roteadores multicast recebem todos os datagramas IP multicast, logo não precisam ser endereçados explicitamente. Um fato importante é que roteadores não precisam saber que hosts pertencem a que grupo, somente que pelo menos um host pertence a um determinado grupo em uma rede particular. Isto já é suficiente para o roteador saber se deve repassar, ou não, pacotes para um determinado grupo em uma rede diretamente conectada. 

^

Montagem Da Tabela De Grupos Nos Roteadores Multicast

Periodicamente, roteadores multicast enviam Queries para atualizar seus conhecimentos sobre grupos presentes em uma rede particular. Se nenhum Report for recebido para um grupo particular depois do envio de algumas Queries, os roteadores assumem que o grupo não tem membros locais e que não precisam repassar datagramas multicast originados remotamente para este grupo na rede local. Queries são normalmente enviadas com pouca freqüência (não mais que uma por minuto) para manter o overhead IGMP nos hosts e na rede pequeno. Entretanto, quando um roteador multicast é inicializado, várias Queries são enviadas em um curto período com a finalidade que montar sua tabela de grupos locais rapidamente.

Quando um host se associa a um novo grupo, ele deve transmitir um Report para aquele grupo, ao invés de esperar por uma Query, no caso de ser o primeiro membro do grupo na rede. Para se resguardar da possibilidade do Report inicial ser perdido ou danificado, é recomendado que seja este repetido uma ou duas vezes depois de curtos lapsos de tempo.

^

Internet Group Management Protocol, Version 2 (Igmpv2)

O IGMPv2 é mais do que uma simples reedição da versão 1 com algumas modificações. Ele veio para resolver os problemas que não eram notados quando as palavras velocidade e latência ainda não faziam parte da oração diária dos projetistas e administradores de rede. 

Não há necessidade de uma explanação de todo o protocolo. Serão explicadas, com detalhes, as diferenças desde a primeira versão. Assim, o que não for abordado, deve ser assumido que ficou como na versão anterior. 

Mudanças desde IGMPv1 

   
 
 

^

o processo de eleição do querier

Todos os roteadores multicast começam como Querier nas suas redes diretamente conectadas. Se um roteador multicast recebe uma Query de um roteador com IP menor que o seu, ele não deve se tornar Querier naquela rede. Se ele não receber nenhuma dessas mensagens de outro roteador durante [ Other Querier Present Interval ], ele permanece no seu papel de Querier.


DEFINIÇÕES IMPORTANTES 

 
 


TABELA DE DESTINO DE MENSAGENS

Essa informação já foi colocada em outras partes do artigo, mas é sumarizada aqui por conveniência.

Tipo de Mensagem Grupo de Destino
General Query Todos os Sistemas (224.0.0.1)
Group-Specific Query o grupo sendo interrogado
Membership Report o grupo sendo informado
Leave Message Todos os Roteadores (224.0.0.2)

^

Introdução Ao Real Time Protocol (Rtp)

O Real Time Protocol provê serviços de entrega fim-a-fim para dados com características de tempo real como áudio e vídeo interativo. Esses serviços incluem identificação do tipo de dado, numeração sequencial, timestamping e monitoramento de entrega. Aplicações, tipicamente, executam o RTP sobre UDP para fazer uso dos seus serviços de multiplexação e checagem (checksum). O RTP suporta transferência de dados para múltiplos destinos usando distribuição multicast se possível. 

Note-se que o RTP não provê qualquer mecanismo para assegurar entrega sincronizada ou qualquer outro tipo de qualidade de serviço ou garantia de entrega. Isto deve ser assegurado pelos serviços das camadas inferiores. O RTP também não garante a entrega, não evita que os pacotes cheguem fora de ordem, nem assume que a rede é confiável. Entretanto, ele permite que sejam adicionados mecanismos de segurança, quando necessários, bem como controle de fluxo e de congestionamento. As aplicações devem ser adaptativas para poderem acomodar a variação do fluxo de dados em tempo real.

Apesar do RTP ser primariamente projetado para satisfazer as necessidades de conferências multimídia com muitos participantes, ele não está limitado a somente este tipo de aplicação. Armazenamento de dados contínuos, simulação interativa distribuída e aplicações de controle e medição também poderão achar o RTP conveniente.

O RTP pode ser definido como consistindo de duas partes intimamente conectadas:

O RTP representa um novo estilo de protocolo, isto é, foi projetado para ser flexível de modo a prover as informações requeridas por uma determinada aplicação e ser normalmente integrado dentro do processamento da aplicação, ao invés se ser implementado numa camada separada.

Várias aplicações que usam o RTP, tanto comerciais quanto experiementais, já foram implementadas a partir das especificações. Essas aplicações incluem ferramentas de áudio e vídeo, monitores de tráfego, entre outras. Os usuários dessas aplicações já chegam aos milhares. Entretanto, o estado atual da Internet não consegue suportar toda a demanda por serviços de tempo real. Serviços de grande largura de banda usando RTP, como vídeo, podem degradar seriamente a qualidade de serviço de outras aplicações. Logo, os desenvolvedores devem tomar as precauções necessárias para limitar o consumo de banda ao mínimo necessário nesses casos.

^

Conclusão

Após a leitura dos dois primeiros artigos desta série, as engrenagens da tecnologia MBONE dentro da rede local já devem estar dominadas. A partir do proximo artigo, começaremos a  ver como os datagramas multicast são roteados entre as redes. Também no próximo artigo, o Real Time Protocol (RTP) será explorado com mais detalhes, permitindo o entendimento de como aplicações de áudio e de vídeo interativo muito populares na Internet, como vat e vic , respectivamente, funcionam.

^

Referências Bibliográficas

D. D. Clark and D. L. Tennenhouse, "Architectural considerations for a new generation of protocols," in SIGCOMM Symposium on Communications Architectures and Protocols, (Philadelphia, Pennsylvania), pp. 200--208, IEEE, Sept. 1990. Computer Communications Review, Vol. 20(4), Sept. 1990. 

Postel J., "Internet Protocol", STD 5, RFC 791, USC/Information Sciences Institute, September 1981. 

Fenner W.,  "Internet Group Managenment Protocol, Version2", draft-ietf-idmr-igmp-v2-08, Xerox PARC, November 1, 1997 

Deering S., "Host Extensions for IP Multicasting", RFC 1112, Stanford University, Computer Science Department, August 1989 

Schulzrinne H., Fokus GMD, Casner S., Frederick R., Jacobson V.,   "RTP: A Tranport Protocol for Real-Time Applications", STD Track, RFC 1889, Audio-Video Transport Working Group, January 1996.

^

NewsGeneration, um serviço oferecido pela RNP – Rede Nacional de Ensino e Pesquisa
Copyright © RNP, 1997 – 2004