1 / 43

The Datalink Layer

The Datalink Layer. อาจารย์ นัณฑ์ศิ ตา ชูรัตน์.

Download Presentation

The Datalink Layer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. The Datalink Layer อาจารย์นัณฑ์ศิตา ชูรัตน์

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

  3. บริการในชั้น Data Link) ในการติดตอสื่อสารระหวางตนทางและปลายทางนั้น เสนทางการสื่อสารจะเริ่มจาก Host ตนทางไป ยัง Host ปลายทางโดยผานไปยัง router ตางๆ ในเครือขาย และไปสิ้นสุดที่ host ปลายทาง ดังรูป 5.1 โดย เรียก host และ router ตางๆ วา โหนด (node) และเรียกชองทางการสื่อสารที่เชื่อมตอระหวางโหนด (โหนดซึ่งอยูในเสนทางการสื่อสาร) วา link โดยมี data link layer รับผิดชอบในการสง datagram ขามในแตละ link

  4. หน้าที่ความรับผิดชอบของ Data Link Layer • จัดรูปแบบข้อมูลให้อยู่ในลักษณะของ เฟรม (Frame) • กำหนดตำแหน่ง Physical Address ของผู้รับและผู้ส่งไว้ในเฟรมข้อมูล • ควบคุมการไหลของข้อมูลระหว่างผู้ส่งและผู้รับให้สัมพันธ์กัน (Flow Control) • การควบคุมข้อผิดพลาด (Error Control) • การควบคุมการเข้าถึงลิงก์ของอุปกรณ์เครือข่าย (Access Control)

  5. Framing and link access: protocol ใน link layer ตองทําการ encapsulate datagram ของ network layer ใหกลายเปน frame ของ link layer กอนทําการสงไปบน link โดย frame นั้น ประกอบดวยdata field (จะเก็บ datagramของ network layer ไว) และ header field อีกจํานวน หนึ่ง (รวมทั้ง header และ trailer) protocol ใน link layer มีโครงสรางframe ที่เฉพาะและแตกตาง กันไปตามลักษณะการใชงาน บางครั้ง frame header จะมี field สําหรับแตละโหนดเรียกวา physical address ใชบอก address ซึ่งแตกตางกับ address ใน network layer

  6. Flow control: การควบคุมการไหลของข้อมูล คือ กลุ่มของวิธีการที่จะบอกฝ่ายส่งว่าจะสามารถส่งข้อมูลจำนวนเท่าใด ก่อนที่จะได้การรับรอง (Acknowledgment) จากฝ่ายรับ โดยการควบคุมนี้จะต้องไม่ให้ฝ่ายรับเกิดการรับข้อมูลจนท่วมล้น เนื่องจากอุปกรณ์ทางฝ่ายรับอาจมีความเร็วที่ค่อนข้างจำกัดเพื่อปองกันไมใหผูสงทําการสงขอมูลมากเกินกวาที่ผูรับจะสามารถรับได เนื่องจาก ในแตละโหนดจะมีขนาดของ buffer ที่จํากัด ถาผูรับไดรับ frame ในอัตราซึ่งเร็วเกินกวาที่จะสามารถประมวลผลได ก็จะทําให frame นั้นเกิดการสูญหายไปได ถ้าผู้รับและผู้ส่งมีอัตราในการรับและส่งข้อมูลไม่เท่ากัน อาจจะทำให้เกิดการสูญหายของข้อมูลได้ เช่น การติดต่อระหว่างคอมพิวเตอร์ กับ เครื่องพิมพ์

  7. สำหรับประเภทของการควบคุมการไหลของข้อมูลนี้ สามารถแบ่งออกได้เป็น 2 ประเภทด้วยกัน คือ 1.Stop-and-Wait Flow Control 2.Sliding-Window Flow Control

  8. Stop-and-Wait Flow Control วิธีนี้ฝ่ายส่งจะส่งเฟรมข้อมูลมาให้หนึ่งเฟรม และรอการตอบ Acknowledge (ACK) จากฝ่ายรับ เมื่อฝ่ายรับส่งได้รับการตอบรับ ACK จากฝ่ายรับแล้ว ก็เปรียบเสมือนกับการตอบรับ ‘OK’ ว่าได้รับเรียบร้อยแล้ว ฝ่ายส่งก็จะดำเนินการส่งเฟรมในลำดับถัดไป ข้อดีของ Stop and Wait -ใช้งานได้ดีกับการส่งข้อมูลที่มีจำนวนน้อย ข้อเสียของ Stop and Wait -ใช้เวลานานในการส่งข้อมูล

  9. Sliding-Window Flow Control วิธีการควบคุมของข้อมูลแบบเลื่อนหน้าต่างนี้ ฝ่ายส่งจะสามารถส่งเฟรมข้อมูลหลายๆ เฟรมก่อนที่จะได้รับการตอบรับ กล่าวคือฝ่ายรับจะมีการตอบรับกลับไปเพียงบางเฟรมเท่านั้น ดังนั้น การตอบรับ ACK ในหนึ่งครั้ง จะหมายถึงการได้รับเฟรมมาแล้วหลายเฟรมนั้นเอง ซึ่งเป็นวิธีที่มีประสิทธิภาพสูงกว่าแบบแรก

  10. กำหนดให้มีข้อมูลจำนวน 7 เฟรม คือ เฟรมที่ F0 - F6

  11. ข้อดี ของวิธีนี้ คือ ส่งได้เร็ว เนื่องจากการส่งแบบนี้จะส่งได้ทีละหลายๆ เฟรม ข้อเสีย ของวิธีนี้ คือ ถ้าผู้รับส่ง ACK ก่อนที่จะได้รับข้อมูล ตัวผู้ส่งก็จะส่งข้อมูลเดิมซํ้าหลายๆ เฟรม จะทำให้ผู้รับ รับข้อมูลซํ้าๆ Sliding Window เมื่อเกิด Error มีวิธีจัดการ 2 วิธี 1. Selective Repeat(ถ้ามี error เฟรมใดเมื่อผู้ส่งหมดเวลารอ) สัญญาณACK ก็จะส่งเฟรมนั้นมาใหม่ส่วนเฟรมถัดไปที่ส่งมาล่วงหน้านั้นยังเก็บอยู่ใน buffer ของผู้รับซึ่งสามารถนำมาเรียงตามลำดับนำไปใช้ได้ 2. Go-Back Nเมื่อมีเฟรม error หรือมีปัญหา ผู้ส่งหมดเวลารอสัญญาณ ACK และก็จะทำการส่งเฟรมตั้งแต่เฟรมที่ เสีย หรือ error นั้นมาให้ใหม่ทั้งหมดส่วนเฟรมที่ส่งมาก่อนหน้านี้ก็จะทำการตัดทิ้งไป

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

  13. Error DetectionTechniques(ต่อ) สิ่งเหล่านี้จะส่งผลกระทบต่อข้อมูลที่ก่อให้เกิดการเปลี่ยนแปลงไปจากเดิม ดังนั้นจึงจำเป็นต้องมีกลไก ในการตรวจจับและแก้ไขข้อผิดพลาดที่อาจเกิดขึ้น ซึ่งตามปกติ การตรวจจับข้อผิดพลาดและการแก้ไข (Detection and Correction) มีการนำมาใช้งานในลำดับชั้น Data Link Layer และ ลำดับชั้น Transport Layerในแบบจำลอง OSI

  14. Error detection ผูรับอาจจะตีความหมายของ bit ใน frame ที่ไดรับมาผิดพลาดไดซึ่งอาจจะเกิด มาจากสัญญาณออน และการรบกวนของคลื่นแมเหล็กไฟฟา ดังนั้น protocol ใน link layer จึงตองมีกลไกเพื่อ detect การเกิด error โดยเซตคา error detection bit เขาไปใน frame เพื่อใหผูรับ สามารถทําการ check error ได

  15. Error Detection And Recovery Techniques Parity bit • One additional bit per character • Can use • Even parity • Odd parity • Cannot handle error that changes two bits หมายความว่า ถ้าบิตผิดลพลาดเกิน 2 บิตขึ้นไปก็ไม่สามารถตรวจสอบได้

  16. การใช้บิตตรวจสอบ Parity Bit เป็นวิธีหรือเทคนิคการตรวจจับข้อผิดพลาดอย่างง่าย โดยจะใช้ parity bit ซึ่งประกอบไปด้วยเลข 0 หรือ 1 ที่ปะท้ายเพิ่มเข้ามาอีกหนึ่งบิตเพื่อใช้เป็นบิตตรวจสอบ โดยมีวิธีการตรวจสอบอยู่ 2 วิธีคือ • even parity • Odd parity

  17. Example Ex 1 0100110 (Even Parity) Sol: 1. เติมบิต 1 เข้าไปเพื่อให้เป็นบิตคู่ (นับเลข 1) จะได้ 01001101

  18. Example 2. ปลายทางก็ให้ตรวจสอบโดยใช้วิธีเดียวกัน คือ Even Parity Ex 20100110 (Odd Parity) (ก็ให้ทำในทำนองเดียวกัน)

  19. Test Even Parity 1. 0101010 2. 0110000 3. 0111111 01010101 01100000 01111110

  20. Test Odd Parity 1. 0101010 2. 0110000 3. 0111111 01010100 01100001 01111111

  21. ข้อเสียของ Parity Check การตรวจสอบจะไม่พบข้อผิดพลาดเลย หากบิตข้อมูลเกิดผิดพลาดจำนวน 2 บิต หรือเกิดข้อผิดพลาดหลาย ๆ บิตที่เป็นบิตคู่ เช่น 2, 4, 6 เช่น

  22. 0 1 0 0 1 1 0 1 Even Parity: Sender : 0 1 0 0 1 1 0 0 1 0 0 1 1 0 1 Receiver : 0 1 0 0 1 1 0 1 0 1 0 0 0 0 0 1 01 0 0 0 0 0 1

  23. Error Detection And Recovery Techniques (continued) Checksum • มีประสิทธิภาพมากกว่า Parity Check • ใช้ Over head มากกว่า Parity Check • Compute and send arithmetic sum • Handles multiple bit errors • Cannot handle all errors

  24. Error Detection And Recovery Techniques (continued) วิธีการหาผลรวมหรือเรียกว่า Check sum นี้ จัดเป็นอีกวิธีหนึ่งของเทคนิคการตรวจสอบข้อผิดพลาดที่มีประสิทธิภาพสูงกว่า การใช้บิตตรวจสอบ (Parity Bit Check)แต่จำเป็นต้องใช้ Overhead ที่มากกว่าแบบมากกว่าแบบ Parity Bit Check วิธี check sum นี้ฝ่ายส่งจะคำนวณหาผลรวมของข้อมูล และส่งไปพร้อมกับข้อมูล

  25. สรุปการทำงานของ Check Sum • วีธี Check Sum นี้ ฝ่ายส่งจะคำนวณหาผลรวมข้อมูล และส่งไปพร้อมกับข้อมูล • เมื่อฝ่ายรับได้รับข้อมูล ก็จะนำผลรวมนั้นไปตรวจสอบกับข้อมูลที่ได้รับมา ว่าถูกต้องตรงกันหรือไม่ • สำหรับการคำนวณหาผลรวมข้อมูล ก็สามารถทำได้โดยง่าย โดยจะนำค่าของตัวเลขนั้นมารวมกัน และเพื่อให้ง่ายต่อการอธิบาย จึงขอใช้ค่าตัวเลขของรหัส ASCII เป็นตัวอย่าง เช่น

  26. ข้อเสียของ Check sum ถึงแม้ว่าผลรวมที่คำนวณได้นั้น มีค่าตรงก็จริงอยู่ แต่หากค่าของข้อมูลแต่ละตัวได้มีการเปลี่ยนแปลง และเกิดมีผลรวมที่ตรงกัน ก็จะถือว่าตรวจจับไม่พบข้อผิดพลาดเช่นกัน เช่น Ex A: 5 + 6 + 4 + 1 = (0101 + 0110 + 0100 + 0001) = (10000) = 16 B: 4 + 7 + 5 + 0 = (0100 + 0111 + 0101 + 0000) = (10000) = 16

  27. ข้อเสียของ Check sum จากรูป A และ B จะเห็นได้ว่าข้อมูลแต่ละตัวได้เกิดการเปลี่ยนแปลงที่บิตสุดท้าย แต่ผลรวมที่ได้ มีค่าเท่ากับ 16 ซึ่งทำให้ไม่สามารถตรวจจับได้ โดยตำแหน่งของบิตที่เกิดการเปลี่ยนแปลงและก่อให้เกิดข้อผิดพลาดนี้เรียกว่า Vertical Errors

  28. การใช้วิธี CRC (Cyclic Redundancy Check) การใช้วิธี CRC เป็นวิธีหนึ่งที่ได้รับความนิยมใช้งานบนเครือข่าย และ จัดได้ว่าเป็นวิธีที่มีประสิทธิภาพสูงกว่าการใช้บิตตรวจสอบ(Parity Bit) และ การหาผลรวม (Check Sum) เนื่องจากสามารถตรวจจับบิตผิดพลาดได้ครอบคลุมและแน่นอนกว่า โดยเฉพาะ CRC-32 บิต นั้นมีอัตราความแน่นอนหรืออัตราความถูกต้องในการตรวจจับข้อผิดพลาดได้ มากถึง 99.99999998 %

  29. Polynomial Codes หลักการของ CRC จะใช้รหัสโพลีโนเมียล (Polynomial Codes) ซึ่งต้องมีคุณสมบัติดังนี้ 1. บิตซ้ายสุด และบิตขวาสุด จะต้องมีค่าเป็น 1 เสมอ 2. รหัสโพลิโนเมียล จะต้องมีจำนวนบิตที่น้อยกว่าบิตของข้อมูล 3. ลักษณะของโพลิโนเมียลจะเป็นลักษณะแบบ Modulo 2 จะเป็น ในลักษณะ Exclusive-OR นั่นเอง โดยบิตที่นำมาบวกหรือลบกัน หากบิตตรงกัน ผลที่ได้จะเท่ากับ 0 ในขณะที่บิตต่างกัน ผลที่ได้ จะมีค่าเท่ากับ 1

  30. Exclusive or (xor)

  31. วิธีการคำนวณหา สามารถสรุปได้ดังนี้ สูตร คำนวณ M(x) คือเฟรมข้อมูลที่ต้องการส่ง G(x) คือโพลีโนเมียลที่ตั้งขึ้นมา n คือบิตศูนย์ที่เพิ่มเติม ด้วยนำไปแปะท้าย M(x) จำนวนบิต ที่เติม จะพิจารณาจาก ดีกรีของ G(x) R(x) คือผลของเศษที่ได้จากการคำนวณ T(x) คือเฟรมที่ส่งไป โดย T(x) = M(x) + R(x)

  32. Example กำหนดให้ M(x) = 1 1 0 1 0 1 1 0 1 1 G(x) = x 4+ x + 1 จะได้ว่า G(x) = (1*x4)+(0*x3)+(0*x2)+(1*x1)+(1*x0) = 1 0 0 1 1

  33. Example หลังจากที่ได้ค่า G(x)มาแล้วให้นำมาเปรียบเทียบ คุณสมบัติดังนี้ 1.บิตทางซ้ายสุดและบิตทางขวาสุดของ G(x) มีค่าเป็น 1:(T) 2.จำนวนบิตของ G(x) มีน้อยกว่า M(x) : (T) 3.ดีกรีของ G(x) เท่ากับ 4 ดังนั้น n จึงมีค่า เท่ากับ 4 โดยให้เพิ่มบิตศูนย์ จำนวน 4 บิต ต่อท้ายเฟรม M(x) จะได้ 1 1 0 1 0 1 1 0 1 1 0 0 0 0 M(x) n

  34. Example • จากวิธีข้างต้น Frame ที่ถูกส่งไปยังปลายทางก็คือ T(x) = M(x) + R (x) = 1 1 0 1 0 1 1 0 1 11 1 1 0

  35. Example • หลังจากที่ได้ทำการคำนวณ CRC เป็นที่เรียบร้อยแล้ว ฝ่ายส่งก็จะส่ง T(x) ไปยังปลายทาง • เมื่อปลายทางได้รับ frame T(x) ก็จะนำ T(x) ไปหารด้วยโพลิโนเมียล หรือ G(x) ที่เป็นรหัสเดียวกันกับฝ่ายผู้ส่ง โดย ผลลัพธ์จากการคำนวณ T(x)/G(x) จะต้องหารลงตัว หรือมีเศษเป็นศูนย์เสมอแสดงว่าตรวจจับไม่พบข้อผิดพลาด • แต่ถ้าหากผลหารไม่เป็นศูนย์ แสดงว่า ตรวจพบข้อผิดพลาด

  36. กรณีที่ตรวจไม่พบข้อผิดพลาด เนื่องจากเศษมีค่า เท่ากับ “ศูนย์”

  37. กรณีที่ตรวจพบข้อผิดพลาด เนื่องจากเศษมีค่า ไม่เท่ากับ “ศูนย์”

  38. สำหรับในกรณีที่ฝ่ายรับตรวจจับข้อผิดพลาดพบ เช่น frame ข้อมูลที่ส่งไปยังปลายทางได้มีการเปลี่ยนแปลงจำนวนบิต 2 บิตด้วยกันคือ 1 1 0 1 0 1 1 0 1 1 1 0 0 0 ผลจากการหารจะไม่ลงตัว นั่นหมายถึงพบ ข้อผิดพลาดแล้ว

  39. จงคำนวณหา Error Dectectionจากโจทย์ต่อไปนี้ ว่ามี Error หรือไม่ โดยแสดงวิธีทำ ข้อมูล 1010001101 Frame check sum 110101

More Related