Friday, August 1, 2008

Summerize Chapter 6: Errors, Error Detection, and Error Control

Summerize sound Lecture
Chapter 6: Errors, Error Detection, and Error Control


What is Data Link Layer?

1. การส่งข้อมูล  Data Link Layer จะรับข้อมูลจาก Network Layer และส่งต่อไปยัง Physical Layer
การรับข้อมูล  Data Link Layer จะรับข้อมูลจาก Physical Layer และส่งต่อไปยัง Network Layer
2. Data Link Layer จะเกี่ยวข้องกับการเชื่อมต่อระหว่างอุปกรณ์ 2 อุปกรณ์ ทั้งฝั่งส่ง และฝั่งรับจะต้องใช้กฎ กติกา หรือที่เรียกว่า Protocol เดียวกัน จึงจะสามารถสื่อสารถึงกันได้
3. Function หลัก ๆ ของ Data Link Layer มี 3 ส่วน คือ
 Message Delineation - เป็นตัวบอกให้ฝั่งรับทราบว่าเมื่อไรเป็นจุดเริ่มต้นของข้อมูลที่ส่ง และเมื่อไรเป็น
จุดสิ้นสุดของข้อมูลแต่ละ block ที่ส่ง [พูดแล้วใน Ch4]
 Error Control -
 Media Access Control - ควบคุมการใช้สื่อ ซึ่งจะมีความสำคัญในกรณีที่อุปกรณ์มีการเชื่อมต่อแบบ
Multipoint Connection
4. ปัจจัยที่ส่งผลให้การรับส่งข้อมูลมีความผิดพลาด หรือไม่ถูกต้องเสมอไป คือ
 สัญญาณรบกวน
 Cross Talk

Noise and Errors

5. Noise ไม่สามารถหลีกเลี่ยงได้ เพราะอยู่ในทุกๆที่ทั่วๆไปในสภาพแวดล้อม
6. กรณีที่มีสัญญาณรบกวนอยู่มาก จะทำให้สัญญาณที่ได้รับมีความผิดพลาด หรือผิดเพี้ยนไปจากสิ่งที่ส่งมาจากฝั่งส่ง ทำให้การรับข้อมูลผิดพลาดได้
7. รูปแบบของความผิดพลาดที่เกิดขึ้นในระบบสื่อสารมี 2 แบบ
 ข้อมูลที่ส่งมาไปไม่ถึงฝั่งรับ มีการสูญหายของข้อมูล
 ข้อมูลไปถึงฝั่งรับ แต่ตัวข้อมูลมีการผิดพลาด เช่น ส่ง 1 แต่ detect เป็น 0
8. กระบวนการสื่อสาร ต้องมีกระบวนการตรวจสอบความผิดพลาดของข้อมูล เนื่องจากข้อมูลที่ผิดพลาดเพียงเล็กน้อย อาจส่งผลได้อย่างมากมายมหาศาลได้ และไม่สามารถนำไปประมวลผลได้ เช่น ข้อมูลการควบคุมเครื่องจักร ข้อมูลทางการเงินต่างๆ ข้อมูลที่เป็นส่วนหนึ่งของ file binary
9. กระบวนการในการตรวจสอบความถูกต้องของข้อมูลมี 2 ส่วน คือ กระบวนการ Detect Error ซึ่งเมื่อ Detect เจอจะทำอย่างไร
 บางระบบอาจจะทิ้งข้อมูลไป และไม่ได้นำมา process ต่อ
 บางระบบอาจจะมีกระบวนการต่อมา นำไปสู่การรับข้อมูลที่ถูกต้องต่อไป
10. Noise แบ่งเป็น 2 ประเภทใหญ่ๆ คือ
 White Noise - เป็น Noise ที่เกิดขึ้นอย่างต่อเนื่อง ปกติจะเกิดขึ้นเนื่องจากธรรมชาติ ในบรรยากาศ หรือ
จากการทำงานของอุปกรณ์อิเลคทรอนิกส์ ซึ่งเป็นส่วนหนึ่งของระบบ computer หรือระบบสื่อสารข้อมูล สามารถลดทอนได้ โดยใช้อุปกรณ์ที่เรียกว่า Filter ผลของ Noise มีอย่างต่อเนื่องจาก และระดับปริมาณของ Noise ค่อนข้างสม่ำเสมอตลอดเวลา
 Impulse Noise - เป็น Noise ที่เกิดขึ้นเป็นครั้งคราว เป็นช่วงเวลาสั้นๆ แต่มีขนาดของสัญญาณรบกวน
