The words you are searching are inside this book. To get more targeted content, please make full-text search by clicking here.

ระบบเครือข่ายคอมพิวเตอร์ การรักษาความมั่นคง ความปลอดภัยทางเทคโนโลยีสารสนเทศ

Discover the best professional documents and content resources in AnyFlip Document Base.
Search
Published by weerawit.ler, 2021-07-23 23:35:07

Data Communication and Network

ระบบเครือข่ายคอมพิวเตอร์ การรักษาความมั่นคง ความปลอดภัยทางเทคโนโลยีสารสนเทศ

บทที 7

การตรวจสอบและแก้ไขความผิดพลาดของข้อมูล
(Error Detection and Correction)

วตั ถุประสงค์การเรียนรู้

1. เปรียบเทียบความแตกตา่ งระหวา่ งขอ้ ผิดพลาดแบบบิตเดียวกบั แบบหลายบิตได้
2. สามารถคาํ นวณเพือตรวจจบั ขอ้ ผิดพลาดวิธีตามวิธี Parity Check, Checksum และ

CRC ได้
3. บอกสาเหตุทีตอ้ งมีการควบคุมการไหลของขอ้ มูลและการควบคุมขอ้ ผดิ พลาดได้
4. เขา้ ใจหลกั การทาํ งานของวธิ ีการควบคุมการไหลของขอ้ มูล แบบ Stop - and - Wait

และ Sliding Windows
5. บอกวธิ ีการจดั การกบั ขอ้ ผิดพลาดในกรณีต่าง ๆ ได้
6. เข้าใจกระบวนการควบคุมขอ้ ผิดพลาดดว้ ยวิธี Go-Back-N, Selective Repeat และ

HDLC

การรับส่งขอ้ มูลผา่ นเครือข่ายนนั จาํ เป็ นอยา่ งยงิ ทีขอ้ มูลจากตน้ ทางทีถูกส่งไปยงั ปลายทางนนั จะ
มีความถูกต้องสมบูรณ์เหมือนเดิมทุกประการ แต่การเดินทางของขอ้ มูลไปในเครือข่ายนัน ยงั มีปัจจยั
อืน ๆ อกี หลายประการทีสามารถทาํ ใหข้ อ้ มูลเกิดความผดิ พลาด (Error) หรือผดิ เพียนไปจากเดิมได้

ในบทนีจะไดก้ ล่าวถึงชนั สือสารชนั ทีสอง คือ ชนั สือสารเชือมตอ่ ขอ้ มูล (Data Link Layer) โดยมี
หน้าทีรับผิดชอบในการกาํ หนดเฟรมขอ้ มูล (Framing) ตาํ แหน่งทีอยู่ (Addressing) และการควบคุมการ
ไหลของขอ้ มูล (Flow Control) ควบคุมขอ้ ผิดพลาด (Error Control) ควบคุมการเขา้ ถึงสือกลาง (Media
Access Control)

ชันการสือสารเชือมต่อข้อมูลจะรับแพ็กเก็ตข้อมูลจากชันสือสารควบคุมเครือข่าย ด้วยการ

แบ่งเป็ นหน่วยขอ้ มูลทีเรียกว่า “เฟรม” จากนันก็จะปะส่วนหัวทีเรียกว่าเฮดเดอร์เข้าไปในเฟรม เพือ
กาํ หนดทีอยูข่ องผูส้ ่งและผูร้ ับสาํ หรับการสือสารระหวา่ งตน้ ทางกบั ปลายทางนนั หากอตั ราความเร็วของ
ทงั 2 ฝังไม่เทา่ กนั เช่น ฝังรับมีอตั ราความเร็วนอ้ ยกวา่ ฝังส่ง ชนั สือสารเชือมต่อขอ้ มูลก็จะมกี ลไกทีเรียกวา่

“การควบคุมการไหลของข้อมูล (Flow Control)” เพือหลีกเลียงปัญหาการรับขอ้ มูลจนท่วมล้นของอีก

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มลู หนา้ ที 251

ฝังหนึง นอกจากนี ชนั สือสารการเชือมตอ่ ขอ้ มูลจะช่วยสร้างความน่าเชือถือไปยงั ชนั สือสารกายภาพ ดว้ ย
การเพิมกลไกการตรวจจบั และส่งเฟรมขอ้ มูลซาํ กรณีเฟรมขอ้ มูลเดิมเสียหาย รวมถึงการกาํ จดั เฟรมขอ้ มูล
ซาํ ซอ้ น หรือจดั การกบั เฟรมขอ้ มูลทีสูญหาย เป็ นตน้ ดงั นนั จึงตอ้ งมีการตรวจสอบ (Detection) และแกไ้ ข
ความผดิ พลาด (Correction) ของขอ้ มูลดว้ ย

7.1 ประเภทของความผดิ พลาดของข้อมูล (Type of Error)

สัญญาณรบกวน (Noise) ต่าง ๆ ทีเกิดขึนนนั สามารถทาํ ให้สัญญาณทีส่งออกไปในสายสือสาร
เกิดการเปลียนแปลงรูปแบบได้ เช่น เปลียนจาก 0 เป็ น 1 หรือ เปลียนจาก 1 ไปเป็ น 0 ซึงเหตุการณ์เช่นนี
จะทาํ ให้ขอ้ มูลเกิดความผิดพลาดไปจากเดิม ในบทที 4 ทีผา่ นมาไดม้ ีการกล่าวถึงสัญญาณรบกวนที
เกิดขึนในระหว่างการสือสาร รวมถึงเทคนิคการป้องกนั ด้วยการเลือกใช้สือกลางทีมีคุณภาพ และมี
อุปกรณ์ช่วยลดสัญญาณรบกวน แต่อย่างไรก็ตาม เทคนิคการป้องกนั ดงั กล่าว เป็ นเพียงแนวทางช่วยลด
สัญญาณรบกวนก่อนทีจะส่งขอ้ มูลออกไปยงั สือกลาง แต่นนั มิไดห้ มายความวา่ จะไม่เกิดขอ้ ผิดพลาดขึน
ดงั นนั จึงตอ้ งมีกระบวนการตรวจจบั ขอ้ ผดิ พลาด และความผิดพลาดของขอ้ มูลแบ่งออกได้ 2 ประเภท คอื

ความผดิ พลาดแบบบติ เดียว (Sigle – Bit – Error)
ความผดิ พลาดของขอ้ มูลแบบบติ เดียว หมายความวา่ ขอ้ มูลแต่ละชุดทีถูกส่งออกไปจะมีความผดิ
พลาดเกิดขึนเพียงบิตเดียวเท่านัน โดยปกติความผิดพลาดแบบบิตเดียวนี จะเกิดกบั การส่งขอ้ มูลแบบ
ขนาน (Parallel Transmission)

ภาพที 7.1 ความผดิ พลาดของข้อมูลแบบิตเดียว
จากภาพที 7.1 จะเห็นได้ว่าข้อมูลมีอยู่ 8 bit โดยทีข้อมูลทีส่งออกไป คือ 00000010 แต่ได้มี
สัญญาณรบกวนเกิดขึนในระหว่างการส่ง ทาํ ให้ขอ้ มูลชุดนนั เปลียนไปเป็น 00001010 ซึงเมือรับขอ้ มูลนี
ไป ถา้ ไมไ่ ดร้ บั การตรวจสอบและการแกไ้ ขแลว้ จะทาํ ใหข้ อ้ มลู ทีไดร้ ับไปนีเป็ นขอ้ มูลทีมีความผิดพลาด
ตวั อยา่ งเช่น สมมติวา่ ขอ้ มูลถูกส่งออกไปดว้ ยอตั ราความเร็ว 1 Mbps (1 บิต ใชเ้ วลา 1 µs) ดงั นนั
ถา้ มีสัญญาณรบกวนเกิดขึนเป็น 1 µs จะทาํ ให้ขอ้ มูลเกิดการผิดพลาดไป 1 บิตได้ แต่ในความเป็ นจริงแลว้

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มูล หนา้ ที 252

ช่วงเวลาทีเกิดสัญญาณรบกวนจะค่อนขา้ งมากกว่านี ดังนันจึงสามารถเกิดความผิดพลาดของข้อมูล
มากกวา่ 1 บิตไดด้ ว้ ย

ความผดิ พลาดแบบหลายบติ (Burst error)
ความผิดพลาดของขอ้ มูลแบบหลายบิตนนั เป็ นความผิดพลาดทีเกิดขึนกบั ขอ้ มูลตงั แต่ 2 บิตขึน
ไป เนืองจากสัญญาณรบกวนทีเกิดขึนอาจจะมีช่วงระยะเวลาทีนาน ดงั นนั จึงสามารถทาํ ให้เกิดความ
ผดิ พลาดของขอ้ มูลไดม้ ากกวา่ 1 บิตขึนไปนนั เอง

ภาพที 7.2 ความผดิ พลาดของข้อมูลแบบหลายบิต

จากภาพที 7.2 จะเห็นไดว้ า่ ข้อมูลทีเกิดผิดพลาดนันมี 4 บิต และความผิดพลาดทีเกิดขึนนีไม่
จาํ เป็ นวา่ ขอ้ มูลทีผดิ เพียนไปจากเดิมจะตอ้ งอยตู่ ิดกนั เสมอไป เนืองจากสัญญาณรบกวนสามารถเกิดขึนได้
เป็ นช่วง ๆ เช่นกัน และแต่ละช่วงอาจจะมีระยะเวลาทีไม่เท่ากนั ด้วย โดยทวั ไปแล้วจะพบว่าความผิด
พลาดของข้อมูลแบบหลายบิตนี จะเกิดขึนกับการส่ งข้อมูลแบบอนุ กรม (Serial Transmission)
ตวั อย่างเช่น สมมติวา่ ขอ้ มูลถูกส่งออกไปดว้ ยอตั ราความเร็ว 1 Mbps และมีสัญญาณรบกวนเกิดขึนเป็ น
เวลา 0.01 วนิ าที ดงั นนั ขอ้ มูลทีเกิดความผดิ พลาดจะมีไดท้ งั หมด 10,000 บิต

. การตรวจสอบความผดิ พลาดของข้อมูล (Error Detection)

โดยหลกั การแลว้ เครือข่ายจะตอ้ งสามารถถ่ายโอนขอ้ มูลจากอุปกรณ์หนึงไปยงั อุปกรณ์อืน ๆ ได้
อยา่ งถูกตอ้ งและสมบูรณ์ แต่เครือข่ายไม่สามารถรับประกนั ถึงขอ้ มูลทีส่งไปยงั ปลายทาง วา่ เป็ นขอ้ มูลที
เหมือนกบั ตน้ ทางทีส่งมาหรือไม่ ซึงมีความเป็ นไปไดท้ ีขอ้ มูลผิดเพียนไปจากเดิมในระหวา่ งการเดินทาง
อนั เนืองมาจากถูกรบกวนจากปัจจยั แวดลอ้ มต่าง ๆ ไม่วา่ จะเป็นการลดทอนของสัญญาณ หรือถูกสญั ญาณ
รบกวนสอดแทรกเขา้ มาระหวา่ งเดินทาง สิงเหล่านีจะส่งผลกระทบตอ่ ขอ้ มูลโดยตรง ทาํ ใหบ้ ิตขอ้ มูลอาจ
ถูกลบลา้ งไปบิตใดบิตหนึงหรือหลาย ๆ บิตก็เป็ นได้ อยา่ งไรก็ตาม เครือข่ายทีดีตอ้ งมีความน่าเชือถือและ
ไวว้ างใจได้ ดงั นนั จึงจาํ เป็ นตอ้ งมีกลไกในการตรวจจบั เพือแกไ้ ขขอ้ ผิดพลาดทีเกิดขึน ซึงตามปกติการ
ตรวจจบั ข้อผิดพลาดและการแกไ้ ข (Detection and Correction) ถูกนาํ มาใช้งานบนชนั สือสารเชือมต่อ-

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มลู หนา้ ที 253

ขอ้ มูล และชนั สือสารจดั การนาํ ส่งขอ้ มูล บนแบบจาํ ลอง OSI โดยในชนั สือสารเชือมตอ่ ขอ้ มลู เมืออุปกรณ์
ใดทีมีการสร้างเฟรมขอ้ มูล ก็จะมีการแทรกรหัสเขา้ ไปเพือนาํ มาใชต้ รวจจบั ขอ้ ผิดพลาดของขอ้ มูลใน
เฟรมนันดว้ ย ครันเมือเฟรมขอ้ มูลดงั กล่าวเดินทางมาถึงปลายทาง โหนดปลายทางก็จะนาํ รหัสตรวจจบั
ขอ้ ผิดพลาดทีแนบมาพร้อมกับเฟรมขอ้ มูลนาํ ไปตรวจสอบ ในทาํ นองเดียวกนั ชันสือสารจดั การนาํ ส่ง
ขอ้ มูลก็จะมีความคลา้ ยคลึงกบั ชันสือสารเชือมต่อขอ้ มูล แต่การปฏิบตั ิการบนชนั สือสารจดั การนาํ ส่ง
ขอ้ มูลจะเกียวขอ้ งกบั ขอ้ มูลทีรับส่งกนั ในลกั ษณะ End-to-End ทีแต่ละโฮสต์อยู่ห่างไกลกนั ในขณะที
ชนั สือสารเชือมต่อขอ้ มูลจะเป็ นในลกั ษณะ Node-to-Node ซึงรับส่งอยบู่ นลิงคเ์ ดียวกนั สําหรับชนิดของ
รหสั ตรวจจบั ขอ้ ผดิ พลาดมีหลายวธิ ี ไดแ้ ก่

 การใชบ้ ิตตรวจสอบ (parity Checks)
 การใชว้ ธิ ี CRC (Cyclic Redundancy Checksum)
 การหาผลรวม (Checksum)

การใช้บติ ตรวจสอบ (Parity Checks)
เป็ นวิธีการตรวจจบั ขอ้ ผิดพลาดทีไม่ยุ่งยากหรือซับซ้อนมากนัก และเป็ นวิธีการดังเดิม ซึง

สามารถแบง่ ไดเ้ ป็ นแบบ Simple parity check และแบบ Two-Dimensional parity check

Simple Parity Check
วธิ ีการแบบนีจะใชบ้ ิตตรวจสอบ หรือ พาริตีบิต (Parity bit) ส่งไปพร้อมกบั บิตขอ้ มูลจริง ดงั นัน
ก่อนทีจะส่งขอ้ มูลออกไปไดจ้ ะตอ้ งคาํ นวณหาพาริตีบิตเสียก่อน ซึงในการหาพาริตีบิตนนั สามารถทาํ ได้ 2
วธิ ี คอื การตรวจสอบพาริตีคู่ (Even Parity) และการตรวจสอบพาริตีคี (Odd Parity)

ภาพที 7.3 หลกั การของพาริตีคู่ หนา้ ที 254

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มลู

จากภาพที 7.3 สมมติวา่ บิตขอ้ มูลทีตอ้ งการส่ง คือ ก่อนทีจะส่งขอ้ มูลออกไปนนั ตอ้ งทาํ
การคาํ นวณหาพาริตีบิตก่อน โดยการนบั บิตขอ้ มูลทีมีคา่ เป็ น “1” วา่ มีทงั หมดกีบิต จากตวั อย่างจะเห็นวา่ มี
บิตขอ้ มูลทีมีคา่ เป็น “1” มีทงั หมด 3 บิต ดงั นนั พาริตีบิตทีตอ้ งเพิมไปกบั ขอ้ มูลตอ้ งเป็ น “1” เนืองจากเรา
ใช้วิธีพาริตีคู่ ดงั นันจาํ นวนบิตข้อมูล + พาริตีบิต ตอ้ งเป็ นเลขคู่ (มี “1” ทงั หมด 4 ตวั ) วิธีง่าย ๆ ในการ

คาํ นวน คือ

 ถา้ นบั บิตขอ้ มูลทีเป็น “1” ไดเ้ ป็นเลขคี พาริตีบิต จะตอ้ งเป็น “1”
 ถา้ นบั บิตขอ้ มูลทีเป็น “1” ไดเ้ ป็นเลขคู่ พาริตีบิต จะตอ้ งเป็น “0”

