NETWORKING PROTOCOL

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

คุณลักษณะของโปรโตคอล

       การที่เอนทิตี้สองเอนทิตี้จะสามารถสื่อสารกันได้อย่างเข้าใจ เอนทิตี้ทั้งสองนั้นจะต้องพูดภาษาเดียวกัน กล่าวคือ จะต้องทราบว่ากำลังสื่อสารกับอะไร สื่อสารกันอย่างไร และสื่อสารกันเมื่อไร สิ่งต่างๆเหล่านี้จะต้องเป็นไปตามระเบียบแบบแผน (Convention) ซึ่งเป็นที่ยอมรับร่วมกันในระหว่างเอนทิตี้ที่เกี่ยวข้อง ระเบียบแบบแผนนี้ก็คือ “ โปรโตคอล” (Protocol) นั่นเอง

กล่าวคือโปรโตคอลก็คือข้อกำหนดของการแลกเปลี่ยนข้อมูลระหว่างเอนทิตี้สองเอนทิตี้ โปรโตคอลประกอบด้วยส่วนสำคัญ 3 ส่วน ดังนี้

1. การสร้างรูปแบบข้อมูล (Syntax)

        ประกอบด้วย ฟอร์แมตข้อมูล(Data Format) การเข้ารหัส(Coding) และระดับสัญญาณ(Signal level) เป็นต้น

2. การควบคุมการทำงาน ( Semantics)

        ประกอบด้วยข่าวสารเพื่อการควบคุม(Control Information) สำหรับการควบคุมการทำงานร่วมกันและการจัดการความผิดพลาดที่เกิดขึ้น(Errors handling)

3. การควบคุมด้านเวลา(Timing)

       ประกอบด้วยการปรับอัตราข้อมูลให้ตรงกัน(Speed Matching) และการจัดลำดับ (Sequencing)

       ตัวอย่างเช่น HDLC(High-level Data Link Control) เป็นโปรโตคอลชนิดหนึ่ง ข้อมูลที่ทำการแลกเปลี่ยนกันภายใต้โปรโตคอลนี้จะต้องอยู่ในรูปแบบของฟอร์มที่มีฟอร์แมตตามที่ HDLC กำหนด ( ส่วนนี้เทียบได้กับ Syntax ) ส่วนที่เป็นฟีลด์ควบคุม(Control Field) ซึ่งอยู่ในฟีลด์ที่ HDLC จะบรรจุคำสั่งเพื่อควบคุมการสื่อสารเช่น การเซตแบบวิธี (Model) การทำงานหรือการสร้างการต่อถึงกัน (ส่วนนี้เทียบได้กับ Semantics) นอกจากนี้ยังมีส่วนที่ทำหน้าที่ควบคุมการไหลของข้อมูล(Flow control) บรรจุอยู่ในฟีลด์ควบคุมด้วย( ส่วนนี้เทียบได้กับ Timing)

คุณลักษณะที่สำคัญของโปรโตคอลมีดังนี้

1. โดยตรงหรือโดยอ้อม (Direct/Indirect)

2. ชนิดเดียวหรือเป็นโครงสร้างแบบชั้น(Monolithic/Structured)

3. สมมาตรหรือไม่สมมาตร( Symmetric / Asymmetric )

4. มาตรฐานหรือไม่มาตรฐาน( Standard/Nonstandard)

       การสื่อสารระหว่างเอนทิตี้สองเอนทิตี้อาจเป็นการสื่อสารกันโดยตรงหรือโดยอ้อมก็ได้ดังรูปวิธีการติดต่อระบบสื่อสารเข้าด้วยกัน ในรูที่1 ระบบสองระบบเชื่อมโยงกันแบบจุดถึงจุด(Point to point link) เอนทิตี้ในระบบนี้จะสื่อสารกันโดยตรง กล่าวคือส่วนที่เป็นข้อมูลและส่วนที่เป็นข่าวสารเพื่อการควบคุมการทำงานจะถูกส่งไปยังเอนทิตี้ที่ต้องการโดยตรงโดยไม่มีเอนทิตี้ตัวกลางมาแทรก เช่นเดียวกับกับการเชื่อมโยงแบบหลายจุด (Multipoint)ในรูปที่2 ถึงแม้ในกรณีนี้เอนทิตี้จะต้องเกี่ยวข้องกับกับเรื่องการควบคุมการเข้าถึงตัวกลาง (access control) ซึ่งทำให้โปรโตคอลมีความซับซ้อนมากขึ้น การสื่อสารในลักษณะนี้ก็ยังเป็นแบบโดยตรงอยู่

       ถ้าเป็นการติดต่อถึงกันผ่านโครงข่ายสื่อสารแบบสวิตช์ ดังรูปที่3 เอนทิตี้สองเอนทิตี้จะต้องขึ้นกับอยู่กับการทำงานของเอนทิตี้อื่นในการแลกเปลี่ยนข้อมูลกันด้วย ดังนั้นโปรโตคอลในลักษณะนี้จะเป็นโปรโตคอลโดยอ้อม ยิ่งไปกว่านั้น เอนทิตี้สองเอนทิตี้ที่ไม่ได้อยู่ในโครงข่ายสื่อสารเดียวกันแต่ต่อถึงกันผ่านโครงข่ายสื่อสารตั้งแต่สองโครงข่ายสื่อสารขึ้นไปในลักษณะของอินเตอร์เน็ต ( Internet) ดังรูปที่ 4 ก็เป็นโปรโตคอลโดยอ้อมเช่นกัน

       คุณลักษณะอีกประการหนึ่งของโปรโตคอลก็คือมีคุณสมบัติเป็นแบบชนิดเดียวหรือเป็นโครงสร้างแบบชั้น(Monolithic/Structured) โดยทั่วไปการสื่อสารระหว่างเอนทิตี้ผ่านระบบต่างระบบกันมีความซับซ้อนเกินกว่าที่จะคิดว่าเป็นหน่วยเดียวกัน ยกตัวอย่างเช่น การส่งไปรษณีย์อิเล็กทรอนิกส์ระหว่างคอมพิวเตอร์สองเครื่องซึ่งต่อถึงกันโดยตรงด้วยโปรโตคอล Synchronous HDLC ถ้าโปรโตคอลนี้เป็นแบบชนิดเดียว(Monolithic)โปรแกรมการใช้งานไปรษณีย์อิเล็กทรอนิกส์จะต้องมีตรรกของ HDLC ทั้งหมดบรรจุอยู่ภายใน ถ้าเป็นการต่อถึงกันผ่านโครงข่ายสื่อสารแบบสวิตช์แพ็กเกต โปรแกรมการใช้งานนี้ยังคงต้องการให้มีตรรกของ HDLC ทั้งหมดบรรจุอยู่เช่นกันเพื่อให้สามารถต่อเข้าไปยังโครงข่ายได้ นอกจากนี้ยังต้องการตรรกเพื่อแบ่งไปรษณีย์(mail) ออกเป็นแพ็กเกตย่อยๆต้องการตรรกเพื่อการสร้างวงจรเสมือน(virtual circuit) ต้องการตรรกเพื่อประสานงานการรับข้อมูลของระบบปลายทางจากระบบต้นทาง และในอนาคตเมื่อมีการเปลี่ยนแปลงเพิ่มเติมหน้าที่การทำงานของโครงข่ายสื่อสารการใช้งานนี้จะมีขนาดใหญ่ขึ้นไปเรื่อยๆรวมทั้งต้องเสี่ยงกับการเกิดข้อติดขัด(bugs) ซึ่งยากต่อการค้นหาว่าเกิดขึ้นที่ใดในโปรแกรม

      วิธีแก้ไขคือใช้ชุดของโปรโตคอลที่มีโครงสร้างแบบชั้น(Structured) แทนการใช้โปรโตคอลแบบชนิดเดียว โปรโตคอลในชั้นล่างๆมีหน้าที่ให้บริการโปรโตคอลในชั้นสูงๆ และในระบบเช่นนี้เราเรียก ฮาร์ดแวร์และซอฟท์แวร์ที่ใช้ในการทำให้เกิดหน้าที่การสื่อสารนี้ว่าสถาปัตยกรรมการสื่อสาร(Communication Architecture)

       คุณลักษณะของโปรโตคอลอาจเป็นแบบสมมาตรหรือไม่สมมาตร โปรโตคอลส่วนใหญ่มีคุณลักษณะเป็นแบบสมมาตรกล่าวคือเป็นโปรโตคอลที่เกี่ยวข้องกับการสื่อสารระหว่าง

       คุณลักษณะของโปรโตคอลอาจเป็นแบบสมมาตรหรือไม่สมมาตร โปรโตคอลส่วนใหญ่มีคุณลักษณะเป็นแบบสมมาตรกล่าวคือเป็นโปรโตคอลที่เกี่ยวข้องกับการสื่อสารระหว่างเอนทิตี้ที่อยู่ในระดับ(ชั้น)เดียวกัน (Peer Entity) โปรโตคอลแบบไม่สมมาตรอาจถูกกำหนดโดยความต้องการที่ให้เอนทิตี้หรือระบบที่ง่ายที่สุดเท่าที่จะเป็นไปได้ เช่น แบบวิธีตอบรับแบบปกติของ HDLC

       คุณลักษณะประการสุดท้ายของโปรโตคอลคือโปรโตคอลนั้นเป็นโปรโตคอลมาตรฐานหรือไม่ โปรโตคอลไม่มาตรฐานเป็นโปรโตคอลสำหรับสภาวะการสื่อสารเฉพาะหนึ่งๆ หรือใช้เฉพาะกับคอมพิวเตอร์รุ่นใดรุ่นหนึ่ง ดังนั้นถ้าเรามีแหล่งกำเนิดข่าวสารต่างชนิดกัน K ชนิดที่ต้องการสื่อสารไปยังผู้รับข่าวสารต่างชนิดกัน L ชนิด เราต้องใช้โปรโตคอลไม่มาตรฐานต่างชนิดกัน KL ชนิด และต้องการ 2KL implementations(แต่ละการเชื่อมโยงระหว่างผู้ส่งและผู้รับจะมี 2 implementations คือที่ผู้ส่งและผู้รับ)ดังรูปa ในขณะที่ถ้าเราใช้โปรโตคอลมาตรฐาน เราต้องการเพียง K+L implementations เท่านั้น (แต่ละการเชื่อมโยงจะมีการ implementation ที่ผู้ส่งหรือผู้รับเท่านั้น) ดังแสดงในรูป b

