6LowPAN: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 9: Linha 9:
As redes '''IEEE 802.15.4''' definem quatro tipos de quadros: quadros ''beacon'', quadros de comando MAC,  quadros de reconhecimento e quadros de dados.  Os '''pacotes IPv6''' devem ser carregados por '''quadros de dados'''.  
As redes '''IEEE 802.15.4''' definem quatro tipos de quadros: quadros ''beacon'', quadros de comando MAC,  quadros de reconhecimento e quadros de dados.  Os '''pacotes IPv6''' devem ser carregados por '''quadros de dados'''.  


O tamanho máximo do '''quadro de dados''' numa rede '''IEEE 802.15.4''' é '''127 bytes''', com 25 bytes reservados para o cabeçalho e 21 bytes para o mecanismo de segurança da camada enlace. Sobram, portanto, 81 bytes para acomodar o '''datagrama IPv6'''. Isto traz alguns problemas: primeiro, o cabeçalho do IPv6 é 40 bytes; segundo, o IPv6 não faz fragmentação do datagrama, deixando isto para as estações finais. Para lidar com estes problemas, foi desenvolvido o '''6LowPAN''', o qual realiza três funções principais: Compactação do cabeçalho IPv6, suporte para fragmentação e remontagem do IPv6 e roteamento no nível da camada 2 (para topologias ''mesh''). Para isto, foram definidos três tipos de cabeçalhos, mostrados na figura.
O tamanho máximo do '''quadro de dados''' numa rede '''IEEE 802.15.4''' é '''127 bytes''', com 25 bytes reservados para o cabeçalho e 21 bytes para o mecanismo de segurança da camada enlace. Sobram, portanto, 81 bytes para acomodar o '''datagrama IPv6'''. Obviamente isto não dá para acomodar um pacote de tamanho mínimo IPv6 de 1280 octetos, e também, a questão da fragmentação e remontagem de pacotes IPv6 deve ser prevista para a camada inferior. Para lidar com esta limitação de espaço foi desenvolvido o '''6LowPAN''', o qual realiza três funções principais: Compactação do cabeçalho IPv6, suporte para fragmentação e remontagem do IPv6 e roteamento no nível da camada 2 (para topologias ''mesh''). Para isto, foram definidos três tipos de cabeçalhos, mostrados na figura.


[[Arquivo:6lowPAN-header-stack.png|700px]] <ref name=Rayes&Salam/> (p. 126)
[[Arquivo:6lowPAN-header-stack.png|700px]] <ref name=Rayes&Salam/> (p. 126)
Linha 15: Linha 15:
==Compactação do cabeçalho IPv6==
==Compactação do cabeçalho IPv6==


Como descreve <ref name=Ferrerira/>, o 6LoWPAN remove alguns campos nos cabeçalhos IPv6 e UDP por estes possuírem valores conhecidos, ou por seus valores poderem ser inferidos a partir de campos no cabeçalho IEEE802.15.4. No cabeçalho IPv6, o campo é sempre versão 6 para IPv6, os campos ''Traffic Class'' e o ''Flow Label'' nunca são usados e o campo de comprimento ''Lenght'' é sempre igual ao comprimento do campo IEEE802.15.4 menos o comprimento do cabeçalho IPv6. Todos esses campos podem, portanto, serem removidos. O cabeçalho ''Next-Header'' tipicamente aponta para UDP (ou TCP), e assim campo de 8 bits pode ser substituído por um campo de 2 bits, como parte do campo HC1 do cabeçalho 6LoWPAN. Finalmente, os endereços IPv6 de 128 bits podem ser recuperados a partir de endereços MAC de 64 bits, como os campos de origem e destino do IEEE 802.15.4. Isso permite a remoção dos campos de endereço de destino e de origem IPv6. No final, apenas o campo de limite de saltos (''Hop Limit'') tem de estar presente no cabeçalho 6LoWPAN e, do mesmo modo para o UDP, o comprimento pode ser calculado a partir do campo de comprimento do IEEE
Como descreve <ref name=Ferrerira/>, o '''6LoWPAN''' remove alguns campos nos cabeçalhos '''IPv6''' e '''UDP''' por estes possuírem valores conhecidos ou por seus valores poderem ser inferidos a partir de campos no cabeçalho IEEE802.15.4. No cabeçalho IPv6, a versão é sempre 6, os campos ''Traffic Class'' e ''Flow Label'' não são usados e o comprimento ''Lenght'' é igual ao comprimento do campo IEEE802.15.4 menos tamanho do cabeçalho IPv6. Todos esses campos podem, portanto, serem removidos. O cabeçalho ''Next-Header'' tipicamente aponta para UDP (ou TCP), e assim campo de 8 bits pode ser substituído por um campo de 2 bits, como parte do campo HC1 do cabeçalho 6LoWPAN. Finalmente, os endereços IPv6 de 128 bits podem ser recuperados a partir de endereços MAC de 64 bits, como os campos de origem e destino do IEEE 802.15.4. Isso permite a remoção dos campos de endereço de destino e de origem IPv6. No final, apenas o campo de limite de saltos (''Hop Limit'') tem de estar presente no cabeçalho 6LoWPAN e, do mesmo modo para o UDP, o comprimento pode ser calculado a partir do campo de comprimento do IEEE 802.15.4. Nos casos mais comuns de utilização das redes de sensores, apenas um número limitado de portas é utilizado, de modo que quatro bits são suficientes para descrevê-las, em vez de 8 bits.  
802.15.4. Nos casos mais comuns de utilização das redes de sensores, apenas um número limitado de portas é utilizado, de modo que quatro bits são suficientes para descrevê-las, em vez de 8 bits.  





