Access’den PostgreSQL’e Tablo Aktarma
Bu yazıda, excel ve python aracılığıyla Access DB’deki, bir tablonun postgresql’e aktarılması anlatılmaktadır.
DAG (Directed Acyclic Graph-Yönlendirilmiş Asiklik Grafik): Yönlendirilmiş asiklik grafik. Kapalı bir döngü oluşturmayacak şekilde n adet düğümün birbirine yönlendirilmesidir. Örnek bir DAG Şekil 2.5’te gösterilmiştir.
DAG Kökü (DAG Root): DAG’daki düğümlerin hedefidir. Bir diğer düğüme gitmez. Şekil 2.5’deki örnekte “E” düğümü DAG köküdür.
DODAG (Destination Oriented DAG-Hedefe Yönlendirilmiş DAG): Her düğümün tek bir hedefe ulaşmak istediği özel bir çeşit DAG türüdür. DODAG ve diğer tanımlar Şekil 2.6’da görülmektedir.
DODAG Kökü (DODAG Root): Oluşan her bir DODAG’ın düğümlerinin bağlandığı köktür.
Sanal DODAG kökü: Bir Sanal DODAG kökü, iki veya daha fazla RPL yönlendiricinin sonucudur, Örneğin, 6LoWPAN Sınır Yönlendiricileri (routers), düşük güçlü ve kayıplı ağlarda DODAG durumunu senkronize etmek ve tek bir DODAG kökü gibi (birden çok arayüzle) birlikte hareket etmek için koordinasyon kurarlar.
Yukarı: Köke doğru yönlendirilen herhangi bir kenardır.
Aşağı: Kökten uzağa yönlendirilen herhangi bir kenardır.
Rank:Bir düğümün DODAG köküne olan uzaklığıdır. Rank aşağı doğru artar ve yukarı yönlü düşer. Rank, DODAG’ın Hedef Fonksiyonuna bağlı olarak hesaplanır.
Hedef Fonksiyonu: Bir düğümün köke ne kadar uzaklıkta olduğunu belirleyen fonksiyondur. Burada uzaklık kavramı programcı veya tasarımcı tarafından belirlenir. Burada “uzaklık” kavrama en aza indirgememiz gereken parametredir. Bu parametre enerji veya gecikme olabilir.
Amaç Kod Noktası (OCP): (Objective Code Point) Bir OCP, DODAG’ın hangi Hedef Fonksiyonunu kullandığını belirten bir tanımlayıcıdır.
RPL Olay Kimliği: Bir RPL olay kimliği (RPL Instance ID), bir ağ içindeki benzersiz bir tanımlayıcıdır. Aynı RPL olay kimliğine sahip DODAG’lar aynı hedef fonksiyonunu paylaşır.
RPL Örneği: Bir RPL Örneği, bir RPL olay kimliği paylaşan bir veya daha fazla DODAG kümesidir. En fazla, bir RPL düğümü, bir RPL Örneğinde bir DODAG’a ait olabilir. Her RPL olayı, diğer RPL olaylarından bağımsız olarak çalışır.
DODAGID: DODAG kimliği, bir DODAG kökünün tanımlayıcısıdır. DODAGID, LLN’deki (Low-Power and Lossy Networks- Düşük Güçlü ve Kayıplı Ağlar) bir RPL Örneği kapsamında benzersizdir. Her DODAG’ın bir IPv6 Kimliği (128 bit) vardır. Bu kimlik yalnızca DODAG köküne verilir ve kök kimliği değiştirmediği sürece de değişmez.
DODAG Sürümü: Bir DODAG Sürümü, belirli bir DODAGID ile bir DODAG’ın belirli bir yinelemesidir. DODAG’ın her yeni şekli, yeni bir sürüm anlamına gelir.
DODAG Sürüm Numarası: DODAG Sürüm Numarası, bir DODAG’ın yeni bir Sürümünü oluşturmak için kök tarafından artırılan sıralı bir sayaçtır. Bir DODAG Sürümü benzersiz bir şekilde (RPL Olay Kimliğinde, DODAG kimliğinde, DODAG Sürüm Numarasında) başlıkla tanımlanır.
Hedef: Hedef, Bir DODAG’ın ulaşmak istediği yerdir. Kablolu veya kablosuz bir ağ olabilir. Hedef, Amaç işlevinden farklıdır. Amaç işlevinde amacımız en aza indirmektir. Ancak Hedef, gitmek istediğimiz yerdir.
Topraklanmış (Grounded): DODAG hedefine ulaştığında topraklanmıştır.
Yüzen (Floating): DODAG, topraklanmamışsa yüzer. Yüzen bir DODAG’ın hedefi karşılamak için gerekli özelliklere sahip olması beklenmez. Bununla birlikte, DODAG içindeki diğer düğümlere bağlantı sağlayabilir.
DODAG ebeveyni (DODAG Parent): Ebeveyn, okların işaret ettiği yerdir. Bir çocuk ise, okun geldiği yerdir. Ebeveynlerin birden fazla çocuğu olabilir, Benzer şekilde bir çocuğun birden fazla ebeveyni olabilir.
Alt DODAG (Sub-DODAG): Belirli bir DODAG’ın alt ağacıdır.
Yerel DODAG (Local DODAG): Yerel DODAG’lar yalnızca bir kök düğümü içerir ve bu tek kök düğümün, yerel bir RPL Olay Kimliği ile tanımlanan bir RPL Örneğini diğer düğümlerle koordinasyon olmadan tahsis etmesine ve yönetmesine izin verir. Tipik olarak bu, LLN içindeki bir varış noktasına giden rotaları optimize etmek için yapılır.
Evrensel DODAG (Global DODAG): Evrensel DODAG, diğer birçok düğüm arasında koordine edilebilen RPL Olay Kimliğine sahip DODAG’tır.
Saklanan (Stored): Saklanan düğümleri bütün yönlendirme tablosu bilgisini kaydeder. Bu düğümler sadece kendi ebeveyn düğümlerini bilirler.
Saklanmayan (Non-Stored): Basittirler, herhangi bir yönlendirme tablosunu saklamazlar, sadece ebeveynlerini bilirler.
Aşağıda düğümler arasında gönderilen mesajlara ait terimler yer almaktadır.
DIO:(DODAG Information Object- DODAG Bilgi Nesnesi): Bu mesaj, aşağı doğru çok noktaya yayınlanır. Bir DODAG’daki belirli bir düğüm, bu mesajı çok noktaya yayınlayarak diğer düğümlerin topraklanmış olup olmadığını veya saklanan olup olmadığı bilgisini iletir.
DIS (DODAG Information Solicitation-DODAG Bilgi İsteme): Duyuru duyulmadığında ve bir düğüm bir DODAG’a katılmak isterse bir kontrol mesajı gönderir, Bunun için herhangi bir DODAG olup olmadığını bilmek ister.
DAO (DODAG Advertisement Object-DODAG Duyuru Nesnesi): Bir çocuk düğüm tarafından ebeveyn düğüme veya köke gönderilen bir istektir. Bu mesaj ile, bir düğüm, çocuk düğüm olarak bir DODAG’a katılmak için izin ister.
DAO-ACK (DODAG Advertisement Object Acknowledgement- DODAG Duyuru Nesnesi Kabulü): Bir kök veya ebeveyn tarafından çocuğa gönderilen bir yanıttır, bu yanıt Evet veya Hayır olabilir. (Winter, ve diğerleri, Mart 2012 1)
Kök, DODAG’da özel bir düğümdür. Tüm düğümler DODAG’da kök olma özelliğine sahip değillerdir.
A, B, C, D, E, F, G düğümlerinden oluşan bir DODAG’ımız olsun. A düğümü ise kök düğümü olsun. Diğer düğümlerin uzaklıkları sırasıyla B=1, C=1, D=5, E=8, F=8, G=9 olsun. Bu durumda, aşağıdaki adımlar olacaktır.
Yeni durumda, B düğümüne D,E,F,G düğümlerinin mesafesi sırası ile 2,3,5,6 olsun. C düğümüne de D,E,F,G düğümlerinin mesafesi sırası ile 3,5,4,7 olsun.
DODAG’ın göze çarpan özelliği olarak, yalnızca tek bir kök düğüme sahip olduğu, diğer düğümlerin, üst düğüm hakkında bilgi içerdiği fakat hiçbir düğümün alt düğümler hakkında bilgi içermediğini söylemek mümkündür.
RPL protokolü IPv6 protokolünü kullanır.
1. Shelby, Z., & Bormann, C. (2009). 6LoWPAN: The Wireless Embedded Internet. UK: WILEY. (Geri Dön)
2. Raj, P., & Raman, A. (2017). The Internet of Things: Enabling Technologies, Platforms, and Use Cases. New York: CRC Press. (Geri Dön)
3. Winter, T., Thubert, P., Brandt, A., Hui, J., Kelsey, R., Levis, P., . . . Alexander, R. (Mart 2012). RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks. Internet Engineering Task Force. https://www.hjp.at/doc/rfc/rfc6550.html adresinden alındı (Geri Dön)
Bu yazıda, excel ve python aracılığıyla Access DB’deki, bir tablonun postgresql’e aktarılması anlatılmaktadır.
Bu bölümde, RPL protokolüne yapılan Taşma Saldırısı, Azaltılmış Rank Saldırısı ve Sürüm Numarası Artırma Saldırısı “Karar Ağacı”, “Lojistik Regresyon”, “Rasgele Orman”, “Naive Bayes”, “K En Yakın Komşu” ve “Yapay Sinir Ağları” algoritmaları ile eğitilmiş ve test edilmiştir.
Taşma Saldırılarının tespitinde %97,2 doğruluk oranı ile Yapay Sinir Ağları algoritması, Sürüm Numarası Artırma Saldırılarının tespitinde %81 doğruluk oranı ile K En Yakın Komşu algoritması, Azaltılmış Rank saldırılarının tespitinde %58 doğruluk oranı ile Yapay Sinir Ağları algoritması başarı gösterdiği tespit edilmiştir.
RPL Tabanlı IOT Cihazları Zafiyetinin Tespiti İçin Makine Öğrenmesi Algoritmalarının Karşılaştırılması başlıklı yüksek lisans tezimi nasıl yaptığımı, bu süreçte elde ettiğim tecrübelerimi ve bu tezdeki kodları bir yazı dizisi halinde blog sayfamda paylaşmaya devam ediyorum.
Şimdiye kadar, RPL protokolü ve RPL protokolünde gerçekleşen saldırılarla ilgili detaylı bilgi verdim. Sonrasında, Taşma Saldırıları, Sürüm Numarası Artırma Saldırısı ve Azaltılmış Rank Saldırısı ile ilgili deneyler yapıp, ham verileri elde ettim ve bu ham verileri anlamlı hale getirdim. Zafiyetli düğümlerle yapılan deney sonuçları ile, iyicil düğümlerle yapılan deney sonuçlarını istatistiksel metotlarla karşılaştırdım.
Bu bölümde ise makine öğrenmesi algoritmaları ile tespit ettiğimiz saldırıların sayısal sonuçlarını yorumlayacağım.