หน้าที่การทำงานของโปรโตคอล

เราสามารถแบ่งกลุ่มหน้าที่การทำงานของโปรโตคอลเป็นดังนี้

        1 การแบ่งข้อมูลเป็นส่วนย่อยๆและการรวมส่วนย่อยกลับเป็นข้อมูลดังเดิม(Segmentation and reassembly)

       2 การเติมข่าวสารการควบคุมให้กับส่วนข้อมูล(Encapsulation)

       3 การควบคุมการต่อถึงกัน(Connection Control)

       4 การส่งข้อมูลให้ตรงตามลำดับ(Ordered delivery)

       5 การควบคุมการไหลของข้อมูล(Flow control)

       6 การควบคุมความผิดพลาดของข้อมูล(Error control)

       7 การซิงโครไนซ์(Synchronization)

       8 การกำหนดที่อยู่(Addressing)

       9 การมัลติเพลกซ์(Multiplex)

       10 การให้บริการส่งข้อมูล (Transmission services)

รูปแสดงการใช้โปรโตคอลมาตรฐาน

 

1. การแบ่งข้อมูลออกเป็นส่วนย่อยๆและการรวมส่วนย่อยกลับเป็นข้อมูลดังเดิม(Segmentation and reassembly)

       โดยทั่วไปการส่งข้อมูลประกอบด้วยการส่งบล็อกข้อมูลจำนวนหลายบล็อกข้อมูลที่มีขนาดจำกัดค่าหนึ่งตามลำดับก่อนหลัง ในระดับของการประยุกต์ใช้งาน เราเรียกหน่วย(ทางตรรก) ของข้อมูลที่ทำการส่งว่า ข่าวสาร ( Message) ไม่ว่าเอนทิตี้ในระดับการประยุกต์ใช้งานจะส่งข้อมูลในรูปของข่าวสารหรือในรูปของข่าวสารต่อเนื่อง(Continuous Stream)ก็ตาม โปรโตคอลในชั้นล่างๆอาจต้องการแบ่งข้อมูลนี้ออกเป็นบล็อกข้อมูลส่วนย่อยๆที่มีขนาดจำกัดค่าหนึ่ง ขั้นตอนนี้เรียกว่าการแบ่งข้อมูลออกเป็นส่วนย่อยๆ(Segmentation หรือ Fragmentation) และเราเรียกบล็อกของข้อมูลที่แลกเปลี่ยนกันระหว่างสองเอนทิตี้ผ่านทางโปรโตคอลว่าหน่วยข้อมูลโปรโตคอล (Protocol Data Unit หรือ PDU)

เหตุจูงใจที่ทำให้มีการแบ่งข้อมูลออกเป็นส่วนย่อยมีดังนี้

       1. โครงข่ายสื่อสารอาจยอมรับขนาดของบล็อกข้อมูลจนถึงขนาดหนึ่งเท่านั้น

       2. การควบคุมความผิดพลาดของข้อมูลในPDUทีมีขนาดเล็กมีประสิทธิผลที่ดีกว่า

       3. การแย่งกันเข้าถึงระบบส่งข้อมูลซึ่งต้องแบ่งกันให้มีความยุติธรรมมากขึ้นและเสียเวลาในการคอยน้อยลง เช่น ถ้าไม่ทีการกำหนดขนาดสูงสุดของบล็อกข้อมูลไว้ สถานีใช้งานสถานีหนึ่งอาจครอบครองการใช้ตัวกลางแต่เพียงผู้เดียว

       4. เอนทิตี้ด้านรับต้องการขนาดของบัฟเฟอร์ไม่มากนัก

ข้อเสียของการแบ่งข้อมูลออกเป็นส่วนย่อยๆมีดังนี้

       1. PDUแต่ละหน่วยจะมีข่าวสารสำหรับการควบคุมการส่งข้อมูล(Control information) ขนาดจำกัดค่าหนึ่งรสมอยู่ด้วย ดังนั้นยิ่งบล็อกข้อมูลมีขนาดเล็กลงเท่าใด เปอร์เซ็นต์ของส่วนท่ไม่ไช่ข้อมูลที่แท้จริง(Overhead) ในบล็อกข้อมูลจะยิ่งมีค่ามากขึ้นเท่านั้น

       2. การรับ PDU ที่มีขนาดเล็กลงที่เครื่องรับทำให้เกิดการขัดจังหวะ(interrupt) ที่เครื่องรับเป็นจำนวนครั้งที่มากขึ้น

       3. ต้องใช้เวลายาวนานขึ้นมนการประมวลผลPDU ที่มีขนาดเล็กลงแต่มีจำนวนที่เพิ่มมากขึ้น

       ผู้ออกแบบโปรโตคอลจะต้องนำจุดต่างๆดังกล่าวข้างต้นมาพิจารณาในการกำหนดขนาดต่ำสุดและสูงสุดของ PDU    กระบวนการทำงานที่ตรงกันข้ามกับการแบ่งข้อมูลออกเป็นส่วนย่อยๆคือการรวมส่วนย่อยๆกลับเป็นข้อมูลดังเดิม(reassembly) ซึ่งเป็นการรวมส่วนย่อยของข้อมูล( ที่อยู่ในรูปของบล็อกข้อมูล)กลับเข้ามาเป็นข่าวสาร(message) ซึ่งเหมาะกับการใช้งานในชั้นประยุกต์ใช้งานที่ด้านผู้รับ

 

