มาทำความรู้จักกับ OSI Model 7 Layers กันดีกว่า !!!
การทำงานของระบบเครือข่ายคอมพิวเตอร์
แต่เดิมนั้น การติดต่อสื่อสารกันระหว่างเครื่องคอมพิวเตอร์
ก็จะถูกใช้งานภายใต้ผู้ผลิตเจ้านั้นๆ ยกตัวให้เห็นภาพอย่างง่ายๆ เช่น
– Software ของ Apple ต้องลงบนเครื่อง Apple
– Software ของ Microsoft ต้องลงบน Windows
แบบนี้
เราจะเรียกว่าเป็น Proprietary แปลได้ว่า เป็นของผมแต่เพียงผู้เดียว
ทำให้ถ้าเราต้องการที่จะใช้งานหลายๆบริษัทผู้ผลิต (Multi-Vendors)
ก็จะไม่สามารถใช้งานร่วมกันได้ (Not Compatible)
จึงมีองค์กรต่างที่มากำหนดมาตรฐานต่างๆขึ้นสำหรับการสื่อสารบนเครือข่าย
เช่น IETF , IEEE และอื่นๆ เพื่อให้ผู้ผลิตแต่ละรายนั้นสามารถผลิตอุปกรณ์
พัฒนา software หรือ protocol ได้เป็นไปตามมาตรฐานเดียวกัน
และสามารถใช้งานร่วมกันได้
มาพูดถึง OSI Model กันบ้าง
องค์กรมาตรฐานระหว่างประเทศ (The International Organization for Standardization) หรือที่เราเรียกย่อๆว่า ISO (ไอโซ่)
ได้พัฒนา Model ของการทำงานบนระบบเครือข่ายขึ้นมาเป็นมาตรฐานกลาง
ในปัจจุบันใช้เพื่ออ้างอิงการสื่อสารและเปรียบเทียบการทำงานบนเครือข่าย
ผู้ผลิตหลายๆบริษัท ที่ผลิตอุปกรณ์หรือ software
ต่างๆขึ้นมาก็จะต้องผลิตตามมาตรฐานที่กำหนดขององค์ที่ดูแลในแต่ละส่วน ซึ่ง
Model
นี้ก็ถูกนำมาใช้มาเปรียบเทียบเพื่อให้เข้าใจและอธิบายการทำงานของแต่ละส่วน
ได้ง่ายขึ้น !!! ผมยกตัวอย่างของคำว่ามาตรฐานให้ดูง่ายๆครับ เช่น
เวลาขับรถเกียร์ออโต้
เราเข้าไปที่เกียร์ D ก็คือ ไปข้างหน้า เข้าไปที่เกียร์ R ก็ถอยหลัง
ไม่ว่าเราจะซื้อยี่ห้อไหนมา ก็จะถูกออกแบบให้เป็นมาตรฐานเดียวกัน
และ Model ที่ผมพูดถึงนี้เรียกว่า Open System Interconnection (OSI) นั่นเอง !!!
อย่างที่ผมบอกนะครับ OSI Model เป็นเพียง Model
ที่ใช้อ้างอิงในการสื่อสารเท่านั้น ปัจจุบันโลกเครือข่ายเราใช้งานบน TCP/IP
เป็นหลักครับ แต่ที่ยังพูดถึง OSI Model เพราะว่า การแบ่งเป็น Layer
ของมันสามารถมองเป็นภาพกว้างของการทำงานบนเครือข่ายในแต่ละส่วนได้
เพื่อมาใช้ในการสอน ในการอธิบาย และในการแก้ปัญหาได้ง่ายขึ้นครับ
ผมจะไม่ย้อนไปพูดถึงประวัติของมันนะครับ
OSI Model ใช้อ้างอิงการสื่อสาร
(Reference Model) แบ่งออกเป็นชั้น (Layer) โดยมีตั้งแต่ชั้นที่ 1
ถึงสวรรค์ชั้น 7 (Layer 1 – 7) โดย Layer 1 จะอยู่ด้านล่างสุด
และเรียงขึ้นไปจนถึง Layer 7 แต่ละ Layer
ก็มีชื่อเรียกตามรูปแบบการสื่อสารและการทำงานของมันในแต่ละชั้นนั่นเอง
บน OSI Model ก็จะแบ่งเป็น 2 กลุ่มใหญ่ คือ
-
ตั้งแต่ Layer 1 – 4 เรียกว่า Lower Layer
-
ตั้งแต่ Layer 5 – 7 เรียกว่า Upper Layer
โดยส่วน
มากเราจะวุ่นวายกันอยู่ที่ Lower Layer มากกว่า Upper Layer ครับ
ใครที่ทำงานเป็น Network Engineer จะมองภาพออกครับว่า เราจะยุ่งอยู่กับ
Lower Layer มากกว่า
ทีนี้เรามาดูกันว่าในแต่ละ Layer มันมีหน้าที่อะไรบ้าง
Layer 1 (Physical Layer)
เป็น ชั้นล่างสุด จะมีการกำหนดคุณสมบัติทางกายภาพของฮาร์ดแวร์ที่ใช้เชื่อมต่อระหว่าง คอมพิวเตอร์ทั้งสองระบบ เช่น
-
สายที่ใช้รับส่งข้อมูลจะเป็นแบบไหน
-
ข้อต่อที่ใช้ในการรับส่งข้อมูลมีมาตรฐานอย่างไร
-
ความเร็วในการรับส่งข้อมูลเท่าใด
-
สัญญาณที่ใช้ในการรับส่งข้อมูลมีรูปร่างอย่างไร
-
ใช้แรงดันไฟฟ้าเท่าไหร่
ข้อมูลใน Layer ที่ 1 นี้จะมองเห็นเป็นการรับส่งข้อมูลทีละบิตเรียงต่อกันไป
จากรูป
แสดงถึงการส่งข้อมูลบน Physical layer ครับ แสดงให้เห็นว่า
ข้อมูลจะมาเป็นอย่างไรก็ตาม ก็จะถูกแปลงเป็นสัญญาณเพื่อส่งไปยังปลายทาง
แล้วฝั่งปลายทางก็จะนำสัญญาณที่รับมาแปลงกลับเป็นข้อมูลเพื่อส่งให้เครื่อง
Client ต่อไป
ยังไม่ได้พูดถึงการส่งข้อมูลบน OSI นะครับ เอาไว้รอบหน้า ตรงนี้ผมอยกขึ้นมาเพื่อให้เห็นภาพเบื้องต้น
เพราะ
ฉะนั้น อุปกรณ์ต่างๆที่มีความสามารถในการนำพาสัญญาณไป ก็พวก Card LAN
(NIC) , สาย UTP , สาย Fiber หรือพวก เต้าเสียบ หัวต่อต่างๆ RJ45 , RJ11 ,
RS323 ก็จัดอยู่ใน Physical Layer ครับ
Layer 2 (Data-Link Layer)
เป็นชั้นที่ทำหน้ากำหนดรูปแบบของการส่ง
ข้อมูลข้าม Physical Network โดยใช้ Physical Address
อ้างอิงที่อยู่ต้นทางและปลายทาง ซึ่งก็คือ MAC Address นั่นเอง
รวมถึงทำการตรวจสอบและจัดการกับ error ในการรับส่งข้อมูล ข้อมูลที่ถูกส่งบน
Layer 2 เราจะเรียกว่า Frame
ซึ่งบน Layer 2 ก็จะแบ่งเป็น LAN และ WAN ครับ
ซึ่ง
ปัจจุบัน บน Layer 2 LAN เรานิยมใช้เทคโนโลยีแบบ Ethernet มากที่สุด ส่วน
WAN ก็จะมีหลายแบบแตกต่างกันไป เช่น Lease Line (HDLC , PPP) , MPLS , 3G
และอื่นๆ
สำหรับ LAN ยังมีการแบ่งย่อยออกเป็น 2 sublayers คือ
Logical Link Control (LLC)
IEEE
802.2 ซึ่งจะให้บริการกับ Layer ด้านบนในการเข้าใช้สัญญาณใน
การรับ-ส่งข้อมูล ตามมาตรฐาน IEEE802 แล้ว จะอนุญาตให้สถาปัตยกรรมของ LAN
ที่ต่างกันสามารถทำงานร่วมกันได้ หมายความว่า Layer
ด้านบนไม่จำเป็นต้องทราบว่า Physical Layer
ใช้สายสัญญาณประเภทใดในการรับ-ส่งข้อมูล เพราะ LLC จะรับผิดชอบในการปรับ
Frame ข้อมูลให้สามารถส่งไปได้ในสายสัญญาณประเภทนั้นได้
และไม่จำเป็นต้องสนใจว่าข้อมูลจะส่งผ่านเครือข่ายแบบไหน เช่น Ethernet ,
Token Ring บลาๆๆ และไม่จำเป็นต้องรู้ว่าการส่งผ่านข้อมูลใน Physical Layer
จะใช้การรับส่งข้อมูล แบบใด LLC
จะเป็นผู้จัดการเรื่องเหล่านี้ได้ทั้งหมดครับ
Media Access Control (MAC)
IEEE
802.3 ใช้ควบคุมการติดต่อสื่อสารกับ Layer 1
และรับผิดชอบในการรับ-ส่งข้อมูลให้สำเร็จและถูกต้อง โดยมีการระบุ MAC
Address ของอุปกรณ์เครือข่าย
ซึ่งใช้อ้างอิงในการส่งข้อมูลจากต้นทางไปยังปลายทาง เช่น
จาก
ต้นทางส่งมาจาก MAC Address หมายเลข AAAA:AAAA:AAAA ส่งไปหาปลายทางหมายเลข
BBBB:BBBB:BBBB เมื่อปลายทางได้รับข้อมูลก็จะรู้ว่าใครส่งมา
เพื่อจะได้ตอบกลับไปถูกต้อง นั่นเอง
บน
Ethernet (IEEE802.3)
เมื่อมันมีหน้าที่ในการรับผิดชอบการรับ-ส่งข้อมูลให้สำเร็จและถูกต้อง
มันจึงมีการตรวจสอบข้อผิดพลาดในการส่งข้อมูลด้วย ที่เราเรียกว่า Frame
Check Sequence (FCS) และยังตรวจสอบกับ Physical
ด้วยว่าช่องสัญญาณพร้อมสำหรับส่งข้อมูลไหม ถ้าว่างก็ส่งได้
ถ้าไม่ว่างก็ต้องรอ กลไลนี่เรารู้จักกันในชื่อ CSMA/CD นั่นเองครับ
CSMA/CD
มันก็คือกลไลการตรวจสอบการชนกันของข้อมูล บน Ethernet
ถ้าเกิดมีการชนกันเกิดขึ้น มันก็จะส่งสัญญาณ (jam signal)
ออกไปเพื่อให้ทุกคนหยุดส่งข้อมูล แล้วสุ่มรอเวลา (back off)
เพื่อส่งใหม่อีกครั้ง
Layer 3 (Network Layer)
ทำหน้าที่ส่งข้อมูลข้ามเครือข่าย หรือ
ข้าม network โดยส่งข้อมูลผ่าน Internet Protocol (IP)
โดยมีการสร้างที่อยู่ขึ้นมา (Logical Address)
เพื่อใช้อ้างอิงเวลาส่งข้อมูล เราเรียกว่า IP address
ข้อมูลที่ถูกส่งมาจากต้นทาง เพื่อไปยังปลายทาง
ที่ไม่ได้อยู่บนเครือข่ายเดียวกัน จำเป็นจะต้องพึ่งพาอุปกรณ์ที่ทำงานบน
Layer 3 นั่นก็คือ Router หรือ Switch Layer 3 โดยใช้ Routing Protocol
(OSPF , EIGRP) เพื่อหาเส้นทางและส่งข้อมูลนั้น (IP) ข้ามเครือข่ายไป
โดยการทำงานของ Internet Protocol (IP)
เป็นการทำงานแบบ Connection-less หมายความว่า IP
ไม่มีการตรวจสอบข้อมูลว่าส่งไปถึงปลายทางไหม
แต่มันจะพยายามส่งข้อมูลออกไปด้วยความพยายามที่ดีที่สุด (Best-Effort)
เพราะฉะนั้น ข้อมูลที่ส่งออกไปแล้วไม่ถึงปลายทาง ต้นทางก็จะไม่รู้เลย
ถ้าส่งไปแล้วข้อมูลไม่ถึงปลายทาง ฝั่งต้นทางจะต้องทำการส่งไปใหม่ บน Layer 3
จึงมี Protocol อีกตัวนึงเพื่อใช้ตรวจสอบว่าปลายทางยังมีชีวิตอยู่ไหม
ก่อนที่จะส่งข้อมูล นั่นคือ ICMP ครับ แต่ผู้ใช้งานจะต้องเป็นคนเรียกใช้
protocol ตัวนี้เองนะครับ
จริงๆ แล้ว ก็ยังมีรายละเอียดของ ICMP , ARP อีกที่ทำงานบน Layer 3 แต่เบื้องต้น เอาไว้เท่าที่ก่อนละกันครับ สำหรับ Layer 3
Layer 4 (Transport Layer)
ทำหน้าที่เชื่อมต่อกับ Upper Layer
ในการใช้งาน network services ต่างๆ หรือ Application ต่าง
จากต้นทางไปยังปลายทาง (end-to-end connection) ในแต่ละ services ได้
โดยใช้ port number ในการส่งข้อมูลของ Layer 4 จะใช้งานผ่าน protocol 2 ตัว
คือ TCP และ UDP
เมื่อข้อมูลถูกส่งมาใช้งานผ่าน services
Telnet ไปยังปลายทางถูกส่งลงมาที่ Layer 4 ก็จะทำการแยกว่า telnet คือ
port number 23 เป็น port number ที่ใช้ติดต่อไปหาปลายทาง
แล้วฝั่งต้นทางก็จะ random port number ขึ้นมา
เพื่อให้ปลายทางสามารถตอบกลับมาได้เช่นเดียวกัน
ทีนี้เรามาดู protocol 2 ตัว ใน Layer 4 กันต่อครับ
Transmission Control Protocol (TCP) มีคุณลักษณะที่สำคัญ ดังนี้
-
จัดแบ่งข้อมูลจากระดับ Application ให้มีขนาดพอเหมาะที่จะส่งไปบนเครือข่าย (Segment)
-
มีการสร้าง Connection กันก่อนที่จะมีการรับส่งข้อมูลกัน (Connection-oriented)
-
มีการใช้ Sequence Number เพื่อจัดลำดับการส่งข้อมูล
-
มีการตรวจสอบว่าข้อมูลที่ส่งไปถึงปลายทางหรือไม่ (Recovery)
บน TCP
ก่อนจะส่งข้อมูลนั้นจะต้องทำการตรวจสอบก่อนว่า ปลายทางสามารถติดต่อได้
โดยจะทำการสร้างการเชื่อมต่อระหว่างผู้ส่งและผู้รับก่อน โดยใช้กลไล
Three-Way Handshake
เพื่อให้แน่ใจว่าข้อมูลที่ส่งจะสามารถส่งถึงผู้รับแน่นอน
นอกจาก
Three-Way Handshake แล้ว TCP ยังมีกลไก Flow Control
เพื่อควบคุมการส่งข้อมูลเมื่อเกิดปัญหาบนเครือข่ายระหว่างที่ส่งข้อมูลอยู่
หรือ กลไล Error Recovery ในกรณีที่มีข้อมูลบางส่วนหายไปขณะส่ง
ก็ให้ทำการส่งมาใหม่ (Retransmission)
แต่ผมขอพูดเรื่องกลไลต่างๆไว้เพียงเบื้องต้นละกันนะครับ
นอก
จากนั้นยังสามารถทำการจัดสรรค์หรือแบ่งส่วนของข้อมูลออกเป็นส่วนๆ
(Segmentation) ก่อนที่จะส่งลงไปที่ Layer 3 อีกด้วย
และข้อมูลที่ถูกแบ่งออก ก็จะใส่ลำดับหมายเลขเข้าไป (Sequence number)
เพื่อให้ปลายทางนำข้อมูลไปประกอบกันได้อย่างถูกต้อง
User Datagram Protocol (UDP) มีคุณลักษณะที่สำคัญ ดังนี้
-
ไม่มีการสร้าง Connection กันก่อนที่จะมีการรับส่งข้อมูลกัน (Connectionless)
-
ส่งข้อมูลด้วยความพยายามที่ดีที่สุด (Best-Effort)
-
ไม่มีการตรวจสอบว่าข้อมูลที่ส่งไปถึงปลายทางหรือไม่ (No Recovery)
บน UDP
จะตรงข้ามกับ TCP เลยครับ เพราะ ไม่มีการสร้างการเชื่อมต่อกันก่อน
หมายความว่าถ้า services ใดๆ ใช้งานผ่าน UDP
ก็จะถูกส่งออกไปทันทีด้วยความพยายามที่ดีที่สุด (ฺBest-Effort)
และไม่มีการส่งใหม่เมื่อข้อมูลสูญหาย (No Recovery)
หรือส่งไม่ถึงปลายทางอีกด้วย
ข้อดีของ
มันก็คือ มีความรวดเร็วในการส่งข้อมูล เพราะฉะนั้น services ที่ใช้งานผ่าน
UDP ก็มีมากมาย เช่น TFTP , DHCP , VoIP และอื่นๆ เป็นต้น
ผมชอบภาพนี้ เพราะเปรียบเทียบการทำงานของ TCP และ UDP ได้เห็นภาพดีเหมือนกันครับ
อ้าวๆๆ
เหนื่อยกันหรือยังครับ ผ่านไปแล้ว สำหรับ Lower Layer นะครับ คือ Layer 1
– 4 ซึ่งส่วนมากแล้วชาว Network Engineer ก็จะวุ่นวายกับ Lower Layer
มากกว่า Upper Layer (5-7) ซะอีก แต่จะไม่พูดถึงก็ไม่ได้ใช่ไหมครับ
ถ้าอย่างนั้นก็ไปดูกันต่อเลยครับ
Layer 5 (Session Layer)
ทำหน้าที่ควบคุมการเชื่อมต่อ session เพื่อติดต่อจากต้นทาง กับ ปลายทาง ลองดูจากรูปตัวอย่างเผื่อจะทำให้เข้าใจง่ายขึ้น (รึเปล่า) 55+
เมื่อฝั่ง
ต้นทางต้องการติดต่อไปยังปลายทางด้วย port 80 (เปิด Internet Explorer)
ฝั่งต้นทางก็จะทำการติดต่อไปยังปลายทาง โดยการสร้าง session ขึ้นมา เป็น
session ที่ 1 ส่งผ่าน Layer 4 โดย random port ต้นทางขึ้นมาเป็น 1025
ส่งไปหาปลายทางด้วย port 80
ระหว่าง
ที่ session ที่ 1 ใช้งานอยู่ เราติดต่อไปยังปลายทางอีกครั้งด้วย port 80
(เปิด Google Chrome) ฝั่งต้นทางก็จะทำการสร้าง session ที่ 2 ขึ้นมา
ส่งผ่าน Layer 4 โดย random port ต้นทางขึ้นมาเป็น 1026 ส่งไปหาปลายทางด้วย
port 80
แล้วแต่ละ
session ฝั่งปลายทาง ก็จะตอบกลับมาด้วย port ที่ฝั่งต้นทางส่งมา
ทำให้สามารถแยก session ออกได้ เมื่อเราส่งข้อมูลบนเครือข่ายนั่นเองครับ
Layer 6 (Presentation Layer)
ทำหน้าที่ในการแปล หรือ นำเสนอ
structure , format , coding ต่างๆของข้อมูลบน application
ที่จะส่งจากต้นทางไปยังปลายทาง ให้อยู่ในรูปแบบที่ฝั่งต้นทางและปลายทาง
สามารถเข้าใจได้ทั้ง 2 ฝั่ง
ผมอ่านจากเว็บนึงกล่าวไว้ก็เข้าใจง่ายดีนะครับ
Most
computers use the ASCII table for characters. If another computer would
use another character like EBCDIC than the presentation layer needs to
“reformat” the data so both computers agree on the same characters.
เค้าบอก
ว่า computer ส่วนมากใช้ ASCII format ถ้าจะติดต่อพวก computer mainframe
จะใช้พวก EBCDIC format ซึ่ง Layer 6 ก็จะทำการ reformat ข้อมูล
ซึ่งสามารถทำให้ทั้ง 2 เครื่องสามารถเข้าใจ format
ข้อมูลที่จะสื่อสารกันได้
Layer 7 (Application Layer)
ทำหน้าที่ติดต่อระหว่างผู้ใช้ (user)
กับ application ที่ใช้งานบนเครือข่าย เช่น Web Browser (HTTP) , FTP ,
Telnet เป็นต้น สรุปแล้วมันก็คือพวก application ที่ใช้งานผ่าน network
นั่นเองครับ
จบแล้วครับ สำหรับ OSI Model ผมก็หวังว่า บทความนี้จะทำให้หลายๆท่าน
ได้รู้จักและเข้าใจ OSI Model กันไม่มากก็น้อยครับ
แล้วเจอกันในบทความต่อไปนะครับ ขอบคุณครับ
ไม่มีความคิดเห็น:
แสดงความคิดเห็น