แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | Go-Back-N | เลือกซ้ำ |
---|---|---|
ขั้นพื้นฐาน | ส่งเฟรมใหม่ทั้งหมดที่ส่งหลังจากเฟรมที่สงสัยว่าเสียหายหรือสูญหาย | ส่งอีกครั้งเฉพาะเฟรมที่สงสัยว่าสูญหายหรือเสียหาย |
การใช้แบนด์วิดท์ | หากอัตราความผิดพลาดสูงจะทำให้เสียแบนด์วิดท์เป็นจำนวนมาก | แบนด์วิดธ์น้อยกว่าเสียในการส่งสัญญาณซ้ำ |
ความซับซ้อน | ซับซ้อนน้อยลง | ซับซ้อนมากขึ้นเนื่องจากต้องการใช้ตรรกะพิเศษและการเรียงลำดับและการจัดเก็บที่ผู้ส่งและผู้รับ |
ขนาดหน้าต่าง | N-1 | <= (N + 1) / 2 |
การเรียงลำดับ | ไม่จำเป็นต้องเรียงลำดับที่ด้านผู้ส่งหรือด้านผู้รับ | ตัวรับจะต้องสามารถเรียงลำดับตามที่มีเพื่อรักษาลำดับของเฟรม |
การเก็บรักษา | เครื่องรับไม่เก็บเฟรมที่ได้รับหลังจากเฟรมที่เสียหายจนกว่าเฟรมที่เสียหายจะถูกส่งใหม่ | เครื่องรับจะเก็บเฟรมที่ได้รับหลังจากเฟรมที่เสียหายในบัฟเฟอร์จนกระทั่งเปลี่ยนเฟรมที่เสียหาย |
ค้นหา | ไม่จำเป็นต้องทำการค้นหาเฟรมทั้งในด้านผู้ส่งและผู้รับ | ผู้ส่งต้องสามารถค้นหาและเลือกเฉพาะเฟรมที่ร้องขอ |
หมายเลข ACK | หมายเลข NAK หมายถึงหมายเลขเฟรมถัดไปที่คาดไว้ | หมายเลข NAK อ้างถึงเฟรมที่หายไป |
ใช้ | มันใช้บ่อยขึ้น | ในทางปฏิบัติน้อยกว่าเนื่องจากความซับซ้อน |
คำจำกัดความของ Go-Back-N
Go-Back-N protocol เป็นโปรโตคอลหน้าต่างบานเลื่อน มันเป็นกลไกในการตรวจจับและควบคุมข้อผิดพลาดในเลเยอร์ดาต้าลิงค์ ในระหว่างการส่งเฟรมระหว่างผู้ส่งและผู้รับหากเฟรมเสียหายสูญหายหรือตอบรับหายไปการกระทำที่ดำเนินการโดยผู้ส่งและผู้รับจะอธิบายไว้ในเนื้อหาต่อไปนี้
เฟรมที่เสียหาย
หากผู้รับได้รับเฟรมที่เสียหายหรือเกิดข้อผิดพลาดขณะรับเฟรมผู้รับจะส่ง NAK (การตอบรับเชิงลบ) สำหรับเฟรมนั้นพร้อมกับหมายเลขเฟรมนั้นซึ่งคาดว่าจะถูกส่งใหม่ หลังจากส่ง NAK แล้วเครื่องรับจะยกเลิกเฟรมทั้งหมดที่ได้รับหลังจากเฟรมที่เสียหาย ผู้รับไม่ได้ส่ง ACK ใด ๆ (การตอบรับ) สำหรับเฟรมที่ถูกทิ้ง หลังจากผู้ส่งได้รับ NAK สำหรับเฟรมที่เสียหายมันจะทำการส่งเฟรมใหม่ทั้งหมดต่อจากหมายเลขเฟรมที่อ้างอิงโดย NAK
เฟรมที่หายไป
ผู้รับตรวจสอบหมายเลขในแต่ละเฟรมที่ได้รับ หากหมายเลขเฟรมถูกข้ามตามลำดับเครื่องรับจะตรวจจับการสูญเสียเฟรมได้ง่ายเมื่อได้รับเฟรมที่เพิ่งได้รับตามลำดับ เครื่องรับส่ง NAK สำหรับเฟรมที่หายไปจากนั้นเครื่องรับจะยกเลิกเฟรมทั้งหมดที่ได้รับหลังจากเฟรมที่หายไป ผู้รับไม่ได้ส่ง ACK ใด ๆ (ตอบรับ) สำหรับเฟรมที่ถูกทิ้ง หลังจากผู้ส่งได้รับ NAK สำหรับเฟรมที่หายไปมันจะส่งเฟรมที่หายไปที่อ้างถึงโดย NAK อีกครั้งและส่งเฟรมทั้งหมดที่ส่งไปหลังจากเฟรมที่หายไปอีกครั้ง
การรับทราบที่หายไป
หากผู้ส่งไม่ได้รับ ACK ใด ๆ หรือ ACK นั้นสูญหายหรือเสียหายระหว่างการส่ง ผู้ส่งรอให้เวลาหมดและเมื่อหมดเวลาผู้ส่งจะส่งเฟรมใหม่ทั้งหมดที่ไม่ได้รับ ACK ผู้ส่งระบุการสูญเสีย ACK ด้วยความช่วยเหลือของตัวจับเวลา
หมายเลข ACK เช่นหมายเลข NAK (การตอบรับเชิงลบ) แสดงจำนวนเฟรมที่ผู้รับนั้นคาดว่าจะเป็นลำดับถัดไป ขนาดหน้าต่างของผู้รับคือ 1 เนื่องจากชั้นดาต้าลิงค์ต้องการเพียงเฟรมที่จะต้องส่งติดกับเลเยอร์เครือข่าย ขนาดหน้าต่างของผู้ส่งเท่ากับ 'w' หากอัตราความผิดพลาดสูงแบนด์วิธจำนวนมากจะสูญเปล่า
คำจำกัดความของการเลือกซ้ำ
เลือกซ้ำยังเป็นโปรโตคอลหน้าต่างบานเลื่อนที่ตรวจจับหรือแก้ไขข้อผิดพลาดที่เกิดขึ้นในชั้นข้อมูล โพรโทคอลการทำซ้ำที่เลือกส่งสัญญาณเฉพาะเฟรมที่เสียหายหรือสูญหาย ในโปรโตคอลการทำซ้ำแบบเลือกเฟรมรับการส่งสัญญาณใหม่จะได้รับตามลำดับ โปรโตคอลการเลือกซ้ำสามารถดำเนินการต่อไปนี้
- ตัวรับมีความสามารถในการเรียงลำดับเฟรมในลำดับที่เหมาะสมเนื่องจากรับเฟรมที่ส่งซ้ำซึ่งลำดับนั้นไม่อยู่ในลำดับของเฟรมที่รับ
- ผู้ส่งต้องสามารถค้นหาเฟรมที่ได้รับ NAK
- ผู้รับต้องมีบัฟเฟอร์เพื่อจัดเก็บเฟรมที่ได้รับก่อนหน้านี้ทั้งหมดจนกระทั่งเฟรมที่ส่งผ่านถูกจัดเรียงและวางในลำดับที่เหมาะสม
- หมายเลข ACK เช่นหมายเลข NAK หมายถึงเฟรมที่สูญหายหรือเสียหาย
- มันต้องมีขนาดหน้าต่างน้อยลงเมื่อเปรียบเทียบกับโปรโตคอล go-back-n
เฟรมที่เสียหาย
หากผู้รับได้รับเฟรมที่เสียหายก็จะส่ง NAK สำหรับเฟรมที่ตรวจพบข้อผิดพลาดหรือความเสียหาย หมายเลข NAK เช่นเดียวกับใน go-back-n ยังระบุการรับรู้ของเฟรมที่ได้รับก่อนหน้านี้และข้อผิดพลาดในเฟรมปัจจุบัน ตัวรับสัญญาณยังคงได้รับเฟรมใหม่ในขณะที่รอเฟรมที่เสียหายที่จะถูกแทนที่ เฟรมที่ได้รับหลังจากเฟรมที่เสียหายไม่ได้รับการยอมรับจนกว่าเฟรมที่เสียหายจะถูกแทนที่
เฟรมที่หายไป
เช่นเดียวกับในโปรโตคอลการเลือกซ้ำเฟรมสามารถรับได้ไม่เป็นระเบียบและจะถูกจัดเรียงเพื่อรักษาลำดับเฟรมที่เหมาะสม ในขณะที่เรียงลำดับหากหมายเลขเฟรมถูกข้ามผู้รับจะรับรู้ว่าเฟรมหายไปและจะส่ง NAK สำหรับเฟรมนั้นไปยังผู้ส่ง หลังจากได้รับ NAK สำหรับเฟรมที่หายไปผู้ส่งจะค้นหาเฟรมนั้นในหน้าต่างของมันแล้วส่งเฟรมนั้นอีกครั้ง หากเฟรมที่ส่งล่าสุดหายไปตัวรับจะไม่ตอบสนองและความเงียบนี้คือการตอบรับเชิงลบสำหรับผู้ส่ง
การรับทราบที่หายไป
หากผู้ส่งไม่ได้รับ ACK ใด ๆ หรือ ACK จะสูญหายหรือเสียหายในระหว่างการส่ง ผู้ส่งรอให้เวลาหมดและเมื่อหมดเวลาผู้ส่งจะส่งเฟรมทั้งหมดที่ไม่ได้รับ ACK อีกครั้ง ผู้ส่งระบุการสูญเสีย ACK ด้วยความช่วยเหลือของตัวจับเวลา
ความแตกต่างที่สำคัญระหว่าง Go-Back-N และ Selective Repeat
- โปรโตคอล Go-Back-N ออกแบบมาเพื่อส่งเฟรมทั้งหมดที่มาถึงหลังจากเฟรมที่เสียหายหรือสูญหาย ในทางกลับกัน Selective Repeat protocol จะส่งสัญญาณเฉพาะเฟรมที่เสียหายหรือสูญหายเท่านั้น
- หากอัตราความผิดพลาดสูงเช่นเฟรมจำนวนมากได้รับความเสียหายจากนั้นทำการส่งเฟรมทั้งหมดที่มาถึงหลังจากเฟรมที่เสียหายเสียแบนด์วิธจำนวนมาก ในทางกลับกันโปรโตคอลการเลือกซ้ำจะส่งเฟรมที่เสียหายใหม่เท่านั้นดังนั้นแบนด์วิดท์ขั้นต่ำจึงถูกสิ้นเปลือง
- เฟรมทั้งหมดหลังจากเฟรมที่เสียหายถูกยกเลิกและเฟรมที่ส่งใหม่มาถึงตามลำดับจากเฟรมที่เสียหายเป็นต้นไปดังนั้นจึงมีอาการปวดหัวน้อยกว่าในการเรียงลำดับเฟรมจึงมีความซับซ้อนน้อยกว่า ในทางกลับกันเฉพาะเฟรมที่เสียหายหรือสงสัยว่าจะถูกส่งใหม่ดังนั้นต้องใช้ตรรกะเพิ่มเติมสำหรับการเรียงลำดับจึงมีความซับซ้อนมากขึ้น
- Go-Back-N มีขนาดหน้าต่าง N-1 และการทำซ้ำแบบเลือกมีขนาดหน้าต่าง <= (N + 1) / 2
- ทั้งผู้ส่งและผู้รับไม่จำเป็นต้องใช้อัลกอริทึมการเรียงลำดับใน Go-Back-N ในขณะที่ผู้รับจะต้องสามารถเรียงลำดับตามที่มีเพื่อรักษาลำดับ
- ในตัวรับสัญญาณ Go-Back-N จะทิ้งเฟรมทั้งหมดหลังจากเฟรมที่เสียหายดังนั้นจึงไม่จำเป็นต้องจัดเก็บเฟรมใด ๆ โปรโตคอลการเลือกซ้ำไม่ทิ้งเฟรมที่มาถึงหลังจากเฟรมที่เสียหายแทนมันเก็บเฟรมเหล่านั้นจนกว่าเฟรมที่เสียหายจะมาถึงเรียบร้อยแล้วและเรียงลำดับตามลำดับที่เหมาะสม
- ในเฟรม NAK ซ้ำที่เลือกได้หมายถึงหมายเลขเฟรมที่เสียหายและใน Go-Back-N เฟรม NAK หมายถึงเฟรมถัดไปที่คาดไว้
- โดยทั่วไป Go-Back-N นั้นมีการใช้งานมากกว่าเนื่องจากมีความซับซ้อนน้อยกว่าแทนที่จะใช้โปรโตคอล Selective Repeat
สรุป:
การเลือกซ้ำเป็นโปรโตคอลที่มีประสิทธิภาพมากขึ้นเนื่องจากไม่ต้องเสียแบนด์วิดท์สำหรับเฟรมที่ได้รับอย่างเหมาะสม แต่ความซับซ้อนและค่าใช้จ่ายจะสนับสนุนการใช้โปรโตคอล Go-back-n