เมือฝังรับไดร้ ับขอ้ มูลเรียบร้อยแลว้ จะทาํ การนบั วา่ บิตทงั หมดทีไดร้ ับมานนั มีบิตทีเป็ น “1” เป็ น
เลขคูห่ รือไม่ จากตวั อยา่ งฝังรับไดร้ ับบิตขอ้ มูล 11000011 เมือนบั แลว้ บิตทีเป็ น “1” มีทงั หมด 4 บิต แสดง
วา่ ขอ้ มูลทีไดร้ ับมาเป็ นขอ้ มูลทีถูกตอ้ ง แต่ถา้ สมมติวา่ เกิดสัญญาณรบกวนในขณะทีส่งขอ้ มูลทาํ ให้ฝังรับ
ได้รับบิตข้อมูล 11001011 เมือทําการตรวจสอบแล้วปรากฏว่ามีบิตทีเป็ น “1” ทังหมด 5 บิต นัน
หมายความวา่ ขอ้ มูลทีไดร้ ับมานนั ไม่ถูกตอ้ ง จะตอ้ งทาํ การส่งขอ้ มูลชุดนนั มาใหม่ ส่วนวธิ ีการใชพ้ าริตีคี
นันจะใชห้ ลกั การเดียวกนั เพียงแต่ขอ้ มูลทีตอ้ งส่งออกไปนันจะตอ้ งมีจาํ นวนบิตทงั หมด (บิตข้อมูล +

พาริตีบิต) ทีเป็น “1” ตอ้ งเป็นเลขคี

ตัวอย่างที 1
สมมติวา่ ตอ้ งการส่งขอ้ ความ “world” ซึงสามารถแปลงจาก ASC II code เป็นเลขฐานสองไดด้ งั นี

1110111 1101111 1110010 1101100 1100100
wo t l d

เมือนาํ มาคาํ นวณหาพาริตีบิต โดยใชว้ ธิ ีพาริตีคู่ (Even-parity) จะไดพ้ าริตีบิต (ขีดเส้นใต)้ ดงั นี

11101110 11011110 11100100 11011000 11001001
wo t l d

ตวั อย่างที 2
จากตวั อยา่ งที 1 ไดท้ าํ การส่งบิตขอ้ มูลพร้อมทงั พาริตีบิตออกไป ถา้ ฝังรับไดร้ ับขอ้ มูลตอ่ ไปนี

11101110 11011110 11100100 11011000 11001001

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มลู หนา้ ที 255

เมือรับขอ้ มูลแลว้ ทาํ การนบั บิตทีเป็ น “1” ปรากฏวา่ ไดเ้ ป็ นเลขคู่ทงั หมด (6, 6, 4, 4, 4) แสดงวา่
ขอ้ มลู ทีไดร้ ับมานนั เป็ นขอ้ มูลทีถูกตอ้ งทงั หมด

ตัวอย่างที 3
จากตวั อยา่ งที 1 ถา้ ฝังรับไดร้ ับขอ้ มูลมาเป็นดงั นี

11111110 11011110 11101100 11011000 11001001

เมือไดร้ ับขอ้ มูลนีมา ก็จะทาํ การนบั บิตทีเป็ น “1” ปรากฏวา่ เป็ นทงั เลขคู่และเลขคี (7, 6, 5, 4, 4)
แสดงว่ามีขอ้ มูลบางส่วนเกิดการผดิ พลาดของขอ้ มูลขึน ดงั นนั ขอ้ มูลทีผดิ พลาดนนั จะตอ้ งตดั ทิงไป และ
ตอ้ งใหฝ้ ังส่งทาํ การส่งขอ้ มูลใหม่

วิธีการแบบ Simple parity check นีถ้ามีความผิดพลาดของข้อมูลเพียงนิดเดียว จะสามารถ
ตรวจสอบความผิดพลาดได้หมดทุกกรณี แต่ถ้าเกิดความผิดพลาดของข้อมูลหลายบิต จะสามารถ
ตรวจสอบไดใ้ นกรณีทีจาํ นวนบิตทีเกิดการผดิ พลาดไปเป็นเลขคีเทา่ นนั

Two – Dimensional parity check
เป็ นวธิ ีทีสามารถตรวจสอบความผดิ พลาดของขอ้ มูลไดด้ ีกวา่ แบบ Simple Parity Check ซึงแบบ
นีจะนาํ บิตของขอ้ มูลทีตอ้ งการจะส่งออกไปมาทาํ เป็นตาราง (Table) โดยคาํ นวณหาพาริตีบิตทงั แนวนอน
(Row) และแนวตงั (Column) ดงั ภาพที 7.6 จะทาํ การหาพาริตีบิตในแนวนอน 4 แถวก่อน จากนนั จึงทาํ
การหาพาริตีบิตในแนวตงั อกี 8 แถว ซึงจะไดข้ อ้ มูลในแนวนอนแถวที 5 ออกมา 8 บิต

ภาพที 7.4 Two – Dimensional parity check หนา้ ที 256

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มลู

ตวั อย่างที 4
สมมติขอ้ มูลทีตอ้ งการส่งเป็น ดงั นี

10101001 00111001 11011101 11100111 0101010

ขณะทีมีการส่งขอ้ มูลเกิดสัญญาณรบกวนกบั ขอ้ มูล 8 บิต ทาํ ให้ขอ้ มูลบางบิตเกิดความผิดเพียน
ไป เป็น ดงั นี

10100011 10001001 11011101 11100111 0101010

เมือฝังรับไดท้ าํ การตรวจสอบพาริตีบิตแลว้ ขอ้ มูลในบางบิตไมเ่ ป็ นไปตามกฎของพาริตีคู่ จึงทาํ
ใหต้ อ้ งทิงขอ้ มลู ทงั บล็อกนนั ไป

10100011 10001001 11011101 11100111 10101010
(Parity bits)

การตรวจสอบสอบ Cyclic Redundancy Check (CRC)
เป็ นวิธีการตรวจสอบความผิดพลาดของขอ้ มูลทีมีประสิทธิภาพสูงกว่าวิธีการตรวจสอบแบบ

พาริตีและใชห้ ลกั การทาํ งานทีแตกต่างกนั ดงั นี

 วธิ ีตรวจสอบแบบพาริตีจะใชก้ ารบวก แตแ่ บบ CRC จะใชก้ ารหาร
 แบบพาริตีสามารถแทรกบิตตรวจสอบลงในข้อมูลได้ แต่แบบ CRC จะต้องนําบิต

ตรวจสอบไปต่อทา้ ยของขอ้ มลู

ดงั ในภาพที 7.5 แสดงถึงการหาบิตตรวจสอบ และการตรวจสอบความผดิ พลาดของขอ้ มูลดว้ ยวธิ ี
แบบ CRC ซึงจะใชห้ ลกั การในการทาํ 3 ขนั ตอนดว้ ยกนั ดงั นี

ภาพที 7.5 หลกั การของการบิตตรวจสอบ และการตรวจสอบความผดิ พลาดของข้อมูลด้วยวธิ ีแบบ CRC

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มูล หนา้ ที 257

1. เพิมบิต “0” จาํ นวน n บิตต่อทา้ ยบิตขอ้ มูล โดยทีตวั หาร (Divisor) จะมีจาํ นวนบิตเทา่ กบั n+1
บิต
2. นําบิตขอ้ มูลทีเพิมบิต “0” เขา้ ไปแล้วเป็ นตวั ตงั แล้วการใช้การหารแบบเลขฐานสอง เศษ
(remainder) ทีไดจ้ ากการหารนนั คือบิตตรวจสอบ
3. นาํ บิตตรวจสอบจาํ นวน n บิตทีมาได้จากขนั ตอนที 2 มาแทนทีบิต “0” ทีอยู่ส่วนท้ายของ
ขอ้ มูล

เมือผรู้ ับไดท้ าํ การรับขอ้ มูลทีถูกส่งมาให้ จะทาํ การหารดว้ ยตวั หาร ถา้ เศษทีไดจ้ ากการหารเท่ากบั
ศูนย์ แสดงวา่ ขอ้ มูลทีไดร้ ับมานนั เป็ นขอ้ มูลทีถูกตอ้ ง แต่ถา้ เศษทีไดจ้ ากการหารไม่เท่ากบั ศูนย์ แสดงว่า
เป็ นขอ้ มูลทีมีความผิดพลาด

การหาผดิ ตรวจสอบ
ในการหาบิตตรวจสอบจะใช้กระบวนการหารแบบโมดูโล 2 (Modulo-2) ซึงจะไม่มีการทด
สาํ หรับการบวกและไม่มีการยมื สําหรับการลบ เพราะฉะนนั แลว้ การบวกลบแบบนีจะเหมือนกบั การนาํ
บิตขอ้ มูลมา XRO กนั ดงั นนั จะไดว้ า่ 0-0 = 0, 0 - 1 = 1, 1 - 0 =1, 1 - 1 = 0
จากภาพที 7.6 จะเห็นไดว้ า่ ในขนั ตอนแรก จะนาํ ตวั ตงั 4 บิตลบดว้ ยตวั หาร 4 บิต คือ 101 – 1101
จะไดเ้ ศษเทา่ กบั 100 จากนนั ตอ้ งดึงขอ้ มูลจากดา้ นบนลงมาอีก 1 บิตเพือให้จาํ นวนบิตเท่ากบั ตวั หาร ซึงจะ
ไดเ้ ป็น 1000 จากนนั ในขนั ตอนต่อไปจะนาํ 1000 - 1101 = 101 ซึงจะทาํ อยา่ งนีไปเรือย ๆ
ในกระบวนการหารแบบนีบิตซา้ ยสุดของตวั หารจะมีคา่ เป็ น 1 เสมอ ดงั นนั ถา้ บิตซา้ ยสุดของเศษ
มีค่าเป็ น 0 แลว้ จะตอ้ งใช้ตวั ลบเป็ น 0000 ไม่ใช้ตวั หารมาเป็ นตวั ลบ เช่น เมือนาํ 1110 - 1101 จะไดเ้ ศษ
011 ซึงบิตซ้ายสุดเป็ น 0 ดังนันตวั ลบทีจะต้องนํามาใช้ คือ 0000 เป็ นตน้ เพือให้ง่ายต่อการเข้าใจเรา
สามารถสรุปวธิ ีหาบติ ตรวจสอบได้ ดงั นี

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มลู หนา้ ที 258

ภาพที 7. การหาบิตตรวจสอบของเทคนคิ CRC

1. ถา้ ใช้ตวั หารมีจาํ นวนบิตเท่ากบั n + 1 บิตแลว้ จะตอ้ งเติมบิต 0 จาํ นวน n ตวั ทีส่วนทา้ ยของ
ขอ้ มูล
2. ใชบ้ ิตขอ้ มูลลบดว้ ยตวั หาร (ใชว้ ธิ ีการ XRO) เมือลบแลว้ ผลทีไดจ้ ากการลบ ถา้

 บิตซา้ ยสุดของเศษเป็น 1ใหน้ าํ ตวั หารมาเป็ นตวั ลบอีกครัง
 บิตซา้ ยสุดของเศษเป็น 0 ใหน้ าํ 0000 มาเป็ นตวั ลบ

3. ทาํ ในขอ้ 2 จนกระทงั ไม่สามารถลบกนั ไดอ้ ีกแลว้ (จาํ นวนบิตของเศษนอ้ ยกวา่ จาํ นวนบิตของ
ตวั หาร) จะถือไดว้ า่ เศษทีไดจ้ ากการหารนนั คือ บิตตรวจสอบ
4. นาํ บิตตรวจสอบทีไดไ้ ปแทนทีบิต 0 จาํ นวน n ตวั ทีส่วนทา้ ยของขอ้ มลู

การตรวจสอบความผดิ พลาดของข้อมูล
เมือผูไ้ ดร้ ับบิตขอ้ มูลรวมทงั บิตตรวจสอบทีอยูส่ ่วนทา้ ยของบิตขอ้ มูลแลว้ จะใช้วิธีการหารใน
โมดูโล เช่นกนั ถา้ เศษของการหารเท่ากบั 0 หรือทีเรียกวา่ หารกนั ลงตวั แสดงวา่ ขอ้ มูลชุดนนั เป็ นขอ้ มูล
ทีถูกตอ้ งแต่ถา้ หารกนั ไม่ลงตวั แสดงวา่ ขอ้ มูลทีไดร้ บั มานนั เป็นขอ้ มูลทีผดิ พลาด ดงั ภาพที 7.7

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มูล หนา้ ที 259

ภาพที 7.7 การตรวจสอบความผดิ พลาดของข้อมูลแบบ CRC
โพลโิ นเมียล (Polynomial)
ปกติแลว้ ในการแทนบิตขอ้ มูลของตวั หารจะไม่ใชร้ ูปของเลขฐานสอง เนืองจากค่อนขา้ งยาวและ
จาํ ไดย้ ากแตจ่ ะเขียนใหอ้ ยใู่ นรูปของ “โพลโิ นเมียล” เช่น ถา้ ตวั หารมีค่าเป็ น 10100111 จะสามารถเขียนให้
อยูใ่ นรูปของโพลิโนเมียลได้ ดงั ภาพที 7.8 ส่วนความสัมพนั ธ์กนั ระหวา่ งโพลีโนเมียลกบั เลขฐานสองจะ
เป็ นดงั ภาพที 7.9

ภาพที 7.8 โพลโิ นเมยี ล

ภาพที 7.9 การเขียนตวั หารให้อย่ใู นรูปของโพลโิ นเมยี ล หนา้ ที 260

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มูล

ในการเลือกตวั หารเพือทีจะนาํ มาใชก้ บั วิธีแบบ CRC นนั ควรจะตอ้ งมีคุณสมบตั ิอยา่ งน้อยทีสุด
เป็ นดงั นี

 ไม่ควรทีจะถูกหารดว้ ย x ลงตวั เช่น x หรือ x2 + x จะสามารถหารดว้ ย x ไดล้ งตวั
 ควรจะถูกหารดว้ ย x + 1 ลงตวั เช่น x + 1, x2 + 1 เป็ นตน้

สาํ หรบั ตวั หารทีเป็นมาตรฐานทวั ไป ทีมีการนาํ ไปใชง้ านในโพรโทคอลต่าง ๆ จะแสดงในภาพที
7.10 มาตรฐานทวั ไปของโพลิโนเมียล

ภาพที 7.10 มาตรฐานทวั ไปของโพลโิ นเมยี ล
การตรวจสอบแบบ Checksum

วธิ ีการตรวจสอบแบบ Checksum จะคลา้ ยคลึงกบั วิธีแบบ CRC และพาริตี ซึงวธิ ีการแบบนียงั คง
อยบู่ นพืนฐานของการเพิมบติ ตรวจสอบเขา้ ไปพร้อมบิตขอ้ มูล

การหาบติ ตรวจสอบ
ก่อนทีจะหาบิตตรวจสอบไดน้ ัน จะตอ้ งทาํ การแบ่งขอ้ มูลออกเป็ นเซ็กเมนท์ก่อน โดยแต่ละ

เซ็กเมนทจ์ ะมีขอ้ มูล n บิต (ปกติจะแบ่งเป็นเซ็กเมนทล์ ะ 16 บิต) จากนนั นาํ บิตขอ้ มูลของทุกเซ็กเมนทม์ า
บวกกนั ดว้ ยวธิ ีการแบบ 1’s complement ซึงจะไดผ้ ลลพั ธ์ออกมา n บิต เมือไดผ้ ลลพั ธ์จากการบวกแลว้ จะ
นาํ มาทาํ คอมพลีเมนท์หรือทาํ การกลบั บิตให้เป็ นตรงกนั ขา้ ม (0  1, 1  0) ผลทีไดจ้ ากการนาํ คอม-
พลีเมนทค์ ือบิตตรวจสอบทีจะตอ้ งนาํ ไปต่อไวส้ ่วนทา้ ยของบิตขอ้ มูลก่อนทีจะส่งออกไป ดงั ภาพที 7.11
เราสามารถกล่าวไดว้ า่ ถา้ ผลบวกของทกุ เซ็กเมนท์ คือ T แลว้ บิตตรวจสอบจะมีค่าเทา่ กบั -T ดงั ภาพที 7.12

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มลู หนา้ ที 261

ภาพที 7.11 Checksum

ภาพที 7.12 Data unit และ Checksum
สรุปการหาบิตตรวจสอบสาํ หรับวธิ ีการตรวจสอบแบบ Checksum

