Comitê Gestor da Internet no Brasil Seu IP: 38.107.191.116 CGI.br Registro CERT.br

Sítio web não compatível com IPv6 Este sítio web funciona com IPv6. Se o globo estiver girando, você também já usa IPv6!


Últimas Atualizações...

25 May 2010 - 18:40:
Relato sobre o Treinamento IPv6 do RIPE

11 Jan 2010 - 17:49:
Introdução ao IPv6 para o CCNA

11 Dec 2009 - 11:14:
Videos sobre cases IPv6 fora do Brasil

09 Jun 2009 - 18:59:
Curso de Introdução ao IPv6

30 Apr 2009 - 17:58:
Construindo um firewall Linux com suporte a IPv6



Artigo

Migração para IPv6 de aplicações usuárias da interface de programação Sockets BSD


Escrito por Elvis Pfützenreuter


  

Índice do Artigo

  

Migração para IPv6 de aplicações usuárias da interface de programação Sockets BSD
Introdução
IPv6: principais mudanças em relação a IPv4
Convivência entre IPv4 e IPv6
Usos práticos do IPv6, hoje
Interface Sockets BSD para programação em IPv6
A interface /proc do Linux
Exemplos de código Sockets BSD para IPv6
Conclusão
Bibliografia


Introdução

O objetivo deste trabalho é demonstrar o uso da interface de programação Sockets BSD com o protocolo de rede IPv6, bem como as implicações da conversão de programas usuários desta interface para IPv6. A interface de programação de aplicações Sockets BSD é o padrão de fato no acesso a recursos de rede. Essa interface foi desenvolvida na universidade de Berkeley como parte da implementação-modelo do TCP/IP para Unix.

A interface prevê a fácil inclusão de suporte a novos protocolos. Isso afeta ligeiramente a curva de aprendizado da interface, mas a longo prazo a extensibilidade revelou-se crucial para o sucesso do Sockets BSD e do próprio Unix. Os Sockets fazem parte da especificação POSIX, que todos as implementações Unix relevantes seguem; e todos os protocolos de rede suportados pelo sistema operacional subjacente são acessíveis via Sockets, seja IPX, Appletalk, NetBEUI, OSI, IP ou IPv6.

Outros sistemas operacionais não-Unix imitam em maior ou menor grau a interface Sockets BSD, por ser simples, eficiente, familiar aos desenvolvedores, e poupar o trabalho de criar-se uma nova interface. Um exemplo notório é o PalmOS, que oferece compatibilidade limitada do código-fonte C. O desenvolvedor pode testar os módulos de networking num computador de uso geral e depois recompilá-lo para Palm com pouca ou nenhuma modificação (RHODES, 1999).

Ao migrar um programa qualquer de um protocolo de rede para outro, por exemplo de TCP/IP para IPX, pouca coisa muda no código-fonte. Esse é o objetivo do Sockets BSD. Mas, não basta ao desenvolvedor conhecer duas ou três macros IPX_* para usar o protocolo IPX; ele deve conhecer o novo protocolo um pouco mais profundamente para usá-lo de forma adequada. Afinal, tem de existir uma infra-estrutura de rede IPX funcional para que os soquetes sejam úteis.

O mesmo acontece com o IPv6. É fácil migrar um programa IPv4 para IPv6, conforme será demonstrado neste trabalho. Porém, é necessário saber algo mais sobre as mudanças de protocolo interagem com os programas:

- Os programas poderiam continuar usando o protocolo IPv4 ? Ao mesmo tempo que IPv6?
- Um programa IPv6 pode comunicar-se com um servidor IPv4 ? Se sim, como fazer isso ?
- Um programa oferece determinado serviço à rede. Esse serviço ainda faz sentido em IPv6?
- Como um programa que se utiliza de um serviço IPv4 não mais existente em IPv6 (e.g. broadcast) poderia ainda ser utilizado ?

Para atingir o objetivo de responder tais perguntas, este trabalho aborda alguns aspectos do protocolo IPv6 em si, que apesar de estarem muito bem documentados em diversos livros e trabalhos, por vezes se utilizam de linguagem hermética e/ou abordam aspectos muito específicos do protocolo. Além disso, a suprema maioria desses materiais não aborda programação em Sockets BSD.

Após trazer informação suficiente sobre IPv6 para o interesse deste trabalho, aborda-se o desenvolvimento de programas em si, sempre tentando dar um enfoque prático, utilizando código real, prontamente utilizável e demonstrável.

O sistema operacional de referência para o estudo é o Linux, por ser o mais familiar ao autor. De qualquer forma, os exemplos devem ser 100% compatíveis com outros sistemas que seguem o padrão POSIX.

A interface de rede do Microsoft Windows difere consideravelmente do Sockets BSD (embora imite-a claramente em alguns aspectos), portanto infelizmente nada será falado sobre programação IPv6 para Windows. O produto CygWin, que permite rodar programas POSIX sob Windows, promete implementar suporte a IPv6 num futuro próximo.


Última atualização 18/09/2008 16h04

Comentários     +  

Seu nome: (max. 35 letras)


Comentário: (max. 2500 caracteres)


Verificação: (se estiver ilegível, clique na imagem)


   


   Licença:  Creative Commons Atribuição 2.5 Brasil (salvo seja especificada outra)     Válido:  XHTML 1.0 -  CSS 3