OSI Model คืออะไร?
OSI Model (Open Systems Interconnection Model) คือรูปแบบการรับส่งข้อมูลระหว่างอุปกรณ์อิเล็กทรอนิกส์
ผ่านระบบเครือข่าย เป็นตัวกำหนดรูปแบบของผู้ส่งข้อมูล (Sender) และ ผู้รับข้อมูล (Receiver) จะแบ่งการทำงานออก
เป็น 7 Layers โดย Layer 4-7 จะเน้นไปที่การติดต่อกับ User ผ่าน Software เป็นหลัก ส่วน Layer 1-3 จะเน้นที่การสื่อสาร
ในระดับ Hardware เป็นหลัก โดยแต่ละ Layer จะมีบทบาท, หน้าที่และหลักการทำงานที่แตกต่างกันแต่จะทำงาน
ร่วมกับ Layer ที่อยู่ติดกัน ดังนี้
(ที่มา: https://blog.paessler.com)
โดยทั้ง 7 Layers จะถูกแบ่งตามลักษณะการทำงานได้เป็น 2 กลุ่มใหญ่ๆ คือ
1.Application-oriented layers (Layer 4-7) คือ กลุ่มของ Layers ที่ใช้สื่อสารการเชื่อมต่อข้อมูลระหว่าง Sender และ Receiver เข้ากับ Application ต่างๆ โดยจะเกี่ยวข้องกับ Software เป็นหลัก
Layer 7: Application Layer เป็น Layer ที่อยู๋ใกล้กับ Users มากที่สุด โดยจะเป็น Protocol ต่างๆที่ใช้ในการสื่อสารกับ user เช่น HTTP, FTP นิยมใช้กับ Software เพื่อง่ายต่อการ Interact กับ Users เช่น หาก user ต้องการใช้ Protocol HTTP เพื่อท่องโลก internet ก็จะใช้ browser เช่น Firefox, Chrome, etc เพื่อเรียกใช้ Protocol ดังกล่าวนั่นเอง
Layer 6: Presentation Layer เป็น Layer ที่ใช้ในการ Translate ข้อมูลจาก/ไปยัง Application layer เช่น Sender พิมพ์ข้อความว่า “Hello, how are you?” layer นี้จะทำการแปลงข้อความเหล่านั้นเป็นรหัส และให้ Presentation layer จากฝั่ง Receiver เป็นตัวแปลงรหัสเหล่านั้นให้กลับมาเป็นข้อความ “Hello, how are you?” ให้ Receiver ได้รับ
(ที่มา: http://www.cnt4all.com/2016/07/05-presentation-layer-layer-6-of-osi.htm )
Layer 5: Session Layer เป็น Layer ที่มีการ Sync เงื่อนไขการใช้งานระหว่างเครื่องต้นทางกับเครื่องปลายทาง เช่น User ต้องการขอใช้บริการบางอย่างจาก Server เป็นเวลา 20 นาที ผ่าน port 99, Server ก็จะส่งข้อความอนุญาตให้ User ดังกล่าวใช้บริการผ่าน port 99 ได้ เป็นเวลา 20 นาที หาก Session ที่ขอใช้งานเกิดหมดเวลา ก็จะไม่สามารถใช้บริการนั้นได้
Layer 4: Transport Layer เป็น Layer ที่จะควบคุมการขนส่งข้อมูลจาก Sender ไปยัง Receiver หรือจาก Receiver ไปยัง Sender เมื่อเกิดการรับส่งข้อมูล ตัว Transport layer จะทำการแบ่งชิ้นส่วนข้อความดังกล่าวเป็นชิ้นเล็กๆหลายๆชิ้นเรียกว่า “Segment” และทำการ Add L4 Header (ประกอบด้วย Protocol ที่ใช้, Source Port และ Destination Port) เข้าไปบน Segments แต่ละชิ้น เพื่อให้ง่ายต่อการส่งและตรวจสอบความถูกต้อง โดยวิธีการนี้เรียกว่า Segmentation
(ที่มา: https://apipong.weebly.com/3623363635943634360736373656362636293609.html )
2. Network-dependent Layers (Layer 1-3) คือ กลุ่มของ Layers ที่ทำหน้าที่เชื่อมต่อคอมพิวเตอร์ของทั้ง Senders และ Receivers ผ่านระบบเครือข่ายทั้งแบบมีสายและไร้สาย โดยจะเกี่ยวข้องกับ Hardware เป็นหลัก ซึ่งสำหรับบุคลากรที่ทำงานสาย Network จะเน้นศึกษาที่ Layers เหล่านี้
Layer 3: Network Layer เป็น Layer ที่ทำการสร้างช่องทางการเชื่อมต่อระหว่าง Network ของ Sender และ Receiver เข้าด้วยกันผ่าน IP Address รวมถึง โดย Layer นี้จะรับ Segments จาก Transport Layer มา Add L3 Header (ประกอบด้วย Source IP และ Destination IP) และตั้งชื่อให้ใหม่ว่า “Packet” โดยอุปกรณ์ที่ทำหน้าที่บน Layer3 ได้แก่ Router, L3 Switch(Multilayer Swith), Wireless Router เป็นต้น
Layer 2: Data link Layer เป็น Layer ที่ทำการเชื่อมต่อข้อมูลแบบ node to node เช่น PC-Switch, Swith-Switch หรือ Switch-Router เป็นต้น โดยจะใช้ MAC Address ส่วนมากจะใช้สาย UTP เป็นตัวเชื่อมต่ออุปกรณ์เหล่านี้เข้าด้วยกัน โดย Layer นี้จะรับ Packet จาก Network Layer มาทำการ Add L2 Header และ L2 Trailer (ประกอบด้วย Source MAC, Destination MAC, Tag VLAN, etc) และเรียกชื่อใหม่ว่า “Frame” โดยอุปกรณ์ที่ทำหน้าที่บน Layer2 ได้แก่ Switch, Bridge
Layer 1: Physical Layer เป็น Layer ที่ทำการนำ Frame ข้อมูลจาก Data Link Layer ส่งระหว่างอุปกรณ์ Network ผ่านตัวกลาง เช่น สาย UTP, สาย Fiber optic โดยเราเรียกสิ่งที่ส่งผ่านตัวกลางเหล่านี้ว่า “Bits”หรือ “Bytes” (8 Bits = 1 Byte)
โดยทั้ง 7 Layers มีหลักการทำงานที่สัมพันธ์กัน คล้ายกับการขึ้นลงบันใด โดยจะเริ่มจากชั้น Application Layer จากฝั่ง Sender และจบที่ Application Layer จากฝั่ง Receiver
ที่มา (https://www.youtube.com/watch?v=gvXKtgLn-28)
ตัวอย่างเช่น Computer A (Client A) ต้องการติดต่อขอใช้บริการกับ Computer B (Server B)
Sender A
<Sender A> Application Layer:
ผู้ใช้กรอกข้อมูล Username/Password จากนั้นกด Enter
<Sender A> Presentation Layer:
Encode Username/Password ไปเป็น Data
<Sender A> Session Layer:
รอรับการ Synchronize จากปลายทาง
<Sender A> Transport Layer:
นำ Data มาแบ่งเป็นชิ้นเล็กๆจากนั้น แนบ L4 Header (มี Protocol, Source port,
Destination port เป็นส่วนประกอบ) ลงไปเรียกแต่ละชิ้นว่า “Segment”
<Sender A> Network Layer:
นำ Segments มาแนบ L3 Header (มี Source IP, Destination IP
เป็นส่วนประกอบ) เรียกว่า “Packet”
<Sender A> Data Link Layer:
นำ Packet มาแนบ L2 Header และ L2 Trailer (มี Source MAC,
Destination MAC, ฯลฯ เป็นส่วนประกอบ) เรียกว่า “Frame”
<Sender A> Physical Layer:
นำ Frame ส่งผ่านสายนำข้อมูล เรียกว่า bits, Bytes (8 bits = 1 Bytes)
================
Receiver B
<Receiver B> Physical Layer:
รับ bits, Bytes ผ่านสายนำข้อมูล
<Receiver B> Data Link Layer:
รับ Frame มาทำการ แกะ L2 Header, L2 Trailer ออก เพื่อตรวจสอบ
Source MAC, Destination MAC, ฯลฯ
<Receiver B> Network Layer:
รับ Packet มาทำการ แกะ L3 Header ออก เพื่อตรวจสอบ Source IP,
Destination IP
<Receiver B> Transport Layer:
รับ Segment มาทำการ แกะ L4 Header ออก เพื่อตรวจสอบ Protocol,
Source Port, Destination Port
<Receiver B> Session Layer:
รอรับการ Synchronize จากต้นทาง
<Receiver B> Presentation Layer:
ทำการ Decode Data ไปเป็น Username/Password เพื่อตรวจสอบในฐานข้อมูล
ว่า มีข้อมูล User ดังกล่าวหรือไม่
<Receiver B> Application Layer:
รายงานผลการข้อใช้บริการจาก Client A ให้ Server B ทราบ
================
** จากนั้น Server B จะเปลี่ยนสถานะตัวเองจาก Receiver B ไปเป็น Sender B เพื่อส่ง
รายละเอียดการให้บริการกลับไปให้ Client A (Sender A ไปเป็น Receiver A) ผ่านทาง
OSI Model ทั้ง 7 Layers (ครั้งนี้ Session Layer จะทำการ ส่งเงื่อนไขการให้บริการ
เพื่อ Sync ระหว่าง Server B และ Client A)