Quem sou eu

Minha foto
Salvador, BA, Brazil
Analista de sistemas, expert em telecom, formado em Eng. Elétrica e nerd assumido

sexta-feira, 30 de setembro de 2011

Gabarito do teste de afinidade com programação Assembly

Rapaz! o post do teste de habilidade para programação Assembly me surpreendeu. Em apenas dois dias conseguiu chegar no 3º lugar geral de visualizações do blog, com 240 acessos até agora, sendo que o 1º colocado tem 381 visualizações. Impressionante.

De qualquer forma, aqui vai o gabarito dos problemas propostos, conforme prometido. Quem quiser discutir alguma das soluções apresentadas, ou quiser apresentar alguma outra solução, melhor ou alternativa (pense bem antes de fazer isso - em mais de 20 anos não apareceu nada melhor que isso), sinta-se à vontade em usar a área de comentários deste post, e eu digo o que acho da sua idéia, ok? Então vejamos:

Problema 1: AHAT12 ou AHT0A2 (duas soluções, com 6 instruções). Pontuação: 2 pontos para cada  solução válida que você tenha encontrado.

Problema 2: T5AT7H0H3 (9 instruções). Pontuação: 2 pontos para a solução correta.

Problema 3: T0T0T097HT8AT8AT8A7 (19 instruções). Pontuação: 2 pontos pela estrutura lógica geral do programa, e mais 2 pontos se você acertou a "pegadinha" de colocar o programa em loop para forçar a parada (no sentido do programa não fazer mais nada, não da máquina não executar nenhuma instrução).

Meu critério pessoal de avaliação dos candidatos que fazem este teste é que, para ter futuro nesta área, a nota mínima neste teste é 6. Se você conseguiu, parabéns! Você proavelmente não terá diificuldade em habituar-se com a programação Assembly em qualquer arquitetura de hardware.

Se não conseguiu, paciência. Sugiro que você tente outras linguagens de programação, que não Assembly.

quarta-feira, 28 de setembro de 2011

Será que você leva jeito para programação Assembly?

Cerca de 25 anos atrás, em uma das minhas encarnações anteriores como systems programmer, meu gerente surgiu com um teste de aptidão para avaliar a competência dos candidatos ao cargo de programador na área de raciocínio lógico.

Depois eu passei a ver este teste como uma forma legal de avaliar se um determinado candidato tinha potencial pra trabalhar na área de systems programming, porque o teste tem muito a ver com programação Assembly: entender a arquitetura da máquina e saber usar as instruções de máquina.

Se você tiver curiosidade sobre sua possível habilidade para esta área da Informática, sugiro que tente fazer o teste abaixo. As regras são as seguintes:
  1. Você tem, no máximo, uma hora para fazer o teste;
  2. Todas as informações necessárias para responder às questões estão no texto;
  3. A interpretação das questões faz parte do teste.
Se você não se der bem, não se desespere. Eu mesmo, quando fiz o teste, não consegui terminar corretamente a terceira questão. E até hoje eu só encontrei uma pessoa que "gabaritou" o teste, e ele fez isso com requintes de crueldade: as duas primeiras questões ele fez de cabeça, e a terceira só precisou de um pouco de rascunho. Demorou, no total, uns 10 minutos.

Enfim, vamos ao enunciado. Depois publico o gabarito. Quem tiver um pouco de familiaridade com a teoria da computação vai reconhecer que o que vamos usar no teste é uma máquina de Turing.

Um computador hipotético é composto por:

a) Unidade de fita magnética cujos cabeçotes de leitura e gravação possuem acionamento independente (ou seja: é possível estar lendo e gravando em posições físicas diferentes da mídia montada na unidade) e, quando acionados, sempre atuam na direção progressiva de leitura/gravação da mídia;

b) Memória de tamanho infinito, com cada posição de memória sendo capaz de armazenar uma única instrução de máquina, e endereçamento das posições de memória de forma sequencial, crescente, iniciando em 0 (zero), com todos os endereços expressos em decimal;


c) CPU que sempre inicia a execução dos programas a partir da posição de memória com endereço 0 (zero) e que, com exceção dos casos previstos no instruction set, executa as instruções de máquina de forma sequencial em ordem crescente dos endereços de memória;

d) Instruction set:
d.1) Instrução A - causa a gravação de um caracter * (asterisco) na mídia montada na unidade de fita magnética;
d.2) Instrução H - causa a gravação de um caracter - (hífen) na mídia montada na unidade de fita magética;
d.3) Instrução T - causa a leitura de um caracter na mídia montada na unidade de fita magnética e: se o caracter lido for - (hífen) executa a seguir a instrução no endereço de memória x + 1; se o caracter lido for * (asterisco) executa a seguir a instrução no endereço de memória x + 2; onde x é o endereço de memória onde reside a instrução T;
d.4) Instrução n (onde n = 0,1,2,3,4,5,6,7,8 ou 9) - causa desvio incondicional para a instrução de máquina no endereço de memória n.