Edição das 12h46min de 14 de maio de 2020

6LowPAN

Referências: [1] (p. 125), [2], [3]

Adapta a camada rede da Internet, no caso o IPv6, para as limitações de tamanho do quadro impostas pelas redes LLN (low-power and lossy networks), em particular para enlaces IEEE 802.15.4.

As LLN são tecnologias de enlace desenvolvidas para dispositivos com limitações de processamento, memória e energia. Outros exemplos de tecnologias LLN são Bluetooth, PLC (power-line communication), Low Power WiFi etc.

As redes IEEE 802.15.4 definem quatro tipos de quadros: quadros beacon, quadros de comando MAC, quadros de reconhecimento e quadros de dados. Os pacotes IPv6 devem ser carregados por quadros de dados.

O tamanho máximo do quadro de dados numa rede IEEE 802.15.4 é 127 bytes, com 25 bytes reservados para o cabeçalho e 21 bytes para o mecanismo de segurança da camada enlace. Sobram, portanto, 81 bytes para acomodar o datagrama IPv6. Obviamente isto não dá para acomodar um pacote de tamanho mínimo IPv6 de 1280 octetos, e também, a questão da fragmentação e remontagem de pacotes IPv6 deve ser prevista para a camada inferior. Para lidar com esta limitação de espaço foi desenvolvido o 6LowPAN, o qual realiza três funções principais: Compactação do cabeçalho IPv6, suporte para fragmentação e remontagem do IPv6 e roteamento no nível da camada 2 (para topologias mesh). Para isto, foram definidos três tipos de cabeçalhos, mostrados na figura.

[1] (p. 126)

Compactação do cabeçalho IPv6

Como descreve [2], o 6LoWPAN remove alguns campos nos cabeçalhos IPv6 e UDP por estes possuírem valores conhecidos ou por seus valores poderem ser inferidos a partir de campos no cabeçalho IEEE802.15.4. No cabeçalho IPv6, a versão é sempre 6, os campos Traffic Class e Flow Label não são usados e o comprimento Lenght é igual ao comprimento do campo IEEE802.15.4 menos tamanho do cabeçalho IPv6. Todos esses campos podem, portanto, serem removidos. O cabeçalho Next-Header tipicamente aponta para UDP (ou TCP), e assim campo de 8 bits pode ser substituído por um campo de 2 bits, como parte do campo HC1 do cabeçalho 6LoWPAN. Finalmente, os endereços IPv6 de 128 bits podem ser recuperados a partir de endereços MAC de 64 bits, como os campos de origem e destino do IEEE 802.15.4. Isso permite a remoção dos campos de endereço de destino e de origem IPv6. No final, apenas o campo de limite de saltos (Hop Limit) tem de estar presente no cabeçalho 6LoWPAN e, do mesmo modo para o UDP, o comprimento pode ser calculado a partir do campo de comprimento do IEEE 802.15.4. Nos casos mais comuns de utilização das redes de sensores, apenas um número limitado de portas é utilizado, de modo que quatro bits são suficientes para descrevê-las, em vez de 8 bits.


Referências

  1. 1,0 1,1 Ammar Rayes & Samer Salam. Internet of Things From Hype to Reality: The Road to Digitization, Springer, 2019.
  2. 2,0 2,1 Miguel, Márcio Luiz Ferreira. Arquitetura SDN para redes de sensores sem fio 6LOWPAN /, Tese (doutorado) - Pontifícia Universidade Católica do Paraná, Curitiba, 2018.
  3. https://www.rfc-editor.org/rfc/rfc4944.txt