2. การเติมข่าวสารการควบคุมให้กับส่วนข้อมูล(Encapsulation)

       นอกจาก PDU จะประกอบด้วยส่วนท่เป็นข้อมูลแล้วยังเป็นส่วนที่เป็นข่าวสารสำหรับการควบคุมการส่งข้อมูลอีกด้วย

ข่าวสารสำหรับควบคุมการส่งข้อมูลแบ่งออกได้เป็น 3 กลุ่มดังนี้

       1 ที่อยู่ (Address) บอกตำแหน่งที่อยู่ของผู้รับและผู้ส่งข้อมูล

       2 รหัสสำหรับตรวจวัดความผิดพลาด(Error Detecting Code)

       3 ส่วนควบคุมโปรโตคอล (Protocol Control)ทำหน้าที่ควบคุมการทำงานของโปรโตคอลตามที่ต้องการ

       การเติมข่าวสารสำหรับควบคุมการส่งข้อมูลเข้าไปกับส่วนที่เป็นข้อมูลนี้คือ Encapsulationนั่นเอง

3. การควบคุมการต่อถึงกัน (Connection Control)

       เอนทิตี้หนึ่งอาจส่งข้อมูลให้อีกเอนทิตี้หนึ่งได้2 วิธีดังนี้

       1. การส่งข้อมูลแบบคอนเนคชั่นเลส(Connectionless)

       2. การส่งข้อมูลแบบคอนเนคชั่นโอเรียนเตด(Connection-oriented)

       ถ้าเป็นการส่งข้อมูลที่มีความยาวมากๆการส่งข้อมูลแบบคอนเนคชั่นโอเรียนเตด จะให้ประสิทธิภาพที่ดีกว่า

เฟสของการต่อถึงกันสามารถแบ่งได้เป็น3เฟสดังนี้

       1. การสร้างการต่อถึงกัน(Connection Establishment)

       2. การถ่ายโอนข้อมูล (Data Transfer)

       3. การสิ้นสุดการต่อถึงกัน(Connection Termination)

       โปรโตคอลที่มีความสลับซับซ้อนมากกว่านี้อาจมีเฟสการขัดจังหวะการต่อถึงกัน (Connection interrupt) และเฟสการฟื้นตัว(Recovery)        จากสภาวะที่มีความผิดพลาดหรือการขัดจังหวะรวมอยู่ด้วยคุณลักษณะที่สำคัญของการถ่ายโอนข้อมูลแบบคอนเนคชันโอเรียนเตดคือการให้ลำดับการส่งข้อมูล(Sequencing) กับ PDU การให้ลำดับการส่งข้อมูลนี้เป็นการสนับสนุนหน้าที่การทำงานอื่นอีก 3 อย่างคือ

       1. การส่งข้อมูลให้ตรงตามลำดับ(Ordered Delivery)

       2. การควบคุมการไหลของข้อมูล(Flow Control)

       3.การควบคุมความผิดพลาดของข้อมูล(Error Control)

รูปแสดงเฟสของการถ่ายโอนข้อมูลแบบ Connection Oriented

4. การส่งข้อมูลให้ตรงตามลำดับ(Ordered Delivered)

       ในการส่งข้อมูลแบบคอนเนคชันโอเรียนเตด ถ้าPDU แต่ละตัวมีหมายเลขแสดงลำดับ(Sequencing Number) ผู้รับข้อมูลจะสามารถเรียงลำดับข้อมูลให้เหมือนข้อมูลด้านส่งได้โดยง่าย

5. การควบคุมการไหลของข้อมูล(Flow Control)

       การควบคุมการไหลของข้อมูลเป็นหน้าที่การทำงานของเอนทิตี้ด้านรับข้อมูลเพื่อเป็นการจำกัดอัตราการส่งข้อมูลที่ส่งจากด้านส่งข้อมูลตัวอย่างการไหลของข้อมูลมีดังนÕé

       1หยุดและคอย(Stop-and-Wait)จะต้องมีการตอบรับ(Acknowledgement)ว่าได้รับข้อมูลหนึ่งหน่วยแลัวจากด้านรับข้อมูลส่งกลับไปยังด้านส่งข้อมูลก่อน ด้านส่งจึงจะส่งข้อมูลหนึ่งหน่วยต่อไปให้

       2 หน้าต่างเลื่อน(Sliding Window) ด้านส่งข้อมูลสามารถส่งข้อมูลไปได้จำนวนหนึ่งก่อนที่จะมีการตอบรับจากด้านรับข้อมูลว่าได้รับข้อมูลหลายหน่วยนั้นแล้ว

6. การควบคุมความผิดพลาดของข้อมูล(Error Control)

       เทคนิคส่วนใหญ่ที่ใช้ควบคุมความผิดพลาดของข้อมูลเกี่ยวข้องกับลำดับตรวจสอบเฟรม(Frame Check Sequence)และการส่ง PDU ไปให้อีกครั้งหนึ่ง(PDU Retransmission)

       การส่งPDU ไปให้อีกครั้งหนึ่งเกี่ยวข้องกับการทำงานของตัวตั้งเวลา(Timer) ถ้าด้านส่งข้อมูลไม่ได้รับการตอบรับจากด้านรับข้อมูลภายในเวลาที่กำหนดไว้ด้านส่งข้อมูลจะส่งข้อมูลไปให้อีกครั้งหนึ่ง

7. การซิงโครไนซ์(Synchronization)

       ในการรับส่งข้อมูลเอนทิตี้หนึ่งๆต้องทราบค่าพารามิเตอร์จำนวนหนึ่ง เช่น ขนาดของหน้าต่าง(Window Size) เฟสของการต่อถึงกัน(Connection Phase) ค่าของตัวตั้งเวลา(Timer Value) เป็นต้น ค่าพารามิเตอร์ต่างๆเหล่านี้ถือว่าเป็นตัวแปรสเตด(State Variables) ค่าพารามิเตอร์ต่างๆทั้งหมดนี้ประกอบกันเข้าเป็นสถานะของเอนทิตี้(Entity States) เอนทิตี้สองเอนทิตี้ซึ่งกำลังสื่อสารกันจะต้องอยู่ในสถานะเดียวกันตลอดเวลาเช่น สถานะเริ่มต้น (Initialization)สถานะตรวจสอบ(Checkpointing)และสถานะสิ้นสุด(Termination) เป็นต้น การทำให้เอนทิตี้สองเอนทิตี้อยู่ในสถานะเดียวกันตลอดเวลานี้คือการซิงโครไนซ์

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

       โปรโตคอลจะต้องทำหน้าที่แก้ไขปัญหาการซิงโครไนซ์นี้