Para cada um dos exemplos apresentados e problemas propostos supõe-se que:

1) Existe mídia montada na unidade de fita magnética, cujo conteúdo inicial é uma sequência aleatória dos caracteres * (asterisco) e - (hífen), e tanto o cabeçote de leitura quanto o cabeçote de gravação da uidade de fita magnética estão posicionados no início físico da mídia;


2) Todas as posições da memória estão preenchidas com uma sequência aleatória de instruções de máquina válidas;


3) Não é possível codificar instruções de máquina inválidas;


4) Todos os programas par asolução dos problemas iniciam-se na posição de memória de endereço 0 (zero).


EXEMPLO:


Trocar, na mídia de fita magnética, cada caracter * (asterisco) por - (hífen), e vice-versa.

Resposta: T4H0A0



Com estas informações, elabore programas com o menor número possível de instruções de máquina que solucionem os problemas propostos.


PROBLEMAS PROPOSTOS:


P.1) Gravar, na mídia de fita magnética, o padrão de caracteres: *-**-***- ... (um asterisco, um hifen, dois asteriscos, um hífen, três asteriscos, um hífen, ...).


P.2) Trocar, na mídia de fita magnética, cada segundo caracter * (asterisco) encontrado pelo caracter - (hífen).


P.3) Localizar, na mídia de fita magnética, a primeira ocorrência do string *** (três asteriscos consecutivos) copiar, a partir do início da mídia de fita magnética, todos os caracteres que se seguem ao string localizado até encontrar a próxima ocorrência do string *** (três asteriscos consecutivos), copiando-os, inclusive, e depois parar.

Boa sorte!

domingo, 11 de setembro de 2011

Redes de telecomunicação (11) - Going all-IP (parte 2)

Seguindo com o assunto da conversão das redes fixas e móveis convencionais em uma estrutura convergida e all-IP, comumente denominada Next Generation Network - NGN.

A arquitetura da NGN que vimos na parte anterior deste artigo não tinha a menor condição de acontecer sozinha, ou em separado da estrutura convencional dos serviços de voz por comutação de circuitos. Três problemas fundamentais precisavam ser solucionados para que a NGN pudesse surgir como uma evolução, e não como uma ruptura com a arquitetura das redes existentes:
  1. Como garantir a interoperação entre usuários do serviço convencional de telefonia e usuários do serviço de voz na NGN, que utilizam Voice over Internet Protocol (VoIP)?
  2.  Como substituir a transmissão convencional TDM (veja este artigo anterior) por uma rede TCP/IP?
  3. Como controlar a utilização de serviços de voz, video e dados dos usuários NGN?
Nesta parte deste artigo vamos responder às primeiras duas questões. A resposta para a terceira questão fica para a próxima parte.

Na telefonia convencional (Plain Old Telephone Service - POTS) o estabelecimento dos circuitos para tráfego de voz é mediado pela troca de sinalização entre os elementos da rede. Esta sinalização normalmente é dual-tone multifrequency (DTMF) entre os aparelhos dos usuários e as suas respectivas centrais de comutação local, e Common Channel Signaling System #7 (CCSS7 ou SS7) entre centrais de comutação.

Tanto o canal para o tráfego de voz quanto os canais de interconexão entre os elementos de sinalização SS7 (essencialmente Service Switching Points - SSPs e  Signal Transfer Points - STPs) são mapeados sobre a rede de transmissão TDM, tanto na arquitetura PDH quanto na SDH/SONET (veja artigos anteriores aqui e aqui), como no modelo abaixo.


Quando as operadoras fixas começaram a suportar o tráfego da Internet isso foi feito simplesmente usando a rede de transmissão para mapear conexões virtuais, fim a fim, entre os roteadores. Com o tempo esta estrutura passou a ser suportada sobre uma outra rede de roteadores IP, configurados para formarem um serviço agnóstico de transporte no nível da camada 2 do modelo OSI, chamado Multi-Protocol Label Switching (MPLS), que efetivamnte substituiu os serviços de comunicação de dados baseados em X.25 e Frame-Relay (veja este artigo anterior). Sobre a rede de roteadores IP/MPLS mapeiam-se redes virtuais privativas (Virtual Private Networks - VPNs) que isolam logicamente o tráfego de cada grupo de usuários. Nosso modelo operacional, agora, adquiriu a seguinte aparência.


O próximo passo do caminho é a introdução de um novo tipo de central de comutação, conhecido como softswitch. Uma softswitch é composta por dois tipos de elementos: um Media Gateway Controller (MGC) que, como diz o nome, controla um conjunto (que pode ser geograficamente disperso) de Media Gateways (MGW), responsáveis pelo transcoding e pala conectividade VoIP do tráfego de voz.

Quanto à sinalização, o MGC incorpora:
  •  Um elemento SSP da sinalização SS7, o que permite que a softswitch interopere com as centrais de comutação POTS tradicionais;
  • Sinalização de controle dos seus MGWs subordinados, conforme a recomendação  ITU-T H.248.1 v3 
