NESNELERİN İNTERNETİ VE 6LoWPAN TEKNOLOJİSİ

👤SERDAR ARSLAN Teknoloji ve Arge Merkezi ELEKTROMED ELEKTRONİK SANAYİ VE SAĞLIK HIZMETLERİ

Şekil 1. Nesnelerin İnterneti.🔍 Çevremizdeki birçok elektronik cihaz, teknoloji alanındaki gelişmelerle beraber internet bağlantısına sahip olmuştur. Bu cihazların birçoğu pille beslenmekte ve yıllar boyu bu pil değiştirilmeden çalışması beklenmektedir. Wifi, Ethernet, GPRS gibi cihazların internete bağlanmasını sağlayan haberleşme modüllerini pilli cihazlarda kullanmak mümkün olmamaktadır. 6LoWPAN teknolojisi, pille çalışan cihazların internete bağlanmasını sağlayan yeni bir teknolojidir.
1 GİRİŞ
Internet, dünya genelindeki milyarlarca bilgisayarın birbirine bağlanmasıyla oluşan iletişim ağının genel adıdır. İlk etapta bilgisayarların birbirine bağlanmasıyla oluşan internet ağı, sonraları gömülü sistem sınıfına giren cep telefonu, tablet, araç takip, ev otomasyon, elektrik-gaz-su-ısı sayaçları gibi elektronik cihazlarında katılımıyla daha da genişlemiştir. Bilgisayar dışında kalan internete bağlanan bu cihazlara nesne denmektedir. Bu cihazların oluşturduğu internet ağı da nesnelerin interneti olarak tanımlanmaktadır.Şekil 2. IEEE 802.15.4 frekans bantları.🔍

Nesneler; sıcaklık, nem, ışık, lokasyon, vb. ortam verilerini ölçmek amacıyla üzerlerinde çeşitli sensörler bulunan, küçük ebatta, ucuz, pille veya elektriğe bağlı olarak (ortalama akım tüketimi 10uA), düşük frekansta çalışan (ortalama 20Mhz), düşük ram-flash (ortalama 32kb flash, 8kb Ram) olan, 8-16-32 bitlik işlemciye sahip gömülü sistemler sınıfına giren cihazlardır. Elektronik cihazların fiziksel boyutları, donanım teknolojisinin gelişmesiyle küçülmekte, işlemci hızı ve flash-bellek kapasiteleri artmakta, buna karşılık fiyatları ucuzlamakta, güç tüketimleri azalmaktadır. Böylelikle internete ağına bağlanan cihaz sayısı üssel biçimde artmaktadır. 2020 yılına gelindiğinde internete bağlanan cihaz sayısının 50 milyar civarında olması öngörülmektedir.

Bilgisayarlar arasında dosya aktarımı vb. temel işlemler yapmak amacıyla oluşturulan internet ağı; online bankacılık, sosyal paylaşım, vb gibi önceden öngörülmeyen uygulamaları da beraberinde getirmiştir. Nesnelerin interneti ise sıcaklık, nem, konum, vb. temel bilgilerin toplanması amacıyla oluşturulmuştur. İlerde bu bilgileri kullanan şu anda öngörülemeyen yeni yaratıcı uygulamalar karşımıza çıkacak ve yaşantımızı daha kolay hale getirecektir.

