91
Hata Saptama ve Düzeltme Teknikleri 1[E.B]

Bilgisayar Ağları Ders Notları

Embed Size (px)

Citation preview

Page 1: Bilgisayar Ağları Ders Notları

Hata Saptama ve

Düzeltme Teknikleri

1[E.B]

Page 2: Bilgisayar Ağları Ders Notları

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]

Page 3: Bilgisayar Ağları Ders Notları

• Hata denetim süreçleri iki aşamada gerçekleştirilir: 1. Hatanın saptanması. 2. Hatanın düzeltilmesi.

3[E.B]

Page 4: Bilgisayar Ağları Ders Notları

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]

Page 5: Bilgisayar Ağları Ders Notları

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]

Page 6: Bilgisayar Ağları Ders Notları

• 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]

Page 7: Bilgisayar Ağları Ders Notları

• 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]

Page 8: Bilgisayar Ağları Ders Notları

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]

Page 9: Bilgisayar Ağları Ders Notları

• 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]

Page 10: Bilgisayar Ağları Ders Notları

• 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]

Page 11: Bilgisayar Ağları Ders Notları

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]

Page 12: Bilgisayar Ağları Ders Notları

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 105 demek 100.000 bit

arasından l bitin belli bir zaman aralığındaki bozulmasıdır.

12[E.B]

Page 13: Bilgisayar Ağları Ders Notları

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]

Page 14: Bilgisayar Ağları Ders Notları

– 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]

Page 15: Bilgisayar Ağları Ders Notları

• 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]

Page 16: Bilgisayar Ağları Ders Notları

• 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]

Page 17: Bilgisayar Ağları Ders Notları

• 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

Page 18: Bilgisayar Ağları Ders Notları

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]

Page 19: Bilgisayar Ağları Ders Notları

• 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]

Page 20: Bilgisayar Ağları Ders Notları

• Ç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]

Page 21: Bilgisayar Ağları Ders Notları

21[E.B]

Eşlik bitinin bir uygulama alanı da, 7 bit içeren ASCII karakterleridir.

Page 22: Bilgisayar Ağları Ders Notları

• 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]

Page 23: Bilgisayar Ağları Ders Notları

• 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]

Page 24: Bilgisayar Ağları Ders Notları

• 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]

Page 25: Bilgisayar Ağları Ders Notları

Ö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]

Page 26: Bilgisayar Ağları Ders Notları

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]

Page 27: Bilgisayar Ağları Ders Notları

• Ö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ığı

Page 28: Bilgisayar Ağları Ders Notları

• 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]

Page 29: Bilgisayar Ağları Ders Notları

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]

Page 30: Bilgisayar Ağları Ders Notları

Giren Çıkan

Page 31: Bilgisayar Ağları Ders Notları

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]

Page 32: Bilgisayar Ağları Ders Notları

• 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]

Page 33: Bilgisayar Ağları Ders Notları

• 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]

Page 34: Bilgisayar Ağları Ders Notları

• 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) * 2n + 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]

Page 35: Bilgisayar Ağları Ders Notları

• 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]

Page 36: Bilgisayar Ağları Ders Notları

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]

Page 37: Bilgisayar Ağları Ders Notları

1. Birinci adımda, bu iletinin içeriği 2n 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]

Page 38: Bilgisayar Ağları Ders Notları

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]

Page 39: Bilgisayar Ağları Ders Notları

39[E.B]

Page 40: Bilgisayar Ağları Ders Notları

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]

Page 41: Bilgisayar Ağları Ders Notları

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]

Page 42: Bilgisayar Ağları Ders Notları

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]

Page 43: Bilgisayar Ağları Ders Notları

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.

Page 44: Bilgisayar Ağları Ders Notları

- 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.

Page 45: Bilgisayar Ağları Ders Notları

HATA DURUMU • Alıcıya gelen bitler 1110111 olarak (yani 4- biti hatalı)

gelmiş olsun. Alıcı aldığı bu bitleri yine aynı üreteç polinoma (x3+ 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]

Page 46: Bilgisayar Ağları Ders Notları

• Bu teknikte üreteç polinomunun seçimi çok önemlidir, çünkü polinom hangi tür hataların fark edileceğini tanımlar.

46[E.B]

Page 47: Bilgisayar Ağları Ders Notları

• 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]

