แผนภูมิเปรียบเทียบ
พื้นฐานสำหรับการเปรียบเทียบ | ควบคุมการไหล | การควบคุมข้อผิดพลาด |
---|---|---|
ขั้นพื้นฐาน | การควบคุมการไหลมีไว้สำหรับการส่งข้อมูลที่เหมาะสมจากผู้ส่งไปยังผู้รับ | การควบคุมข้อผิดพลาดมีไว้เพื่อส่งข้อมูลที่ปราศจากข้อผิดพลาดไปยังผู้รับ |
เข้าใกล้ | การควบคุมการไหลตามข้อเสนอแนะและการควบคุมการไหลตามอัตราเป็นวิธีการเพื่อให้บรรลุการควบคุมการไหลที่เหมาะสม | การตรวจสอบพาริตี, รหัสวนซ้ำแบบวนซ้ำ (CRC) และค่าตรวจสอบเป็นวิธีการตรวจสอบข้อผิดพลาดในข้อมูล รหัส Hamming, รหัส Binary Convolution, รหัส Reed-Solomon, รหัสตรวจสอบความเท่าเทียมกันความหนาแน่นต่ำเป็นวิธีการแก้ไขข้อผิดพลาดในข้อมูล |
ส่งผลกระทบ | หลีกเลี่ยงการ overrunning บัฟเฟอร์ของตัวรับและป้องกันการสูญเสียข้อมูล | ตรวจจับและแก้ไขข้อผิดพลาดที่เกิดขึ้นในข้อมูล |
ความหมายของการควบคุมการไหล
การควบคุมการไหลเป็นปัญหาการออกแบบที่ data link layer และ transport layer ผู้ส่งส่งเฟรมข้อมูลเร็วขึ้นจากนั้นผู้รับสามารถยอมรับได้ สาเหตุอาจเป็นได้ว่าผู้ส่งกำลังทำงานบนเครื่องที่ทรงพลัง ในกรณีนี้แม้จะได้รับข้อมูลโดยไม่มีข้อผิดพลาด ผู้รับไม่สามารถรับเฟรมด้วยความเร็วนี้และทำให้บางเฟรมหายไป มีวิธีการควบคุมสองวิธีเพื่อป้องกันการสูญเสียของเฟรมที่มีการควบคุมการไหลตามข้อเสนอแนะและการควบคุมการไหลตามอัตรา
การควบคุมตามคำติชม
ในการควบคุมตามข้อเสนอแนะเมื่อใดก็ตามที่ผู้ส่งส่งข้อมูลไปยังผู้รับนั้นผู้รับจะส่งข้อมูลกลับไปยังผู้ส่งและอนุญาตให้ผู้ส่งส่งข้อมูลเพิ่มเติมหรือแจ้งผู้ส่งเกี่ยวกับวิธีการรับ โพรโทคอลของตัวควบคุมที่อิงตามความคิดเห็น ได้แก่ โพรโทคอลเลื่อนหน้าต่าง, โพรโทคอลหยุดและรอ
การควบคุมการไหลตามอัตรา
ในการควบคุมอัตราการไหลของข้อมูลเมื่อผู้ส่งส่งข้อมูลได้เร็วขึ้นไปยังผู้รับและผู้รับไม่สามารถรับข้อมูลที่ความเร็วนั้นกลไกในตัวในโปรโตคอลจะ จำกัด อัตราการส่งข้อมูลโดย ผู้ส่งโดยไม่มีข้อเสนอแนะจากผู้รับ
คำจำกัดความของการควบคุมข้อผิดพลาด
การควบคุมข้อผิดพลาดเป็นปัญหาที่เกิดขึ้นที่ชั้นเชื่อมโยงข้อมูลและระดับการขนส่งเช่นกัน การควบคุมข้อผิดพลาดเป็นกลไกสำหรับการตรวจสอบและแก้ไขข้อผิดพลาดที่เกิดขึ้นในเฟรมที่ส่งจากผู้ส่งไปยังผู้รับ ข้อผิดพลาดที่เกิดขึ้นในเฟรมอาจเป็นข้อผิดพลาดบิตเดียวหรือข้อผิดพลาดออกมา ข้อผิดพลาดบิตเดียวคือข้อผิดพลาดที่เกิดขึ้นเฉพาะในหน่วยข้อมูลหนึ่งบิตของเฟรมโดยที่ 1 ถูกเปลี่ยนเป็น 0 หรือ 0 ถูกเปลี่ยนเป็น 1 ในกรณีที่เกิดข้อผิดพลาดต่อเนื่องเกิดขึ้นเมื่อมีการเปลี่ยนแปลงมากกว่าหนึ่งบิตในเฟรม มันยังหมายถึงข้อผิดพลาดระดับแพ็คเก็ต ในข้อผิดพลาดต่อเนื่องข้อผิดพลาดเช่นการสูญเสียแพ็กเก็ตการทำซ้ำเฟรมการสูญเสียแพ็กเก็ตตอบรับ ฯลฯ อาจเกิดขึ้นได้วิธีการตรวจสอบข้อผิดพลาดในเฟรมคือการตรวจสอบพาริตี้รหัสซ้ำซ้อนวงจร (CRC) และเช็คซัม
การตรวจสอบความเท่าเทียมกัน
ในการตรวจสอบพาริตี้บิตเดียวจะถูกเพิ่มเข้าไปในเฟรมซึ่งระบุว่าจำนวนบิต '1' ที่อยู่ในเฟรมนั้นเท่ากันหรือคี่ ในระหว่างการส่งหากบิตหนึ่งได้รับการเปลี่ยนแปลงพาริตี้บิตก็จะได้รับการเปลี่ยนแปลงซึ่งสะท้อนถึงข้อผิดพลาดในเฟรม แต่วิธีการตรวจสอบความเท่าเทียมกันไม่น่าเชื่อถือราวกับว่าจำนวนบิตมีการเปลี่ยนแปลงบิตความเท่าเทียมกันจะไม่สะท้อนข้อผิดพลาดใด ๆ ในกรอบ อย่างไรก็ตามเป็นการดีที่สุดสำหรับข้อผิดพลาดบิตเดียว
รหัสความซ้ำซ้อนแบบวนซ้ำ (CRC)
ใน Cyclic Redundancy Code ข้อมูลจะได้รับการแบ่งเป็นแบบไบนารี่ไม่ว่าส่วนที่เหลือจะได้รับจะถูกแนบไปกับข้อมูลและส่งไปยังผู้รับ จากนั้นเครื่องรับจะแบ่งข้อมูลที่ได้รับด้วยตัวหารเดียวกับที่ผู้ส่งแบ่งข้อมูล หากส่วนที่เหลือที่ได้รับเป็นศูนย์ข้อมูลจะได้รับการยอมรับ ไม่เช่นนั้นข้อมูลจะถูกปฏิเสธและผู้ส่งต้องส่งข้อมูลอีกครั้ง
การตรวจสอบ
ในวิธีการตรวจสอบข้อมูลที่จะส่งจะถูกแบ่งออกเป็นชิ้นส่วนเท่ากันในแต่ละส่วนที่มี n บิต ชิ้นส่วนทั้งหมดจะถูกเพิ่มโดยใช้ส่วนประกอบ 1 ของ ผลลัพธ์จะได้รับการเติมเต็มอีกครั้งและตอนนี้ชุดบิตที่ได้รับเรียกว่า checksum ซึ่งติดอยู่กับข้อมูลดั้งเดิมที่จะส่งและส่งไปยังผู้รับ เมื่อผู้รับได้รับข้อมูลก็จะแบ่งข้อมูลในส่วนเท่า ๆ กันจากนั้นเพิ่มชิ้นส่วนทั้งหมดโดยใช้ส่วนประกอบของ 1; ผลลัพธ์จะได้รับการเติมเต็มอีกครั้ง หากผลลัพธ์ออกมาเป็นศูนย์ข้อมูลจะถูกยอมรับมิฉะนั้นจะถูกปฏิเสธและผู้ส่งจะต้องส่งข้อมูลอีกครั้ง
ข้อผิดพลาดที่ได้รับในข้อมูลสามารถแก้ไขได้โดยใช้วิธีการคือรหัส Hamming, รหัส Binary Convolution, รหัส Reed-Solomon, รหัสตรวจสอบความหนาแน่นต่ำ
ความแตกต่างที่สำคัญระหว่างการควบคุมการไหลและการควบคุมข้อผิดพลาด
- การควบคุมการไหลคือการตรวจสอบการส่งข้อมูลที่เหมาะสมจากผู้ส่งไปยังผู้รับ ในทางกลับกันการควบคุมข้อผิดพลาดจะตรวจสอบการส่งข้อมูลโดยปราศจากข้อผิดพลาดจากผู้ส่งไปยังผู้รับ
- การควบคุมการไหลสามารถทำได้โดยการควบคุมการไหลตามข้อเสนอแนะและวิธีการควบคุมการไหลตามอัตราในขณะที่ในการตรวจสอบข้อผิดพลาดวิธีการที่ใช้คือการตรวจสอบพาริตี้ รหัส, รหัส Convolution ไบนารี, รหัส Reed-Solomon, รหัสตรวจสอบความเท่าเทียมกันต่ำความหนาแน่น
- การควบคุมการไหลช่วยป้องกันบัฟเฟอร์ตัวรับไม่ให้เกินขีดและป้องกันการสูญหายของข้อมูล ในทางกลับกันการควบคุมข้อผิดพลาดจะตรวจจับและแก้ไขข้อผิดพลาดที่เกิดขึ้นในข้อมูล
สรุป:
ทั้งกลไกการควบคุมเช่นการควบคุมการไหลและการควบคุมข้อผิดพลาดเป็นกลไกที่หลีกเลี่ยงไม่ได้สำหรับการส่งข้อมูลที่สมบูรณ์และเชื่อถือได้