ค่อนข้างจะสูงมาก หรือเรียกว่า spikes เช่น การจุดระเบิดของเครื่องยนต์ หรือหัวเทียน เมื่อมีการสตาร์ทเครื่อง ก็จะเกิดแรงดัน หรือกระแสงไฟฟ้าปริมาณมาก ๆ ในช่วงเวลาสั้น ๆ ระบบสื่อสารเป็นปัจจัยหลักที่ทำให้เกิดข้อผิดพลาดในการรับส่งข้อมูล เนื่องจากขนาดของกำลังของสัญญาณรบกวนค่อนข้างจะสูง และทำการแก้ไข หรือกำจัดได้ยาก หากมีการรับส่งข้อมูลด้วยความเร็วสูงๆ ส่งผลให้จำนวน bit ที่เกิด error ติดต่อกันได้จำนวนหลายๆ bit เรียกว่า burst Error หรือ Multiple Bit Error [Detect หรือ Correct ได้ยากกว่า error เพียง bit เดียว ที่เรียกว่า Single Bit Error]
11. ปัจจัยอื่นๆ ทีส่งผลให้การรับส่งข้อมูลผิดพลาดได้ คือ
 Cross Talk - การรบกวนที่เกิดจากช่องส่งสัญญาณ หรือสัญญาณที่ผู้ใช้ใช้ส่งเข้าไปตามสายซึ่งอยู่ใกลักัน
ตัวสัญญาณของผู้ใช้รายหนึ่ง ก็จะไปเป็นสัญญาณรบกวนของผู้ใช้อีกรายหนึ่ง

Error Prevention

12. Error Prevention เป็นวิธีการป้องกันการเกิดสัญญาณรบกวน
13. เป็นวิธีการที่เกี่ยวข้องกับการเลือกใช้อุปกรณ์ทาง Physical Layer ที่มีคุณภาพที่ดี หรือปรับเพิ่มอุปกรณ์บางอย่างในระบบ เพื่อทำให้ลดผลการทำให้เกิด Error ในระบบการสื่อสารข้อมูล เช่น
 ใช้วิธีการ Shield เพื่อลดผลของสัญญาณรบกวนไม่ให้เข้ามารบกวนสัญญาณที่ใช้ส่งข้อมูล
 ใช้อุปกรณ์ต่างๆ เช่น Line Conditioning หรือ Equalization
 ใช้สื่อที่มีคุณภาพที่ดีขึ้น เปลี่ยนสายที่เก่า เป็นสายใหม่ ใช้อุปกรณ์ที่มีระดับการรบกวนของสัญญาณต่ำ ก็ทำให้การรับส่งข้อมูลมีการผิดพลาดน้อยลง
14. สรุปอุปกรณ์ที่จะช่วยป้องกันสาเหตุของการ Error ในระบบการสื่อสารข้อมูล



Error Detection

15. Error Detection เป็นกระบวนการใช้ตรวจสอบความถูกต้องของข้อมูลที่จัดส่ง ซึ่งเป็น function ที่อยู่ในระดับ Data Link Layer
16. หลักการทำ Error Detection คือ ในการส่งข้อมูลนอกจากตัวข้อมูลที่ต้องการจัดส่งแล้ว ยังจำเป็นต้องมีข้อมูลที่ต้องจัดส่งเพิ่มเติมในรูปแบบใดรูปแบบหนึ่งไปให้ฝั่งรับ เพื่อให้ฝั่งรับสามารถนำข้อมูลที่เพิ่มเติม ประกอบกับข้อมูลที่จัดส่งมาตรวจสอบความสอดคล้องต้องกัน จึงจะตรวจสอบได้ว่าข้อมูลที่จัดส่งมีความผิดพลาดหรือไม่
17. วิธีการทำ Error Detection อย่างง่ายๆ คือ Parity Check
18. Parity Check เป็นการ add bit เพิ่มอีก 1 bit ในข้อมูลที่ต้องการจัดส่ง [Parity Bit] ซึ่งอาจจะเป็น 1 หรือ 0 ก็ได้ ขึ้นอยู่กับรูปแบบของ Parity Check ที่ต้องการใช้ คือ
 Even Parity Check - เป็นการเพิ่มค่า Parity Check โดยข้อมูลที่มีค่า = 1 + parity bit แล้วได้เป็น
