SlideShare a Scribd company logo
1 of 91
Download to read offline
Hata Saptama
ve
Düzeltme Teknikleri
1[E.B]
1. HATA DENETİMİ
• Uygulamaların hiçbiri hataya karşı toleranslı
olmadığından birçok çok uygulama için,
– hatayı saptamakla yetinmeyip,
– verinin hatasız bir başka kopyasının elde
edilmesinin de sağlanmasına
hata denetimi denir.
2[E.B]
• Hata denetim süreçleri iki aşamada
gerçekleştirilir:
1. Hatanın saptanması.
2. Hatanın düzeltilmesi.
3[E.B]
2. HATA SAPTAMA YÖNTEMLERİ
• Hata saptama yöntemlerinde kullanılan iki
yaklaşım vardır:
1. İleri hata denetimi (forward error
control)
2. Geribeslemeli hata denetimi (feedback
error control)
4[E.B]
2.1. İleri hata denetimi
(forward error control):
• Bu yaklaşımda,
– gönderilen her karakter veya çerçeve
bilgisinin (bitlerinin) yanı sıra,
– fazla ve yinelenen bilgi içeren bitler
gönderilir.
5[E.B]
• Bu sayede,
– alıcı hatayı fark eder ve
– çerçeve ile birlikte gönderilen ek bilgi
bitleri bunu saptayacak bilgiler içerdiğinde
hatanın hangi bit veya bitlerde olduğunu da
bulur.
6[E.B]
• Hatasız veri, ek bilgi bitlerinden elde edilir.
• Güvenilir bir ileri hata denetimine
erişebilmek için gereken ek bit sayısı,
gönderilen bilgideki bit sayısı arttıkça artar.
7[E.B]
2.2. Geribeslemeli hata denetimi
(feedback error control)
• Bu yaklaşımda, gönderilen her karakter veya
çerçeve, alıcının yalnızca veride hata
bulunduğunu saptamasına yetecek kadar ek bilgi
biti içerir.
• Alıcı, bu bilgi bitlerini kullanarak veride hata olup
olmadığını denetler.
8[E.B]
• Veride hata saptandığında ise, ek bilgi bitleri
hatanın düzeltilmesine olanak tanımayacağından,
alıcı gönderilmiş olan hatalı verinin doğru bir
kopyasının gönderilmesi için istekte bulunur.
9[E.B]
• Bu nedenle geri beslemeli hata denetimi iki
aşamada ele alınır:
1. Güvenli bir şekilde hatayı saptamayı
sağlayan teknikler.
2. Hata durumunda, yeniden gönderim
denetim tekniklerini sağlamak için
kullanılan algoritmalar.
10[E.B]
2.2.1. BER ve Hata Patlaması Kavramları
• Hata saptama türlerini belirleyen etkenler:
1. BER kavramı,
2. Hata patlaması (error burst) kavramı
11[E.B]
1. BER (Bit Error Rate), bir iletişim sistemi
üzerinden iletilen bir bit in belli bir zaman
aralığındaki bozulma olasılığıdır.
– Örneğin, BER 10
5
demek 100.000 bit
arasından l bitin belli bir zaman aralığındaki
bozulmasıdır.
12[E.B]
2. Hata patlaması,
– yıldırım ve benzeri doğal olayların,
– çevre koşullarının veya iletişim ortamındaki
şiddetli bir elektromanyetik etkileşimin,
olay süresince iletişim ortamından geçen bitleri
etkileyip bozmasıyla oluşan hatalardır.
13[E.B]
– Hata patlaması, yanlış alınmış bir bitle
başlar, bir süre doğru veya yanlış bit dizisi
ile devam eder ve hatalı bir bit ile biter.
14[E.B]
• Hata patlaması, birbirini izleyen hatalı 2 bit
arasındaki bitlerin sayısı olarak tanımlanır.
• Bu sayıya hatalı 2 bit de dahildir.
15[E.B]
• Ayrıca bir hata patlamasının uzunluğunu
belirlerken patlamadaki son hatalı bit (1. hata
patlamasının son biti) ve onu izleyen ilk
patlamadaki (2. hata patlamasının başı) ilk
hatalı bit ve N de 1. hata, hata patlamasının
uzunluğu olmak üzere N veya daha fazla doğru
bitle ayrılmalıdır.
16[E.B]
• Hata türü önemlidir, çünkü farklı hata türleri için
farklı hata bulma yöntemleri kullanılır.
• Ayrıca, bazı yöntemlerde kullanılan bit sayısı,
fark edilecek patlama uzunluğunu tanımlar.
• En fazla kullanılan yöntemlerden bazıları, eşlik
biti denetimi (parity) ve CRC dönüşümlü fazlalık
denetimidir. 17[E.B]
Hata Patlaması Örneği
2.2.1.1. Eşlik biti Denetimi
(Parity Check)
• Eşzamansız ve eşzamanlı gönderimde, eşlik biti en sık
kullanılan hata saptama yöntemlerinden birisidir.
18[E.B]
• Eşlik biti (parity bit), ikili gösterimdeki bir
sayıda 1’lerin toplamının her zaman tek (ya da
çift) olmasını sağlayacak şekilde sözcüğe
eklenen bittir.
19[E.B]
• Çift eşlik (even parity), eşlik biti de içinde olmak üzere
bir karakterin içerisindeki l bitlerinin sayısının çift
olması durumudur.
• Tek eşlik ise (odd parity), yine eşlik biti de içinde
olmak üzere, karakterdeki l'lerin sayısının tek olması
durumudur.
20[E.B]
21[E.B]
Eşlik bitinin bir uygulama alanı da, 7 bit içeren
ASCII karakterleridir.
• AVANTAJ: Yalnızca bir bit kullanarak hata
kontrolü yapması bu yöntemi avantajlı kılar.
• Ancak kontrol için tek bit kullandığından, çok
güvenilir olmayan hata denetimleri yapılabilir.
22[E.B]
• SAKINCA: bu yöntemin iletilen sayıda iki bit
birden bozulmaya uğrarsa bunu tespit
edememesidir.
• Bu kontrolde hangi bitin hatalı olduğunu
anlama imkanı olmadığından veri parçası
tamamen ihmal edilir ve hedef, kaynaktan
verinin tekrar ister.
23[E.B]
• Gürültülü bir iletim ortamında bu yöntemle
verinin iletilmesi çok uzun zaman alabilir
veya hiç gerçekleşmeyebilir.
24[E.B]
Örnek:
1)Aşağıdaki 8 bitlik kod sözcüklerinden hangisi çift
eşlik (even parity) biti kullanıldığında bir hata
durumunu gösterir?
a. 01100101
b. 01111000
c. 10000011
d. 00010100
e. 11000110
cevap c
25[E.B]
2)Aşağıdaki 8 bitlik kod sözcüklerinden hangisi tek
eşlik (odd parity) biti kullanıldığında bir hata
durumunu gösterir?
a. 01010100
b. 01111001
c. 10011000
d. 01100101
e. 11001101
Çözüm:d
26[E.B]
• Örneğin, 1010011 0 bit dizisinin çift eşlik kullanılarak
gönderildiğini varsayalım.
• Bu ikil dizisi alıcıya 10110110 şeklinde , yani 4. biti
hatalı alınarak ulaşsın.
• Alıcı çift eşlik kullanıldığını ve l'lerin sayısının çift
olması gerektiğini bildiğinden, bu bit dizisinin
kendisine hatalı ulaştığını anlar ve yeniden
gönderilmesini ister.
27[E.B]
Eşlik biti (Parity Check) Denetiminin zayıflığı
• Aynı bit dizisinin (1010011 0 ) bu kez 4. ve 7.
bitlerinin hatalı (10110100) ulaştığını varsayalım.
• Bit dizisi alıcıya şeklinde ulaştığında, alıcı bu bit
dizisi içerisinde hata olduğunu fark edemeyecek
ve karakteri hatalı alacaktır.
• Bu nedenle, çift bit hatalarını ve hata patlamalarını
saptayacak başka yöntemler kullanılmalıdır.
28[E.B]
2.2.1.2. İki-Boyutlu Eşlik İkili Yöntemi
(2-Dimensional Parity)
• İki boyutlu eşlik, bir çerçevenin içerdiği
karakterlerin her birine karşı gelen her bit konumu
için benzer bir hesaplama yapar.
• Bu işlem, her karakter için bir eşlik bitine ek
olarak, fazladan bir eşlik byte’ından oluşmasına
neden olur.
29[E.B]
Giren
Çıkan
2.2.1.3. CRC (cyclic redundancy check),
Dönüşümlü Fazlalık Sınama Kodu
• Eşlik biti yöntemi, Çift bit hatalarını fark edemediğinden,
çerçeve veya blok iletim yöntemlerinde polinom kodlar
kullanılır.
• Bu yöntemde, çerçeveyi gönderen bilgisayar tarafından
çerçevenin içeriğine göre ve çerçevenin sonuna eklenecek
şekilde her çerçeve için ayrı bir denetim seti (check digits)
hesaplanır.
• Daha sonra alıcı, çerçeve ve denetim sayıları üstünde benzer
bir hesaplama yapar.
• İletilen çerçevede hiç hata yoksa, bilinen bir sonuç elde
edilmelidir.
• Farklı bir cevap bulunursa bu bir hata olduğunu gösterir.
31[E.B]
• Denetim seti, iletişim ortamının ve beklenen iletim
hatalarının türüne uyacak şekilde seçilir.
• Ancak 16 ve 32 bit denetim sayıları, en sık
kullanılanlardır ve çerçeve denetim dizisi (frame
check squence) FCS veya hata saptama kodu
olarak bilinir.
• Hata saptama kodları içerisinde en fazla kullanılan
ve hata saptama oranı en fazla olan kod,
dönüşümlü fazlalık sınama kodu, kısaca CRC'dir
(Cyclic Redundancy Check).
32[E.B]
• Bu teknikte, gönderilecek olan ileti ikili düzende
kodlanmış (binary) uzun bir sayıdır (çerçevedir).
• Bu sayı, bir başka ikili asal sayıya (asal bir üreteç
polinoma) bölünür.
• Bu bölme işlemi sonucunda kalan bitler
gönderilecek olan iletinin sonuna eklenir ve ileti
gönderilir.
• Alıcı, iletiyi aynı asal polinoma böler.
• Bu bölme işlemi sonucunda kalan, 0 olmalıdır.
• Kalan 0 değilse alıcı bir hata olduğunu anlar ve
çerçevenin yeniden gönderilmesini ister.
33[E.B]
• Bu yöntemin matematiksel temeli şudur. Polinom
kodları mod-2 aritmetiği kullanılarak 2'li düzendeki
sayıların aşağıdaki özelliğini kullanır.
– M(x): gönderilecek k bitli bit dizisi (gönderilecek olan
çerçeve)
– G(x): (n+l) bitli sayı (bölen, yani üreteç polinom)
– R(x): kalan n bitli sayı (k>n).
• Buradan aşağıdaki eşitlik yazılabilir
– (M(x) * 2
n
+ R(x) ) /G(x) = Q(x) + (R(x) /G(x))+(R(x)
/G(x))
• Bu da Q(x)'e eşittir. Çünkü biti düzende bir sayının
kendisiyle toplamı 0'dır. Bu da kalanın 0 olacağını
gösterir.
34[E.B]
• Bu işlemleri gerçekleştirirken, ikili düzende bölme
işleminin EXCLUSIVE -OR (eldesiz toplama)
işlemi ile gerçekleştirildiğini anımsayalım.
• CRC algoritması karmaşık görünmekle birlikte,
donanım üzerinde kolayca gerçekleştirilir.
35[E.B]
Algoritmanın bir örnek yardımıyla incelenmesi
• Öncelikle, gönderilecek olan iletiyi M ile tanımlayalım.
• Bu ileti n bitlik bir CRC sayısı ile korunsun (yani iletinin sonuna
n tane bit eklensin).
Örnek: dört bitlik bir ileti 1111, 1101 üreteç polinomu
kullanılarak CRC yöntemi ile korunmuş olsun CRC
sınama bitlerini oluşturalım.
36[E.B]
1. Birinci adımda, bu iletinin içeriği 2
n
ile çarpılır. Bu
işlem iletinin sonuna n tane 0 eklemeye eşdeğerdir.
– iletiye önce 3 sıfır eklendi, çünkü CRC üç bitten
oluşacaktır.
(üreteç polinomun bit sayısı 4'tür, n+1 = 4).
– 1111000
37[E.B]
2. ikinci adımda ileti, sonuna eklenen n tane 0 ile birlikte,
daha önce belirlenmiş bir üreteç polinomuna bölünür.
Üreteç polinomdaki bit sayısı n+l'dir. Yani denetim
bitleri sayısından l fazladır.
• CRC sınama bitlerini bulabilmek için iletinin sonuna
3 tane sıfır biti ekleyelim (n=3) ve 1101 polinomuna
(1.x3+l.x2+0.x1 + l.x0 yani x3 + x2+l) bölelim.
• Yukarıda da belirttiğimiz gibi mod 2 bölme işlemi
tek tek bitler alınarak paralel bir şekilde exclusive-
OR işlemini gerçekleştirmeğe eşdeğerdir.
38[E.B]
39[E.B]
3. Üçüncü adımda, bu bölme işleminden kalan n
tane bit, gönderilecek olan iletinin sonuna
eklenir (1. adımda , iletinin sonuna n tane 0
eklerken, şimdi n tane sıfırın yerine n tane kalan
biti eklediğimizi anımsayalım).
İletilecek olan çerçeve: 1111111
40[E.B]
4. Dördüncü adımda, ileti özgün ileti + bölme
işleminden kalan bitlerle birlikte bir iletişim
hattı üzerinden alıcısına gönderilir.
1111111
41[E.B]
5. Beşinci adımda, alıcı iletiyi alır ve aynı üreteç polinoma
böler. Doğal olarak kalan 0 olmalıdır. Kalan 0 ise alıcı,
iletiyi doğru aldığını anlar, iletinin sonundaki n tane
denetim bitini atar ve özgün iletiyi saklar.
42[E.B]
6. Altıncı adımda, alıcı tarafındaki bölme
işleminden kalan sonuç 0'dan farklıysa, alıcı,
bundan sonraki bölümde anlatılacak
yöntemlerden birini kullanarak iletinin
yeniden gönderilmesi isteğinde bulunur.
- Alıcıya gelen bitler 1111111 olarak (yanı
hatasız) gelmiş olsun. Alıcı aldığı bu bitleri
aynı üreteç polinoma bölerek (x3 + x2+l,
1101) kalanı bulacaktır.
- Bu bölme işleminden kalan 0 olduğu için
iletiyi hatasız aldığını anlayacaktır. Bunun
üzerine iletilen CRC sınama bitlerini atarak
(1111) özgün iletiyi saklayacaktır.
HATA DURUMU
• Alıcıya gelen bitler 1110111 olarak (yani 4- biti hatalı)
gelmiş olsun. Alıcı aldığı bu bitleri yine aynı üreteç
polinoma (x
3
+ x2+ 1) bölerek kalanı bulacaktır.
• Kalan '101' yani 0'dan farklı. Bu durumda alıcı iletiyi
hatalı olarak aldığını saptayacak ve ileride anlatılacak
yöntemlerden birisi ile bu iletinin hatalı alındığını ve
yeniden gönderilmesi gerektiğini kaynak bilgisayara
bildirecektir.
45[E.B]
• Bu teknikte üreteç polinomunun seçimi çok
önemlidir, çünkü polinom hangi tür hataların
fark edileceğini tanımlar.
46[E.B]
• CRC yöntemiyle şunları belirleyebiliriz:
– Tüm tek bit hatalarını
– Tüm çift bit hatalarını
– Tüm tek sayılı bit hatalarını
– R'den küçük tüm hata patlamalarını (R
üreteç polinomun derecesidir)
– R'den büyük çok fazla hata patlamasını
47[E.B]
• Uygulamada kullanılan CRC örneklerinin biri,
CRC-16'dır (16- bit CRC kod) ve l 1000 0000
0000 0l0l'dir. Ethernet CRC-32 (32-bit CRC kod)
kullanır.
48[E.B]
CRC Etkisi
49[E.B]
Örnek:
50[E.B]
İleti 11100110 olsun, 11001 üreteç polinomu kullanarak
CRC yöntemi ile iletilecek veriyi bulunuz.
Bulunan veriyi kontrol ediniz.
• Üreteç: 11001
olduğuna göre
n+1=5 tir.
• İletilecek verinin
sonuna n=4 adet
sıfır ilave edilerek
veri ve üreteç
xor’lanır.
51[E.B]
Çözüm 1
veya
52[E.B]
İletilecek olan: 111001100110
53[E.B]
54[E.B]
Kontrol
• üreteç 1001, Veri 101110 ise kontrol bit dizisini
bulunuz.
Kontrol 011 olur 55[E.B]
soru
G(generator -üreteç) =1001 (n+1, n=3)
D (Data-veri)=101110
R (remainder-kalan) bulunacak.
Sonuç: 011
56[E.B]






