งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

Data Link Layer. Position of the data-link layer.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "Data Link Layer. Position of the data-link layer."— ใบสำเนางานนำเสนอ:

1 Data Link Layer

2 Position of the data-link layer

3 Error Detection and Correction

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

5 ชนิดของความผิดพลาด Types of Error ความผิดพลาดแบบบิตเดียว Single-Bit Error ความผิดพลาดแบบหลายบิต Burst Error

6 ความผิดพลาดแบบบิตเดียว มีเพียงแค่บิตเดียว ที่มีการเปลี่ยนแปลง เช่น จากรูป ผู้ส่งต้องการส่งข้อมูล 00000010 แต่ ผู้รับได้รับข้อมูล 00001010

7 ความผิดพลาดแบบหลายบิต มี 2 บิต หรือมากกว่า ที่มีการเปลี่ยนแปลง เช่น จากรูป มีความผิดพลาดที่มีความยาว 8 บิต โดยนับจากบิตแรกที่ผิดพลาด จนถึง บิตสุดท้ายที่ผิดพลาด

8 Error Detection and Correction เพื่อตรวจสอบและแก้ไขข้อมูลที่ผิดพลาด จึงมี การส่งบิตพิเศษไปพร้อมกับบิตข้อมูล

9 Redundancy

10 การตรวจสอบความผิดพลาดของข้อมูลDetection การตรวจสอบความผิดพลาดของข้อมูล Detection วิธีในการตรวจสอบความผิดพลาดของข้อมูลมี ดังต่อไปนี้

11 วิธีตรวจสอบแบบพาริตี้ (Parity Check) Simple Parity Check ใช้บิตตรวจสอบ หรือ พาริตี้ (parity bit) ส่งไปพร้อมกับ บิตข้อมูลจริง โดยการนับจำนวนของบิต 1 ทั้งหมด พาริตี้คู่ (even-parity) พาริตี้คี่ (odd-parity) Two-Dimensional check นำบิตของข้อมูลที่ต้องการส่งออกไปมาทำเป็นตาราง (table) โดยจะคำนวณหาพาริตี้บิตทั้งแนวนอน (row) และแนวตั้ง (column)

12 พาริตี้คู่ (Even-parity) ตรวจสอบว่าบิต 1 เป็น จำนวนคู่ใช่หรือไม่

13 ตัวอย่าง 1 สมมติว่า ผู้ส่งต้องการส่งคำว่า World โดยสามารถแปลงเป็น ASCII ได้ ดังนี้ 1110111 1101111 1110010 1101100 1100100 เมื่อมีการเพิ่มพาริตี้บิตให้เป็นพาริตี้คู่ (จำนวนบิต 1 เป็นคู่) เข้าไป จะได้ ดังนี้ 11101110 11011110 11100100 11011000 11001001 ตัวอย่าง 2 จากตัวอย่าง 1 เมื่อผู้รับได้รับข้อมูลที่ไม่มีความผิดพลาด 11101110 11011110 11100100 11011000 11001001 ทำการนับจำนวนบิต 1 ในแต่ละข้อมูลตัวอักษร จะได้เป็นจำนวนคู่ทั้งหมด (6,6,4,4,4) ดังนั้นแสดงว่าข้อมูลถูกต้อง

14 Example 3 จากตัวอย่าง 1 เมื่อผู้รับได้รับข้อมูลที่มีความผิดพลาด 11111110 11011110 11101100 11011000 11001001 ทำการนับจำนวนบิต 1 ในแต่ละข้อมูลตัวอักษร จะได้เป็น(7,6,5,4,4) ดังนั้นแสดงว่าข้อมูลมีความผิดพลาดเกิดขึ้น ผู้รับจะทำการยกเลิก และมีการส่งซ้ำอีกครั้ง * ในการตรวจสอบแบบ Simple parity check สามารถตรวจสอบได้ เพียงความผิดพลาดแค่บิตเดียวเท่านั้น

15 Two-dimensional parity

16 ตัวอย่าง 4 สมมติว่ามีบล็อกข้อมูลที่ต้องการส่งมีดังนี้ 10101001 00111001 11011101 11100111 10101010 เมื่อข้อมูลมีความผิดพลาดแบบหลายบิตเกิดขึ้น (8 บิต) 10100011 10001001 11011101 11100111 10101010 ผู้รับทำการตรวจสอบพาริตี้บิต โดยมีบางบิตที่ไม่เข้ากฎของพาริตี้คู่ ทำให้บล็อกข้อมูลทั้งถูกยกเลิก 10100011 10001001 11011101 11100111 10101010

17 วิธีตรวจสอบแบบ Cyclic Redundancy Check (CRC) มีประสิทธิภาพสูงกว่าวิธีตรวจสอบแบบพาริตี้และใช้ หลักการทำงานที่แตกต่างกัน วิธีตรวจสอบแบบพาริตี้จะใช้การบวก แต่แบบ CRC จะใช้การหาร แบบพาริตี้สามารถแทรกบิตตรวจสอบลงในข้อมูล ได้ แต่แบบ CRC จะต้องนำบิตตรวจสอบไปต่อท้ายของข้อมูล

18 CRC generator and checker ถ้าเศษในการหารเป็น 0 แสดงว่าข้อมูลถูกต้อง แต่ถ้าไม่ใช่ 0 แสดงว่า ข้อมูลผิดพลาด

19 สรุปวิธีหาบิตตรวจสอบ 1.ถ้าตัวหารมีจำนวนบิตเท่ากับ n+1 บิตแล้วจะต้องเติมบิต 0 จำนวน n ตัวที่ส่วนท้ายของข้อมูล 2.ใช้บิตข้อมูลลบด้วยตัวหาร (ใช้วิธี XOR) เมื่อลบแล้วผลที่ได้จาก การลบ ถ้า บิตซ้ายสุดของเศษเป็น 1 ให้นำตัวหารมาเป็นตัวลบอีกครั้ง บิตซ้ายสุดของเศษเป็น 0 ให้นำ 0000 มาเป็นตัวลบ 3.ทำในข้อ 2 จนกระทั่งไม่สามารถลบกันได้อีกแล้ว (จำนวนบิต ของเศษน้อยกว่าจำนวนบิตของตัวหาร)จะถือได้ว่าเศษที่ได้จาก การหารนั้นคือ บิตตรวจสอบ 4.นำบิตตรวจสอบที่ได้ไปแทนที่บิต 0 จำนวน n ตัวที่ส่วนท้าย ของข้อมูล

20 Binary division in a CRC generator Modulo -2 (XOR) 0 – 0 = 0, 0 – 1 = 1, 1 – 0 = 1, 1 – 1 = 0

21 Figure 3.9 Binary division in CRC checker

22 Polynomial ปกติแล้วในการแทนบิตข้อมูลของตัวหารจะไม่ใช้รูป ของเลขฐานสอง เนื่องจากค่อนข้างยาวและจำได้ยาก แต่จะเขียนให้อยู่ในรูปของโพลิโนเมียล

23 Table 3.1 Standard polynomials NamePolynomialApplication CRC-8x 8 + x 2 + x + 1ATM header CRC-10x 10 + x 9 + x 5 + x 4 + x 2 + 1ATM AAL ITU-16x 16 + x 12 + x 5 + 1HDLC ITU-32 x 32 + x 26 + x 23 + x 22 + x 16 + x 12 + x 11 + x 10 + x 8 + x 7 + x 5 + x 4 + x 2 + x + 1 LANs

24 Figure 3.12 Checksum ถ้าผลลัพธ์สุดท้าย เป็น 0 แสดงว่า ข้อมูลถูกต้อง

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

26 ตัวอย่าง 7 สมมติให้บล็อกข้อมูลทั้งหมดมีขนาด 16 บิต โดยแบ่งออกเป็นบล็อก ละ 8 บิต เพื่อส่งไปยังผู้รับ 10101001 00111001 บวกตัวเลขแบบ 1’s complement 10101001 00111001 ------------ Sum 11100010 Checksum 00011101 ข้อมูลที่จะส่งไป คือ 10101001 00111001 00011101

27 Checksum ฝั่งผู้รับ รวบรวมข้อมูลแต่ละเซ็กเมนต์ๆ ละ n บิต นำข้อมูลของทุกเซ็กเมนต์มาบวกกันด้วยวิธีการแบบ 1’s complement นำผลรวมของทุกเซ็กเมนต์มาทำคอมพลีเมนต์ ถ้าผลลัพธ์ที่ได้เท่ากับ 0 แสดงว่าข้อมูลชุดนั้นถูกต้อง แต่ถ้า ผลลัพธ์ที่ได้ไม่เท่ากับ 0 แสดงว่าข้อมูลชุดนั้นมีความผิดพลาด

