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

กระบวนการตรวจจับข้อผิดพลาด (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)

 

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

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
อยากทราบถ้าหากต้องการที่ทดสอบการทำงานของของ Event cron จะต้องทำอย่างไรบางครับ
โดย Ittichai_chupol ส 04 เม.ย. 2020 10:50 am บอร์ด Programming - PHP
0
10
ส 04 เม.ย. 2020 10:50 am โดย Ittichai_chupol
เทมเพลต Megadeal ของ MooZiiCart สำหรับทำเว็บขายสินค้าออนไลน์
โดย prmindphp ศ 03 เม.ย. 2020 6:39 pm บอร์ด MindPHP News & Feedback
0
22
ศ 03 เม.ย. 2020 6:39 pm โดย prmindphp
เครื่องมือช่วยกรองสินค้า สำหรับค้นหาสินค้าที่ต้องการ
โดย prmindphp พฤ 02 เม.ย. 2020 6:46 pm บอร์ด MindPHP News & Feedback
0
27
พฤ 02 เม.ย. 2020 6:46 pm โดย prmindphp
การเขียน Script สำหรับสร้าง User ใน Joomla
โดย tsukasaz พฤ 02 เม.ย. 2020 3:33 pm บอร์ด Joomla Developing Knowledge
0
64
พฤ 02 เม.ย. 2020 3:33 pm โดย tsukasaz
อยากทราบวิธีการดึงข้อมูลจาก Excel โดยการดึงข้อมูลจาก คอลัมของ Excel มาบันทึกลงในฐานข้อมูล
โดย Ittichai_chupol พฤ 02 เม.ย. 2020 10:09 am บอร์ด Programming - PHP
1
41
พฤ 02 เม.ย. 2020 10:43 am โดย mindphp
เอ้าๆ ใครที่ใบขับขี่หมดอายุในช่วง COVID-19 สามารถอมรมผ่านออนไลน์ ด้วย e-learning ได้เเล้วนะ
โดย thatsawan พฤ 02 เม.ย. 2020 10:09 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
39
พฤ 02 เม.ย. 2020 10:09 am โดย thatsawan
วิธีการเชื่อม api ของ gitlab สำหรับดาวน์โหลดไฟล์ project ใน ภาษา Python
โดย jirawoot พ 01 เม.ย. 2020 3:38 pm บอร์ด Python Knowledge
0
93
พ 01 เม.ย. 2020 3:38 pm โดย jirawoot
สอบถาม ผมจะทำ ci ของ gitlab ผมดูดไฟล์ project จาก api ของ gitlab ได้แล้วทำอย่างไรต่อครับ
โดย jirawoot พ 01 เม.ย. 2020 12:09 pm บอร์ด Programming - C/C++ & java & Python
3
65
พฤ 02 เม.ย. 2020 10:50 am โดย tsukasaz
ผมอัพเกรด joomla 2.5 เป็นเวอร์ชั่นล่าสุด 3.8 หน้าเว็บเวอร์ชั่นเดิมจะหายไปไหมคับ
โดย Anonymous พ 01 เม.ย. 2020 12:00 pm บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
3
48
พ 01 เม.ย. 2020 4:29 pm โดย icphp
ลดอัตราหัก ณ ที่จ่าย เหลือ 1.5% ออกเป็นกฎหมายมีผลใช้บังคับแล้ว!!! นะ เริ่ม 1 เมษายน 2563
โดย thatsawan พ 01 เม.ย. 2020 10:54 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
78
พ 01 เม.ย. 2020 10:54 am โดย thatsawan
วิธีการจัดการกับเด็กๆ กวนใจ เมื่อต้องทำงานจากบ้าน #Work from home
โดย thatsawan พ 01 เม.ย. 2020 9:53 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
42
พ 01 เม.ย. 2020 9:53 am โดย thatsawan
วิธีแก้ไขปัญหา สำหรับ การนำ Template phpbb 3.3 มาใช้ใน phpbb 3.2
โดย thatsawan อ 31 มี.ค. 2020 7:27 pm บอร์ด phpBB user Guide Knowledge
0
94
อ 31 มี.ค. 2020 7:27 pm โดย thatsawan
สอบถาม ผมลองใช้ curl ของ API ของ gitlab แล้ว "message":"401 Unauthorized ครับ
โดย jirawoot อ 31 มี.ค. 2020 5:16 pm บอร์ด Programming - C/C++ & java & Python
1
167
อ 31 มี.ค. 2020 5:35 pm โดย jirawoot
การเชื่อมต่อ API ของ GitLab เพื่อดาวน์โหลดไฟล์
โดย tsukasaz อ 31 มี.ค. 2020 12:52 pm บอร์ด PHP Knowledge
0
1266
อ 31 มี.ค. 2020 12:52 pm โดย tsukasaz
วิธิการใส่ icon favorite เพื่อแสดงในแต่ละ browser
โดย Ittichai_chupol อ 31 มี.ค. 2020 11:14 am บอร์ด Graphic design
4
188
พฤ 02 เม.ย. 2020 4:33 pm โดย thatsawan
สิ่งที่เกิดขึ้นจริงในการประชุมด้วยเทคโนโลยี Conference Call #Work from home
โดย thatsawan อ 31 มี.ค. 2020 10:39 am บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
49
อ 31 มี.ค. 2020 10:39 am โดย thatsawan
ช่วงนี้ Work From Home ก็จะลำบากนิดนึงแหละเนอะ #ทาสเเมว
โดย thatsawan จ 30 มี.ค. 2020 2:29 pm บอร์ด พูดคุยเรื่องทั่วไป จับฉ่าย
0
125
จ 30 มี.ค. 2020 2:29 pm โดย thatsawan
อยากทราบวิธีสร้างเว็บหน้าเดียวแบบกรอกข้อมูลเสร็จแล้วประมวลผล
โดย phongkhukhan ส 28 มี.ค. 2020 1:00 am บอร์ด ปัญหาการใช้ phpBB3, SMF, Joomla, Wordpress, CMS, CRM
2
384
ส 28 มี.ค. 2020 1:09 am โดย mindphp
แสดงสินค้าที่อยากได้ใน Wishlist ด้วย Module Wishlist
โดย prmindphp ศ 27 มี.ค. 2020 5:26 pm บอร์ด MindPHP News & Feedback
0
235
ศ 27 มี.ค. 2020 5:26 pm โดย prmindphp
ต้องการสร้าง subtype
โดย blackbullx16 ศ 27 มี.ค. 2020 4:15 pm บอร์ด SQL - Database
0
391
ศ 27 มี.ค. 2020 4:15 pm โดย blackbullx16