วันอังคารที่ 25 สิงหาคม พ.ศ. 2552

Week 9:Data link layer cont.

High-level Data link Control (HDLC)
เป็นโพรโตคอลที่ถูกออกแบบมาให้สามารถสื่อสารได้ทั้งแบบฮาล์ฟดูเพล็กซ์และฟูลดูเพล็กซ์ บนพื้นฐานการเชื่อมโยงอุปกรณ์สื่อสารทั้งแบบจุดต่อจุด(point-to-point) และ แบบหลายจุด (multipoint)หรือ(multidrop) HDLC มีวิธีการสื่อสาร 2 แบบ คือ NRM และ ABM

NRM-(Normal response mode)
เป็นวิธีการสื่อสารที่ต้องมีสถานีหลัก (primary station) 1 สถานี ส่วนสถานีรอง (secondary station) สามารถมีได้หลายสถานี

ABM-(Asynchronous balanced mode)
จะใช้กับการเชื่อมโยงอุปกรณ์สื่อสารแบบจุดต่อจุด โยงทุกสถานีจะทำหน้าที่เป็นสถานีหลักและสถานีรองในเวลาเดียวกัน

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

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

S-frame (supervisory frame) เป็นเฟรมที่จะใช้สำหรับควบคุมความผิดพลาดของข้อมูลจากการสูญหายเสียหายหรือส่งซ้า
S-Frame ใช้สาหรับควบคุมอัตราการไหลของข้อมูลและการตรวจสอบความผิดพลาดของการส่งข้อมูล จะมีการใช้ก็ต่อเมื่อไม่มีการทา piggybacking ดังนั้น S-frame จะเป็นเพียง acknowledgment เท่านั้นจะไม่มีการส่งข้อมูลใดๆ ไปพร้อมกับเฟรมนี้

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


PPP (Point-to-Point Protocols)
เป็นโพรโตคอลสาหรับการเชื่อมโยงแบบจุดต่อจุด โดยเฉพาะที่ใช้งานตามบ้านเรือนที่ใช้เชื่อมคอมพิวเตอร์ไปยังผู้ให้บริการอินเตอร์เน็ต (ISP) ส่วนใหญ่จะเลือกใช้โพรโตคอลนี้เป็นหลัก ไม่ว่าจะใช้โมเด็มธรรดา
ดีเอสแอล โมเด็ม (DSL modem) หรือ เคเบิลโมเด็ม ซึ่งสื่อที่ใช้นั้นแตกต่างกันออกไป เช่นสายโทรศัพท์ หรือสายเคเบิลทีวี อย่างไรก็ตามในการควบคุมและการจัดส่งข้อมูลและใช้โพรโตคอล PPP
ลักษณะของ PPP
-มีการกาหนดโครงสร้างของเหรมข้อมูลที่ใช้ในการติดต่อสื่อสารกันระหว่างอุปกรณ์
-มีการกาหนดวิธีการสร้างการติดต่อและการแลกเปลี่ยนข้อมูลระหว่างกัน
-มีการกาหนดว่าข้อมูลที่ถูกส่งมาจากเน็ตเวิร์กเลเยอร์จะนาไปใส่ในเฟรมของเดทาลิงค์เลเยอร์ได้อย่างไร
-มีการกาหนดถึงวิธีการยืนยันบุคคล(authentication)

Link Control Protocol (LCP)
LCP จะประกอบไปด้วย
-Code เป็นการบอกถึงชนิดของแพ็กเก็ตLCP
-ID เป็นหมายเลขที่ใช้สำหรับการร้องขอและการตอบรับกลับ
-Lengthขนาดของแพ็กเก็ตLCP
-Information เป็นฟิลด์ที่บรรจุข้อมูลพิเศษเข้าไปกับบางเพ็กเก็ต


Authentication Protocol
การยืนยันตัวบุคคล เป็นเรื่องที่สำคัญสาหรับโพรโตคอล PPP เนื่องจากถูกออกแบบมาสาหรับการเชื่อมต่อกันโดยใช้สายโทรศัพท์เป็นหลัก ดังนั้นถ้าไม่มีการตรวจสอบการเข้าใช้งานจะเป็นเรื่องที่อันตรายมาก การยืนยันตัวบุคคลมีโพรโตคอลที่สาคัญอยู่ 2 ตัว คือ Password Authentication Protocol (PAP)และ ChellengeHandshake Authentication Protocol (CHAP)

Password Authentication Protocol (PAP)
แพ็กเก็ต PAP แบ่งออกเป็น 3 ชนิดได้แก่
-Authenticate-request ใช้สาหรับส่งชื่อผู้ใช้ และรหัสผ่าน
-Authenticate-ackใช้สาหรับการยอมรับชื่อผู้ใช้และรหัสผ่านบอกว่าสามารถให้เข้าใช้ระบบได้
-Authenticate-nakใช้สาหรับการปฏิเสธการเข้าใช้ระบบ

