Phần mềm demo phát hiện lỗi với chia module 2 – nhập môn truyền số liệu và mạng

Phát hiện lỗi phương pháp Kiểm tra dư thừa vòng – Cyclic Redundancy Check (CRC) .Đây là 1 phương pháp phổ biến và có hiệu quả nhất trong việc phát hiện lỗi.

Cơ chế hoạt động: Cho 1 block hay 1 message gồm k bit,bên gửi sinh ra 1 chuỗi gồm n-k bit được gọi là chuỗi kiểm tra frame (Frame Check Sequence – FCS) như vạy sẽ tạo ra 1 frame gồm n bit và sau đó được chia bởi 1 các số đã xác định trước. Bên nhận sau đó cũng đem chia frame nhận được bởi các số này và nếu không có dư thì cho rằng không có lỗi. Phương pháp này được chia thành các loại như Modul 2, Đa thức và lô gic số học.

Phương pháp Modul 2: Sử dụng phép công không nhớ trong cơ số 2 hoặc phép trừ không nhỡ trong cơ số 2 (XOR)

Ví dụ:

 

1111          1111                                 11001

+1010         -0101                                     x11

0101          1010                                 11001

11001

101011

Khi đó:

T= 1 frame gồm n bit để truyền

D= 1 block hay 1 message gồm k bit, đây là k bit đầy tiên của T

F= FCS gồm n-k bit và là các bit cuối cùng của T

P là 1 mẫu gồm n-k+1 bit là số chia được xác định trước

Ta mong muốn rằng T/P không có dư

Thuật tóan được thực hiện như sau:

  • Ban đầu ta gắn k bit 0 vào cuối D để được n bit
  • Thực hiện phép chia lấy phần dư của n bit này cho mẫu P để tạo ra n-k bit của FCS
  • Gắn k bit của số dư vào cuối của T để tạo thành 1 block và truyền
  • Bên nhận sau khi nhận được block gồm n bit, thực hiện việc chia n bit này cho mẫu P, nếu kết quả chia không có dư thì khẳng định việc truyền là không bị lỗi

Ví dụ: Message D=1010001101(10 bits)

Pattern P=110101(6bits)

FSC R=Được tính gồm 5 bits

Do vậy: n=15, k=10, n-k=5

Từ k bits ban đầu ta có được 15 bits: 101000110100000

Thực hiện phép chia 15 bits này cho mẫu P (110101)

1101

/—————————————————————————

P=110101    10100011010000

110101

111011

110101

111010

110101

111110

110101

101100

110101

110010

110101

01110

Phần dư là 01110 Do đó ta có block 15 bits: 101000110101110 và được truyền đi. Bên nhận sau khi nhận được chuỗi bit thực hiện phép chia chuỗi bít này cho mẫu P nếu không có dư thì khẳng định không có lỗi, nếu có dư thì cho rằng đã có lỗi do đó có thể vứt bỏ block vừa nhận được và yêu cầu gửi lại.

Mẫu P được chọn sao cho dài hơn FSC 1 bit và mẫu bit được chọn phụ thuộc vào các loại lỗi có thể sảy ra, thông thường các bit cao và bit thấp phải được chọn bằng 1.

Phần mềm demo quá trình phát hiện lỗi dựa trên phương pháp module 2, do tác giả Phan Liêm viết:

Link tải file: https://ouo.io/gabLT9 

link mediafire: https://svtb.com.vn/fw/46

Video demo cách sử dụng:

 

Giới thiệu honest 237 bài viết
Mình lập blog này với mục đích lưu lại + chia sẻ các các kiến thức mình đã biết hoặc đang tìm hiểu. Cơ bản giúp ích cho mình :) Nhưng hy vọng sẽ mang lại sự khởi đầu thuận lợi cho người mới bắt đầu!