Bu makalemizde genel olarak checksum konusuna bakacağız. Bilgisayar ağları konusuna baktığınızda bu tanımla sıkça karşılaşacaksınız. Bu makalemdeki temel amacım ise checksum nedir konusunu anlatmak ve kullanım alanlarını incelemektir. Bu sorunun cevabından sonra günümüz teknolojisinde hangi alanlarda kullanıldığına ve günümüz teknolojisi için neden hayati öneme sahip olduğuna bakacağız. OSI modelinin bir kaç katmanında hata ayıklama ve denetleme için yaygın olarak uygulanan checksum algoritmaları mevcuttur. Bu makalede spesifik algoritmaları incelemek yerine konunun temelini ve mantığını anlayabilmeniz hedeflenmiştir.
İsterseniz konuya yavaş yavaş giriş yapalım ve Checksum nedir sorusunun cevabını arayalım. Checksum, Check ve Summary sözlerinin birleşmesinden oluşan bir terimdir. Türkçeye çevirecek olursak özet kontrolü gibi çevirebiliriz. Tipik bir senaryo ile özet kontrolünü de anlamaya çalışalım. Örneğin sosyal medya üzerinden bir arkadaşınıza resminizi gönderdiğinizi düşünün. Bu resmin karşıya iletilmesi sırasında bir fiziksel katman var. Sonuçta resmin bilgileri bitler halinde elektrik sinyali olarak taşınıyor. Bu bilgilerin karşı tarafa gittiğinde bilgilerin zarar görmediğinden nasıl emin olabiliriz. İşte bu sorunun hızlı bir şekilde çözümü için üretilmiş çözümlerden bir tanesi de checksum'dır. Checksum karşı tarafa ilettiğiniz ve ya kontrol sağlamak istediğiniz verinin özeti olan bir numaradır. Hatta şifreleme ve şifre saklama işlemlerinde çokça kullanılan Hash algoritmalarının temeli de checksum'a dayanır. Çoğu bilgisayar mühendislerinde sadece hata denetimi altında algoritma olarak gösterilen bir tanım olsa da gerçek hayatta checksum karşılığında çok büyük bir dünya yatar. Yukarıdaki anlatımları özetleyecek olursak Checksum belirli bir veriye karşılık olarak, belirli algoritmalar sonucu oluşturulmuş bir değerdir. Bu değer numara, hexadecimal veya string bir değer olabilir. Önemli olan noktaysa çok büyük bir verinin özetini küçük bir veri boyutuna indirmektir. Doğal herhangi bir veriye checksum algoritması uygulayıp özetini çıkardıktan sonra bu özet bilgiye göre orijinal veriyi elde etmek mümkün değil. Mümkün olabilmesi için algoritma sonucu olabilecek tüm sonuçların karşılıklarının çıkarılması lazım ki bu da çok büyük işlem gücü gerektirir. Checksum algoritmaları ile gönderen kişi algoritmayı kullanarak gönderdiği veriye checksum algoritma çıktısını ekler ve veriyi alan kişi de aynı algoritmayı uygulayarak sonuçları karşılaştırır. Eğer sonuç eşleşiyorsa verinin hatasız olduğu kabul edilir. Bazı checksum algoritmalarında, özellikle OSI modelinin alt katmanlarında kullanılan algoritmalarda belirli düzeyde oluşabilecek hatalar çözülebilir.
Bu makaleden anlamanız gereken en önemli nokta checksum'ın bir algoritmadan çok çözüm tekniği ve çözüm yolu olduğudur. Çözdüğü problem ise çok büyük bir veri boyutunun doğru veri olduğunu en hızlı nasıl kontrol edebilirim problemidir.
İsterseniz konuya yavaş yavaş giriş yapalım ve Checksum nedir sorusunun cevabını arayalım. Checksum, Check ve Summary sözlerinin birleşmesinden oluşan bir terimdir. Türkçeye çevirecek olursak özet kontrolü gibi çevirebiliriz. Tipik bir senaryo ile özet kontrolünü de anlamaya çalışalım. Örneğin sosyal medya üzerinden bir arkadaşınıza resminizi gönderdiğinizi düşünün. Bu resmin karşıya iletilmesi sırasında bir fiziksel katman var. Sonuçta resmin bilgileri bitler halinde elektrik sinyali olarak taşınıyor. Bu bilgilerin karşı tarafa gittiğinde bilgilerin zarar görmediğinden nasıl emin olabiliriz. İşte bu sorunun hızlı bir şekilde çözümü için üretilmiş çözümlerden bir tanesi de checksum'dır. Checksum karşı tarafa ilettiğiniz ve ya kontrol sağlamak istediğiniz verinin özeti olan bir numaradır. Hatta şifreleme ve şifre saklama işlemlerinde çokça kullanılan Hash algoritmalarının temeli de checksum'a dayanır. Çoğu bilgisayar mühendislerinde sadece hata denetimi altında algoritma olarak gösterilen bir tanım olsa da gerçek hayatta checksum karşılığında çok büyük bir dünya yatar. Yukarıdaki anlatımları özetleyecek olursak Checksum belirli bir veriye karşılık olarak, belirli algoritmalar sonucu oluşturulmuş bir değerdir. Bu değer numara, hexadecimal veya string bir değer olabilir. Önemli olan noktaysa çok büyük bir verinin özetini küçük bir veri boyutuna indirmektir. Doğal herhangi bir veriye checksum algoritması uygulayıp özetini çıkardıktan sonra bu özet bilgiye göre orijinal veriyi elde etmek mümkün değil. Mümkün olabilmesi için algoritma sonucu olabilecek tüm sonuçların karşılıklarının çıkarılması lazım ki bu da çok büyük işlem gücü gerektirir. Checksum algoritmaları ile gönderen kişi algoritmayı kullanarak gönderdiği veriye checksum algoritma çıktısını ekler ve veriyi alan kişi de aynı algoritmayı uygulayarak sonuçları karşılaştırır. Eğer sonuç eşleşiyorsa verinin hatasız olduğu kabul edilir. Bazı checksum algoritmalarında, özellikle OSI modelinin alt katmanlarında kullanılan algoritmalarda belirli düzeyde oluşabilecek hatalar çözülebilir.
Bu anlatımdan sonra sanırım checksum'ın ne olduğunu anlayabilmişsinizdir. Bir diğer önemli nokta ise checksum'ın kullanım alanlarıdır. Checksum bir algoritmadan daha çok bir çözüm tekniği olduğu için diğer problem çözümlerinin içinde de bunu görebilirsiniz. Temel hedef büyük boyuttaki verinin özetini alarak bunun doğruluğunu daha küçük veri üzerinden kontrol etmektir. Şu anda hemen hemen tüm veritabalarında şifreleri saklamak için kullanılan algoritmalar da checksum yansımasıdır. Aynı zamanda versiyon kontrol sistemlerinden bir olan Git Server üzerinden yapılan değişiklikleri hızlı bir şekilde kontrol etmek için checksum algoritması kullanılır ve kodun bulunduğu dosya SHA1 algoritmasına göre tekil bir hexadecimal numaraya dönüştürülür.
Bu makaleden anlamanız gereken en önemli nokta checksum'ın bir algoritmadan çok çözüm tekniği ve çözüm yolu olduğudur. Çözdüğü problem ise çok büyük bir veri boyutunun doğru veri olduğunu en hızlı nasıl kontrol edebilirim problemidir.
Yorumlar
Yorum Gönder