ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

กระบวนการตรวจจับข้อผิดพลาด (Error Detection Process)

การตรวจจับข้อผิดพลาด
การตรวจจับข้อผิดพลาด

 

กระบวนการตรวจจับข้อผิดพลาด คือ การนำเทคนิคหรือวิธีการมาใช้ในการหาข้อผิดพลาดในการรับ-ส่งข้อมูลระหว่าเครือข่ายโดยการใช้วิธีการคำนวณในการตรวจสอบโดยวิธีการตรวจสอบความผิดพลาดนั้นมีด้วยกัน 3 แบบ ได้เเก่ การใช้ Bit ตรวจสอบ (Parity Checks) การหาผลรวม (Checksum) การใช้ CRC (Cyclic Redundancy Checksum) โดยแบบก็มีวิธีที่แตกต่างกันออกไป 

 

การตรวจจับข้อผิดพลาด (Error Detection)

  1. การใช้ Bit ตรวจสอบ (Parity Checks)
  2. การหาผลรวม (CheckSum)
  3. การใช้ CRC (Cyclic Redundancy Checksum)

 

การใช้ Parity Bit ในการตรวจสอบผิดพลาด

  • เป็นการตรวจสอบความผิดพลาดของข้อมูลที่ง่ายที่สุด
  • Parity Bit คือ Bit ที่เพิ่มเข้าไปในส่วนท้ายของข้อมูล
  • มีให้เลือกใช้ได้สองแบบ คือ
    • แบบคู่ (Even parity Bit)
    • แบบคี่ (Odd parity bit)
  • ทั้งฝ่ายส่งและฝ่ายรับข้อมูล ต้องทำการตกลงแบบของ Parity bit ที่จะใช้ก่อนมีการสื่อสารข้อมูล

 

Even parity bit

  • วิธีการตรวจสอบผิดพลาดโดยใช้ Parity bit “แบบคู่” ทำได้โดยการเพิ่ม 0 หรือ 1 ต่อท้ายซึ่
  • ทำให้ใช้จำนวน 1 ในข้อมูลเป็นจำนวนคู่
  • เช่น ถ้าข้อมูลที่จะส่ง คือ 0110101 Parity bit จะต้องเป็น 0 เพราะจำนวนบิต 1 ที่อยู่ในข้อมูลเป็นจำนวนคู่อยู่แล้ว ดังนั้นข้อมูลที่ทำการส่งไปจริง คือ 01101010

 

Odd parity bit

  • วิธีการตรวจสอบความผิดพลาดโดยใช้ Parity bit “แบบคี่” ทำเช่นเดียวกัน กับ Parity bit “แบบคู่”
  • เช่น ถ้าข้อมูลที่จะส่งคือ 0110101 Parity bit จะต้องเป็น 1 เพราะจำนวนบิต 1 ที่อยู่ในข้อมูลเป็นจำนวนคู่อยู่แล้วดังนั้นข้อมูลที่ทำการส่งไปจริง คือ 01101011

 

การใช้ Parity bit ในการตรวจสอบผิดพลาด

  • ฝ่ายส่งข้อมูลต้องทำการคำนวณ (เลือกค่า Parity bit เป็น 0 หรือ 1) และเพิ่มผลลัพธ์จากการคำนวณต่อท้ายข้อมูลที่ต้องการจะส่ง
  • ฝ่ายรับข้อมูลทำการตรวจสอบข้อมูลโดยทำการนับจำนวนเลข 1 ในข้อมูลตามรูปแบบของ Parity bit (แบบคู่หรือแบบคี่) ที่ได้ตกลงกันไว้ก่อนแล้ว
  • ถ้าผลของการตรวจสอบถูกต้อง ก็สามารถนำข้อมูลไปใช้ได้ ถ้าระหว่างการส่งข้อมูลมีความผิดพลาดและ ฝ่ายรับก็สามารถตรวจจับความผิดพลาดได้เพราะจำนวนบิต 1 จะไม่ตรงตามแบบที่ตกลงไว้ และสามารถแจ้งผู้ส่งให้ข้อมูลกลับมาอีกครั้ง

 

การตรวจสอบข้อมูลแบบ Checksums

  • ฝ่ายส่งทำการคำนวณหาค่า Checksums และส่งค่าไปพร้อมกับตัวข้อมูลเพื่อให้ฝ่ายรับข้อมูลใช้สำหรับตรวจสอบความถูกต้องของข้อมูล
  • ข้อมูลถูกพิจารณาในรูปแบบของการเรียงกัน (Sequence) ของเลขจำนวนเต็ม ตามค่าของรหัส ASCII
  • การคำนวณ Checksums สามารถทำได้หลายรูปแบบ

 