nota histórica: O protocolo H.248 foi desenvolvido conjuntamente pela ITU-T e pela IETF (MEGACO -  RFC 3015, e GCP - RFC 3525) mas, como explicado na RFC 5125, a ITU-T assumiu integralmente a tarefa de especificação deste protocolo.

O tráfego de sinalização SS7 convencional também pode ser adaptado para transporte sobre IP através de gateways SIGTRAN, que são vistos como SCPs pelos SSPs convencionais, e tunelam entre eles as mensagens SS7 sobre a rede de transporte IP/MPLS. Falando nisso, tipicamente criam-se duas novas VPNs (ou Virtual Routing and Forwarding - VRFs, no jargão MPLS) para o transporte individualizado do tráfego de voz e do tráfego de sinalização.

Finalizando o modelo temos o tráfego TDM legado que, por algum motivo, não possa ser acomodado através das softswitches. Para isso os roteadores IP/MPLS implementam emulação de circuitos TDM sobre o transporte IP, de acordo com os padrões desenvolvidos pelo grupo de trabalho Pseudo-Wire Emulation Edge to Edge (PWE3) da IETF.


E assim chegamos, finalmente, aos dias atuais. Pelo desenho acima já deu pra perceber que gradualmente o tráfego está sendo transportado nativamente sobre IP/MPLS, e que as hierarquias de transmissão TDM (PDH e SDH/SONET, que foram explicados antes neste artigo e neste artigo) vão sendo progressivamente relegadas ao papel de suporte ao tráfego de equipamentos ou serviços legados, para os quais não existe solução prática diretamente sobre a rede de transporte IP/MPLS.

Mesmo o papel de oferecer conectividade entre os roteadores IP/MPLS está gradualmente saindo da esfera dos multiplexadores SDH, com a gradual adoção de redes ópticas de grande capacidade, que fazem FDM (falamos disso neste artigo) sobre fibras ópticas. Mas, como sempre acontece, damos um novo nome a velhas coisas, e isto passa a ser conhecido como Wavelength Division Multiplexing (WDM). A depender da quantidade de comprimentos de onda (lambdas, para os íntimos) que podem ser multiplexados sobre uma fibra óptica, estes sistemas são chamados de Coarse WDM (CWDM) ou Dense WDM (DWDM).

Existe (mais uma!) "guerra religiosa" em andamento nesta área, a respeito de como organizar o plano de controle da rede de transporte integrada formada pelos roteadores IP/MPLS e pelos elementos da rede WDM. As hipóteses disputando a dominância de mercado são:
  • Usar o plano de controle dos roteadores IP/MPLS, e manter a rede óptica subjacente apenas como canais de transporte independentes. Neste modo os roteadores IP/MPLS usam interfaces IP over DWDM (IPoDWDM) para interoperar ativamente com a rede óptica, de acordo com a recomendação G.709/Y.1331 da ITU-T;
  • Usar o plano de controle da rede óptica configurada como uma OTN, e interligar os roteadores IP/MPLS de forma passiva, através de transponders;
  • Integrar os planos de controle IP/MPLS e óptico. As propostas mais avançads neste sentido são o MPLS-TP e o GMPLS, ambos com muito trabalho a ser feito antes de poderem ser utilizados em larga escala.


Caramba, como isso tá ficando comprido! Vou parar por aqui e, na próxima (e, possivelmente, última) parte deste artigo vou falar da arquitetura geral para uma NGN fixa e móvel, e vamos falar do IMS, como um dos elementos chave desta arquitetura convergente.

sábado, 10 de setembro de 2011

Como me sinto hoje...

Essa música do John Lennon resume tudo... Perfeito...


People say I'm crazy doing what I'm doing,
Well they give me all kinds of warnings to save me from ruin,
When I say that I'm o.k. they look at me kind of strange,
Surely you're not happy now you no longer play the game,

People say I'm lazy dreaming my life away,
Well they give me all kinds of advice designed to enlighten me,
When I tell that I'm doing Fine watching shadows on the wall,
Don't you miss the big time boy you're no longer on the ball?

I'm just sitting here watching the wheels go round and round,
I really love to watch them roll,
No longer riding on the merry-go-round,
I just had to let it go,

People asking questions lost in confusion,
Well I tell them there's no problem, only solutions,
Well they shake their heads and they look at me as if I've lost my mind,
I tell them there's no hurry... I'm just sitting here doing time,

I'm just sitting here watching the wheels go round and round,
I really love to watch them roll,
No longer riding on the merry-go-round,
I just had to let it go.

quinta-feira, 8 de setembro de 2011

Redes de telecomunicação (10) - Going all-IP (parte 1)

Muy bueno... depois de ver a evolução das redes de acesso celular é hora de voltarmos atrás no tempo e retomar a história da rede fixa, para cobrir novamente as décadas de 90 do século XX e a primeira década do século XXI, mas agora focando na evolução das redes de telefonia fixa e sua convergência com as redes de telefonia móvel, com foco principalmente na forma como a família de protocolos TCP/IP estabeleceu-se como padrão para todo este cenário.