Şekil 3. Star, Tree, Mesh ağ topolojileri.🔍2 NESNELERİN İNTERNETE BAĞLANMASI İÇİN TEKNİK GEREKSİNİMLER
2.1 GATEWAY KULLANIMI VE İNTERNETE BAĞLANAN
CIHAZLARIN ORTAK PROTOKOLLERLE ÇALIŞMASI
Bir cihazın internete bağlanması için internetin temel protokolü olan Tcp-Ip stackini çalıştırması gerekir. Ethernet, wifi, GPRS vb. arabirim kartları üzerlerinde Tcp-Ip stackini çalıştırmaktadır ve bağlandığı cihaza internete bağlanma olanağı sunmaktadır. Fakat bu kartlar maliyetli ve yüksek güç tüketimine sahiptir. Dolayısıyla pille çalışan cihazlar için bu kartların kullanımı olanaklı değildir. Bu zorluğu aşmak amacıyla birden fazla cihaz kendi aralarında kablolu veya kablosuz bir ağ oluşturur ve üzerinde bu arabirim kartlarından bulunan, elektriğe bağlı olarak çalışan bir gateway’e verilerini iletir. Gateway ise cihazlardan toplanan bu verileri internete iletir. Kablosuz ağlara örnek olarak IEEE 802.15.4 PHY Mac katmanlarını kullanan zigbee, kablolu ağlara örnek olarak ise RS485, Mbus verilebilir.
Gateway kullanımı, sistem maliyetini düşürmekte ve pille çalışan, üzerinde Tcp-Ip stack çalıştırmak için donanımsal kapasitesi yeterli olmayan cihazların internete bağlanmasını sağlamaktadır. Fakat, internete çıkış işlemi için gateway kullanımının dezavantajları da vardır. Cihaz ve internet üzerindeki bağlandığı bilgisayar, birbiriyle direkt haberleşme sağlayamamaktadır. Gateway üzerinde bir haberleşme protokolü çalışır ve bu protokol standart olmayıp gateway üreticisinden üreticisine değişmektedir. İnternet üzerinden cihaz ile haberleşmek isteyen bir bilgisayar veya internete veri yollamak isteyen bir sensör, gateway’in haberleşme protolünü bilmek zorundadır. Örneğin internet üzerinden bir cihaza ping atamazsınız, Tcp veya Udp soket açamazsınız. Soketi gateway üzerinden açıp, gateway’in kendi haberleşme protokolüne uygun olarak haberleşerek cihaza verileri iletebilirsiniz. Bu şekilde her gateway kendine uyumlu cihazlar ve internet üzerindeki sunucularla uygun Şekil 4. Star ağ topolojisi.🔍çalışmaktadır.

Örneğin uzaktan sayaç okuma projelerinde kullanılan gatewayler sayaçları zigbee veya RS485 üzerinden okumakta ve üreticinin kendi hazırladığı sunuculara verilerine iletilmektedir. Fakat farklı üreticilere ait markalardaki sayaç, gateway ve sunucular birbiri ile haberleşme yapamamaktadır. Kendi sunucularını kullanmak isteyen enerji dağıtım şirketleri, değişik markalardaki gatewayler’in haberleşme protokollerine uygun yazılım entegrasyonu gerçekleştirmek zorunda kalmaktadır. Bu da hem sayaç üreticileri hemde dağıtım şirketleri için maliyeti artırmakta ve zaman kaybına sebep olmaktadır.

Ortak çalışma, ancak transparan modda çalışan bir gateway ile mümkündür. Transparan modda çalışan bir gateway, Ip paketlerini cihazların oluşturduğu sensör ağının fiziksel yapısını kullanarak iletebilmelidir. Yani Ip paketlerini ethernet üzerinden değil Rs485, mbus, IEEE 802.15.4 fiziksel ağı üzerinden iletebilmelidir. Bu işlem “IP-over-X” olarak bilinmektedir. Yani Ip paketlerinin değişik fiziksel ağlarda iletilmesini ifade etmektedir.
Şekil 5. Mesh ağ topolojisi.🔍2.2 IPv6 PROTOKOLÜNÜN KULLANIMI
İnternete bağlanan cihaz sayısının 2020 yılında 50 milyar adete ulaşacağını düşünürsek ilerde 50 milyar adet IP adresine ihtiyacımız olacağını söyleyebiliriz. Fakat şu anda internetin belkemiğini oluşturan Ipv4 protokolü ile bu kadar fazla sayıda cihazın haberleşmesini sağlamak mümkün değildir. Çünkü Ipv4, IP adresleri için 4 byte alan kullanmaktadır ve bu 4 byte ile en fazla 4.3 milyar tekil IP tanımlanabilmektedir (her kişiye birden az IP düşmekte). Ipv6 ise IP adresleri için 16 byte alan kullanmakta ve 3.4 x 10^38 adet tekil IP tanımlanabilmektedir (her kişiye 4x10^28 adres düşmektedir). Bu sebepten dolayı nesnelerin interneti için IPv4 yerine Ipv6 protokolünün kullanımı zorunludur.  Ipv4’te adresler 4 bytedan oluşur, ve x.y.z.t (192.168.2.1) formundadır. Ondalık tabanda ifade edilir. IPv6’da adresler 16 byte’tan oluşur ve onaltılık tabanda temsil edilir. X:X:X:X:X:X:X:X formundadır. Bu gösterimde her X 2 byte uzunluğundadır. Örneğin 2020:CA28:0000:0000:0023:0222:0000:2900 gibi adresler uzun olduğu için yazarken kısaltma yöntemleri belirlenmiştir. Örneğin birden fazla sıfır yanyana bulunuyorsa tek sıfırla ifade edilebilir veya hiç sıfır konmayabilir. Bu şekilde yukarıkaki adres şu şekilde ifade edilebilir. 2020:CA28::23:222:0:29. ::1 adresi loopback adresi olarak kullanılır ve IPv4’teki (127.0.0.1) adresine tekabül eder. Yerel Unicast adresleri FE80:0:0:0 ile başlar ve interface id ile devam eder. Tüm dünya üzerinde Ipv6’ya geçiş işlemi devam etmektedir. Fakat bu geçiş işlemi istenen hızda gitmemektedir. Ipv4, özel ağlardaki bilgisayarların internette çıkışı için tek global IP kullamına izin veren NAT (Network Address Translation) uygulaması sayesinde Ipv6 geçiş sürecini yavaşlatmıştır.Şekil 7. 6LoWPAN sistem mimarisi.🔍