8. การกำหนดที่อยู่ (Addressing)

       ในการสื่อสารที่นอกเหนือจากการสื่อสารแบบจุดถึงจุด ผู้ส่งและผู้รับจะต้องทราบที่อยู่ซึ่งกันและกันเพื่อให้รับส่งข้อมูลระหว่างกันได้อย่างถูกต้อง การกำหนดที่อยู่ (Addressing)สามารถกำหนดได้โดยใช้สิ่งต่อไปนี้

       1.ชื่อ (Name) เป็นสิ่งกำหนดว่าสิ่งนั้นคือใคร อะไร

       2. ที่อยู่ (Address) เป็นสิ่งกำหนดว่าสิ่งนั้นอยู่ที่ไหน

       3.เส้นทาง (Routes) เป็นสิ่งที่กำหนดว่าไปสู่ที่นั้นได้อย่างไร

       ชื่§อาจแบ่งเป็นสองชนิดดังนี้

       1. ชื่อท้องถิ่น (Local Name) เป็นชื่อของ Entity ที่ใช้ภายในระบบของตนเอง

       2. ชื่อในวงกว้าง( Global Name) เป็นชื่อของ Entity ที่เป็นที่รู้จักภายนอกระบบของคน

       สิ่งซึ่งเราควรพิจารณาเกี่ยวกับการตั้งชื่อ (Naming) และการกำหนดตำแหน่งที่อยู่ ( Addressing )มีดังนี้

       1.โครงสร้างของชื่อ (Name Structure)

       2.ความรู้เกี่ยวกับชื่อ (Name Knowledge)

       3.ชื่อการต่อถึงกัน (Connection Names)

       4.ชื่อพอร์ต (Port Names)

       5.ชื่อกลุ่ม (Group Name)

      โครงสร้างของชื่อ ที่ใช้ในวงกว้างอาจมีลักษณะเป็นลำดับชั้น (Hierarchy)หรือแบบแบนราบ (Flat ) ก็ได้

       ชื่อที่มีโครงสร้างเป็นลำดับชั้นจะมีโครงสร้างเป็นแบบ SYSTEM.ENTITY หรือในกรณีที่มีหลายๆโครงข่ายอยู่ด้วยกัน โครงสร้างนี้จะอยู่ในรูป NETWORK.SYSTEM.ENTITY ส่วนที่เป็น SYSTEM และ NETWORK เป็นชื่อในวงกว้างที่มี ฟอร์แมตที่แน่นอน ส่วนที่เป็น ENTITY เป็นชื่อที่มีความยาวสูงสุดจำกัดที่ค่าๆหนึ่ง ชื่อ ENTITYอาจเป็นชื่อในวงกว้างได้ถ้าระบบมีตารางเทียบชื่อในวงกว้างกับชื่อท้องถิ่น หรืออาจเป็นชื่อท้องถิ่นก็ได้ เช่น การประยุกต์ใช้งาน Xในสถานี Bที่มีอยู่มีชื่อเป็น B.X

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

โครงสร้างของชื่อในแบบลำดับชั้นมีข้อดีกว่าในแบบแบนราบหลายประการดังนี้

1.สะดวกต่อการเพิ่มชื่อใหม่เข้าไปในโครงข่ายสื่อสาร เนื่องจากชื่อ ENTITY ต้องไม่ซ้ำกับชื่อ ENTITY อื่นภายในระบบของตัวเองเท่านั้น ส่วนการตั้งชื่อในแบบแบนราบจะต้องไม่ซ้ำกับชื่อ ENTITY อื่นเลยในโครงข่าย

2.ชื่อที่มีโครงสร้างแบบลำดับชั้นมีส่วนช่วยในการจัดเส้นทางการสื่อสารจากต้นทางไปยังปลายทาง เนื่องจากชื่อที่มีโครงสร้างเป็นแบบลำดับชั้นกำหนดชื่อระบบที่ Entity นั้นมีอยู่

 

ดังนั้นชื่อที่มีโครงสร้างแบบลำดับชั้นได้รับความนิยมมากกว่า

ความรู้เกี่ยวกับชื่อ มีความสำคัญมากกล่าวคือ Entity หนึ่งสามารถส่งข้อมูลหรือเรียกร้องข้อมูลกับ Entityอื่นได้ จะต้องมีความรู้เกี่ยวกับ Entity นั้น จึงสามารถสื่อสารกันได้

 

ในการส่งข้อมูลแบบ Connectionless เราใช้ชื่อในวงกว้าง อย่างไรก็ตามในการส่งข้อมูลแบบConnection-oriented เรามักใช้ชื่อการต่อถึงกันมากกว่า ยกตัวอย่างเช่น Entity 1 ของระบบ A ต้องการต่อถึงกันไปยัง Entity 2 ของระบบ B ในกรณีนี้เราใช้ชื่อในวงกว้างเป็น B.2 เมื่อ B.2 ยอมรับในการต่อถึงกัน แล้ว Entity A.1 และB.2จะใช้ชื่อการต่อถึงกันซึ่งโดยทั่วไปจะเป็นตัวเลขแทนต่อไป ตัวอย่างเช่น ชื่อการต่อถึงกัน “1 ”และ”2” ดังแสดงในรูป

              รูปแสดงตัวอย่างในการตั้งชื่อ

การใช้ชื่อการต่อถึงกันมีประโยชน์หลายประการดังนี้

         1. ลดความยาวของโอเวอร์เฮดเนื่องจากชื่อการต่อถึงกันมีความยาวน้อยกว่าชื่อในวงกว้าง

         2. การจัดเส้นทางการส่งข้อมูล ชื่อการต่อถึงกันเป็นชื่อที่จัดเส้นทางการส่ง PDU หน่วยถัดไป

3. การมัลติเพลกซ์ (Multiplexing) ทำให้เราสามารถต่อให้ Entity หนึ่งส่งข้อมูลไปยัง Entity อื่นมากกว่าหนึ่งการต่อได้พร้อมกันในกรณีนี้เราใช้ชื่อการต่อถึงกัน สำหรับ PDU แต่ละหน่วยที่ถูกส่งเข้ามา

ชื่อพอร์ต

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

          ดังนั้นชื่อที่มีโครงสร้างแบบลำดับชั้นจึงอยู่ในรูปของ NETWORK.SYSTEM.PORT ตัวอย่างเช่นชื่อ พอร์ต 3 พอร์ตในรูปแสดงตัวอย่างการตั้งชื่อ คือ A.a,A.b,C.c

ชื่อกลุ่ม

          เป็นชื่อที่อ้างถึง Entity ที่มากกว่าหนึ่ง Entityหรือพอร์ตมากกว่าหนึ่งพอร์ต ชื่อกลุ่มเป็นตัวกำหนดกลุ่มผู้รับที่จะได้รับข้อมูลเดียวกันพร้อมๆกัน ชื่อกลุ่มอาจมีได้ 2 ลักษณะคือ

          1. Broadcast เป็นการอ้างถึงทุกๆ entity

          2. Multicast เป็นการอ้างถึงกลุ่ม Entity ย่อยกลุ่มใดกลุ่มหนึ่ง

9. การมัลติเพลกซ์ (Multiplexing)

เราอาจมีวิธีการมัลติเพล็กซ์ออกเป็นสองวิธีคือ

1.การมัลติเพลกซ์เข้าไปยัง Entity หนึ่ง

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

2. การจับคู่ (Mapping) การต่อถึงกันจากระดับหนึ่งไปอีกระดับหนึ่ง

สามารถแบ่งออกได้เป็นสองทิศทางดังแสดงในรูปการมัลติเพล็กซ์และการต่อถึงกันของโปรโตคอลดังนี้

    1. การมัลติเพลกซ์ขึ้นสู่ระดับบน (Upward Multiplexing)
    2. เป็นกรณีที่การต่อถึงกันในระดับบนได้รับการการมัลติเพล็กซ์ให้มาใช้การต่อถึงกันเพียงหนึ่งการต่อถึงกันในระดับที่อยูข้างล่าง ในลักษณะเช่นนี้ทำให้การใช้บริการในระดับที่อยู่ข้างล่างมีประสิทธิภาพดียิ่งขึ้น หรือให้เพื่อสามรถต่อถึงกันจำนวนมากในระดับที่อยู่สูงขึ้นไปแม้ว่าจะมีการต่อถึงกันในระบบที่อยู่ข้างล่างมีเพียงหนึ่งการต่อถึงกันได้ รูปที่ 4.4เป็นตัวอย่างหนึ่งที่มีการมัลติเพลกซ์ขึ้นสู่ระดับบน

    3. การมัลติเพลกซ์ลงสู่ระดับล่าง (Downward Multiplexing Splitting)