เลขคู่
 Odd Parity Check - เป็นการเพิ่มค่า Parity Check โดยข้อมูลที่มีค่า = 1 + parity bit แล้วได้เป็น
เลขคี่



19. ข้อดี/ข้อเสียของการทำ Parity Check
ข้อดี
 ง่าย
ข้อเสีย
 ไม่สามารถจะใช้ในการตรวจสอบความผิดพลาดที่เกิดขึ้นเมื่อมีจำนวน bit ที่เกิด error มากกว่า 1 bit ในแต่ละ block ข้อมูลได้
** Parity Check สามารถใช้ check error ที่เกิดขึ้น เมื่อมีจำนวน bit ที่เกิด error ขึ้นอย่างมาก 1 bit ในแต่ละ block ข้อมูลเท่านั้น ถ้าจำนวน bit ที่เกิด error ในแต่ละ block ข้อมูล มีมากกว่า 1 bit ประสิทธิภาพในการตรวจสอบความผิดพลาดที่ต่ำมาก **
20. ในระบบการสื่อสารโดยทั่วไป รูปแบบที่เกิด Error ส่วนมากจะเป็นแบบ Multiple Bit Error หรือ Burst Error ดังนั้นวิธีการทำ Parity Check จึงไม่เป็นที่นิยมใช้ในการตรวจสอบความผิดพลาดของการรับส่งข้อมูล
21. โดยปกติจะใช้วิธีการที่เรียกว่า Citric Relevancy Check

Error Correction

22. Error Correction เป็นกระบวนการถัดจากการทำ Error Detection
23. โดยปกติในระบบการสื่อสาร จะมีกระบวนการที่ต่อเนื่องจาก Error Detection ที่สามารถทำได้อยู่ 3 แบบคือ
 Do Nothing - หลังจากเกิด Error แล้ว ไม่ทำอะไรเลย ทิ้งข้อมูลที่ได้
รับมาที่มีข้อผิดพลาดทิ้งไป และไม่นำมา process ต่อ
 Return an error message to the transmitter - ส่งข้อมูล หรือ message ไปยังฝั่งส่ง ให้ส่งข้อมูลที่
ผิดพลาดกลับมาใหม่
 Fix the error - ทำการปรับเปลี่ยน หรือแก้ไขข้อมูลผิดที่ฝั่งรับเอง โดย
ไม่ต้องพึ่งพาการ re-transmition จากฝั่งส่ง
24. Error Control: Do Nothing
 หากข้อมูลที่ได้รับมีข้อผิดพลาดเกิดขึ้น อุปกรณ์รับก็จะทิ้งข้อมูลนั้นไป โดยไม่นำมา process ต่อ และไม่ดำเนินการใดๆ ที่จะส่งข้อมูลกลับไปยังฝั่งส่ง เพื่อให้จัดส่งข้อมูลมาใหม่ โดยโอนความรับผิดชอบไปให้ protocol ในระดับ Layer ที่สูงกว่า Data Link Layer ดำเนินการแทน
25. Error Control: Return an error message to the transmitter
 ส่งข้อมูล หรือ message ไปยังฝั่งส่ง ให้ส่งข้อมูลที่ผิดพลาดกลับมาใหม่ โดยมีรูปแบบในการจัดส่ง message อยู่ 3 รูปแบบ คือ
 Stop-and-wait ARQ [Automatic Repeated Request]
 เป็นวิธีการที่ฝั่งส่งทำการส่งข้อมูลไป 1 ชุด และรอจนว่าจะได้รับ message จากฝั่งรับว่าข้อมูลที่ส่งไปนั้น ถูกต้องหรือไม่ ดังนั้นข้อมูลที่จะได้รับจากฝั่งรับ มี 2 แบบ คือ