Em um artigo anterior falamos sobre o surgimento da ARPANET, e como esta rede foi essencial na demonstração da viabilidade do conceito de comutação de pacotes. Mas, além disso, a ARPANET também foi o berço para o modelo mais bem-sucedido de arquitetura de redes até hoje: o TCP/IP, que permitiu o surgimento da Internet em 1983 (a ARPANET tornou-se, então, apenas mais uma das várias redes TCP/IP interconectadas pela Internet).

Não fossem por dois eventos críticos, a Internet provavelmente contiuaria a ser essencialmente um brinquedinho de acadêmicos. O primeiro evento foi a popularização do uso corporativo dos computadores pessoais e sua interligação por redes locais (Local Area Networks - LANs); e o segundo foi o surgimento do primeiro serviço realmente popular na Internet, que acabou conduzindo à sua abertura (depois de muita chiadeira pelos acadêmicos mais puristas) para usos comerciais: a WorldWideWeb - WWW ou W3.

No período de 1995 a 2000 ocorreu a famosa "bolha da Internet". Neste período as redes de telefonia fixa viram-se compelidas, primeiro a suportar o crescimento da Internet (como fornecedores básicos de conectividade entre os vários provedores de serviço e de acesso, e entre os provedores de acesso e os usuários), e depois a entrar no jogo da construção e expansão da rede, assumindo elas mesmas papéis cada vez mais destacados como provedores de serviços e de acesso.

Cristalizou-se a visão que, em muito pouco tempo (segundo a percepção da época) a Internet seria a únca rede que interessava, a Information Superhighway (ou Infobahn), e que todos os tipos de aplicação, inclusive a telefonia tradicional, migrariam naturalmente para o ambiente TCP/IP. Os estrategistas da evolução da rede de telecomunnicações (inclusive a ITU-T) incorporaram este conceito, e começaram a trabalhar em uma nova proposta de rede multisserviço: Next Generation Network - NGN. Esta percepção pode ser sintetizada na figura abaixo, que está na Recomendação Y.110 da ITU-T: Global Information Infrastructure Principles and Framework.


Ainda nesta mesma recomendação, e adaptando um pouco, o modelo arquitetural para a GII (Global Information Infrastructure) tem a seguinte aparência:


Obsere-se que a Intrnet é considerada como parte da camada "funções de telecom". Isto implica a visão (controversa) da Internet como mais uma rede de telecom, gerida e regulada por princípios semelhantes aos das demais redes de telecom. Então o que poderíamos esperar como situação final da evolução deste modelo seria que a camada "funções de telecom" da arquitetura GII tivesse a seguinte estrutura:


é claro que a realização de um modelo assim transformaria todas ass redes de telecom (e, na verdade, todos os tipos de redes) em uma única Internet, com os usários tendo acesso a todos os tipos de aplicações e serviços através de seus terminais. Uma visão deste tipo era (e ainda é) extremamente disruptiva para o modelo de negócio clássico de telecom e, particularmente, para o modelo de negócio dos fornecedores de equipamentos de telecom.

Eles viram-se na contingência de competir com empresas que, até então, só eram percebidas como fornecedoras de equiapamentos para redes corporativas. Estes novos entrantes possuíam uma postura fundamentalmente diferente, e foram percebidos de imediato como uma ameaça muito séria. A reação coletiva da indústria de equipamentos de telecom foi retardar ao máximo a adoção do TCP/IP, exacerbando sempre que possível a sensação de insegurança natural de um ambiente em transição, enquanto desenvolviam eles próprios linhas alternativas de equipamentos para competir nesta área.

Além disso há o problema da cultura corporativa das operadoras de telecom, extremamente reticente em adotar novos procedimentos. Isto acabou traduzindo-se, em minha opinião, em uma tendência em acomodar conceitos clássicos de telecom dentro da moldura de gerência de uma rede NGN, principalmente a questão do provisionamento.

Provisionar, em telecom, é o ato de alocar recursos para um determinado usuário ou finalidade. Por exemplo: para que um usuário de acesso fixo em banda larga possa utilizar o serviço as seguintes atividades de provisionamento tem que ser executadas:
  • Designar e alocar um par de fios da casa do usuário até a central mais próxima;
  • Providenciar o entroncamento do par de fios designado em uma porta de acesso DSLAM;
  • Configurar a existência deste usuário (criar um par userid/senha) no BRAS;
  • Enviar alguém até a casa do usuário para instalar e configurar o modem xDSL e testar o acesso ao serviço.
O problema é que, embora algumas atividades de provisionamento já tivessem caráter estatístico, como o provisionamento de recursos de transmissão para o entroncamento de centrais (veja o que já falamos antes sobre Erlang), as fórmulas e a postura para provisionamento estatístico em um ambiente puro de comutação de pacotes são diferentes. Isto altera a maneira de planejar a expansão da rede, e isto é percebido pela comunidade de engenharia de telecom como um fator de insegurança.

