Page 102 - Computer Network
P. 102
13.1. การตรวจจับและแก้ไขความผิดพลาด (ERROR DETECTION AND CORRECTION) 93
โดยขั้นตอนในการคำนวณค่าสามารถทำได้ดังนี้
ขั้นที่ 1 : ข้อมูลที่จะส่ง (M(X)) จะถูกคูณด้วย X ทำให้ได้จำนวนของบิต 0 จำนวนเท่ากับ r ที่ตำแหน่งท้ายของ
r
ข้อมูล
ขั้นที่ 2 : ผลของการหารด้วย G(X) จะทำให้ได้ผลเป็น Q(X) และมีเศษเป็น R(X) สอดคล้องกับสมการ
r
X · M(X) = Q(X) · G(X) ⊕ R(X) (13.1)
หรือ
r
X · M(X) ⊕ R(X) = Q(X) · G(X) (13.2)
ขั้นที่ 3 : เศษของการหารจะถูกบวกกับ X · M(X) จะทำให้ได้
r
r
T(X) = X · M(X) ⊕ R(X) (13.3)
เพื่อเป็น code word ที่จะส่ง book)
เนื่องจากค่ายกกำลังของเศษมีค่าตํ่ากว่าค่าสูงสุดของ r ดังนั้นการนำค่าของเศษที่เกิดขึ้นในตำแหน่งเศษของ
(partial
X ·M(X) มีค่าเป็นศูนย์ เสมือนการบวกด้วย บิตพาริตีเพื่อใช้ในการตรวจสอบที่จำนวนเท่ากับ r การตรวจสอบของ
r
ด้านรับทำโดยการนำค่าของ T(X) หารด้วย G(X) หากพบว่าค่าของเศษ R(X) มีค่าเป็นศูนย์แสดงว่าข้อมูลที่ได้รับถูก
ต้อง มิฉะนั้นแสดงว่ามีความผิดพลาดเกิดขึ้นระหว่างการสื่อสาร
ตัวอย่าง 13.1 สมมุติให้ข้อมูลที่ต้องการส่งเป็น 10100011 ถ้าค่าของ G(x) เป็น x + 1 รูปที่ 13.5 แสดงการคำนวณ
4
ของภาคส่งในการคำนวณหาค่า frame check sequence (FCS) จากนั้นภาคส่งจะนำค่าที่ได้ต่อท้ายข้อมูล เพื่อส่ง
ไปในช่องสัญญาณ จะเห็นว่าการหารโดยใช้ค่าไบนารีและสัมประสิทธิ์ของ x จากการหารแบบโพลิโนเมียลมีค่าเท่า
กัน (1001) only
KKU
รูปที่ 13.5: การคำนวณของภาคส่งเพื่อหาค่า CRC
รูปที่ 13.6 แสดงการเปรียบเทียบกรณีของมีและไม่มีความผิดพลาดเกิดขึ้น เมื่อภาครับไดัรับข้อมูล จะเห็นว่า
หากไม่มีความผิดพลาดเกิดขึ้น จะทำให้เศษหลังการคำนวณเป็นศูนย์ดังรูปที่ 13.6 (a) แต่หากเกิดความผิดพลาด