Challenge Handshake Authentication Protocol (CHAP)
เป็นโพรโตคอลที่มีความปลอดภัยมากกว่า PAP เนื่องจากโพโตคอลนี้รหัสผ่านจะถูกเก็บเอาไว้และจะไม่ถูกส่งออกไปตามสายส่งโพรโตคอล
แพ็กเก็ต CHAP แบ่งออกเป็น 4 ชนิด ได้แก้
-Challenge ใช้สาหรับในการส่งตัวเลขสาหรับใช้ในการคานวณไปให้กับผู้ใช้
-Response แพ็กเก็ตที่ผู้ใช้ส่งผลการคานวณมาให้กับระบบ
-Success แพ็กเก็ตที่ระบบส่งไปบอกผู้ใช้สามารถเข้าใช้งานระบบได้
-Failure แพ็กเก็ตที่ระบบส่งไปบอกผู้ใช้ว่าไม่อนุญาตให้เข้าใช้งานได้


Internetwork Protocol Control Protocol (IPCP)
เป็นโพโตคอลที่ทางานร่วมกับเน็ตเวิร์กเลเยอร์ โดยการนาข้อมูลจากเน็ตเวิร์กเลเยอร์มาใส่ไว้ในเฟรมข้อมูล PPP ฟิลด์โพรโตคอลจะมีค่าเป็น 802116เมื่อต้องนามาส่งแพ็กเก็ต IPCP
แพ็กเก็ต IPCP แบ่งออกเป็น 7 ชนิด

Code IPCP Packed
01 Configure-request
02 Configure-ack
03 Configure-nak
04 Configure-reject
05 Terminate-request
06 Terminate-ack
07 Code-reject

วันเสาร์ที่ 22 สิงหาคม พ.ศ. 2552

week 8 :Data link layer - 2

Data link control

Automatic Repeat Request (ARQ)
Main ARQ protocols

ARQ แบ่งออกเป็น 3 วิธี คือ stop-and-wait ,Go-Back-N และ Selective-Repeat

1.Stop and Wait คือกลไกที่ใช้ในการควบคุมอัตราการไหลและควบคุมการผิดพลาดของข้อมูลที่ง่ายและไม่ซับซ้อนมากนัก มีหลักการดังนี้
1) ผู้งข้อมูลจะต้องทำการcopyเฟรมข้อมูลที่จัดส่งไปเอาไว้ก่อน จนกว่าผู้รับจะยืนยันว่าได้รับเฟรมข้อมูลนั้นแล้ว
2) ในการยืนยันตอบรับเฟรมข้อมูลของผู้รับนั้น จะรับจะต้องส่งเฟรม acknowledgment(ACK) มาให้กับผุ้ส่งซึ่งการส่งเฟรม ACK เป็นการบ่งบอกว่าได้รับเฟรมอะไร และเฟรมที่จะต้องการถัดไปนั้นคือเฟรมอะไร
3) ถ้าผู้รับได้รับเฟรมข้อมุลที่ผิดพลาด ผู้รับจะทิ้งเฟรมนั้นไป เชื่ออยากได้ เฟรม 1 แต่ได้ เฟรม 0 มา จะทำการทิ้งเฟรมนั้นไป

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

2.Go-Back-N เป็นการส่งข้อมูลออกไปที่ละหลายๆเฟรม ก่อนที่จะได้รับเฟรมACKตอบกลับมา เพื่อนการใช้สายสื่อสารให้ได้อย่างเต็มที่



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

ตัวอย่าง 0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,0,1,......

Sender Slidind Windows

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


Receiver Sliding Window


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





3.Selective Repeat


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

กระบวนการทำงาน

เนื่องจากมีเฟรม ACK จากผู้รับแล้ว ยังมีเฟรม NAK (nagative acknowledgment ) ด้วยโดยเฟรมนี้จะเป็นการบอกถึงเฟรมข้อมูลที่เสียหาย ซึ่งผู้ส่งจะต้องส่งเฟรมขู้อมูลกลับมาใหม่อีกครั้ง

HDLC (High-level Data Link Control) เป็นโพรโตคอลที่ออกแบบมาให้สามารถสื่อสารได้ทั้งแบบฮาล์ฟดูเพล็ก และ ฟลูดูเพล็ก บนพื้นฐานของการเชื่อมโยงอุปกรณ์สื่อสาร ทั้งแบบ point-to-point และ แบบ multipoint หรือ multidrop

วันพุธที่ 12 สิงหาคม พ.ศ. 2552

Week 7:Data Link Layer

Data link layer - ย้ายข้อมูลจากเครื่องหนึ่งไปยังอีกเครื่อง

Major functions of data link layer photocol