A reação natural foi tentar preservar ao máximo conceitos que tornavam a mudança de paradigma menos ameaçadora. Daí, creio eu, a ênfase exagerada no uso de circuitos virtuais, em um processo que eu apelidei de circuitizaçao de pacotes.

Seja como for, o processo de transformação da infra estrutura de telecom em uma rede all-IP já está bastante adiantado. Na próxima parte deste artigo vou tratar da interface da NGN com o serviço legado de telefonia, as mudanças que isto traz à hierarquia tradicional das centrais de comutação e à sinalização, e pelo menos iniciar a conversa sobre o elemento (chamá-lo assim é um caso de understatement) chave para a operação convergente de serviços fixos e móveis em modo de comutação de pacotes: o IP Multimedia Subsystem (IMS).

segunda-feira, 5 de setembro de 2011

Internet é ou não é Telecom?

Em 15/06/2011 o Edmundo Matarazzo publicou este artigo no site e-Thesis, salientando (e justificando com a hermenêutica da LGT) as diferenças entre serviços de telecom e de Internet. Em 02/09/2011 o Silvio Meira publicou o post Internet não é Telecom no seu blog, dia a dia, bit a bit, defendendo ponto de vista semelhante, mas apoiando-se essencialmente em uma argumentação sobre a conveniência política da separação.

Isto me deu o que pensar: porque será que representantes destas duas linhagens técnicas, antagônicas desde longa data (veja, por exemplo, o artigo Bellheads vs Netheads publicado originalmente na revista Wired em outubro de 1996), estão tão interessados em salientar as diferenças entre os serviços de telecom e de Internet? E demarcar a necessidade de continuarmos a gerir e regular estes dois domínios de forma totalmente separada?

Com o devido respeito que estas opiniões merecem, peço licença para defender, com base na convergência tecnológica e no interesse dos usuários, o ponto de vista diametralmente oposto: Internet e telecom devem, sim, ser consideradas em conjunto, e devem posuir marcos regulatórios coerentes entre si.

Tenho, assim como o Silvio Meira, sérias restrições quanto à intervenção governamental nestes assuntos. Mas não acredito que minha descrença que qualquer governo (especialmente o atual) deva atuar acima e além do papel de agente regulador do mercado seja impeditivo para a convergência dos marcos regulatórios de telecom e da Internet. E, sobretudo, não acho que um marco regulatório sensato para a Internet tenha que, necessariamente, assumir o aspecto de um "AI-5 digital", como são acusadas as iniciativas em andamento sobre este assunto.

Eu já apresentei esta argumentação antes, pelo menos em parte, no artigo do e-Thesis onde comentei a posição do Edmundo Matarazzo, e vou repisar o mesmo caminho aqui, só que agora eu posso fazer desenhos :o)

Vejamos... todo o contexto tecnológico e psicológico envolvendo o surgimento da Internet e a promulgação da LGT supõem uma estrutura da rede e dos serviços por ela suportados, com a seguinte aparência:


Neste contexto a definição da Internet como serviço de valor agregado à rede de telecom faz todo o sentido, uma vez que os componentes da Internet (modems de acesso, roteadores/switches, computadores clientes e servidores) são usuários do serviço de aluguel de circuitos de comunicação de dados e/ou do serviço de comunicação de dados por comutação de pacotes.

Porém a evolução tecnológica para um ambiente de redes all-IP já introduziu profundas mudanças na configuração descrita aí em cima. A figura que vale hoje é a seguinte:


Neste contexto a Internet ainda pode ser vista como um serviço de valor agregado, já que ela pode ser entendida como usuária do serviço de provimento de VPN L2/L3. Os serviços da operadora (voz, vídeo, etc.) já estão quase todos sobre uma base de transporte all-IP, e podem ser enxergados como aplicações, de forma semelhante ao que ocorre na Internet, mas eles ainda podem ser percebidos como distintos das aplicações da Internet, já que os ambientes IP públicos (a Internet) e privados (a rede interna de prestação de serviços da operadora) tem fronteiras bem marcadas.

Com a disseminaçao do IPv6 o cenário mudará novamente, e a distinção entre aplcações providas dentro ou fora da rede da operadora perde nitidez. Do ponto de vista do usuário existirão aplicações que ele pode acessar porque tem assinatura daquele provedor (de serviço, não de rede) e aplicações públicas, disponíveis sem custo. Os serviços da operadora são apenas mais um site dentre inúmeros outros acessíveis pela estrutura integrada que, do ponto de vista do usuário, é a Internet, embora seja formada fisicamente pela concatenação dos recursos de rede e de serviços de diversos provedores..


Portanto o que eu vejo como necessáro neste contexto final é a existência de dois domínios de regulação. Um que tratará de garantir a coerência e a interoperação de cada serviço IP disponível para os usuários. Os gestores dos servidores destes serviços terão que seguir estas regras para garantir serviços com interoperação global garantida (algo semelhante ao que a ITU sempre fez para a telefonia). O outro domínio tratará dos aspectos de construção e interoperação da infra-estrutura de transporte em todos os níveis, desde o provedor local de acesso até os provedores de interconexão tier 1. O objetivo deste domínio é garantir conectividade (e, possivelmente, níveis diferenciados de QoS) entre quaisquer pontos de conexão.