3 IEEE 802.15.4 STANDARDI
Bu standart IEEE 802.15 çalışma grubu tarafından oluşturulmuştur ve düşük güç tüketimli (genelde pille çalışan), düşük maliyetli, düşük veri hızlı, kablosuz ağların fiziksel ve Mac katmanlarını tanımlar. Zigbee, WirelessHart ve 6LoWPAN, fiziksel ve Mac katmanlarında bu standartı kullanmaktadır. Standart 2003 yılında oluşturulmuş 2006 yılında güncellenmiştir.
3.1 IEEE 802.15.4 STANDARDININ GENEL
TEKNİK ÖZELLİKLERİ
Bir ağda en fazla 65,535 adet cihaz bulunabilir.
Ağın kurulumu basit ve maliyeti ucuzdur.
Ağdaki cihazların fiziksel yerleri sürekli değişebilir, ağa yeni cihazlar kolayca eklenebilir, ekli cihazlar ağdan ayrılabilir. Ağ bu durumu onarabilir.
127 byte max paket büyüklüğüne sahiptir.
Mesh, Star ve Peer to Peer ağ topolojilerini destekler.
Güvenli paket iletimini sağlamak amacıyla CSMA-CA (Carrier Sense Muptiple Acces-Collision Avoidance) tekniğini kullanır. Nodelar paketi transmit etmeden önce fiziksel kanalda önce dinleme yapar, kanal boşsa paketi gönderir. Eğer o anda kanalda başka bir haberleşme başlayıp çakışma olursa, her iki taraf random bir süre bekler paketi daha sonra gönderir.
Her gönderilen pakete karşılık alıcı tarafından gönderene ACK  paketi yollanır. Gönderen ACK paketini alamazsa paket tekrar  yollanır.
Gönderilen her paketin sonuna CRC byteları eklenir. Alıcı node  gelen paketten CRC’yi tekrar hesaplar ve hesapladığı CRC gelen  CRC ile farklı ise gelen paketi discard eder.
Gönderilen paketler AES 128 ile şifrelenir.
64 bit IEEE (cihaz üreticisi tarafından tanımlanır) ve 16 bit (koordinatör tarafından atanır) kısa adres yapısını kullanır.

Şekil 8. Ipv6 paket yapısı.🔍3.2 KULLANILAN FREKANS BANDI
Lisans gerektirmeyen 3 temel frekans bandı tanımlanmıştır.
2,4 GHz: 16 kanal, 250 kbps (tüm dünyada geçerli)
868.3 MHz: 1 kanal, 20 kbps (Avrupa’da geçerli)
902-928 MHz: 10 kanal, 40 kbps (Amerika’da uygun)