o Positive Acknowledgement (ACK) - เพื่อบอกว่าข้อมูลที่ส่งไปถูกต้อง
o Negative Acknowledgment (NCK) - เพื่อบอกว่าข้อมูลที่ส่งไปผิดพลาด
** ฝั่งส่งเมื่อส่งข้อมูลไปแล้ว จึงทำการหยุดที่จะรอ ACK หรือ NCK [เป็นที่มาของ Stop and Wait] ถ้าได้รับ ACK จากฝั่งรับ จึงจะจัดส่งข้อมูลชุดถัดไป แต่ถ้าได้รับ NCK จึงจะจัดส่งข้อมูลชุดเดิมไปใหม่ **
** Stop and wait เป็นวิธีการง่ายๆ แต่มีข้อเสีย คือ ระหว่างที่ฝั่งส่งรอผลจากฝั่งรับ ฝั่งส่งไม่สามารถจะใช้เวลาที่รอในการจัดส่งข้อมูลชุดถัดไปได้ ทำให้สูญเสียประสิทธิภาพในการรับส่งข้อมูลไปเยอะ ทำให้เวลาในรอนาน แต่เวลาที่จัดส่งจริงๆ สั้น ดังนั้นจึงไม่ได้ใช้ประโยชน์จากช่องสัญญาณได้อย่างเต็มประสิทธิภาพ **

 Go-back-N ARQ
 เป็นวิธีการที่ช่วยแก้ปัญหาของ Stop and wait ซึ่งเป็นวิธีการที่แตกต่างจาก Stop and wait คือ ฝั่งส่งไม่จำเป็นต้องรอผลจากฝั่งรับ สามารถทยอยส่งข้อมูลถัดไป โดยไม่จำเป็นต้องรอ ACK หรือ NCK ทีละ frame เพื่อทำให้ไม่ต้องสูญเสียเวลาที่รอไปโดยเปล่าประโยชน์ ทำให้สามารถส่งข้อมูลชุดถัดไปได้เลย
 ฝั่งรับสามารถ Acknowledgment ข้อมูลหลายๆ frame พร้อมกันได้


จากภาพ
o Section A ส่งข้อมูล frame ที่ 2 1 0 ไป โดยไม่ต้องการ Acknowledgement จาก Section B
o เมื่อ Section B ส่ง ACK3 กลับมา หมายความว่า ข้อมูลถูกต้อง และสามารถส่งข้อมูล 3 ต่อไปได้ ซึ่งก็คือ ข้อมูลที่อยู่ก่อนข้อมูล 3 คือ 2 1 0 ถูกต้อง
 หากพบ error ฝั่งรับจะ rej frame ที่ error ให้ฝั่งส่ง และฝั่งส่งจะต้องเริ่มส่งข้อมูลใหม่ โดยเริ่มจาก frame ที่พบ error เป็นต้นไป



จากภาพ
o Section A จัดส่งข้อมูล frame ที่ 6 5 4 ไปยัง Section B
o Section B พบ error ในข้อมูลที่ 5 จึงส่ง REJ5 เพื่อ Acknowledge ให้ Section A ทราบว่า ข้อมูล 5 มีความผิดพลาดเกิดขึ้น
o Section A จึงต้องจัดส่งข้อมูลไปใหม่ โดยเริ่มตั้งแต่ข้อมูลที่พบ error คือ 6 5 [ซึ่งเป็นที่มาของคำว่า Go-back-N คือการเริ่มส่งข้อมูลใหม่ โดยเริ่มจากจุดที่มีข้อผิดพลาด ถึงแม้ว่า frame ที่ 6 จะเป็นข้อมูลที่ถูกต้องก็ตาม]

 Selective-reject ARQ
 เป็นวิธีการที่มีประสิทธิภาพสูงสุด ซึ่งแตกต่างจาก Go-back-N คือ การจัดส่งเฉพาะข้อมูล frame ที่ผิดพลาดเท่านั้น



จากภาพ
o Section A จัดส่งข้อมูล frame ที่ 6 5 4 ไปยัง Section B
o Section B พบ error ในข้อมูลที่ 5 จึงส่ง REJ5 เพื่อ Acknowledge ให้ Section A ทราบว่า ข้อมูล 5 มีความผิดพลาดเกิดขึ้น
o Section A จัดส่งข้อมูลเฉพาะ frame ที่ error เท่านั้น และตามด้วยข้อมูล frame ถัดไป คือ 7 5

No comments: