Data Communication and Networks - micro

Download Report

Transcript Data Communication and Networks - micro

การสื่ อสารข้ อมูลและเครือข่ ายคอมพิวเตอร์
Data Communication and Networks
การตรวจจับข้ อผิดพลาด การควบคุม
การไหลของข้ อมูล และการควบคุมข้ อผิดพลาด
Data Communication and Networks
LOGO
บทนา
การทางานของชั้นสื่ อสารดาต้าลิงค์ คือ ทาการแปลงสัญญาณข้อมูลจากชั้น
สื่ อสารฟิ สิ คลั เพื่อส่ งผ่านไปยังลิงค์ในลักษณะ Node-to-Node (Hop-to-Hop) หน้าที่
. รับผิดชอบของชั้นสื่ อสารดาต้าลิงค์ประกอบด้วย
- การกาหนดเฟรมข้อมูล (Framing)
- การกาหนดตาแหน่งที่อยู่ (Addressing)
- การควบคุมการไหลของข้อมูล (Flow Control)
- การควบคุมข้อผิดพลาด (Error Control)
- การควบคุมการเข้าถึงสื่ อกลาง (Media Access Control)
www.pcbc.ac.th
Data Communication and Networks
LOGO
ชนิดของข้ อผิดพลาด (Type of Errors)
สัญญาณรบกวนที่เกิดขึ้นในระหว่างการสื่ อสาร อาจทาให้เกิดข้อผิดพลาดขึ้น
โดยข้อผิดพลาดสามารถแบ่งได้เป็ น 2 ชนิด คือ
.
1. ข้อผิดพลาดแบบบิตเดียว (Single-Bit Error) ข้อผิดพลาดชนิดนี้จะมีเพียงบิต
เดียวเท่านั้นที่ผดิ พลาด เช่น มีการเปลี่ยนค่าจากบิต 1 เป็ น 0 หรื อจากบิต 0 เป็ น 1
www.pcbc.ac.th
Data Communication and Networks
LOGO
ชนิดของข้ อผิดพลาด (Type of Errors)
.
2. ข้อผิดพลาดแบบหลายบิต (Burst Error) เป็ นข้อผิดพลาดที่จะมีจานวนบิต
ตั้งแต่ 2 บิตขึ้นไปที่เกิดข้อผิดพลาด
www.pcbc.ac.th
Data Communication and Networks
LOGO
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
ตามหลักการ เครื อข่ายจะต้องสามารถถ่ายโอนข้อมูลจากอุปกรณ์หนึ่ งไปยัง
อุปกรณ์อื่นๆ ได้อย่างถูกต้องและสมบูรณ์ แต่ไม่สามารถรับประกันได้วา่ ข้อมูลที่ส่งไปถึง
. ปลายทางจะเป็ นข้อมูลที่เหมือนกับที่ส่งมาจากต้นทางหรื อไม่ซ่ ึ งมีความเป็ นไปได้ที่ขอ้ มูล
อาจเกิดข้อผิดพลาดไปจากเดิมในระหว่างการเดินทาง เนื่องมาจากปั จจัยแวดล้อมต่างๆ
เช่น การลดทอนสัญญาณ การถูกสัญญาณรบกวน ซึ่ งมีผลกระทบต่อข้อมูลโดยตรง
ดังนั้นเครื อข่ายที่ดีตอ้ งมีความน่าเชื่อถือและไว้วางใจได้ จึงจาเป็ นต้องมีกลไกในการ
ตรวจจับข้ อผิดพลาดและการแก้ ไข (Detection and Correction) ข้อผิดพลาดที่เกิดขึ้น
www.pcbc.ac.th
Data Communication and Networks
LOGO
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
1. การใช้บิตตรวจสอบ (Parity Checks) เป็ นวิธีตรวจจับข้อผิดพลาดอย่างง่าย
โดยจะใช้บิตพาริ ต้ ีซ่ ึ งประกอบด้วยเลขไบนารี 0 หรื อ 1 ปะท้ายเพิ่มเข้ามาอีกหนึ่งบิต เพื่อ
. ใช้เป็ นบิตตรวจสอบวิธีน้ ีสามารถแบ่งได้เป็ น 2 วิธี คือ
- การตรวจสอบบิตภาวะคู่ (Event Parity)
- การตรวจสอบบิตภาวะคี่ (Odd Parity)
www.pcbc.ac.th
Data Communication and Networks
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
ตัวอย่าง กรณี ตรวจสอบบิตแบบภาวะคู่
- หากบิตข้อมูลมีค่าเท่ากับ 0100110 บิตพาริ ต้ ีที่เพิ่มเข้าไปคือ บิต 1
.
01001101
- หากบิตข้อมูลมีค่าเท่ากับ 0100111 บิตพาริ ต้ ีที่เพิ่มเข้าไปคือ บิต 0
01001110
www.pcbc.ac.th
LOGO
Data Communication and Networks
LOGO
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
การตรวจจับข้อผิดพลาดด้วยวิธีการใช้บิตตรวจสอบนั้น มีขอ้ เสี ยตรงที่หากข้อมูล
มีการเปลี่ยนแปลงหลายๆ บิตพร้อมกันเป็ นคู่ๆ จะทาให้ไม่สามารถตรวจพบข้อผิดพลาด
. ใดๆ
www.pcbc.ac.th
Data Communication and Networks
LOGO
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
2. การหาผลรวม (Checksum) เป็ นอีกวิธีหนึ่งในการตรวจจับข้อผิดพลาดที่มี
ประสิ ทธิ ภาพสู งกว่าการใช้บิตตรวจสอบแต่จะมีการใช้โอเวอร์เฮดมากกว่าโดยฝั่งส่ งจะ
. คานวณหาผลรวมข้อมูลและส่ งไปพร้อมกับข้อมูล เมื่อฝั่งรับได้รับข้อมูลแล้ว จะนาผลรวม
นั้นไปตรวจสอบกับผลรวมของข้อมูลที่ได้รับเข้ามาว่าตรงกันหรื อไม่ในการหาผลรวมทา
ได้โดยนาค่าตัวเลขของข้อมูลมารวมกัน เช่น ค่าตัวเลขของรหัส ASCII ของคาว่า Networks
มีการใช้ checksum ขนาด 16 บิต
www.pcbc.ac.th
Data Communication and Networks
LOGO
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
.
การตรวจจับข้อผิดพลาดด้วยวิธีน้ ี ยังมีขอ้ เสี ยตรงที่หากค่าข้อมูลมีการ
เปลี่ยนแปลงหลายตัว แล้วเกิดมีผลรวมตรงกัน จะส่ งผลให้ตรวจไม่พบข้อผิดพลาด
จะพบว่าข้อมูลมีการเปลี่ยนแปลงที่บิตสุ ดท้าย แต่ผลรวมที่ได้กลับมีคา่ เท่ากัน
ทาให้ไม่สามารถตรวจพบข้อผิดพลาดได้ โดยตาแหน่งของบิตที่เกิดการเปลี่ยนแปลงและ
ก่อให้www.pcbc.ac.th
เกิดข้อผิดพลาดในรู ปแบบนี้ เรี ยกว่า Vertical Errors
Data Communication and Networks
LOGO
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
ตัวอย่าง ฝั่งส่ ง
สมมติวา่ ต้องการที่จะส่ งบิตข้อมูลจานวน 16 บิตออกไป และใช้วิธีการตรวจสอบแบบ
.
checksum โดยมีบิตตรวจสอบ 8 บิต ซึ่ งบิตข้อมูลที่ตอ้ งการส่ งมีดงั นี้
10101001 00111001
วิธีทา นาข้อมูลของทุกเซ็กเมนต์มาบวกกันด้วยวิธีแบบ 1’s complement ได้ดงั นี้
10101001
00111001
10101001 00111001 00011101
sum
11100010
Checksum 00011101
www.pcbc.ac.th
Data Communication and Networks
LOGO
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
ตัวอย่าง ฝั่งรับ
จากตัวอย่างการส่ งที่ผา่ นมาเมื่อฝั่งรับได้รับข้อมูลดังข้างล่างนี้ จงตรวจสอบข้อมูล
.
ดังกล่าวว่าถูกต้องหรื อไม่ 10101001 00111001 00011101
วิธีทา นาข้อมูลของทุกเซ็กเมนต์มาบวกกันด้วยวิธีแบบ 1’s complement ได้ดงั นี้
10101001
00111001
00011101
sum
11111111
complement 00000000
www.pcbc.ac.th
Data Communication and Networks
LOGO
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
3. CRC (Cyclic Redundancy Checksum)
เป็ นวิธีที่นิยมใช้งานบนเครื อข่ายท้องถิ่น และจัดได้วา่ เป็ นวิธีที่มีประสิ ทธิภาพสู ง
.
กว่า 2 วิธีแรก เนื่องจากสามารถตรวจจับข้อผิดพลาดได้ครอบคลุมและแน่นอนกว่า
โดยเฉพาะ CRC-32 บิต มีอตั ราความแน่นอนในการตรวจจับข้อผิดพลาดได้มากถึง
99.99999998% จึงเป็ นที่นิยมในการนามาใช้งานบนเครื อข่ายแลนอีเทอร์ เน็ต
www.pcbc.ac.th
Data Communication and Networks
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
Exclusive – OR
.
First Input Second Input
0
0
1
1
www.pcbc.ac.th
0
1
0
1
XOR Output
0
1
1
0
LOGO
Data Communication and Networks
LOGO
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
โพลิโนเมียล (Polynomial)
ปกติแล้วในการแทนบิตข้อมูลของตัวหารจะไม่ใช้รูปของเลขฐานสอง เนื่องจาก
. ค่อนข้างยาวและจาได้ยาก แต่จะเขียนให้อยูใ่ นรู ปของโพลิโนเมียล เช่น ถ้าตัวหารมีค่าเป็ น
10100111 จะสามารถเขียนให้อยูใ่ นรู ปของโพลิโนเมียลได้
10100111
7
5
2
x +x +x +x+1
www.pcbc.ac.th
Data Communication and Networks
LOGO
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
.
ดังนี้
สาหรับตัวหารที่เป็ นมาตรฐานทัว่ ไป ที่มีการนาไปใช้งานในโปรโตคอลต่างๆ มี
Name
CRC-8
CRC-10
ITU-16
ITU-32
www.pcbc.ac.th
Polynomial
x8+x2+x+1
x10+x9+x5+x4+x2+1
x16+x12+x5+1
x32+x26+x23+x22+x8+x7+x5+x4+x2+x+1
Application
ATM Header
ATM AAL
HDLC
LANs
Data Communication and Networks
LOGO
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
.
สรุ ปรายละเอียด CRC (Cyclic Redundancy Checksum)
M(X) คือเฟรมข้อมูลที่ตอ้ งการส่ ง
G(X) คือมาตรฐานของโพลีเมียลที่นามาใช้ (Generator Polynomial)
n คือบิตศูนย์ที่นามาผนวกเพิ่มเติม ด้วยการนาไปปะท้ายเฟรม M(X) โดยจานวน
ของบิตศูนย์จะมีจานวนเท่ากับ (Degree) ของ G(X)
R(X) คือเศษที่ได้จาการคานวณ (Remainder) (เกิดจากการนา M(X) ที่ได้ผนวกกับบิต
ศูนย์เพิ่มเติม แล้วหารด้วย G(X) โดยเศษที่ได้จากการหารก็คือ R(X))
T(X) คือเฟรมที่ส่งไป ซึ่ งเกิดจากการนา M(X) ปะด้วย R(X) โดยที่ T(X) = M(X) + R(X)
www.pcbc.ac.th
Data Communication and Networks
LOGO
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
การหาบิตตรวจสอบของเทคนิค CRC (Cyclic Redundancy Checksum)
1. ถ้าตัวหารมีจานวนบิตเท่ากับ n+1 บิตแล้วจะต้องเติมบิต 0 จานวน n ตัวที่ส่วนท้าย
. ของข้อมูล
2. ใช้บิตข้อมูลลบด้วยตัวหาร (ใช้วิธี XOR) เมื่อลบแล้วผลที่ได้จากการลบ ถ้า
2.1 บิตซ้ายสุ ดของเศษเป็ น 1 ให้นาตัวหารมาเป็ นตัวลบอีกครั้ง
2.2 บิตซ้ายสุ ดของเศษเป็ น 0 ให้นา 0000 มาเป็ นตัวลบ
3. ทาในข้อ 2 จนกระทัง่ ไม่สามารถลบกันได้อีกแล้ว (จานวนบิตของเศษน้อยกว่า
จานวนบิตของตัวหาร) จะถือได้วา่ เศษที่ได้จากการหารนั้นคือ บิตตรวจสอบ
4. นาบิตตรวจสอบที่ได้ไปแทนที่บิต 0 จานวน n ตัวที่ส่วนท้ายของข้อมูล
www.pcbc.ac.th
Data Communication and Networks
LOGO
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
.
ตัวอย่าง
1. สมมุติวา่ ในการรับส่ งข้อมูลใช้การตรวจสอบข้อผิดพลาดแบบ CRC4 ถ้าต้องการส่ ง
ข้อมูล X9 + X7 + X4 + X3 + X2 + X โดยใช้ตวั หาร คือ X4 + X2 + X + 1 จงหาว่าข้อมูล
ทั้งหมด (รวม CRC) ที่ฝั่งส่ งให้ฝั่งรับคืออะไร (พร้อมแสงวิธีทาทั้งฝั่งส่ งฝั่งรับ)
9
7
4
1010011110 = X + X + X
3
2
+X +X +X
4
2
10111 = X + X + X + 1
www.pcbc.ac.th
Data Communication and Networks
วิธีตรวจจับข้ อผิดพลาด (Error Detection Methods)
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
LOGO
การควบคุมการไหลของข้ อมูล (Flow Control)
การสื่ อสารบนเครื อข่าย อาจมีขอ้ ผิดพลาดเกิดขึ้นจากปั จจัยต่างๆ เช่น
สัญญาณรบกวน ทาให้เกิดความไม่สมบูรณ์ระหว่างการสื่ อสาร จึงต้องมีการควบคุมการ
. ไหลของข้อมูล และควบคุมข้อผิดพลาด เนื่องจาก
1. ในกรณี ที่ฝั่งส่ งและฝั่งรับสื่ อสารอยูบ่ นความเร็ วที่แตกต่างกัน
2. หากเฟรมข้อมูลที่ส่งเกิดความเสี ยหาย หรื อสู ญเสี ย จะทาการสื่ อสารโต้ตอบ
กันได้อย่างไร
3. จะเกิดอะไรขึ้น หากฝั่งรับไม่ได้รับข่าวสารที่ส่งมา
4. จะเกิดอะไรขึ้น หากเฟรมข้อมูลของฝั่งส่ งเกิดความเสี ยหาย
การควบคุมการไหลของข้ อมูล (Flow Control) ?
www.pcbc.ac.th
Data Communication and Networks
LOGO
การควบคุมการไหลของข้ อมูล (Flow Control)
การควบคุมการไหลของข้อมูล เป็ นวิธีการควบคุมการส่ งข้อมูลจากผูส้ ่ งไปยัง
ผูร้ ับ เพื่อไม่ให้ขอ้ มูลถูกส่ งออกไปมากเกินกว่าที่ผรู ้ ับจะสามารถรับได้ เนื่องมาจาก ผูส้ ่ ง
. และผูร้ ับมีอตั ราเร็ วในการรับส่ งข้อมูลไม่เท่ากัน อาจทาให้ขอ้ มูลสู ญหายได้
ตัวอย่างเช่น การติดต่อระหว่างคอมพิวเตอร์ กบั เครื่ องพิมพ์ ซึ่ งเครื่ องพิมพ์จะมี
บัฟเฟอร์ สาหรับเก็บข้อมูลชัว่ คราว หากผูส้ ่ ง (คอมพิวเตอร์ ) ทาการส่ งข้อมูลไปยังผูร้ ับ
(เครื่ องพิมพ์) โดยข้อมูลมีมากเกินกว่าขนาดของบัฟเฟอร์ จะรองรับได้ จะทาให้บฟั เฟอร์
เต็ม และข้อมูลเกิดการสู ญหายได้
www.pcbc.ac.th
Data Communication and Networks
การควบคุมการไหลของข้ อมูล (Flow Control)
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
LOGO
การควบคุมการไหลของข้ อมูล (Flow Control)
1. การควบคุมการไหลของข้อมูลด้วยวิธีหยุดและรอ (Stop-and-Wait Flow Control)
วิธีน้ ีฝั่งส่ งจะส่ งเฟรมข้อมูลมาให้หนึ่ งเฟรมและรอการตอบ Acknowledge
. (ACK) จากฝั่งรับ เมื่อฝั่งส่ งได้รับสัญญาณ ACK จากฝั่งรับก็จะดาเนิ นการส่ งเฟรมในลาดับ
ถัดไป ดังนั้นแต่ละเฟรมที่ฝั่งส่ งได้ส่งไป จะต้องได้รับการ ACK จากฝั่งรับเสมอ ในกรณี ที่
ฝั่งรับต้องการหยุดการรับข้อมูลชัว่ คราว ก็จะไม่ส่ง ACK กลับไป
www.pcbc.ac.th
Data Communication and Networks
LOGO
การควบคุมการไหลของข้ อมูล (Flow Control)
ข้อเสี ย คือ ความล่าช้า เนื่องจากเฟรมทุกเฟรมที่เดินทางไปยังฝั่งรับต้องได้รับการ
ACK ก่อนเสมอ ฝั่งส่ งจึงจะสามารถส่ งเฟรมลาดับถัดไปได้และหากระยะทางของฝั่งส่ ง
. และฝั่งรับอยูไ่ กลกัน จะต้องเสี ยเวลารอคอยการตอบรับACK ในแต่ละเฟรม ได้มีการ
ปรับปรุ งประสิ ทธิ ภาพของวิธีน้ ี ด้วยการเพิ่มรหัส NAK โดยเป็ นสัญญาณที่ผรู ้ ับจะส่ ง
ให้กบั ผูส้ ่ ง ในกรณี ที่พบข้อผิดพลาดของข้อมูล ซึ่ งเมื่อผูส้ ่ งได้รับสัญญาณ NAK จะส่ ง
ข้อมูลกลับมาให้อีกครั้งทันที
www.pcbc.ac.th
Data Communication and Networks
การควบคุมการไหลของข้ อมูล (Flow Control)
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
LOGO
การควบคุมการไหลของข้ อมูล (Flow Control)
2.การควบคุมการไหลของข้อมูลด้วยวิธีเลื่อนหน้าต่าง (Sliding-Window Flow Control)
วิธีน้ ีฝั่งส่ งสามารถส่ งเฟรมข้อมูลหลายๆ เฟรมก่อนที่จะได้รับการตอบรับ (ACK)
. ดังนั้นการตอบรับ ACKในหนึ่งครั้งจะหมายถึง การได้รับเฟรมมาแล้วหลายเฟรม
- ฝั่งส่ งและฝั่งรับมีเฟรมในการรับและส่ งข้อมูลได้เท่ากัน
- เมื่อฝั่งส่ งส่ งข้อมูลออกไป กรอบจานวนเฟรมจะลดลง และเมื่อฝั่งรับได้รับ
ข้อมูลกรอบจานวนเฟรมของผูร้ ับจะลดลง
- เมื่อผูร้ ับได้รับข้อมูลจะส่ งสัญญาณ ACK กลับไปพร้อมกับหมายเลขเฟรมถัดไป
ที่ฝั่งรับจะรับได้ พร้อมกับเพิม่ กรอบจานวนเฟรมให้เท่าเดิม
- เมื่อฝั่งส่ งได้รับสัญญาณตอบรับ และหมายเลขเฟรมถัดไปแล้ว จะทาการขยาย
ขนาดกรอบจานวนเฟรมให้เท่าเดิม
www.pcbc.ac.th
Data Communication and Networks
การควบคุมการไหลของข้ อมูล (Flow Control)
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
LOGO
การควบคุมข้ อผิดพลาด (Error Control)
1. การควบคุมข้อผิดพลาด
1. ไม่ ต้องดาเนินการใดๆ (Do nothing) จะปล่อยเฟรมข้อมูลที่ผดิ พลาดไป แล้ว
. ให้ช้ นั สื่ อสารที่อยูเ่ หนือกว่าไปจัดการแทน
2. แจ้ งกลับไปให้ ฝั่งส่ งรั บทราบ (Return a message) เพื่อให้ฝั่งส่ งทาการส่ ง
ข้อมูลส่ วนที่เสี ยหายมาให้อีกครั้ง
3. ตรวจแก้ ข้อผิดพลาด (Correct the Error) จะดาเนินการแก้ไขข้อผิดพลาดที่ฝั่ง
รับเอง โดยไม่ตอ้ งให้ฝั่งส่ งส่ งข้อมูลมาใหม่ ซึ่ งเป็ นวิธีที่ซบั ซ้อนกว่าวิธีท้ งั หมด
การควบคุมข้ อผิดพลาด (Error Control)?
www.pcbc.ac.th
Data Communication and Networks
LOGO
การควบคุมข้ อผิดพลาด (Error Control)
2. ชนิดของข้อผิดพลาด
1. เฟรมสู ญหาย (Lost Frame) คือ เฟรมข้อมูลที่ส่งไปไม่ถึงปลายทาง ซึ่ งอาจเกิด
. จากสาเหตุของสัญญาณรบกวนที่ทาให้เฟรมข้อมูลเสี ยหายจนทาให้ฝั่งรับไม่สามารถ
ตีความหรื อไม่ทราบว่าเฟรมนั้นส่ งมาถึง
2. เฟรมชารุ ด (Damage Frame) คือ เฟรมสามารถส่ งไปถึงปลายทาง แต่บิตของ
ข้อมูลบางส่ วนเกิดการเปลี่ยนแปลงระหว่างการส่ ง
www.pcbc.ac.th
Data Communication and Networks
LOGO
การควบคุมข้ อผิดพลาด (Error Control)
เทคนิคการควบคุมข้อผิดพลาด จะอยูบ่ นพื้นฐานของส่ วนประกอบต่างๆ ดังนี้
- การตรวจจับข้ อผิดพลาด ปลายทางจะมีการนาเฟรมที่ได้รับมาทาการตรวจจับ
. ข้อผิดพลาด ด้วยเทคนิควิธีการต่างๆ
- การตอบรั บ ACK ปลายทางจะตอบรับ ACK เมื่อได้รับข้อมูลอย่างสมบูรณ์ โดย
ไม่มีขอ้ ผิดพลาดใดๆ
- การส่ งข้ อมูลรอบใหม่ หลังจากรอจนหมดเวลา (Timeout) ฝั่งส่ งจะทาการ
ส่ งเฟรมข้อมูลรอบใหม่ทนั ที ในกรณี ที่ปลายทางไม่ตอบรับกลับมาภายในเวลาที่
กาหนด ก็คือเกิด Timeout
www.pcbc.ac.th
Data Communication and Networks
การควบคุมข้ อผิดพลาด (Error Control)
- การตอบรั บ NAK และการส่ งข้อมูลรอบใหม่ ปลายทางจะมีการตอบรับ
NAK (Negative Acknowledgement) กลับมาที่ฝั่งส่ ง ในกรณี ที่เฟรมที่ได้รับนั้นเกิด
. ข้อผิดพลาด เมื่อฝั่งส่ งได้รับการตอบรับ NAK ก็จะทราบว่าข้อมูลที่ส่งไปนั้นมี
ข้อผิดพลาด จะดาเนินการส่ งเฟรมข้อมูลไปอีกครั้ง
www.pcbc.ac.th
LOGO
Data Communication and Networks
LOGO
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า
(Error Correction via Retransmission)
- เมื่อมีการตรวจพบข้อผิดพลาด จะต้องดาเนินการแก้ไขโดยวิธีที่ง่ายที่สุด คือ
. การส่ งข้อมูลซา
้
- การส่ งข้อมูลซ้ าจะเกิดขึ้นเมื่อฝั่งรับตรวจพบข้อผิดพลาด แล้วตอบกลับฝั่งส่ ง
ด้วยรหัส NAK เพื่อให้ฝั่งส่ งส่ งเฟรมข้อมูลมาให้ใหม่ เรี ยกกระบวนการนี้ วา่ การร้องขอ
เพื่อส่ งข้อมูลซ้ าอัตโนมัติ (Automatic Repeat Request: ARQ) ซึ่ งช่วยสร้างความน่าเชื่อถือ
ของข้อมูลในชั้นสื่ อสารดาต้าลิงค์
สาหรับรู ปแบบของ ARQ มี 2 วิธีหลัก คือ
- Stop-and-Wait ARQ
- Continuous ARQ
การแก้ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า ?
www.pcbc.ac.th
Data Communication and Networks
LOGO
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า (Stop-and-Wait ARQ)
1. Stop-and-Wait ARQ
เป็ นเทคนิคควบคุมข้อผิดพลาดที่มีกระบวนการทางานแบบง่ายๆ จัดอยูใ่ น
. โปรโตคอลประเภท Stop-and-Wait โดยมีการทางานดังนี้
- ฝั่งส่ งส่ งเฟรมข้อมูลไปยังฝั่งรับ และรอการตอบรับจากฝั่งรับ
- หากเฟรมข้อมูลที่ส่งไปไม่มีขอ้ ผิดพลาด ฝั่งรับจะส่ งสัญญาณมายังฝั่งส่ งด้วย
รหัส ACK
- แต่ถา้ เฟรมข้อมูลเกิดข้อผิดพลาดขึ้น ฝั่งรับจะส่ งสัญญาณกลับมาด้วยรหัส
NAK หรื อ REJ (Reject)
www.pcbc.ac.th
Data Communication and Networks
LOGO
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า (Stop-and-Wait ARQ)
- เมื่อฝั่งส่ งได้รับสัญญาณเป็ นรหัส ACK ก็จะส่ งเฟรมข้อมูลในลาดับถัดไป
- แต่หากได้รับสัญญาณเป็ นรหัส NAK หรื อ REJ ก็จะส่ งเฟรมข้อมูลที่ส่งไป
. ในขณะนั้นไปให้อีกครั้ง
ข้อดี คือ มีกระบวนการทางานแบบง่ายไม่ซบั ซ้อน
ข้อเสี ย คือ ทาให้เกิดการหน่วงเวลาค่อนข้างสู ง เนื่องจากฝั่งส่ งต้องได้รับการ
ตอบรับจากฝั่งรับในทุกๆ ครั้งที่มีการส่ งเฟรมแต่ละเฟรม
www.pcbc.ac.th
Data Communication and Networks
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า (Stop-and-Wait ARQ)
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า (Stop-and-Wait ARQ)
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า (Stop-and-Wait ARQ)
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
LOGO
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า (Stop-and-Wait ARQ)
ทดสอบ
.
ฝั่งส่ ง  ส่ ง frame 0 ไป ฝั่งรับ  ได้รับ และตอบ ACK 1
ฝั่งส่ ง  ส่ ง frame 1 ไป
ฝั่งรับ  ถึงฝั่งรับถูกต้องทุกอย่าง ฝั่งรับตอบ ACK 0 แต่ปรากฏว่า ACK 0 มา
ไม่ถึงฝั่งส่ ง
ฝั่งส่ ง  รอ Time out และเมื่อไม่ได้รับการตอบรับจากฝั่งรับ ฝั่งส่ งก็เข้าใจว่า
ข้อมูลที่ส่งไปอาจจะไปไม่ถึง หายไปกลางทาง ฝั่งส่ งก็จะส่ ง frame 1 ไป ปรากฏว่าฝั่งรับมี
ตัวเลขเป็ นตัวบอก
ฝั่งรับ  ฝั่งรับได้รับ frame 1 แล้ว ทาไมฝั่งส่ งถึงส่ งมาอีก ซึ่ งซ้ า ฝั่งรับก็จะทิ้ง
frame 1 ไป แล้วตอบ ACK 0 ไป เพื่อบอกว่าได้รับ frame 1 แล้วนะ ให้ฝั่งส่ งส่ ง frame 0
มาได้แwww.pcbc.ac.th
ล้ว
Data Communication and Networks
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า (Stop-and-Wait ARQ)
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
ทดสอบ
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
LOGO
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า
2. Continuous ARQ
เป็ นวิธีที่จดั อยูใ่ นโปรโตคอลประเภท Sliding Window ที่ฝั่งส่ งสามารถส่ งข้อมูล
. ไปยังฝั่งรับได้อย่างต่อเนื่อง แต่ละเฟรมที่ส่งไปไม่ตอ้ งรอการตอบรับจากฝั่งรับโดยทันทีทา
ให้มีประสิ ทธิ ภาพดีกว่า
www.pcbc.ac.th
Data Communication and Networks
LOGO
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า (Go-Back-N ARQ)
2.1 Go-Back-N ARQ
วิธีน้ ีฝั่งส่ งสามารถส่ งเฟรมข้อมูลไปยังฝั่งรับได้อย่างต่อเนื่อง แต่ถา้ ฝั่งรับตอบรับ
. ข้อผิดพลาดกลับมายังฝั่งส่ ง ฝั่งส่ งจะย้อนกลับไปยังตาแหน่งเฟรมที่ผดิ พลาด และเริ่ มต้น
ส่ งใหม่ต้ งั แต่เฟรมที่ผิดพลาดอีกครั้ง ถึงแม้วา่ จะมีเฟรมที่ส่งล่วงหน้าไปแล้วก็ตาม
n
สู ตรการหา Windows Size = 2 - 1
www.pcbc.ac.th
Data Communication and Networks
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า (Go-Back-N ARQ)
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า (Go-Back-N ARQ)
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า (Go-Back-N ARQ)
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
LOGO
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า (Go-Back-N ARQ)
ทดสอบ
ฝั่งส่ งส่ ง Frame 0
.
ฝั่งรับ Acknowledge
ฝั่งส่ งส่ ง Frame 1, Frame 2 และฝั่งรับ Acknowledge
ฝั่งส่ งส่ ง Frame 3, Frame 4, Frame 5 ฝั่งรับ Acknowledge Frame 4 จากนั้นหมด
เวลาสาหรับการรอ Acknowledge ของ Frame 5
ฝั่งส่ งส่ ง Frame 5,Frame 6, Frame 7 ฝั่งรับ Acknowledge
www.pcbc.ac.th
Data Communication and Networks
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
ทดสอบ 1
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
ทดสอบ 2
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
LOGO
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า
2.2 Selective-Reject ARQ
วิธีน้ ีคล้ายกับแบบ Go-Back-End ARQ แต่มีประสิ ทธิ ภาพมากกว่า โดยฝั่งส่ งจะ
. ส่ งเฉพาะเฟรมที่ผิดพลาดกลับไปเท่านั้น ส่ วนเฟรมที่จะส่ งในลาดับถัดไป สามารถเริ่ มต้น
ถัดจากเฟรมที่ส่งล่วงหน้าไปได้ทนั ที
Selective Repeat หรื อเรี ยกว่า Selective Reject หลักการคือ Error ที่ Frame ไหน
ให้ส่งกลับมาเฉพาะ Frame นั้น
ขนาดของ Window ทั้งฝั่งส่ งและฝั่งรับจะต้องมี ถ้ามีจานวน Frame = n บิต เช่น
- ถ้า n เป็ น 2 คือ 4 Frame จะมี Windows size ได้ไม่เกิน 2 (4/2 = 2)
- ถ้า n เป็ น 3 คือ 8 Frame จะมี Windows size ได้ไม่เกิน 4 (8/2 = 4)
สู ตรการหา Windows Size = (2n / 2)
www.pcbc.ac.th
Data Communication and Networks
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า (Selective-Reject ARQ )
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
LOGO
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า (Selective-Reject ARQ )
เป็ นการรับส่ งข้อมูลระหว่างสถานีที่ขอ้ มูลตรงกลางเฟรมข้อมูลทั้งหมด เกิดสูญหาย
1. ฝั่งส่ งส่ งเฟรม 0,1,2,3 ไปยังฝั่งรับ
.
2. ฝั่งรับตอบรับ ACK4 กลับมายังฝั่งส่ ง
3. ฝั่งส่ งเฟรมข้อมูลต่อเนื่องไปอีกคือ เฟรม 4,5,6,7
4. เฟรมหมายเลข 5 เกิดสู ญหายระหว่างการส่ ง เมื่อฝั่งรับได้รับเฟรมข้อมูล และ
ตรวจพบว่าไม่พบเฟรมหมายเลข 5 ดังนั้นจึงส่ งรหัส NAK5 กลับไป
5. ฝั่งส่ งได้รับรหัส NAK5 กลับมา ทาการส่ งเพียงเฟรมข้อมูลที่สูญหาย
กลับไปให้เท่านั้น และเฟรมถัดไปที่ส่งก็คือ เฟรมหมายเลข 0,1
*Window
size 4 บิต ได้ไม่เกิน 8 (16/2 = 8)
www.pcbc.ac.th
Data Communication and Networks
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
การแก้ ไขข้ อผิดพลาดโดยการส่ งข้ อมูลซ้า (Selective-Reject ARQ )
เป็ นการรับส่ งข้อมูลระหว่างสถานีที่มีเฟรมข้อมูลสู ญหาย
1. ฝั่งส่ งส่ งเฟรม 0,1,2,3 ไปยังฝั่งรับ แต่เฟรมสุ ดท้ายสู ญหาย
.
2. ฝั่งรับตอบกลับรหัส ACK3 กลับมา แต่วา่ มาไม่ถึงฝั่งรับ
3. หลังจาก Time out ฝั่งส่ งส่ งรหัส RR เพื่อถามเกี่ยวกับเฟรมที่ยงั คัง่ ค้าง
4. ฝั่งรับตอบกลับมาว่า ต้องการเฟรมหมายเลข 3
5. ฝั่งส่ งจึงส่ งเฟรมข้อมูลที่สูญหาย คือ เฟรม 3 ไปอีกรอบ
www.pcbc.ac.th
LOGO
Data Communication and Networks
.
www.pcbc.ac.th
LOGO
Data Communication and Networks
ทดสอบ
.
www.pcbc.ac.th
LOGO