868Mhz ve 915Mhz frekans bandlarında daha az yabancı cihaz vardır dolayısıyla interference azdır. Absorption ve reflection azdır ve daha uzak mesafeye veri iletilebilir. 2,4 Ghz Bandı Dünya genelinde kullanılan unlicensed bir banddır. Düşük güç tüketimlidir(Veri hızı yüksek olduğundan veri iletimi kısa sürmektedir.)Şekil 9. 6LoWPAN paket fragmentasyonu.🔍
3.3 CIHAZ ÇEŞIDI
RFD (Reduced Function Device) ve FFD (Full Function Device) olarak 2 temel cihaz çeşidi tanımlanmıştır.
FFD (Full Function Device): Paketleri yönlendirebilir. Ağı genişletmek amacıyla da kullanılır. Her zaman aktiftir. Elektriğe bağlı olmalıdır. Güç tüketimi fazladır. Hem FFD hemde RFD cihazlarıyla konuşabilir.
RFD (Reduced Function Device): Sadece FFD cihazlarıyla konuşabilir. RFD cihazları kendi aralarında haberleşemez. FFD cihazlarına göre daha ucuzdur ve donanımsal olarak basittir. Çoğu zaman uyku modundadır. Genelde pille çalışan cihazlardır. Güç tüketimleri düşüktür.

3.4 IEEE 802.15.4 AĞLARININ KURULUMU
VE YÖNETİLMESİ
IEEE 802.15.4 ağlarında bir adet koordinatör cihaz bulunur. Ağın kurulması görevini koordinatör başlatır. Koordinatör, öncelikle frekans bantlarını dinleyerek boş bir frekans kanalı bulur. Daha sonra ağa bir PAN ID atar. Daha sonra diğer FFD veya RFD cihazları koordinatör vasıtasıyla ağa dahil olur. Yeni cihazların ağa dahil edilip edilmeyeceği kararını koordinatör verir. Diğer FFD veya RFD cihazları ağdaki FFD cihazları vasıtasıyla ağa dahil edilebilir. RFD cihazları diğer cihazları ağa dahil edemez. Bu şekilde diğer cihazların eklenmesiyle ağ gitgide büyür.

Birbirleri ile haberleşmek için aralarında mesafe bulunan 2 cihaz, aradaki yönlerdirme fonksiyonuna sahip FFD cihazları sayesinde birbiri ile haberleşebilir. FFD cihazları, paketleri yönlendirebilmek için hafızalarında yönlendirme tabloları tutarlar.

Ağ kendini tamir edebilme yetkinliğine sahiptir. Yani cihazların yerleri değiştiğinde veya yönlendirme işlemi yapan FFD’lerden bazıları kullanılmaz durumda olduğunda yönlendirme tabloları tekrar oluşturulur.

Şekil 10. 6LoWPAN OSI model.🔍Ağa yeni eklenen cihaz ile cihazın eklendiği FFD cihazı arasında parent-child ilişkisi vardır. Örneğin koordinatör parent, koordinatöre ekli olan FFD veya RFD cihazları child konumundadır.

PAN ID’ler, her ağ için tekil olmalıdır. Aynı fiziksel ortamda aynı PAN ID’li iki IEEE 802.15.4 ağı bulunursa, ağların koordinatörleri bu PAN ID çakışmalarını tespit ederek, PAN ID lerini biribirlerinden farklı olacak şekilde değiştirirler.

3.5 AĞ TOPOLOJİSİ
Mesh, Star, Peer to Peer ağ topolojilerini destekler.


3.6 ÇALIŞMA MODLARI
Ağ, Beacon Enabled mode ve Non-beacon Enabled mode olarak 2 modda çalışabilir.

3.6.1 BEACON ENABLED MODE
Bu modda koordinatör periyodik olarak beacon adı verilen paketler yollar. 2 beacon arasındaki süre, aktif ve inaktif periyod olarak 2 parçaya ayrılır. 2 beacon arasındaki toplam yapı, superframe olarak adlandırılır. Aktif periyod beacon, CAP (Contention Aktive Period) ve CFP (Contention Free Period) olarak 3 kısımdan oluşur. İnaktive period cihazların güç tüketimini azaltmak amacıyla oluşturulmuştur.
İnactive period da RFD ve FFD cihazları enerji tüketimini azaltmak için uyku modunda kalabilirler.Şekil 11. 6LoWPAN ağ çeşitleri.🔍