หมายถึงการต่อถึงกันในระดับบนหนึ่งการต่อถึงกัน ได้มาจากการต่อถึงกัน ในระดับล่างหลายๆการต่อถึงกัน นั่นคือปริมาณการสื่อสารของการต่อถึงกันในระดับบนถูกแบ่งออกไปยังการสื่อสารย่อยๆในระดับล่าง

รูปการมัลติเพล็กซ์และการต่อถึงกันของโปรโตคอล

10. การให้บริการส่งข้อมูล(Transmission Services)

      โปรโตคอลหนึ่งอาจให้บริการเสริมชนิดต่างๆกับเอนทิตี้ที่ใช้โปรโตคอลนี้อยู่ เช่น

1. ลำดับความสำคัญ(Priority)

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

2 ชั้นของบริการ (Grade of Service)

ข้อมูลชนิดหนึ่งอาจต้องการการประวิงเวลาสูงสุดในเวลาไม่เกินค่าเวลาค่าหนึ่ง

3 ความปลอดภัย(Security)

เกี่ยวข้องกับกลไกการรักษาความปลอดภัย,การห้ามการเข้าถึง ฯลฯ

บริการต่างๆข้างต้นนี้ขึ้นอยู่กับระบบส่งข้อมูลและเอนทิตี้ที่ระดับล่าง

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

โปรโตคอลเทเลไทป์ หรือ อะซิงโครนัส (Teletype หรือ TTY หรือ Asynchronus)

       ลักษณะที่สำคัญของโปรโตคอลชนิดนี้คือ จะส่งข้อมูลทีละ 1 อักษระ TTY เป็นโปรโตคอลแบบเก่าที่ยังคงมีการใช้กันอย่างกว้างขวางในปัจจุบัน ส่วนใหญ่จะใช้กับระบบมินิคอมพิวเตอร์ ระบบสื่อสารหมุนหมายเลข (Dial-up) และกับคอมพิวเตอร์ส่วนบุคคล (PC) ตัวอย่างในการนำโปโตคอล TTY มาใช้กับการสื่อสารข้อมูล ได้แก่ การรับข้อมูลจากตลาดหลักทรัพย์มาแสดง หรือเก็บไว้ในหน่วยความจำของเครื่อง PC ที่สำนักงาน หรือที่บ้านโดยผ่านทางโมเด็ม เป็นต้น

       การทำงานของโปรโตคอลอะซิงโครนัสนั้นจะใช้สัญญาณ หรือ รหัสควบคุมการส่งข้อมูล ซึ่งได้แก่ สัญญาณ XON และ XOFF ซึ่งมีลักษณะการทำงานดังแสดงในรูป

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

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

โปรโตคอล RJE (Remote Job Entry)

       เมื่อกลุ่มของผู้ใช้ซึ่งอยู่ต่างสถานีกันต้องการจะส่ง-รับข้อมูลแลกเปลี่ยนซึ่งกันและกัน โดยไม่ต้องการจะใช้ระบบ On-line ซึ่งมีราคาค่อนข้างจะแพง วิธีการหนึ่งที่นิยมเลือกใช้กันคือการส่งข้อมูลผ่านระบบเทอร์มินัลแบบRJE เทอร์ทินัลแบบ RJE จะทำหน้าที่เก็บกักข้อมูลที่ส่งมาจากต้นทางแล้วทำการส่งต่อไปยังปลายทาง ในทางกลับกัน ถ้าผู้รับทางปลายทางต้องการจะส่งข้อมูลกลับมายังต้นทางบ้างก็สามารถส่งข้อมูลโดยผ่านทางเทอร์มินัลแบบ RJE กลับมาได้

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

       สำหรับการสื่อสารระหว่างเครื่อง PC กับเครื่อง PC ด้วยกันแล้ว จะมี PC เครื่องหนึ่งทำหน้าที่เลียนแบบ (Emulate) เป็นเทอร์มินัลแบบ RJE สำหรับส่งผ่านข้อมูลไปยังอีก PC อีกเครื่องหนึ่ง โปรแกรมสำหรับการเลียนแบบเทอร์มินัลแบบ RJE มักมีอยู่ในคอมพิวเตอร์ทั่วๆ ไป สำหรับเทอร์มินัลที่นิยมใช้กันมาก ได้แก่ เทอร์มินัลของเครื่อง IBM 2780 หรือ IBM 3780 สำหรับในการส่ง-รับข้อมูลระหว่างเครื่องคอมพิวเตอร์ขนาดใหญ่ 2 เครื่องที่ต่างบริษัทผู้ผลิต หรือมีระบบบางอย่างต่างกัน ก็ทักจะนิยมส่ง-รับข้อทูลกันโดยอาศัยโปรโตคอลแบบRJE นี้ด้วยเช่นกัน

โปรโตคอลซิงโครนัส (Synchronous)

       วิธีการส่งข้อมูลของโปรโตคอลซิงโครนัส คือ ข้อมูลจะถูกจัดรวมเข้าเป็นแมสเสด หรือ ข่าวสาร (Message) โดยแต่ละแมสเสกจะประกอบด้วยแฟลก (Flag) ที่ส่วนหัว (Header) และส่วนท้าย (Tailer) ของแมดเสดดังรูปรูปแบบของแมสเสดของโปรโตคอลแบบซิงโครนัส

 

 

 

       แฟลกที่ส่วนหัวจะประกอบด้วยบิตอักขระแสดงจุดเริ่มต้นจองข่าวสาร หรือ SOH (Start of Header) จากนั้นจะเป็นรายละเอียดเกี่ยวกับข่าวสารที่จะส่ง เพื่อให้ทางผู้รับสามารถจัดลำดับรวบรวมข้อมูลเมื่อถึงปลายทางได้ถูกต้อง หรือ อาจจะบอกตำแหน่งของปลายทาง รวมทั้งบอกเส้นทางการสื่อสาร แล้วจึงจบบิตส่วนหัวด้วยอักขระแสดงจุดเริ่มต้นของข้อความ หรือ STX(Start of Text) จากนั้นจึงเป็นข้อความหรือข้อมูลที่ต้องการจะส่งให้ผู้รับ

       เมื่อจบจากข้อความข่าวสารทั้งหมดแล้ว จะต่อด้วยของแฟลกส่วนท้ายของข่าวสารซึ่งประกอบด้วยบิตอักขระแสดงจุดสิ้นสุดของข้อความ หรือ ETX (End of Text) แล้วจึงตามด้วยบิตสำหรับการตรวจสอบข้อผิดพลาดของข้อมูล หรือ FCS (Frame Check Sequence) ในการตรวจสอบพาริตี้บิตที่ปลายทางผู้รับ จากนั้นจึงจบแมสเสดลงด้วยอักขระแสดงจุดสิ้นสุดการส่งข่างสารหรือ EOT (End of Transmission)

       โปรโตคอลซิงโครนัสที่มีใช้กันอย่างแพร่หลาย ได้แก่ SLDC และ X.25 ซึ่งจะมีลักษณะการทำงานคล้ายคลึงกัน คือแลกข้อมูลทั้งหมดออกเป็นแมสเสดๆ มีการควบคุมการส่งข้อมูล เพื่อป้องกันกรณีปลายทางรับข่าวสารไม่ทัน สามารถกำหนดเส้นทางการส่งข้อมูลในระบบเครือข่ายได้ บอกตำแหน่งของผู้ส่ง และผู้รับรวมั้งกำหนดหน้าที่ของเลเยอร์ที่ 1 และเลเยอรี่ 2 ในรูปแบบ OSI โปรโตคอลทั้ง 2 ชนิดนี้จะไม่ใช้ในเลเยอร์ระดับสูง

       ข้อแตกต่างของโปรโตคอล SDLC และ X.25 คือ โปรโตคอล X.25เป็นโปรโตคอลของเครือข่ายแบบแพ็กเกจสวิจชิ่ง ส่วนโปโตคอล SDLC เป็นโปรโตคอลมาตรฐานในระบบ On-line ซึ่งไม่ใช้แพ็กเกจสวิตชิ่งในการเชื่อมโยงเส้นทางการสื่อสาร

