กระบวนการตรวจสอบข้อผิดพลาดในการส่งข้อมูล โดยการใช้ ACK ที่ส่งจาก Receiver เพื่อยืนยันความถูกต้องของข้อมูล และ Timeout ช่วงระยะเวลาในการรับ ACK เพื่อให้เกิดความน่าเชื่อถือในการส่งข้อมูลผ่าน Service ที่ไม่น่าไว้ใจ ถ้าหากผู้ส่งไม่ได้รับ ACK ก่อน Timeout ก็จะส่งข้อมูลไปใหม่จนกว่าจะได้รับ ACK กลับมาหรือเกินจำนวนครั้งที่กำหนดไว้ในการส่งใหม่ อยู่ในชั้นของ Data Link หรือ Transport Layer โดยแบ่งออกเป็น Base on Stop and Wait
Stop and Wait ARQ
เมื่อเกิดข้อผิดพลาดในการส่งข้อมูล จะทำการ NAK (Negative ACK) ตอบกลับไปว่าไม่ได้รับข้อมูลที่ส่งมา ถ้าส่งข้อมูลที่มี Sequence Number 1 ไป ถ้าได้รับข้อมูลก็จะตอบ ACK 1 กลับไป ถ้าส่งข้อมูล 2 ไปแล้วไม่ได้รับก็จะส่ง NAK กลับไปแล้วทำการส่งข้อมูล 2 มาใหม่จนกว่าจะได้รับ ACK
Go-Back N ARQ
เมื่อเกิดข้อผิดพลาดในการส่งข้อมูล จะทำการถอยไปเริ่มต้นส่งใหม่ ตั้งแต่เฟรมที่เกิดข้อผิดพลาด จากรูปจะเห็นว่าส่งเฟรมที่ 1 ถึง 6 ไป แต่เกิด NAK 3 ขึ้นมาก่อน เฟรมที่ 4, 5 และ 6 จะถูก REJ (Reject) แล้วจึงทำการส่งเฟรมมาใหม่ โดยเริ่มตั้งแต่เฟรมที่ 3 Base on Sliding Window
Selective Repeat ARQ / Selective Reject
เมื่อเกิดข้อผิดพลาดในการส่งข้อมูล จะทำการส่งข้อมูลมาใหม่เฉพาะเฟรมที่ผิดพลาด จากรูปจะเห็นว่าส่งข้อมูลเฟรมที่ 1 ถึง 6 ไป แต่เกิด NAK 3 เฟรมที่ 4, 5 และ 6 ที่ส่งไป จะได้รับ ACK ตอบกลับมา หลังจากนั้นจึงค่อยส่งเฟรมที่ 3 ต่อท้ายไป Base on Sliding Window
อ่านเพิ่มเติม : https://bit.ly/2jffS1P
Leave a Reply