-Medai Access control
เป็นเลเยอร์ย่อยที่อยู่ล่างสุดของดาต้าลิงค์เลเยอร์ ซึ่งจะทำหน้าที่เชื่อมต่อกับฟิสิคอลเลเยอร์ และรับผิดชอบในการรับส่งข้อมูลให้สำเร็จและถูกต้อง
-Error control
คือกลไลในการป้องกันและหาข้อผิดพลาดในการสื่อสาร
-Message Delineation
ระบุจุดเริ่มต้นและสิ้นสุดของข้อความ

Media Access Control (MAC)
ตรวจสอบให้แน่ใจว่า 2 ปาร์ตี้ไม่ส่งในเวลาเดียวกัน

-Point to point half duplex links
ไม่สามารถส่งและรับได้ในเวลาเดียวกัน

-Multipoint configuration
ลิงค์คอมได้มากกว่า 1 เครื่อง

Main approaches
- controlled access
1 device that control point, to allow another device send data (Ex. token)
- contention based access
ตรวจสอบกลางที่สามารถใช้งานได้หรือไม่ก่อนที่จะส่งข้อมูล
Polling
-Roll call polling
ใช้ใน mainframe คอมพิวเตอร์สามารถส่งข้อมูลเมื่อมีการถามโดยเซิร์ฟเวอร์และส่งข้อมูลไปยังเซิร์ฟเวอร์
-Hub polling
เชื่อมต่อกันเป็นวงแหวน

Error Control
-Corrupted
ข้อมูลถึงแต่ปลายทางไม่ถูกต้อง
-Lost data
ข้อมูลไม่ถึงปลายทางแต่บางทีก็มีการสูญเสียข้อมูล

Major function
-Preventing errors
งานที่มนุษย์ตรวจสอบด้วยตัวเอง
-Detecting and Correcting errors
ลิงค์ข้อมูลเลเยอร์ใช้หลังจากที่มนุษย์ไม่สามารถหาข้อผิดพลาดได้

Error Detection
-Parity Checking
เป็นวิธีการตวจสอบความผิดพลาดของข้อมูลที่ไม่ยุ่งยาก
นับจํานวน 1 เพื่อตรวจสอบว่าคี่หรือเลขคู่
Even parity: มีเลข 1 เป็นจำนวน คู่
Odd parity : มีเลข 1 เป็นจำนวน คี่
-Longitudinal Redundancy Checking (LRC)
เป็นการนำบล็อกของบิตข้อมูลมาจัดในตาราง(จัดเป็นแถวและหลัก) โดยการนำบล็อกของข้อมูล 32 บิตมาจัดในตารางให้เป็น 4 แถวและ 8 หลัก แล้วทำการตรวจสอบพาริตี้บิตของหลักทุกหลักแล้วจะได้แถวของข้อมูล 8 บิตขึ้นมาใหม่ 1 แถว การทำพาริตี้บิต บิตที่ 1 ในแถวที่ 5 ได้จากการทำพาริตี้คู่ของบิตแรกในทุกๆ แถว, พาริตี้บิต บิตที่ 2 ในแถวที่ 5 ได้จากการทำพาริตี้คู่ของบิตที่ 2 ในทุกๆ แถว และเป็นเช่นนี้จนถึงบิตที่ 8 จากนั้นทำการส่งพาริตี้บิต 8 บิตนี้ต่อจากข้อมูลเดิมส่งไปยังผู้รับ

Polynomial Checking
ปกติแล้วในการแทนบิตข้อมูลของตัวหารจะไม่ใช้รูปของเลขฐานสอง เนื่องจากค่อนข้างยาวและจำไดยากแต่จะเขียนให้อยู่ในรูปแบบของโพลิโนเมียลในการเลือกตัวหารเพื่อที่จะนำมาใช้ในกับวิธีแบบ CRC นั้น ควรจะต้องต้องมีคุณสมบัติอย่างน้อยที่สุดเป็นดังนี้
- ไม่ควรที่จะถูกหารด้วย x ลงตัว
- ควรที่จะถูกหารด้วย x+1 ลงตัว

Checksum วิธีการตรวจสอบแบบ checksum
1.ข้อมูลจะถูกแบบออกเป็นเซ็กเมนต์ย่อย เซ็กเมนต์ละ n บิต
2.นำข้อมูลของทุกเซ็กเมนต์มาบวกันด้วยวิทีการแบบ 1's Complement
3.นำผลรวมของทุกเซ็กเมนต์มาทำคอมพลีเมนต์
4.ส่งบิตตรวจสอบไปพร้อมกับข้อมูล

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

Error CorrectionRetransmission
ถ้ารับข้อมูลมาเกิดความผิดพลาด ก็จะส่งข้อมูลไปบอกทางผู้รับให้ส่งกลับมาใหม่

Forward Error Correction (FEC) จะทำให้ผู้รับข้อมูลที่เกิดความผิดพลาดนั้นสามารถที่จะแก้ไขความผิดพลาดของข้อมูลได้โดยอัตโนมัติ

cyclic redundancy check
ถ้าต้องการกี่บิท นับจำนวน 0 เช่น 4 บิท 0000