บทความตอนที่ 3 OSI Model 7 Layer - Functionality explain - 1
เมื่อคราวที่แล้ว เราอธิบายถึงวิธีการนำเอา OSI Model ไปใช้ในการแก้ไขปัญหาว่า สามารถนำมาใช้ได้ในลักษณะใดบ้าง สำหรับบทความในตอนนี้จะอธิบายถึงหน้าที่ของแต่ละเลเยอร์ว่าทำหน้าที่อะไรบ้าง อย่างที่เราเกริ่นนำไปแล้ว OSI Model นี้มีจำนวน 7 เลเยอร์ โดยประกอบด้วยเลเยอร์ที่ทำหน้าที่ต่าง ๆ กันดังต่อไปนี้
Application Layer (Layer 7) – เลเยอร์นี้จะสนับสนุนการทำงานของ Application กับ end-user ซึ่งการติดต่อสือสารกันระหว่าง Application และ end-user, คุณภาพในการให้บริการ (Quality of Service), การยืนยันตัวตนเพื่อก่อให้เกิดความเป็นส่วนตัวและข้อจำกัดอื่น ๆ ที่มีการกำหนดไว้จะถูกควบคุมผ่านทางเลเยอร์นี้ โดยทุก ๆ สิ่งที่เกิดขึ้นภายใน เลเยอร์นี้จะถูกกำหนดและควบคุมโดย Application อีกทั้งบริการต่าง ๆ ที่เกี่ยวข้องกับ Application ก็จะทำงานในเลเยอร์นี้ด้วยเช่นกัน อาทิ file transfer, e-mail, และ service อื่น ๆ
Presentation Layer (Layer 6) – เลเยอร์นี้จะมีหน้าที่สนับสนุนและอธิบาย format ต่าง ๆ ของข้อมูล, การบีบอัดข้อมูล และรวมถึงการเข้ารหัสข้อมูล ซึ่ง format ดังกล่าวจะต้องมีการตกลงกันระหว่างผู้ส่งและผู้รับให้เข้าใจใน format ดังกล่าวให้ตรงกันด้วย เช่น ไฟล์ทีมีนามสกุล .Doc คือเอกสาร, ไฟล์ทีมีนามสกุล .Zip คือไฟล์ที่มีการบีบอัด เป็นต้น หากไม่มีการตกลงกันระหว่างผู้ส่งและผู้รับ ผลที่ได้คือ ผู้รับจะไม่ทราบว่าไฟล์ดังกล่าวคืออะไร เช่น เครื่องผู้รับอาจจะรับไฟล์ที่มีนามสกุล .PDF ซึ่งถ้าหากผู้รับไม่ได้ลง Application ใด ๆ ที่สามารถอ่านหรือเข้าใจไฟล์นามสกุลดังกล่าวได้ ก็จะไม่สามารถอ่านไฟล์ดังกล่าวได้ เป็นต้น ในบางครั้งอาจจะเรียกเลเยอร์นี้ว่า “Syntax Layer”
Session Layer (Layer 5) – เลเยอร์นี้จะทำหน้าที่สร้าง, บริหารจัดการ, และปิด session ระหว่างเครื่องต้นทางกับเครื่องปลายทาง คำถามคือ “แล้ว session คืออะไรกันแน่?” คำว่า session เป็นศัพท์ที่ใช้ในการเรียกแทน dialog หรือบทสนทนาที่เกิดขึ้นระหว่างเครื่องต้นทางและเครื่องปลายทาง เช่น เครื่องพีซีของเรา (เครื่องต้นทาง) ต้องการจะไปยังเว๊บเซิร์ฟเวอร์ google เพื่อค้นหาข้อมูล (เครื่องปลายทาง) นั่นหมายถึงจำเป็นอย่างยิ่งที่เครื่องต้นทางจะต้องสร้างบทสนทนา (dialog หรือ session) จากตนเองไปยังเครื่องปลายทาง แต่ในทางปฏิบัตินั้น เราจำเป็นต้องกำหนดคุณลักษณะของเราให้เครื่องปลายทางทราบว่าใครกำลังติดต่อกับเครื่องปลายทางอยุ่ โดยผ่านทางการใช้งาน Port number และ IP Address แต่ในระดับเลเยอร์นี้จะพิจารณา Port number ที่ใช้ในการระบุ session ระหว่างเครื่องต้นทางกับเครื่องปลายทางเป็นหลัก ดังภาพ
ดังนั้นในเลเยอร์ดังกล่าวนี้ สิ่งที่สำคัญอย่างมากในการทำงานคือ Port number ซึ่งผู้ที่กำลังศึกษาหรือต้องการสอบ Certified CCNA จำเป็นต้องทราบชนิดและช่วงของหมายเลข Port number ที่นิยมใช้งานกัน โดยมีรายละเอียดดังต่อไปนี้
Port number ในระดับ CCNA ที่เราต้องศึกษานั้นจะมีขนาด 16 bit ซึ่งนั้นหมายถึงจะมีหมายเลขที่เป็นไปได้ของ Port ทั้งสิ้น 2 ยกกำลัง 16 = 0 – 65535 หรือ 65536 Port number โดยจะมีด้วยกันอยู่ 3 ประเภทคือ
1.) Well Known Port (เริ่มต้นตั้งแต่หมายเลข 0 – 1,023)
โดยปกติจะนิยมกำหนดให้แก่ Application หลัก ๆ ที่มีการใช้งานอยุ่ในระบบเช่น port 20,21 คือ FTP, port 22 คือ Secure Shall (SSH) , port 23 คือ telnet, port 53 คือ DNS และ port 80 คือ WWW เป็นต้น
(สำหรับพอร์ตหมายเลข 0 นั้นโดยปกติจะนิยมมาใช้ในการเขียนโปรแกรมเป็นหลัก บางครั้งเรียกว่า UNIX Socket Programming Port สำหรับผู้สนใจติดต่อตามใน TCP Port 0 : Unix Socket Programming operation ในคราวต่อไป)
2.) Registered Port (เริ่มตั่งแต่หมายเลข 1,024-49,151)
โดยปกติจะนิยมกำหนดให้แก่ Application ที่มีการใช้งานในองค์กรหรือ instants-message application ต่าง ๆ เช่น Skype, Lotus Note เป็นต้น
3.) Dynamic Port (เริ่มตั้งแต่หมายเลข 49,152 – 65,535)
โดยปกติจะถูกใช้งานโดยเครื่องลูกข่ายที่จะติดต่อกับเครื่องเซิร์ฟเวอร์ใด ๆ ที่อยุ่ภายในหรือภายนอก โดยหมายเลขดังกล่าวจะใช้ในสำหรับการส่งข้อมูลจากเซิร์ฟเวอร์ใด ๆ ที่เครื่องลูกข่ายติดต่ออยู่ เพื่อส่งข้อมูลกลับมาได้อย่างถูกต้อง
Transport Layer (Layer 4) – เลเยอร์นี้จะรับผิดชอบเรื่องของการบริหารจัดการข้อมูลก่อนจะทำการส่งข้อมูลใด ๆจากต้นทางไปยังปลายทาง เช่น รับผิดชอบการแบ่งข้อมูลออกเป็นส่วนย่อย ๆ ตามมาตราฐานการรับส่งข้อมูล Ethernet (Segmentation) หรือการส่งข้อมูลซ้ำในกรณีที่ส่งข้อมูลแล้วเกิด error ใด ๆ ในการส่ง (Error Recovery) เป็นต้น โดยภายใต้เลเยอร์นี้จะประกอบด้วย protocol หลัก ๆ อยู่ 2 ชนิด ซึ่งสำหรับผู้ที่ต้องการศึกษา CCNA หรือต้องทำการสอบ Certificated CCNA แล้ว protocol 2 ชนิดที่จำเป็นต้องทราบคือ TCP และ UDP Protocol โดย TCP นี้จะมีลักษณะการทำงานประเภท Connection Oriented และ UDP จะมีลักษณะการทำงานประเภท Connectionless
ข้อแตกต่างของ Connection Oriented กับ Connectionless คืออะไร? ทำไม Certificated CCNA จึงจำเป็นต้องอธิบายให้ทราบด้วย คำตอบคือ การทำงานที่แตกต่างกันของทั้งสองสิ่งนี้ จะเป็นพื้นฐานที่ใช้ในการอธิบายงานประเภทต่าง ๆ ที่อยู่บน protocol ชนิดต่าง ๆ เช่น routing protocol ประเภท BGP หรือ OSPF เป็นต้น ดังนั้นจึงเป็นเรื่องที่ต้องทำความเข้าใจอย่างมาก เพื่อให้การศึกษาในขั้นที่สูงกว่า CCNA เช่น CCNP หรือ CCIE นั้นแม่นยำและถูกต้องมากยิ่งขึ้น
อธิบายดังต่อไปนี้ครับ Connection Oriented หมายถึง ทุก ๆ ครั้งก่อนที่จะมีการส่งข้อมูลกันระหว่างต้นทางกับปลายจำเป็นต้องมีกระบวนการสร้างทำงาน 3 อย่าง ดังต่อไปนี้
1.) สร้างหรือเปิด Connection (Create Connection) ผ่านทางกระบวนการย่อยที่เรียกว่า 3 Way Handshake
2.) บริหารจัดการ Connection (Management Connection) เช่น ตรวจสอบขนาดของข้อมูล, การแบ่งย่อยชุดข้อมูล และการส่งข้อมูลซ้ำในกรณีที่ขุดข้อมูลก่อนหน้าที่ส่งไปนั้น error ด้วยสาเหตุใด ๆ ผ่านทางการใช้งาน windows size และ Sequence Number
3.) ปิด Connection (Terminate Connection) ผ่านทางกระบวนการย่อยทีเรียกว่า 4 Way Handshake
ในขณะที่ Connectionless หมายถึง ทุก ๆ ครั้งก่อนที่จะมีการส่งข้อมูลกันระหว่างต้นทางกับปลายทาง ไมจำเป็นต้องมีกระบวนการเช่นเดียวกันกับ Connection Oriented เลย กล่าวคือ
1.) ไม่จำเป็นต้องการสร้าง Connection ก่อนการส่งข้อมูล
2.) ไม่จำเป็นต้องการกระบวนในการบริหารจัดการ Connection
3.) ไม่จำเป็นต้องมีการปิด Connection หลังจากส่งข้อมูลเสร็จสิ้น
จะสังเกตุได้ว่า การทำงานของ Connection Oriented กับ Connectionless นั้นจะตรงกันข้ามกันโดยสิ้นเชิง หากจะให้เห็นภาพง่าย ๆ ในการเปรียบเทียบการทำงานของ Connection Oriented กับ Connectionless นั้น ให้เปรียบเทียบถึงการกดหมายเลขโทรศัพท์และการส่งจดหมาย
การกดหมายเลขโทรศัพท์นั้น เปรียบเสมือน Connection Oriented เพราะผู้เรียก (Caller) จำเป้นต้องการสร้าง Connection ก่อนโดยการกดหมายเลขโทรศัพท์ และฟังสัญญาณ เมื่อปลายทางหรือผู้รับ (Recipient) รับสายและส่งเสียงตอบรับ (แสดงว่าการสร้าง Connection สมบูรณ์) ผู้เรียกก็จะทำการส่งข้อมูลที่ต้องการส่ง โดยในระหว่างที่ส่งอาจจะมีการควบคุมการส่งข้อมูลไม่ให้เร็วหรือช้าจนเกินไป หรือแบ่งวรรคประโยคในการสนทนาให้เป็นที่เข้าใจได้ง่าย (Segmentation ข้อมูล) หรือในกรณีที่ปลายทางฟังข้อมูลไม่ทันหรือไม่ได้ยินเสียงของผู้เรียกบางช่วง ผู้เรียกก็ส่งข้อมูลทวนซ้ำไปยังผู้รับ (Error Recovery) เป็นต้น และเมื่อทำการส่งข้อมูลเป็นทีเรียบร้อยแล้ว ทางผู้เรียกก็จะทำการปิดการสนทนาดังกล่าว (Terminate Connection)
ในขณะที่ Connectionless นั้นเปรียบเสมือนการส่งจดหมายจากต้นทางไปยังปลายทาง กล่าวคือ ต้นทางทำการเขียนจดหมายหรือเตรียมข้อมูลที่ต้องการจะส่งให้เรียบร้อย เมื่อเตรียมเป็นที่เรียบร้อยแล้วก็จะทำการส่งข้อมูลหรือจดหมายดังกล่าวไปยังปลาย โดยไม่จำเป็นต้องสร้าง Connection ใด ๆ ระหว่างผู้ส่งและผู้รับจดหมายหรือข้อมูล นั่นหมายถึง หากจดหมายดังกล่าวสามารถเข้าถึงไปปลายทางได้ ทางปลายทางก็จะรับชุดข้อมูลนั้นไปดำเนินการต่อ แต่ถ้าหากผู้รับไม่ได้รับจดหมาย ซึ่งอาจจะเกิดการสูญหายระหว่างส่ง หรืออื่น ๆ ทางผู้ส่งและผู้รับก็จะไม่สามารถทราบได้ว่าข้อมูลเกิดการสูญหายหรือตกหล่น เป็นต้น
บทความต่อหน้า จะมาอธิบายการทำงานในเชิงลึกของ TCP และ UDP ว่า วิธีการควบคุมการส่งข้อมูลของ TCP มีการทำงานอย่างไร, ชุดข้อมูลที่ใช้ในการบริหารจัดการการส่งข้อมูล ประกอบด้วยอะไรบ้าง และประโยชน์หรือการนำเอา TCP หรือ UDP ไปใช้ มักจะนิยมใช้กับ Application ประเภทใด
++ Real Skills, Real Solution @ Netlogic Training Center ++
บริษัท เน็ทลอจิก เทรนนิ่ง เซ็นเตอร์ จำกัด (C.Kiatjindaratana)
** รายละเอียดข้างต้นเหมาะสำหรับผุ้ที่ต้องการสอบ CCNA หรือผุ้ทีต้องการข้อมุลทั่วไป **