Data Link Layer.

Slides:



Advertisements
งานนำเสนอที่คล้ายกัน
ระบบสมการเชิงเส้น F M B N เสถียร วิเชียรสาร.
Advertisements

ชนิดของข้อมูลในโปรแกรม Interactive C
Introduction to C Introduction to C.
การประยุกต์ Logic Gates ภาค 2
ระบบเลขฐานสอง โดย นางสาวภาณุมาศ นักษัตรมณฑล รหัสนิสิต
DSP 6 The Fast Fourier Transform (FFT) การแปลงฟูริเยร์แบบเร็ว
EEET0485 Digital Signal Processing Asst.Prof. Peerapol Yuvapoositanon DSP3-1 ผศ.ดร. พีระพล ยุวภูษิตานนท์ ภาควิชา วิศวกรรมอิเล็กทรอนิกส์ DSP 6 The Fast.
บทที่ 12 การวิเคราะห์การถดถอย
การแทนค่าข้อมูล และ Primary Storage (Memory)
CS Assembly Language Programming
ชนิดของข้อมูลและตัวดำเนินการ
Number System[1] เลขฐาน & ASCII CODE Number System[1]
Department of Informatics, Phuket Rajabhat University. THAILAND
การประยุกต์สมการเชิงเส้นตัวแปรเดียว
จำนวนจริง F M B N ขอบคุณ เสถียร วิเชียรสาร.
Data Link Control Error Detection and Correction
Week 6 ประกาศค่าตัวแปร.
ASCII รหัสแอสกี (ASCII Code) หรือ American Standard Code for Information Interchange เป็นรหัสที่ มีการใช้แพร่หลายกันมากที่สุด เช่น ในไมโครคอมพิวเตอร์
NUMBER SYSTEM เลขฐานสิบ (Decimal Number) เลขฐานสอง (Binary Number)
Computer&Technology Mahidol Wittayanusorn School
EEE 271 Digital Techniques
Digital Logic and Circuit Design
Number Representations
ระบบเลข และการแทนรหัสข้อมูล
มิสกมลฉัตร อู่ศริกุลพานิชย์ กลุ่มสาระการเรียนรู้คณิตศาสตร์
Digital Data Communication Technique
C Programming Lecture no. 6: Function.
การออกแบบโปรแกรมอย่างมีโครงสร้าง Structured Design
วิธีการทำงานของผังงาน
อาจารย์ ถนอม ห่อวงศ์สกุล
Introduction to Digital System
การเขียนโปรแกรมเชิงวัตถุ ด้วยภาษาจาวา
คณิตศาสตร์ แสนสนุก.
การเขียนโปรแกรมคอมพิวเตอร์และอัลกอริธึม
จำนวนทั้งหมด ( Whole Numbers )
ระบบจำนวนเต็ม โดย นางสาวบุณฑริกา สูนานนท์
บทที่ 3 ชนิดของข้อมูลและตัวดำเนินการ
ERROR (Data Link Layer)
โรงเรียนวชิรธรรมสาธิต
สัปดาห์ที่ 7 การแปลงลาปลาซ The Laplace Transform.
เรื่องข้อมูลและสาระสนเทศ
Linked List (ลิงค์ลิสต์)
พีชคณิตบูลีน Boolean Algebra.
ตัวแปร ชนิดข้อมูล และ ตัวดำเนินการใน PHP
Synchronization น.ส.จิรภัทร ทองนพคุณ รหัสนิสิต กลุ่ม 1 Operating System.
ระบบคอมพิวเตอร์และการประมวลผล
วิทยา กรระสี (วท.บ. วิทยาการคอมพิวเตอร์)
Lab 1 – 2 Protocols Guideline.
หลักการเขียนโปรแกรม ( )
ค21201 คณิตศาสตร์เพิ่มเติม 1
ชนิดของข้อมูล 1) ข้อมูลที่เป็นตัวเลข (Numeric Data) หมายถึง ข้อมูลที่ใช้แทนจำนวนที่สามารถนำ ไปคำนวณได้ ข้อมูลแบบนี้เขียนได้หลายรูปแบบ คือ           ก.
ง เทคโนโลยีสารสนเทศและการสื่อสาร ระบบเลขฐาน
เรื่องการประยุกต์ของสมการเชิงเส้นตัวแปรเดียว
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
การสร้างแบบสอบถาม และ การกำหนดเงื่อนไข.
บทที่ 9 การจัดการข้อมูล การตรวจสอบความผิดพลาดในการส่งข้อมูล
School of Information Communication Technology,
หลักการเขียนโปรแกรม ( )
รหัสคอมพิวเตอร์.
หลักการเขียนโปรแกรม ( )
ง31102 เทคโนโลยีสารสนเทศ 2 ศูนย์คอมพิวเตอร์ โรงเรียนปลวกแดงพิทยาคม
ระบบเลขจำนวน ( Number System )
หน่วยการเรียนรู้ที่ 7 ความรู้เบื้องต้นเกี่ยวกับจำนวนจริง
วิธีเรียงสับเปลี่ยนและวิธีจัดหมู่
ตัวแปร และชนิดข้อมูล.
การเตรียมข้อมูล (Data preparation)
อาจารย์อภิพงศ์ ปิงยศ บทที่ 5 : การตรวจจับข้อผิดพลาด การควบคุมการไหลของข้อมูล และการควบคุมข้อผิดพลาด Part2 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ.
อาจารย์อภิพงศ์ ปิงยศ บทที่ 5 : การตรวจจับข้อผิดพลาด การควบคุมการไหลของข้อมูล และการควบคุมข้อผิดพลาด Part1 สธ313 การสื่อสารข้อมูลและเครือข่ายคอมพิวเตอร์ทางธุรกิจ.
N I T DATA. N I T DATA Data Link Layer Flow Control 1. Stop-and-Wait Flow Control 2. Sliding-Window Flow Control.
ใบสำเนางานนำเสนอ:

Data Link Layer

Position of the data-link layer

Error Detection and Correction

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

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

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

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

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

Redundancy

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

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

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

ตัวอย่าง 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) ดังนั้นแสดงว่าข้อมูลถูกต้อง

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

Two-dimensional parity

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

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

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

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

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

Figure 3.9 Binary division in CRC checker

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

Table 3.1 Standard polynomials Name Polynomial Application CRC-8 x8 + x2 + x + 1 ATM header CRC-10 x10 + x9 + x5 + x4 + x 2 + 1 ATM AAL ITU-16 x16 + x12 + x5 + 1 HDLC ITU-32 x32 + x26 + x23 + x22 + x16 + x12 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x + 1 LANs

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

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

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

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

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

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

Forward Error Correction Retransmission Forward Error Correction

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

Number of redundancy bits r Table 3.2 Data and redundancy bits Number of data bits m Number of redundancy bits r Total bits m + r 1 2 3 5 6 4 7 9 10 11

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

Figure 3.14 Positions of redundancy bits in Hamming code

Figure 3.15 Redundancy bits calculation

Figure 3.16 Example of redundancy bit calculation

Figure 3.17 Error detection using Hamming code

Data Link Control

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

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

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

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

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

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

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

Window ฝั่งผู้รับ

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

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

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

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

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

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

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