Neste sentido, não vejo mais diferença entre o que hoje chamamos Internet e os serviços locais ofertados por cada provedor de acesso (operadoras de telecom aí incluídas). Portanto acho que o melhor que podemos fazer é reconhecer que a evolução neste sentido é inexorável, e começar a preparar nosso marco regulatório de acordo com isso.

domingo, 4 de setembro de 2011

Piadinha para engenheiros

Já que falamos tanto de séries e transformadas de Fourier ultimamente...


Redes de telecomunicação (9) - Telefonia celular (parte 3)

Como prometido, nesta terceira e última parte deste artigo vamos ver os desenvolvimentos da telefonia celular (e da transmissão de dados wireless em banda larga) ocorridos na primeira década do século XXI, com a entrada em operação dos sistemas padronizados no IMT-2000 da ITU, também conhecidos como terceira geração (3G) da telefonia celular.

Como falamos na parte anterior deste artigo o processo de migração da 2G para 3G foi como uma corrida, com os dois principais concorrentes (3GPP e 3GPP2) apressando-se em apresentar o mais antecipadamente possível suas features, em busca de um melhor posicionamento de mercado.

Como uma solução de consenso não era possível, a ITU, então, tomou a decisão de tornar as duas propostas padrões aceitáveis para o IMT-2000. Ainda não vi descrição melhor para este tipo de comportamento dos órgãos de padronização do que esta tirinha do Scott Adams.


Enfim... os padrões aceitos pela ITU para o IMT-2000 foram:
Até onde eu sei as opções de interface aérea UMTS diferentes do W-CDMA são utilizadas apenas na China (embora isto possa representar "apenas" algumas dezenas de milhões de usuários).

Mas a guerra religiosa não parou por aí. Os dois grupos engajaram-se na corrida para atingir novos patamares de desempenho e adiantar as características do que poderia vir a ser a quarta geração (4G) da telefonia celular, embora nem a ITU, àquela altura, soubesse dizer como seria isso. Então, da mesma forma que tivemos uma "geração intermediária" 2,5G, fruto da disputa de mercado, também apareceu uma 3,5G cujas caracerísticas gerais estão resumidas na tabela abaixo.


As taxas de downink e uplink mostradas na tabela são máximos teóricos. O desempenho de uma rede real dependerá de vários fatores, e certamente será menor que o indicado aqui.

Até meados da década tudo parecia perfeito para as famílias de padrões do 3GPP, que ganharam uma óbvia vantagem mercadológica sobre os padrões do 3GPP2. Porém o aparecimento de um novo combatente - o IEEE (Institute of Electrical and Electronical Engineers) - esquentou novamente a "corrida armamentista" e provocou o aparecimento de novas propostas por parte do 3GPP e do 3GPP2.

A proposta disruptiva feita pelo IEEE foi o WiMAX (Worldwide Interoperability for Microwave Access - IEEE 802.16). O 3GPP respondeu com a proposta LTE (Long Term Evolution), e o 3GPP2 tentou manter-se no jogo com a proposta UMB (Ultra Mobile Broadband). Digo tentou porque a Qualcomm, principal patrocinadora da tecnologia UMB, desistiu formalmente do seu desenvolvimento em 2008 e passou a adotar o padrão LTE.


Todas estas propostas tem em comum a utilização do OFDMA (Orthogonal Frequency Division Multiple Access), também conhecido como DMT (Discrete Multi-Tone Modulation) como técnica básica de multiplexação, portanto cabe aqui uma descrição básica deste método, assim como fiz para o FDMA (na primeira parte deste artigo), TDMA e CDMA (na segunda parte deste artigo). Entretanto, assim como no caso do CDMA, não podemos escapar de um pouco de matemática para entender os princípios de funcionamento do OFDMA. Interessante que, embora as idéias que vamos ver sejam conhecidas desde o final da década de 60 do século XX, para usar efetivamente esta técnica foi necessário esperar pelo aparecimento de ASICs (Application-Specific Integrated Circuits) capazes de executar rapidamente algoritmos de processamento de sinais digitais.

Um sinal modulado em QAM (veja este artigo anterior) possui seu espectro de frequência com a forma de uma função sync (sen x/x), que tem a seguinte aparência:


Se escolhermos um conjunto de portadoras QAM de tal forma que os seus espectros de frequência possuam todos os seus zeros comuns, como na figura abaixo, este conjunto de funções satisfaz à condição de ortogonalidade (também descrito na parte anterior deste artigo, quando tratamos do CDMA).


Podemos então desdobrar no tempo o sinal a transmitir, atribuindo grupos de n bits para cada uma das subportadoras w1, w2, ... de tal forma que cada um destes grupos pode ser representado como um dos símbolos de uma constelação QAM que mantenha a subportadora abaixo do baud rate máximo permitido pelo teorema de Shannon-Hartley (veja neste artigo anterior).