Cihazlar, haberleşmek için CAP’da CSMA-CA algoritmasını kullanır. CFP period aynı zamanda GTS (Quaranted Time Slots) olarak da adlandırılır ve bu perioddaki slotlar belirli cihazlara tanmıştır. O cihaz dışındaki cihazlar tarafından kullanılmaz. Superframe yapısı SO ve BO olarak 2 parametre ile tanımlanır. 2 parametrede 0 ile 14 arasında değer alabilmektedir. BO Beacon Interval(BI) olarakta adlandırılan superframe duration ı hesaplamak için kullanılır. SO ise Active duration ı hesaplamak için kullanılır(BI = Superframe Duration – SD). BO ve SO aynı zamanda duty cycle ı hesaplamak amacıylada kullanılır.

BI = aBaseSuperframeDuration x 2^BO
SD = aBaseSuperframeDuration x 2^SO
Duty Cycle = 2^(SO-BO)

Şekil 12. RPL ağı.🔍3.6.2 NON-BEACON ENABLED MODE
Koordinatör, bu modda beacon yollamaz. Cihazlar arasındaki haberleşme asenkron olarak gerçekleşir. Haberleşme için CSMA-CA algoritması kullanılır.

4 6LoWPAN (IPv6 over LOW POWER LOSSY  NETWORKS)
6LoWPAN (IPv6 over Low Power WPAN), IETF (Internet Engineering Task Force) tarafından RFC-4944 dokümanıyla tanımlanan açık bir standarttır ve Ipv6 paketlerinin düşük güçlü kablosuz ağlarda iletilmesini amaçlamayan açık bir protokoldür. 6LoWPAN transparan modda çalışan gateway yardımı ile cihazların direkt olarak internete bağlanmasını sağlamaktadır. 6LoWPAN Ipv6’yı desteklemektedir ve ağdaki her cihaz tekil Ipv6 adresine sahiptir. Tüm cihazlara internet üzerinden ping atabilir, Tcp-Udp soket açabilirsiniz.

4.1 6LoWPAN SİSTEM MİMARİSİ
Şekil 7’de mavi renkli alan 6LoWPAN kablosuz ağını göstermektedir. Ağdaki cihazların internete çıkış işlemi, 6LoWPAN edge (border) router vasıtasıyla olmaktadır. Gateway’in görevi Ip paketlerini IEEE 802.15.4 ağının paket yapısına uyumlu hale getirmektir. Edge Router transparan olarak çalışmaktadır. 6LoWPAN cihazı ile internet üzerindeki bilgisayarlar direkt olarak birbiri ile haberleşme yapabilmektedir.
4.2 6LoWPAN ADAPTATION LAYER
6LoWPAN; fiziksel katman olarak Power line communication (PLC), Bluetooth, düşük güçlü wifi ağları, IEEE 802.15.4 (Low Power Personal Area Network-LOWPAN) altyapısını
kullanabilmektedir.

Bu fiziksel ortamlar, elektriksel olarak gürültülüdür ve paket hata oranları yüksektir. Ipv6 paketlerinin bu ortamlar üzerinden iletilmesi kolay değildir. Ipv6 default minimum MTU size’ı, 1280 byte’tır. Fakat IEEE 802.15.4 ağlarında max paket boyu 128 byte’tır. 40 byte olan Ipv6 header ı bile 128 byte’ın büyük çoğunluğunu kaplamaktadır ve fiziksel layerdaki bant genişliğini gereksiz yere harcamaktadır. 6LoWPAN tarafından getirilen adaptation layer bu zorlukları gidermek amacındadır.

6LoWPAN çalışma grubu, Low Power WPAN’ları internete bağlamak için büyük efor sarfetmiş ve 6LoWPAN adıyla anılan bir layer tanımlamıştır. 6LoWPAN Ipv6 paketlerini IEEE 802.15.4 fiziksel katmanını üzerinden taşımak için data link ve network katmanı arasında bir adaptation layer kullanır.