=
G
D
remainderR
n
2*
2.2.1.4. internet Sağlama-Toplamı
(Checksum) Algoritması
• Bu yöntem OSI (Open Systems Interconnection)
başvuru modelinin veri bağlantı katmanında
kullanılmamakla birlikte, CRC ve eşlik biti ile
aynı işlevi sağlar.
57[E.B]
• CRC yöntemi kadar kesin koruma yöntemi
sağlayamaz, fakat veri bağlantı katmanının
üstündeki katmanlar için güvenle kullanılabilir.
• Çünkü veri bağlantı katmanında hata bulma
teknikleri (genelde CRC) zaten uygulanmaktadır.
58[E.B]
• internet sağlama toplamı algoritmasının temeli
oldukça basittir. Şöyle ki;
1. Gönderdiğin tüm kelimeleri (word) topla
2. Elde ettiğin toplamı sağlama toplama olarak
gönder
59[E.B]
• Alıcı da aynı işlemleri tekrar ederek, bulduğu
sağlama toplamını gönderilenle karşılaştırır.
• Bir hata durumunda sonuçlar farklı çıkacağından,
alıcıyı iletimde bir hata olduğu konusunda uyarır.
• Bu yöntem, farklı şekillerde kullanılabilir, internet
protokolü (IP) 16 bit uzunluğunda bir sağlama
toplamı kullanır.
60[E.B]
3.HATA DÜZELTME KODLARI
• Hata düzeltme teknikleri iki yaklaşımla gerçekleştirilir.
61[E.B]
1. Hatanın saptanıp, iletinin yeniden
gönderilmesinin sağlanması.
– alıcı tarafında hatanın saptanmasını izleyen ve
hatalı çerçevelerin yeniden gönderilmesini
sağlayan Otomatik Tekrar İstemi (ARQ-
Automatic Repeat Request) protokolleri
aracılığıyla gerçekleştirilir (Bu konu ve ilgili
protokoller, sonra ayrıntılı olarak anlatılacaktır).
62[E.B]
2. Hatanın alıcıda düzeltilebilmesinin sağlanması.
– Göndericinin bir hata durumunda,
• aynı çerçeveyi yeniden göndermesinin çok güç
olduğu,
• iletişim ortamlarının çok pahalı olduğu
• bir çerçevenin yeniden iletilmesinin çok fazla
zaman kaybına yol açtığı durumlarda,
hatanın alıcıda düzeltilebilmesini sağlayan çeşitli
teknikler geliştirilmiştir.
63[E.B]
– Bu gibi durumlarda, çerçevedeki hata çok
büyük bir hata patlaması değilse, alıcıda
düzeltilmeye çalışılır.
– Bu teknikler arasında en sık kullanılan
yöntem, Hamming kodlamasıdır.
64[E.B]
3.1. Hamming Uzaklığı
ve
Hamming Kodlaması
65[E.B]
3.1.a. Richard Wesley Hamming (11 Şubat
1915 – 7 Ocak 1998) kimdir?
• Yaptığı çalışmalar ile bilgisayar
bilimleri ve telekomünikasyon
alanlarını bir hayli etkilemiş bir
matematikçidir.
• Katkıları arasında Hamming kodu
(Hamming matrisini kullanır),
Hamming penceresi, Hamming
sayıları, küre paketleme (veya
hamming sınırı) ve Hamming
mesafesi vardır.
66[E.B]
• Chicago'da doğmuş ve Monterey,
California'da hayata gözlerini
yummuştur.
• Lisans derecesini 1937 yılında
Chicago Üniversitesi'nden, yüksek
lisansını 1939'da Nebraska
Üniversitesi'nden ve doktora
derecesini de 1942 yılında Urbana-
Champaign'deki Illinois
Üniversitesi'nden almıştır.
67[E.B]
• II. Dünya Savaşı sırasında
Lousville Üniversitesi'nde
profesörlük yapmış ve 1945
yılında Manhattan Projesi üzerinde
çalışmak için bu görevini
bırakmıştır.
• Bu proje kapsamında fizikçilerin
ortaya koydukları denklemlerin
çözülmesi için ilk elektronik
sayısal bilgisayarlardan bir kısmını
programlamıştır.
• Programın amacı atom bombasının
ateşlenmesinin Dünya
atmosferinde yanmaya yol açıp
açmayacağını tespit etmek idi. 68[E.B]
• Bu hesaplamanın sonucunda atmosferde bir
yanma meydana gelmeyeceği anlaşılmış ve
ABD bombayı önce New Mexico'da
denemiş ardından da iki kere Japonya'ya
karşı kullanmıştır.
• Daha sonra, 1946-1976 yılları arasında Bell
Telefon Laboratuvarlarında çalışan
Hamming, Claude E. Shannon ile işbirliği
yapmıştır.
• 23 Temmuz 1976 yılında donanma yüksek
okulunda 1997 yılına dek öğretim görevlisi
olarak çalıştı ve emekli profesör oldu.
• Hamming, Association for Computing
Machinery organizasyonunun kurucuları
arasındadıdr ve başkanlık da yapmıştır.
69[E.B]
3.1.b. Gelişimi
• Hamming 1940’larda Bell Laboratuarları’nda
manyetiksel röle bazlı, zaman döngüsü saniye olan
Bell Model V adlı bir bilgisayarda çalışmıştır.
• Giriş hataları okunabilen punch kartlarına
yüklenirdi.
• Operatörler problemi düzeltmesi için günler
boyunca özel kodlar hataları bulur ve ışık yakardı.
• Mesaiden sonraki periyotlarda ve hafta sonlarında,
operatörler olmadığından makine diğer işlemlere
geçerdi.
70[E.B]
• Hamming hafta sonları çalışırdı ve kart
okuyucunun güvenilmez olduğundan
programlarına ilk satırdan başlamak zorunda
kalması onu deli ediyordu.
• Yıllar içinde hata düzeltme problemi üzerinde
çalışarak çok güçlü bir dizi algoritma yarattı.
• 1950 yılında bugünkü adıyla aynı olan ve hala
kullanılan Hamming Kodu'nu yayımladı.
71[E.B]
3.1.c.tanım
• Bir iletişim ortamı üzerinden iletilen bit dizisinin
en fazla k bitinin bozulması durumunda, bit dizisi
içerisindeki hata düzeltilebiliyorsa, bu koda k-bit
hata bağışıklığı denir.
72[E.B]
• Kodlama terminolojisinde veri bitleri ile veriye
eklenen hata saptama bitlerini birleştiren birleşik ileti
birimi kod sözcük (codeword) olarak adlandırılır.
• Örneğin, m bitten oluşmuş bir veri, r bitlik hata
denetim veya tekrar bitleri ile (n = m + r)-bitlik bir
kod sözcük oluşturur.
– Örnek: m=4 bit r=3bit → n=4+3=7 7-bitlik kod sözcüğü
73[E.B]
• İki geçerli kod sözcüğün farklılaştığı en düşük bit
konumu sayısı, kodun Hamming uzaklığı (hamming
distance) olarak bilinir.
ÖRNEK:
• "toned" ile "roses" arasında 3.
• 1011101 ile 1001001 arasında 2.
• 2173896 ile 2233796 arasında 3.
• Ercan ile Erkan arasında 1.
74[E.B]
75[E.B]
Tanım (Uzaklık Fonksiyonu) : u ve v, R
n
kümesinin iki
elemanı olmak üzere u ve v arasındaki Hamming uzaklığı
{ }ii vuivud ≠=),(
şeklinde tanımlanır ve
{ }0: ∪→× INRRd nn
( ) ( )vudvu ,, →
şeklinde tanımlanan bu dönüşüm aşağıdaki özellikleri sağlar .
i ) ( ) ( ) vuvudvudiçinRvu n
=⇔=≥∈∀ 0,,0,,
ii) ),(),(, uvdvudiçinRvu n
=∈∀
ii) ),(),(),(,, vtdtudvudiçinRtvu n
+≤∈∀
• iki kod sözcük arasında kaç bit konumunun
değiştiğini bulmak için, önce iki kod sözcüğe
XOR işleci (operatör) uygulanır ve sonra bu
işlem sonucunda elde edilen l'lerin sayısı
toplanır.
76[E.B]
• Örneğin, her karakterin 7 veri biti ve bir eşlik biti ile
gösterildiği bir kod sözcük düşünelim. Çift eşlik
kullanıldığını varsayarsak bu şemayı izleyen kod
sözcükler:
0000000 0
0000001 1
0000010 1
0000011 0
• Geçerli her kod sözcük en az iki bit konumunda farklı
olduğundan Hamming uzaklığının 2 olduğunu
çıkarabiliriz.
• Bu da sonuçtaki bit yapısı farklı, ancak geçerli bir kod
sözcük olacağından, bu şemanın 2 bitli hataları
saptayamayacağını gösterir. 77[E.B]
• Bununla birlikte, bir kod sözcükteki tek bir bit
bozulursa, geçersiz bir kod sözcük ortaya
çıkacağından bütün tek bitli hataları saptayabilir.
• Örneğin, Hamming uzaklığı 3 olan bir kod sözcük
tek bitli hataları düzeltebilir, 2 bitli hataları bulabilir.
78[E.B]
• Eğer iki kod sözcük arasındaki Hamming uzaklığı
u ise, bir kod sözcüğü diğerine çevirmek için, u,
tek bit hatası gerekecektir.
• u hatayı saptamak için, u+1 koda,
• u hatayı düzeltmek için ise 2u+ l koda gerek
duyulur.
79[E.B]
• Günümüzde Hamming kodlama deyince akıllara ilk
olarak 1950 yılında açıklanan (7,4) lük Hamming
kodlama yöntemi gelmektedir.
• Bu Hamming kodlama yönteminde her 4 bitlik data
için 3 bit kontrol biti eklenir.
• Hamming’ in geliştirdiği bu (7,4) algoritması her
hangi bir tek bitlik hatayı düzeltebilir ya da bütün
tek veya iki bitlik hataları tespit edebilir.
80[E.B]
3.1.d. (7,4) Hamming Kodlama
• Bu Hamming kodlama yönteminde her 4 bitlik
data için 3 bit kontrol biti eklenir.
• Hamming’ in geliştirdiği bu (7,4) algoritması her
hangi bir tek bitlik hatayı düzeltebilir ya da bütün
tek veya iki bitlik hataları tespit edebilir.
• Hamming kodu parity matrislerini çoklayarak
genişletilmesinden oluşan ve “Hamming matrisi”
adı verilen matrislerle çalışır.
81[E.B]
• (7,4) lük Hamming kodlama da birbirleriyle
bağlantılı olan Kod üretici matris G ve Parity
(eşlik) kontrol matrisi H olan 2 çeşit matris
kullanırız;
• Bu yöntemde 4 bit veri iletilir.
82[E.B]
• Göndereceğimiz 4 bitlik data “1001” olsun. Bu
datayı göndermek için kullanacağımız vektör p
olur.
83[E.B]
örnek
• Datamızı paketlemek için G matrisini kullanırız.
• 7*4’lük G matrisi ile asıl datamızı taşıyan 4*1’lik
p matrisinin mod 2 ye göre çarpılmasından elde
edeceğimiz 7*1’lik bir x matrisi (7,4) lük
Hamming kodlama yöntemi ile paketlenmiş
veriyi oluşturacaktır.
84[E.B]
?
85[E.B]
• Mod 2’de çarpım işlemi yalnızca bir dizi mantıksal AND
ve XOR işlemidir.
• [1000] satır vektörü ile [1001] sütun vektörünün çarpımı
mod 2’de şu şekilde olur:
1000
& 1001
1000
• [1000] vektörünün mod 2 toplamı: 1^0^0^0=1
olur bu da x matrisinin ilk elemanını verir.
• [0100] satır vektörü ile [1001] sütun vektörünün
çarpımı mod 2’de şu şekilde olur:
0100 & 1001 = 0000
• [0000] vektörünün mod 2 toplamı:
0^0^0^0=0
olur bu da x matrisinin ikinci elemanını verir.
• Devamı bu şekilde hesaplanır.
86[E.B]
= r
• Bir hata oluşmazsa alınan veri matrisi
r, iletilen veri matrisi x’ e eşit
olmalıdır.
• Alıcı terminal, eğer varsa hatalı bitin
tespiti için kullanacağı z matrisini
elde etmek için H ve r matrislerini
çarpar.
• Sonuç doğrudur.
87[E.B]
r =
Hata oluşması ve düzeltilmesi:
• Eğer iletim sırasında tek bitlik bir hata meydana
gelirse;
88[E.B]
1 bit
bozulursa
• bu hatalı matrisi H ile çarptığımız zaman elde
edeceğimiz z matrisi bize hatalı olan bitin
konumunu verir;
89[E.B]
• Burada z matrisinin gösterdiği 3*1’lik ifade H
matrisindeki sütunlardan birine eşittir.
• İşte bu sütunun sırası aynı zamanda bize iletilen
datada ki bozulan bitin sırasıdır.
• Yukarıdaki örnek için hatalı bit 3. sıradakidir.
90[E.B]
• Bunu bildiğimiz için 3. sıradaki biti çevirerek asıl
datamıza ulaşırız;
91[E.B]

More Related Content

What's hot

What's hot (20)

Next generation block ciphers
Next generation block ciphersNext generation block ciphers
Next generation block ciphers
 
Block Ciphers Modes of Operation
Block Ciphers Modes of OperationBlock Ciphers Modes of Operation
Block Ciphers Modes of Operation
 
Message AUthentication Code
Message AUthentication CodeMessage AUthentication Code
Message AUthentication Code
 
Unidad IV ADC 2021.pdf
Unidad IV ADC 2021.pdfUnidad IV ADC 2021.pdf
Unidad IV ADC 2021.pdf
 
Ch15
Ch15Ch15
Ch15
 
What is merkle tree
What is merkle treeWhat is merkle tree
What is merkle tree
 
Cryptographic Hashing Functions
Cryptographic Hashing FunctionsCryptographic Hashing Functions
Cryptographic Hashing Functions
 
Topic5 advanced encryption standard (aes)
Topic5 advanced encryption standard (aes)Topic5 advanced encryption standard (aes)
Topic5 advanced encryption standard (aes)
 
Combinational Logic with MSI and LSI
Combinational Logic with MSI and LSICombinational Logic with MSI and LSI
Combinational Logic with MSI and LSI
 
2. Stream Ciphers
2. Stream Ciphers2. Stream Ciphers
2. Stream Ciphers
 
Δίκτυα - Κεφάλαιο 3
Δίκτυα - Κεφάλαιο  3Δίκτυα - Κεφάλαιο  3
Δίκτυα - Κεφάλαιο 3
 
Ch18
Ch18Ch18
Ch18
 
Matlab to vhdl
Matlab to vhdlMatlab to vhdl
Matlab to vhdl
 
Cryptographic hash function md5
Cryptographic hash function md5Cryptographic hash function md5
Cryptographic hash function md5
 
Ike
IkeIke
Ike
 
Şifreleme Teknikleri ve SSL
Şifreleme Teknikleri ve SSLŞifreleme Teknikleri ve SSL
Şifreleme Teknikleri ve SSL
 
Acik Anahtarli Kripto Sistemler
Acik Anahtarli Kripto SistemlerAcik Anahtarli Kripto Sistemler
Acik Anahtarli Kripto Sistemler
 
Ch13
Ch13Ch13
Ch13
 
DES (Data Encryption Standard) pressentation
DES (Data Encryption Standard) pressentationDES (Data Encryption Standard) pressentation
DES (Data Encryption Standard) pressentation
 
Public key cryptography
Public key cryptography Public key cryptography
Public key cryptography
 

Viewers also liked

Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notlarıercanbulus
 
Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notlarıercanbulus
 
Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notlarıercanbulus
 
Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notlarıercanbulus
 
Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notlarıercanbulus
 
Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notlarıercanbulus
 
Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notlarıercanbulus
 
Bilgisayar Ağları
Bilgisayar AğlarıBilgisayar Ağları
Bilgisayar AğlarıHarun Çetin
 
Siber Olaylara Müdahale ve Hukuki Boyutları
Siber Olaylara Müdahale ve Hukuki BoyutlarıSiber Olaylara Müdahale ve Hukuki Boyutları
Siber Olaylara Müdahale ve Hukuki BoyutlarıAlper Başaran
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6BGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3BGA Cyber Security
 
Ağ Protokollerine Yönelik Adli Bilişim Analizi
Ağ Protokollerine Yönelik Adli Bilişim AnaliziAğ Protokollerine Yönelik Adli Bilişim Analizi
Ağ Protokollerine Yönelik Adli Bilişim AnaliziBGA Cyber Security
 
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders NotlarıBeyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders NotlarıBGA Cyber Security
 

Viewers also liked (20)

Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notları
 
Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notları
 
Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notları
 
Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notları
 
Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notları
 
Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notları
 
Bilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders NotlarıBilgisayar Ağları Ders Notları
Bilgisayar Ağları Ders Notları
 
Bilgisayar Ağları
Bilgisayar AğlarıBilgisayar Ağları
Bilgisayar Ağları
 
Siber Olaylara Müdahale ve Hukuki Boyutları
Siber Olaylara Müdahale ve Hukuki BoyutlarıSiber Olaylara Müdahale ve Hukuki Boyutları
Siber Olaylara Müdahale ve Hukuki Boyutları
 
Unix Denetim Dokümanı
Unix Denetim DokümanıUnix Denetim Dokümanı
Unix Denetim Dokümanı
 
BTRisk iOS Mobil Uygulama Denetimi Eğitimi
BTRisk iOS Mobil Uygulama Denetimi EğitimiBTRisk iOS Mobil Uygulama Denetimi Eğitimi
BTRisk iOS Mobil Uygulama Denetimi Eğitimi
 
BTRisk Adli Bilişim Eğitimi Sunumu
BTRisk Adli Bilişim Eğitimi SunumuBTRisk Adli Bilişim Eğitimi Sunumu
BTRisk Adli Bilişim Eğitimi Sunumu
 
Sizma testi bilgi toplama
Sizma testi bilgi toplamaSizma testi bilgi toplama
Sizma testi bilgi toplama
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
 
ISO 27001:2013 versiyonu ile gelen değişiklikler
ISO 27001:2013 versiyonu ile gelen değişikliklerISO 27001:2013 versiyonu ile gelen değişiklikler
ISO 27001:2013 versiyonu ile gelen değişiklikler
 
Kali Linux Hakkında Herşey
Kali Linux Hakkında HerşeyKali Linux Hakkında Herşey
Kali Linux Hakkında Herşey
 
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirmeWeb uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
 
Ağ Protokollerine Yönelik Adli Bilişim Analizi
Ağ Protokollerine Yönelik Adli Bilişim AnaliziAğ Protokollerine Yönelik Adli Bilişim Analizi
Ağ Protokollerine Yönelik Adli Bilişim Analizi
 
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders NotlarıBeyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
 

Bilgisayar Ağları Ders Notları

  • 2. 1. HATA DENETİMİ • Uygulamaların hiçbiri hataya karşı toleranslı olmadığından birçok çok uygulama için, – hatayı saptamakla yetinmeyip, – verinin hatasız bir başka kopyasının elde edilmesinin de sağlanmasına hata denetimi denir. 2[E.B]
  • 3. • Hata denetim süreçleri iki aşamada gerçekleştirilir: 1. Hatanın saptanması. 2. Hatanın düzeltilmesi. 3[E.B]
  • 4. 2. HATA SAPTAMA YÖNTEMLERİ • Hata saptama yöntemlerinde kullanılan iki yaklaşım vardır: 1. İleri hata denetimi (forward error control) 2. Geribeslemeli hata denetimi (feedback error control) 4[E.B]
  • 5. 2.1. İleri hata denetimi (forward error control): • Bu yaklaşımda, – gönderilen her karakter veya çerçeve bilgisinin (bitlerinin) yanı sıra, – fazla ve yinelenen bilgi içeren bitler gönderilir. 5[E.B]
  • 6. • Bu sayede, – alıcı hatayı fark eder ve – çerçeve ile birlikte gönderilen ek bilgi bitleri bunu saptayacak bilgiler içerdiğinde hatanın hangi bit veya bitlerde olduğunu da bulur. 6[E.B]
  • 7. • Hatasız veri, ek bilgi bitlerinden elde edilir. • Güvenilir bir ileri hata denetimine erişebilmek için gereken ek bit sayısı, gönderilen bilgideki bit sayısı arttıkça artar. 7[E.B]
  • 8. 2.2. Geribeslemeli hata denetimi (feedback error control) • Bu yaklaşımda, gönderilen her karakter veya çerçeve, alıcının yalnızca veride hata bulunduğunu saptamasına yetecek kadar ek bilgi biti içerir. • Alıcı, bu bilgi bitlerini kullanarak veride hata olup olmadığını denetler. 8[E.B]
  • 9. • Veride hata saptandığında ise, ek bilgi bitleri hatanın düzeltilmesine olanak tanımayacağından, alıcı gönderilmiş olan hatalı verinin doğru bir kopyasının gönderilmesi için istekte bulunur. 9[E.B]
  • 10. • Bu nedenle geri beslemeli hata denetimi iki aşamada ele alınır: 1. Güvenli bir şekilde hatayı saptamayı sağlayan teknikler. 2. Hata durumunda, yeniden gönderim denetim tekniklerini sağlamak için kullanılan algoritmalar. 10[E.B]
  • 11. 2.2.1. BER ve Hata Patlaması Kavramları • Hata saptama türlerini belirleyen etkenler: 1. BER kavramı, 2. Hata patlaması (error burst) kavramı 11[E.B]
  • 12. 1. BER (Bit Error Rate), bir iletişim sistemi üzerinden iletilen bir bit in belli bir zaman aralığındaki bozulma olasılığıdır. – Örneğin, BER 10 5 demek 100.000 bit arasından l bitin belli bir zaman aralığındaki bozulmasıdır. 12[E.B]
  • 13. 2. Hata patlaması, – yıldırım ve benzeri doğal olayların, – çevre koşullarının veya iletişim ortamındaki şiddetli bir elektromanyetik etkileşimin, olay süresince iletişim ortamından geçen bitleri etkileyip bozmasıyla oluşan hatalardır. 13[E.B]
  • 14. – Hata patlaması, yanlış alınmış bir bitle başlar, bir süre doğru veya yanlış bit dizisi ile devam eder ve hatalı bir bit ile biter. 14[E.B]
  • 15. • Hata patlaması, birbirini izleyen hatalı 2 bit arasındaki bitlerin sayısı olarak tanımlanır. • Bu sayıya hatalı 2 bit de dahildir. 15[E.B]
  • 16. • Ayrıca bir hata patlamasının uzunluğunu belirlerken patlamadaki son hatalı bit (1. hata patlamasının son biti) ve onu izleyen ilk patlamadaki (2. hata patlamasının başı) ilk hatalı bit ve N de 1. hata, hata patlamasının uzunluğu olmak üzere N veya daha fazla doğru bitle ayrılmalıdır. 16[E.B]
  • 17. • Hata türü önemlidir, çünkü farklı hata türleri için farklı hata bulma yöntemleri kullanılır. • Ayrıca, bazı yöntemlerde kullanılan bit sayısı, fark edilecek patlama uzunluğunu tanımlar. • En fazla kullanılan yöntemlerden bazıları, eşlik biti denetimi (parity) ve CRC dönüşümlü fazlalık denetimidir. 17[E.B] Hata Patlaması Örneği
  • 18. 2.2.1.1. Eşlik biti Denetimi (Parity Check) • Eşzamansız ve eşzamanlı gönderimde, eşlik biti en sık kullanılan hata saptama yöntemlerinden birisidir. 18[E.B]
  • 19. • Eşlik biti (parity bit), ikili gösterimdeki bir sayıda 1’lerin toplamının her zaman tek (ya da çift) olmasını sağlayacak şekilde sözcüğe eklenen bittir. 19[E.B]
  • 20. • Çift eşlik (even parity), eşlik biti de içinde olmak üzere bir karakterin içerisindeki l bitlerinin sayısının çift olması durumudur. • Tek eşlik ise (odd parity), yine eşlik biti de içinde olmak üzere, karakterdeki l'lerin sayısının tek olması durumudur. 20[E.B]
  • 21. 21[E.B] Eşlik bitinin bir uygulama alanı da, 7 bit içeren ASCII karakterleridir.
  • 22. • AVANTAJ: Yalnızca bir bit kullanarak hata kontrolü yapması bu yöntemi avantajlı kılar. • Ancak kontrol için tek bit kullandığından, çok güvenilir olmayan hata denetimleri yapılabilir. 22[E.B]
  • 23. • SAKINCA: bu yöntemin iletilen sayıda iki bit birden bozulmaya uğrarsa bunu tespit edememesidir. • Bu kontrolde hangi bitin hatalı olduğunu anlama imkanı olmadığından veri parçası tamamen ihmal edilir ve hedef, kaynaktan verinin tekrar ister. 23[E.B]
  • 24. • Gürültülü bir iletim ortamında bu yöntemle verinin iletilmesi çok uzun zaman alabilir veya hiç gerçekleşmeyebilir. 24[E.B]
  • 25. Örnek: 1)Aşağıdaki 8 bitlik kod sözcüklerinden hangisi çift eşlik (even parity) biti kullanıldığında bir hata durumunu gösterir? a. 01100101 b. 01111000 c. 10000011 d. 00010100 e. 11000110 cevap c 25[E.B]
  • 26. 2)Aşağıdaki 8 bitlik kod sözcüklerinden hangisi tek eşlik (odd parity) biti kullanıldığında bir hata durumunu gösterir? a. 01010100 b. 01111001 c. 10011000 d. 01100101 e. 11001101 Çözüm:d 26[E.B]
  • 27. • Örneğin, 1010011 0 bit dizisinin çift eşlik kullanılarak gönderildiğini varsayalım. • Bu ikil dizisi alıcıya 10110110 şeklinde , yani 4. biti hatalı alınarak ulaşsın. • Alıcı çift eşlik kullanıldığını ve l'lerin sayısının çift olması gerektiğini bildiğinden, bu bit dizisinin kendisine hatalı ulaştığını anlar ve yeniden gönderilmesini ister. 27[E.B] Eşlik biti (Parity Check) Denetiminin zayıflığı
  • 28. • Aynı bit dizisinin (1010011 0 ) bu kez 4. ve 7. bitlerinin hatalı (10110100) ulaştığını varsayalım. • Bit dizisi alıcıya şeklinde ulaştığında, alıcı bu bit dizisi içerisinde hata olduğunu fark edemeyecek ve karakteri hatalı alacaktır. • Bu nedenle, çift bit hatalarını ve hata patlamalarını saptayacak başka yöntemler kullanılmalıdır. 28[E.B]
  • 29. 2.2.1.2. İki-Boyutlu Eşlik İkili Yöntemi (2-Dimensional Parity) • İki boyutlu eşlik, bir çerçevenin içerdiği karakterlerin her birine karşı gelen her bit konumu için benzer bir hesaplama yapar. • Bu işlem, her karakter için bir eşlik bitine ek olarak, fazladan bir eşlik byte’ından oluşmasına neden olur. 29[E.B]
  • 31. 2.2.1.3. CRC (cyclic redundancy check), Dönüşümlü Fazlalık Sınama Kodu • Eşlik biti yöntemi, Çift bit hatalarını fark edemediğinden, çerçeve veya blok iletim yöntemlerinde polinom kodlar kullanılır. • Bu yöntemde, çerçeveyi gönderen bilgisayar tarafından çerçevenin içeriğine göre ve çerçevenin sonuna eklenecek şekilde her çerçeve için ayrı bir denetim seti (check digits) hesaplanır. • Daha sonra alıcı, çerçeve ve denetim sayıları üstünde benzer bir hesaplama yapar. • İletilen çerçevede hiç hata yoksa, bilinen bir sonuç elde edilmelidir. • Farklı bir cevap bulunursa bu bir hata olduğunu gösterir. 31[E.B]
  • 32. • Denetim seti, iletişim ortamının ve beklenen iletim hatalarının türüne uyacak şekilde seçilir. • Ancak 16 ve 32 bit denetim sayıları, en sık kullanılanlardır ve çerçeve denetim dizisi (frame check squence) FCS veya hata saptama kodu olarak bilinir. • Hata saptama kodları içerisinde en fazla kullanılan ve hata saptama oranı en fazla olan kod, dönüşümlü fazlalık sınama kodu, kısaca CRC'dir (Cyclic Redundancy Check). 32[E.B]
  • 33. • Bu teknikte, gönderilecek olan ileti ikili düzende kodlanmış (binary) uzun bir sayıdır (çerçevedir). • Bu sayı, bir başka ikili asal sayıya (asal bir üreteç polinoma) bölünür. • Bu bölme işlemi sonucunda kalan bitler gönderilecek olan iletinin sonuna eklenir ve ileti gönderilir. • Alıcı, iletiyi aynı asal polinoma böler. • Bu bölme işlemi sonucunda kalan, 0 olmalıdır. • Kalan 0 değilse alıcı bir hata olduğunu anlar ve çerçevenin yeniden gönderilmesini ister. 33[E.B]
  • 34. • Bu yöntemin matematiksel temeli şudur. Polinom kodları mod-2 aritmetiği kullanılarak 2'li düzendeki sayıların aşağıdaki özelliğini kullanır. – M(x): gönderilecek k bitli bit dizisi (gönderilecek olan çerçeve) – G(x): (n+l) bitli sayı (bölen, yani üreteç polinom) – R(x): kalan n bitli sayı (k>n). • Buradan aşağıdaki eşitlik yazılabilir – (M(x) * 2 n + R(x) ) /G(x) = Q(x) + (R(x) /G(x))+(R(x) /G(x)) • Bu da Q(x)'e eşittir. Çünkü biti düzende bir sayının kendisiyle toplamı 0'dır. Bu da kalanın 0 olacağını gösterir. 34[E.B]
  • 35. • Bu işlemleri gerçekleştirirken, ikili düzende bölme işleminin EXCLUSIVE -OR (eldesiz toplama) işlemi ile gerçekleştirildiğini anımsayalım. • CRC algoritması karmaşık görünmekle birlikte, donanım üzerinde kolayca gerçekleştirilir. 35[E.B]
  • 36. Algoritmanın bir örnek yardımıyla incelenmesi • Öncelikle, gönderilecek olan iletiyi M ile tanımlayalım. • Bu ileti n bitlik bir CRC sayısı ile korunsun (yani iletinin sonuna n tane bit eklensin). Örnek: dört bitlik bir ileti 1111, 1101 üreteç polinomu kullanılarak CRC yöntemi ile korunmuş olsun CRC sınama bitlerini oluşturalım. 36[E.B]
  • 37. 1. Birinci adımda, bu iletinin içeriği 2 n ile çarpılır. Bu işlem iletinin sonuna n tane 0 eklemeye eşdeğerdir. – iletiye önce 3 sıfır eklendi, çünkü CRC üç bitten oluşacaktır. (üreteç polinomun bit sayısı 4'tür, n+1 = 4). – 1111000 37[E.B]
  • 38. 2. ikinci adımda ileti, sonuna eklenen n tane 0 ile birlikte, daha önce belirlenmiş bir üreteç polinomuna bölünür. Üreteç polinomdaki bit sayısı n+l'dir. Yani denetim bitleri sayısından l fazladır. • CRC sınama bitlerini bulabilmek için iletinin sonuna 3 tane sıfır biti ekleyelim (n=3) ve 1101 polinomuna (1.x3+l.x2+0.x1 + l.x0 yani x3 + x2+l) bölelim. • Yukarıda da belirttiğimiz gibi mod 2 bölme işlemi tek tek bitler alınarak paralel bir şekilde exclusive- OR işlemini gerçekleştirmeğe eşdeğerdir. 38[E.B]
  • 40. 3. Üçüncü adımda, bu bölme işleminden kalan n tane bit, gönderilecek olan iletinin sonuna eklenir (1. adımda , iletinin sonuna n tane 0 eklerken, şimdi n tane sıfırın yerine n tane kalan biti eklediğimizi anımsayalım). İletilecek olan çerçeve: 1111111 40[E.B]
  • 41. 4. Dördüncü adımda, ileti özgün ileti + bölme işleminden kalan bitlerle birlikte bir iletişim hattı üzerinden alıcısına gönderilir. 1111111 41[E.B]
  • 42. 5. Beşinci adımda, alıcı iletiyi alır ve aynı üreteç polinoma böler. Doğal olarak kalan 0 olmalıdır. Kalan 0 ise alıcı, iletiyi doğru aldığını anlar, iletinin sonundaki n tane denetim bitini atar ve özgün iletiyi saklar. 42[E.B]
  • 43. 6. Altıncı adımda, alıcı tarafındaki bölme işleminden kalan sonuç 0'dan farklıysa, alıcı, bundan sonraki bölümde anlatılacak yöntemlerden birini kullanarak iletinin yeniden gönderilmesi isteğinde bulunur.
  • 44. - Alıcıya gelen bitler 1111111 olarak (yanı hatasız) gelmiş olsun. Alıcı aldığı bu bitleri aynı üreteç polinoma bölerek (x3 + x2+l, 1101) kalanı bulacaktır. - Bu bölme işleminden kalan 0 olduğu için iletiyi hatasız aldığını anlayacaktır. Bunun üzerine iletilen CRC sınama bitlerini atarak (1111) özgün iletiyi saklayacaktır.
  • 45. HATA DURUMU • Alıcıya gelen bitler 1110111 olarak (yani 4- biti hatalı) gelmiş olsun. Alıcı aldığı bu bitleri yine aynı üreteç polinoma (x 3 + x2+ 1) bölerek kalanı bulacaktır. • Kalan '101' yani 0'dan farklı. Bu durumda alıcı iletiyi hatalı olarak aldığını saptayacak ve ileride anlatılacak yöntemlerden birisi ile bu iletinin hatalı alındığını ve yeniden gönderilmesi gerektiğini kaynak bilgisayara bildirecektir. 45[E.B]
  • 46. • Bu teknikte üreteç polinomunun seçimi çok önemlidir, çünkü polinom hangi tür hataların fark edileceğini tanımlar. 46[E.B]
  • 47. • CRC yöntemiyle şunları belirleyebiliriz: – Tüm tek bit hatalarını – Tüm çift bit hatalarını – Tüm tek sayılı bit hatalarını – R'den küçük tüm hata patlamalarını (R üreteç polinomun derecesidir) – R'den büyük çok fazla hata patlamasını 47[E.B]
  • 48. • Uygulamada kullanılan CRC örneklerinin biri, CRC-16'dır (16- bit CRC kod) ve l 1000 0000 0000 0l0l'dir. Ethernet CRC-32 (32-bit CRC kod) kullanır. 48[E.B]
  • 50. Örnek: 50[E.B] İleti 11100110 olsun, 11001 üreteç polinomu kullanarak CRC yöntemi ile iletilecek veriyi bulunuz. Bulunan veriyi kontrol ediniz.
  • 51. • Üreteç: 11001 olduğuna göre n+1=5 tir. • İletilecek verinin sonuna n=4 adet sıfır ilave edilerek veri ve üreteç xor’lanır. 51[E.B] Çözüm 1
  • 55. • üreteç 1001, Veri 101110 ise kontrol bit dizisini bulunuz. Kontrol 011 olur 55[E.B] soru
  • 56. G(generator -üreteç) =1001 (n+1, n=3) D (Data-veri)=101110 R (remainder-kalan) bulunacak. Sonuç: 011 56[E.B]       = G D remainderR n 2*
  • 57. 2.2.1.4. internet Sağlama-Toplamı (Checksum) Algoritması • Bu yöntem OSI (Open Systems Interconnection) başvuru modelinin veri bağlantı katmanında kullanılmamakla birlikte, CRC ve eşlik biti ile aynı işlevi sağlar. 57[E.B]
  • 58. • CRC yöntemi kadar kesin koruma yöntemi sağlayamaz, fakat veri bağlantı katmanının üstündeki katmanlar için güvenle kullanılabilir. • Çünkü veri bağlantı katmanında hata bulma teknikleri (genelde CRC) zaten uygulanmaktadır. 58[E.B]
  • 59. • internet sağlama toplamı algoritmasının temeli oldukça basittir. Şöyle ki; 1. Gönderdiğin tüm kelimeleri (word) topla 2. Elde ettiğin toplamı sağlama toplama olarak gönder 59[E.B]
  • 60. • Alıcı da aynı işlemleri tekrar ederek, bulduğu sağlama toplamını gönderilenle karşılaştırır. • Bir hata durumunda sonuçlar farklı çıkacağından, alıcıyı iletimde bir hata olduğu konusunda uyarır. • Bu yöntem, farklı şekillerde kullanılabilir, internet protokolü (IP) 16 bit uzunluğunda bir sağlama toplamı kullanır. 60[E.B]
  • 61. 3.HATA DÜZELTME KODLARI • Hata düzeltme teknikleri iki yaklaşımla gerçekleştirilir. 61[E.B]
  • 62. 1. Hatanın saptanıp, iletinin yeniden gönderilmesinin sağlanması. – alıcı tarafında hatanın saptanmasını izleyen ve hatalı çerçevelerin yeniden gönderilmesini sağlayan Otomatik Tekrar İstemi (ARQ- Automatic Repeat Request) protokolleri aracılığıyla gerçekleştirilir (Bu konu ve ilgili protokoller, sonra ayrıntılı olarak anlatılacaktır). 62[E.B]
  • 63. 2. Hatanın alıcıda düzeltilebilmesinin sağlanması. – Göndericinin bir hata durumunda, • aynı çerçeveyi yeniden göndermesinin çok güç olduğu, • iletişim ortamlarının çok pahalı olduğu • bir çerçevenin yeniden iletilmesinin çok fazla zaman kaybına yol açtığı durumlarda, hatanın alıcıda düzeltilebilmesini sağlayan çeşitli teknikler geliştirilmiştir. 63[E.B]
  • 64. – Bu gibi durumlarda, çerçevedeki hata çok büyük bir hata patlaması değilse, alıcıda düzeltilmeye çalışılır. – Bu teknikler arasında en sık kullanılan yöntem, Hamming kodlamasıdır. 64[E.B]
  • 66. 3.1.a. Richard Wesley Hamming (11 Şubat 1915 – 7 Ocak 1998) kimdir? • Yaptığı çalışmalar ile bilgisayar bilimleri ve telekomünikasyon alanlarını bir hayli etkilemiş bir matematikçidir. • Katkıları arasında Hamming kodu (Hamming matrisini kullanır), Hamming penceresi, Hamming sayıları, küre paketleme (veya hamming sınırı) ve Hamming mesafesi vardır. 66[E.B]
  • 67. • Chicago'da doğmuş ve Monterey, California'da hayata gözlerini yummuştur. • Lisans derecesini 1937 yılında Chicago Üniversitesi'nden, yüksek lisansını 1939'da Nebraska Üniversitesi'nden ve doktora derecesini de 1942 yılında Urbana- Champaign'deki Illinois Üniversitesi'nden almıştır. 67[E.B]
  • 68. • II. Dünya Savaşı sırasında Lousville Üniversitesi'nde profesörlük yapmış ve 1945 yılında Manhattan Projesi üzerinde çalışmak için bu görevini bırakmıştır. • Bu proje kapsamında fizikçilerin ortaya koydukları denklemlerin çözülmesi için ilk elektronik sayısal bilgisayarlardan bir kısmını programlamıştır. • Programın amacı atom bombasının ateşlenmesinin Dünya atmosferinde yanmaya yol açıp açmayacağını tespit etmek idi. 68[E.B]
  • 69. • Bu hesaplamanın sonucunda atmosferde bir yanma meydana gelmeyeceği anlaşılmış ve ABD bombayı önce New Mexico'da denemiş ardından da iki kere Japonya'ya karşı kullanmıştır. • Daha sonra, 1946-1976 yılları arasında Bell Telefon Laboratuvarlarında çalışan Hamming, Claude E. Shannon ile işbirliği yapmıştır. • 23 Temmuz 1976 yılında donanma yüksek okulunda 1997 yılına dek öğretim görevlisi olarak çalıştı ve emekli profesör oldu. • Hamming, Association for Computing Machinery organizasyonunun kurucuları arasındadıdr ve başkanlık da yapmıştır. 69[E.B]
  • 70. 3.1.b. Gelişimi • Hamming 1940’larda Bell Laboratuarları’nda manyetiksel röle bazlı, zaman döngüsü saniye olan Bell Model V adlı bir bilgisayarda çalışmıştır. • Giriş hataları okunabilen punch kartlarına yüklenirdi. • Operatörler problemi düzeltmesi için günler boyunca özel kodlar hataları bulur ve ışık yakardı. • Mesaiden sonraki periyotlarda ve hafta sonlarında, operatörler olmadığından makine diğer işlemlere geçerdi. 70[E.B]
  • 71. • Hamming hafta sonları çalışırdı ve kart okuyucunun güvenilmez olduğundan programlarına ilk satırdan başlamak zorunda kalması onu deli ediyordu. • Yıllar içinde hata düzeltme problemi üzerinde çalışarak çok güçlü bir dizi algoritma yarattı. • 1950 yılında bugünkü adıyla aynı olan ve hala kullanılan Hamming Kodu'nu yayımladı. 71[E.B]
  • 72. 3.1.c.tanım • Bir iletişim ortamı üzerinden iletilen bit dizisinin en fazla k bitinin bozulması durumunda, bit dizisi içerisindeki hata düzeltilebiliyorsa, bu koda k-bit hata bağışıklığı denir. 72[E.B]
  • 73. • Kodlama terminolojisinde veri bitleri ile veriye eklenen hata saptama bitlerini birleştiren birleşik ileti birimi kod sözcük (codeword) olarak adlandırılır. • Örneğin, m bitten oluşmuş bir veri, r bitlik hata denetim veya tekrar bitleri ile (n = m + r)-bitlik bir kod sözcük oluşturur. – Örnek: m=4 bit r=3bit → n=4+3=7 7-bitlik kod sözcüğü 73[E.B]
  • 74. • İki geçerli kod sözcüğün farklılaştığı en düşük bit konumu sayısı, kodun Hamming uzaklığı (hamming distance) olarak bilinir. ÖRNEK: • "toned" ile "roses" arasında 3. • 1011101 ile 1001001 arasında 2. • 2173896 ile 2233796 arasında 3. • Ercan ile Erkan arasında 1. 74[E.B]
  • 75. 75[E.B] Tanım (Uzaklık Fonksiyonu) : u ve v, R n kümesinin iki elemanı olmak üzere u ve v arasındaki Hamming uzaklığı { }ii vuivud ≠=),( şeklinde tanımlanır ve { }0: ∪→× INRRd nn ( ) ( )vudvu ,, → şeklinde tanımlanan bu dönüşüm aşağıdaki özellikleri sağlar . i ) ( ) ( ) vuvudvudiçinRvu n =⇔=≥∈∀ 0,,0,, ii) ),(),(, uvdvudiçinRvu n =∈∀ ii) ),(),(),(,, vtdtudvudiçinRtvu n +≤∈∀
  • 76. • iki kod sözcük arasında kaç bit konumunun değiştiğini bulmak için, önce iki kod sözcüğe XOR işleci (operatör) uygulanır ve sonra bu işlem sonucunda elde edilen l'lerin sayısı toplanır. 76[E.B]
  • 77. • Örneğin, her karakterin 7 veri biti ve bir eşlik biti ile gösterildiği bir kod sözcük düşünelim. Çift eşlik kullanıldığını varsayarsak bu şemayı izleyen kod sözcükler: 0000000 0 0000001 1 0000010 1 0000011 0 • Geçerli her kod sözcük en az iki bit konumunda farklı olduğundan Hamming uzaklığının 2 olduğunu çıkarabiliriz. • Bu da sonuçtaki bit yapısı farklı, ancak geçerli bir kod sözcük olacağından, bu şemanın 2 bitli hataları saptayamayacağını gösterir. 77[E.B]
  • 78. • Bununla birlikte, bir kod sözcükteki tek bir bit bozulursa, geçersiz bir kod sözcük ortaya çıkacağından bütün tek bitli hataları saptayabilir. • Örneğin, Hamming uzaklığı 3 olan bir kod sözcük tek bitli hataları düzeltebilir, 2 bitli hataları bulabilir. 78[E.B]
  • 79. • Eğer iki kod sözcük arasındaki Hamming uzaklığı u ise, bir kod sözcüğü diğerine çevirmek için, u, tek bit hatası gerekecektir. • u hatayı saptamak için, u+1 koda, • u hatayı düzeltmek için ise 2u+ l koda gerek duyulur. 79[E.B]
  • 80. • Günümüzde Hamming kodlama deyince akıllara ilk olarak 1950 yılında açıklanan (7,4) lük Hamming kodlama yöntemi gelmektedir. • Bu Hamming kodlama yönteminde her 4 bitlik data için 3 bit kontrol biti eklenir. • Hamming’ in geliştirdiği bu (7,4) algoritması her hangi bir tek bitlik hatayı düzeltebilir ya da bütün tek veya iki bitlik hataları tespit edebilir. 80[E.B]
  • 81. 3.1.d. (7,4) Hamming Kodlama • Bu Hamming kodlama yönteminde her 4 bitlik data için 3 bit kontrol biti eklenir. • Hamming’ in geliştirdiği bu (7,4) algoritması her hangi bir tek bitlik hatayı düzeltebilir ya da bütün tek veya iki bitlik hataları tespit edebilir. • Hamming kodu parity matrislerini çoklayarak genişletilmesinden oluşan ve “Hamming matrisi” adı verilen matrislerle çalışır. 81[E.B]
  • 82. • (7,4) lük Hamming kodlama da birbirleriyle bağlantılı olan Kod üretici matris G ve Parity (eşlik) kontrol matrisi H olan 2 çeşit matris kullanırız; • Bu yöntemde 4 bit veri iletilir. 82[E.B]
  • 83. • Göndereceğimiz 4 bitlik data “1001” olsun. Bu datayı göndermek için kullanacağımız vektör p olur. 83[E.B] örnek
  • 84. • Datamızı paketlemek için G matrisini kullanırız. • 7*4’lük G matrisi ile asıl datamızı taşıyan 4*1’lik p matrisinin mod 2 ye göre çarpılmasından elde edeceğimiz 7*1’lik bir x matrisi (7,4) lük Hamming kodlama yöntemi ile paketlenmiş veriyi oluşturacaktır. 84[E.B] ?
  • 85. 85[E.B] • Mod 2’de çarpım işlemi yalnızca bir dizi mantıksal AND ve XOR işlemidir. • [1000] satır vektörü ile [1001] sütun vektörünün çarpımı mod 2’de şu şekilde olur: 1000 & 1001 1000 • [1000] vektörünün mod 2 toplamı: 1^0^0^0=1 olur bu da x matrisinin ilk elemanını verir.
  • 86. • [0100] satır vektörü ile [1001] sütun vektörünün çarpımı mod 2’de şu şekilde olur: 0100 & 1001 = 0000 • [0000] vektörünün mod 2 toplamı: 0^0^0^0=0 olur bu da x matrisinin ikinci elemanını verir. • Devamı bu şekilde hesaplanır. 86[E.B] = r
  • 87. • Bir hata oluşmazsa alınan veri matrisi r, iletilen veri matrisi x’ e eşit olmalıdır. • Alıcı terminal, eğer varsa hatalı bitin tespiti için kullanacağı z matrisini elde etmek için H ve r matrislerini çarpar. • Sonuç doğrudur. 87[E.B] r =
  • 88. Hata oluşması ve düzeltilmesi: • Eğer iletim sırasında tek bitlik bir hata meydana gelirse; 88[E.B] 1 bit bozulursa
  • 89. • bu hatalı matrisi H ile çarptığımız zaman elde edeceğimiz z matrisi bize hatalı olan bitin konumunu verir; 89[E.B]
  • 90. • Burada z matrisinin gösterdiği 3*1’lik ifade H matrisindeki sütunlardan birine eşittir. • İşte bu sütunun sırası aynı zamanda bize iletilen datada ki bozulan bitin sırasıdır. • Yukarıdaki örnek için hatalı bit 3. sıradakidir. 90[E.B]
  • 91. • Bunu bildiğimiz için 3. sıradaki biti çevirerek asıl datamıza ulaşırız; 91[E.B]