การตรวจสอบ Checksums แบบ 16 บิต (16-Bit Checksums)

ข้อมูลตัวอักษร(หรือตัวเลข) แต่ละคู่จะถูกพิจารณาแบบเลขจำนวนเต็มฐาน 16 โดยทำการคำนวณผลบวกถ้าผลของการบวกมากกว่า 16 บิต บิตที่เกินขึ้นมาให้นำมาเพิ่มกับผลบวกสุดท้าย

การตรวจสอบ Checksum แบบ 16 บิต
การตรวจสอบ Checksum แบบ 16 บิต

 

ข้อดี

  • ประหยัดทั้งเวลา และทรัพยากรของระบบ เนื่องจากการบวกทำได้อย่างรวดเร็ว

ข้อเสีย

  • การตรวจสอบข้อมูลแบบ Checksum ไม่สามารถตรวจสอบความผิดพลาดได้ในกรณีที่ข้อมูลถูกเปลี่ยนแปลงไปแต่ผลรวมของ Checksum มีค่าเท่าเดิม

 

การตรวจสอบข้อมูลแบบ Cyclic Redundancy Check (CRC)

  • ผู้ส่งข้อมูลเพิ่มเติมข้อมูลที่ใช้ในการตรวจสอบความถูกจต้องของกาส่งข้อมูล (Frame Check Sequence หรือ FCS) ต่อท้ายตัวข้อมูลจริงที่จะทำการส่ง
  • กระบวนการคำนวณค่า FCS ของ CRC ใช้หลักการหารเลหือเศษในเลขฐานสอง (Modulo 2)
  • โดยการใช้ข้อมูลที่ต้องการจะทำการส่ง หารด้วยค่า Polynomial Generator เศษเหลือจากการหาร คือ ค่า FCS ข้อมูลที่ทำการส่งจริงไปให้ผู้รับ คือ ตัวข้อมูลต่อท้ายด้วยค่า FCS ที่ได้จากการคำนวณ

 

การนำเทคนิคทั้ง 3 มาทำการตรวจสอบนั้นเป็นวิธีที่หาความผิดพลาดระหว่างการส่งข้อมูลผ่านเครือข่าย โดยเเต่ละวิธีจะมาความน่าเชื่อถือและการใช้งานที่เเตกต่างกัน โดยจะเริ่มตั้งเเต่การหาความผิดพลาดน้อยสุด ไปมากที่สุด เเละวิธีที่หาความผิดพลาดที่ครอบคลุมที่สุด คือ การตรวจสอบข้อมูลแบบ Cyclic Redundancy Check (CRC)

 