28 ตัวอย่าง 8 สมมติว่าผู้รับได้รับข้อมูลจากตัวอย่าง 7 และ ไม่มีความผิดพลาด 10101001 00111001 00011101 ผู้รับทำการบวกตัวเลขแบบ 1’s complement จะได้เป็นบิต 1 ทั้งหมด แล้วทำการ complement อีกครั้งจะได้ค่าเป็น 0 แสดงว่า ข้อมูลไม่มีความผิดพลาด 10101001 00111001 00011101 Sum11111111 Complement 00000000

29 ตัวอย่าง 9 สมมติว่ามีความผิดพลาดของข้อมูลจากตัวอย่าง 7 ดังนี้ 10101111 11111001 00011101 ทำการคำนวณ 10101111 11111001 00011101 Partial Sum 111000101 Carry 1 Sum11000110 Complement 00111001 ผลลัพธ์ไม่เป็น 0 แสดงว่า ข้อมูลมีความผิดพลาด

30 การแก้ไขความผิดพลาดของข้อมูลCorrection การแก้ไขความผิดพลาดของข้อมูล Correction Retransmission Forward Error Correction

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

32 Table 3.2 Data and redundancy bits 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 410 7 411

33 Hamming Code วิธีในการกำหนดว่าบิตตรวจสอบควรจะต้องตรงไหนบ้าง ซึ่งจะ แตกต่างกับหัวข้อก่อนหน้านี้ที่ว่าบิตตรวจสอบจะต้องอยู่ ส่วนท้ายของข้อมูล

34 Figure 3.14 Positions of redundancy bits in Hamming code

35 Figure 3.15 Redundancy bits calculation

36 Figure 3.16 Example of redundancy bit calculation

37 Figure 3.17 Error detection using Hamming code

38 Data Link Control

39 Flow and Error Control การควบคุมอัตราการไหลของข้อมูล (Flow Control) การควบคุมความผิดพลาดของข้อมูล (Error Control)

40 กลไกในการควบคุมอัตราการไหลและความผิดพลาด ARQ (automatic repeat request ) protocols Stop - and – Wait Go - Back – N Selective - Repeat

41 Stop-and-Wait ARQ การทำงานโดยทั่วไป คือ ผู้ส่งหยุดรอจนกว่าจะได้รับ ACK (acknowledge) ถึงจะส่งข้อมูลต่อไป

42 Stop-and-Wait ARQ, เมื่อมีการสูญหายของ Frame ข้อมูล

43 Stop-and-Wait ARQ, เมื่อมีการสูญหายของ ACK ยกเลิกข้อมูล Frame 1 และรอ รับ Frame 0

44 Stop-and-Wait ARQ, delayed ACK ยกเลิกข้อมูล Frame 1 และรอรับ Frame 0 ยกเลิก

45 Go-Back-N ARQ วิธีการคือ ส่งข้อมูลเป็นชุดข้อมูลแบบ Window Window ฝั่งผู้ส่ง

46 Window ฝั่งผู้รับ

47 ตัวแปรควบคุม

48 Go-Back-N ARQ, แบบทั่วไป

49 Go-Back-N ARQ, เมื่อมี Frame ข้อมูลสูญหาย ยกเลิก Frame 3

50 Go-Back-N ARQ: ปัญหาเกี่ยวกับขนาดของ Window ฝั่งผู้ส่ง ขนาด Window ฝั่งผู้ส่งจะต้องน้อยกว่า 2 m, Window ฝั่งผู้รับเป็น 1 เสมอ

51 Selective-Repeat ARQ วิธีการ คล้ายกับ Go-Back-N แต่ Window มีขนาด เท่ากัน

52 Selective Repeat ARQ, เมื่อ frame ข้อมูลสูญหาย

53 Selective Repeat ARQ, ปัญหาเกี่ยวกับขนาดของ Window ฝั่งผู้ส่ง ขนาด Window ทั้งสองฝั่งจะต้องเป็น 2 m-1


ดาวน์โหลด ppt Data Link Layer. Position of the data-link layer.

งานนำเสนอที่คล้ายกัน


Ads by Google