1. ขอ้ มูลจะถูกแบง่ ออกเป็นเซ็กเมนทย์ อ่ ย ๆ เซ็กเมนทล์ ะ n บิต
2. นาํ ขอ้ มูลของทุกเซ็กเมนทม์ าบวกกนั ดว้ ยวธิ ีการแบบ 1’ complement
3. นาํ ผลรวมของทุกเซ็กเมนทม์ าทาํ คอมพลีเมนท์
4. ส่งบิตตรวจสอบไปพร้อมกบั ขอ้ มูล
การตรวจสอบความผดิ พลาดของข้อมูล
เมือขอ้ มูลเดินทางมาถึงยงั ผรู้ ับ จะมีขนั ตอนในการตรวจสอบความผดิ พลาดของขอ้ มลู ดงั นี
1. รวบรวมขอ้ มูลแต่ละเซ็กเมนท์ ๆ ละ n บิต
2. นาํ ขอ้ มูลของทกุ เซ็กเมนทม์ าบวกกนั ดว้ ยวธิ ีการแบบ 1’ complement
3. นาํ ผลรวมของทุกเซ็กเมนทม์ าทาํ คอมพลีเมนท์
4. ถา้ ผลลพั ธท์ ีไดเ้ ทา่ กบั 0 แสดงวา่ ขอ้ มูลชุดนนั ถูกตอ้ ง แต่ถา้ นาํ ผลลพั ธ์ทีไดไ้ มเ่ ทา่ กบั 0
แสดงวา่ ขอ้ มลู ชุดนนั มีความผดิ พลาด

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มูล หนา้ ที 262

ตวั อย่าง 5
สมมติว่าต้องการทีจะส่ งบิตข้อมูลจาํ นวน 16 บิต ออกไป และใช้วิธีการตรวจสอบแบบ
Checksum โดยมีบิตตรวจสอบ 8 บิต ซึงบติ ขอ้ มูลทีตอ้ งการส่ง มีดงั นี

10101001 00111001
วธิ ีทาํ นาํ ขอ้ มูลของทกุ เซ็กเมนทม์ าบวกกนั ดว้ ยวธิ ีการแบบ 1’s complement ไดด้ งั นี

10101001
00111001
Sum 11100010
Checksum 00011101
เพราะฉะนนั บิตขอ้ มูลรวมทงั บิตตรวจสอบทีส่งออกไปจะเป็น ดงั นี
10101001 00111001 00011101

ตวั อย่างที 6
จากตวั อยา่ งที 5 เมือผรู้ ับไดร้ ับขอ้ มูลดงั ต่อไปนี 10101001 00111001 00011101 จงตรวจสอบวา่

ขอ้ มูลดงั กล่าวถูกตอ้ งหรือไม่
วธิ ีทาํ นาํ ขอ้ มูลของทกุ เซ็กเมนทม์ าบวกกนั ดว้ ยวธิ ีการแบบ 1’ complement ไดด้ งั นี

10101001

00111001

00011101

Sum 11111111

Complement 00000000
แสดงวา่ ขอ้ มูลชุดนีเป็ นขอ้ มูลทีปราศจากขอ้ ผิดพลาด
ผลลพั ธ์ทีได้ คือ

ตวั อยา่ งที 7
จากตวั อยา่ งที 5 ถา้ มีสัญญาณรบกวนกบั บิตขอ้ มูล 5 บิต และทาํ ใหม้ ีบิตขอ้ มูล 4 บิตเปลียนไปจาก
เดิมดงั นี 10101111 11111001 00011101 จงตรวจสอบขอ้ มูลวา่ ขอ้ มลู ดงั กล่าวถูกตอ้ งหรือไม่

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มูล หนา้ ที 263

วธิ ีทาํ นาํ ขอ้ มูลของทุกเซ็กเมนทม์ าบวกกนั ดว้ ยวธิ ีการแบบ 1’complement ไดด้ งั นี
10101111
11111001
00011101

Result 1 11000101

Carry 1
Sum 11000110
Complement 00111001

ผลลพั ธ์ทีได้ คือ 00111001 แสดงวา่ ขอ้ มลู ชุดนีเป็ นขอ้ มูลทีมีความผดิ พลาด

7.3 การแก้ไขความผดิ พลาดของข้อมูล

จากหวั ขอ้ ทีผา่ นมา ไดแ้ สดงให้เห็นถึงเทคนิคต่าง ๆ ทีใชใ้ นการตรวจสอบว่าขอ้ มูลทีส่งมานนั มี
ความผิดพลาดของขอ้ มูลทีเกิดขึนหรือไม่ และในหัวขอ้ นีจะเป็ นการกล่าวถึงเทคนิคทีจะใชเ้ พือแก้ไข
ความผิดพลาดของขอ้ มูลนัน ๆ ซึงแบ่งออกได้ 2 วิธี คือ แก้ไขด้วยการส่งขอ้ มูลใหม่ และแกไ้ ขด้วยวิธี
Forward error correction

การแก้ไขความผดิ พลาดของข้อมูลด้วยการส่งใหม่ (Error Correction by Retransmission)
เมือผูร้ ับตรวจสอบแล้วว่าขอ้ มูลทีส่งไดร้ ับมานันมีความผิดพลาดของขอ้ มูล จะตอ้ งทาํ การส่ง
ขอ้ มลู ไปบอกกบั ทางผูส้ ่งวา่ ตอ้ งการทีจะใหส้ ่งขอ้ มูลกลบั มาใหมอ่ กี ครังหนึง

การแก้ไขความผดิ พลาดของข้อมูลด้วยวธิ ี Forward Error Correction
Forward Error Correction หรือ FEC เป็ นเทคนิคทีจะทาํ ให้ผูร้ ับขอ้ มูลทีเกิดความผิดพลาดนัน
สามารถทีจะแก้ไขความผิดพลาดของขอ้ มูลได้โดยอตั โนมตั ิ แต่อยา่ งไรก็ตามเทคนิคแบบนีจะมีความ
ยุง่ ยากและตอ้ งการจาํ นวนของบิตตรวจสอบทีมากขึน
เทคนิคทีจะสามารถแกไ้ ขความผิดพลาดของขอ้ มูลโดยอตั โนมตั ิทีจะไดก้ ล่าวถึงนี จะสามารถ
ใชไ้ ดใ้ นกรณีทีขอ้ มูลมีความผิดพลาดเกิดขึนบิตเดียว โดยจะกาํ หนดให้ m เป็ นบิตขอ้ มูล ส่วน r เป็ นบิต
ตรวจสอบดงั นนั ขอ้ มูลทีตอ้ งส่งจริง คือ m + r
จากทฤษฎีของแฮมมิง (Hamming) เราสามารถเขียนความสัมพนั ธ์ระหวา่ งบิตและบิตตรวจสอบ
ได้ ดงั นี

2r > = m + r + 1

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มลู หนา้ ที 264

ตวั อยา่ งเช่น รหัสแอสกี (ASC II code) จะมีจาํ นวนบิตเท่ากบั 7 ดงั นนั ถา้ ตอ้ งการทีจะส่งแอสกี
หนึงตวั อกั ษร จะตอ้ งมบี ิตตรวจสอบ 4 บิต เนืองจาก

24 > = 7 + 4 + 1

ในตารางที 7.1 จะแสดงความสัมพนั ธ์ระหวา่ งบิตขอ้ มูล m บิต และบิตขอ้ มูลตรวจสอบ r บิต ที
สามารถใชแ้ กไ้ ขความผดิ พลาดของขอ้ มูลได้
ตารางที 7.1 ความสัมพนั ธ์ระหว่างบติ ข้อมลู กบั บติ ตรวจสอบ

Number of Data Bits m Number of Redundancy Bits r Total Bits m+r
1 23
2 35
3 36
4 37
5 49
6 4 10
7 4 11

Hamming Code
แฮมมิงโคด้ เป็ นวิธีในการกาํ หนดว่าบิตตรวจสอบควรจะตอ้ งอยู่ตรงไหนบา้ ง ซึงแตกต่างกับ
หวั ขอ้ ก่อนหนา้ นีทีเราศึกษามาว่าบิตตรวจสอบจะตอ้ งอยูส่ ่วนทา้ ยของขอ้ มูล แฮมมิงโคด้ สามารถนาํ ไป
ประยุกต์ใช้ได้กบั บิตข้อมูลทีมีความยาวเท่าใดก็ได้ เช่น รหัสแอสกีทีมีความยาว 7 บิต จะต้องมีบิต
ตรวจสอบ 4 บิต เพือใหส้ ามารถตรวจสอบความผดิ พลาดและแกไ้ ขความผดิ พลาดทีเกิดขึนได้
ในภาพที 7.13 จะแสดงถึงการวางตาํ แหน่งของบิตตรวจสอบทงั 4 บิต หลกั ในการคาํ นวณหา
ตาํ แหน่งในการวางบิตตรวจสอบนันจะใช้เลขยกกําลังของ 2 คือ 20, 21, 22, …, 2r-1 ดังนันถ้ามีบิต
ตรวจสอบ 4 บิต ตาํ แหน่งในการวางบิตเหล่านี คือ ตาํ แหน่งบิตที 1, 2, 4 และ 8 ซึงเราจะแทนดว้ ย r1, r2, r4
และ r8

11 10 9 8 7 6 5 4 3 2 1
d d d r8 d d d r4 d r2 r1

ภาพที 7.13 ตําแหน่งของบติ ตรวจสอบในแฮมมงิ โค้ด

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มลู หนา้ ที 265

ในการคาํ นวณหาค่าของบิตตรวจสอบแต่ละบิตนนั จะใชห้ ลกั การหาพาริตีคู่ของบิตต่อไปนี ดงั
ภาพที 7.14

r 1 จะใชบ้ ติ 1, 3, 5, 7, 9, 11
r 2 จะใชบ้ ติ 2, 3, 6, 7, 10, 11
r 4 จะใชบ้ ิต 4, 5, 6, 7

r 8 จะใชบ้ ิต 8, 9, 10, 11

ภาพที 7.14 การคํานวณหาค่าบิตตรวจสอบ
ตัวอย่างการคาํ นวณหาค่า r
จากแฮมมิงโคด้ เราไดท้ ราบถึงวิธีการวางตาํ แหน่งบิตตรวจสอบ และวธิ ีการหาค่าบิตตรวจสอบ
แลว้ ดงั นนั จงึ ขอยกตวั อยา่ งการคาํ นวณหาค่า r โดยสมมติใหม้ บี ิตขอ้ มลู ทีตอ้ งการส่ง 7 บิต คือ 1001101
ในการหาค่าของ r จะใช้หลกั การของพาริตีคู่ ซึงเมือคาํ นวณแลว้ จะได้ออกมาดังภาพที 7.15
ดงั นนั บิตขอ้ มูลรวมทงั บติ ตรวจสอบทีจะตอ้ งส่งไปพร้อมกนั จึงเป็น 1001110010

ภาพที 7.15 ตวั อย่างการคํานวณหาบติ ตรวจสอบ หนา้ ที 266

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มลู

ตวั อย่างของการหาความผดิ พลาดของข้อมูลและการแก้ไขข้อมลู
เมือผูร้ ับได้รับขอ้ มูลแลว้ จะทาํ การหาว่าขอ้ มูลทีได้รับมานันมีความผิดพลาดหรือไม่ โดยการ
คาํ นวณหาพาริตีคู่ตามตาํ แหน่งเดียวกนั กบั ทีผสู้ ่งใชใ้ นการคาํ นวณ ซึงเมือคาํ นวณแลว้ จะไดด้ งั ภาพที 7.16
ผลลพั ธ์ทีไดม้ า คือ 0111 ซึงเมือแปลงเป็ นเลขฐานสิบ ก็คอื 7 นนั หมายความวา่ มีบติ ขอ้ มูลผดิ พลาดเกิดขึน
ทีตาํ แหน่งที 7

ภาพที 7.16 ตัวอย่างของการหาความผิดพลาดของข้อมลู โดยใช้แฮมมงิ โค้ด

หลงั จากทราบแลว้ วา่ บิตขอ้ มูลทีผิดพลาดนนั เกิดขึนตรงไหน ก็จะสามารถแกไ้ ขไดท้ นั ที โดยการ
เปลียนค่าบิตนันให้เป็ นตรงกนั ขา้ ม คือ ถา้ บิต เป็ น 0 ก็ตามเปลียนให้เป็ น 1 หรือถ้าบิตนันเป็ น 1 ตอ้ ง
เปลียนใหเ้ ป็น 0

การแก้ไขความผดิ พลาดของข้อมลู แบบหลายบติ (Burst Error Correction)
แมว้ า่ แฮมมิงโคด้ จะใชไ้ ดก้ บั ความผิดพลาดของขอ้ มูลแบบบิตเดียว แต่สามารถทีนาํ แฮมมิงโคด้
มาประยกุ ตใ์ ชก้ บั กรณีทีขอ้ มูลมีความผดิ พลาดเกิดขึนหลายบิตได้ ซึงวธิ ีการจะคลา้ ยคลึงกนั แต่แทนทีจะ
ส่งขอ้ มูลทงั หมดออกไปในคราวเดียวกนั ก็จะใชว้ ิธีการของการแบ่งขอ้ มูลทีตอ้ งการจะส่งออกเป็นบล็อก
ย่อย ๆ n บล็อก จากนนั จึงส่งขอ้ มูลบิตแรกของแต่ละบล็อกไปด้วยกนั เสร็จแลว้ จึงบิตทีสองของแต่ละ
บล็อกออกไปอีก ทาํ เช่นนีไปจนกระทงั หมดขอ้ มูลของทุกบล็อก จะเห็นได้ว่าวิธีการแบ่งขอ้ มูลแล้ว
ส่งออกไปแบบนี ถา้ มีสญั ญาณรบกวนเกิดขึนในขณะส่ง จะส่งผลเพยี งแคบ่ ติ เดียวของแต่ละบล็อกเท่านัน
ในภาพที 7.17 เราต้องการส่งข้อมูล 6 บล็อก ซึงแต่ละบล็อกนันมีบิตข้อมูลจริงรวมทังบิต
ตรวจสอบ ก่อนทีจะส่งออกไปไดน้ นั จะมีการจดั บล็อกขอ้ มูลใหอ้ ยใู่ นรูปของแถวและคอลมั น์ จากนนั จะ
ส่งขอ้ มูลในแต่ละคอลมั น์ออกไป โดยจะส่งคอลมั น์ทีหนึงก่อน จากนนั เป็ นคอลมั น์ทีสอง ทาํ ไปเรือย ๆ

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มลู หนา้ ที 267

จนหมดคอลมั น์สุดทา้ ย เมือมีสัญญาณรบกวนกบั คอลมั น์ต่าง ๆ ทีไดส้ ่งออกไป (ใชร้ ูปสีเหลียมลอ้ มรอบ
บิตทีถูกสญั ญาณรบกวน) จะทาํ ใหข้ อ้ มูลเกิดความผดิ พลาดขึน

เมือขอ้ มูลเดินทางไปถึงผูร้ ับแลว้ จะตอ้ งทาํ การเรียงขอ้ มูลของแต่ละคอลมั น์ทีไดร้ ับมา ซึงจาก
ภาพจะเห็นไดว้ า่ ในแต่ละบลอ็ กจะมีขอ้ มูลผิดพลาดเพียงแค่บิตเท่านัน ดงั นนั จึงสามารถใชแ้ ฮมมิงโคด้ ใน
การแกไ้ ขความผดิ พลาดของขอ้ มูลไดโ้ ดยอตั โนมตั ิ

เทคนิคในการแบ่งขอ้ มูลเป็ นบล็อกย่อย ๆ แล้วส่งออกไปนัน ถา้ จะให้สามารถตรวจสอบและ
แกไ้ ขขอ้ มูลทีผิดพลาดไดโ้ ดยอตั โนมตั ิไดน้ นั จะตอ้ งอยู่บนเงือนไขทีวา่ ขอ้ มูลของแต่ละบล็อกจะตอ้ งมี
ความผดิ พลาดของขอ้ มูลไมเ่ กิน 1 บิต

ภาพที 7.17 ตัวอย่างของการแก้ไขความผิดพลาดของข้อมลู แบบหลายบิต

7.4 โพรโทคอลและการควบคุมในชันสือสารเชือมต่อข้อมูล

ในการสือสารระหวา่ งกนั บนเครือข่าย ขอ้ ผดิ พลาดอาจเกิดขึนไดจ้ ากปัจจยั ต่าง ๆ รวมถึงสญั ญาณ
รบกวนทีอาจก่อให้เกิดความไม่สมบูรณ์ในระหว่างการสือสาร โดยสาเหตุทีตอ้ งมีการควบคุมการไหล
ของขอ้ มูลและการควบคุมขอ้ ผดิ พลาด เนืองมาจาก

1. ในกรณีทีฝังสงั และฝังรับสือสารอยบู่ นความเร็วทีแตกตา่ งกนั
2. จะทาํ การโตต้ อบกนั อยา่ งไร หากเฟรมขอ้ มูลทีส่งไปนนั เกิดความเสียหาย หรือสูญเสีย
3. จะเกิดอะไรขึน หากฝังรับไมร่ ู้วา่ มีขา่ วสารส่งมาถึงตน
4. จะเกิดอะไรขึน ถา้ เฟรมขอ้ มูลของฝังส่งนนั เกิดความเสียหาย