A questão do processamento de sinais aparece pelo seguinte motivo: cada subportadora modulada QAM pode ser representada como um número complexo (cos wt + i.sen wt), e o conjunto das subportadoras representa a transformada discreta de Fourier de um sinal.

A transformada de Fourier pode ser entendida como uma operação que, quando aplicada sobre um sinal no domínio tempo, produz um sinal correspondente no domínio frequência. Analogamente a transformada inversa de fourier transforma sinais no domínio frequência em sinais no domínio tempo. Os sinais nos domínios tempo e frequência estão relacionados pela expansão em série de Fourier. Então (se você não tem estômago para matemática, pule a figura que vem a seguir) se f(t) é um sinal no domínio tempo e F(w) é a sua transformada de Fourier, então:


A primeira expressão é a transformada direta (ou simplesmente a transformada) de Fourier, e a segunda expressão é a transformada inversa de Fourier. A terceira expressão é a fórmula de Euler, que correlaciona as formas retangular e exponencial para representação de números complexos (se você ainda não tinha visto nenhuma aplicação prática para os números complexos que você estudou - ou devia ter estudado - no ensino médio, acabou de achar).

Tipicamente, quando falamos de processamento de sinais, estaremos trabalhando sobre os valores (geralmente expressos em binário) de amostras discretas dos sinais. Cada um destes procedimentos matemáticos pode ser codificado como um algoritmo a ser executado sobre as amostras. Conforme a direção em que o algoritmo opere ele é chamado de FFT (Fast Fourier Transform) ou IFFT (Inverse FFT). Então o esquema geral para a codificação e decodificação de sinais OFDM pode ser representado como na figura abaixo.


Eu me estendi em mais detalhes sobre o OFDM porque ele é utilizado em quase todas as formas de transmissão de dados em banda larga atualmente, então vale a pena entendê-lo um pouco melhor. Quanto às implementações atuais para os padrões LTE e WiMAX, a tabela abaixo resume as suas características principais.


Pelo que parece, dadas as indicações de mercado hoje, tudo indica que o padrão LTE (mais especificamente o LTE-advanced) deverá ser o padrão dominante para a implementação de redes celulares 4G (o alvo de desempenho definido pela ITU na especificação IMT-advanced - que é a definição oficial de 4G - é de taxas de pico de download de 1 Gbps para usuários estacionários e 100 Mbps para usuários em movimento rápido).

Daqui em diante vou retomar (e voltar um pouco ao passado, cerca de 10 anos) o desenvolvimento da rede fixa, mas sem distingui-la mais da rede móvel. Vocês devem ter notado que discuti somente a interface de rádio da rede celular, e não falei nada sobre o chamado core da rede. Daqui em diante isto muda. No próximo artigo o assunto será a "invasão" da tecnologia TCP/IP na construção das redes fixas e móveis.

quinta-feira, 1 de setembro de 2011

Redes de telecomunicação (8) - Telefonia celular (parte 2)

Nesta parte deste artigo vamos apreciar uma das maiores "guerras religiosas" na área de telecom: a disputa pela dominância tecnológica do mercado, nos anos 90 do século XX, quando da digitalização das redes de acesso, que caracterizou a transição da primeira geração (1G) para a segunda geração (2G) da telefonia celular.

Esta foi uma época onde claramente a ITU ficou para trás no seu papel de estabelecer padrões, superada por dois polos antagônicos formados por empresas, operadoras e organizações interessadas na defesa técnica e comercial de cada um dos padrões envolvidos na disputa. Um destes polos formou-se na Europa, em torno da ETSI (European Telecommunication Standards Institute). O outro congregou-se nos Estados Unidos, com foco na EIA/TIA (Electronics Industry Alliance/Telecommunications Industry Association).

O objetivo inicial das propostas 2G era permitir compatibilidade com as redes 1G. O que foi feito, basicamente, foi superpor multiplexação no tempo (TDM) sobre a estrutura de multiplexação em frequência (FDM) típica das redes 1G (veja a primeira e a segunda parte deste artigo anterior, bem como a primeira parte deste artigo, para revisar os conceitos de FDM e TDM). Esta forma de acesso é conhecida como TDMA (Time Division Multiple Access), e está ilustrado na figura abaixo.


O canal de comunicação TDMA é, então, definido por um par de time slots, um em um dos canais de frequência de uplink, e o outro em um dos canais de frequência de downlink. A tecnologia TDMA foi adotada em dois "sabores" principais:
  • EIA/TIA interim standards IS-54 e IS-136, também conhecidas como D-AMPS (Digital AMPS) ou, simplesmente, TDMA (como ficaram conhecidas no Brasil);
  • GSM (originalmente Groupe Spécial Mobile, depois Global System fos Mobile Communications)
A tabela abaixo resume e compara as características gerais dos sistemas IS-136 (D-AMPS) e GSM.


