ในการออกแบบเนตเวอร์กนั้น จะทำการแบ่งหน้าที่ของการทำงานต่างๆออกเป็นลำดับชั้น (layer) โดยที่แต่ละเลเยอร์จะทำการรับข้อมูลจาก เลเยอร์ที่สูงกว่าลงมา และส่งผ่านไปให้เลเยอร์ที่ต่ำกว่าลงไปเรื่อยๆ จนถึงเลเยอร์ลำดับล่างสุด ซึ่งจะเป็นตัวกลางทางกายภาพ (physical medium) หรือสายสัญญาณที่ใช้ทำการส่งข้อมูลกันจริงๆ
เรามักจะมองว่า เกิดการสื่อสารกันระหว่างเลเยอร์ที่มีลำดับตรงกัน กับคอมพิวเตอร์ทั้งสองฝ่ายขึ้น ซึ่งจะเรียกว่าการสื่อสารเสมือน (virtual communication) แต่ในความเป็นจริงแล้ว การสื่อสารที่เกิดขึ้นจริงจะถูกส่งผ่านตามเลเยอร์ลงมาจนกระทั่งถึงเลเยอร์ลำดับล่างสุด ซึ่งเป็นตัวกลางการสื่อสาร และส่งผ่านไปให้คอมพิวเตอร์อีกด้านหนึ่งและผ่านเลเยอร์ จากชั้นล่างสุดไปจนถึงเลเยอร์ชั้นบนสุด วิธีการที่เลเยอร์ในลำดับที่ตรงกันของเครื่องที่ทำการสื่อสารกัน จะถูกเรียกว่าโปรโตคอล (protocol)
เพื่อจะสามารถทำการอธิบาย สถาปัตยกรรมเครือข่ายคอมพิวเตอร์ได้เข้าใจอย่างละเอียด รวมทั้งเพื่อแสดงถึงตัวอย่างการออกแบบเลเยอร์ และรูปแบบของโปรโตคอลจึงได้มีการพัฒนาแบบจำลอง (model) ของเนตเวอร์กขึ้นมา แบบจำลองนี้ได้ถูกพัฒนาโดย International Standard Organization (ISO) และเรียกชื่อแบบจำลองนี้ว่า OSI (Open System Interconnection) ซึ่งจะมีทั้งหมด 7 เลเยอร์ โดยหลักการออกแบบเลเยอร์คือ
1. เลเยอร์จะถูกกำหนดขึ้นมาเมื่อมีข้อแตกต่างด้านแนวคิด (abstraction)
2. แต่ละเลเยอร์จะมีการกำหนดการทำงานอย่างละเอียด
3. ฟังก์ภายในเลเยอร์จะพยายามมุ่งไปสู่ระดับมาตรฐานของโปรโตคอล
4. ขอบเขตของเลเยอร์จะถูกเลือกและจำกัดให้มีปริมาณการเชื่อมต่อ ระหว่างเลเยอร์ให้น้อยที่สุด
5.จำนวนของเลเยอร์จะต้องมากพอที่จะทำให้ฟังก์ชั่นที่จำเป็นและแตกต่างกันไม่อยู่ในเลเยอร์เดียวกัน และจำนวนเลเยอร์จะต้องไม่มากจนเกินไป
1. เลเยอร์ : Physical layer
เลเยอร์นี้จะเกี่ยวข้องกับการส่งข้อมูลระดับบิต ผ่านช่องสื่อสารข้อมูล โดยการออกแบบจะต้องแน่ใจว่าจะสามารถส่งข้อมูลออกไป และปลายทางจะต้องรับข้อมูลนั้นได้อย่างถูกต้อง โดยส่วนใหญ่จะเป็นข้อกำหนดเกี่ยวกับเรื่องของแรงดันไฟฟ้า ว่าจะต้องใช้แรงดันเท่าไรสำหรับแทนเลข "1" และเท่าใดสำหรับแทนเลข "0" ระยะเวลาในการส่งแต่ละบิตจะต้องห่างกันเท่าใด รวมถึงรูปแบบของคอนเนคเตอร์ วิศวกรไฟฟ้าจะเกี่ยวข้องโดยตรงกับเลเยอร์ในลำดับชั้นนี้
2. เลเยอร์ : Data linklayer
จุดประสงค์หลักของเลเยอร์นี้คือ จะทำการควบคุมการส่งข้อมูลดิบให้เหมือนกับว่า ไม่มี ข้อผิดพลาดเกิดขึ้น ทำให้เลเยอร์ในลำดับถัดไปไม่ต้องสนใจในเรื่องนี้ วิธีการคือจะต้อง ทำการแตกข้อมูลออกเป็นก้อนๆเรียกว่า เฟรมข้อมูล (data-frame) แล้วทำการส่งออกไปทีละชุด และรอการตอบรับ (acknowledge frame) กลับมา
ในกรณีที่มีสัญญาณรบกวน ทำให้สัญญาณขาดหายไป จะต้องมีการบอกให้เครื่องต้นทางทำการส่งข้อมูลที่หายไปนั้นกลับมาให้ใหม่ นอกจากนี้จะต้องมีการพักข้อมูลไว้ในบัฟเฟอร์ หากความเร็วในการส่งข้อมูลของทั้งสองฝ่ายไม่เท่ากัน
3. เลเยอร์ : Network layer
หน้าที่หลักของเลเยอร์นี้ จะเกี่ยวข้องกับการหาเส้นทาง (route) เพื่อพิจารณาว่าแพคเก็ตจะถูกส่งจากต้นทางไปยังปลายทางได้อย่างไร การกำหนดเส้นทางอาจจะกำหนดตั้งแต่เริ่มต้นติดต่อเลย หรืออาจจะสามารถเปลี่ยนแปลงตลอดเวลา (dynamic) ก็ได้ นอกจากนี้ก็มีเรื่องที่จะต้องพิจารณาหากมีการส่งข้อมูลข้ามเนตเวอร์ก แล้วมีความแตกต่างระหว่างเนตเวอร์ก หรือใช้โปรโตคอลแตกต่างกัน เนตเวอร์กเลเยอร์จะต้องทำการจัดการกับปัญหาเหล่านี้เพื่อให้แต่ละเนตเวอร์กสามารถเชื่อมต่อกันได้ เสมือนเป็นเนตเวอร์กเดียวกัน
4. เลเยอร์ : Transport layer
เลเยอร์นี้จะคอยทำการติดต่อกับเลเยอร์ถัดไป (session layer) เพื่อคอยแยกข้อมูล ให้มีขนาดพอเหมาะและส่งต่อให้กับ network layer พร้อมทั้งตรวจสอบว่าข้อมูลได้ถูกส่งไปถึงยังปลายทางได้อย่างเรียบร้อยหรือไม่ โดยเลเยอร์นี้จะต้องจัดการได้อย่างมีประสิทธิภาพเพื่อเป็นการแยกให้ session layer เป็นอิสระจากการเปลี่ยนแปลงทางด้านฮาร์ดแวร์
5. เลเยอร์ : Session layer
นอกจากจะทำการส่งข้อมูลแบบเดียวกับ transport layer แล้ว ยังมีการให้บริการอื่นๆเช่น การยอมให้ผู้ใช้งานเข้าไปใช้งานยังเครื่องที่อยู่ห่างไกลออกไป (remote login) หรือทำการถ่ายโอนไฟล์ระหว่างเครื่อง นอกจากนี้ยังทำหน้าที่เกี่ยวกับการซิงโครไนซ์เซชั่น (synchronization) หรือทำให้สองระบบทำงานสัมพันธ์กัน
6. เลเยอร์ : Presentation layer
เลเยอร์นี้จะสนใจในเรื่องของรูปแบบของข้อมูล เช่นการเปลี่ยนรหัสข้ามจาก ASCII เป็นรหัส EBCDIC เพื่อทำให้คอมพิวเตอร์ที่มีการแทนรหัสต่างกันสามารถสื่อสารกันได้ นอกจากนี้ก็อาจทำการลดขนาดของข้อมูล (data compression) หรือทำการเข้ารหัสของข้อมูล (data encryption) เพื่อป้องกันการโจรกรรมข้อมูลได้ด้วย
7. เลเยอร์ : Application layer
เลเยอร์บนสุดจะเกี่ยวข้องกับ โปรโตคอลมากมาย ซึ่งจะมีการใช้งานที่แตกต่างกันโดยเฉพาะ ตัวอย่างเช่นการควบคุมเทอร์มินอลชนิดต่างๆ รูปแบบการแสดงผลทางจอภาพอาจมีความแตกต่างกัน ก็อาจมีการกำหนดเทอร์มินอลเสมือน เพื่อเป็นตัวกลางในการควบคุมการทำงานของเทอร์มินอลจริงๆ (คล้ายกับ java bytecode ที่เป็นรหัสกลางสำหรับ java compiler จะทำการตีความให้สามารถทำงานที่เครื่องต่างชนิดกันได้)
ตัวอย่างของเนตเวอร์ก เปรียบเทียบกับโมเดลของ OSI
ARPANET : Advanced Research Project Agency Network เกิดจากโครงการวิจัยทางการทหารของ กระทรวงกลาโหมของสหรัฐอเมริกาโดยเริ่มต้นจากมหาวิทยาลัยบางแห่ง และเพิ่มจำนวนขึ้นมากเรื่อยๆ (ปัจจุบันกลายเป็นระบบอินเทอร์เนต)
ARPANET ไม่ได้มีการแบ่งรูปแบบตามแบบของ OSI เนื่องจากมีการใช้งานก่อนกำหนดมาตรฐาน OSI เกือบ 10 ปี โปรโตคอลการสื่อสารระหว่าง IMP จะเป็นการผสมผสานระหว่าง layer 2 และ layer 3 นอกจากนี้ยังมีกระบวนการตรวจสอบความถูกต้องของข้อมูลที่ฝั่งรับของ IMP ด้วย
ARPANET มีโปรโตคอลที่ทำงานคล้ายในแบบจำลองของ OSI ที่ network layer และ transport layer เรียกว่า IP (Internet Protocol) มีลักษณะแบบ connectionless และถูกออกแบบมาให้ต่อกับ LAN และ WAN ที่ต่อกับ ARPA internet
โปรโตคอลของ ARPANET ที่ transport layer ทำงานแบบ connection-oriented เรียกว่า TCP (Transmission Control Protocol) ซึ่งจะคล้ายๆกับ โปรโตคอลของ OSI ที่ transport layer แต่มีความแตกต่างกันในด้านรายละเอียด และ TCP ถูกใช้งานอย่างแพร่หลายมากในระบบปฏิบัติการตระกูล UNIX
ARPANET ในระยะแรกไม่มี session และ application protocol แต่ภายหลังก็มี application protocol ต่างๆ ซึ่งไม่ได้มีโครงสร้างแบบเดียวกับ OSI บริการที่มีเช่น FTP (File Transfer Protocol) หรือการถ่ายโอนไฟล์, SMTP (Simple Mail Transfer Protocol) สำหรับใช้งานจดหมายอิเลคโทรนิคส์ และ TELNET สำหรับการขอใช้งานจากระยะไกล ในระยะหลังๆเมื่อ ARPANET ได้กลายเป็นอินเทอร์เนต แล้ว ได้มีการพัฒนา application protocol ขึ้นมามากมายภายหลัง เช่น HTTP, NNTP เป็นต้น
ไม่มีความคิดเห็น:
แสดงความคิดเห็น