Dijital haberleşmede sadece bir fiziksel yolun olması ve voltajın gidip gelmesi yeterli değildir. Eğer gönderici ve alıcı aynı kurallar dizisine sahip değilse, akan veriler sadece anlamsız bir elektrik gürültüsünden ibaret kalır. İşte bu “kurallar dizisine” Protokol diyoruz.
Protokolü, farklı dilleri konuşan iki insanın anlaşabilmesi için ortak bir dil (örneğin İngilizce) seçmesi veya bir mektup yazarken zarfın üzerine adres yazılması gereken yerin önceden belirlenmiş olması gibi düşünebiliriz. Dijital bir protokolün üç ana sütunu vardır:
1. Adresleme: “Mesaj Kime Gidiyor?”
Bir haberleşme hattında (bus) sadece iki cihaz değil, bazen onlarca sensör ve modül bulunabilir. Bu durumda gönderilen verinin hangi cihaz tarafından işleneceğinin belirlenmesi gerekir.
- Mantık: Bir sınıfta öğretmenin “Ahmet, tahtaya gel” demesi gibidir. Tüm sınıf (tüm sensörler) mesajı duyar, ancak sadece adı (adresi) zikredilen kişi tepki verir.
- Örnek (I2C): Arduino dünyasında I2C protokolü her cihaz için benzersiz bir 7-bitlik adres kullanır. Arduino hatta bir adres yayınlar; adresi eşleşen sensör “Buradayım” der ve veri alışverişi başlar.
2. Başlangıç ve Bitiş İşaretleri: “Mesaj Nerede Başlıyor?”
Kesintisiz akan bir veri hattında, alıcının gelen yığının neresinin gerçek mesaj olduğunu anlaması gerekir. Bunun için mesajın başına ve sonuna özel işaretler konulur.
- Mantık: Bir cümlenin büyük harfle başlayıp nokta ile bitmesi gibidir. Noktayı görene kadar mesajın devam ettiğini biliriz.
- Örnek (UART/Seri): Asenkron haberleşmede her veri paketinin başında bir Start Bit (genellikle voltajın aniden düşmesi) ve sonunda bir veya iki Stop Bit bulunur. Bu sayede alıcı, hattaki boş bekleyiş ile gerçek veriyi birbirinden ayırır.
3. Hata Kontrolü: “Veri Doğru Ulaştı mı?”
Veri, kablo boyunca seyahat ederken çevredeki elektrik motorlarından, kablosuz sinyallerden veya manyetik alanlardan etkilenip bozulabilir. Protokolün en kritik görevi bu bozulmayı tespit etmektir.
- Mantık: Birine telefon numaranızı söylerken sonunda “Rakamların toplamı 45 ediyor mu?” diye sormak gibidir. Eğer karşı tarafın toplama sonucu tutmuyorsa, bir rakam yanlış duyulmuş demektir.
- Yöntemler:
- Parity Bit (Eşlik Biti): Verideki ‘1’ sayısının tek mi çift mi olduğunu kontrol eden basit bir ek bit.
- Checksum (Toplamsal Hata Denetimi): Gönderilen tüm baytların toplanıp sonucun mesajın sonuna eklenmesi.
- Örnek: Eğer Arduino bir sensörden gelen sıcaklık verisini Checksum hatasıyla alırsa, o veriyi çöpe atar ve sensörden veriyi tekrar ister.
Özet: Neden Protokole İhtiyacımız Var?
Bir protokol olmadan dijital haberleşme yapmaya çalışmak, içinde harf ve rakamların rastgele uçuştuğu bir kutuya bakmak gibidir. Protokol sayesinde:
- Veri düzenli bir yapıya kavuşur.
- Birden fazla cihaz çakışmadan konuşabilir.
- Hatalı veriler ayıklanarak sistemin güvenilirliği sağlanır.