โปรโตคอล BSC หรือ BISYN (Binary Synchronous Communication)

       โปรโตคอล BSC หรือ BISYN นั้น เป็นโปรโตคอลซิงโครนัสแบบเฉพาะที่ใช้กับเครือข่ายสื่อสารข้อมูลที่ใช้เครื่องคอมพิวเตอร์ IBM ตัวอย่างการใช้โปรโตคอล BSC ที่เห็นอยู่ในชีวิตประจำวัน ได้แก่ ระบบเครือข่าย ATM ของธนาคารที่ใช้เครื่องคอมพิวเตอร์ของ IBM โปรโตคอล BSC จะทำการส่งข้อมูลในรูปของกลุ่มบิต หรือ ไบต์ (Bytes) ข่าวสารที่จะส่งประกอบด้วยจุดเริ่มต้นส่วนหัว (SOH) ข้อความ จุดสิ้นสุดข้อความ (EOT) และส่วนท้ายของข่าวสาร โดยรหัสบิตที่ใช้จะเป็นอักขระขนาด 8 บิต (1 ไบต์) รหัสที่ใช้แทนตัวอักษร ได้แก่ รหัสแอสกี และรหัสเแอบซีดิก

       โปรโตคอล BSC เป็นการสื่อสารข้อมูลแบบครึ่งดูเพล็กซ์ คือผลัดกันโต้ตอบระหว่างผู้ส่งและผู้รับ ผู้ส่งจะเป็นผู้ควบคุมการสื่อสารที่เรียกว่า “มาสเตอร์ ”(Master) ส่วนผู้รับจะทำหน้าที่เป็นผู้ตามหรือ “สเลบ” (Slave) โดยมีหน้าที่ ตอบรับการสื่อสารเพียงอย่างเดียว ลักษณะของการสื่อสารส่ง-รับข้อมูลเป็นดังรูปการตอบโต้การส่ง-รับข้อมูลของโปรโตคอล BSC

 

        จากรูปการตอบโต้การรับส่งข้อมูลของโปรโตคอล BSCในการทำงานของโปรโตคอล BSC ผู้ส่ง หรือ CPU-1 จะส่งสัญญาณร้องขอ ENQ เข้าสู่สายการสื่อสารที่อยู่ในสภาวะ “ว่าง” (Idle) ไม่มีการส่ง-รับข้อมูลอยู่ในขณะนั้น เพื่อแจ้งต่อ CPU-2 ว่า ตนต้องการจะส่งข้อมูลไปให้กับ CPU-2 ถ้า CPU-2 พร้อมที่จะเป็นผู้รับข้อมูลจาก CPU-1 ก็จะตอบรับกลับมายัง CPU-1 ด้วยสัญญาณตอบรับ ACK สำหรับสัญญาณตอบรับ ACK นั้นจะสลับกันระหว่าง ACK-0 และ ACK-1 ทุกครั้งที่ CPU-2 ตอบรับการติดต่อ หรือยืนยันว่าได้รับข้อมูล หรือข่าวสารจาก CPU-1 และเป็นการยืนยันว่าตนพร้อมจะรับข้อมูลในบล็อกต่อไปอีกด้วย ในกรณีถ้า CPU-2 ไม่ได้รับข้อมูล หรือพบว่ามีความผิดพลาดในข้อมูล CPU-2 ก็จะส่งสัญญาณ NAK กลับไปบอกให้ CPU-1 ส่งข้อมูลบล็อกนั้นมาให้ใหม่ ถ้าCPU-2 ไม่พร้อมจะรับข้อมูลก็จะส่งสัญญาณ WACK ให้ CPU-1 หยุดรอสัญญาณ ACK จาก CPU-2 โดยในระหว่างการรอสัญญาณ ACK CPU-1 จะส่งสัญญาณ EOT เป็นการแสดงการสิ้นสุดารส่งข้อมูล สายสื่อสารก็จะอยู่ในสภาวะ “ว่าง. อีกครั้ง จะเห็นว่าโปรโตคอล BSC จะสามารถตรวจสอบความผิดพลาดของข้อมูลได้ แต่ไม่สามารถก้ไขข้อผิดพลาดได้ โดยจะต้องให้ผู้ส่งทำการส่งข้อมูลที่เกิดความผิดพลาดนั้นมาให้ใหม่

 

 

โปรโตคอล SDLC (Synchronous Data Link Control)

       โปรโตคอล SDLC เป็นโปรโตคอลแบบซิงโครนัสที่ส่งข้อมูลเป็นกลุ่มอักขระที่แทนด้วยรหัสไบนารี (Binarycoded Character) มีความสามารถในการเชื่อมโยงข้อมูลทั้งแบบเครื่องต่อเครื่อง หรือจุดต่อจุด(point-to-point) และเครื่องต่อ 2 เครื่องหรือมากกว่า หรือหลายจุด (Point-to-Multipoint) นอกจากนี้ยังสามารถรับส่งข้อมูลได้ทั้งแบบครึ่งดูเพล็กและแบบดูเพล็กซ์เต็ม การควบคุมการรับส่งข้อมูลจะควบคุมด้วยอักขระควบคุมที่เรียกว่า อักขระควบคุมดาต้า-ลิงค์(Data-linkControl Character) โปรโตคอล SDLC เป็นมาตรฐานโปรโตคอลการสื่อสารของบริษัท IBM เช่นเดียวกับโปรโตคอล BSC

       รูปแบบของเฟรมของโปรโตคอล SDLC ที่ใช้ในการส่งข้อมูลมี 3 แบบ คือ เฟรมข้อมูล (information Frame) เฟรมผู้ควบคุม (Supervisory Frame) และเฟรมไม่มีลำดับ (Nonsequence Frame) เฟรมข้อมูลจะเป็นเฟรมที่บรรจุข่าวสาร ข้อมูล หรือข้อความ ส่วนเฟรมผู้ควบคุมจะบรรจุข้อมูลการควบคุมการส่งข้อมูล และเฟรมไม่มีลำดับจะมีไว้สำหรับการเริ่มต้นการสื่อสาร หรือยกเลิกการสื่อสารข้อมูล ลักษณะเฟรม SDLC เป็นดังรูปเฟรมข้อมูลของโปรโตคอล SDLC

F

A

C

I

FCS

F

Flag

Addesss

Control

Information

Fam Check Sequence

Flag

รูปเฟรมข้อมูลของโปรโตคอล SDLC

       F = Flag จะประกอบด้วยอักขระควบคุมการบอกจุดเริ่มต้นส่วนหัว (SOH) จุดเริ่มต้นข้อมูล (STX) และจุดจบของข้อมูล (ETX) โดยรูปแบบของอักขระจะเป็นอักขระ SYN หรือ 0111 1110 (8 บิต)

       A = Address เป็นรหัส 8 บิตบอกตำแหน่งของผู้รับข้อมูล

       C = Control อาจจะเป็นรหัส 8 บิต หรือ 16 บิต ทำหน้าที่เป็นตัวบ่งบอกว่าในเฟรมมีการบรรจุข้อมูล หรือบรรจุคำสั่งหรือสัญญาณโต้ตอบอย่างไรบ้าง

       I = Information บรรจุ ข่าวสาร ข้อมูล คำสั่ง หรือการโต้ตอบขึ้นอยู่กับว่าเฟรมที่ส่งนั้นเป็นเฟรมข้อมูล เฟรมควบคุมหรือเฟรมไม่มีลำดับ ขนาดของ I จึงขึ้นอยู่กับชนิดของเฟรมข้อมูลโดยส่งเป็นบิตๆ ไม่ส่งเป็นไบต์

       FCS = Frame Check Sequence เป็นส่วนที่ใช้ในการตรวจสอบความผิดพลาดในการรับ-ส่งข้อมูลที่อาจเกิดขึ้น ซึ่งอาจจะตรวจสอบเฉพาะพาริตี้บิต หรือทั้งบล็อกข้อมูล ส่วนใหญ่ FCS จะมีขนาด 16 บิต

