WirelessBR

WirelessBr é um site brasileiro, independente, sem vínculos com empresas ou organizações, sem finalidade  comercial,  feito por voluntários, para divulgação de tecnologia em telecomunicações 

Série de artigos sobre VoIP (2)
VoIP

TCP/IP for not-so dummies
   - Parte 01

José de Ribamar Smolka Ramos   (*)

Este artigo foi publicado em 11/05/06.    O download do arquivo.pdf  pode ser obtido aqui.

Série de artigos sobre VoIP
Segundo artigo - Parte 01

TCP/IP for not-so dummies

J. R. Smolka 

Conforme prometido... Este é o segundo artigo da série VoIP, onde vamos revisar as características gerais de funcionamento de redes TCP/IP. O nível da descrição será superficial, pero no mucho, e está confinada às características do TCP/IP que possuem headiness index[1]= (+5). As características do TCP/IP que foram incorporadas para atender a idéias que possuem headiness index menor que +5 vão ser objeto do próximo artigo desta série. 

Não conheço nenhum outro exemplo de tecnologia que tenha conseguido sobreviver, sem mudanças essenciais no seu projeto básico, a mais de vinte anos de crescimento exponencial no número de usuários. Pessoalmente, fico profundamente impressionado com a robustez e flexibilidade demonstradas pela arquitetura TCP/IP ao longo destes anos. E acredito que esta arquitetura realmente é capaz de atender às demandas dos mais variados tipos de aplicação sem que seja necessário alterar sua filosofia básica de funcionamento. 

Para quem queira uma referência definitiva sobre os conceitos que vamos falar neste artigo, recomendo o livro Internetworking with TCP/IP – volume 1, de Douglas Comer (apesar de antigo, ainda é imperdível). Para aprofundamento conceitual, baixe o redbook IBM TCP/IP Tutorial and Technical Overview[2]. Para os programadores de aplicação (especialmente no paradigma client-server), recomendo os volumes 2 e 3 do livro do Douglas Comer já mencionado. Quer mais? RTFR[3] no site do IETF[4]

TCP/IP e OSI-RM 

Quando queremos analisar o funcionamento de uma determinada arquitetura de rede baseada em comutação de pacotes, o melhor padrão de comparação ainda é o documento ISO[5] Open Systems Interconnection – Reference Model, conhecido simplesmente como OSI-RM. 

Cabe uma pequena discussão sobre as traduções deste título para o português. Geralmente encontra-se a tradução “interconexão de sistemas abertos”. IMNSHO[6], esta tradução induz a um raciocínio errado: que os sistemas (de comutação) devem ser abertos para poderem se comunicar. Creio que a tradução mais adequada para o espírito do documento seja: “interconexão aberta de sistemas”, para evidenciar que o objetivo é, apesar da heterogeneidade dos sistemas, podemos estabelecer um modo aberto de interconexão entre eles. 

Outro fato que costuma ser esquecido é que uma arquitetura de rede é pensada para garantir a comunicação entre aplicações, e não entre pessoas. As pessoas são usuárias das aplicações, e não interagem diretamente com as funcionalidades da arquitetura de comunicação. 

No OSI-RM, as funcionalidades críticas para garantir a interoperabilidade de aplicações em ambientes heterogêneos foram agrupadas em sete “camadas” (layers). O número sete não foi um consenso do comitê de trabalho, mas uma solução de compromisso entre propostas divergentes. 

A arquitetura TCP/IP também adota a filosofia de dividir as funcionalidades em camadas, mas: o número de camadas não é igual ao OSI-RM; embora existam camadas com o mesmo nome nos dois modelos, as funcionalidades não são rigorosamente equivalentes. 

Ainda assim, podemos fazer um paralelo funcional entre as camadas do OSI-RM e as camadas da arquitetura TCP/IP, como mostra a figura 1. À direita, são mencionados os principais protocolos utilizados em cada camada. 


Figura 1 – OSI-RM versus TCP/IP

Seguindo o velho e honrado método “Jack, o estripador”, vamos por partes... Uma camada de cada vez. Ao contrário do usual, vamos descer a pilha, e não subir. Porque? Simples. A camada física é apenas um meio de transporte de pacotes entre sistemas adjacentes. Embora cada tipo de camada física adotada imponha determinadas restrições ao tráfego dos pacotes, o modelo conceitual da comunicação é independente disso. Além disso, ficar fascinado demais pela camada física é uma postura com headiness index = (–5). 

Camada de aplicação 

A camada de aplicação, na arquitetura TCP/IP, desempenha as funções equivalentes às designadas para as camadas de aplicação e apresentação do OSI-RM. 

Cada protocolo deste nível define as primitivas necessárias para a interoperação de uma classe de aplicações (ex.: file transfer, e-mail, remote file system, etc.), e a implementação destas primitivas é de responsabilidade de cada programa de aplicação. 

Para encaminhamento dos pacotes, é necessário que o endereço IP (da camada internetwork) seja determinado desde aqui. Uma possibilidade para resolver este problema é colocar o endereço IP hard-coded na própria aplicação. Esta solução é muito comum em redes privadas de pequeno porte, mas é totalmente inviável para uma rede privada de grande porte, ou para a Internet. 

Nestes casos, as aplicações devem incluir a parte client, e o sistema deve ser configurado para conhecer o endereço IP do server (normalmente dois, primário e secundário) do serviço DNS (domain naming system), padronizado pelo IETF para a resolução de nomes de domínio (domain names) em endereços IP. Vale lembrar a distinção fundamental entre nomes e endereços: um nome é algo que diz quem você é, um endereço é algo que diz onde você está. 


[1] Ver a definição do headiness index no final do primeiro artigo desta série.
 
[2] www.redbooks.ibm.com/redbooks/pdfs/gg243376.pdf
 
[3] Read the f**king RFC
 
[4] www.ietf.org
 
[5] O significado da sigla que identifica a organização internacional de padronização, ISO vem do grego isos – igual, e, por extensão, padrão. Não significa international standards organization, como muitos pensam.
 
[6] In my not-so humble opinion.
 

[Próxima]


José de Ribamar Smolka Ramos (smolka@terra.com.br) é engenheiro eletricista (UFBa 1982), com especialização em gestão da qualidade (CETEAD/UFBa 1994) e MBA executivo (FGV RJ/Grupo Telefonica 2001). 
Trabalha na área de Informática desde 1980, tendo atuado em empresas das áreas financeira, industrial e serviços, estando desde 1989 na área de telecomunicações. Desde 1995 dedica-se ao projeto, implantação e gestão operacional de infra-estruturas corporativas de comunicação de dados e serviços baseadas na arquitetura TCP/IP, envolvendo infra-estrutura LAN e WAN, acesso remoto e interconexão de redes.
Principais áreas de interesse técnico: segurança da informação, engenharia de tráfego e garantia de QoS na arquitetura TCP/IP e gerência de redes.
Atualmente é especialista técnico da Telebahia Celular S/A (Vivo), e (desde 1993) é professor do curso de bacharelado em Informática da Universidade Católica do Salvador, nas cadeiras de Linguagens para Aplicações Comerciais e Introdução aos Sistemas de Computação.
Uma coleção de suas "mensagens-artigos" em grupos de debates está disponível em: http://www.wirelessbrasil.org/jose_smolka/js01.html.

Home WirelessBR                     Próxima