การควบคุมการไหลของขอ้ มูล คือ กลุ่มของวิธีการทีจะบอกฝังส่งวา่ จะสามารถส่งขอ้ มูลจาํ นวน
เท่าใดก่อนทีจะได้รับการรับรอง (Acknowledgment) จากฝังรับ โดยการควบคุมนีจะตอ้ งมิให้ฝังรับเกิด
การรับขอ้ มูลจนท่วมลน้ เนืองจากอุปกรณ์ฝังรับอาจมีความเร็วค่อนขา้ งจาํ กดั รวมถึงขีดความสามารถใน

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มูล หนา้ ที 268

ดา้ นการประมวลผลของขอ้ มูลทีทยอยเขา้ มา กล่าวคือ มีขอ้ จาํ กดั ดา้ นขนาดหน่วยความจาํ ทีจะตอ้ งคอย
จดั เก็บขอ้ มูลทีหลงั ไหลเขา้ มาเพือประมวลผล โดยอุปกรณ์ฝังรับจะตอ้ งแจง้ ให้กบั อุปกรณ์ฝังส่ง ก่อนที
ขอบเขตการรับขอ้ มูลถึงขีดจาํ กดั และจะร้องขอให้ฝังส่งทยอยส่งขอ้ มูลในปริมาณน้อย หรืออาจหยดุ การ
ส่งเฟรมขอ้ มูลชวั คราว เป็ นตน้ สําหรับขอ้ มูลทีหลงั ไหลเขา้ มานนั ฝังรับจะตอ้ งมีการตรวจสอบก่อนทีจะ
นาํ ไปประมวลผลทุกครัง โดยปกติอตั ราการประมวลผลนนั มกั จะชา้ กวา่ อตั ราการส่งผา่ นขอ้ มูล และดว้ ย
สาเหตุนี อุปกรณ์ฝังรับจงึ ตอ้ งมีการบล็อกหน่วยความจาํ ทีเรียกวา่ “บัฟเฟอร์ (Buffer)” เพือจองไวส้ ําหรับ
จดั เก็บขอ้ มูลทีหลงั ไหลเขา้ มาจนกระทงั ประมวลผลเสร็จ และหากหน่วยความจาํ บฟั เฟอร์เต็ม ฝังรับก็
จะตอ้ งสามารถบอกให้ฝังส่งให้หยดุ การส่ง (Halt) จนกระทงั ฝังรับสามารถรับขอ้ มูลในลาํ ดบั ถดั ไปได้ จึง
กล่าวโดยสรุปวา่ การควบคุมการไหลของขอ้ มลู นีจะดาํ เนินการเกียวกบั

 การกาํ หนดแผนการส่งเฟรมต่าง ๆ ทีตอ้ งการส่งและดาํ เนินการติดตาม
 ส่งเฟรมเมือใด
 เฟรมทีส่งจะสินสุดเมือใด

การควบคุมการไหลของข้อมูลด้วยวธิ ีหยดุ และรอ (Stop-and-Wait Flow Control)
กลไกทีใช้ในการควบคุมอตั ราการไหลและควบคุมความผิดพลาดของขอ้ มูลดว้ ยเทคนิค Stop-
and-Wait นนั เป็ นกลไกทีไมม่ ีความซบั ซอ้ นใด มีหลกั การดงั นี

 ผสู้ ่งขอ้ มูลจะตอ้ งทาํ การสาํ เนาเฟรมขอ้ มูลทีจดั ส่งไปเอาไวก้ ่อน จนกวา่ ผรู้ ับจะยนื ยนั วา่
ไดร้ ับเฟรมขอ้ มูลนนั แลว้ เนืองจากวา่ ถ้าเฟรมขอ้ มูลนนั เกิดการสูญหายหรือเสียหายใน
ระหวา่ งการส่ง ผสู้ ่งจะสามารถส่งเฟรมขอ้ มูลไปใหมไ่ ด้

 ในการยืนยนั ตอบรับเฟรมขอ้ มูลของผูร้ ับนนั ผรู้ ับจะตอ้ งส่งเฟรม Acknowledge (ACK)
มาให้กับผูส้ ่งซึงการส่งเฟรม ACK จะเป็ นการบ่งบอกว่าไดร้ ับเฟรมอะไร และเฟรม
ขอ้ มูลทีตอ้ งการถดั ไปนนั คือเฟรมอะไร เช่น ผรู้ ับส่งเฟรม ACK มาให้ จะมีความหมาย
วา่ ไดร้ ับเฟรม 0 แลว้ ใหส้ ่งเฟรม 1 มาไดเ้ ลย เป็นตน้

 ถา้ ผูร้ ับขอ้ มูลไดร้ ับเฟรมขอ้ มูลทีมีความผิดพลาด ผูร้ ับจะทาํ การทิงเฟรมนนั ไป หรือถา้
ไดร้ ับเฟรมทีไม่ตอ้ งการ เช่น ตอ้ งการไดเ้ ฟรม 1 แต่ไดเ้ ฟรม 0 เป็ นตน้ จะทาํ การทิงเฟรม
นนั ไปเช่นกนั

 ผูส้ ่งจะใหต้ วั แปร S ในการเก็บขอ้ มูลวา่ ไดส้ ่งเฟรมอะไรออกไป ส่วนผูร้ ับจะใชต้ วั แปร
R ในการเก็บขอ้ มูลวา่ เฟรมถดั ไปทีตอ้ งการคือเฟรมอะไร

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มลู หนา้ ที 269

 ผูส้ ่งจะมีการกาํ หนดเวลาเอาไวห้ ลังจากส่งเฟรมขอ้ มูลออกไปแล้ว ถ้าไม่ไดร้ ับเฟรม
ACK กลบั มาในเวลาทีกาํ หนด จะตอ้ งทาํ การส่งเฟรมขอ้ มูลนนั กลบั ไปอีกครัง

 ผูร้ ับจะส่งเฟรม ACK กลบั ไปเมือได้รับเฟรมขอ้ มูลทีไม่มีความผิดพลาดจะเป็ นเฟรมที
ตอ้ งการ ถ้าผูร้ ับไดร้ ับเฟรมทีผิดพลาดหรือเฟรมทีไม่ตอ้ งการจะไม่มีการส่งเฟรมใด ๆ
ตอบกลบั ไป

กลไกการทาํ งาน
ในการส่งเฟรมขอ้ มูลออกไปนนั เราสามารถแบ่งสถานการณ์ทีจะเกิดขึนออกเป็ น 4 กรณีดว้ ยกนั
คือ กรณีปกติ กรณีเฟรมขอ้ มูลสูญหาย กรณีเฟรม ACK สูญหาย ละกรณีเฟรม ACK ล่าชา้

กรณปี กติ
ถา้ การส่งเฟรมข้อมูลเป็ นไปอย่างปกติ คือ เมือผูส้ ่งได้ส่งเฟรม 0 และจะทาํ การคอยรับเฟรม
ACK 1 เมือไดร้ ับเฟรม ACK 1 แลว้ จึงจะส่งเฟรม 1 ออกไป จากนนั จะทาํ การคอยรับเฟรม ACK 0 ต่อไป
ซึงกลไกจะเป็นอยา่ งนีไปเรือย ๆ ในการทีคอยรับเฟรม ACK นนั ผูส้ ่งจะมีระยะเวลาทีแน่นอนในการรอ
คอย ดงั ภาพที 7.18

ภาพที 7.18 Stop-and-Wait ในกรณปี กติ

กรณเี ฟรมข้อมูลสูญหายหรือเสียหาย
ในกรณีทีเฟรมขอ้ มูลหายหรือเสียหายนนั ผูร้ ับจะกระทาํ เหมือนกนั คือ ถา้ ไดร้ ับเฟรมขอ้ มูลทีมี
ความผิดพลาดหรือเสียหาย ผูร้ ับจะทาํ การทิงเฟรมขอ้ มูลนนั ไป ซึงเปรียบเสมือนวา่ ผูร้ ับไม่ไดร้ ับเฟรม
ขอ้ มูลนนั นนั เอง ถา้ ผรู้ ับไมไ่ ดร้ ับเฟรมขอ้ มูลทีตอ้ งการ ผรู้ ับไม่ตอ้ งส่ง ACK กลบั ไป ตวั อยา่ งเช่น ในภาพ
ที 7.19 เมือผูส้ ่งไดส้ ่งเฟรม 1 แต่เฟรมนันไดส้ ูญหายในระหว่างการส่ง ผรู้ ับจะไม่ตอ้ งส่ง ACK กลบั ไป
ดงั นนั ตวั แปร R จะยงั คงเท่ากบั 1 อยู่ เมือผสู้ ่งไม่ไดร้ ับเฟรม ACK กลบั มาในเวลาทีกาํ หนด ผสู้ ่งจะตอ้ งทาํ
การส่งเฟรมขอ้ มูลนนั กลบั ไปใหม่อีกครัง

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มลู หนา้ ที 270

ภาพที 7.19 Stop-and-Wait ในกรณเี ฟรมข้อมูลสูญหายหรือเสียหาย

กรณเี ฟรม ACK สูญหาย
กลไกในการจดั การกบั เฟรม ACK ทีสูญหายหรือเสียหายนัน จะกระทาํ เหมือนกบั กรณีเฟรม
ขอ้ มูลสูญหาย เช่น ในภาพที 7.20 เมือเฟรม ACK 0 ไดส้ ูญหายไปในระหวา่ งการส่ง ซึงในระหวา่ งนนั ผู้
ส่งขอ้ มูลไดท้ าํ การคอยรับเฟรมนีอยู่ เมือถึงระยะเวลาทีกาํ หนดแลว้ ผูส้ ่งไม่ไดร้ ับเฟรม ACK 0 ผสู้ ่งจะทาํ
การส่งเฟรม 1 กลบั ไปใหม่อีกครังหนึง และเมือผรู้ ับไดร้ ับเฟรม 1 แต่ไม่ใช่เฟรมทีตอ้ งการ (R=0) ผรู้ ับจะ
ทาํ การทิงเฟรมนนั ไป และส่งเฟรม ACK 0 กลบั ไปอีกครัง

ภาพที 7.20 Stop-and-Wait กรณเี ฟรม ACK สูญหาย หนา้ ที 271

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มลู

กรณเี ฟรม ACK ล่าช้า
มีความเป็ นไปไดท้ ีเฟรม ACK ของผรู้ ับจะเกิดความล่าชา้ ในระหวา่ งการส่งไปใหก้ บั ผูส้ ่งขอ้ มูล
ดงั ภาพที 7.21 เฟรม ACK 1 ได้เกิดความล่าช้า เมือครบระยะเวลาทีกาํ หนดแลว้ ผูส้ ่งยงั ไม่ได้รับเฟรม
ACK 1 ผูส้ ่งจะทาํ การส่งเฟรม 0 ไปใหม่อีกครัง แต่อย่างไรก็ตามผรู้ ับจะไม่รับเฟรมนี เนืองจาก R=1 ซึง
หมายความวา่ ผรู้ ับตอ้ งการเฟรม 1 ไมใ่ ช่เฟรม 0

ภาพที 7.21 Stop-and-Wait ในกรณีเฟรม ACK ล่าช้า
กรณสี ่งข้อมูลแบบสองทาง
จากทีไดก้ ล่าวไปก่อนหนา้ นีจะเป็ นการส่งขอ้ มูลแบบทิศทางเดียว คือจะมีผสู้ ่งและผูร้ ับขอ้ มูลที
แยกจากกนั แต่ถา้ ตอ้ งการทีจะเป็ นทงั ผสู้ ่งและผรู้ ับขอ้ มูลในเวลาเดียวกนั แลว้ จะตอ้ งมีการเก็บทงั ตวั แปร
S และ R เอาไวเ้ นืองจากจะไดท้ ราบวา่ เฟรมขอ้ มูลทีจะส่งถดั ไปนนั ตอ้ งเป็นเฟรมอะไร และเฟรมขอ้ มูลที
คาดเอาไวว้ า่ จะตอ้ งไดร้ ับนนั เฟรมอะไร
Piggybacking
เป็ นเทคนิคในการส่งทงั เฟรมขอ้ มูลและเฟรม ACK ไปดว้ ยกนั ดงั ภาพที 7.22 สมมติใหท้ งั เครือง
คอมพิวเตอร์ A และ B ตอ้ งการทีจะส่งขอ้ มูล ดงั นนั แทนทีจะส่งเฟรมขอ้ มูล และเฟรม ACK แยกจากกนั
ถา้ รวมทงั 2 เฟรมนีเขา้ ดว้ ยกนั แลว้ ส่งออกไป จะสามารถช่วยลดแบนดว์ ดิ ธ์ลงไปได้

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มูล หนา้ ที 272

ภาพที 7.22 Piggybacking

Go-Back-N
กลไก Stop-and-Wait จะเป็ นการส่งเฟรมขอ้ มูลออกไป แลว้ จะตอ้ งรอเฟรม ACK ตอบรับกลบั มา
ก่อนทีจะสามารถส่งเฟรมขอ้ มูลถดั ไปได้ การทาํ เช่นนีจะเป็ นการใชส้ ายสือสารอยา่ งไม่เต็มประสิทธิภาพ
เนืองจากในระหว่างทีรอเฟรม ACK นนั ผูส้ ่งสามารถทีจะส่งเฟรมถดั ๆ ไปได้ ดงั นันกลไกหรือโพรโท
คอล Go-Back-N และ Selective Repeat (จะกล่าวถึงในหัวขอ้ ถัดไป) จะเป็ นการส่งเฟรมขอ้ มูลออกไป
คราวละหลาย ๆ เฟรม ก่อนทีจะไดร้ ับเฟรม ACK ตอบรับกลบั มา เพือเป็ นการใชส้ ายสือสารให้ไดอ้ ย่าง
เตม็ ประสิทธิภาพมากขึน

กลไกหรือโพรโทคอล Go-Back-N จะทาํ การส่งเฟรมขอ้ มูลจาํ นวน W เฟรม ก่อนทีจะไดร้ ับเฟรม
ACK ดงั นนั ผูส้ ่งจะตอ้ งการสําเนาเฟรมขอ้ มูลทงั W เฟรมเอาไวด้ ว้ ย เมือเป็ นเช่นนีในเฮดเดอร์ของเฟรม
ขอ้ มูลทุกเฟรมจะตอ้ งมีหมายเลขลาํ ดับ (Sequence Number) ดว้ ยเพือทีจะไดท้ ราบวา่ เป็ นเฟรมทีเท่าใด
โดยทีหมายเลขลาํ ดบั นีจะเริมตน้ จากหมายเลข 0 เป็ นตน้ ไป และจะเริมจากซ้ายไปขวา ตวั อยา่ งของเลข
ลาํ ดบั เป็ นดงั นี

0, 1, 2, 3, 4, 5, 6, 7, 0, 1, 2, 3, 4, 5, 6, 7, 0, 1, …

การเลือนหน้าต่างของผ้สู ่งข้อมูล (Sender Sliding Window)
ผูส้ ่งขอ้ มูลจะตอ้ งทาํ การเก็บเฟรมขอ้ มูลทีถูกส่งออกไปเอาไวใ้ นบฟั เฟอร์ก่อน จนกระทงั ไดร้ ับ
เฟรม ACK กลบั มาจึงทําการลบทิงเฟรมข้อมูลนันได้ ดังนันหลักการของการ เลือนหน้าที (Sliding
window) จะเสมือนกบั การมีหนา้ ตา่ งมาครอบเฟรมขอ้ มูลไว้ แลว้ ใชก้ ารเลือนหนา้ ตา่ งไปมา เฟรมขอ้ มูลที
อยดู่ า้ นซ้ายของหนา้ ตา่ งจะหมายถึงเฟรมทีไดร้ ับ ACK แลว้ สามารถทีจะลบทิงเฟรมนนั ออกจากบฟั เฟอร์

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มูล หนา้ ที 273

ได้ ส่วนเฟรมทีอยดู่ า้ นขวาของหนา้ ต่าง เป็ นเฟรมทียงั ไม่ไดม้ ีการส่งออกไป จะตอ้ งรอจนกระทงั หนา้ ตา่ ง
เลือนมาถึงจึงจะสามารถส่งเฟรมขอ้ มูลได้ ตวั อยา่ งเช่น ในภาพที 7.23(a) เฟรม ถึง เฟรม 6 ไดถ้ ูกส่งออก
ไปและกาํ ลงั รอเฟรม ACK ตอบกลบั มาจากผูร้ ับ ส่วนในภาพที 7.23 (b) เมือผูส้ ่งไดร้ ับเฟรม ACK ตอบ
กลบั มาแลว้ วา่ ผรู้ ับไดร้ ับเฟรม 0 และเฟรม 1 เรียบร้อยแลว้ ผูส้ ่งจะทาํ การเลือนหนา้ ต่างไปทางดา้ นขวา 2
เฟรม

