Page 100 - Computer Network
P. 100
13.1. การตรวจจับและแก้ไขความผิดพลาด (ERROR DETECTION AND CORRECTION) 91
ภาครับได้รับเป็น 010101011 (เกิดความผิดพลาดจำนวน 1 บิต) ในกรณีภาครับสามารถตรวจจับความผิดพลาดที่
เกิดขึ้นได้ เนื่องจากสิ่งที่รับได้เป็นแบบ odd แต่หากภาครับได้เป็น 01010101 (เกิดความผิดพลาดจำนวน 2 บิต) จะ
เห็นว่าเป็นแบบ even ตามเงื่อนไขของการตรวจสอบ ทำให้การตรวจสอบด้วยการใช้แบบหนึ่งบิตพาริตีไม่สามารถ
ตรวจจับได้
เนื่องจากการใช้พาริตีสามารถทำได้โดยไม่จำเป็นต้องมีการจัดเก็บข้อมูล สามารถคำนวณค่าได้ในระหว่างการ
ส่งและรับข้อมูลแบบทันที (on-the-fly) ทำให้ไม่เกิดเวลาหน่วง อย่างไรก็ตาม การใช้พาริตีเหมาะสำหรับระบบที่
มีความผิดพลาดที่ตํ่า และหากเกิดความผิดพลาดจริง จะไม่มีผลรุนแรงกับระบบโดยรวม เนื่องจากการใช้พาริตีบิต
ค่อนข้างมีประสิทธิภาพตํ่าในการตรวจสอบความผิดพลาด[24]
13.1.2 การตรวจจับแบบพาริตีสองมิติ (Two-Dimensional Parity Checks)
book)
เพื่อให้การตรวจจับมีประสิทธิภาพมากขึ้น การใช้การตรวจจับแบบพาริตีสองมิติ (Two-Dimensional Parity
Checks) เป็นวิธีหนึ่งในการแก้ปัญหาของการตรวจสอบความผิดพลาดที่มากกว่าหนึ่งบิตของข้อมูล รูปที่ 13.3
การใช้การตรวจจับแบบพาริตีสองมิติ ด้วยการเพิ่มคอลัมน์สุดท้ายของแต่ละแถวและแถวล่างสุดใต้ข้อมูล คอลัมน์
สุดท้ายของแต่ละแถวเป็นค่าบิตที่ใช้ในการตรวจสอบของแถวนั้นๆ และ แถวล่างสุดใต้ข้อมูลจะเป็นบิตตรวจสอบ
(partial
ของในแต่ละคอลัมน์
การใช้การตรวจจับแบบพาริตีสองมิติ สามารถที่จะตรวจสอบและแก้ไขกรณีของการผิดพลาดแบบหนึ่งบิตได้
ทุกกรณี โดยดูจากจุดตัดระหว่างแถวและคอลัมน์ที่มีค่าของพาริตีที่ผิดไป แต่ความผิดพลาดตั้งแต่สองบิตขึ้นไป การ
ใช้การตรวจจับแบบพาริตีสองมิติ สามารถที่จะตรวจจับได้ แต่ไม่สามารถที่จะแก้ไขได้
only
KKU รูปที่ 13.3: การตรวจสอบข้อผิดพลาดโดยใช้พาริตีบิตแบบสองมิติ
รูปที่ 13.4 เป็นตัวอย่างการตรวจสอบหาความผิดพลาดแบบพาริตีสองมิติในกรณี 1 ถึง 4 บิต รูปที่ 13.4 (a)
เป็นการผิดพลาดแบบหนึ่งบิต สามารถตรวจสอบและแก้ไขได้ทุกกรณี ในกรณี (b)-(d) เป็นการผิดพลาดตั้งแต่สอง
บิตขึ้นไป จะเห็นว่าทั้งสามกรณีสามารถตรวจจับความผิดพลาดได้ แต่ไม่สามารถแก้ไขได้ถูกต้อง ยกเว้นกรณีที่มี
ความผิดพลาดแบบ 4 บิตเป็นรูปสี่เหลี่ยมพอดี จะไม่สามารถตรวจสอบหาความผิดพลาดได้ (รูปที่ 13.4 (d))
13.1.3 Checksum
ในการใช้ Checksum ข้อมูลที่จะส่งจะถูกแบ่งออกเป็นส่วนๆ แต่ละส่วนมีขนาดเป็น n บิต (8 หรือ 16 บิตเป็นต้น)
จากนั้นนำแต่ละบิตบวกกันเพื่อคำนวณหาค่า Checksum ซึ่งค่าที่หาได้จะถูกส่งไปกับข้อมูลที่ส่ง เมื่อภาครับได้รับ
ข้อมูล ภาครับจะแบ่งข้อมูลเป็นส่วนๆเช่นเดียวกับภาคส่ง เพื่อคำนวณค่า Checksum หากค่าคำนวณได้ตรงกับค่า
ของ Checksum ที่ได้รับจากภาคส่ง แสดงว่าข้อมูลมีความถูกต้อง มิฉะนั้นจะถือว่าข้อมูลที่ได้รับผิดพลาด อาจต้อง
ร้องขอให้ภาคส่ง ส่งออกมาใหม่

