HDLC
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
ในการออกแบบเฟรมข้อมูลของ HDLC จะต้องให้ยืดหยุ่นกับวิธีการสื่อสารทั้งแบบ NRM และ ABM ดังนั้นจึงได้มีการก าหนดเฟรมข้อมูลไว้ 3 ชนิด ดังนี้
- I-frame (information frame) เป็นเฟรมที่ใช้ส าหรับบรรจุข้อมูลของผู้ใช้ และควบคุมความผิดพลาดของข้อมูลจากการสุญหาย เสียหาย หรือส่งซ้ า
- S-frame (supervisory frame) เป็นเฟรมที่จะใช้ส าหรับควบคุมความผิดพลาดของข้อมูลจากการสูญหาย เสียหายหรือส่งซ้ า
- U-frame (unnumbered frame) เป็นเฟรมที่ใช้ส าหรับการจัดการระบบ เช่น การสร้างการติดต่อ หรือ การยกเลิกการติดต่อ เป็นต้น
โครงสร้างเฟรมข้อมูล (Frame format)
ประกอบด้วย 6 ฟิลด์ ดังรูปที่ 15 โดยจะมีฟิลด์แฟล็กเริ่มต้น ฟิลด์แอดเดรส ฟิลด์ควบคุม ฟิลด์ควบคุม ฟิลด์ข้อมูล ฟิลด์ตรวจสอบ และฟิลด์แฟล็กสิ้นสุด ถ้ามีเฟรมข้อมูลหลายๆ เฟรมฟิลด์แฟล็กสิ้นสุดของเฟรมหนึ่งสามารถเป็นฟิลด์แฟล็กเริ่มต้นของอีกเฟรมหนึ่งได้
- ฟิลด์ควบคุม จะมีขนาด 1 หรือ 2 ไบต์ ใช้ส าหรับในการควบคุมอัตราการไหลและความผิดพลาดของการส่งข้อมูล
- ฟิลด์ข้อมูล จะใช้ในการเก็บข้อมูลของผู้ใช้ที่ส่งมาจากเน็ตเวิร์กเลเยอร์ หรือเก็บข้อมูลส าหรับการจัดการระบบ ขนาดของฟิลด์จะขึ้นอยู่กับชนิดของเครือข่ายเป็นเครือข่ายแบบไหน
- ฟิลด์ตรวจสอบ หรือ ฟิลด์ FCS (frame check sequence) เก็บกลุ่มของบิตสำหรับตรวจสอบความผิดพลาดของข้อมูล ซึ่งจะมีขนาด 2 หรือ 4 ไบต์ ส่วนวิธีการตรวจสอบนั้นจะใช้วิธีการของ ITU-T-CRC
ชนิดของเฟรม (frame type)
HDLC จะมีเฟรมอยู่ 3 ชนิด คือ I-frame, S-frame และ U-frame
I-Frame
ออกแบบมาเพื่อรับข้อมูลจากเน็ตเวิร์กเลเยอร์ สามารถเพิ่มบิตส าหรับควบคุมการไหลของข้อมูลและการตรวจสอบความผิดพลาดชองการส่งข้อมูลได้ด้วย (piggybacking)
กลุ่มของบิตที่อยู่ในฟิลด์ควบคุมของ I-frame มีความหมายดังนี้
- ถ้าบิตแรกในฟิลด์ควบคุมมีค่าเป็น 0 หมายความว่า เฟรมนี้เป็น I-frame
- 3 บิตถัดมาจะเรียกว่า N(S) จะเก็บหมายเลขล าดับของกลุ่มแต่ละเฟรม
- บิตถัดไปจะเรียกว่า P/F (poll/final) บิตนี้จะมีค่าเป็น “1” ก็ต่อเมื่อสถานีหลักได้ทำการโพลไปยังสถานีรอง แต่ถ้าบิตนี้เป็น “0” หมายถึงสถานีรองได้ส่งข้อมูลกลับมาให้สถานีหลัก
- 3 บิตสุดท้าย เรียกว่า N(R) จะใช้กลุ่มบิตนี้เมื่อเป็น piggybacking โดย N(R) จะบอกว่าเฟรมถัดไปที่ต้องการรับคือเฟรมอะไร ซึ่งก็ต่อ ACK นั่นเอง
S-Frame
ใช้ส าหรับควบคุมอัตราการไหลของข้อมูลและการตรวจสอบความผิดพลาดของการส่งข้อมูล จะมีการใช้ก็ต่อเมื่อไม่มีการท า piggybacking ดังนั้น S-frame จะเป็นเพียง acknowledgment เท่านั้น จะไม่มีการส่งข้อมูลใดๆ ไปพร้อมกับเฟรมนี้
กลุ่มของบิตที่อยู่ในฟิลด์ควบคุมของ S-frame มีความหมายดังนี้
- ถ้า 2 บิตแรกของฟิลด์ควบคุมมีค่า “10” หมายความว่าเฟรมนี้เป็น S-frame
- 2 บิตถัดมา จะเป็นการบอกถึงประเภทของ S-frame มีอยู่ 4 ประเภทคือ RR,
RNR, REJ, และ SREJ
1. Receiver ready (RR) จะแทนด้วย “00” เป็นเฟรม acknowledgment บอกว่าผู้รับได้รับเฟรมข้อมูลที่ส่งมาเรียบร้อยแล้ว และพร้อมที่จะรับเฟรมต่อไปจากผู้ส่ง
2. Receiver not ready (RNR) จะแทนด้วย “10” คล้ายกับ RR คือบอกว่าผู้รับได้รับเฟรมข้อมูลที่ส่งมาเรียบร้อยแล้ว แต่จะบอกว่ายังไม่พร้อมที่จะรับเฟรมถัดไป ซึ่ง S-frame ชนิดนี้จะมีไว้ส าหรับควบคุมการแน่นขนัด
3. Reject (REJ) จะแทนด้วย “01” เป็น negative acknowledgment (NAK) บอกว่าผู้ส่งว่าให้ส่งเฟรมข้อมูลมาใหม่ ซึ่งการท างานจะเหมือน Go-Back-N
4. Selective reject (SREJ) จะแทนด้วย “11” เป็น negative acknowledgment ซึ่งจะใช้กับโพรโตคอล Selective reject
ส่วนบิตที่ 5 คือ P/F
- 3 บิตสุดท้าย เรียกว่า N(R) คือค่าของ ACK หรือ NAK
U-frame
เป็นเฟรมใช้ส าหรับบริหารจัดการโดยจะมีฟิลด์ที่ใช้เก็บข้อมูลที่เหี่ยวข้องกับการ
บริหารระบบเท่านั้น ไม่ได้เก็บข้อมูลผู้ใช้ U-frame จะเก็บรหัส ของการควบคุมไว้
2 ส่วนคือ 2 บิตหน้าบิต P/F และอีก 3 บิตหลังบิต P/F ดังนั้นจึงมีรหัสที่ใช้
ส าหรับควบคุมระบบได้ถึง 5 บิต (32 รหัส)