Adaptation layer header compression, Ip fragmentation, katman-2 yönlendirme görevlerini yerine getirmektedir.


4.3 6LoWPAN AĞ ÇEŞİTLERİ
6LoWPAN ağları 3 çeşittir.
1- Simple Lowpan: Edge Router ile internete çıkışı vardır.
2- Extended Lowpan: Ağda birden fazla Edge router vardır.
3- Ad-Hoc Lowpan: Ağın internete çıkışı yoktur.

4.4 IETF RPL (IPv6 ROUTINGTablo-1 Farklı BO ve Frekans Değerlerine Göre BI ve Superframe Duration Değerleri 🔍
PROTOCOL FOR LOW-POWER AND LOSSY NETWORKS)
RPL, bir yönlendirme protokolüdür. RFC6550’de tanımlıdır. RPL, low power and lossy wireless networks’ler için tasarlanmıştır ve IEEE 802.15.4 PHY-MAC katmanının üzerinde çalışabilir. Routing katmanı, birbiri ile direkt olarak haberleşecek mesafede olmayan 2 node arasındaki haberleşmenin, aradaki diğer nodeların paketleri repeat etmesiyle gerçekleştirir. Node’ler hedef node’ya paketi iletmek için routing tabloları tutarlar.
RPL ağları, DIO (Destination-oriented directed acyclic graph Information Object) ve DAO (Destination Advertisement Object) mesajları kullanılarak oluşturulur. 6LoWPAN ağ oluşumu, root node’nin DIO mesajı yayınlaması ile başlar. Root node DIO mesajı yayınlarak kendisinin root olduğunu ilan eder. DIO mesajını duyan diğer nodelar, DIO mesajını tekrar yayınlar. Bu şekilde DIO mesajları tüm ağ boyunca iletilmiş olur ve ağdaki tüm cihazlar root node’nin yayınladığı DIO mesajını almış olur. DIO mesajları mesh ağ hakında önemli ilgiler içerir (root’un adresi id’si, ağ versiyon numarası, ağ tarafından kullanılan metric bilgisi gibi).
Ağdaki cihazlar, root’a ulaşmak için birden fazla yola sahipse metric değeri yüşük olan yolu tercih ederler. Oluşan ağ haritasına Destination Oriented Directed Acyclic Graph (DODAG) adı verilir.  RPL ağlarında veri treede aşağı veya yukarı yönlü yollanabilir. Yukarı yönlü göndermek için nodelar kendi parent ını bilmelidir. Tree de aşağı yönlü gönderebilmek için ise tüm node lar kendisinden aşağıda bulunan tüm node’ları bilmelidir. Parent routelar DIO mesajları, child routelar ise DAO mesajları ile oluşturulur.

Node’ler 3 çeşit modda çalışabilir.
Mesh node: Ağdaki diğer node’lere veri iletebilir ve ağdaki diğer node’ler tarafından erişilebilir.
Feather node: Ağdaki diğer node’lere veri iletebilir. Fakat ağdaki
diğer node’ler tarafından erişilemez.
Leaf node: Diğer node’lerin paketlerini route etmez, fakat ağdaki
diğer node’ler tarafından erişilebilir.

REFERANSLAR
1. https://github.com/cetic/6lbr/wiki
2. http://www.contiki-os.org/
3. http://beagleboard.org/BLACK
4. http://processors.wiki.ti.com/index.php/Contiki-6LOWPAN
5. http://www.ti.com/product/cc2650
6. http://www.ti.com/product/cc2538
7. http://www.ti.com/tool/cc2531emk
8. http://www.wrapsix.org/
9. https://en.wikipedia.org/wiki/Internet
10. http://www.ti.com/lit/wp/swry013/swry013.pdf
11. https://tr.wikipedia.org/wiki/IPv6
12. https://tr.wikipedia.org/wiki/Nesnelerin_İnterneti
13. https://en.wikipedia.org/wiki/IEEE_802.15.4
14. http://www.ni.com/wsn/
15. http://mqtt.org/
16. https://e2e.ti.com/support/wireless_connectivity/f/158
17. https://quickstart.internetofthings.ibmcloud.com/