ภาพที 7.23 การเลือนหน้าต่างของผู้ส่งข้อมลู

การเลือนหน้าต่างของผ้รู ับข้อมูล (Receiver Sliding Window)
กลไกหรือโพรโทคอล Stop-and-Wait ขนาดหน้าต่างของผูส้ ่งทีครอบเฟรมข้อมูลอยูน่ ันจะมี
ขนาดเท่าใดก็ได้ แต่ขนาดหน้าต่างของผูร้ ับจะมีค่าเท่ากบั 1 เสมอนนั หมายความวา่ หน้าต่างของผูร้ ับจะ
สามารถครอบเฟรมข้อมูลได้เพียงเฟรมเดียว เฟรมขอ้ มูลทีถูกหน้าต่างครอบไวน้ ัน คือ เฟรมทีผูร้ ับ
ตอ้ งการและยงั ไมไ่ ดร้ ับเฟรมนนั จากผสู้ ่ง ตวั อยา่ งเช่น ในภาพที 7.14 (b) เพือบ่งบอกวา่ เฟรมถดั ทีตอ้ งการ
รับ คือ เฟรม 1

ภาพที 7.24 การเลือนหน้าต่างของผู้รับข้อมูล

ตัวแปรสําหรับควบคุมการส่ งและรับเฟรมข้ อมูล
ทางดา้ นผสู้ ่งเฟรมขอ้ มูลจะมีตวั แปรทีตอ้ งใช้ 3 ตวั ดว้ ยกนั คือ S, SF และ SL โดยที S จะทาํ การ
เกบ็ ค่าหมายเลขลาํ ดบั ผสู้ ่งเฟรมขอ้ มูลล่าสุดทีถูกส่งออกไป SF จะทาํ หนา้ ทีในการเก็บหมายเลขลาํ ดบั ของ

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มลู หนา้ ที 274

เฟรมขอ้ มูลแรกทีอยูใ่ นหนา้ ต่าง ส่วน SL จะทาํ หนา้ ทีในการเก็บหมายเลขลาํ ดบั ของเฟรมสุดทา้ ยทีอยใู่ น
หนา้ ต่าง ดงั นนั ขนาดหนา้ ทีต่างทีครอบเฟรมอยซู่ ึงจะกาํ หนดใหม้ ีค่าเป็น W โดยที W = SL – SF = 1

ส่วนผรู้ ับเฟรมขอ้ มูลจะมีตวั แปรทีใชค้ ่าเกบ็ เฟรมทีตอ้ งการรับเพียงตวั แปรเดียวเทา่ นนั คอื R โดย
ที R จะทาํ หนา้ ทีในการเก็บหมายเลขลาํ ดบั ของเฟรมทีตอ้ งการรับเขา้ มา ถา้ เฟรมทีรับมามีหลายเลขลาํ ดบั
ตรงกนั กบั R ผูร้ ับจะทาํ การรับเฟรม แต่ถ้าไม่ตรงกนั จะทาํ การทิงเฟรมนันไป ในภาพที 7.25 แสดงถึง
หนา้ ตา่ งของผสู้ ่งและผูร้ ับรวมถึงตวั แปรทีใชค้ วบคุมการรับส่งเฟรมขอ้ มูลดว้ ย

ภาพที 7.25 ตัวแปรสําหรับควบคุมการส่งและรับเฟรมข้อมูล
กลไกการทาํ งาน
เราแบ่งสถานการณ์ทีเกิดขึนออกเป็น 4 กรณีดว้ ยกนั คือ กรณีปกติ กรณีเฟรมขอ้ มูลสูญหาย กรณี
เฟรม ACK สูญหาย และกรณีเฟรม ACK ล่าชา้
กรณปี กติ
ในภาพที 7.26 แสดงถึงกลไกการทาํ งานของ Go-Back-N ในกรณีทีการส่งเฟรมขอ้ มูลและเฟรม
ACK ไม่มีขอ้ ผดิ พลาดใด ๆ กลไกนีผูส้ ่งจะทาํ การเก็บค่าหมายเลขลาํ ดบั ของเฟรมทีถูกส่งออกไปเอาไว้
ก่อน เมือไดร้ ับเฟรม ACK กลบั มาจึงทาํ การเลือนหนา้ ตา่ งไปตามเฟรม ACK ทีรับเขา้ มา ดงั ภาพที 7.26

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มูล หนา้ ที 275

ภาพที 7.26 Go-Back-N ในกรณปี กติ
กรณเี ฟรมข้อมูลสูญหาย
ภาพที 7.27 จะแสดงถึงกรณีทีเฟรมขอ้ มูลสูญหายในระหว่างการส่ง ทาํ ให้ผูร้ ับไม่สามารถรับ
เฟรมขอ้ มูลนนั ไดจ้ ากภาพจะเห็นวา่ ผูร้ ับไม่สามารถรับเฟรม 2 ได้ เนืองจากไดส้ ูญหายไประหวา่ งการส่ง
แต่ผูร้ ับได้รับเฟรม 3 ซึงตอ้ งทาํ การทิงเฟรมนีไป เพราะหมายเลขลาํ ดบั ทีอยู่ในหน้าต่างเท่ากบั 2 นัน
หมายความวา่ ผรู้ ับตอ้ งการรับเฟรม 2 เท่านนั เมือเวลาผา่ นไปครบตามกาํ หนดแต่ผสู้ ่งยงั ไม่สามารถไดร้ ับ
เฟรม ACK 3 ผสู้ ่งจะตอ้ งทาํ การส่งเฟรมไปใหม่ตงั แต่เฟรม 2 เป็ นตน้ ไป

ภาพที 7.27 Go-Bak-N ในกรณีเฟรมข้อมูลสูญหาย หนา้ ที 276

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มลู

กรณเี ฟรม ACK สูญหาย
โดยปกติผูส้ ่งจะมีการกําหนดเวลาในการรอรับเฟรม ACK จากผูร้ ับ ถ้าไม่ได้รับเฟรม ACK
จะตอ้ งมกี ารส่งเฟรมขอ้ มูลไปใหมอ่ ีกครังหนึง เนืองจากผรู้ ับจะส่งเฟรม ACK เพยี งแค่ครังเดียวเทา่ นนั ใน
กรณีเฟรม ACK สูญหายหรือเสียหายในระหวา่ งการส่ง ผสู้ ่งขอ้ มลู จะกระทาํ ดงั ตอ่ ไปนี

 ถา้ มีเฟรม ACK ใดตอบกลบั มาก่อนทีจะหมดเวลาทีไดก้ าํ หนดไวส้ าํ หรับเฟรม ACK นนั
ผสู้ ่งไม่จาํ เป็นตอ้ งส่งเฟรมขอ้ มูลก่อนหนา้ นนั กลบั ไปใหม่ ถึงแมว้ า่ เฟรม ACK ก่อนหนา้
บางเฟรมจะสูญหายไปก็ตาม ตวั อย่างเช่น ถ้าผูส้ ่งไม่ไดร้ ับเฟรม ACK 1, ACK 2 และ
ACK 3 เนืองจากเฟรมเหล่านีไดส้ ูญหายไปแต่ไดร้ ับเฟรม ACK 4 ผูส้ ่งสามารถส่งเฟรม
4 ไปไดเ้ ลย ไมจ่ าํ เป็นตอ้ งส่งเฟรม 1, 2 และ 3 กลบั ไปอกี ครัง

 ถา้ หมดเวลาในการรับเฟรม ACK แลว้ ผูส้ ่งจะต้องทาํ การส่งเฟรมขอ้ มูลก่อนหน้านัน
ใหมท่ งั หมดอีกครัง

กรณเี ฟรม ACK ล่าช้า
ถา้ ผูส้ ่งได้รับเฟรม ACK ชา้ กวา่ เวลาทีไดก้ าํ หนดไว้ ในกรณีนีผูส้ ่งจะตอ้ งทาํ การส่งเฟรมขอ้ มูล
กลบั ไปใหผ้ รู้ ับอีกครังหนึง

Selective-Repeat
กลไกหรือโพรโทคอล Go-Back-N นันผูร้ ับจะรอรับเฟรมขอ้ มูลครังละเฟรมเท่านัน ซึงกลไก
แบบนีผรู้ ับจะมีการทาํ งานทีไม่ซบั ซ้อนมากนกั แตอ่ ยา่ งไรก็ตาม กลไกนีขาดประสิทธิภาพเป็ นอยา่ งยงิ ถา้
สือทีใช้ในการสือสารมีสัญญาณรบกวนมาก เนืองจากสัญญาณรบกวนจะทาํ ให้เฟรมข้อมูลเกิดการ
สูญหายหรือเสียหายเพิมขึน ดงั นนั โอกาสทีผสู้ ่งจะตอ้ งส่งเฟรมขอ้ มูลทีซาํ ของเดิมยิงยากมากขึนดว้ ย ซึง
จะส่งผลทาํ ใหก้ ารส่งขอ้ มูลโดยรวมชา้ ลง จากปัญหานีจึงไดม้ ีการคิดคน้ โพรโทคอลทีสามารถทนต่อสือที
มีสญั ญาณรบกวนมากโดยจะสามารถส่งเฉพาะเฟรมขอ้ มูลทีสูญหายหรือเสียหายเท่านนั ไม่จาํ เป็ นตอ้ งส่ง
เฟรมอืน ๆ ดว้ ยซึงโพรโทคอล หรือกลไกนีจะเรียกวา่ Selective Repeat

หน้าต่างของผ้สู ่งและผู้รับข้อมูล
ทงั การใช้หมายเลขลาํ ดบั และตวั แปรสําหรับควบคุมการส่งและรับข้อมูลของผูส้ ่งดว้ ยกลไก
Selective Repeat จะเหมือนกับ Go-back-N แตกต่างกนั ในส่วนของขนาดของหน้าต่าง โดยที Selective
Repeat จะมีหนา้ ต่างของผสู้ ่งและผูร้ ับเท่ากบั ครึงหนึงของจาํ นวนของหมายเลขลาํ ดบั ดงั นนั กลไกแบบนี
ผรู้ ับจะตอ้ งมีตวั แปร RF และ RL เพือบอกถึงขอบเขตของหนา้ ต่าง ดงั ภาพที 7.28

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มูล หนา้ ที 277

ภาพที 7.28 หน้าต่างของผู้ส่งและผ้รู ับข้อมูลด้วยกลไก Selective Repeat

กระบวนการทาํ งาน
กลไก Selective Repeat นอกจากจะมีเฟรม ACK จากผู้รับแล้ว ยงั มีเฟรม NAK (Negative
Acknowledgment) ดว้ ย โดยเฟรมนีจะเป็ นการบอกถึงเฟรมขอ้ มูลทีเสียหาย ซึงผูส้ ่งจะตอ้ งส่งเฟรมขอ้ มูล
กลบั มาใหม่อีกครัง
ในภาพที 7.29 จะแสดงถึงกระบวนการทาํ งานของ Selective Repeat โดยสมมติให้มีเฟรมขอ้ มูล
เกิดการสูญหายดว้ ย จากภาพจะเห็นไดว้ า่ เมือผูร้ ับไดร้ ับเฟรม 0 และ 1 แลว้ จะทาํ การเลือนหน้าต่างไปยงั
เฟรม 2 และ 3 ดังนันผูร้ ับจึงสามารถรับเฟรม 3 ไวก้ ่อนได้ ถึงแม้ว่าเฟรม 2 จะเกิดการสูญหายก็ตาม
จากนนั ผรู้ ับจะส่งเฟรม NAK 2 กลบั มา เพอื ให้ผสู้ ่งทาํ การส่งเฟรม 2 ไปใหมอ่ ีกครัง

ภาพที 7.29 Selective Repeat ในกรณเี ฟรมข้อมลู สูญหาย

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มูล หนา้ ที 278

High-Level Data Link Control (HDLC)
HDLC เป็ นโพรโทคอลทีถูกออกแบบมาให้สามารถสือสารไดท้ งั แบบทางใดทางหนึงและแบบ
สองทศิ ทาง บนพืนฐานของการเชือมโยงอุปกรณ์สือสารทงั แบบจุดตอ่ จุด (Point-to-Point) และแบบหลาย
จุด (Multipoint) หรือแบบมลั ติดรอป (Multidrop)

HDLC มีวธิ ีในการสือสาร 2 แบบ คือ
1. Normal Response Mode (NRM)
2. Asynchronous Balanced Mode (ABM)

Normal Response Mode: NRM
เป็ นวิธีการสือสารทีต้องมีสถานีหลัก (Primary Station) สถานี ส่วนสถานีรอง (Secondary

Station) สามารถมไี ดห้ ลายสถานี ดงั ภาพที 7.30

 สถานีหลกั มีหนา้ ทีในการส่งคาํ สัง (Command) ไปยงั สถานีรอง
 สถานีรอง ทาํ หนา้ ทีในการตอบสนอง (Respond) ตอ่ คาํ สังนนั ๆ

NRM สามารถใชไ้ ดก้ บั การเชือมโยงอุปกรณ์สือสารทงั แบบจุดต่อจุด และแบบหลายจุด หรือมลั ติดรอป
ได้

ภาพที 7.30 Normal Response Mode: NRM
Asynchronous Balanced Mode: ABM

ABM จะใชก้ บั การเชือมโยงอุปกรณ์สือสารแบบจุดตอ่ จดุ โดยทุกสถานีจะทาํ หนา้ ทีเป็ นทงั สถานี
หลกั และสถานีรองในเวลาเดียวกนั ดงั ภาพที 7.31

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มูล หนา้ ที 279

ภาพที 7.31 Asynchronous Banlaced Mode: ABM

เฟรมข้อมูล HDLC
ในการออกแบบเฟรมขอ้ มูล HDLC นันจะตอ้ งให้ยืดหยุน่ กบั วิธีการสือสารทงั แบบ NSM และ
ABM ดังนันจึงไดม้ ีการกําหนดเฟรมข้อมูลไว้ 3 ชนิด ซึงแต่ละชนิดจะมีหน้าทีในการนําส่งข้อมูลที
แตกตา่ งกนั ไป ดงั นี

 I-frame (Information frame) เป็ นเฟรมทีใชส้ าํ หรับบรรจุขอ้ มูลผใู้ ช้ และควบคุมความ
ผดิ พลาดของขอ้ มูลจากการสูญหาย เสียหายหรือส่งซาํ

 S-frame (Supervisory frame) เป็ นเฟรมทีใชส้ ําหรับควบคุมความผิดพลาดของขอ้ มูล
จากการสูญหาย เสียหายหรือส่งซาํ

 U-frame (Unnumbered frame) เป็ นเฟรมสําหรับการจดั การระบบ เช่น การสร้างการ
ติดตอ่ หรือการยกเลิกการติดต่อ เป็นตน้

โครงสร้างเฟรมข้อมูล (Frame format)
โครงสร้างเฟรมขอ้ มูลของ HDLC จะประกอบดว้ ย 6 ฟิ ลด์ ดงั ภาพที 7.32 ซึงจะมีฟิ ลด์แฟล็ก
เริมตน้ ฟิ ลด์แอดเดรส ฟิ ลดค์ วบคุม ฟิ ลด์ขอ้ มูล ฟิ ลด์ตรวจสอบ และฟิ ลด์แฟล็กสินสุด ถา้ มีเฟรมขอ้ มูล
หลาย ๆ เฟรม ฟิ ลดแ์ ฟล็กสินสุดของเฟรมหนึงสามารถเป็นฟิ ลดแ์ ฟล็กเริมตน้ ของอีกเฟรมหนึงได้

ภาพที 7.32 โครงสร้างเฟรมข้อมูลของ HDLC
 ฟิ ลดแ์ ฟล็ก จะมีทงั หมด 8 บิต โดยจะมีรูปแบบเป็น 01111110 ซึงบติ เหล่านนั จะหมายถึง

การเริมตน้ และสินสุดของเฟรมแตล่ ะเฟรม

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มูล หนา้ ที 280

 ฟิ ลด์แอดเดรส จะใช้ในการเก็บแอดเดรสของสถานีรอง ขนาดของฟิ ลด์นีจะขึนอยูก่ บั