โปรโตคอล SDLC แบบจุดต่อจุด

       การทำงานของโปรโตคอล SDLC แบบจุดต่อจุดจะมีลำดับการทำงานแบ่งอกได้เป็น 5 ขั้นตอน คือ

1.CPU-1 เป็นผู้ส่งข้อมูลหรือมาสเตอร์ เฟรม SDLC จะมีอักขระ 5 อักขระ คือ

P     S     S     E     P

A     Y     Y     N     A

D     N     N     Q     D

2.CPU-2 ตอบรับเป็นผู้รับข้อมูล หรือสเลบ เฟรม SDLC จะมีอักขระ 6 อักขระ คือ

P     S     S      D     A     P

A     Y     Y      L      C     A

D     N     N      E      K     D

                            0

3.CPU-1 เริ่มส่งข้อมูล เฟรม SDLC จะมีอักขรัส่วนหัวและส่วนท้ายอย่างละ 4 อักขระรวมกับจำนวนอักขระของข้อมูล

P     S     S     S               E     C     C     P

A     Y     Y     T     Text     T      R     R     A

D     N     N    X               X      C     C     D

                                                                                                      1      2

4.CPU-2ตอบรับเฟรมข้อมูล SDLC มีอักขระ 6 อักขระ คือ

P     S      S     D     A     P

A     Y      Y     L     C     A

D     N     N     E     K      D

                          0,1

5.ยกเลิกการติดต่อข้อมูล เฟรม SDLC จะมีอักขรั 5 อักขระเช่นเดียวกับขั้นตอนที่ 1 คือ

P     S     S      E     P

A     Y     Y      O     A

D     N     N      T     D

        PAD = Polling Adress จะเป็นอักขระแรกและสุดท้ยของแต่ละเฟรมทุกเฟรม

        SYN = SYNchronous เป็นเฟรมซ้ำ 2 อักขระ เพื่อให้ผู้รับหรือผู้ส่งตรวจสอบสัญญาณว่าถ้ามีอักขระSYN มา 2 ตัวติดต่อนั้นคือจะเริ่มเฟรมข้อมูล SDLC ที่ส่งมาจากอีกด้านหนึ่ง

        DLE = Data-Link Escape เป็นอักขระควบคุมสายสื่อสาร เช่น DLE ACK, DLE WACK หรือควบคุมโหมดการส่งข้อมูล เช่น DLE STX, DLE ETX หรือควบคุมการติดต่อ เช่น DLE ENQ,DLE EOT

        CRC = Cyclic Redundan Check เป็นอักขระสำหรับบอกวิธีการตรวจสอบความผิดพลาดของข้อมูลให้แก่ผู้รับ

        ตัวอย่างสมมติว่าเราใช้โปรโตคอล SDLC ส่งข้อมูลแบบเครื่องต่อเครื่องโดยที่ข้อมูลแบ่งออกเป็น 100 บล็อกๆละ 200 อักขระหรือไบต์ ความเร็วในการรับส่งข้อมูล 4,800บิตต่อวินาที ระยะทางระหว่างเครื่องทั้งสองเท่ากับ 1,000 กม.และสมมติว่าไม่มีความผิดพลาดในการรับ-ส่งข้อมูลเลย        เพราะฉะนั้นจำนวนของอักขระทั้งหมดที่ใช้ในการส่งจะเท่ากับ

       = 5 กขระในขั้นตอนที่ 1 + 6 อักขระ ในขั้นตอนที่ 2 + {(8+200)} อักขระในขั้นตอนที่ 3 + 6 อักขระในขั้นตอนที่ 4 } x 100 ปล็อก + 5 อักขระในขั้นตอนที่ 5

       = 5 + 6 +(8 + 200 + 6)100 + 5 = 21,416 อักขระหรือไบต์

       ดังนั้นเวลาที่ใช้ในการส่งข่าวสารทั้งหมด = (21,416 ไบต์ x 8 บิต)/4,800 บิตต่อวินาที

                                               = 35.693 วินาที

       ถ้าเสียเวลาในการเคลียร์สายให้ว่างใน 1 รอบไป-กลับ                         = 0.015 วินาที

       และเสียเวลาในการเดินทางของข้อมูลผ่านสายใน 1 รอบไป-กลับ              = 1 x 10-6 วินาทีต่อกม.

       ดังนั้นเวลาที่เสียไป (delay) ทั้งหมด = 1 x 10-6 (1,000 กม.) +0.015      = 0.016 วินาที

       เพราะฉะนั้นเวลาทั้งหมดทีใช้ในการติดต่อสื่อสาร = 35.693 + 0.016        = 35.709 วินาที

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

              (200ไบต์)(100บล็อก)(8บิต)/4,800 บิตต่อวินาที = 33.33 วินาที

ดังนั้นประสิทธิภาพของการส่งข้อมูลโดยใช้โปรโตคอล SDLC แบบเครื่องต่อเครื่องจะเท่ากับ

              (33.33 x 100) / 35.709 = 93.337 เปอร์เซ็นต์

จะเห็นได้ว่ายิ่งเราส่งข้อมูลจำนวนน้อยลงเท่าใด ประสิทธิภาพของการส่งข้อมูลโดยอาศัยโปรโตคอล SDLC แบบจุดต่อจุดก็ยิ่งน้อยลงเท่านั้น เพราะเราจะเสียเวลาส่วนหนึ่งกับ Overhead ของทุกๆบล็อกข้อมูลเสมอ

โปรโตคอล SDLC แบบหลายจุด

       โปรโตคอล SDLCสามารถทำงานแบบดูเพล็กซ์เต็ม และสามารถติดต่อกับคอมพิวเตอร์หรือเทอร์มอนัลอื่นที่มากกว่าหนึ่งเครื่องโดยผ่านสายสื่อสารเพียงสายเดียว        ระหว่างที่มีการรับ-ส่งข้อมูลจะมีคอมพิวเตอร์เพียงเครื่องเดียวเท่านั้นที่เป็นผู้ส่งหรือมาสเตอร์ ส่วนที่เหลือนั้นจะเป็นผู้รับ ในการส่งแต่ละเฟรมข้อมูล ทุกๆโหนดในเครือข่ายจะสามารถเห็นข้อมูลที่ส่งมาในสายสื่อสาร แต่จะมีโหนดเดียวเท่านั้นที่จะสามารถรับข้อมูลได้ โดยผู้ส่งจะหยั่ง (POOLING) เพื่อเลือก (SELECT)และกำหนดตำแหน่ง (ADDRESS)ของผู้รับข้อมูลของตน ตัวอย่างการทำงานของโปรโตคอล SDLC แบบหนึ่งเครื่องต่อหลายเครื่องเป็นดังรูปโปรโตคอล SDLC แบบครึ่งดูเพล็กซ์

           เทคนิคการตรวจสอบความผิดพลาดสำหรับการสื่อสารข้อมูลด้วยโปรโตคอล SDLC มีหลายวิธีขึ้นอยู่กับรหัสและฟังก์ชันที่ใช้ เช่นการตรวจสอบความซ้ำซ้อนแนวดิ่ง หรือ Vertical Redundancy Checking (VRC)เป็นการตรวจสอบพาริตี้คี่ในแต่ละอักขระที่ได้รับมาจากต้นทาง ส่วนการตรวจสอบการซ้ำซ้อนตามยาว หรือ Longitudenal-RedundancyChecking(LRC)และการตรวจสอบความซ้ำซ้อนวนรอบ หรือ Cyclic-Redundancy Checking (CRC)เป็นการตรวจสอบทั้งบล็อกข้อมูลที่ได้รับจากต้นทาง

        โปรโตคอล SDLC ให้ประสิทธิภาพและความเชื่อถือได้ดีกว่าโปรโตคอล BSC แต่โปรโตคอลที่มีรูปแบบคล้ายคลึงกับ SDLC แต่จะมีประสิทธิภาพในการสื่อสารข้อมูลได้ดีกว่าคือโปรโตคอลHDLC