ช่องทางการศึกษาเพิ่มเติมข่าวสารที่น่าสนใจเกี่ยวกับ : บทความทั่วไป

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
การบันทึกส่วนต่างค่าธรรมเนียมที่ลูกค้าจ่ายต่ำไป บนระบบ OpenERP
โดย EyePornnipa ส 20 ก.ค. 2019 5:25 pm บอร์ด M089 - นางสาวพรนิภา ราชธานี
0
14
ส 20 ก.ค. 2019 5:25 pm โดย EyePornnipa
อยากทราบวิธีการนำ ค่าของชุดข้อมูล array ที่อยู่ใรตัวแปลเดียวกัน มาแทนค่าซึ่งกันและกัน ใน phpbb
โดย Ittichai_chupol ส 20 ก.ค. 2019 4:46 pm บอร์ด Programming - PHP
0
8
ส 20 ก.ค. 2019 4:46 pm โดย Ittichai_chupol
เล่นเกมตีเทนนิสด้วยการค้นหาคำว่า วิมเบิลดัน
โดย jamepiyawat ส 20 ก.ค. 2019 4:14 pm บอร์ด Share Knowledge
0
9
ส 20 ก.ค. 2019 4:14 pm โดย jamepiyawat
Module Menu Maximenu CK เมนูรูปแบบที่เรากำหนดเอง
โดย Patipat ส 20 ก.ค. 2019 4:13 pm บอร์ด Joomla Extension Review
0
5
ส 20 ก.ค. 2019 4:13 pm โดย Patipat
google Docs สามารถพิมพ์ข้อความได้ด้วยการพูด
โดย jamepiyawat ส 20 ก.ค. 2019 3:07 pm บอร์ด Share Knowledge
1
11
ส 20 ก.ค. 2019 3:10 pm โดย mindphp
การใช้งานของฟัังก์ชัน Output Buffer - เก็บข้อมูลไว้เพื่อมาเรียกใช้
โดย Patipat ส 20 ก.ค. 2019 2:24 pm บอร์ด PHP Knowledge
0
6
ส 20 ก.ค. 2019 2:24 pm โดย Patipat
ข้อดีของระบบ OpenERP
โดย EyePornnipa ส 20 ก.ค. 2019 1:47 pm บอร์ด M089 - นางสาวพรนิภา ราชธานี
0
10
ส 20 ก.ค. 2019 1:47 pm โดย EyePornnipa
ฟังก์ชัน metaphone () - สามารถใช้สำหรับการสะกดคำสร้างคีย์สำหรับการออกเสียง
โดย Patipat ส 20 ก.ค. 2019 1:46 pm บอร์ด PHP Knowledge
0
5
ส 20 ก.ค. 2019 1:46 pm โดย Patipat
Sigle Quote (') และ Double Quote (") ในภาษา php ใช้ต่างกันอย่างไร
โดย jamepiyawat ส 20 ก.ค. 2019 12:17 pm บอร์ด PHP Knowledge
0
20
ส 20 ก.ค. 2019 12:17 pm โดย jamepiyawat
วิธีการแปลงไฟล์ .html เป็น pdf ด้วย wkhtmltopdf ร่วมกับ flask
โดย jirawoot ส 20 ก.ค. 2019 11:48 am บอร์ด Python Knowledge
0
13
ส 20 ก.ค. 2019 11:48 am โดย jirawoot
เจอปัญหา Joomla Error Error: Failed to start application: Error starting the session.
โดย mindphp ส 20 ก.ค. 2019 11:22 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS CRM
1
12
ส 20 ก.ค. 2019 11:59 am โดย mindphp
งานประจำวันที่ 20 กรกฎาคม 2562
โดย Patipat ส 20 ก.ค. 2019 10:24 am บอร์ด M088 - ปฏิภัทร สารธรรม
1
9
ส 20 ก.ค. 2019 7:39 pm โดย Patipat
งานประจำวันที่ 20 กรกฎาคม 2562
โดย jamepiyawat ส 20 ก.ค. 2019 10:15 am บอร์ด M084 - นายปิยวัช เชาว์วิมล
2
10
ส 20 ก.ค. 2019 7:40 pm โดย jamepiyawat
งานประจำวันที่ 20 กรกฎาคม 2562
โดย EyePornnipa ส 20 ก.ค. 2019 10:02 am บอร์ด M089 - นางสาวพรนิภา ราชธานี
4
30
ส 20 ก.ค. 2019 7:08 pm โดย EyePornnipa
งานประจำวันที่ 20 กรกฎาคม 2562
โดย jirawoot ส 20 ก.ค. 2019 10:00 am บอร์ด M090 - นายจิระวุฒิ อัครลิขิตกุล
1
8
ส 20 ก.ค. 2019 5:02 pm โดย jirawoot
สรุปการเขียน Module Openerp
โดย chatee supasand ศ 19 ก.ค. 2019 7:39 pm บอร์ด MT33 - นายชาตรี สุภาแสน
1
5
ส 20 ก.ค. 2019 10:27 am โดย tatiya
ปัญหา Error GROUP BY clause; this is incompatible with sql_mode=only_full_group_by [1055]
โดย mindphp ศ 19 ก.ค. 2019 7:30 pm บอร์ด SQL - Database
0
9
ศ 19 ก.ค. 2019 7:30 pm โดย mindphp
วิธีการเขียน Select ข้อมูล ที่มีซ่ำกัน ไม่ให้ซ่ำกัน ใน phpbb
โดย Ittichai_chupol ศ 19 ก.ค. 2019 6:25 pm บอร์ด PHP Knowledge
0
8
ศ 19 ก.ค. 2019 6:25 pm โดย Ittichai_chupol
ข้อแตกต่างระหว่างสินค้าคงเหลือ กับ สินทรัพย์ถาวร
โดย EyePornnipa ศ 19 ก.ค. 2019 5:42 pm บอร์ด Accounting software & ERP โปรแกรมบัญชี ระบบอีอาร์พี
0
15
ศ 19 ก.ค. 2019 5:42 pm โดย EyePornnipa
บันทึกไฟล์แบบ CSV โดยใช้ฟังก์ชัน fputcsv
โดย Patipat ศ 19 ก.ค. 2019 5:01 pm บอร์ด PHP Knowledge
0
5
ศ 19 ก.ค. 2019 5:01 pm โดย Patipat