จาํ นวนของสถานีรองภายในเครือข่าย เช่น ถา้ ฟิ ลด์นีมีขนาด 1 ไบต์ หมายความว่าใน
เครือข่ายนนั จะมีสถานีรองไดท้ งั หมด 128 สถานี เป็ นตน้

 ฟิ ลด์ควบคุม จะมีขนาด 1 หรือ 2 ไบต์ ใช้สําหรับควบคุมอัตราการไหลและความ
ผดิ พลาดของการส่งขอ้ มูล

 ฟิ ลด์ข้อมูล จะใช้ในการเก็บข้อมูลของผูใ้ ช้ทีส่งมาจากชันสือสารควบคุมเครือข่าย
(Network Layer) หรือเก็บขอ้ มูลสําหรับการจดั การระบบ ขนาดของฟิ ลด์นีจะขึนอยู่กบั
ชนิดของเครือขา่ ยวา่ เป็ นเครือขา่ ยแบบใด

 ฟิ ลด์ตรวจสอบ หรือฟิ ลด์ FCS (Frame Check Sequence) เป็ นฟิ ลด์ทีเก็บกลุ่มของบิต
สําหรับตรวจสอบความผิดพลาดของขอ้ มูล ซึงจะมีขนาด 2 หรือ 4 ไบต์ ส่วนวิธีการ
ตรวจสอบความผดิ พลาดของขอ้ มูลนนั จะใชว้ ธิ ีการของ ITU-T CRC

ชนิดของเฟรม (Frame Type)
HDLC จะมีเฟรมอยู่ 3 ชนิด ไดแ้ ก่ I-frame, S-frame, U-frame ดงั แสดงในภาพที 7.33

ภาพที 7.33 ชนิดของเฟรม

I-frame ได้ถูกออกแบบมาเพือรับข้อมูลจาก ชันสือสารควบคุมเครือข่าย (Network
Layer) นอกจากนนั แลว้ ยงั สามารถเพิมเติมบิตสาํ หรับควบคุมอตั ราการไหลของขอ้ มูลและการตรวจสอบ
ความผิดพลาดของการส่งขอ้ มูลได้ดว้ ย (Piggybacking) ดงั ภาพที 7.34 ทีแสดงถึงโครงสร้างของ I-frame
ในส่วนของฟิ ลดค์ วบคุม

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มลู หนา้ ที 281

ภาพที 7.34 I-frame ใน HDLC

กลุ่มของบติ ทีอยใู่ นฟิ ลดค์ วบคุมของ I-frame จะมีความหมาย ดงั นี

 ถา้ บิตแรกในฟิ ลดค์ วบคุมมีค่าเป็น “0” หมายความวา่ เฟรมนีเป็ น I-frame
 3 บิตถดั มาเรียกวา่ n(s) ซึงเกบ็ หมายเลขลาํ ดบั ของแตล่ ะเฟรม
 บิตถดั ไปเรียกวา่ P/E (Poll/Final) บิตนีจะมีค่าเป็น “1” ก็ต่อเมือสถานีหลกั ไดท้ าํ การโพล

ไปยงั สถานีรอง แต่ถา้ บิตนีเป็ น “0” จะหมายถึงสถานีรองไดส้ ่งขอ้ มูลกลบั มาให้สถานี
หลกั
 3 บิตสุดทา้ ยเรียกวา่ N(R) ซึงมีการใชก้ ลุ่มบิตนีเมือเป็น Piggybacking โดย N(R) จะบอก
วา่ เฟรมถดั ไปทีตอ้ งการรับคือเฟรมอะไร ซึงกต็ ่อ ACK นนั เอง

S-frame ใช้สําหรับควบคุมอตั ราการไหลของขอ้ มูลและการตรวจสอบความผิดพลาด
ของการส่งขอ้ มูล จะมีการใช้ S-frame ก็ต่อเมือไม่มีการทาํ Piggybacking จึงเป็ นเพียง Acknowledgement
เทา่ นนั จะไม่มีการส่งขอ้ มูลใด ๆ ไปพร้อมกบั เฟรมนี ดงั ภาพที 7.35 แสดงถึงฟิ ลดค์ วบคุมของ S-frame

ภาพที 7.35 ฟิ ลด์ควบคุมของ S-frame ใน HDLC
กลุ่มของบิตทีอยใู่ นฟิ ลดค์ วบคุมของ S-frame จะมีความหมายดงั นี

 ถา้ 2 บิตแรกของฟิ ลดค์ วบคุมจะมีคา่ เป็ น “10” หมายความวา่ เฟรมนีเป็ น S-frame
 2 บิตถดั มา จะเป็นการบ่งบอกถึงประเภทของ S-frame ซึงมีอยู่ 4 ประเภทดว้ ยกนั คือ

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มลู หนา้ ที 282

1. Receive Ready (RR) จะแทนด้วย “00” เป็ นเฟรม Acknowledgement บ่ง
บอกวา่ ผไู้ ดร้ ับเฟรมขอ้ มูลทีส่งมาเรียบร้อยแลว้ และพร้อมทีจะรบั เฟรมตอ่ ไปจากผสู้ ่ง

2. Receive Not Ready (RNR) จะแทนด้วย “10” คล้ายกับ RR คือบ่งบอกว่า
ผูร้ ับไดร้ ับเฟรมขอ้ มูลทีส่งมาเรียบร้อยแลว้ แต่จะบอกผูส้ ่งวา่ ยงั ไม่พร้อมทีจะรับเฟรม
ถดั ไป ซึง S-frame ชนิดนีจะมีไวส้ าํ หรับควบคุมการแน่นขนดั

3. Reject (REJ) จะแทนด้วย “01” เป็ น Negative Acknowledgement (NAK)
เป็นการบง่ บอกผสู้ ่งวา่ ใหส้ ่งเฟรมขอ้ มูลมาใหม่ ซึงการทาํ งานจะเหมือนกบั Go-back-N

4. Selective Reject (SREJ) จะแทนดว้ ย “11” เป็ นNegative Acknowledgement
ซึงเฟรมประเภทนีจะใชก้ บั โพรโทคอล Selective repeat
 ส่วนบิตที 5 ในฟิ ลดค์ วบคุมคือบิต P/F
 3 บิตสุดทา้ ย เรียกวา่ N(R) ซึงก็คือค่าของ ACK หรือ NAK

U-frame เป็ นเฟรมทีใชส้ ําหรับบริหารจดั การ โดยจะมีฟิ ลด์ทีใชเ้ ก็บขอ้ มูลทีเกียวกบั การบริหาร
ระบบเท่านนั ไม่ไดเ้ ก็บขอ้ มูลของผูใ้ ช้ U-frame จะเก็บรหัส (Code) ของการควบคุมเอาไว้ 2 ส่วน คือ 2
บิตหนา้ บิต P/F และอีก 3 บิตหลงั P/F ดงั นนั จึงมีรหสั ทีใชส้ าํ หรับควบคุมระบบไดถ้ ึง 5 บิต (32 รหสั ) ดงั
ภาพที 7.36

ภาพที 7.36 ฟิ ลด์ควบคุมของ U-frame ใน HDLC

ในภาพที 7.37 จะแสดงถึงรหัสต่าง ๆ ทีใชท้ งั เป็ นคาํ สัง (Command) และการตอบรับ (Response)
เช่น การสร้างการติดตอ่ การยกเลิกการติดตอ่ การตอบรบั ของสถานีรอง เป็นตน้

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มลู หนา้ ที 283

ภาพที 7.37 ความหมายของรหัสต่าง ๆ ในฟิ ลด์ควบคุมของ U-frame
ตัวอย่างการส่งข้อมลู ของ HDLC
ผูเ้ ขียนขออนุญาตยกตวั อย่างในการส่งขอ้ มูลของ HDLC สัก 2 กรณี คือ กรณีแรกการส่งเฟรม
ขอ้ มูลและใชว้ ธิ ี Piggybacking โดยไมม่ ีความผิดพลาดในการส่งขอ้ มูล และกรณีการส่งทีมีความผิดพลาด
ของขอ้ มูลระหวา่ งการส่ง
ตวั อยา่ งที การส่งเฟรมขอ้ มูลและใชว้ ธิ ี Piggybacking โดยไม่มีความผดิ พลาดในการส่ง ในภาพที
7.38 จะแสดงถึงการแลกเปลียนขอ้ มูลกนั ระหวา่ งสถานี A กบั สถานี B

ภาพที 7.38 กรณไี ม่มีความผิดพลาดในการส่งเฟรมข้อมลู โดยใช้วธิ ี Piggybacking
จากภาพที 7.38 เมือสถานี A ตอ้ งการทีจะแลกเปลียนขอ้ มูลกบั สถานี B มีขนั ตอนดงั นี

 สถานี A เริมจากการส่ง I-frame หมายเลข 0 และตามดว้ ย I-frame หมายเลข 1

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มลู หนา้ ที 284

 เมือเฟรมเดินทางไปถึงสถานี B จะต้องตอบรับทัง 2 เฟรมทีได้รับ โดยใช้วิธี
Piggybacking ซึงจะเป็ นการส่งข้อมูลและ ACK มาด้วยกัน สถานี B จะส่ง I-frame
หมายเลข 0 (ฟิ ลด์ N(S)) พร้อมทงั N(R) = 2 ซึงหมายความวา่ ไดร้ ับเฟรม 0 และ 1 ถา้ จะ
ส่งเฟรมถดั ไปใหส้ ่งเฟรมหมายเลข 2

 สถานี B ส่ง I-frame หมายเลข 1 และหมายเลข 2 เราจะสังเกตไดว้ า่ 2 เฟรมนี N(R) ยงั คง
เป็น 2 เนืองจากวา่ สถานี A ยงั ไม่ไดส้ ่งเฟรมหมายเลข 2 มานนั เอง

 สถานี A ไมม่ ีขอ้ มูลใด ๆ ทีจะส่งใหส้ ถานี B ซึงหมายความวา่ ไดร้ ับเฟรมขอ้ มูลแลว้ และ
พร้อมจะรับเฟรมหมายเลข 3 ตอ่ ไป (N(R) = 3)

ตวั อย่าง การส่งเฟรมขอ้ มูลและใชว้ ธิ ี piggybacking โดยเกิดความผดิ พลาดในระหวา่ งการส่งให้
สถานี B ส่งขอ้ มูลให้กบั สถานี A โดยสมมติให้เฟรมหมายเลข 1 เกิดความผิดพลาดในระหวา่ งการส่ง
ทาํ ให้สถานี A ไม่ไดร้ ับเฟรมนี สถานี A จะส่ง S-frame ประเภท REJ เพือบ่งบอกว่าใหส้ ่งเฟรมมาใหม่
ตงั แตเ่ ฟรมหมายเลข 1 เป็นตน้ ไป (ระบบนีใชก้ ลไกหรือโพรโทคอลแบบ Go-Back-N) ดงั ภาพที 7.39

ภาพที 7.39 การส่งเฟรมข้อมูลโดยใช้วธิ ี Piggybacking โดยเกดิ ความผดิ พลาดในระหว่างการส่งข้อมลู

ทีมาของภาพ:ดดั แปลงจากหนงั สือ Data Communications and Networking ของ Behrouz a Forouzan

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มลู หนา้ ที 285

สรุปท้ายบทที 7

ชันสือสารการเชือมต่อ (Data Link Layer) เป็ นชนั ทีรับแพ็กเก็ตขอ้ มูลจากชนั สือสารควบคุม
เครือข่าย (Network Layer) ด้วยการแบ่งเป็ นหน่วยข้อมูลทีเรียกว่า “เฟรม” จากนันก็จะปะส่วนหัวที
เรียกวา่ เฮดเดอร์เขา้ ไปในเฟรมเพือกาํ หนดทีอยขู่ องผสู้ ่งและผรู้ ับ

ชันสือสารเชือมต่อข้อมูล (Data Link Layer) ช่วยสร้างความน่าเชือถือไปยงั ชนั สือสารกายภาพ
(Physical Layer) ดว้ ยการเพิมกลไกการตรวจจบั ขอ้ ผดิ พลาดของขอ้ มูล

ข้อผิดพลาด สามารถแบง่ ออกไดเ้ ป็ น 2 ชนิด คือ ขอ้ ผิดพลาดแบบบิตเดียว และขอ้ ผดิ พลาดแบบ
หลายบิต

การตรวจจับข้อผดิ พลาด มีหลายวิธีด้วยกนั คือ การใชบ้ ิตตรวจสอบ, การหาผลรวม, การใชว้ ิธี
CRC

การตรวจจับข้อผิดพลาดด้วยวิธี การใช้บิตตรวจสอบ และการหาผลรวม เป็ นวิธีทีไม่รับรอง
ความถูกตอ้ งทงั หมด ทงั นีวิธีแบบ CRC จดั เป็ นวิธีทีได้รับความน่าเชือถือสูง เนืองจากสามารถตรวจจบั
ขอ้ ผดิ พลาดไดแ้ มน่ ยาํ ถึง 99.99%

สาเหตุทีตอ้ งมีการควบคุมการไหลของขอ้ มูล และการควบคุมขอ้ ผดิ พลาด คือ

1. ในกรณีฝังส่งและฝังรับสือสารบนความเร็วทีแตกต่างกนั
2. จะทาํ การโตต้ อบกนั อยา่ ง หากเฟรมขอ้ มูลทีส่งไปนนั เกิดความเสียหาย หรือ
สูญหาย
3. จะเกิดอะไรขึน หากฝังรับไมร่ ู้วา่ มีขา่ วสารส่งมาถึงตน
4. จะเกิดอะไรขึน ถา้ เฟรมขอ้ มูลของฝังส่งนนั เกิดความเสียหาย

การควบคุมการไหลของข้อมลู สามารถแบง่ ออกเป็ น 2 ประเภท คือ
1. การควบคุมการไหลของขอ้ มูลดว้ ยวธิ ีหยดุ และรอ
2. การควบคุมการไหลของขอ้ มูลดว้ ยวธิ ีเลือนหนา้ ต่าง

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มูล หนา้ ที 286

การควบคุมข้อผิดพลาด จะเกียวขอ้ งกบั กระบวนการทีจะตอ้ งตรวจสอบขอ้ ผิดพลาดของเฟรม
อยา่ งไรและจะตอ้ งทาํ อะไรบา้ ง หากเกิดขอ้ ผดิ พลาดขึน เพือแสดงความมนั ใจไดว้ า่ เฟรมขอ้ มูลทงั หมดที
ส่งไปยงั ปลายทางนนั จะปราศจากขอ้ ผดิ พลาด

การดําเนินการกบั ข้อผดิ พลาด สามารถปฏิบตั ิการไดใ้ น 3 กรณี คือ
1. ไม่ตอ้ งดาํ เนินการใด ๆ
2. แจง้ ขา่ วสารกลบั ไปยงั ฝังส่งใหร้ ับทราบ
3. ตรวจแกข้ อ้ ผิดพลาด

ข้อผดิ พลาดทีตรวจพบ สามารถแบง่ ออกเป็ น 2 ประเภทดว้ ยกนั คือ
1. เฟรมสูญหาย
2. เฟรมชาํ รุด

ARQ เป็ นกระบวนการทีจะช่วยสร้างความน่าเชือถือในขอ้ มูลให้ชนั สือสารเชือมต่อขอ้ มูลยิงขึน
โดยรูปแบบของ ARQ โดยทวั ไปแลว้ จะมีอยู่ 2 วธิ ีหลกั ๆ คือ

1. Stop-and-Wait
2. Continuous

2.1 Go-Back-N
2.2 Selective – Reject

บทที 7 การตรวจสอบและแกไ้ ขความผิดพลาดของขอ้ มูล หนา้ ที 287

แบบฝึ กหัดท้ายบทและการค้นคว้า

จงตอบคําถามต่อไปนี

1. หนา้ ทีของชนั สือสารเชือมตอ่ ขอ้ มูล (Data Link Layer) คืออะไร
2. เพราะเหตุใดจึงกล่าวว่าการสือสารในชันเชือมต่อขอ้ มูล (Data Link Layer) สามารถสร้างความ

น่าเชือให้แก่การสือสารในชนั กายภาพ (Physical Layer) ได้ จงอธิบายมาใหเ้ ขา้ ใจ
3. จงเปรียบเทียบความแตกต่างระหวา่ งขอ้ ผิดพลาดแบบ Sing-Bit Error และแบบ Burst Error มาให้

พอเขา้ ใจ
4. ขอ้ ดีและขอ้ เสียของการตรวจจบั ขอ้ ผดิ พลาดดว้ ยวธิ ี Parity Checks มีอะไรบา้ ง
5. สาเหตุทีการตรวจจบั ขอ้ ผิดพลาดดว้ ยวิธี Parity Checks และ Checksum ยงั ไม่น่าเชือถือเพราะเหตุ