โปรโตคอล HDLC (Hight Level Data Link Control)

        โปรโตคอล HDLC เป็นโปรโตคอลมาตรฐานซึ่งกำหนดขึ้นโดยองค์กร ISO เพื่อเพิ่มความเร็วในการส่ง-รับข้อมูลแบบซิงโครนัส สามารถใช้ได้กับการเชื่อมโยงการส่งข้อมูลทั้งแบบจุดต่อจุด และแแบหลายจุด การส่ง-รับข้อมูลเป็นได้ทั้งดูเพล็กซ์และครึ่งดูเพล็กซ์ ข้อมูลที่ส่งรับเป็นแบบบิตข้อมูล (Bit-Oriented)ใช้วิธีการส่งผ่านข้อมูลแบบซิงโครนัส

        โปรโตคอล HDLC จะกำหนดผู้ส่งและผู้รับเป็นสถานีปฐมภูมิ และสถานีทุติยภูมิ (Primary/Secondary)โดยสถานีปฐมภูมิจะเป็นผู้ควบคุมการติดต่อเชื่อมโยง และการส่ง-รับของข้อมูลภายในเครือข่ายการสื่อสาร ส่วนสถานีทุติยภูมิจะเป็นเพียงผู้รับคอยปฏิบัติตามคำสั่ง และส่งสัญญาณตอบรับเท่านั้น ในรูปการเชื่อมโยงการสื่อสารโปรโตคอล HDLC เป็นตัวอย่างของการติดต่อระหว่างสถานีปฐมภูมิและทุติยภูมิ ใน 3 รูปแบบ

                   ลักษณะของข้อมูลที่ส่งออกจากผู้ส่ง หรือสถานีปฐมภูมิ จะมีลักษณะเช่นเดียวกับโปรโตคอล SDLC คือส่งเป็นเฟรม โดยมีส่วนหัวและส่วนท้ายข่าวสารเช่นเดียวกัน

        คุณสมบัติอย่างหนึ่งของโปรโตคอล HDLC คือแทนที่จะต้องส่งข้อมูลไปทีละ 1บล็อก พร้อมๆกันแล้วต้องคอยตอบรับแบบบล็อกต่อบล็อก เช่นในการสื่อสารในโปรโตคอล SDLC สถานีปฐมภูมิสามารถส่งข้อมูลได้ทีละหลายๆบล็อกพร้อมกันแล้วค่อยๆรอการตอบรับจากสถานีทุติยภูมิว่าผลการรับข้อมูลเป็นอย่างไร ซึ่งทำให้ลดการเสียเวลาในการตอบรับบล็อก ซึ่งอาจจะมีการตอบรับเพียงครั้งเดียวสำหรับการส่งข้อมูลทั้งหมดก็ได้ วิธีการนี้เรียกว่า “Sliding Window”

 

           

 

        โปรโตคอล HDLC ให้ประสิทธิภาพในแง่ที่ประหยัดเวลา สามารถเพิ่มความเร็วในการส่งข้อมูลได้ดีกว่าโปรโตคอล SDLC ถ้าไม่มีความผิดพลาด หรือมีความผิดพลาดในการส่งข้อมูลน้อย แต่ถ้ามีความผิดพลาดเกิดขึ้นมากจะทำให้เสียเวลาในการส่งข้อมูลย้อนหลังมาให้กับสถานีทุติยภูมิใหม่บ่อยๆ ทำให้เสียเวลากว่าการใช้โปรโตคอล SDLC

โปรโตคอล X.25

         โปรโตคอล X.25 เป็นโปรโตคอลแบบบิตข้อมูล(Bit-Oriented)ซึ่งกำหนดมาตรฐานโดยองค์กร CCICTซึ่งใช้การแพร่หลายทั้งในยุโรปและในอเมริกาเหนือ การทำงานของโปรโตคอล X.250 จะอยู่ในเลเยอร์ 3

         ชั้นล่างของรูปแบบ OSI เท่านั้น บางครั้งเราเรียกโปรโตคอล X.25 ว่า”แพ็กเกจเลเยอร์โปรโตคอล ”เพราะมักใช้เครือข่ายแบบแพ็กเกจสวิตช์

         โปรโตคอล X.25 ใช้ติดต่อระหว่างเครื่องโฮสต์ หรือ DTE (Dafa Terminal Equipment)กับสถานีนำส่งหรือ DCE(Data Communication Equipment)สำหรับในการอินเตอร์เฟชกับเลเยอร์ชั้นล่างสุด (Physical layer)

         X.25 ยังต้องอาศัยโปรโตคอล X.21หรือ X.21 bis ช่วยในการติดต่อกับการอินเตอร์เฟชแบบดิจิตอลและอินเตอร์เฟชแบบอนาล็อกตามลำดับ

                     เฟรมข้อมูลของโปรโตคอล X.25 นั้นจะแบ่งออกเป็นเฟรมๆ เรียกว่าแพ็กเกจเช่นเดียวกับเฟรมข้อมูลของโปรโตคอล SDLCในการสื่อสารข้ อมูลระหว่าง DTEและ DCEในเลเยอร์ชั้นที่ 2 นั้นสามารถสื่อสารกันโดยผ่านทางสายโทรศัพท์ได้

         สำหรับในการสื่อสารข้อมูลในเลเยอร์ชั้นที่ 3เลเยอร์ Network หรือบางทีเรียกว่า “เลเยอร์ Packet”จะมีลักษณะการสื่อสารที่เรียกว่า วงจรเสมือน (Virtual Curcuit)ซึ่งมีลักษณะการติดต่อสื่อสารอยู่ 3 ขั้นตอนคือ

         1.การกำหนดวงจรสื่อสาร (Establish)เริ่มต้นจาก DTE ต้นทางส่งสัญญาณขอติดต่อข้อมูลกับ DTE ปลายทาง เมื่อทางDTE ปลายทางตอบรับการติดต่อว่าพร้อม ก็เป็นอันว่าวงจรการสื่อสารได้เริ่มต้นขึ้นแล้ว

         2.การส่ง-รับข้อมูล(Transmit)เป็นการส่งรับแลกเปลี่ยนข้อมูลซึ่งกันและกันระหว่าง DTE ทั้งสองด้านข้อมูลจะถูกส่งเป็นแพ็กเกจๆผ่านเครือข่ายแพ็กเกจสวิตช์

         3.การยุติการสื่อสาร (Disconnect) DTE ต้นทางจะส่งสัญญาณบอกการยุติการสื่อสารต่อ DTEปลายทางโดยต้องรอให้ DTEปลายทางยืนยันการยุติการสื่อสารกลับมาด้วย

                   ในรูปแสดงขั้นตอนการสื่อสารของโปรโตคอล x.25 ในเลเยอร์ชั้น Network เป็นการแสดงการสื่อสารข้อมูลผ่านเครือข่ายแพ็กเกจสวิตซ์ โดยอาศัยโปรโตคอล x.25 ทั้ง 3 ขั้นตอน

 

รูปแสดงขั้นตอนการสื่อสารของโปรโตคอล x.25 ในเลเยอร์ชั้น Network

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

 

MENU