Em paralelo com estes dois sistemas, foi desenvolvido outro, baseado na tecnologia spread spectrum. O método de compartilhamento CDMA (Code Division Multiple Access). Vou procurar explicar, simplificadamente, o funcionamento do CDMA sem recorrer a muita matemática.

O conceito fundamental que justifica o funcionamento do CDMA é a ortogonalidade. Na álgebra vetorial dois vetores a e b são ortogonais se o seu produto escalar é igual a zero.


O conceito de ortogonalidade pode ser estendido para as funções, com uma definição um pouco mais complicada. Duas funções f(x)e g(x) são ortogonais no intervalo [x1,x2] se:


Para não complicar mais a vida daqueles que não tem inclinação para a matemática vamos apenas assumir que existem famílias de funções que satisfazem a esta condição. O interessante destas funções ortogonais é que elas podem ser usadas para codificar de forma unívoca os sinais dos usuários, que são então transmitidos simultaneamente, portanto o sinal transmitido representa a soma de todos os sinais codificados dos usuários, e cada uma das funções ortogonais usadas na codificação é chamada código (code). Na recepção o código unívoco de cada usuário é aplicado sobre o sinal somado, produzindo como saída o sinal isolado daquele usuário.

Exemplos para famílias de funções ortogonais são as linhas ou colunas das matrizes de Walsh (Walsh codes) e os Gold codes (sequências pseudo-aleatórias - pseudo-random sequences). Por razões técnicas (ligadas a questões de sincronismo) os Walsh codes são usados para codificar o sinal do downlink, enquanto os Gold codes são usados para codificar o sinal do uplink.

O processo de codificação e decodificação envolvem o uso da função lógica eXclusive OR (XOR). Na codificação ela é usada sobre o sinal (com seu bit rate original) e sucessivas repetições do código alocado para aquele usuário, porém com um bit rate mais elevado, conhecido como chip rate, o que provoca o aumento de frequência e consequente espalhamento espectral (spectrum spreading) do sinal codificado. A figura abaixo ilustra este processo.


Na decodificação a função XOR é aplicada sobre o sinal superposto (somado) de todos os usuários e sucessivas repetições do código de cada usuário no mesmo chip rate usado na codificação, extraindo o sinal transmitido pelo usuário, ou zeros binários quando não há dados a decodificar.

O padrão inicial para redes CDMA foi a norma provisória EIA/TIA IS-95 e suas subsequentes revisões, baseada na especificação feita pela Qualcomm, e comercializada com o nome CdmaOne.

Podemos então resumir as três formas básicas de multiplexação usadas na rede de acesso de telefonia celular da seguinte forma:


A esta altura estamos com o cenário da "guerra religiosa" finalmente formado: das tecnologias TDMA o GSM tornou-se claramente dominante, por várias razões (técnicas e comerciais), enquanto o CdmaOne destacava-se por permitir uma melhor taxa de transmissão para usuários de dados. E os sistemas IS-136 (D-AMPS) chegaram a um beco sem saída tecnológico e de mercado.

Neste ponto da história a ITU-T especificou que características seriam desejáveis para os sistemas celulares de terceira geração (3G), no que ficou conhecido como IMT-2000 (International Mobile Telecommunications-2000). Isto provocou a coalescência dos principais concorrentes em dois organismos de padronização e lobby: o 3rd Generation Partnership Program (3GPP) com as tecnologias GSM e Wideband CDMA (WCDMA); e o 3rd Generation Partnership Program 2 (3GPP2) com a tecnologia Cdma2000.

A questão é que ninguém estava disposto a esperar uma decisão da ITU sobre qual padrão 3G deveria ser adotado. A batalha pelos corações e mentes das operadoras celulares mundo afora foi deflagrada de imediato, com ambas as partes oferecendo antecipadamente suas features capazes de conquistar a clientela.

No caso do CdmaOne, enfatizava-se o caminho natural da migração para Cdma2000, na sua versão inicial chamada 1xRTT ( 1x Radio Technology Transmission) e, logo após, evoluída para a versão 1xEV-DO (1x EVolution - Data Only). A principal característica destacada pelo 3GPP2 era a maior capacidade de transmissão de dados (taxa máxima teórica de download de 153 Kbps para o 1xRTT e 2,4 Mbps para o 1xEV-DO)

No caso do GSM tratou-se de evoluir os sistemas de transmissão de dados enquanto não havia ainda a disponibilidade efetiva da tecnologia WCDMA. Aí surgiram o GPRS (General Packet Radio Service - 60 Kbps de taxa máxima teórica de download) e o EDGE (Enhanced Data rates for GSM Evolution - 476,6 Kbps de taxa máxima teórica de download). Enfatizando também a compatibilidade com os sistemas GSM já implantados.

Vamos parar, por enquanto, neste cenário das chamadas tecnologias 2,5G (Cdma2000 1xRTT e 1xEV-DO, GSM/EDGE/GPRS), para tratar da terceira geração (3G), e da proposta IMT-advanced da ITU (que deverá ser a quarta geração - 4G) na próxima (e quiçá última) parte deste artigo.