ใด
6. จงหาบิตตรวจสอบสาํ หรับวิธีการตรวจสอบแบบ Checksum โดยใหม้ ีขอ้ มูล 16 บิต ดงั ต่อไปนี

 1001001110010011
 1001100001001101
7. ผูท้ ีไดร้ ับขอ้ มูล 11001100111 ถา้ ใชแ้ ฮมมิงโคด้ คาํ นวณหาค่าบิตตรวจสอบไดเ้ ป็ น จงหาว่า
ขอ้ มลู มีความผดิ พลาดหรือไม่ ถา้ มีจะแกไ้ ขอยา่ งไรใหถ้ ูกตอ้ ง
8. สาเหตุทีตอ้ งมีการควบคุมการไหลของขอ้ มูลและควบคุมขอ้ ผดิ พลาดมีอะไรบา้ ง
9. จงอธิบายหลกั การทาํ งานของโพรโทคอล Stop-and-Wait มาใหเ้ ขา้ ใจ
10. เพราะเหตุใด โพรโทคอล Stop-and-Wait ไม่เหมาะกบั การนาํ ไปใช้งานบนระบบสือสารทีตน้ ทาง
กบั ปลายทางมีระยะห่างไกลกนั มาก จงอธิบาย
11. หมายเลขของเฟรม NAK ในกลไกแบบ Selective Repeat หมายถึงอะไร
12. หมายเลขของเฟรม ACK ในกลไกแบบ Selective Repeat หมายถึงอะไร
13. ถา้ กาํ หนดให้กลไก Go-Back-N มีขนาดของหน้าต่างเทา่ กบั 15 จะตอ้ งใชบ้ ิตขอ้ มูลจาํ นวนกีบิตใน
การเกบ็ หมายเลขลาํ ดบั (Sequence Number) ของเฟรมขอ้ มูล
14. ใหค้ อมพวิ เตอร์ A ใชก้ ลไก Stop-and-Wait ในการส่งเฟรมขอ้ มูลใหก้ บั คอมพวิ เตอร์ B ถา้ ระยะทาง
ระหว่างคอมพิวเตอร์ A และ B ห่างกัน 4,000 กิโลเมตร จงหาว่าจะต้องใช้เวลานานเพียงใดที
คอมพิวเตอร์ A จะไดร้ ับเฟรมตอบรับ (ACK) จากคอมพิวเตอร์ B โดยสมมติให้การส่งเฟรมขอ้ มูล

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มลู หนา้ ที 288

จะมีอตั ราความเร็วเท่ากับความเร็วแสงและกาํ หนดให้เวลาในการรับ-ส่งเฟรมตอบรับ (ACK)
เทา่ กบั ศูนย์
15. จากข้อ 14 ถ้าคอมพิวเตอร์ A ต้องการส่งเฟรมข้อมูลขนาด 1,000 ไบต์ และมีอตั ราในการส่งที
100,000 Kbps จงหาว่าจะต้องใช้เวลานานเท่าใดในการส่งเฟรมข้อมูลจากคอมพิวเตอร์ A ไปยงั
คอมพิวเตอร์ B
16. จากรายละเอยี ดต่อไปนี

สถานี A: ส่งเฟรม 0, 1 และ 2
สถานี B: ตอบรับเฟรมถดั ไป
สถานี A: ส่งเฟรม 3 และ 4
สถานี B: ตอบรับเฟรมถดั ไป
สถานี A: ส่งเฟรม 5, 6, 7
สถานี B: ตอบรับ REJ 5 (ใชว้ ธิ ี Go-Back-N หรือ Selective Repeat)
สถานี A: ส่งเฟรม 7, 0 และ 1
สถานี B: ตอบรับเฟรมถดั ไป
16.1 จงเขียนแผนภาพการโตต้ อบระหวา่ งสถานี A กบั สถานี B ดว้ ยวธิ ี Go-Back-N
16.2 จงเขียนแผนภาพการโตต้ อบระหวา่ งสถานี A กบั สถานี B ดว้ ยวธิ ี Selective Reject

บทที 7 การตรวจสอบและแกไ้ ขความผดิ พลาดของขอ้ มูล หนา้ ที 289



บทที 8

เทคโนโลยแี ลน: อเี ทอร์เน็ต
Ethernet LAN

วตั ถปุ ระสงค์การเรียนรู้

1. สามารถอธิบายววิ ฒั นาการของอีเทอร์เน็ตได้
2. สามารถอธิบายสถาปัตยกรรมของอเี ทอร์เน็ตได้
3. สามารถอธิบายมาตรฐาน IEEE 802.3 ได้
4. สามารถอธิบายวธิ ีการควบคุมเพือเขา้ ถึงสือกลางแบบ CSMA/CD ได้
5. บอกความแตกต่างระหวา่ ง MAC Address กบั IP Address ได้
6. บอกความแตกต่างระหวา่ งการส่งขอ้ มูลแบบเบสแบนดก์ บั บรอดแบนดไ์ ด้
7. เข้าใจหลักการเชือมต่อเครือข่ายและอุปกรณ์พืนฐานของเครือข่ายอีเทอร์เน็ตซึง

ประกอบด้วย 10Base5, 10BaseT และ 10BaseF รวมถึงอีเทอร์เน็ตความเร็วสูงใน
รูปแบบอืน ๆ
8. สามารถอธิบายหลกั การเชือมตอ่ เครือข่าย Token Ring, รวมถึงหลกั การทาํ งานของ
โพรโทคอล Token Passing
9. สามารถอธิบายหลกั การเชือมตอ่ แบบ 2 วงแหวนในเครือขา่ ย FDDI ได้
10. สามารถนาํ ความรู้ทีไดไ้ ปประยุกต์ใช้เพือการออกแบบและติดตงั เครือข่ายไดอ้ ยา่ ง
เหมาะสม

จากบทที 1 เครือข่ายทอ้ งถิน (LAN) เป็ นเครือข่ายทีอุปกรณ์ต่าง ๆ จะอยูใ่ นบริเวณทีไม่ไกลนกั
ปกติแล้วจะอยู่ภายในรัศมีไม่กีกิโลเมตร เช่น ภายในตึก หรือภายในมหาวิทยาลัย เป็ นต้น ถึงแม้ว่า
เครือข่ายทอ้ งถินถูกออกแบบมาเพือให้ภายในองคก์ รสามารถทีจะใชท้ รัพยากรร่วมกนั ได้ แตป่ ัจจุบนั โดย
ส่วนใหญ่แลว้ เครือข่ายทอ้ งถินถูกนาํ ไปเชือมตอ่ กบั เครือข่ายระดบั ประเทศ (WAN) หรืออินเทอร์เนต็

เทคโนโลยีเครือขา่ ยทอ้ งถินหรือแลน มีอยดู่ ว้ ยกนั หลายประเภท แตท่ ีนิยมใชง้ านกนั มากทีสุด คือ
“อเี ทอร์เน็ต (Ethernet)” สาํ หรับเนือหาในช่วงแรกของบทนีขอกล่าวถึงพฒั นาการของอีเทอร์เน็ตภายใต้
โครงการ IEEE 802 ซึงเป็ นโครงการเกียวขอ้ งกบั เทคโนโลยเี ครือข่ายทอ้ งถิน

บทที 8 เทคโนโลยแี ลน: อีเทอร์เน็ต หนา้ ที 291

อีเทอร์เน็ตได้ถูกสร้างขึนเมือ ปี ค.ศ. 1976 ที Xerox’s Palo Alto Research Center (PARC)
จากนนั ไดม้ ีการปรับปรุงและพฒั นาจนกลายมาเป็ นอีเทอร์เนต็ ยุกคแรก (Traditional Ethernet) โดยมีอตั รา
ความเร็วในการส่งขอ้ มูลอยูท่ ี 10 Mbps จากนนั จะเป็ นฟาสตอ์ ีเทอร์เน็ต (Fast Ethernet) ทีอตั ราความเร็ว
100 Mbps และกิกะบิตอีเทอร์เน็ต (Gigabit Ethernet) ทีอตั ราความเร็ว 1 Gbps

คอมพิวเตอร์ทีเชือมต่อกันในเครือข่ายท้องถิน จะมีการทาํ งานครบทงั 5 ชันการสือสารตาม
แบบจาํ ลองของอินเทอร์เน็ต โดยส่วนใหญ่เครือข่ายท้องถินทุกแบบจะมี 3 ชันการสือสารข้างบนที
เหมือนกนั (Network, Transport, Application Layer) แต่ในส่วนของชนั สือสารเชือมต่อขอ้ มูลหรือ Data
Link Layer และชนั สือสารกายภาพ หรือ Physical Layer จะมีความแตกต่างกนั ออกไป ซึงชนั Data Link
Layer จะถูกแบ่งออกเป็ นเลเยอร์ย่อย ทีเรี ยกว่า ซับเลเยอร์ (Sublayer) โดยแบ่งเป็ น LLC Sublayer
(Logical Link Control) และ MAC Sublayer (Medium Access Control) แต่ในปัจจุบันนี LLC Sublayer
ไม่ค่อยมีการใชง้ านกนั แลว้

8.1 โครงการหมายเลข 802 (Project 802)

ในปี ค.ศ.1985 ทางสถาบนั IEEE ไดร้ ิเริมโครงการสําคญั โครงการหนึง โดยตงั ชือโครงการนีวา่
โครงการหมายเลข 802 หรือ Project 802 โดยโครงการดังกล่าวนีจดั ตงั ขึนเพือต้องการให้ผลิตภณั ฑ์
อุปกรณ์สือสารทีมาจากแหล่งผผู้ ลิตต่าง ๆ สามารถสือสารใหเ้ ป็ นไปตามมาตรฐานเดียวกนั แต่โครงการนี
มิไดม้ ีวตั ถุประสงคเ์ พือนาํ มาใช้ทดแทนมาตรฐาน OSI โมเดลทีทางหน่วยงาน ISO จดั ตงั ขึนแต่อยา่ งใด
เนืองจากโครงการหมายเลข 802 มีวตั ถุประสงคเ์ พือกาํ หนดหนา้ ทีและรายละเอยี ดของชนั สือสารกายภาพ
ชนั สือสารเชือมต่อขอ้ มูล และมีส่วนขยายเพิมเติมบางส่วนอีกเล็กน้อย ทีนาํ มาใช้งานเพือการเชือมต่อ
เครือข่ายทอ้ งถินเป็ นหลกั สาํ คญั

ความสัมพนั ธ์ระหวา่ งโครงการหมายเลข 802 ของทาง IEEE และแบบจาํ ลอง OSI แสดงไวใ้ น
ภาพที 8.1 ซึงจะพบว่า IEEE ไดม้ ีการแบ่งส่วนชันสือสารเชือมต่อขอ้ มูลออกเป็ น 2 ชนั ย่อยดว้ ยกนั ซึง
ประกอบดว้ ย

1. Logical Link Control (LLC)
2. Media Access Control (MAC)

นอกจากนีทาง IEEE ยงั ไดส้ ร้างมาตรฐานชันสือสารกายภาพทีหลากหลาย เพือให้สามารถ
นาํ ไปใชง้ านกบั โพรโทคอลบนเครือข่ายแลนชนิดต่าง ๆ ได้ อาทิ อีเทอร์เน็ต โทเคนริง เป็นตน้

บทที 8 เทคโนโลยแี ลน: อีเทอร์เน็ต หนา้ ที 292

ภาพที 8.1 มาตรฐาน IEEE ทนี ํามาใช้กบั เครือข่าย LAN

ภาพที 8.2 โครงการย่อยต่าง ๆ ตามมาตรฐาน IEEE 802

รูปแบบเฟรม IEEE 802 (IEEE 802 Frame Formats)
จากภาพที 8.1 แสดงถึงแบบจาํ ลอง IEEE 802 โดยเมือเทียบกับแบบจาํ ลอง OSI ทีชันสือสาร

เชือมต่อขอ้ มูลแลว้ จะพบวา่ แบบจาํ ลอง IEEE 802 จะมีการแบ่งชนั สือสารยอ่ ยออกเป็ นสองส่วนดว้ ยกนั
คือ MAC และ LLC โดยที

บทที 8 เทคโนโลยแี ลน: อีเทอร์เน็ต หนา้ ที 293

Medium Access Control: MAC
เป็นชนั สือสารยอ่ ยทีทาํ งานใกลช้ ิดกบั ชนั สือสารกายภาพมาก ภายในบรรจุดว้ ยส่วนของเฮดเดอร์
ฟิ สิคลั แอดเดรส รหัสการตรวจสอบและการควบคุมขอ้ มูล MAC ไดม้ ีการกาํ หนดรูปแบบของขอ้ มูลที
เรี ยกว่าเฟรมซึ งรู ป แบ บ ของเฟ รม จะ มี ความ แตกต่างกัน โดยจะขึน อยู่กับเครื อข่ายท้องถิ น แต่ละช นิ ด
ตวั อย่างเช่น CSMA/CD ทีใช้ในอีเทอร์เน็ตก็มีรูปแบบเฟรมแบบหนึง ในขณะทีโทเคนริงก็จะมีรูปแบบ
เฟรมอีกแบบหนึง เป็ นตน้ รูปแบบของเฟรมจะประกอบดว้ ยฟิ ลด์ทีใชส้ ําหรับการตรวจสอบขอ้ ผิดพลาด
ตาํ แหน่งทีอยู่ของเวิร์คสเตชัน และการควบคุมอีกหลาย ๆ อย่าง ดังนัน MAC จึงเป็ นชันสือสารทีมี
ความสําคญั มากในเครือข่ายทอ้ งถิน

Logical Link Control: LLC
เป็ นชันสื อสารย่อยทีรับผิดชอบงานด้านพืนฐานเกียวกับลอจิคัลแอดเดรส การควบคุม
ขอ้ ผดิ พลาด รวมถึงเป็นส่วนเชือมต่อกบั ชนั สือสารควบคุมเครือขา่ ย (Network Layer)

ภาพที 8.3 รูปแบบเฟรมของ 802.3 MAC

สาํ หรับชนั สือสารยอ่ ย MAC จะมีรูปแบบเฟรมเป็ นไปดงั ภาพที 8.3 ซึงอธิบายรายละเอยี ดไดด้ งั นี

 ฟิ ลด์ เริมต้ น (Preamble) เป็ นฟิ ลด์แรกของเฟรม 802.3 มีขนาด 7 ไบต์(56 บิต)
ใช้สําหรับบอกให้ผูร้ ับทราบว่ามีเฟรมขอ้ มูลมาแล้ว และเป็ นการทาํ ซิงโครไนซ์กัน
ระหวา่ งผูส้ ่งและผรู้ ับ โดยจะเป็ นการรับสัญญาณนาฬิกา เพือใหส้ ามารถรับส่งขอ้ มูลได้
อยา่ งสอดคลอ้ งกนั ในความจริงแล้วฟิ ลด์นีไม่ไดอ้ ยู่ในเฟรมขอ้ มูล แต่จะถูกเพิมเขา้ ไป
ในชนั สือสารกายภาพ

 ฟิ ลด์ต้นเฟรม (Start frame Delimiter: SFD) มีขนาด 1 ไบต์ ในฟิ ลด์นีจะมีบิตเป็ น
10101011 ใชส้ าํ หรับบอกจุดเริมตน้ ของเฟรมขอ้ มลู โดยเฉพาะ 2 บิตสุดทา้ ย (11) จะเป็น
การบอกผรู้ ับวา่ ฟิ ลดถ์ ดั ไปจะเป็นแอดเดรสของผูร้ ับ

บทที 8 เทคโนโลยแี ลน: อเี ทอร์เน็ต หนา้ ที 294

 ฟิ ลด์แอดเดรสปลายทาง (Destination Address: DA) มีขนาด 6 ไบต์ ซึงจะเก็บค่าของ
แอดเดรสทางกายภาพ (Physical Address) ของผรู้ บั

 ฟิ ลด์แอดเดรสต้นทาง (Source Address: SA) มีขนาด 6 ไบต์ จะเก็บค่าของแอดเดรส
ทางกายภาพ (Physical address) ของผสู้ ่ง

 ฟิ ลด์ความยาวข้อมูล (Length/Type) มีขนาด 2 ไบตซ์ ึงจะใชส้ ําหรับเก็บความยาวหรือ
ชนิดของขอ้ มูล
 ถ้าฟิ ลด์นีมีค่าน้อยกว่า 1518 หมายความว่าฟิ ลด์นีจะเก็บค่าความยาว
ของขอ้ มูล
 ถ้าฟิ ลด์มีค่ามากกว่า 1536 หมายความว่าฟิ ลด์นีจะบอกถึงชนิดของ