Page 48: Bilgisayar Ağları Ders Notları

• 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]

Page 49: Bilgisayar Ağları Ders Notları

CRC Etkisi

49[E.B]

Page 50: Bilgisayar Ağları Ders Notları

Örnek:

50[E.B]

İleti 11100110 olsun, 11001 üreteç polinomu kullanarak CRC yöntemi ile iletilecek veriyi bulunuz. Bulunan veriyi kontrol ediniz.

Page 51: Bilgisayar Ağları Ders Notları

• Ü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

Page 52: Bilgisayar Ağları Ders Notları

veya

52[E.B]

Page 53: Bilgisayar Ağları Ders Notları

İletilecek olan: 111001100110

53[E.B]

Page 54: Bilgisayar Ağları Ders Notları

54[E.B]

Kontrol

Page 55: Bilgisayar Ağları Ders Notları

• üreteç 1001, Veri 101110 ise kontrol bit dizisini bulunuz.

Kontrol 011 olur

55[E.B]

soru

Page 56: Bilgisayar Ağları Ders Notları

G(generator -üreteç) =1001 (n+1, n=3) D (Data-veri)=101110 R (remainder-kalan) bulunacak. Sonuç: 011

56[E.B]

=

GDremainderR

n2*

Page 57: Bilgisayar Ağları Ders Notları

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]

Page 58: Bilgisayar Ağları Ders Notları

• 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]

Page 59: Bilgisayar Ağları Ders Notları

• 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]

Page 60: Bilgisayar Ağları Ders Notları

• 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]

Page 61: Bilgisayar Ağları Ders Notları

3.HATA DÜZELTME KODLARI

• Hata düzeltme teknikleri iki yaklaşımla gerçekleştirilir.

61[E.B]

Page 62: Bilgisayar Ağları Ders Notları

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]

Page 63: Bilgisayar Ağları Ders Notları

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]

Page 64: Bilgisayar Ağları Ders Notları

– 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]

Page 65: Bilgisayar Ağları Ders Notları

3.1. Hamming Uzaklığı ve

Hamming Kodlaması

65[E.B]

Page 66: Bilgisayar Ağları Ders Notları

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]

Page 67: Bilgisayar Ağları Ders Notları

• 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]

Page 68: Bilgisayar Ağları Ders Notları

• 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]

Page 69: Bilgisayar Ağları Ders Notları

• 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]

Page 70: Bilgisayar Ağları Ders Notları

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]

Page 71: Bilgisayar Ağları Ders Notları

• 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]

Page 72: Bilgisayar Ağları Ders Notları

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]

Page 73: Bilgisayar Ağları Ders Notları

• 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]

Page 74: Bilgisayar Ağları Ders Notları

• İ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]

Page 75: Bilgisayar Ağları Ders Notları

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 +≤∈∀

Page 76: Bilgisayar Ağları Ders Notları

• 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]

Page 77: Bilgisayar Ağları Ders Notları

• Ö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]

Page 78: Bilgisayar Ağları Ders Notları

• 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]

Page 79: Bilgisayar Ağları Ders Notları

• 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]

Page 80: Bilgisayar Ağları Ders Notları

• 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]

Page 81: Bilgisayar Ağları Ders Notları

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]

Page 82: Bilgisayar Ağları Ders Notları

• (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]

Page 83: Bilgisayar Ağları Ders Notları

• 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

Page 84: Bilgisayar Ağları Ders Notları

• 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]

?

Page 85: Bilgisayar Ağları Ders Notları

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.

Page 86: Bilgisayar Ağları Ders Notları

• [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

Page 87: Bilgisayar Ağları Ders Notları

• 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 =

Page 88: Bilgisayar Ağları Ders Notları

Hata oluşması ve düzeltilmesi: • Eğer iletim sırasında tek bitlik bir hata meydana

gelirse;

88[E.B]

1 bit bozulursa

Page 89: Bilgisayar Ağları Ders Notları

• bu hatalı matrisi H ile çarptığımız zaman elde edeceğimiz z matrisi bize hatalı olan bitin konumunu verir;

89[E.B]

Page 90: Bilgisayar Ağları Ders Notları

• 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]

Page 91: Bilgisayar Ağları Ders Notları

• Bunu bildiğimiz için 3. sıradaki biti çevirerek asıl datamıza ulaşırız;

91[E.B]