PDU (Protocol data unit) ซึงจะบอกว่าแพ็กเก็ตทีอยู่ในเฟรมนีเป็ น
แพก็ เก็ตชนิดไหน

 ฟิ ลด์ข้อมูล (Data and Padding) ฟิ ลด์นีจะบรรจุขอ้ มูลทีไดร้ ับการเอนแคปซูเลตจาก
โพรโทคอลชันทีอยู่เหนือกว่า โดยมีขนาดอย่างน้อย 46 ไบต์ และสูงสุดที 1500 ไบต์
ทงั นีหากขอ้ มูลมีขนาดเล็กกว่า 46 ไบต์ ระบบจะทาํ การเติมให้เต็ม (Padding) เพือให้
ขอ้ มูลมีขนาดอยา่ งน้อย 46 ไบต์ ซึงการกระทาํ ดงั กล่าวมีวตั ถุประสงคเ์ พือให้ขนาดของ
แพก็ เกต็ มีความยาวเพยี งพอตอ่ การตรวจสอบการชนกนั ของกลุม่ ขอ้ มูล

 ฟิ ลด์ตรวจสอบความผิดพลาดของข้อมูล (Cyclic Redundancy Check: CRC) จะใช้
สาํ หรับตรวจสอบวา่ ขอ้ มูลมีความผดิ พลาดเกิดขึนในระหวา่ งการส่งหรือไม่ โดยจะใชว้ ิธี
ตรวจสอบแบบ CRC-32

ฟิ สิคลั แอดเดรสของสถานีปลายทาง (DA) และฟิ สิคลั แอดเดรสของสถานีตน้ ทาง (SA) อาจมี
ขนาด 2 ไบต์หรือ 6 ไบต์ก็เป็ นได้ แต่มาตรฐานการส่งขอ้ มูลแบบเบสแบนด์ทีความเร็ว 10 Mbps จะถูก
กาํ หนดไวท้ ี 6 ไบต์ (48 บิต) เทา่ นนั ดงั แสดงในภาพที 8.4 ขนาดตาํ สุดและสูงสุดของเฟรมขอ้ มูล ฟิ สิคลั
แอดเดรสทงั ของสถานีปลายทางและสถานีตน้ ทาง จะเป็ นชุดตวั เลขทีบรรจุไวบ้ นการ์ดเครือข่าย ซึงเป็ น
หมายเลขทีถูกบรรจุมาจากโรงงาน โดยไม่มีทางซาํ กนั ทีเรียกวา่ “แมคแอดเดรส (MAC Address)”

บทที 8 เทคโนโลยแี ลน: อีเทอร์เน็ต หนา้ ที 295

ภาพที 8.4 ขนาดตําสุดและสูงสุดของเฟรมข้อมูล
สําหรับตาํ แหน่งบิตสูงสุด (High-Order Bit) ในฟิ สิคัลแอดเดรสของสถานีปลายทาง หากถูก
กาํ หนดเป็ นค่า “0” จะหมายถึงแอดเดรสของสถานีปลายทางแบบปกติทวั ไป (Ordinary Address) แต่ถา้
หากถูกกาํ หนดเป็นคา่ “1” เมือไร กห็ มายถึงกลุ่มสถานีปลายทางทีอยูใ่ นกลุ่มเดียวกนั (Group Address) ซึง
ภายในกลุ่มจะไดข้ อ้ มูลชุดเดียวกนั จากผสู้ ่ง หรือสถานีตน้ ทางเพียงสถานีเดียว โดยการส่งเฟรมไปยงั กลุ่ม
สถานีเหล่านี จะเรียกวา่ “การส่ งข้อมูลแบบหลายจุด (Multicast)” ดงั ภาพที 8.5 แสดงถึงความแตกต่าง
ระหวา่ งแอดเดรสยนู ิคาสตแ์ ละแอดเดรสมลั ติคาสต์ ในขณะทีหากแอดเดรสปลายทางถูกกาํ หนดเป็นบิต 1
ทงั หมด ซึงบิตดงั กล่าวจะถูกสงวนไวเ้ พือ “กระจายข่าว (Broadcast)” ก็จะหมายถึงทุกสถานีบนเครือขา่ ย
จะไดร้ ับเฟรมทีส่งไป และในส่วนของฟิ ลด์ Length or Type ซึงมีขนาด 2 ไบตจ์ ะใชก้ าํ หนดความยาวของ
ขอ้ มูลจริงทีถูกบรรจุมาในเฟรม และถดั มาก็คือชุดขอ้ มูล และส่วนสุดทา้ ยก็คือ ฟิ ลด์ CRC ทีนาํ ไปใชเ้ พือ
การตรวจจบั ขอ้ ผิดพลาดของขอ้ มลู

ภาพที 8.5 แอดเดรสยูนิคาสต์และมัลตคิ าสต์

บทที 8 เทคโนโลยแี ลน: อีเทอร์เน็ต หนา้ ที 296

ทงั นีคาํ ศพั ทท์ ีนาํ มาใชเ้ พอื การส่งข่าวสารบนเครือข่าย ประกอบดว้ ย

ยูนิคาสต์ (Unicast) หมายถึง ส่งข่าวสารไปยงั โหนดใดโหนดหนึงบนเครือข่ายโดยเฉพาะ
กล่าวคือ จะมีสถานีทีรับเฟรมขอ้ มูลเพียงสถานีเดียวเท่านนั หรือสามารถเขียนความสัมพนั ธ์ระหวา่ งผูส้ ่ง
และผรู้ ับไดเ้ ป็ นแบบ one-to-one

มัลติคาสต์ (Multicast) หมายถึง กระจายข่าวสารไปยงั กลุ่มโหนดบนเครือข่ายทีเป็ นสมาชิก
เดียวกนั กล่าวคือ จะมีสถานีทีรับเฟรมขอ้ มูลนีหลายสถานี ซึงเขียนความสัมพนั ธ์ไดแ้ บบ one-to-many

บรอดคาสต์ (Broadcast) หมายถึง เผยแพร่ข่าวสารไปยงั ทุก ๆ โหนดบนเครือข่าย ซึงจะต่าง
จากมลั ติคาสตต์ รงทีหากเป็นมนั ติคาสตจ์ ะมีบางสถานีทีไมไ่ ดร้ ับเฟรมขอ้ มูล

วธิ ีควบคุมเพือเข้าถึงสือกลาง (Medium Access Control: MAC Methods)
ตามมาตรฐานเครือข่ายท้องถิน ปกติจะใช้สือกลางนําสัญญาณเพือการรับส่งข้อมูลร่วมกัน

ตวั อยา่ งเช่น เครือข่ายทีเชือมต่อตามโทโพรโลยแี บบบสั หรือแบบวงแหวน จะใชส้ ายเคเบิลทีเป็นสายแกน
หลกั เพียงเส้นเดียวในการเชือมต่อเขา้ กบั คอมพิวเตอร์และอุปกรณ์ต่าง ๆ ดงั นนั จึงต้องมีวิธีการควบคุม
และติดตามเพือให้อุปกรณ์ต่าง ๆ บนเครือข่ายสามารถใช้สือกลางเพือการรับส่งขอ้ มูลไดอ้ ยา่ งทวั ถึง วิธี
ควบคุมเพือเขา้ ถึงสือกลางนนั จะมีอยู่ 2 วิธีดว้ ยกนั คือ CSMA/CD และ Token Passing โดยอีเทอร์เน็ตจะ
ใชว้ ิธี CSMA/CD ในการเขา้ ถึงสือกลาง ในขณะทีทงั Token Bus, Token Ring และ FDDI จะใชว้ ธิ ี Token
Passing ในการเข้าถึงสือกลางแต่สําหรับในหัวข้อนีจะขอกล่าวถึงวิธี CSMA/CD ก่อน โดยวิธีเข้าถึง
สือกลางแบบ Token Passing จะกล่าวในหวั Token Ring ตอ่ ไป

8.2 Carrier Sense, Multiple Access/Collision Detection: CSMA/CD

เครือข่ายอีเทอร์เน็ตเป็ นเครือข่ายทีตงั อยู่บนพืนฐานเครือข่ายแบบบสั ทีใช้วิธีการส่งขอ้ มูลแบบ
เบสแบนด์ และดว้ ยการมีช่องทางการสือสารเพยี งช่องทางเดียว แต่อนุญาตให้คอมพวิ เตอร์หลาย ๆ เครือง
บนเครือข่ายใช้สายส่งขอ้ มูลร่วมกนั ได้ ทงั นีหากโหนดใดมีการส่งขอ้ มูล โหนดอืน ๆ ทีตอ้ งการส่งก็
จะตอ้ งรอ ดงั นนั จึงเป็นตอ้ งมีการกาํ หนดวา่ แลว้ ใครจะเป็นผสู้ ่งขอ้ มูลไดใ้ นลาํ ดบั ถดั ไป

เทคนิควิธี CSMA/CD เป็ นกลไกจดั การกบั สายส่งสัญญาณให้ว่าง โดย ในช่วงเวลาหนึง ๆ จะมี
ข้อมูลเพียงชุดเดียวเท่านันทีสามารถส่งผ่านสือกลางไปยังปลายทาง ดงั นนั จึงตอ้ งมีกระบวนการจดั การ
เพือให้โหนดต่าง ๆ บนเครือขา่ ยสามารถส่งขอ้ มูลได้ ซึงประกอบดว้ ยกลไกตอ่ ไปนี

บทที 8 เทคโนโลยแี ลน: อีเทอร์เน็ต หนา้ ที 297

การตรวจฟังสัญญาณ (Carrier Sense)
เป็ นกลไกในการตรวจฟังสัญญาณภายในสาย วา่ สายในขณะนนั ว่างหรือถูกใชง้ านอยู่ ซึงแต่ละ
โหนดบนเครือข่ายจะตอ้ งตรวจฟังสัญญาณบนสือกลาง ก่อนทีจะมีการส่งแพก็ เก็ตออกไป พิจารณาภาพที
8.6 (a) โหนด A ต้องการส่งแพ็กเก็ตและไดม้ ีการตรวจฟังสัญญาณบนสาย พบว่าในขณะนันว่าง นัน
หมายถึงโหนด A สามารถใช้สายสัญญาณเพือการส่งขอ้ มูลในขณะนันได้ อย่างไรก็ตาม ก็ยงั มีความ
เป็ นไปไดว้ า่ ในช่วงเวลาทีโหนด A ตรวจฟังสญั ญาณอยู่ ก็มีโหนดอืนตรวจฟังสญั ญาณเช่นกนั ดงั นนั หาก
ทงั สองโหนดมีการส่งแพก็ เก็ตบนสายพร้อมกนั ก็จะเกิดการชนกนั ของกลุ่มขอ้ มูลภายในสายสัญญาณ
ทนั ที

ภาพที 8.6 กระบวนการ CSMA/CD
การใช้สายส่งข้อมูลร่วมกัน (Multiple Access)
เป็ นกลไกทีอนุญาตให้ทุก ๆ โหนดบนเครือข่ายสามารถใช้สายส่งขอ้ มูลได้ทนั ทีหากสายใน
ขณะนันวา่ งโดยอีเทอร์เน็ตจะไม่มีการให้อภิสิทธิกบั โหนดใด ๆ เป็ นพิเศษ กล่าวคือโหนดใดก็ตามบน
เครือข่ายสามารถใชส้ ายเพือส่งขอ้ มูลไดท้ นั ที หากตรวจฟังสัญญาณในสายแลว้ วา่ ง ซึงถือเป็นการช่วงชิง
ใชส้ ือกลางเพือส่งขอ้ มลู กนั เอง ดงั นนั จึงมโี อกาสเกิดการชนของกลุม่ ขอ้ มูลไดเ้ สมอ
พิจารณาภาพที 8.6 (b) จะพบวา่ โหนด A ไดต้ รวจฟังสัญญาณสาย แลว้ พบวา่ สญั ญาณบนสายใน
ขณะนนั ว่าง ก็ดาํ เนินการส่งขอ้ มูลทนั ที ในขณะภาพที 8.6 (c) โหนด C ก็บงั เอิญตรวจฟังสัญญาณบน
สายในขณะนนั พอดี แลว้ พบว่าสัญญาณบนสายขณะนนั วา่ งอย่เู ช่นกนั ทาํ ให้ช่วงเวลาในขณะนนั เกิดการ
ส่งขอ้ มูลบนสายพร้อมกนั ถึงสองโหนด คือ โหนด A และโหนด C ดงั นนั ขอ้ มูลทีส่งออกมาผา่ นสือกลาง

บทที 8 เทคโนโลยแี ลน: อีเทอร์เน็ต หนา้ ที 298

จึงเกิดการชนกนั ของกลุ่มขอ้ มูลขึน โดยขอ้ มูลทีชนกนั นนั จะไม่สามารถนาํ มาใชง้ านไดอ้ ีกต่อไป ดงั นนั
จึงตอ้ งมีกระบวนการแกไ้ ขดว้ ยการส่งขอ้ มูลรอบใหม่

การตรวจสอบการชนกนั ของกลุ่มข้อมูล (Collision Detection)
เป็ นกลไกการตรวจสอบการชนกนั ของกลุ่มข้อมูล ซึงหากเกิดการชนกนั ของกลุ่มข้อมูลขึน
ภายในสายส่งดงั ภาพที 8.6 (c) และระบบไดต้ รวจพบวา่ ไดเ้ กิดเหตุการณ์ชนกนั ของกลุ่มขอ้ มูลขึนแลว้
ดงั นนั แต่ละโหนด (โหนด A และ โหนด C) กจ็ ะหยดุ ดาํ เนินการส่งขอ้ มูลทนั ที และมีการรอชวั ครู่ เพือให้
แตล่ ะโหนดสุ่มเวลาให้แตกต่างกนั ในการส่งขอ้ มูลรอบใหม่ เพือประกนั วา่ จะไม่เกิดการชนกนั ของกลุ่ม
ขอ้ มลู ชุดเดิมอีก

พิจารณาภาพที 8.7 เป็ นเหตุการณ์หลงั จากทีระบบไดต้ รวจสอบพบสัญญาณชนกนั ของกลุ่ม
ขอ้ มูลบนสายโดยโหนดทีส่งขอ้ มูลทงั สองฝังจะหยุดการส่งขอ้ มูลทนั ที และรอชวั ครู่หนึง จากนนั โหนด
A และโหนด C ก็จะสุ่มเวลาให้มีค่าแตกต่างกนั เช่น โหนด A สุ่มเวลาไดเ้ ท่ากบั 5 และโหนด C สุ่มเวลา
ไดเ้ ท่ากบั 6 จากนนั โหนดทงั สองกจ็ ะนบั เวลาถอยหลงั จนครบเพือทาํ การส่งขอ้ มูลรอบใหม่ แต่ในขณะที
โหนด A ทาํ การนับเวลาถอยหลงั อยู่ เช่น 6…5…4… ขณะนันเองโหนด B ได้ตรวจฟังสัญญาณบนสาย
ปรากฏวา่ สายในขณะนนั วา่ งโหนด B ก็จะส่งขอ้ มูลทนั ที โดยไม่สนใจวา่ ก่อนหน้านันมีการชนกนั ของ
ขอ้ มูลเกิดขึนไดอ้ ยา่ งไร ซึงเป็ นไปตามทฤษฎีของ CSMA ทีกล่าวไวว้ า่ หากสายวา่ งก็จะสามารถส่งขอ้ มูล
ได้ทนั ที ครันเมือโหนด A ได้นับถอยหลงั จนครบเวลาแล้ว ก่อนส่งก็จะตอ้ งฟังสัญญาณบนสาย หาก
ปรากฎวา่ สญั ญาณบนสายในขณะนนั ไม่วา่ ง โหนด A ก็ตอ้ งรอส่งขอ้ มลู ในรอบเวลาตอ่ ไป ดว้ ยการตรวจ
ฟังสญั ญาณบนสายจนกวา่ จะวา่ งแลว้ จึงส่งขอ้ มูลรอบใหม่

ภาพที 8.7 การสุ่มเวลาในการส่งข้อมลู

อย่างไรก็ตาม การชนกันของกลุ่มข้อมูลจะทวีมากขึน กรณีทีเครือข่ายมีขนาดใหญ่ รวมถึงใน
หนึงช่วงเวลาได้มีการส่งขอ้ มูลจาํ นวนมากภายในสายส่ง ดงั นันเมือเครือข่ายมีขนาดใหญ่และมีระยะ

บทที 8 เทคโนโลยแี ลน: อเี ทอร์เน็ต หนา้ ที 299


Click to View FlipBook Version